fix conflicts

This commit is contained in:
Evan
2019-11-21 10:23:49 -07:00
110 changed files with 4806 additions and 7917 deletions
+3 -3
View File
@@ -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;
+2 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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,
+638
View File
@@ -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
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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: