fix conflicts
This commit is contained in:
+3
-3
@@ -696,7 +696,7 @@ static void CB2_InitBattleInternal(void)
|
||||
gBattle_BG3_X = 0;
|
||||
gBattle_BG3_Y = 0;
|
||||
gBattleTerrain = BattleSetup_GetTerrainId();
|
||||
sub_800F34C();
|
||||
InitBattleBgsVideo();
|
||||
LoadBattleTextboxAndBackground();
|
||||
ResetSpriteData();
|
||||
ResetTasks();
|
||||
@@ -1774,7 +1774,7 @@ void sub_8011A1C(void)
|
||||
gBattle_BG2_Y = 0;
|
||||
gBattle_BG3_X = 0;
|
||||
gBattle_BG3_Y = 0;
|
||||
sub_800F34C();
|
||||
InitBattleBgsVideo();
|
||||
LoadCompressedPalette(gBattleTextboxPalette, 0, 64);
|
||||
LoadBattleMenuWindowGfx();
|
||||
ResetSpriteData();
|
||||
@@ -1835,7 +1835,7 @@ static void sub_8011BB0(void)
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_8011C44(u8 arrayId, u8 caseId)
|
||||
u32 GetBattleBgAttribute(u8 arrayId, u8 caseId)
|
||||
{
|
||||
u32 ret = 0;
|
||||
|
||||
|
||||
@@ -5045,7 +5045,7 @@ static void atk5A_yesnoboxlearnmove(void)
|
||||
case 3:
|
||||
if (!gPaletteFade.active && gMain.callback2 == BattleMainCB2)
|
||||
{
|
||||
u8 movePosition = sub_8138B2C();
|
||||
u8 movePosition = GetMoveSlotToReplace();
|
||||
|
||||
if (movePosition == 4)
|
||||
{
|
||||
@@ -9629,7 +9629,7 @@ static void atkF2_displaydexinfo(void)
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
sub_800F34C();
|
||||
InitBattleBgsVideo();
|
||||
LoadBattleTextboxAndBackground();
|
||||
gBattle_BG3_X = 0x100;
|
||||
++gBattleCommunication[0];
|
||||
|
||||
+3
-3
@@ -457,7 +457,7 @@ static void CB2_InitBerryPouch(void)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
if (sub_80BF72C() == TRUE)
|
||||
if ((u8)sub_80BF72C() == TRUE)
|
||||
break;
|
||||
if (RunBerryPouchInit() == TRUE)
|
||||
break;
|
||||
@@ -934,7 +934,7 @@ static void Task_BerryPouchMain(u8 taskId)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
s32 menuInput;
|
||||
if (!gPaletteFade.active && sub_80BF72C() != TRUE)
|
||||
if (!gPaletteFade.active && (u8)sub_80BF72C() != TRUE)
|
||||
{
|
||||
menuInput = ListMenu_ProcessInput(data[0]);
|
||||
ListMenuGetScrollAndRow(data[0], &sStaticCnt.listMenuScrollOffset, &sStaticCnt.listMenuSelectedRow);
|
||||
@@ -1040,7 +1040,7 @@ static void Task_NormalContextMenu(u8 taskId)
|
||||
static void Task_NormalContextMenu_HandleInput(u8 taskId)
|
||||
{
|
||||
s8 input;
|
||||
if (sub_80BF72C() != TRUE)
|
||||
if ((u8)sub_80BF72C() != TRUE)
|
||||
{
|
||||
input = Menu_ProcessInputNoWrapAround();
|
||||
switch (input)
|
||||
|
||||
+1
-1
@@ -82,7 +82,7 @@ static const union AffineAnimCmd gUnknown_83E7900[] =
|
||||
AFFINEANIMCMD_END,
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd *const gUnknown_83E7910[] =
|
||||
const union AffineAnimCmd *const gUnknown_83E7910[] =
|
||||
{
|
||||
gUnknown_83E7890,
|
||||
gUnknown_83E78A0,
|
||||
|
||||
@@ -0,0 +1,638 @@
|
||||
#include "global.h"
|
||||
#include "trig.h"
|
||||
#include "random.h"
|
||||
#include "decompress.h"
|
||||
#include "palette.h"
|
||||
#include "sound.h"
|
||||
#include "task.h"
|
||||
#include "evolution_scene.h"
|
||||
#include "evolution_graphics.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
static void SpriteCallbackDummy_EvoSparkles(struct Sprite * sprite);
|
||||
static void EvoTask_PreEvoSparkleSet1Init(u8 taskId);
|
||||
static void EvoTask_CreatePreEvoSparkleSet1(u8 taskId);
|
||||
static void EvoTask_WaitForPre1SparklesToGoUp(u8 taskId);
|
||||
static void EvoTask_PreEvoSparkleSet2Init(u8 taskId);
|
||||
static void EvoTask_CreatePreEvoSparklesSet2(u8 taskId);
|
||||
static void EvoTask_PreEvoSparkleSet2Teardown(u8 taskId);
|
||||
static void EvoTask_PostEvoSparklesSet1Init(u8 taskId);
|
||||
static void EvoTask_CreatePostEvoSparklesSet1(u8 taskId);
|
||||
static void EvoTask_PostEvoSparklesSet1Teardown(u8 taskId);
|
||||
static void EvoTask_PostEvoSparklesSet2Init(u8 taskId);
|
||||
static void EvoTask_CreatePostEvoSparklesSet2(u8 taskId);
|
||||
static void EvoTask_PostEvoSparklesSet2Teardown(u8 taskId);
|
||||
static void EvoTask_PostEvoSparklesSet2TradeInit(u8 taskId);
|
||||
static void EvoTask_CreatePostEvoSparklesSet2Trade(u8 taskId);
|
||||
static void EvoTask_PrePostEvoMonSpritesInit(u8 taskId);
|
||||
static void EvoTask_ChooseNextEvoSpriteAnim(u8 taskId);
|
||||
static void EvoTask_ShrinkOrExpandEvoSprites(u8 taskId);
|
||||
static void PreEvoInvisible_PostEvoVisible_KillTask(u8 taskId);
|
||||
static void PreEvoVisible_PostEvoInvisible_KillTask(u8 taskId);
|
||||
|
||||
static const u16 sEvolutionSparklesPalData[] = INCBIN_U16("graphics/misc/evolution_sprite_841EEA4.gbapal");
|
||||
static const u32 sEvolutionSparklesTileData[] = INCBIN_U32("graphics/misc/evolution_sprite_841EEA4.4bpp.lz");
|
||||
|
||||
static const struct CompressedSpriteSheet sSpriteSheet_EvolutionSparkles[] = {
|
||||
{ sEvolutionSparklesTileData, 0x20, 1001 },
|
||||
{}
|
||||
};
|
||||
static const struct SpritePalette sSpritePalette_EvolutionSparkles[] = {
|
||||
{ sEvolutionSparklesPalData, 1001 },
|
||||
{}
|
||||
};
|
||||
|
||||
static const struct OamData sOamData_EvolutionSparkles = {
|
||||
.y = 160,
|
||||
.priority = 1
|
||||
};
|
||||
|
||||
static const union AnimCmd sSpriteAnim_EvolutionSparkles_0[] = {
|
||||
ANIMCMD_FRAME(0, 8),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sSpriteAnimTable_EvolutionSparkles[] = {
|
||||
sSpriteAnim_EvolutionSparkles_0
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate sSpriteTemplate_EvolutionSparkles = {
|
||||
.tileTag = 1001,
|
||||
.paletteTag = 1001,
|
||||
.oam = &sOamData_EvolutionSparkles,
|
||||
.anims = sSpriteAnimTable_EvolutionSparkles,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy_EvoSparkles
|
||||
};
|
||||
|
||||
static const u16 sEvolutionSparkleMatrixScales[12] = {
|
||||
0x3C0,
|
||||
0x380,
|
||||
0x340,
|
||||
0x300,
|
||||
0x2C0,
|
||||
0x280,
|
||||
0x240,
|
||||
0x200,
|
||||
0x1C0,
|
||||
0x180,
|
||||
0x140,
|
||||
0x100
|
||||
};
|
||||
|
||||
static const s16 sUnref_841EF28[][2] = {
|
||||
{-4, 0x10},
|
||||
{-3, 0x30},
|
||||
{-2, 0x50},
|
||||
{-1, 0x70},
|
||||
{ 1, 0x70},
|
||||
{ 2, 0x50},
|
||||
{ 3, 0x30},
|
||||
{ 4, 0x10}
|
||||
};
|
||||
|
||||
static void SpriteCallbackDummy_EvoSparkles(struct Sprite * sprite)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
static void SetEvoSparklesMatrices(void)
|
||||
{
|
||||
u16 i;
|
||||
for (i = 0; i < NELEMS(sEvolutionSparkleMatrixScales); i++)
|
||||
SetOamMatrix(i + 20, sEvolutionSparkleMatrixScales[i], 0, 0, sEvolutionSparkleMatrixScales[i]);
|
||||
}
|
||||
|
||||
static void SpriteCB_PreEvoSparkleSet1(struct Sprite * sprite)
|
||||
{
|
||||
u8 mnum;
|
||||
if (sprite->pos1.y > 8)
|
||||
{
|
||||
sprite->pos1.y = 88 - sprite->data[7] * sprite->data[7] / 80;
|
||||
sprite->pos2.y = Sin((u8)sprite->data[6], sprite->data[5]) / 4;
|
||||
sprite->pos2.x = Cos((u8) sprite->data[6], sprite->data[5]);
|
||||
sprite->data[6] += 4;
|
||||
if (sprite->data[7] & 1)
|
||||
sprite->data[5]--;
|
||||
sprite->data[7]++;
|
||||
if (sprite->pos2.y > 0)
|
||||
sprite->subpriority = 1;
|
||||
else
|
||||
sprite->subpriority = 20;
|
||||
mnum = sprite->data[5] / 4 + 20;
|
||||
if (mnum > 31)
|
||||
mnum = 31;
|
||||
sprite->oam.matrixNum = mnum;
|
||||
}
|
||||
else
|
||||
{
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
}
|
||||
|
||||
static void CreatePreEvoSparkleSet1(u8 a0)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&sSpriteTemplate_EvolutionSparkles, 120, 88, 0);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
gSprites[spriteId].data[5] = 48;
|
||||
gSprites[spriteId].data[6] = a0;
|
||||
gSprites[spriteId].data[7] = 0;
|
||||
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
||||
gSprites[spriteId].oam.matrixNum = 31;
|
||||
gSprites[spriteId].callback = SpriteCB_PreEvoSparkleSet1;
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_PreEvoSparkleSet2(struct Sprite * sprite)
|
||||
{
|
||||
if (sprite->pos1.y < 88)
|
||||
{
|
||||
sprite->pos1.y = 8 + sprite->data[7] * sprite->data[7] / 5;
|
||||
sprite->pos2.y = Sin((u8)sprite->data[6], sprite->data[5]) / 4;
|
||||
sprite->pos2.x = Cos((u8)sprite->data[6], sprite->data[5]);
|
||||
sprite->data[5] = Sin((u8)(sprite->data[7] * 4), 40) + 8;
|
||||
sprite->data[7]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
}
|
||||
|
||||
static void CreatePreEvoSparkleSet2(u8 a0)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&sSpriteTemplate_EvolutionSparkles, 120, 8, 0);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
gSprites[spriteId].data[5] = 8;
|
||||
gSprites[spriteId].data[6] = a0;
|
||||
gSprites[spriteId].data[7] = 0;
|
||||
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
||||
gSprites[spriteId].oam.matrixNum = 25;
|
||||
gSprites[spriteId].subpriority = 1;
|
||||
gSprites[spriteId].callback = SpriteCB_PreEvoSparkleSet2;
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_PostEvoSparkleSet1(struct Sprite * sprite)
|
||||
{
|
||||
if (sprite->data[5] > 8)
|
||||
{
|
||||
sprite->pos2.y = Sin((u8)sprite->data[6], sprite->data[5]);
|
||||
sprite->pos2.x = Cos((u8)sprite->data[6], sprite->data[5]);
|
||||
sprite->data[5] -= sprite->data[3];
|
||||
sprite->data[6] += 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
}
|
||||
|
||||
static void CreatePostEvoSparkleSet1(u8 a0, u8 a1)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&sSpriteTemplate_EvolutionSparkles, 120, 56, 0);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
gSprites[spriteId].data[3] = a1;
|
||||
gSprites[spriteId].data[5] = 120;
|
||||
gSprites[spriteId].data[6] = a0;
|
||||
gSprites[spriteId].data[7] = 0;
|
||||
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
||||
gSprites[spriteId].oam.matrixNum = 31;
|
||||
gSprites[spriteId].subpriority = 1;
|
||||
gSprites[spriteId].callback = SpriteCB_PostEvoSparkleSet1;
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCB_PostEvoSparkleSet2(struct Sprite * sprite)
|
||||
{
|
||||
u8 mnum;
|
||||
if ((sprite->data[7] & 3) == 0)
|
||||
sprite->pos1.y++;
|
||||
if (sprite->data[6] < 128)
|
||||
{
|
||||
sprite->pos2.y = -Sin((u8)sprite->data[6], sprite->data[5]);
|
||||
sprite->pos1.x = 120 + sprite->data[3] * sprite->data[7] / 3;
|
||||
sprite->data[6]++;
|
||||
mnum = 31 - sprite->data[6] * 12 / 128;
|
||||
if (sprite->data[6] > 64)
|
||||
{
|
||||
sprite->subpriority = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
sprite->invisible = FALSE;
|
||||
sprite->subpriority = 20;
|
||||
if (sprite->data[6] > 112 && (sprite->data[6] & 1))
|
||||
sprite->invisible = TRUE;
|
||||
}
|
||||
if (mnum < 20)
|
||||
mnum = 20;
|
||||
sprite->oam.matrixNum = mnum;
|
||||
sprite->data[7]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
}
|
||||
|
||||
static void CreatePostEvoSparkleSet2(u8 unused)
|
||||
{
|
||||
u8 spriteId = CreateSprite(&sSpriteTemplate_EvolutionSparkles, 120, 56, 0);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
gSprites[spriteId].data[3] = 3 - (Random() % 7);
|
||||
gSprites[spriteId].data[5] = 48 + (Random() & 63);
|
||||
gSprites[spriteId].data[7] = 0;
|
||||
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
||||
gSprites[spriteId].oam.matrixNum = 31;
|
||||
gSprites[spriteId].subpriority = 20;
|
||||
gSprites[spriteId].callback = SpriteCB_PostEvoSparkleSet2;
|
||||
}
|
||||
}
|
||||
|
||||
void LoadEvoSparkleSpriteAndPal(void)
|
||||
{
|
||||
LoadCompressedSpriteSheetUsingHeap(sSpriteSheet_EvolutionSparkles);
|
||||
LoadSpritePalettes(sSpritePalette_EvolutionSparkles);
|
||||
}
|
||||
|
||||
u8 LaunchTask_PreEvoSparklesSet1(u16 a0)
|
||||
{
|
||||
u8 taskId = CreateTask(EvoTask_PreEvoSparkleSet1Init, 0);
|
||||
gTasks[taskId].data[1] = a0;
|
||||
return taskId;
|
||||
}
|
||||
|
||||
static void EvoTask_PreEvoSparkleSet1Init(u8 taskId)
|
||||
{
|
||||
SetEvoSparklesMatrices();
|
||||
gTasks[taskId].data[15] = 0;
|
||||
BeginNormalPaletteFade(3 << gTasks[taskId].data[1], 10, 0, 16, RGB_WHITE);
|
||||
gTasks[taskId].func = EvoTask_CreatePreEvoSparkleSet1;
|
||||
PlaySE(SE_W025);
|
||||
}
|
||||
|
||||
static void EvoTask_CreatePreEvoSparkleSet1(u8 taskId)
|
||||
{
|
||||
u8 i;
|
||||
if (gTasks[taskId].data[15] < 64)
|
||||
{
|
||||
if ((gTasks[taskId].data[15] & 7) == 0)
|
||||
{
|
||||
for (i = 0; i < 4; i++)
|
||||
CreatePreEvoSparkleSet1(2 * (gTasks[taskId].data[15] & 0x78) + 64 * i);
|
||||
}
|
||||
gTasks[taskId].data[15]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].data[15] = 96;
|
||||
gTasks[taskId].func = EvoTask_WaitForPre1SparklesToGoUp;
|
||||
}
|
||||
}
|
||||
|
||||
static void EvoTask_WaitForPre1SparklesToGoUp(u8 taskId)
|
||||
{
|
||||
if (gTasks[taskId].data[15] != 0)
|
||||
gTasks[taskId].data[15]--;
|
||||
else
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
u8 LaunchTask_PreEvoSparklesSet2(void)
|
||||
{
|
||||
u8 taskId = CreateTask(EvoTask_PreEvoSparkleSet2Init, 0);
|
||||
return taskId;
|
||||
}
|
||||
|
||||
static void EvoTask_PreEvoSparkleSet2Init(u8 taskId)
|
||||
{
|
||||
SetEvoSparklesMatrices();
|
||||
gTasks[taskId].data[15] = 0;
|
||||
gTasks[taskId].func = EvoTask_CreatePreEvoSparklesSet2;
|
||||
PlaySE(SE_W062B);
|
||||
}
|
||||
|
||||
static void EvoTask_CreatePreEvoSparklesSet2(u8 taskId)
|
||||
{
|
||||
u8 i;
|
||||
if (gTasks[taskId].data[15] < 96)
|
||||
{
|
||||
if (gTasks[taskId].data[15] < 6)
|
||||
{
|
||||
for (i = 0; i < 9; i++)
|
||||
CreatePreEvoSparkleSet2(16 * i);
|
||||
}
|
||||
gTasks[taskId].data[15]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].func = EvoTask_PreEvoSparkleSet2Teardown;
|
||||
}
|
||||
}
|
||||
|
||||
static void EvoTask_PreEvoSparkleSet2Teardown(u8 taskId)
|
||||
{
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
u8 LaunchTask_PostEvoSparklesSet1(void)
|
||||
{
|
||||
u8 taskId = CreateTask(EvoTask_PostEvoSparklesSet1Init, 0);
|
||||
return taskId;
|
||||
}
|
||||
|
||||
static void EvoTask_PostEvoSparklesSet1Init(u8 taskId)
|
||||
{
|
||||
SetEvoSparklesMatrices();
|
||||
gTasks[taskId].data[15] = 0;
|
||||
gTasks[taskId].func = EvoTask_CreatePostEvoSparklesSet1;
|
||||
PlaySE(SE_REAPOKE);
|
||||
}
|
||||
|
||||
static void EvoTask_CreatePostEvoSparklesSet1(u8 taskId)
|
||||
{
|
||||
u8 i;
|
||||
if (gTasks[taskId].data[15] < 48)
|
||||
{
|
||||
if (gTasks[taskId].data[15] == 0)
|
||||
{
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
CreatePostEvoSparkleSet1(i * 16, 4);
|
||||
}
|
||||
}
|
||||
if (gTasks[taskId].data[15] == 32)
|
||||
{
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
CreatePostEvoSparkleSet1(i * 16, 8);
|
||||
}
|
||||
}
|
||||
gTasks[taskId].data[15]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].func = EvoTask_PostEvoSparklesSet1Teardown;
|
||||
}
|
||||
}
|
||||
|
||||
static void EvoTask_PostEvoSparklesSet1Teardown(u8 taskId)
|
||||
{
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
u8 LaunchTask_PostEvoSparklesSet2AndFlash(u16 species)
|
||||
{
|
||||
u8 taskId = CreateTask(EvoTask_PostEvoSparklesSet2Init, 0);
|
||||
gTasks[taskId].data[2] = species;
|
||||
return taskId;
|
||||
}
|
||||
|
||||
static void EvoTask_PostEvoSparklesSet2Init(u8 taskId)
|
||||
{
|
||||
SetEvoSparklesMatrices();
|
||||
gTasks[taskId].data[15] = 0;
|
||||
IsMovingBackgroundTaskRunning();
|
||||
CpuCopy16(&gPlttBufferFaded[32], &gPlttBufferUnfaded[32], 96);
|
||||
BeginNormalPaletteFade(0xFFF90F1C, 0, 0, 16, RGB_WHITE);
|
||||
gTasks[taskId].func = EvoTask_CreatePostEvoSparklesSet2;
|
||||
PlaySE(SE_W080);
|
||||
}
|
||||
|
||||
static void EvoTask_CreatePostEvoSparklesSet2(u8 taskId)
|
||||
{
|
||||
u8 i;
|
||||
if (gTasks[taskId].data[15] < 128)
|
||||
{
|
||||
switch (gTasks[taskId].data[15])
|
||||
{
|
||||
default:
|
||||
if (gTasks[taskId].data[15] < 50)
|
||||
CreatePostEvoSparkleSet2(Random() & 7);
|
||||
break;
|
||||
case 0:
|
||||
for (i = 0; i < 8; i++)
|
||||
CreatePostEvoSparkleSet2(i);
|
||||
break;
|
||||
case 32:
|
||||
BeginNormalPaletteFade(0xFFFF0F1C, 16, 16, 0, RGB_WHITE);
|
||||
break;
|
||||
}
|
||||
gTasks[taskId].data[15]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].func = EvoTask_PostEvoSparklesSet2Teardown;
|
||||
}
|
||||
}
|
||||
|
||||
static void EvoTask_PostEvoSparklesSet2Teardown(u8 taskId)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
u8 LaunchTask_PostEvoSparklesSet2AndFlash_Trade(u16 species)
|
||||
{
|
||||
u8 taskId = CreateTask(EvoTask_PostEvoSparklesSet2TradeInit, 0);
|
||||
gTasks[taskId].data[2] = species;
|
||||
return taskId;
|
||||
}
|
||||
|
||||
static void EvoTask_PostEvoSparklesSet2TradeInit(u8 taskId)
|
||||
{
|
||||
SetEvoSparklesMatrices();
|
||||
gTasks[taskId].data[15] = 0;
|
||||
IsMovingBackgroundTaskRunning();
|
||||
CpuCopy16(&gPlttBufferFaded[32], &gPlttBufferUnfaded[32], 96);
|
||||
BeginNormalPaletteFade(0xFFF90F00, 0, 0, 16, RGB_WHITE);
|
||||
gTasks[taskId].func = EvoTask_CreatePostEvoSparklesSet2Trade;
|
||||
PlaySE(SE_W080);
|
||||
}
|
||||
|
||||
static void EvoTask_CreatePostEvoSparklesSet2Trade(u8 taskId)
|
||||
{
|
||||
u8 i;
|
||||
if (gTasks[taskId].data[15] < 128)
|
||||
{
|
||||
switch (gTasks[taskId].data[15])
|
||||
{
|
||||
default:
|
||||
if (gTasks[taskId].data[15] < 50)
|
||||
CreatePostEvoSparkleSet2(Random() & 7);
|
||||
break;
|
||||
case 0:
|
||||
for (i = 0; i < 8; i++)
|
||||
CreatePostEvoSparkleSet2(i);
|
||||
break;
|
||||
case 32:
|
||||
BeginNormalPaletteFade(0xFFFF0F00, 16, 16, 0, RGB_WHITE);
|
||||
break;
|
||||
}
|
||||
gTasks[taskId].data[15]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].func = EvoTask_PostEvoSparklesSet2Teardown;
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteCallbackDummy_MonSprites(struct Sprite * sprite)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
#define tPreEvoSpriteId data[1]
|
||||
#define tPostEvoSpriteId data[2]
|
||||
#define tPreEvoScale data[3]
|
||||
#define tPostEvoScale data[4]
|
||||
#define tDirection data[5]
|
||||
#define tSpeed data[6]
|
||||
|
||||
u8 LaunchTask_PrePostEvoMonSprites(u8 preEvoSpriteId, u8 postEvoSpriteId)
|
||||
{
|
||||
u16 i;
|
||||
u8 taskId;
|
||||
u16 palette[16];
|
||||
for (i = 0; i < 16; i++)
|
||||
palette[i] = RGB_WHITE;
|
||||
taskId = CreateTask(EvoTask_PrePostEvoMonSpritesInit, 0);
|
||||
gTasks[taskId].tPreEvoSpriteId = preEvoSpriteId;
|
||||
gTasks[taskId].tPostEvoSpriteId = postEvoSpriteId;
|
||||
gTasks[taskId].tPreEvoScale = 256;
|
||||
gTasks[taskId].tPostEvoScale = 16;
|
||||
SetOamMatrix(30, 0x10000 / gTasks[taskId].tPreEvoScale, 0, 0, 0x10000 / gTasks[taskId].tPreEvoScale);
|
||||
SetOamMatrix(31, 0x10000 / gTasks[taskId].tPostEvoScale, 0, 0, 0x10000 / gTasks[taskId].tPostEvoScale);
|
||||
gSprites[preEvoSpriteId].callback = SpriteCallbackDummy_MonSprites;
|
||||
gSprites[preEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
||||
gSprites[preEvoSpriteId].oam.matrixNum = 30;
|
||||
gSprites[preEvoSpriteId].invisible = FALSE;
|
||||
CpuCopy16(palette, &gPlttBufferFaded[256 + 16 * gSprites[preEvoSpriteId].oam.paletteNum], 32);
|
||||
gSprites[postEvoSpriteId].callback = SpriteCallbackDummy_MonSprites;
|
||||
gSprites[postEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
|
||||
gSprites[postEvoSpriteId].oam.matrixNum = 31;
|
||||
gSprites[postEvoSpriteId].invisible = FALSE;
|
||||
CpuCopy16(palette, &gPlttBufferFaded[256 + 16 * gSprites[postEvoSpriteId].oam.paletteNum], 32);
|
||||
gTasks[taskId].EvoGraphicsTaskEvoStop = FALSE;
|
||||
return taskId;
|
||||
}
|
||||
|
||||
static void EvoTask_PrePostEvoMonSpritesInit(u8 taskId)
|
||||
{
|
||||
gTasks[taskId].tDirection = FALSE;
|
||||
gTasks[taskId].tSpeed = 8;
|
||||
gTasks[taskId].func = EvoTask_ChooseNextEvoSpriteAnim;
|
||||
}
|
||||
|
||||
static void EvoTask_ChooseNextEvoSpriteAnim(u8 taskId)
|
||||
{
|
||||
if (gTasks[taskId].EvoGraphicsTaskEvoStop)
|
||||
{
|
||||
PreEvoVisible_PostEvoInvisible_KillTask(taskId);
|
||||
}
|
||||
else if (gTasks[taskId].tSpeed == 128)
|
||||
{
|
||||
PreEvoInvisible_PostEvoVisible_KillTask(taskId);
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].tSpeed += 2;
|
||||
gTasks[taskId].tDirection ^= TRUE;
|
||||
gTasks[taskId].func = EvoTask_ShrinkOrExpandEvoSprites;
|
||||
}
|
||||
}
|
||||
|
||||
static void EvoTask_ShrinkOrExpandEvoSprites(u8 taskId)
|
||||
{
|
||||
u8 r6;
|
||||
if (gTasks[taskId].EvoGraphicsTaskEvoStop)
|
||||
{
|
||||
gTasks[taskId].func = PreEvoVisible_PostEvoInvisible_KillTask;
|
||||
}
|
||||
else
|
||||
{
|
||||
r6 = 0;
|
||||
if (!gTasks[taskId].tDirection)
|
||||
{
|
||||
if (gTasks[taskId].tPreEvoScale < 0x100 - gTasks[taskId].tSpeed)
|
||||
{
|
||||
gTasks[taskId].tPreEvoScale += gTasks[taskId].tSpeed;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].tPreEvoScale = 0x100;
|
||||
r6 = 1;
|
||||
}
|
||||
if (gTasks[taskId].tPostEvoScale > 0x10 + gTasks[taskId].tSpeed)
|
||||
{
|
||||
gTasks[taskId].tPostEvoScale -= gTasks[taskId].tSpeed;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].tPostEvoScale = 0x10;
|
||||
r6++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gTasks[taskId].tPostEvoScale < 0x100 - gTasks[taskId].tSpeed)
|
||||
{
|
||||
gTasks[taskId].tPostEvoScale += gTasks[taskId].tSpeed;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].tPostEvoScale = 0x100;
|
||||
r6 = 1;
|
||||
}
|
||||
if (gTasks[taskId].tPreEvoScale > 0x10 + gTasks[taskId].tSpeed)
|
||||
{
|
||||
gTasks[taskId].tPreEvoScale -= gTasks[taskId].tSpeed;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].tPreEvoScale = 0x10;
|
||||
r6++;
|
||||
}
|
||||
}
|
||||
SetOamMatrix(30, 0x10000 / gTasks[taskId].tPreEvoScale, 0, 0, 0x10000 / gTasks[taskId].tPreEvoScale);
|
||||
SetOamMatrix(31, 0x10000 / gTasks[taskId].tPostEvoScale, 0, 0, 0x10000 / gTasks[taskId].tPostEvoScale);
|
||||
if (r6 == 2)
|
||||
{
|
||||
gTasks[taskId].func = EvoTask_ChooseNextEvoSpriteAnim;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void PreEvoInvisible_PostEvoVisible_KillTask(u8 taskId)
|
||||
{
|
||||
gSprites[gTasks[taskId].tPreEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_OFF;
|
||||
gSprites[gTasks[taskId].tPreEvoSpriteId].oam.matrixNum = 0;
|
||||
gSprites[gTasks[taskId].tPreEvoSpriteId].invisible = TRUE;
|
||||
gSprites[gTasks[taskId].tPostEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_OFF;
|
||||
gSprites[gTasks[taskId].tPostEvoSpriteId].oam.matrixNum = 0;
|
||||
gSprites[gTasks[taskId].tPostEvoSpriteId].invisible = FALSE;
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
static void PreEvoVisible_PostEvoInvisible_KillTask(u8 taskId)
|
||||
{
|
||||
gSprites[gTasks[taskId].tPreEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_OFF;
|
||||
gSprites[gTasks[taskId].tPreEvoSpriteId].oam.matrixNum = 0;
|
||||
gSprites[gTasks[taskId].tPreEvoSpriteId].invisible = FALSE;
|
||||
gSprites[gTasks[taskId].tPostEvoSpriteId].oam.affineMode = ST_OAM_AFFINE_OFF;
|
||||
gSprites[gTasks[taskId].tPostEvoSpriteId].oam.matrixNum = 0;
|
||||
gSprites[gTasks[taskId].tPostEvoSpriteId].invisible = TRUE;
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
#undef tPreEvoSpriteId
|
||||
#undef tPostEvoSpriteId
|
||||
#undef tPreEvoScale
|
||||
#undef tPostEvoScale
|
||||
#undef tDirection
|
||||
#undef tSpeed
|
||||
File diff suppressed because it is too large
Load Diff
@@ -135,7 +135,7 @@ static const union AnimCmd *const gUnknown_83E632C[] =
|
||||
gUnknown_83E6308,
|
||||
};
|
||||
|
||||
static const union AnimCmd *const gUnknown_83E6330[] =
|
||||
const union AnimCmd *const gUnknown_83E6330[] =
|
||||
{
|
||||
gUnknown_83E6310,
|
||||
};
|
||||
|
||||
+1
-1
@@ -384,7 +384,7 @@ static bool8 ItemPc_DoGfxSetup(void)
|
||||
gMain.state++;
|
||||
break;
|
||||
case 20:
|
||||
if (sub_80BF72C() != TRUE)
|
||||
if ((u8)sub_80BF72C() != TRUE)
|
||||
gMain.state++;
|
||||
break;
|
||||
default:
|
||||
|
||||
+3
-3
@@ -125,17 +125,17 @@ bool8 MenuHelpers_LinkSomething(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_80BF72C(void)
|
||||
bool32 sub_80BF72C(void)
|
||||
{
|
||||
if (!MenuHelpers_LinkSomething())
|
||||
return FALSE;
|
||||
else
|
||||
return sub_8058244();
|
||||
return (u8)sub_8058244();
|
||||
}
|
||||
|
||||
bool8 sub_80BF748(void)
|
||||
{
|
||||
if (sub_80BF72C() == TRUE)
|
||||
if ((u8)sub_80BF72C() == TRUE)
|
||||
return TRUE;
|
||||
else if (sub_800B270() != TRUE)
|
||||
return FALSE;
|
||||
|
||||
+26
-24
@@ -21,11 +21,13 @@
|
||||
#define STD_WINDOW_PALETTE_NUM 14
|
||||
#define STD_WINDOW_BASE_TILE_NUM 0x214
|
||||
|
||||
static EWRAM_DATA bool8 gUnknown_203AB58[4] = {FALSE}; // knizz: bgmaps_that_need_syncing
|
||||
static EWRAM_DATA u16 gUnknown_203AB5C = {0};
|
||||
static EWRAM_DATA void *gUnknown_203AB60[0x20] = {NULL};
|
||||
static EWRAM_DATA bool8 sScheduledBgCopiesToVram[4] = {FALSE};
|
||||
static EWRAM_DATA u16 sTempTileDataBufferCursor = {0};
|
||||
static EWRAM_DATA void *sTempTileDataBuffers[0x20] = {NULL};
|
||||
static EWRAM_DATA u8 sStartMenuWindowId = {0};
|
||||
|
||||
static const u16 gUnknown_841EF48[] = INCBIN_U16("graphics/unknown/unk_841EF48.4bpp");
|
||||
|
||||
const u16 gUnknown_841F1C8[] = INCBIN_U16("graphics/text_window/unk_841F1C8.4bpp");
|
||||
const u16 gTMCaseMainWindowPalette[] = INCBIN_U16("graphics/tm_case/unk_841F408.gbapal");
|
||||
|
||||
@@ -169,35 +171,35 @@ static void TaskFreeBufAfterCopyingTileDataToVram(u8 taskId);
|
||||
|
||||
void ClearScheduledBgCopiesToVram(void)
|
||||
{
|
||||
memset(gUnknown_203AB58, 0, sizeof(gUnknown_203AB58));
|
||||
memset(sScheduledBgCopiesToVram, 0, sizeof(sScheduledBgCopiesToVram));
|
||||
}
|
||||
|
||||
void ScheduleBgCopyTilemapToVram(u8 bgId)
|
||||
{
|
||||
gUnknown_203AB58[bgId] = TRUE;
|
||||
sScheduledBgCopiesToVram[bgId] = TRUE;
|
||||
}
|
||||
|
||||
void DoScheduledBgTilemapCopiesToVram(void)
|
||||
{
|
||||
if (gUnknown_203AB58[0] == TRUE)
|
||||
if (sScheduledBgCopiesToVram[0] == TRUE)
|
||||
{
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
gUnknown_203AB58[0] = FALSE;
|
||||
sScheduledBgCopiesToVram[0] = FALSE;
|
||||
}
|
||||
if (gUnknown_203AB58[1] == TRUE)
|
||||
if (sScheduledBgCopiesToVram[1] == TRUE)
|
||||
{
|
||||
CopyBgTilemapBufferToVram(1);
|
||||
gUnknown_203AB58[1] = FALSE;
|
||||
sScheduledBgCopiesToVram[1] = FALSE;
|
||||
}
|
||||
if (gUnknown_203AB58[2] == TRUE)
|
||||
if (sScheduledBgCopiesToVram[2] == TRUE)
|
||||
{
|
||||
CopyBgTilemapBufferToVram(2);
|
||||
gUnknown_203AB58[2] = FALSE;
|
||||
sScheduledBgCopiesToVram[2] = FALSE;
|
||||
}
|
||||
if (gUnknown_203AB58[3] == TRUE)
|
||||
if (sScheduledBgCopiesToVram[3] == TRUE)
|
||||
{
|
||||
CopyBgTilemapBufferToVram(3);
|
||||
gUnknown_203AB58[3] = FALSE;
|
||||
sScheduledBgCopiesToVram[3] = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -205,11 +207,11 @@ void ResetTempTileDataBuffers(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < (s32)NELEMS(gUnknown_203AB60); i++)
|
||||
for (i = 0; i < (s32)NELEMS(sTempTileDataBuffers); i++)
|
||||
{
|
||||
gUnknown_203AB60[i] = NULL;
|
||||
sTempTileDataBuffers[i] = NULL;
|
||||
}
|
||||
gUnknown_203AB5C = 0;
|
||||
sTempTileDataBufferCursor = 0;
|
||||
}
|
||||
|
||||
bool8 FreeTempTileDataBuffersIfPossible(void)
|
||||
@@ -218,13 +220,13 @@ bool8 FreeTempTileDataBuffersIfPossible(void)
|
||||
|
||||
if (!IsDma3ManagerBusyWithBgCopy())
|
||||
{
|
||||
if (gUnknown_203AB5C)
|
||||
if (sTempTileDataBufferCursor)
|
||||
{
|
||||
for (i = 0; i < gUnknown_203AB5C; i++)
|
||||
for (i = 0; i < sTempTileDataBufferCursor; i++)
|
||||
{
|
||||
FREE_AND_SET_NULL(gUnknown_203AB60[i]);
|
||||
FREE_AND_SET_NULL(sTempTileDataBuffers[i]);
|
||||
}
|
||||
gUnknown_203AB5C = 0;
|
||||
sTempTileDataBufferCursor = 0;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
@@ -238,7 +240,7 @@ void *DecompressAndCopyTileDataToVram(u8 bgId, const void *src, u32 size, u16 of
|
||||
{
|
||||
u32 sizeOut;
|
||||
|
||||
if (gUnknown_203AB5C < NELEMS(gUnknown_203AB60))
|
||||
if (sTempTileDataBufferCursor < NELEMS(sTempTileDataBuffers))
|
||||
{
|
||||
void *ptr = MallocAndDecompress(src, &sizeOut);
|
||||
if (!size)
|
||||
@@ -246,7 +248,7 @@ void *DecompressAndCopyTileDataToVram(u8 bgId, const void *src, u32 size, u16 of
|
||||
if (ptr)
|
||||
{
|
||||
CopyDecompressedTileDataToVram(bgId, ptr, size, offset, mode);
|
||||
gUnknown_203AB60[gUnknown_203AB5C++] = ptr;
|
||||
sTempTileDataBuffers[sTempTileDataBufferCursor++] = ptr;
|
||||
}
|
||||
return ptr;
|
||||
}
|
||||
@@ -257,7 +259,7 @@ void *DecompressAndCopyTileDataToVram2(u8 bgId, const void *src, u32 size, u16 o
|
||||
{
|
||||
u32 sizeOut;
|
||||
|
||||
if (gUnknown_203AB5C < NELEMS(gUnknown_203AB60))
|
||||
if (sTempTileDataBufferCursor < NELEMS(sTempTileDataBuffers))
|
||||
{
|
||||
void *ptr = MallocAndDecompress(src, &sizeOut);
|
||||
if (sizeOut > size)
|
||||
@@ -265,7 +267,7 @@ void *DecompressAndCopyTileDataToVram2(u8 bgId, const void *src, u32 size, u16 o
|
||||
if (ptr)
|
||||
{
|
||||
CopyDecompressedTileDataToVram(bgId, ptr, sizeOut, offset, mode);
|
||||
gUnknown_203AB60[gUnknown_203AB5C++] = ptr;
|
||||
sTempTileDataBuffers[sTempTileDataBufferCursor++] = ptr;
|
||||
}
|
||||
return ptr;
|
||||
}
|
||||
|
||||
+201
-553
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -134,7 +134,7 @@ static const union AffineAnimCmd gUnknown_83E6A68[] =
|
||||
AFFINEANIMCMD_JUMP(0),
|
||||
};
|
||||
|
||||
static const union AffineAnimCmd *const gUnknown_83E6A80[] =
|
||||
const union AffineAnimCmd *const gUnknown_83E6A80[] =
|
||||
{
|
||||
gUnknown_83E6A68,
|
||||
};
|
||||
|
||||
+12
-356
@@ -2899,7 +2899,7 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
|
||||
struct PokemonSubstruct2 *substruct2 = NULL;
|
||||
struct PokemonSubstruct3 *substruct3 = NULL;
|
||||
|
||||
if (field > MON_DATA_10)
|
||||
if (field > MON_DATA_ENCRYPT_SEPARATOR)
|
||||
{
|
||||
substruct0 = &(GetSubstruct(boxMon, boxMon->personality, 0)->type0);
|
||||
substruct1 = &(GetSubstruct(boxMon, boxMon->personality, 1)->type1);
|
||||
@@ -2995,7 +2995,7 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
|
||||
case MON_DATA_CHECKSUM:
|
||||
retVal = boxMon->checksum;
|
||||
break;
|
||||
case MON_DATA_10:
|
||||
case MON_DATA_ENCRYPT_SEPARATOR:
|
||||
retVal = boxMon->unknown;
|
||||
break;
|
||||
case MON_DATA_SPECIES:
|
||||
@@ -3236,7 +3236,7 @@ u32 GetBoxMonData(struct BoxPokemon *boxMon, s32 field, u8 *data)
|
||||
break;
|
||||
}
|
||||
|
||||
if (field > MON_DATA_10)
|
||||
if (field > MON_DATA_ENCRYPT_SEPARATOR)
|
||||
EncryptBoxMon(boxMon);
|
||||
|
||||
return retVal;
|
||||
@@ -3323,7 +3323,7 @@ void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg)
|
||||
struct PokemonSubstruct2 *substruct2 = NULL;
|
||||
struct PokemonSubstruct3 *substruct3 = NULL;
|
||||
|
||||
if (field > MON_DATA_10)
|
||||
if (field > MON_DATA_ENCRYPT_SEPARATOR)
|
||||
{
|
||||
substruct0 = &(GetSubstruct(boxMon, boxMon->personality, 0)->type0);
|
||||
substruct1 = &(GetSubstruct(boxMon, boxMon->personality, 1)->type1);
|
||||
@@ -3382,7 +3382,7 @@ void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg)
|
||||
case MON_DATA_CHECKSUM:
|
||||
SET16(boxMon->checksum);
|
||||
break;
|
||||
case MON_DATA_10:
|
||||
case MON_DATA_ENCRYPT_SEPARATOR:
|
||||
SET16(boxMon->unknown);
|
||||
break;
|
||||
case MON_DATA_SPECIES:
|
||||
@@ -3582,7 +3582,7 @@ void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg)
|
||||
break;
|
||||
}
|
||||
|
||||
if (field > MON_DATA_10)
|
||||
if (field > MON_DATA_ENCRYPT_SEPARATOR)
|
||||
{
|
||||
boxMon->checksum = CalculateBoxMonChecksum(boxMon);
|
||||
EncryptBoxMon(boxMon);
|
||||
@@ -6094,7 +6094,6 @@ static void OakSpeechNidoranFSetupTemplateDummy(struct OakSpeechNidoranFStruct *
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
struct OakSpeechNidoranFStruct *OakSpeechNidoranFSetup(u8 battlePosition, bool8 enable)
|
||||
{
|
||||
s32 size;
|
||||
@@ -6134,8 +6133,7 @@ struct OakSpeechNidoranFStruct *OakSpeechNidoranFSetup(u8 battlePosition, bool8
|
||||
battlePosition = 1;
|
||||
if (battlePosition > 8)
|
||||
battlePosition = 8;
|
||||
// The following two statements refused to cooperate.
|
||||
sOakSpeechNidoranResources->spriteCount = battlePosition;
|
||||
sOakSpeechNidoranResources->spriteCount = (battlePosition << 16) >> 16;
|
||||
sOakSpeechNidoranResources->battlePosition = battlePosition;
|
||||
sOakSpeechNidoranResources->frameCount = 4;
|
||||
sOakSpeechNidoranResources->enable2 = FALSE;
|
||||
@@ -6151,8 +6149,11 @@ struct OakSpeechNidoranFStruct *OakSpeechNidoranFSetup(u8 battlePosition, bool8
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < (s8)sOakSpeechNidoranResources->spriteCount; ++i)
|
||||
sOakSpeechNidoranResources->bufferPtrs[i] = &sOakSpeechNidoranResources->dataBuffer[sOakSpeechNidoranResources->sizePerSprite * i];
|
||||
do
|
||||
{
|
||||
for (i = 0; i < (s8)sOakSpeechNidoranResources->spriteCount; ++i)
|
||||
sOakSpeechNidoranResources->bufferPtrs[i] = &sOakSpeechNidoranResources->dataBuffer[sOakSpeechNidoranResources->sizePerSprite * i];
|
||||
} while (0);
|
||||
}
|
||||
sOakSpeechNidoranResources->templates = AllocZeroed(sizeof(struct SpriteTemplate) * sOakSpeechNidoranResources->spriteCount);
|
||||
sOakSpeechNidoranResources->frameImages = AllocZeroed(sOakSpeechNidoranResources->spriteCount * sizeof(struct SpriteFrameImage) * sOakSpeechNidoranResources->frameCount);
|
||||
@@ -6200,351 +6201,6 @@ struct OakSpeechNidoranFStruct *OakSpeechNidoranFSetup(u8 battlePosition, bool8
|
||||
}
|
||||
return sOakSpeechNidoranResources;
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
struct OakSpeechNidoranFStruct *OakSpeechNidoranFSetup(u8 battlePosition, bool8 enable)
|
||||
{
|
||||
asm_unified("\n\
|
||||
push {r4-r7,lr}\n\
|
||||
mov r7, r8\n\
|
||||
push {r7}\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r6, r0, 24\n\
|
||||
lsls r1, 24\n\
|
||||
lsrs r5, r1, 24\n\
|
||||
movs r0, 0\n\
|
||||
mov r8, r0\n\
|
||||
ldr r4, _08044B34 @ =sOakSpeechNidoranResources\n\
|
||||
ldr r1, [r4]\n\
|
||||
cmp r1, 0\n\
|
||||
beq _08044B1E\n\
|
||||
ldrb r0, [r1, 0x2]\n\
|
||||
cmp r0, 0xA3\n\
|
||||
beq _08044B2E\n\
|
||||
adds r0, r1, 0\n\
|
||||
movs r1, 0\n\
|
||||
movs r2, 0x18\n\
|
||||
bl memset\n\
|
||||
mov r1, r8\n\
|
||||
str r1, [r4]\n\
|
||||
_08044B1E:\n\
|
||||
ldr r4, _08044B34 @ =sOakSpeechNidoranResources\n\
|
||||
movs r0, 0x18\n\
|
||||
bl AllocZeroed\n\
|
||||
adds r2, r0, 0\n\
|
||||
str r2, [r4]\n\
|
||||
cmp r2, 0\n\
|
||||
bne _08044B38\n\
|
||||
_08044B2E:\n\
|
||||
movs r0, 0\n\
|
||||
b _08044D70\n\
|
||||
.align 2, 0\n\
|
||||
_08044B34: .4byte sOakSpeechNidoranResources\n\
|
||||
_08044B38:\n\
|
||||
cmp r5, 0\n\
|
||||
beq _08044B94\n\
|
||||
cmp r5, 0x1\n\
|
||||
bne _08044B94\n\
|
||||
cmp r6, 0x4\n\
|
||||
bne _08044B5E\n\
|
||||
ldrb r1, [r2]\n\
|
||||
movs r0, 0x10\n\
|
||||
negs r0, r0\n\
|
||||
ands r0, r1\n\
|
||||
movs r1, 0x4\n\
|
||||
orrs r0, r1\n\
|
||||
strb r0, [r2]\n\
|
||||
ldr r2, [r4]\n\
|
||||
ldrb r1, [r2]\n\
|
||||
movs r0, 0xF\n\
|
||||
ands r0, r1\n\
|
||||
movs r1, 0x40\n\
|
||||
b _08044B7C\n\
|
||||
_08044B5E:\n\
|
||||
cmp r6, 0x4\n\
|
||||
bls _08044B64\n\
|
||||
movs r6, 0\n\
|
||||
_08044B64:\n\
|
||||
ldrb r1, [r2]\n\
|
||||
movs r0, 0x10\n\
|
||||
negs r0, r0\n\
|
||||
ands r0, r1\n\
|
||||
movs r1, 0x1\n\
|
||||
orrs r0, r1\n\
|
||||
strb r0, [r2]\n\
|
||||
ldr r2, [r4]\n\
|
||||
ldrb r1, [r2]\n\
|
||||
movs r0, 0xF\n\
|
||||
ands r0, r1\n\
|
||||
movs r1, 0x10\n\
|
||||
_08044B7C:\n\
|
||||
orrs r0, r1\n\
|
||||
strb r0, [r2]\n\
|
||||
ldr r2, _08044B90 @ =sOakSpeechNidoranResources\n\
|
||||
ldr r1, [r2]\n\
|
||||
movs r0, 0x4\n\
|
||||
strb r0, [r1, 0x1]\n\
|
||||
ldr r1, [r2]\n\
|
||||
movs r0, 0x1\n\
|
||||
strb r0, [r1, 0x3]\n\
|
||||
b _08044BD0\n\
|
||||
.align 2, 0\n\
|
||||
_08044B90: .4byte sOakSpeechNidoranResources\n\
|
||||
_08044B94:\n\
|
||||
cmp r6, 0\n\
|
||||
bne _08044B9A\n\
|
||||
movs r6, 0x1\n\
|
||||
_08044B9A:\n\
|
||||
cmp r6, 0x8\n\
|
||||
bls _08044BA0\n\
|
||||
movs r6, 0x8\n\
|
||||
_08044BA0:\n\
|
||||
ldr r4, _08044C10 @ =sOakSpeechNidoranResources\n\
|
||||
ldr r3, [r4]\n\
|
||||
movs r0, 0xF\n\
|
||||
adds r1, r6, 0\n\
|
||||
ands r1, r0\n\
|
||||
ldrb r2, [r3]\n\
|
||||
movs r0, 0x10\n\
|
||||
negs r0, r0\n\
|
||||
ands r0, r2\n\
|
||||
orrs r0, r1\n\
|
||||
strb r0, [r3]\n\
|
||||
ldr r2, [r4]\n\
|
||||
lsls r3, r6, 4\n\
|
||||
ldrb r1, [r2]\n\
|
||||
movs r0, 0xF\n\
|
||||
ands r0, r1\n\
|
||||
orrs r0, r3\n\
|
||||
strb r0, [r2]\n\
|
||||
ldr r1, [r4]\n\
|
||||
movs r2, 0\n\
|
||||
movs r0, 0x4\n\
|
||||
strb r0, [r1, 0x1]\n\
|
||||
ldr r0, [r4]\n\
|
||||
strb r2, [r0, 0x3]\n\
|
||||
_08044BD0:\n\
|
||||
ldr r5, _08044C10 @ =sOakSpeechNidoranResources\n\
|
||||
ldr r0, [r5]\n\
|
||||
ldrb r1, [r0, 0x1]\n\
|
||||
lsls r1, 11\n\
|
||||
str r1, [r0, 0x4]\n\
|
||||
ldrb r0, [r0]\n\
|
||||
lsls r0, 28\n\
|
||||
lsrs r0, 28\n\
|
||||
muls r0, r1\n\
|
||||
bl AllocZeroed\n\
|
||||
ldr r1, [r5]\n\
|
||||
str r0, [r1, 0x8]\n\
|
||||
ldrb r0, [r1]\n\
|
||||
lsls r0, 28\n\
|
||||
lsrs r0, 23\n\
|
||||
bl AllocZeroed\n\
|
||||
adds r2, r0, 0\n\
|
||||
ldr r1, [r5]\n\
|
||||
str r2, [r1, 0xC]\n\
|
||||
ldr r0, [r1, 0x8]\n\
|
||||
cmp r0, 0\n\
|
||||
beq _08044C04\n\
|
||||
cmp r2, 0\n\
|
||||
bne _08044C14\n\
|
||||
_08044C04:\n\
|
||||
movs r0, 0x1\n\
|
||||
mov r1, r8\n\
|
||||
orrs r1, r0\n\
|
||||
mov r8, r1\n\
|
||||
b _08044C44\n\
|
||||
.align 2, 0\n\
|
||||
_08044C10: .4byte sOakSpeechNidoranResources\n\
|
||||
_08044C14:\n\
|
||||
ldrb r0, [r1]\n\
|
||||
lsls r0, 28\n\
|
||||
movs r4, 0\n\
|
||||
adds r3, r5, 0\n\
|
||||
cmp r0, 0\n\
|
||||
beq _08044C44\n\
|
||||
_08044C20:\n\
|
||||
ldr r3, [r5]\n\
|
||||
ldr r0, [r3, 0xC]\n\
|
||||
lsls r1, r4, 2\n\
|
||||
adds r1, r0\n\
|
||||
ldr r0, [r3, 0x4]\n\
|
||||
adds r2, r0, 0\n\
|
||||
muls r2, r4\n\
|
||||
ldr r0, [r3, 0x8]\n\
|
||||
adds r0, r2\n\
|
||||
str r0, [r1]\n\
|
||||
adds r0, r4, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r4, r0, 24\n\
|
||||
ldrb r0, [r3]\n\
|
||||
lsls r0, 28\n\
|
||||
lsrs r0, 28\n\
|
||||
cmp r4, r0\n\
|
||||
blt _08044C20\n\
|
||||
_08044C44:\n\
|
||||
ldr r5, _08044C8C @ =sOakSpeechNidoranResources\n\
|
||||
ldr r0, [r5]\n\
|
||||
ldrb r1, [r0]\n\
|
||||
lsls r1, 28\n\
|
||||
lsrs r1, 28\n\
|
||||
lsls r0, r1, 1\n\
|
||||
adds r0, r1\n\
|
||||
lsls r0, 3\n\
|
||||
bl AllocZeroed\n\
|
||||
ldr r2, [r5]\n\
|
||||
str r0, [r2, 0x10]\n\
|
||||
ldrb r1, [r2]\n\
|
||||
lsls r1, 28\n\
|
||||
lsrs r1, 28\n\
|
||||
ldrb r0, [r2, 0x1]\n\
|
||||
lsls r0, 3\n\
|
||||
muls r0, r1\n\
|
||||
bl AllocZeroed\n\
|
||||
adds r2, r0, 0\n\
|
||||
ldr r1, [r5]\n\
|
||||
str r2, [r1, 0x14]\n\
|
||||
ldr r0, [r1, 0x10]\n\
|
||||
cmp r0, 0\n\
|
||||
beq _08044C7C\n\
|
||||
cmp r2, 0\n\
|
||||
bne _08044C90\n\
|
||||
_08044C7C:\n\
|
||||
movs r0, 0x2\n\
|
||||
mov r1, r8\n\
|
||||
orrs r1, r0\n\
|
||||
lsls r0, r1, 24\n\
|
||||
lsrs r0, 24\n\
|
||||
mov r8, r0\n\
|
||||
b _08044CE2\n\
|
||||
.align 2, 0\n\
|
||||
_08044C8C: .4byte sOakSpeechNidoranResources\n\
|
||||
_08044C90:\n\
|
||||
movs r4, 0\n\
|
||||
ldrb r0, [r1, 0x1]\n\
|
||||
ldrb r1, [r1]\n\
|
||||
lsls r1, 28\n\
|
||||
lsrs r1, 28\n\
|
||||
muls r0, r1\n\
|
||||
adds r3, r5, 0\n\
|
||||
cmp r4, r0\n\
|
||||
bge _08044CC6\n\
|
||||
adds r7, r3, 0\n\
|
||||
movs r5, 0x80\n\
|
||||
lsls r5, 4\n\
|
||||
_08044CA8:\n\
|
||||
ldr r2, [r7]\n\
|
||||
ldr r1, [r2, 0x14]\n\
|
||||
lsls r0, r4, 3\n\
|
||||
adds r0, r1\n\
|
||||
strh r5, [r0, 0x4]\n\
|
||||
adds r0, r4, 0x1\n\
|
||||
lsls r0, 24\n\
|
||||
lsrs r4, r0, 24\n\
|
||||
ldrb r1, [r2, 0x1]\n\
|
||||
ldrb r0, [r2]\n\
|
||||
lsls r0, 28\n\
|
||||
lsrs r0, 28\n\
|
||||
muls r0, r1\n\
|
||||
cmp r4, r0\n\
|
||||
blt _08044CA8\n\
|
||||
_08044CC6:\n\
|
||||
ldr r0, [r3]\n\
|
||||
ldrb r4, [r0, 0x3]\n\
|
||||
cmp r4, 0\n\
|
||||
beq _08044CDA\n\
|
||||
cmp r4, 0x1\n\
|
||||
bne _08044CDA\n\
|
||||
adds r1, r6, 0\n\
|
||||
bl OakSpeechNidoranFSetupTemplate\n\
|
||||
b _08044CE2\n\
|
||||
_08044CDA:\n\
|
||||
ldr r0, _08044D60 @ =sOakSpeechNidoranResources\n\
|
||||
ldr r0, [r0]\n\
|
||||
bl OakSpeechNidoranFSetupTemplateDummy\n\
|
||||
_08044CE2:\n\
|
||||
movs r0, 0x2\n\
|
||||
mov r1, r8\n\
|
||||
ands r0, r1\n\
|
||||
cmp r0, 0\n\
|
||||
beq _08044D12\n\
|
||||
ldr r4, _08044D60 @ =sOakSpeechNidoranResources\n\
|
||||
ldr r0, [r4]\n\
|
||||
ldr r0, [r0, 0x14]\n\
|
||||
cmp r0, 0\n\
|
||||
beq _08044D00\n\
|
||||
bl Free\n\
|
||||
ldr r1, [r4]\n\
|
||||
movs r0, 0\n\
|
||||
str r0, [r1, 0x14]\n\
|
||||
_08044D00:\n\
|
||||
ldr r0, [r4]\n\
|
||||
ldr r0, [r0, 0x10]\n\
|
||||
cmp r0, 0\n\
|
||||
beq _08044D12\n\
|
||||
bl Free\n\
|
||||
ldr r1, [r4]\n\
|
||||
movs r0, 0\n\
|
||||
str r0, [r1, 0x10]\n\
|
||||
_08044D12:\n\
|
||||
movs r0, 0x1\n\
|
||||
mov r1, r8\n\
|
||||
ands r0, r1\n\
|
||||
cmp r0, 0\n\
|
||||
beq _08044D42\n\
|
||||
ldr r4, _08044D60 @ =sOakSpeechNidoranResources\n\
|
||||
ldr r0, [r4]\n\
|
||||
ldr r0, [r0, 0xC]\n\
|
||||
cmp r0, 0\n\
|
||||
beq _08044D30\n\
|
||||
bl Free\n\
|
||||
ldr r1, [r4]\n\
|
||||
movs r0, 0\n\
|
||||
str r0, [r1, 0xC]\n\
|
||||
_08044D30:\n\
|
||||
ldr r0, [r4]\n\
|
||||
ldr r0, [r0, 0x8]\n\
|
||||
cmp r0, 0\n\
|
||||
beq _08044D42\n\
|
||||
bl Free\n\
|
||||
ldr r1, [r4]\n\
|
||||
movs r0, 0\n\
|
||||
str r0, [r1, 0x8]\n\
|
||||
_08044D42:\n\
|
||||
mov r0, r8\n\
|
||||
cmp r0, 0\n\
|
||||
beq _08044D64\n\
|
||||
ldr r4, _08044D60 @ =sOakSpeechNidoranResources\n\
|
||||
ldr r0, [r4]\n\
|
||||
movs r1, 0\n\
|
||||
movs r2, 0x18\n\
|
||||
bl memset\n\
|
||||
ldr r0, [r4]\n\
|
||||
bl Free\n\
|
||||
movs r0, 0\n\
|
||||
str r0, [r4]\n\
|
||||
b _08044D6C\n\
|
||||
.align 2, 0\n\
|
||||
_08044D60: .4byte sOakSpeechNidoranResources\n\
|
||||
_08044D64:\n\
|
||||
ldr r0, _08044D7C @ =sOakSpeechNidoranResources\n\
|
||||
ldr r1, [r0]\n\
|
||||
movs r0, 0xA3\n\
|
||||
strb r0, [r1, 0x2]\n\
|
||||
_08044D6C:\n\
|
||||
ldr r0, _08044D7C @ =sOakSpeechNidoranResources\n\
|
||||
ldr r0, [r0]\n\
|
||||
_08044D70:\n\
|
||||
pop {r3}\n\
|
||||
mov r8, r3\n\
|
||||
pop {r4-r7}\n\
|
||||
pop {r1}\n\
|
||||
bx r1\n\
|
||||
.align 2, 0\n\
|
||||
_08044D7C: .4byte sOakSpeechNidoranResources\n\
|
||||
");
|
||||
}
|
||||
#endif
|
||||
|
||||
void OakSpeechNidoranFFreeResources(void)
|
||||
{
|
||||
|
||||
+19
-39
@@ -105,46 +105,26 @@ static u8 sub_809AB7C(u32 a0)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
void (const u16 *list) //SetShopItemsForSale
|
||||
{
|
||||
u16 i;
|
||||
gShopData.itemList = list;
|
||||
gShopData.itemCount = 0;
|
||||
if (list[0] == 0)
|
||||
return;
|
||||
|
||||
i = 0;
|
||||
while (list[i] != 0)
|
||||
{
|
||||
gShopData.itemCount++;
|
||||
if (list[i] == 0)
|
||||
return;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
//#ifdef NONMATCHING
|
||||
// WHAT THE FUCK IS UP WITH THIS FUNCTION
|
||||
void sub_809ABD8(const u16 *items)
|
||||
//SetShopItemsForSale
|
||||
void sub_809ABD8(const u16 *items) //I really don't know what GameFreak was thinking here..
|
||||
{
|
||||
//const u16* mart = items;
|
||||
u16 item;
|
||||
gShopData.itemList = items;
|
||||
gShopData.itemCount = 0;
|
||||
|
||||
while (1)
|
||||
{
|
||||
item = items[++gShopData.itemCount];
|
||||
}
|
||||
struct ShopData *mart;
|
||||
//u16 i;
|
||||
|
||||
mart = &gShopData;
|
||||
mart->itemList = items;
|
||||
mart->itemCount = 0;
|
||||
|
||||
//i = 0;
|
||||
if (mart->itemList[0] == 0)
|
||||
return;
|
||||
|
||||
do {
|
||||
++gShopData.itemCount;
|
||||
//i = gShopData.itemCount;
|
||||
//} while (mart->itemList[i]);
|
||||
} while (mart->itemList[gShopData.itemCount]);
|
||||
}
|
||||
/*
|
||||
#else
|
||||
NAKED
|
||||
void sub_809ABD8(const u16 *items)
|
||||
asm_unified("\t
|
||||
*/
|
||||
|
||||
//SetShopMenuCallback
|
||||
void sub_809AC04(MainCallback callback)
|
||||
@@ -165,6 +145,6 @@ static void sub_809AC10(u8 taskId)
|
||||
sub_809ACF8(taskId);
|
||||
return;
|
||||
}
|
||||
gUnknown_83DF09C.func.void_u8(Menu_GetCursorPos());
|
||||
//gUnknown_83DF09C.func.void_u8(Menu_GetCursorPos());
|
||||
}
|
||||
|
||||
|
||||
+121
-35
@@ -23,14 +23,118 @@ static void (*sSecondaryTilesetAnimCallback)(u16);
|
||||
static void _InitPrimaryTilesetAnimation(void);
|
||||
static void _InitSecondaryTilesetAnimation(void);
|
||||
|
||||
extern const u16 *const gUnknown_83A7660[];
|
||||
extern const u16 *const gUnknown_83AA654[];
|
||||
extern const u16 *const gUnknown_83AB874[];
|
||||
extern const u16 *const gUnknown_83ABDB4[];
|
||||
extern const u16 *const gUnknown_83AC1E8[];
|
||||
extern const u16 *const gUnknown_83AC5F8[];
|
||||
extern const u16 *const gUnknown_83AC7C8[];
|
||||
extern const u16 *const gUnknown_83AC950[];
|
||||
static const u16 gUnknown_83A73E0[] = INCBIN_U16("graphics/tileset_anims/anim_0_0.bin");
|
||||
static const u16 gUnknown_83A7460[] = INCBIN_U16("graphics/tileset_anims/anim_0_1.bin");
|
||||
static const u16 gUnknown_83A74E0[] = INCBIN_U16("graphics/tileset_anims/anim_0_2.bin");
|
||||
static const u16 gUnknown_83A7560[] = INCBIN_U16("graphics/tileset_anims/anim_0_3.bin");
|
||||
static const u16 gUnknown_83A75E0[] = INCBIN_U16("graphics/tileset_anims/anim_0_4.bin");
|
||||
|
||||
static const u16 *const gUnknown_83A7660[] = {
|
||||
gUnknown_83A73E0,
|
||||
gUnknown_83A7460,
|
||||
gUnknown_83A74E0,
|
||||
gUnknown_83A7560,
|
||||
gUnknown_83A75E0
|
||||
};
|
||||
|
||||
static const u16 gUnknown_83A7674[] = INCBIN_U16("graphics/tileset_anims/anim_1_0.bin");
|
||||
static const u16 gUnknown_83A7C74[] = INCBIN_U16("graphics/tileset_anims/anim_1_1.bin");
|
||||
static const u16 gUnknown_83A8274[] = INCBIN_U16("graphics/tileset_anims/anim_1_2.bin");
|
||||
static const u16 gUnknown_83A8874[] = INCBIN_U16("graphics/tileset_anims/anim_1_3.bin");
|
||||
static const u16 gUnknown_83A8E74[] = INCBIN_U16("graphics/tileset_anims/anim_1_4.bin");
|
||||
static const u16 gUnknown_83A9474[] = INCBIN_U16("graphics/tileset_anims/anim_1_5.bin");
|
||||
static const u16 gUnknown_83A9A74[] = INCBIN_U16("graphics/tileset_anims/anim_1_6.bin");
|
||||
static const u16 gUnknown_83AA074[] = INCBIN_U16("graphics/tileset_anims/anim_1_7.bin");
|
||||
|
||||
static const u16 *const gUnknown_83AA654[] = {
|
||||
gUnknown_83A7674,
|
||||
gUnknown_83A7C74,
|
||||
gUnknown_83A8274,
|
||||
gUnknown_83A8874,
|
||||
gUnknown_83A8E74,
|
||||
gUnknown_83A9474,
|
||||
gUnknown_83A9A74,
|
||||
gUnknown_83AA074
|
||||
};
|
||||
|
||||
static const u16 gUnknown_83AA674[] = INCBIN_U16("graphics/tileset_anims/anim_2_0.bin");
|
||||
static const u16 gUnknown_83AA8B4[] = INCBIN_U16("graphics/tileset_anims/anim_2_1.bin");
|
||||
static const u16 gUnknown_83AAAF4[] = INCBIN_U16("graphics/tileset_anims/anim_2_2.bin");
|
||||
static const u16 gUnknown_83AAD34[] = INCBIN_U16("graphics/tileset_anims/anim_2_3.bin");
|
||||
static const u16 gUnknown_83AAF74[] = INCBIN_U16("graphics/tileset_anims/anim_2_4.bin");
|
||||
static const u16 gUnknown_83AB1B4[] = INCBIN_U16("graphics/tileset_anims/anim_2_5.bin");
|
||||
static const u16 gUnknown_83AB3F4[] = INCBIN_U16("graphics/tileset_anims/anim_2_6.bin");
|
||||
static const u16 gUnknown_83AB634[] = INCBIN_U16("graphics/tileset_anims/anim_2_7.bin");
|
||||
|
||||
static const u16 *const gUnknown_83AB874[] = {
|
||||
gUnknown_83AA674,
|
||||
gUnknown_83AA8B4,
|
||||
gUnknown_83AAAF4,
|
||||
gUnknown_83AAD34,
|
||||
gUnknown_83AAF74,
|
||||
gUnknown_83AB1B4,
|
||||
gUnknown_83AB3F4,
|
||||
gUnknown_83AB634
|
||||
};
|
||||
|
||||
static const u16 gUnknown_83AB894[] = INCBIN_U16("graphics/tileset_anims/anim_3_0.bin");
|
||||
static const u16 gUnknown_83AB994[] = INCBIN_U16("graphics/tileset_anims/anim_3_1.bin");
|
||||
static const u16 gUnknown_83ABA94[] = INCBIN_U16("graphics/tileset_anims/anim_3_2.bin");
|
||||
static const u16 gUnknown_83ABB94[] = INCBIN_U16("graphics/tileset_anims/anim_3_3.bin");
|
||||
static const u16 gUnknown_83ABC94[] = INCBIN_U16("graphics/tileset_anims/anim_3_4.bin");
|
||||
static const u16 gUnknown_83ABD94[16] = {};
|
||||
|
||||
static const u16 *const gUnknown_83ABDB4[] = {
|
||||
gUnknown_83AB894,
|
||||
gUnknown_83AB994,
|
||||
gUnknown_83ABA94,
|
||||
gUnknown_83ABB94,
|
||||
gUnknown_83ABC94
|
||||
};
|
||||
|
||||
static const u16 gUnknown_83ABDC8[] = INCBIN_U16("graphics/tileset_anims/anim_4_0.bin");
|
||||
static const u16 gUnknown_83ABEC8[] = INCBIN_U16("graphics/tileset_anims/anim_4_1.bin");
|
||||
static const u16 gUnknown_83ABFC8[] = INCBIN_U16("graphics/tileset_anims/anim_4_2.bin");
|
||||
static const u16 gUnknown_83AC0C8[] = INCBIN_U16("graphics/tileset_anims/anim_4_3.bin");
|
||||
static const u16 gUnknown_83AC1C8[0x10] = {};
|
||||
|
||||
static const u16 *const gUnknown_83AC1E8[] = {
|
||||
gUnknown_83ABDC8,
|
||||
gUnknown_83ABEC8,
|
||||
gUnknown_83ABFC8,
|
||||
gUnknown_83AC0C8
|
||||
};
|
||||
|
||||
static const u16 gUnknown_83AC1F8[] = INCBIN_U16("graphics/tileset_anims/anim_5_0.bin");
|
||||
static const u16 gUnknown_83AC2F8[] = INCBIN_U16("graphics/tileset_anims/anim_5_1.bin");
|
||||
static const u16 gUnknown_83AC3F8[] = INCBIN_U16("graphics/tileset_anims/anim_5_2.bin");
|
||||
static const u16 gUnknown_83AC4F8[] = INCBIN_U16("graphics/tileset_anims/anim_5_3.bin");
|
||||
|
||||
static const u16 *const gUnknown_83AC5F8[] = {
|
||||
gUnknown_83AC1F8,
|
||||
gUnknown_83AC2F8,
|
||||
gUnknown_83AC3F8,
|
||||
gUnknown_83AC4F8
|
||||
};
|
||||
|
||||
static const u16 gUnknown_83AC608[] = INCBIN_U16("graphics/tileset_anims/anim_6_0.bin");
|
||||
static const u16 gUnknown_83AC6E8[] = INCBIN_U16("graphics/tileset_anims/anim_6_1.bin");
|
||||
|
||||
static const u16 *const gUnknown_83AC7C8[] = {
|
||||
gUnknown_83AC608,
|
||||
gUnknown_83AC6E8
|
||||
};
|
||||
|
||||
static const u16 gUnknown_83AC7D0[] = INCBIN_U16("graphics/tileset_anims/anim_7_0.bin");
|
||||
static const u16 gUnknown_83AC850[] = INCBIN_U16("graphics/tileset_anims/anim_7_1.bin");
|
||||
static const u16 gUnknown_83AC8D0[] = INCBIN_U16("graphics/tileset_anims/anim_7_2.bin");
|
||||
|
||||
static const u16 *const gUnknown_83AC950[] = {
|
||||
gUnknown_83AC7D0,
|
||||
gUnknown_83AC850,
|
||||
gUnknown_83AC8D0,
|
||||
gUnknown_83AC850
|
||||
};
|
||||
|
||||
static void ResetTilesetAnimBuffer(void)
|
||||
{
|
||||
@@ -105,26 +209,17 @@ static void _InitSecondaryTilesetAnimation(void)
|
||||
|
||||
static void sub_80700A4(u16 timer)
|
||||
{
|
||||
const u16 *const *ptr = gUnknown_83A7660;
|
||||
u16 i = timer % 5;
|
||||
|
||||
AppendTilesetAnimToBuffer(ptr[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(508)), 0x80);
|
||||
AppendTilesetAnimToBuffer(gUnknown_83A7660[timer % NELEMS(gUnknown_83A7660)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(508)), 0x80);
|
||||
}
|
||||
|
||||
static void sub_80700D0(u16 timer)
|
||||
{
|
||||
const u16 *const *ptr = gUnknown_83AA654;
|
||||
u16 i = timer % 8;
|
||||
|
||||
AppendTilesetAnimToBuffer(ptr[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(416)), 0x600);
|
||||
AppendTilesetAnimToBuffer(gUnknown_83AA654[timer % NELEMS(gUnknown_83AA654)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(416)), 0x600);
|
||||
}
|
||||
|
||||
static void sub_80700F8(u16 timer)
|
||||
{
|
||||
const u16 *const *ptr = gUnknown_83AB874;
|
||||
u16 i = timer % 8;
|
||||
|
||||
AppendTilesetAnimToBuffer(ptr[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(464)), 0x240);
|
||||
AppendTilesetAnimToBuffer(gUnknown_83AB874[timer % NELEMS(gUnknown_83AB874)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(464)), 0x240);
|
||||
}
|
||||
|
||||
static void sub_8070120(u16 timer)
|
||||
@@ -146,10 +241,7 @@ void sub_8070154(void)
|
||||
|
||||
static void sub_807017C(u16 timer)
|
||||
{
|
||||
const u16 *const *ptr = gUnknown_83ABDB4;
|
||||
u16 i = timer % 5;
|
||||
|
||||
AppendTilesetAnimToBuffer(ptr[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(744)), 0x100);
|
||||
AppendTilesetAnimToBuffer(gUnknown_83ABDB4[timer % NELEMS(gUnknown_83ABDB4)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(744)), 0x100);
|
||||
}
|
||||
|
||||
static void sub_80701AC(u16 timer)
|
||||
@@ -167,10 +259,7 @@ void sub_80701D8(void)
|
||||
|
||||
static void sub_80701FC(u16 timer)
|
||||
{
|
||||
const u16 *const *ptr = gUnknown_83AC1E8;
|
||||
u16 i = timer % 4;
|
||||
|
||||
AppendTilesetAnimToBuffer(ptr[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(976)), 0x100);
|
||||
AppendTilesetAnimToBuffer(gUnknown_83AC1E8[timer % NELEMS(gUnknown_83AC1E8)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(976)), 0x100);
|
||||
}
|
||||
|
||||
static void sub_8070224(u16 timer)
|
||||
@@ -188,10 +277,7 @@ void sub_8070250(void)
|
||||
|
||||
static void sub_8070274(u16 timer)
|
||||
{
|
||||
const u16 *const *ptr = gUnknown_83AC5F8;
|
||||
u16 i = timer % 4;
|
||||
|
||||
AppendTilesetAnimToBuffer(ptr[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(896)), 0x100);
|
||||
AppendTilesetAnimToBuffer(gUnknown_83AC5F8[timer % NELEMS(gUnknown_83AC5F8)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(896)), 0x100);
|
||||
}
|
||||
|
||||
static void sub_807029C(u16 timer)
|
||||
@@ -209,8 +295,8 @@ void sub_80702B4(void)
|
||||
|
||||
static void sub_80702DC(u16 timer)
|
||||
{
|
||||
u16 i = timer % 2;
|
||||
|
||||
u16 i = timer % NELEMS(gUnknown_83AC7C8);
|
||||
|
||||
AppendTilesetAnimToBuffer(gUnknown_83AC7C8[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(880)), 0xE0);
|
||||
}
|
||||
|
||||
@@ -229,7 +315,7 @@ void sub_807031C(void)
|
||||
|
||||
static void sub_8070340(u16 timer)
|
||||
{
|
||||
u16 i = timer % 4;
|
||||
u16 i = timer % NELEMS(gUnknown_83AC950);
|
||||
|
||||
AppendTilesetAnimToBuffer(gUnknown_83AC950[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(739)), 0x80);
|
||||
}
|
||||
|
||||
+3
-3
@@ -305,7 +305,7 @@ static void CB2_SetUpTMCaseUI_Blocking(void)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
if (sub_80BF72C() == TRUE)
|
||||
if ((u8)sub_80BF72C() == TRUE)
|
||||
break;
|
||||
if (DoSetUpTMCaseUI() == TRUE)
|
||||
break;
|
||||
@@ -734,7 +734,7 @@ static void Task_TMCaseMain(u8 taskId)
|
||||
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
if (sub_80BF72C() != TRUE)
|
||||
if ((u8)sub_80BF72C() != TRUE)
|
||||
{
|
||||
input = ListMenu_ProcessInput(data[0]);
|
||||
ListMenuGetScrollAndRow(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
|
||||
@@ -815,7 +815,7 @@ static void Task_TMContextMenu_HandleInput(u8 taskId)
|
||||
{
|
||||
s8 input;
|
||||
|
||||
if (sub_80BF72C() != TRUE)
|
||||
if ((u8)sub_80BF72C() != TRUE)
|
||||
{
|
||||
input = Menu_ProcessInputNoWrapAround();
|
||||
switch (input)
|
||||
|
||||
+6
-6
@@ -488,7 +488,7 @@ static const struct WindowTemplate gUnknown_826D1BC[] = {
|
||||
}, DUMMY_WIN_TEMPLATE
|
||||
};
|
||||
|
||||
const struct WindowTemplate gUnknown_826D1CC = {
|
||||
const struct WindowTemplate gTradeEvolutionSceneYesNoWindowTemplate = {
|
||||
.bg = 0,
|
||||
.tilemapLeft = 21,
|
||||
.tilemapTop = 9,
|
||||
@@ -881,7 +881,7 @@ void CB2_InitTradeAnim_LinkTrade(void)
|
||||
break;
|
||||
case 8:
|
||||
LoadTradeMonPic(1, 1);
|
||||
sub_80504B0();
|
||||
LinkTradeDrawWindow();
|
||||
gMain.state++;
|
||||
break;
|
||||
case 9:
|
||||
@@ -899,7 +899,7 @@ void CB2_InitTradeAnim_LinkTrade(void)
|
||||
gMain.state++;
|
||||
break;
|
||||
case 11:
|
||||
sub_805049C();
|
||||
InitTradeSequenceBgGpuRegs();
|
||||
TradeBufferOTnameAndNicknames();
|
||||
gMain.state++;
|
||||
break;
|
||||
@@ -922,13 +922,13 @@ void CB2_InitTradeAnim_LinkTrade(void)
|
||||
UpdatePaletteFade();
|
||||
}
|
||||
|
||||
void sub_805049C(void)
|
||||
void InitTradeSequenceBgGpuRegs(void)
|
||||
{
|
||||
SetTradeSequenceBgGpuRegs(5);
|
||||
SetTradeSequenceBgGpuRegs(0);
|
||||
}
|
||||
|
||||
void sub_80504B0(void)
|
||||
void LinkTradeDrawWindow(void)
|
||||
{
|
||||
FillWindowPixelBuffer(0, PIXEL_FILL(15));
|
||||
PutWindowTilemap(0);
|
||||
@@ -2552,7 +2552,7 @@ static void sub_8053E8C(void)
|
||||
{
|
||||
case 0:
|
||||
gMain.state++;
|
||||
StringExpandPlaceholders(gStringVar4, gUnknown_841E325);
|
||||
StringExpandPlaceholders(gStringVar4, gText_CommunicationStandby5);
|
||||
DrawTextOnTradeWindow(0, gStringVar4, 0);
|
||||
break;
|
||||
case 1:
|
||||
|
||||
Reference in New Issue
Block a user