summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle_ai_script_commands.c4
-rwxr-xr-xsrc/battle_anim_effects_3.c2
-rw-r--r--src/battle_gfx_sfx_util.c44
-rw-r--r--src/battle_intro.c4
-rw-r--r--src/battle_main.c2
-rw-r--r--src/battle_message.c3
-rw-r--r--src/battle_script_commands.c44
-rw-r--r--src/battle_setup.c3
-rw-r--r--src/battle_tent.c9
-rw-r--r--src/battle_transition.c5
-rwxr-xr-xsrc/berry_crush.c197
-rw-r--r--src/contest.c4
-rw-r--r--src/contest_painting.c8
-rw-r--r--src/contest_util.c8
-rw-r--r--src/daycare.c3
-rw-r--r--src/egg_hatch.c2
-rw-r--r--src/event_object_movement.c33
-rw-r--r--src/evolution_scene.c10
-rw-r--r--src/field_player_avatar.c10
-rw-r--r--src/fldeff_cut.c8
-rw-r--r--src/menu_specialized.c49
-rw-r--r--src/overworld.c34
-rwxr-xr-xsrc/party_menu.c16
-rw-r--r--src/pokeblock_feed.c2
-rw-r--r--src/pokemon.c4
-rw-r--r--src/pokemon_summary_screen.c8
-rw-r--r--src/pokenav_match_call_data.c13
-rw-r--r--src/trade.c8
-rw-r--r--src/trainer_see.c12
-rw-r--r--src/use_pokeblock.c4
-rw-r--r--src/walda_phrase.c6
31 files changed, 253 insertions, 306 deletions
diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c
index 2423cfe37..4adb39a5d 100644
--- a/src/battle_ai_script_commands.c
+++ b/src/battle_ai_script_commands.c
@@ -624,8 +624,8 @@ static void RecordLastUsedMoveByTarget(void)
{
if (BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i] == gLastMoves[gBattlerTarget])
break;
- if (BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i] != gLastMoves[gBattlerTarget] // HACK: This redundant condition is a hack to make the asm match.
- && BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i] == MOVE_NONE)
+
+ if (BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i] == MOVE_NONE)
{
BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i] = gLastMoves[gBattlerTarget];
break;
diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c
index f57e2a4fc..9e50a8477 100755
--- a/src/battle_anim_effects_3.c
+++ b/src/battle_anim_effects_3.c
@@ -2290,7 +2290,7 @@ void AnimTask_TransformMon(u8 taskId)
else
position = GetBattlerPosition(gBattleAnimAttacker);
- src = gMonSpritesGfxPtr->sprites[position] + (gBattleMonForms[gBattleAnimAttacker] << 11);
+ src = gMonSpritesGfxPtr->sprites.ptr[position] + (gBattleMonForms[gBattleAnimAttacker] << 11);
dest = animBg.bgTiles;
CpuCopy32(src, dest, 0x800);
LoadBgTiles(1, animBg.bgTiles, 0x800, animBg.tilesOffset);
diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c
index 41cffec3d..c6db4ad42 100644
--- a/src/battle_gfx_sfx_util.c
+++ b/src/battle_gfx_sfx_util.c
@@ -6,6 +6,7 @@
#include "constants/battle_anim.h"
#include "battle_interface.h"
#include "main.h"
+#include "dma3.h"
#include "malloc.h"
#include "graphics.h"
#include "random.h"
@@ -567,7 +568,7 @@ void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 battlerId)
otId = GetMonData(mon, MON_DATA_OT_ID);
position = GetBattlerPosition(battlerId);
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species],
- gMonSpritesGfxPtr->sprites[position],
+ gMonSpritesGfxPtr->sprites.ptr[position],
species, currentPersonality);
paletteOffset = 0x100 + battlerId * 16;
@@ -623,13 +624,13 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId)
if (sub_80688F8(1, battlerId) == 1 || gBattleSpritesDataPtr->battlerData[battlerId].transformSpecies != SPECIES_NONE)
{
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species],
- gMonSpritesGfxPtr->sprites[position],
+ gMonSpritesGfxPtr->sprites.ptr[position],
species, currentPersonality);
}
else
{
HandleLoadSpecialPokePic(&gMonBackPicTable[species],
- gMonSpritesGfxPtr->sprites[position],
+ gMonSpritesGfxPtr->sprites.ptr[position],
species, currentPersonality);
}
@@ -671,7 +672,7 @@ void DecompressTrainerFrontPic(u16 frontPicId, u8 battlerId)
{
u8 position = GetBattlerPosition(battlerId);
DecompressPicFromTable_2(&gTrainerFrontPicTable[frontPicId],
- gMonSpritesGfxPtr->sprites[position],
+ gMonSpritesGfxPtr->sprites.ptr[position],
SPECIES_NONE);
LoadCompressedSpritePalette(&gTrainerFrontPicPaletteTable[frontPicId]);
}
@@ -680,7 +681,7 @@ void DecompressTrainerBackPic(u16 backPicId, u8 battlerId)
{
u8 position = GetBattlerPosition(battlerId);
DecompressPicFromTable_2(&gTrainerBackPicTable[backPicId],
- gMonSpritesGfxPtr->sprites[position],
+ gMonSpritesGfxPtr->sprites.ptr[position],
SPECIES_NONE);
LoadCompressedPalette(gTrainerBackPicPaletteTable[backPicId].data,
0x100 + 16 * battlerId, 0x20);
@@ -920,7 +921,7 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 notTransform
otId = gContestResources->moveAnim->otId;
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[targetSpecies],
- gMonSpritesGfxPtr->sprites[0],
+ gMonSpritesGfxPtr->sprites.ptr[0],
targetSpecies,
gContestResources->moveAnim->targetPersonality);
}
@@ -939,7 +940,7 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 notTransform
otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerAtk]], MON_DATA_OT_ID);
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[targetSpecies],
- gMonSpritesGfxPtr->sprites[position],
+ gMonSpritesGfxPtr->sprites.ptr[position],
targetSpecies,
gTransformedPersonalities[battlerAtk]);
}
@@ -949,14 +950,14 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 notTransform
otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerAtk]], MON_DATA_OT_ID);
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[targetSpecies],
- gMonSpritesGfxPtr->sprites[position],
+ gMonSpritesGfxPtr->sprites.ptr[position],
targetSpecies,
gTransformedPersonalities[battlerAtk]);
}
}
- src = gMonSpritesGfxPtr->sprites[position];
- dst = (void *)(VRAM + 0x10000 + gSprites[gBattlerSpriteIds[battlerAtk]].oam.tileNum * 32);
+ src = gMonSpritesGfxPtr->sprites.ptr[position];
+ dst = (void *)(OBJ_VRAM0 + gSprites[gBattlerSpriteIds[battlerAtk]].oam.tileNum * 32);
DmaCopy32(3, src, dst, 0x800);
paletteOffset = 0x100 + battlerAtk * 16;
lzPaletteData = GetMonSpritePalFromSpeciesAndPersonality(targetSpecies, otId, personalityValue);
@@ -996,18 +997,15 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite)
position = GetBattlerPosition(battlerId);
if (IsContest())
- LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites[position]);
+ LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites.ptr[position]);
else if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
- LZDecompressVram(gSubstituteDollGfx, gMonSpritesGfxPtr->sprites[position]);
+ LZDecompressVram(gSubstituteDollGfx, gMonSpritesGfxPtr->sprites.ptr[position]);
else
- LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites[position]);
+ LZDecompressVram(gSubstituteDollTilemap, gMonSpritesGfxPtr->sprites.ptr[position]);
for (i = 1; i < 4; i++)
{
- u8 (*ptr)[4][0x800] = gMonSpritesGfxPtr->sprites[position];
- ptr++;ptr--; // Needed to match.
-
- DmaCopy32Defvars(3, (*ptr)[0], (*ptr)[i], 0x800);
+ Dma3CopyLarge32_(gMonSpritesGfxPtr->sprites.ptr[position], &gMonSpritesGfxPtr->sprites.byte[position][0x800 * i], 0x800);
}
palOffset = (battlerId * 16) + 0x100;
@@ -1247,12 +1245,12 @@ void AllocateMonSpritesGfx(void)
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
- gMonSpritesGfxPtr->sprites[i] = gMonSpritesGfxPtr->firstDecompressed + (i * 0x2000);
+ gMonSpritesGfxPtr->sprites.ptr[i] = gMonSpritesGfxPtr->firstDecompressed + (i * 0x2000);
*(gMonSpritesGfxPtr->templates + i) = gUnknown_08329D98[i];
for (j = 0; j < 4; j++)
{
- gMonSpritesGfxPtr->field_74[i][j].data = gMonSpritesGfxPtr->sprites[i] + (j * 0x800);
+ gMonSpritesGfxPtr->field_74[i][j].data = gMonSpritesGfxPtr->sprites.ptr[i] + (j * 0x800);
gMonSpritesGfxPtr->field_74[i][j].size = 0x800;
}
@@ -1274,10 +1272,10 @@ void FreeMonSpritesGfx(void)
FREE_AND_SET_NULL(gMonSpritesGfxPtr->barFontGfx);
FREE_AND_SET_NULL(gMonSpritesGfxPtr->firstDecompressed);
- gMonSpritesGfxPtr->sprites[0] = NULL;
- gMonSpritesGfxPtr->sprites[1] = NULL;
- gMonSpritesGfxPtr->sprites[2] = NULL;
- gMonSpritesGfxPtr->sprites[3] = NULL;
+ gMonSpritesGfxPtr->sprites.ptr[0] = NULL;
+ gMonSpritesGfxPtr->sprites.ptr[1] = NULL;
+ gMonSpritesGfxPtr->sprites.ptr[2] = NULL;
+ gMonSpritesGfxPtr->sprites.ptr[3] = NULL;
FREE_AND_SET_NULL(gMonSpritesGfxPtr);
}
diff --git a/src/battle_intro.c b/src/battle_intro.c
index 6964428a3..36ff325f5 100644
--- a/src/battle_intro.c
+++ b/src/battle_intro.c
@@ -586,7 +586,7 @@ void sub_8118FBC(int bgId, u8 arg1, u8 arg2, u8 battlerPosition, u8 arg4, u8 *ar
int i, j;
u8 battler = GetBattlerAtPosition(battlerPosition);
int offset = tilesOffset;
- CpuCopy16(gMonSpritesGfxPtr->sprites[battlerPosition] + BG_SCREEN_SIZE * gBattleMonForms[battler], arg5, BG_SCREEN_SIZE);
+ CpuCopy16(gMonSpritesGfxPtr->sprites.ptr[battlerPosition] + BG_SCREEN_SIZE * gBattleMonForms[battler], arg5, BG_SCREEN_SIZE);
LoadBgTiles(bgId, arg5, 0x1000, tilesOffset);
for (i = arg2; i < arg2 + 8; i++)
{
@@ -604,7 +604,7 @@ void unref_sub_8119094(u8 arg0, u8 arg1, u8 battlerPosition, u8 arg3, u8 arg4, u
{
int i, j, offset;
- DmaCopy16(3, gMonSpritesGfxPtr->sprites[battlerPosition] + BG_SCREEN_SIZE * arg3, (void *)BG_SCREEN_ADDR(0) + arg5, BG_SCREEN_SIZE);
+ DmaCopy16(3, gMonSpritesGfxPtr->sprites.ptr[battlerPosition] + BG_SCREEN_SIZE * arg3, (void *)BG_SCREEN_ADDR(0) + arg5, BG_SCREEN_SIZE);
offset = (arg5 >> 5) - (arg7 << 9);
for (i = arg1; i < arg1 + 8; i++)
{
diff --git a/src/battle_main.c b/src/battle_main.c
index acc65008e..5bc80f61e 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -2765,7 +2765,7 @@ static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite)
}
else // Erase bottom part of the sprite to create a smooth illusion of mon falling down.
{
- u8 *dst = (u8 *)gMonSpritesGfxPtr->sprites[GetBattlerPosition(sprite->sBattler)] + (gBattleMonForms[sprite->sBattler] << 11) + (sprite->data[3] << 8);
+ u8* dst = gMonSpritesGfxPtr->sprites.byte[GetBattlerPosition(sprite->sBattler)] + (gBattleMonForms[sprite->sBattler] << 11) + (sprite->data[3] << 8);
for (i = 0; i < 0x100; i++)
*(dst++) = 0;
diff --git a/src/battle_message.c b/src/battle_message.c
index 59ad0cee4..e6c1666fc 100644
--- a/src/battle_message.c
+++ b/src/battle_message.c
@@ -2288,8 +2288,7 @@ static const u8* TryGetStatusString(u8 *src)
statusPtr = status;
for (i = 0; i < 8; i++)
{
- if (*src == EOS)
- break;
+ if (*src == EOS) break; // one line required to match -g
*statusPtr = *src;
src++;
statusPtr++;
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index d43ddd5a2..46ad706d7 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -4666,19 +4666,16 @@ static void Cmd_jumpifcantswitch(void)
}
else if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
{
- #ifndef NONMATCHING
- asm("":::"r5");
- #endif // NONMATCHING
if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT)
party = gEnemyParty;
else
party = gPlayerParty;
- i = 0;
+ lastMonId = 0;
if (gActiveBattler & 2)
- i = 3;
+ lastMonId = 3;
- for (lastMonId = i + 3; i < lastMonId; i++)
+ for (i = lastMonId; i < lastMonId + 3; i++)
{
if (GetMonData(&party[i], MON_DATA_SPECIES) != SPECIES_NONE
&& !GetMonData(&party[i], MON_DATA_IS_EGG)
@@ -4687,7 +4684,7 @@ static void Cmd_jumpifcantswitch(void)
break;
}
- if (i == lastMonId)
+ if (i == lastMonId + 3)
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
else
gBattlescriptCurrInstr += 6;
@@ -4700,18 +4697,18 @@ static void Cmd_jumpifcantswitch(void)
{
party = gPlayerParty;
- i = 0;
+ lastMonId = 0;
if (GetLinkTrainerFlankId(GetBattlerMultiplayerId(gActiveBattler)) == TRUE)
- i = 3;
+ lastMonId = 3;
}
else
{
party = gEnemyParty;
if (gActiveBattler == 1)
- i = 0;
+ lastMonId = 0;
else
- i = 3;
+ lastMonId = 3;
}
}
else
@@ -4721,12 +4718,12 @@ static void Cmd_jumpifcantswitch(void)
else
party = gPlayerParty;
- i = 0;
+ lastMonId = 0;
if (GetLinkTrainerFlankId(GetBattlerMultiplayerId(gActiveBattler)) == TRUE)
- i = 3;
+ lastMonId = 3;
}
- for (lastMonId = i + 3; i < lastMonId; i++)
+ for (i = lastMonId; i < lastMonId + 3; i++)
{
if (GetMonData(&party[i], MON_DATA_SPECIES) != SPECIES_NONE
&& !GetMonData(&party[i], MON_DATA_IS_EGG)
@@ -4735,7 +4732,7 @@ static void Cmd_jumpifcantswitch(void)
break;
}
- if (i == lastMonId)
+ if (i == lastMonId + 3)
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
else
gBattlescriptCurrInstr += 6;
@@ -4744,11 +4741,11 @@ static void Cmd_jumpifcantswitch(void)
{
party = gEnemyParty;
- i = 0;
+ lastMonId = 0;
if (gActiveBattler == B_POSITION_OPPONENT_RIGHT)
- i = 3;
+ lastMonId = 3;
- for (lastMonId = i + 3; i < lastMonId; i++)
+ for (i = lastMonId; i < lastMonId + 3; i++)
{
if (GetMonData(&party[i], MON_DATA_SPECIES) != SPECIES_NONE
&& !GetMonData(&party[i], MON_DATA_IS_EGG)
@@ -4757,7 +4754,7 @@ static void Cmd_jumpifcantswitch(void)
break;
}
- if (i == lastMonId)
+ if (i == lastMonId + 3)
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
else
gBattlescriptCurrInstr += 6;
@@ -5035,14 +5032,9 @@ static void Cmd_openpartyscreen(void)
hitmarkerFaintBits = gHitMarker >> 0x1C;
gBattlerFainted = 0;
- while (1)
- {
- if (gBitTable[gBattlerFainted] & hitmarkerFaintBits)
- break;
- if (gBattlerFainted >= gBattlersCount)
- break;
+ while (!(gBitTable[gBattlerFainted] & hitmarkerFaintBits)
+ && gBattlerFainted < gBattlersCount)
gBattlerFainted++;
- }
if (gBattlerFainted == gBattlersCount)
gBattlescriptCurrInstr = jumpPtr;
diff --git a/src/battle_setup.c b/src/battle_setup.c
index 7b9d13980..40b5993f0 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -1564,8 +1564,7 @@ static s32 TrainerIdToRematchTableId(const struct RematchTrainer *table, u16 tra
{
for (j = 0; j < REMATCHES_COUNT; j++)
{
- if (table[i].trainerIds[j] == 0)
- break;
+ if (table[i].trainerIds[j] == 0) break; // one line required to match -g
if (table[i].trainerIds[j] == trainerId)
return i;
}
diff --git a/src/battle_tent.c b/src/battle_tent.c
index de0ecea98..26b2e8bb1 100644
--- a/src/battle_tent.c
+++ b/src/battle_tent.c
@@ -354,11 +354,7 @@ static void GenerateOpponentMons(void)
{
u16 trainerId;
s32 i, j, k;
- #ifndef NONMATCHING
- register const u16 *monSet asm("r9"); // Fix me. Compiler insists on moving that variable into stack.
- #else
- const u16 *monSet;
- #endif
+ const u16 *monSet;
u16 species[FRONTIER_PARTY_SIZE];
u16 heldItems[FRONTIER_PARTY_SIZE];
s32 monId = 0;
@@ -379,7 +375,8 @@ static void GenerateOpponentMons(void)
} while (i != gSaveBlock2Ptr->frontier.curChallengeBattleNum);
gTrainerBattleOpponent_A = trainerId;
- while (gFacilityTrainers[gTrainerBattleOpponent_A].monSet[monId] != 0xFFFF)
+ monSet = gFacilityTrainers[gTrainerBattleOpponent_A].monSet;
+ while (monSet[monId] != 0xFFFF)
monId++;
if (monId > 8)
break;
diff --git a/src/battle_transition.c b/src/battle_transition.c
index 496cc9e09..74e1548e7 100644
--- a/src/battle_transition.c
+++ b/src/battle_transition.c
@@ -1956,10 +1956,7 @@ static bool8 Phase2_Ripple_Func2(struct Task *task)
for (i = 0; i < 160; i++, r4 += r8)
{
s16 var = r4 >> 8;
-
- var++;
- var--;
- gScanlineEffectRegBuffers[0][i] = sTransitionStructPtr->field_16 + Sin(var, r3);
+ gScanlineEffectRegBuffers[0][i] = sTransitionStructPtr->field_16 + Sin(var & 0xffff, r3);
}
if (++task->tData3 == 81)
diff --git a/src/berry_crush.c b/src/berry_crush.c
index 671d0ad2b..985bf8d28 100755
--- a/src/berry_crush.c
+++ b/src/berry_crush.c
@@ -148,7 +148,7 @@ struct BerryCrushGame
u32 (* unk4)(struct BerryCrushGame *, u8 *);
u8 unk8;
u8 unk9;
- u8 unkA;
+ u8 mainTask;
u8 unkB;
u8 unkC;
u8 unkD;
@@ -188,10 +188,10 @@ struct BerryCrushGame
u8 unk31C0[0x1000];
};
-static void sub_8020F74(void);
-static void sub_8020F88(void);
-static void sub_8020FA0(u8);
-void sub_8020FC4(struct BerryCrushGame *);
+static void VBlankCB(void);
+static void MainCB(void);
+static void MainTask(u8);
+static void ParseName_Options(struct BerryCrushGame *);
void sub_8022BEC(u16, u8, u8 *);
static void BerryCrush_SetPaletteFadeParams(u8 *, bool8, u32, s8, u8, u8, u16);
static int sub_8021450(struct BerryCrushGame *);
@@ -232,7 +232,7 @@ static u32 sub_8024444(struct BerryCrushGame *r5, __attribute__((unused)) u8 *r1
static u32 sub_8024508(struct BerryCrushGame *r5, __attribute__((unused)) u8 *r1);
static u32 sub_8024568(__attribute__((unused)) struct BerryCrushGame *r0, __attribute__((unused)) u8 *r1);
-static EWRAM_DATA struct BerryCrushGame *gUnknown_02022C90 = NULL;
+static EWRAM_DATA struct BerryCrushGame *gBerryCrushGame = NULL;
static const u8 gUnknown_082F325C[] = { 1, 2, 4, 8, 16, 32, 64, 128 };
static const u8 gUnknown_082F3264[] = { 0, 1, 2, 3, 5, 0, 0, 0 };
@@ -805,22 +805,21 @@ static const u8 gUnknown_082F4434[][4] =
static const u8 gUnknown_082F4444[] = {5, 7, 9, 12};
static const u8 gUnknown_082F4448[] = {3, 7, 15, 31};
-
-struct BerryCrushGame *sub_8020C00(void)
+struct BerryCrushGame * GetBerryCrushGame(void)
{
- return gUnknown_02022C90;
+ return gBerryCrushGame;
}
-u32 sub_8020C0C(MainCallback callback)
+u32 QuitBerryCrush(MainCallback callback)
{
- if (!gUnknown_02022C90)
+ if (!gBerryCrushGame)
return 2;
if (!callback)
- callback = gUnknown_02022C90->unk0;
+ callback = gBerryCrushGame->unk0;
- DestroyTask(gUnknown_02022C90->unkA);
- FREE_AND_SET_NULL(gUnknown_02022C90);
+ DestroyTask(gBerryCrushGame->mainTask);
+ FREE_AND_SET_NULL(gBerryCrushGame);
SetMainCallback2(callback);
if (callback == CB2_ReturnToField)
{
@@ -857,8 +856,8 @@ void StartBerryCrush(MainCallback callback)
return;
}
- gUnknown_02022C90 = AllocZeroed(sizeof(*gUnknown_02022C90));
- if (!gUnknown_02022C90)
+ gBerryCrushGame = AllocZeroed(sizeof(*gBerryCrushGame));
+ if (!gBerryCrushGame)
{
SetMainCallback2(callback);
Rfu.unk_10 = 0;
@@ -867,110 +866,110 @@ void StartBerryCrush(MainCallback callback)
return;
}
- gUnknown_02022C90->unk0 = callback;
- gUnknown_02022C90->unk8 = multiplayerId;
- gUnknown_02022C90->unk9 = playerCount;
- sub_8020FC4(gUnknown_02022C90);
- gUnknown_02022C90->unk12 = 1;
- gUnknown_02022C90->unkE = 1;
- gUnknown_02022C90->unkF = 6;
- BerryCrush_SetPaletteFadeParams(gUnknown_02022C90->unk36, 1, -1, 0, 16, 0, 0);
- sub_8022BEC(4, 1, gUnknown_02022C90->unk36);
- SetMainCallback2(sub_8020F88);
- gUnknown_02022C90->unkA = CreateTask(sub_8020FA0, 8);
+ gBerryCrushGame->unk0 = callback;
+ gBerryCrushGame->unk8 = multiplayerId;
+ gBerryCrushGame->unk9 = playerCount;
+ ParseName_Options(gBerryCrushGame);
+ gBerryCrushGame->unk12 = 1;
+ gBerryCrushGame->unkE = 1;
+ gBerryCrushGame->unkF = 6;
+ BerryCrush_SetPaletteFadeParams(gBerryCrushGame->unk36, 1, -1, 0, 16, 0, 0);
+ sub_8022BEC(4, 1, gBerryCrushGame->unk36);
+ SetMainCallback2(MainCB);
+ gBerryCrushGame->mainTask = CreateTask(MainTask, 8);
gTextFlags.autoScroll = 0;
}
-static void sub_8020D8C(void)
+static void GetBerryFromBag(void)
{
if (gSpecialVar_ItemId < FIRST_BERRY_INDEX || gSpecialVar_ItemId > LAST_BERRY_INDEX + 1)
gSpecialVar_ItemId = ITEM_CHERI_BERRY;
else
RemoveBagItem(gSpecialVar_ItemId, 1);
- gUnknown_02022C90->unk68.as_four_players.others[gUnknown_02022C90->unk8].unk0 = gSpecialVar_ItemId - FIRST_BERRY_INDEX;
- gUnknown_02022C90->unkE = 1;
- gUnknown_02022C90->unkF = 9;
- BerryCrush_SetPaletteFadeParams(gUnknown_02022C90->unk36, 0, -1, 0, 16, 0, 0);
- sub_8022BEC(4, 1, gUnknown_02022C90->unk36);
- gUnknown_02022C90->unkA = CreateTask(sub_8020FA0, 8);
- SetMainCallback2(sub_8020F88);
+ gBerryCrushGame->unk68.as_four_players.others[gBerryCrushGame->unk8].unk0 = gSpecialVar_ItemId - FIRST_BERRY_INDEX;
+ gBerryCrushGame->unkE = 1;
+ gBerryCrushGame->unkF = 9;
+ BerryCrush_SetPaletteFadeParams(gBerryCrushGame->unk36, 0, -1, 0, 16, 0, 0);
+ sub_8022BEC(4, 1, gBerryCrushGame->unk36);
+ gBerryCrushGame->mainTask = CreateTask(MainTask, 8);
+ SetMainCallback2(MainCB);
}
-void sub_8020E1C(void)
+static void BerryCrush_SetupMainTask(void)
{
- DestroyTask(gUnknown_02022C90->unkA);
- ChooseBerryForMachine(sub_8020D8C);
+ DestroyTask(gBerryCrushGame->mainTask);
+ ChooseBerryForMachine(GetBerryFromBag);
}
-static void sub_8020E3C(void)
+static void BerryCrush_SetVBlankCB(void)
{
- SetVBlankCallback(sub_8020F74);
+ SetVBlankCallback(VBlankCB);
}
-void sub_8020E4C(void)
+static void BerryCrush_InitVBlankCB(void)
{
SetVBlankCallback(NULL);
}
-void sub_8020E58(void)
+static void BerryCrush_SaveResults(void)
{
u32 var0, var1;
- var0 = gUnknown_02022C90->unk68.as_four_players.unk00.unk04;
+ var0 = gBerryCrushGame->unk68.as_four_players.unk00.unk04;
var0 = Q_24_8(var0);
var0 = MathUtil_Div32(var0, Q_24_8(60));
- var1 = gUnknown_02022C90->unk68.as_four_players.unk00.unk0A;
+ var1 = gBerryCrushGame->unk68.as_four_players.unk00.unk0A;
var1 = Q_24_8(var1);
var1 = MathUtil_Div32(var1, var0) & 0xFFFF;
- gUnknown_02022C90->unk16 = var1;
- switch (gUnknown_02022C90->unk9)
+ gBerryCrushGame->unk16 = var1;
+ switch (gBerryCrushGame->unk9)
{
case 2:
- if (gUnknown_02022C90->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[0])
+ if (gBerryCrushGame->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[0])
{
- gUnknown_02022C90->unk25_1 = 1;
- gSaveBlock2Ptr->berryCrush.berryCrushResults[0] = gUnknown_02022C90->unk16;
+ gBerryCrushGame->unk25_1 = 1;
+ gSaveBlock2Ptr->berryCrush.berryCrushResults[0] = gBerryCrushGame->unk16;
}
break;
case 3:
- if (gUnknown_02022C90->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[1])
+ if (gBerryCrushGame->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[1])
{
- gUnknown_02022C90->unk25_1 = 1;
- gSaveBlock2Ptr->berryCrush.berryCrushResults[1] = gUnknown_02022C90->unk16;
+ gBerryCrushGame->unk25_1 = 1;
+ gSaveBlock2Ptr->berryCrush.berryCrushResults[1] = gBerryCrushGame->unk16;
}
break;
case 4:
- if (gUnknown_02022C90->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[2])
+ if (gBerryCrushGame->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[2])
{
- gUnknown_02022C90->unk25_1 = 1;
- gSaveBlock2Ptr->berryCrush.berryCrushResults[2] = gUnknown_02022C90->unk16;
+ gBerryCrushGame->unk25_1 = 1;
+ gSaveBlock2Ptr->berryCrush.berryCrushResults[2] = gBerryCrushGame->unk16;
}
break;
case 5:
- if (gUnknown_02022C90->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[3])
+ if (gBerryCrushGame->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[3])
{
- gUnknown_02022C90->unk25_1 = 1;
- gSaveBlock2Ptr->berryCrush.berryCrushResults[3] = gUnknown_02022C90->unk16;
+ gBerryCrushGame->unk25_1 = 1;
+ gSaveBlock2Ptr->berryCrush.berryCrushResults[3] = gBerryCrushGame->unk16;
}
break;
}
- gUnknown_02022C90->unk1C = gUnknown_02022C90->unk68.as_four_players.unk00.unk00;
- if (GiveBerryPowder(gUnknown_02022C90->unk1C))
+ gBerryCrushGame->unk1C = gBerryCrushGame->unk68.as_four_players.unk00.unk00;
+ if (GiveBerryPowder(gBerryCrushGame->unk1C))
return;
- gUnknown_02022C90->unk25_0 = 1;
+ gBerryCrushGame->unk25_0 = 1;
}
-static void sub_8020F74(void)
+static void VBlankCB(void)
{
TransferPlttBuffer();
LoadOam();
ProcessSpriteCopyRequests();
}
-static void sub_8020F88(void)
+static void MainCB(void)
{
RunTasks();
RunTextPrinters();
@@ -978,12 +977,12 @@ static void sub_8020F88(void)
BuildOamBuffer();
}
-static void sub_8020FA0(u8 taskId)
+static void MainTask(u8 taskId)
{
- if (gUnknown_02022C90->unk4)
- gUnknown_02022C90->unk4(gUnknown_02022C90, gUnknown_02022C90->unk36);
+ if (gBerryCrushGame->unk4)
+ gBerryCrushGame->unk4(gBerryCrushGame, gBerryCrushGame->unk36);
- sub_8021450(gUnknown_02022C90);
+ sub_8021450(gBerryCrushGame);
}
#define PLAYER_UNK14(game, i) \
@@ -992,11 +991,11 @@ static void sub_8020FA0(u8 taskId)
+ offsetof(struct BerryCrushGame_68_x, unk30) \
+ sizeof(struct BerryCrushGame_Player) * (i))
-void sub_8020FC4(struct BerryCrushGame *arg0)
+static void ParseName_Options(struct BerryCrushGame *arg0)
{
- u8 i;
+ u8 i = 0;
- for (i = 0; i < arg0->unk9; i++)
+ for (; i < arg0->unk9; i++)
StringCopy(PLAYER_UNK14(arg0, i), gLinkPlayers[i].name);
for (; i < 5; i++)
{
@@ -1018,13 +1017,14 @@ void sub_8020FC4(struct BerryCrushGame *arg0)
}
}
-int sub_802104C(void)
+// TODO: Everything from here on is likely in separate files.
+s32 InitBerryCrushDisplay(void)
{
- struct BerryCrushGame *var0 = sub_8020C00();
- if (!var0)
+ struct BerryCrushGame *game = GetBerryCrushGame();
+ if (!game)
return -1;
- switch (var0->unkC)
+ switch (game->unkC)
{
case 0:
SetVBlankCallback(NULL);
@@ -1046,9 +1046,9 @@ int sub_802104C(void)
case 3:
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, gUnknown_082F32C8, ARRAY_COUNT(gUnknown_082F32C8));
- SetBgTilemapBuffer(1, var0->unk1C0);
- SetBgTilemapBuffer(2, var0->unk21C0);
- SetBgTilemapBuffer(3, var0->unk31C0);
+ SetBgTilemapBuffer(1, game->unk1C0);
+ SetBgTilemapBuffer(2, game->unk21C0);
+ SetBgTilemapBuffer(3, game->unk31C0);
ChangeBgX(0, 0, 0);
ChangeBgY(0, 0, 0);
ChangeBgX(2, 0, 0);
@@ -1077,8 +1077,8 @@ int sub_802104C(void)
InitStandardTextBoxWindows();
InitTextBoxGfxAndPrinters();
- sub_8022588(var0);
- sub_8022600(var0);
+ sub_8022588(game);
+ sub_8022600(game);
gPaletteFade.bufferTransferDisabled = TRUE;
break;
case 7:
@@ -1086,7 +1086,7 @@ int sub_802104C(void)
CopyToBgTilemapBuffer(1, gBerryCrushGrinderTopTilemap, 0, 0);
CopyToBgTilemapBuffer(2, gBerryCrushContainerCapTilemap, 0, 0);
CopyToBgTilemapBuffer(3, gBerryCrushBackgroundTilemap, 0, 0);
- sub_80226D0(var0);
+ sub_80226D0(game);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(3);
@@ -1094,7 +1094,7 @@ int sub_802104C(void)
case 8:
LoadWirelessStatusIndicatorSpriteGfx();
CreateWirelessStatusIndicatorSprite(0, 0);
- sub_8022730(var0);
+ sub_8022730(game);
SetGpuReg(REG_OFFSET_BG1VOFS, -gSpriteCoordOffsetY);
ChangeBgX(1, 0, 0);
ChangeBgY(1, 0, 0);
@@ -1107,18 +1107,18 @@ int sub_802104C(void)
ShowBg(2);
ShowBg(3);
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
- sub_8020E3C();
- var0->unkC = 0;
+ BerryCrush_SetVBlankCB();
+ game->unkC = 0;
return 1;
}
- var0->unkC++;
+ game->unkC++;
return 0;
}
int sub_802130C(void)
{
- struct BerryCrushGame *var0 = sub_8020C00();
+ struct BerryCrushGame *var0 = GetBerryCrushGame();
if (!var0)
return -1;
@@ -1768,22 +1768,15 @@ void sub_8022600(struct BerryCrushGame *r6)
void sub_80226D0(struct BerryCrushGame *r6)
{
u8 r5 = 0;
- const u32 *r0 = gUnknown_08DE3FD4;
-#ifndef NONMATCHING // r4, r5, r6 register roulette
- register u8 *r4 asm("r4") = gDecompressionBuffer;
- register u32 r0_ asm("r0");
-#else
- u8 *r4 = gDecompressionBuffer;
- u32 r0_;
-#endif
+ u8 * r4;
+
+ LZ77UnCompWram(gUnknown_08DE3FD4, gDecompressionBuffer); // required for matching
- LZ77UnCompWram(r0, r4);
- for (; r5 < r6->unk9; ++r5)
+ for (r4 = gDecompressionBuffer; r5 < r6->unk9; ++r5)
{
- r0_ = r6->unk138.unkC[r5]->unk0;
CopyToBgTilemapBufferRect(
3,
- &r4[r0_ * 40],
+ &r4[r6->unk138.unkC[r5]->unk0 * 40],
r6->unk138.unkC[r5]->unk1,
r6->unk138.unkC[r5]->unk2,
10,
@@ -1956,7 +1949,7 @@ void sub_8022B28(struct Sprite *sprite)
void sub_8022BEC(u16 r5, u8 r4, u8 *r7)
{
- struct BerryCrushGame *r6 = sub_8020C00();
+ struct BerryCrushGame *r6 = GetBerryCrushGame();
if (r5 > 25)
r5 = 0;
@@ -2093,7 +2086,7 @@ static u32 sub_8022D14(struct BerryCrushGame *r7, u8 *r5)
static u32 sub_8022E1C(struct BerryCrushGame *r4, __attribute__((unused)) u8 *r1)
{
- if (sub_802104C() != 0)
+ if (InitBerryCrushDisplay() != 0)
sub_8022BEC(r4->unkE, 0, r4->unk36);
return 0;
}
@@ -2151,7 +2144,7 @@ static u32 sub_8022EAC(struct BerryCrushGame *r4, u8 *r5)
static u32 sub_8022F04(struct BerryCrushGame *r0, __attribute__((unused)) u8 *r1)
{
r0->unk4 = NULL;
- SetMainCallback2(sub_8020E1C);
+ SetMainCallback2(BerryCrush_SetupMainTask);
return 0;
}
@@ -2937,7 +2930,7 @@ static u32 sub_8023CAC(struct BerryCrushGame *r7, __attribute__((unused)) u8 *r1
r7->unk10 = 0;
break;
case 7:
- sub_8020E58();
+ BerryCrush_SaveResults();
sub_8022BEC(18, 1, NULL);
r7->unk12 = 11;
r7->unkC = 0;
@@ -3205,7 +3198,7 @@ static u32 sub_8024508(struct BerryCrushGame *r5, __attribute__((unused)) u8 *r1
static u32 sub_8024568(__attribute__((unused)) struct BerryCrushGame *r0, __attribute__((unused)) u8 *r1)
{
- sub_8020C0C(NULL);
+ QuitBerryCrush(NULL);
return 0;
}
diff --git a/src/contest.c b/src/contest.c
index f775b01b4..40a0eac66 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -3118,9 +3118,9 @@ static u8 CreateContestantSprite(u16 species, u32 otId, u32 personality, u32 ind
species = SanitizeSpecies(species);
if (index == gContestPlayerMonIndex)
- HandleLoadSpecialPokePic_2(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites[0], species, personality);
+ HandleLoadSpecialPokePic_2(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[0], species, personality);
else
- HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites[0], species, personality);
+ HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[0], species, personality);
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x120, 0x20);
SetMultiuseSpriteTemplateToPokemon(species, 0);
diff --git a/src/contest_painting.c b/src/contest_painting.c
index 8832b59e8..1602eb94f 100644
--- a/src/contest_painting.c
+++ b/src/contest_painting.c
@@ -368,19 +368,19 @@ static void InitContestMonPixels(u16 species, u8 whichSprite)
{
HandleLoadSpecialPokePic_DontHandleDeoxys(
&gMonFrontPicTable[species],
- gMonSpritesGfxPtr->sprites[1],
+ gMonSpritesGfxPtr->sprites.ptr[1],
species,
gContestPaintingWinner->personality);
- _InitContestMonPixels(gMonSpritesGfxPtr->sprites[1], gContestPaintingMonPalette, (void *)gContestMonPixels);
+ _InitContestMonPixels(gMonSpritesGfxPtr->sprites.ptr[1], gContestPaintingMonPalette, (void *)gContestMonPixels);
}
else
{
HandleLoadSpecialPokePic_DontHandleDeoxys(
&gMonBackPicTable[species],
- gMonSpritesGfxPtr->sprites[0],
+ gMonSpritesGfxPtr->sprites.ptr[0],
species,
gContestPaintingWinner->personality);
- _InitContestMonPixels(gMonSpritesGfxPtr->sprites[0], gContestPaintingMonPalette, (void *)gContestMonPixels);
+ _InitContestMonPixels(gMonSpritesGfxPtr->sprites.ptr[0], gContestPaintingMonPalette, (void *)gContestMonPixels);
}
}
diff --git a/src/contest_util.c b/src/contest_util.c
index 9ddfdad1d..e690a3bbe 100644
--- a/src/contest_util.c
+++ b/src/contest_util.c
@@ -875,7 +875,7 @@ static void Task_ShowWinnerMonBanner(u8 taskId)
{
HandleLoadSpecialPokePic_2(
&gMonFrontPicTable[species],
- gMonSpritesGfxPtr->sprites[1],
+ gMonSpritesGfxPtr->sprites.ptr[1],
species,
personality);
}
@@ -883,7 +883,7 @@ static void Task_ShowWinnerMonBanner(u8 taskId)
{
HandleLoadSpecialPokePic_DontHandleDeoxys(
&gMonFrontPicTable[species],
- gMonSpritesGfxPtr->sprites[1],
+ gMonSpritesGfxPtr->sprites.ptr[1],
species,
personality);
}
@@ -2547,9 +2547,9 @@ void ShowContestEntryMonPic(void)
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[1] = species;
if (gSpecialVar_0x8006 == gContestPlayerMonIndex)
- HandleLoadSpecialPokePic_2(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[1], species, personality);
+ HandleLoadSpecialPokePic_2(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, personality);
else
- HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[1], species, personality);
+ HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, personality);
palette = GetMonSpritePalStructFromOtIdPersonality(species, otId, personality);
LoadCompressedSpritePalette(palette);
diff --git a/src/daycare.c b/src/daycare.c
index fd6ed3a50..60bff8f1e 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -619,10 +619,7 @@ static u8 GetEggMoves(struct Pokemon *pokemon, u16 *eggMoves)
for (i = 0; i < EGG_MOVES_ARRAY_COUNT; i++)
{
if (gEggMoves[eggMoveIdx + i] > EGG_MOVES_SPECIES_OFFSET)
- {
- // TODO: the curly braces around this if statement are required for a matching build.
break;
- }
eggMoves[i] = gEggMoves[eggMoveIdx + i];
numEggMoves++;
diff --git a/src/egg_hatch.c b/src/egg_hatch.c
index 87f0a13fd..f90441b68 100644
--- a/src/egg_hatch.c
+++ b/src/egg_hatch.c
@@ -434,7 +434,7 @@ static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16* speciesLoc
u16 species = GetMonData(mon, MON_DATA_SPECIES);
u32 pid = GetMonData(mon, MON_DATA_PERSONALITY);
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species],
- gMonSpritesGfxPtr->sprites[(a0 * 2) + 1],
+ gMonSpritesGfxPtr->sprites.ptr [(a0 * 2) + 1],
species, pid);
LoadCompressedSpritePalette(GetMonSpritePalStruct(mon));
*speciesLoc = species;
diff --git a/src/event_object_movement.c b/src/event_object_movement.c
index c0f02acb2..1d06ddc84 100644
--- a/src/event_object_movement.c
+++ b/src/event_object_movement.c
@@ -1233,8 +1233,8 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template,
objectEvent->previousCoords.y = y;
objectEvent->currentElevation = template->elevation;
objectEvent->previousElevation = template->elevation;
- objectEvent->range.as_nybbles.x = template->movementRangeX;
- objectEvent->range.as_nybbles.y = template->movementRangeY;
+ objectEvent->rangeX = template->movementRangeX;
+ objectEvent->rangeY = template->movementRangeY;
objectEvent->trainerType = template->trainerType;
objectEvent->mapNum = mapNum;
objectEvent->trainerRange_berryTreeId = template->trainerRange_berryTreeId;
@@ -1243,13 +1243,13 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template,
SetObjectEventDynamicGraphicsId(objectEvent);
if (gRangedMovementTypes[objectEvent->movementType])
{
- if (objectEvent->range.as_nybbles.x == 0)
+ if (objectEvent->rangeX == 0)
{
- objectEvent->range.as_nybbles.x++;
+ objectEvent->rangeX++;
}
- if (objectEvent->range.as_nybbles.y == 0)
+ if (objectEvent->rangeY == 0)
{
- objectEvent->range.as_nybbles.y++;
+ objectEvent->rangeY++;
}
}
return objectEventId;
@@ -1296,22 +1296,19 @@ static bool8 GetAvailableObjectEventId(u16 localId, u8 mapNum, u8 mapGroup, u8 *
{
u8 i = 0;
- for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
+ for (i = 0; i < OBJECT_EVENTS_COUNT && gObjectEvents[i].active; i++)
{
- if (!gObjectEvents[i].active)
- break;
if (gObjectEvents[i].localId == localId && gObjectEvents[i].mapNum == mapNum && gObjectEvents[i].mapGroup == mapGroup)
return TRUE;
}
if (i >= OBJECT_EVENTS_COUNT)
return TRUE;
*objectEventId = i;
- do
+ for (; i < OBJECT_EVENTS_COUNT; i++)
{
if (gObjectEvents[i].active && gObjectEvents[i].localId == localId && gObjectEvents[i].mapNum == mapNum && gObjectEvents[i].mapGroup == mapGroup)
return TRUE;
- i++;
- } while (i < OBJECT_EVENTS_COUNT);
+ }
return FALSE;
}
@@ -4759,19 +4756,19 @@ static bool8 IsCoordOutsideObjectEventMovementRange(struct ObjectEvent *objectEv
s16 top;
s16 bottom;
- if (objectEvent->range.as_nybbles.x != 0)
+ if (objectEvent->rangeX != 0)
{
- left = objectEvent->initialCoords.x - objectEvent->range.as_nybbles.x;
- right = objectEvent->initialCoords.x + objectEvent->range.as_nybbles.x;
+ left = objectEvent->initialCoords.x - objectEvent->rangeX;
+ right = objectEvent->initialCoords.x + objectEvent->rangeX;
if (left > x || right < x)
{
return TRUE;
}
}
- if (objectEvent->range.as_nybbles.y != 0)
+ if (objectEvent->rangeY != 0)
{
- top = objectEvent->initialCoords.y - objectEvent->range.as_nybbles.y;
- bottom = objectEvent->initialCoords.y + objectEvent->range.as_nybbles.y;
+ top = objectEvent->initialCoords.y - objectEvent->rangeY;
+ bottom = objectEvent->initialCoords.y + objectEvent->rangeY;
if (top > y || bottom < y)
{
return TRUE;
diff --git a/src/evolution_scene.c b/src/evolution_scene.c
index 22376a478..d41bc5970 100644
--- a/src/evolution_scene.c
+++ b/src/evolution_scene.c
@@ -255,7 +255,7 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo,
trainerId = GetMonData(mon, MON_DATA_OT_ID);
personality = GetMonData(mon, MON_DATA_PERSONALITY);
DecompressPicFromTable_2(&gMonFrontPicTable[currSpecies],
- gMonSpritesGfxPtr->sprites[1],
+ gMonSpritesGfxPtr->sprites.ptr[1],
currSpecies);
pokePal = GetMonSpritePalStructFromOtIdPersonality(currSpecies, trainerId, personality);
LoadCompressedPalette(pokePal->data, 0x110, 0x20);
@@ -270,7 +270,7 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo,
// postEvo sprite
DecompressPicFromTable_2(&gMonFrontPicTable[speciesToEvolve],
- gMonSpritesGfxPtr->sprites[3],
+ gMonSpritesGfxPtr->sprites.ptr[3],
speciesToEvolve);
pokePal = GetMonSpritePalStructFromOtIdPersonality(speciesToEvolve, trainerId, personality);
LoadCompressedPalette(pokePal->data, 0x120, 0x20);
@@ -347,7 +347,7 @@ static void CB2_EvolutionSceneLoadGraphics(void)
gReservedSpritePaletteCount = 4;
DecompressPicFromTable_2(&gMonFrontPicTable[postEvoSpecies],
- gMonSpritesGfxPtr->sprites[3],
+ gMonSpritesGfxPtr->sprites.ptr[3],
postEvoSpecies);
pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality);
@@ -419,7 +419,7 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void)
u32 trainerId = GetMonData(Mon, MON_DATA_OT_ID);
u32 personality = GetMonData(Mon, MON_DATA_PERSONALITY);
DecompressPicFromTable_2(&gMonFrontPicTable[postEvoSpecies],
- gMonSpritesGfxPtr->sprites[3],
+ gMonSpritesGfxPtr->sprites.ptr[3],
postEvoSpecies);
pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality);
LoadCompressedPalette(pokePal->data, 0x120, 0x20);
@@ -483,7 +483,7 @@ void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpri
sEvoStructPtr->preEvoSpriteID = preEvoSpriteID;
DecompressPicFromTable_2(&gMonFrontPicTable[speciesToEvolve],
- gMonSpritesGfxPtr->sprites[1],
+ gMonSpritesGfxPtr->sprites.ptr[1],
speciesToEvolve);
pokePal = GetMonSpritePalStructFromOtIdPersonality(speciesToEvolve, trainerId, personality);
diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c
index f8c4e79f1..f57cc9979 100644
--- a/src/field_player_avatar.c
+++ b/src/field_player_avatar.c
@@ -342,10 +342,6 @@ void PlayerStep(u8 direction, u16 newKeys, u16 heldKeys)
static bool8 TryInterruptObjectEventSpecialAnim(struct ObjectEvent *playerObjEvent, u8 direction)
{
- u8 r5 = direction;
- u8 r6 = direction;
- r6++; r6--;
-
if (ObjectEventIsMovementOverridden(playerObjEvent)
&& !ObjectEventClearHeldMovementIfFinished(playerObjEvent))
{
@@ -357,13 +353,13 @@ static bool8 TryInterruptObjectEventSpecialAnim(struct ObjectEvent *playerObjEve
return TRUE;
}
- if (playerObjEvent->movementDirection != r5)
+ if (playerObjEvent->movementDirection != direction)
{
ObjectEventClearHeldMovement(playerObjEvent);
return FALSE;
}
- if (!sub_808B028(r6))
+ if (!sub_808B028(direction))
{
ObjectEventClearHeldMovement(playerObjEvent);
return FALSE;
@@ -2085,7 +2081,7 @@ static void sub_808D094(u8 taskId)
sub_808D074(object->facingDirection);
data[1] = 0;
data[2] = 1;
- data[3] = (u16)(sprite->pos1.y + sprite->pos2.y) * 16;
+ data[3] = (u16)(sprite->pos1.y + sprite->pos2.y) << 4;
sprite->pos2.y = 0;
CameraObjectReset2();
object->fixedPriority = TRUE;
diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c
index 785f7b426..0458f7621 100644
--- a/src/fldeff_cut.c
+++ b/src/fldeff_cut.c
@@ -227,17 +227,15 @@ bool8 SetUpFieldMove_Cut(void)
y = gPlayerFacingPosition.y + sHyperCutStruct[i].y;
tileCuttable = TRUE;
- j = 0;
- do
+ for (j = 0; j < 2; ++j)
{
- if (sHyperCutStruct[i].unk2[j] == 0)
- break;
+ if (sHyperCutStruct[i].unk2[j] == 0) break; // one line required to match -g
if (cutTiles[(u8)(sHyperCutStruct[i].unk2[j] - 1)] == FALSE)
{
tileCuttable = FALSE;
break;
}
- } while (++j <= 1);
+ }
if (tileCuttable == TRUE)
{
diff --git a/src/menu_specialized.c b/src/menu_specialized.c
index 1d317a1aa..c1088d9f7 100644
--- a/src/menu_specialized.c
+++ b/src/menu_specialized.c
@@ -880,39 +880,34 @@ s32 GetBoxOrPartyMonData(u16 boxId, u16 monId, s32 request, u8 *dst)
// Gets the name/gender/level string for the condition menu
static u8 *GetConditionMenuMonString(u8 *dst, u16 boxId, u16 monId)
{
- u16 species, level, gender;
+ u16 box, mon, species, level, gender;
struct BoxPokemon *boxMon;
u8 *str;
+ box = boxId;
+ mon = monId;
*(dst++) = EXT_CTRL_CODE_BEGIN;
*(dst++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW;
*(dst++) = TEXT_COLOR_BLUE;
*(dst++) = TEXT_COLOR_TRANSPARENT;
*(dst++) = TEXT_COLOR_LIGHT_BLUE;
- if (GetBoxOrPartyMonData(boxId, monId, MON_DATA_IS_EGG, NULL))
- {
+ if (GetBoxOrPartyMonData(box, mon, MON_DATA_IS_EGG, NULL))
return StringCopyPadded(dst, gText_EggNickname, 0, 12);
+ GetBoxOrPartyMonData(box, mon, MON_DATA_NICKNAME, dst);
+ StringGetEnd10(dst);
+ species = GetBoxOrPartyMonData(box, mon, MON_DATA_SPECIES, NULL);
+ if (box == TOTAL_BOXES_COUNT) // Party mon.
+ {
+ level = GetMonData(&gPlayerParty[mon], MON_DATA_LEVEL);
+ gender = GetMonGender(&gPlayerParty[mon]);
}
else
{
- GetBoxOrPartyMonData(boxId, monId, MON_DATA_NICKNAME, dst);
- StringGetEnd10(dst);
- species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES, NULL);
- if (boxId == TOTAL_BOXES_COUNT) // Party mon.
- {
- level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
- gender = GetMonGender(&gPlayerParty[monId]);
- }
- else
- {
- // Needed to match, feel free to remove.
- boxId++;boxId--;
- monId++;monId--;
- boxMon = GetBoxedMonPtr(boxId, monId);
- gender = GetBoxMonGender(boxMon);
- level = GetLevelFromBoxMonExp(boxMon);
- }
+ boxMon = GetBoxedMonPtr(box, mon);
+ gender = GetBoxMonGender(boxMon);
+ level = GetLevelFromBoxMonExp(boxMon);
+ }
if ((species == SPECIES_NIDORAN_F || species == SPECIES_NIDORAN_M) && !StringCompare(dst, gSpeciesNames[species]))
gender = MON_GENDERLESS;
@@ -962,7 +957,6 @@ static u8 *GetConditionMenuMonString(u8 *dst, u16 boxId, u16 monId)
*str = EOS;
return str;
- }
}
// Buffers the string in src to dest up to n chars. If src is less than n chars, fill with spaces
@@ -983,6 +977,8 @@ static u8 *BufferConditionMenuSpacedStringN(u8 *dst, const u8 *src, s16 n)
void GetConditionMenuMonNameAndLocString(u8 *locationDst, u8 *nameDst, u16 boxId, u16 monId, u16 partyId, u16 numMons, bool8 excludesCancel)
{
u16 i;
+ u16 box = boxId;
+ u16 mon = monId;
// In this and the below 2 functions, numMons is passed as the number of menu selections (which includes Cancel)
// To indicate that the Cancel needs to be subtracted they pass an additional bool
@@ -992,21 +988,16 @@ void GetConditionMenuMonNameAndLocString(u8 *locationDst, u8 *nameDst, u16 boxId
if (partyId != numMons)
{
- GetConditionMenuMonString(nameDst, boxId, monId);
+ GetConditionMenuMonString(nameDst, box, mon);
locationDst[0] = EXT_CTRL_CODE_BEGIN;
locationDst[1] = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW;
locationDst[2] = TEXT_COLOR_BLUE;
locationDst[3] = TEXT_COLOR_TRANSPARENT;
locationDst[4] = TEXT_COLOR_LIGHT_BLUE;
- if (boxId == TOTAL_BOXES_COUNT) // Party mon.
- {
+ if (box == TOTAL_BOXES_COUNT) // Party mon.
BufferConditionMenuSpacedStringN(&locationDst[5], gText_InParty, 8);
- }
else
- {
- boxId++;boxId--; // Again...Someone fix this maybe?
- BufferConditionMenuSpacedStringN(&locationDst[5], GetBoxNamePtr(boxId), 8);
- }
+ BufferConditionMenuSpacedStringN(&locationDst[5], GetBoxNamePtr(box), 8);
}
else
{
diff --git a/src/overworld.c b/src/overworld.c
index 223e6e152..dbc923e7b 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -2908,7 +2908,11 @@ static void ZeroObjectEvent(struct ObjectEvent *objEvent)
memset(objEvent, 0, sizeof(struct ObjectEvent));
}
-static void SpawnLinkPlayerObjectEvent(u8 linkPlayerId, s16 x, s16 y, u8 a4)
+#define linkGender(obj) obj->singleMovementActive
+// not even one can reference *byte* aligned bitfield members...
+#define linkDirection(obj) ((u8*)obj)[offsetof(typeof(*obj), fieldEffectSpriteId) - 1] // -> rangeX
+
+static void SpawnLinkPlayerObjectEvent(u8 linkPlayerId, s16 x, s16 y, u8 gender)
{
u8 objEventId = GetFirstInactiveObjectEventId();
struct LinkPlayerObjectEvent *linkPlayerObjEvent = &gLinkPlayerObjectEvents[linkPlayerId];
@@ -2923,8 +2927,8 @@ static void SpawnLinkPlayerObjectEvent(u8 linkPlayerId, s16 x, s16 y, u8 a4)
linkPlayerObjEvent->movementMode = MOVEMENT_MODE_FREE;
objEvent->active = 1;
- objEvent->singleMovementActive = a4;
- objEvent->range.as_byte = 2;
+ linkGender(objEvent) = gender;
+ linkDirection(objEvent) = 2;
objEvent->spriteId = 64;
InitLinkPlayerObjectEventPos(objEvent, x, y);
@@ -2947,7 +2951,7 @@ static void sub_80877DC(u8 linkPlayerId, u8 a2)
{
u8 objEventId = gLinkPlayerObjectEvents[linkPlayerId].objEventId;
struct ObjectEvent *objEvent = &gObjectEvents[objEventId];
- objEvent->range.as_byte = a2;
+ linkDirection(objEvent) = a2;
}
}
@@ -2982,7 +2986,7 @@ static u8 GetLinkPlayerFacingDirection(u8 linkPlayerId)
{
u8 objEventId = gLinkPlayerObjectEvents[linkPlayerId].objEventId;
struct ObjectEvent *objEvent = &gObjectEvents[objEventId];
- return objEvent->range.as_byte;
+ return linkDirection(objEvent);
}
static u8 GetLinkPlayerElevation(u8 linkPlayerId)
@@ -3067,10 +3071,10 @@ static bool8 FacingHandler_DpadMovement(struct LinkPlayerObjectEvent *linkPlayer
{
s16 x, y;
- objEvent->range.as_byte = FlipVerticalAndClearForced(a3, objEvent->range.as_byte);
- ObjectEventMoveDestCoords(objEvent, objEvent->range.as_byte, &x, &y);
+ linkDirection(objEvent) = FlipVerticalAndClearForced(a3, linkDirection(objEvent));
+ ObjectEventMoveDestCoords(objEvent, linkDirection(objEvent), &x, &y);
- if (LinkPlayerDetectCollision(linkPlayerObjEvent->objEventId, objEvent->range.as_byte, x, y))
+ if (LinkPlayerDetectCollision(linkPlayerObjEvent->objEventId, linkDirection(objEvent), x, y))
{
return FALSE;
}
@@ -3085,7 +3089,7 @@ static bool8 FacingHandler_DpadMovement(struct LinkPlayerObjectEvent *linkPlayer
static bool8 FacingHandler_ForcedFacingChange(struct LinkPlayerObjectEvent *linkPlayerObjEvent, struct ObjectEvent *objEvent, u8 a3)
{
- objEvent->range.as_byte = FlipVerticalAndClearForced(a3, objEvent->range.as_byte);
+ linkDirection(objEvent) = FlipVerticalAndClearForced(a3, linkDirection(objEvent));
return FALSE;
}
@@ -3099,7 +3103,7 @@ static void MovementStatusHandler_TryAdvanceScript(struct LinkPlayerObjectEvent
{
objEvent->directionSequenceIndex--;
linkPlayerObjEvent->movementMode = MOVEMENT_MODE_FROZEN;
- MoveCoords(objEvent->range.as_byte, &objEvent->initialCoords.x, &objEvent->initialCoords.y);
+ MoveCoords(linkDirection(objEvent), &objEvent->initialCoords.x, &objEvent->initialCoords.y);
if (!objEvent->directionSequenceIndex)
{
ShiftStillObjectEventCoords(objEvent);
@@ -3160,14 +3164,14 @@ static void CreateLinkPlayerSprite(u8 linkPlayerId, u8 gameVersion)
{
case VERSION_FIRE_RED:
case VERSION_LEAF_GREEN:
- objEvent->spriteId = AddPseudoObjectEvent(GetFRLGAvatarGraphicsIdByGender(objEvent->singleMovementActive), SpriteCB_LinkPlayer, 0, 0, 0);
+ objEvent->spriteId = AddPseudoObjectEvent(GetFRLGAvatarGraphicsIdByGender(linkGender(objEvent)), SpriteCB_LinkPlayer, 0, 0, 0);
break;
case VERSION_RUBY:
case VERSION_SAPPHIRE:
- objEvent->spriteId = AddPseudoObjectEvent(GetRSAvatarGraphicsIdByGender(objEvent->singleMovementActive), SpriteCB_LinkPlayer, 0, 0, 0);
+ objEvent->spriteId = AddPseudoObjectEvent(GetRSAvatarGraphicsIdByGender(linkGender(objEvent)), SpriteCB_LinkPlayer, 0, 0, 0);
break;
case VERSION_EMERALD:
- objEvent->spriteId = AddPseudoObjectEvent(GetRivalAvatarGraphicsIdByStateIdAndGender(PLAYER_AVATAR_STATE_NORMAL, objEvent->singleMovementActive), SpriteCB_LinkPlayer, 0, 0, 0);
+ objEvent->spriteId = AddPseudoObjectEvent(GetRivalAvatarGraphicsIdByStateIdAndGender(PLAYER_AVATAR_STATE_NORMAL, linkGender(objEvent)), SpriteCB_LinkPlayer, 0, 0, 0);
break;
}
@@ -3188,9 +3192,9 @@ static void SpriteCB_LinkPlayer(struct Sprite *sprite)
sprite->oam.priority = ZCoordToPriority(objEvent->previousElevation);
if (linkPlayerObjEvent->movementMode == MOVEMENT_MODE_FREE)
- StartSpriteAnim(sprite, GetFaceDirectionAnimNum(objEvent->range.as_byte));
+ StartSpriteAnim(sprite, GetFaceDirectionAnimNum(linkDirection(objEvent)));
else
- StartSpriteAnimIfDifferent(sprite, GetMoveDirectionAnimNum(objEvent->range.as_byte));
+ StartSpriteAnimIfDifferent(sprite, GetMoveDirectionAnimNum(linkDirection(objEvent)));
UpdateObjectEventSpriteVisibility(sprite, 0);
if (objEvent->triggerGroundEffectsOnMove)
diff --git a/src/party_menu.c b/src/party_menu.c
index da0783d23..f045a9a47 100755
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -1963,19 +1963,17 @@ static u8 CanMonLearnTMTutor(struct Pokemon *mon, u16 item, u8 tutor)
if (item >= ITEM_TM01_FOCUS_PUNCH)
{
- if (CanMonLearnTMHM(mon, item - ITEM_TM01_FOCUS_PUNCH))
- move = ItemIdToBattleMoveId(item);
- else
+ if (!CanMonLearnTMHM(mon, item - ITEM_TM01_FOCUS_PUNCH))
return CANNOT_LEARN_MOVE;
- do {} while (0); // :morphon:
- }
- else if (CanLearnTutorMove(GetMonData(mon, MON_DATA_SPECIES), tutor) == FALSE)
- {
- return CANNOT_LEARN_MOVE;
+ else
+ move = ItemIdToBattleMoveId(item);
}
else
{
- move = GetTutorMove(tutor);
+ if (!CanLearnTutorMove(GetMonData(mon, MON_DATA_SPECIES), tutor))
+ return CANNOT_LEARN_MOVE;
+ else
+ move = GetTutorMove(tutor);
}
if (MonKnowsMove(mon, move) == TRUE)
diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c
index 797771f80..32db6c717 100644
--- a/src/pokeblock_feed.c
+++ b/src/pokeblock_feed.c
@@ -646,7 +646,7 @@ static bool8 LoadMonAndSceneGfx(struct Pokemon *mon)
case 0:
species = GetMonData(mon, MON_DATA_SPECIES2);
personality = GetMonData(mon, MON_DATA_PERSONALITY);
- HandleLoadSpecialPokePic_2(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[1], species, personality);
+ HandleLoadSpecialPokePic_2(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, personality);
sPokeblockFeed->loadGfxState++;
break;
case 1:
diff --git a/src/pokemon.c b/src/pokemon.c
index 3621284d6..d4b785964 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -5594,8 +5594,8 @@ u16 SpeciesToCryId(u16 species)
void sub_806D544(u16 species, u32 personality, u8 *dest)
{
if (species == SPECIES_SPINDA
- && dest != gMonSpritesGfxPtr->sprites[0]
- && dest != gMonSpritesGfxPtr->sprites[2])
+ && dest != gMonSpritesGfxPtr->sprites.ptr[0]
+ && dest != gMonSpritesGfxPtr->sprites.ptr[2])
{
int i;
for (i = 0; i < 4; i++)
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index ad037a5f5..04f7f3f06 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -3858,18 +3858,18 @@ static u8 LoadMonGfxAndSprite(struct Pokemon *mon, s16 *state)
if (gMain.inBattle)
{
if (sub_80688F8(3, sMonSummaryScreen->curMonIndex))
- HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites[1], summary->species2, summary->pid);
+ HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites.ptr[1], summary->species2, summary->pid);
else
- HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites[1], summary->species2, summary->pid);
+ HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites.ptr[1], summary->species2, summary->pid);
}
else
{
if (gMonSpritesGfxPtr != NULL)
{
if (sMonSummaryScreen->monList.mons == gPlayerParty || sMonSummaryScreen->mode == PSS_MODE_BOX || sMonSummaryScreen->unk40EF == TRUE)
- HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites[1], summary->species2, summary->pid);
+ HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites.ptr[1], summary->species2, summary->pid);
else
- HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites[1], summary->species2, summary->pid);
+ HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites.ptr[1], summary->species2, summary->pid);
}
else
{
diff --git a/src/pokenav_match_call_data.c b/src/pokenav_match_call_data.c
index 91dbe4005..6610dcb80 100644
--- a/src/pokenav_match_call_data.c
+++ b/src/pokenav_match_call_data.c
@@ -1100,16 +1100,9 @@ const u8 *MatchCall_GetOverrideFlavorText(u32 idx, u32 offset)
{
if (sCheckPageOverrides[i].idx == idx)
{
- while (1)
- {
- if (i + 1 >= ARRAY_COUNT(sCheckPageOverrides))
- break;
- if (sCheckPageOverrides[i + 1].idx != idx)
- break;
- if (!FlagGet(sCheckPageOverrides[i + 1].flag))
- break;
- i++;
- }
+ for (; i + 1 < ARRAY_COUNT(sCheckPageOverrides) &&
+ sCheckPageOverrides[i + 1].idx == idx &&
+ FlagGet(sCheckPageOverrides[i + 1].flag); i++);
return sCheckPageOverrides[i].flavorTexts[offset];
}
}
diff --git a/src/trade.c b/src/trade.c
index 5ba26842f..6696c23eb 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -2724,9 +2724,9 @@ static void LoadTradeMonPic(u8 whichParty, u8 state)
personality = GetMonData(mon, MON_DATA_PERSONALITY);
if (whichParty == TRADE_PLAYER)
- HandleLoadSpecialPokePic_2(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[1], species, personality);
+ HandleLoadSpecialPokePic_2(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, personality);
else
- HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites[whichParty * 2 + 1], species, personality);
+ HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[whichParty * 2 + 1], species, personality);
LoadCompressedSpritePalette(GetMonSpritePalStruct(mon));
sTradeData->monSpecies[whichParty] = species;
@@ -3659,7 +3659,7 @@ static bool8 AnimateTradeSequenceCable(void)
case 65:
if (gSprites[sTradeData->unk_D3].callback == SpriteCallbackDummy)
{
- HandleLoadSpecialPokePic_2(&gMonFrontPicTable[sTradeData->monSpecies[TRADE_PARTNER]], gMonSpritesGfxPtr->sprites[3], sTradeData->monSpecies[TRADE_PARTNER], sTradeData->monPersonalities[TRADE_PARTNER]);
+ HandleLoadSpecialPokePic_2(&gMonFrontPicTable[sTradeData->monSpecies[TRADE_PARTNER]], gMonSpritesGfxPtr->sprites.ptr[3], sTradeData->monSpecies[TRADE_PARTNER], sTradeData->monPersonalities[TRADE_PARTNER]);
sTradeData->state++;
}
break;
@@ -4174,7 +4174,7 @@ static bool8 AnimateTradeSequenceWireless(void)
case 65:
if (gSprites[sTradeData->unk_D3].callback == SpriteCallbackDummy)
{
- HandleLoadSpecialPokePic_2(&gMonFrontPicTable[sTradeData->monSpecies[TRADE_PARTNER]], gMonSpritesGfxPtr->sprites[3], sTradeData->monSpecies[TRADE_PARTNER], sTradeData->monPersonalities[TRADE_PARTNER]);
+ HandleLoadSpecialPokePic_2(&gMonFrontPicTable[sTradeData->monSpecies[TRADE_PARTNER]], gMonSpritesGfxPtr->sprites.ptr[3], sTradeData->monSpecies[TRADE_PARTNER], sTradeData->monPersonalities[TRADE_PARTNER]);
sTradeData->state++;
}
break;
diff --git a/src/trainer_see.c b/src/trainer_see.c
index 4f4aaea08..46fafa7e3 100644
--- a/src/trainer_see.c
+++ b/src/trainer_see.c
@@ -377,15 +377,15 @@ static u8 CheckPathBetweenTrainerAndPlayer(struct ObjectEvent *trainerObj, u8 ap
}
// preserve mapobj_unk_19 before clearing.
- unk19_temp = trainerObj->range.as_nybbles.x;
- unk19b_temp = trainerObj->range.as_nybbles.y;
- trainerObj->range.as_nybbles.x = 0;
- trainerObj->range.as_nybbles.y = 0;
+ unk19_temp = trainerObj->rangeX;
+ unk19b_temp = trainerObj->rangeY;
+ trainerObj->rangeX = 0;
+ trainerObj->rangeY = 0;
collision = GetCollisionAtCoords(trainerObj, x, y, direction);
- trainerObj->range.as_nybbles.x = unk19_temp;
- trainerObj->range.as_nybbles.y = unk19b_temp;
+ trainerObj->rangeX = unk19_temp;
+ trainerObj->rangeY = unk19b_temp;
if (collision == 4)
return approachDistance;
diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c
index 1af157b90..b4ccbfe06 100644
--- a/src/use_pokeblock.c
+++ b/src/use_pokeblock.c
@@ -1,5 +1,6 @@
#include "global.h"
#include "main.h"
+#include "dma3.h"
#include "pokeblock.h"
#include "malloc.h"
#include "decompress.h"
@@ -1240,8 +1241,7 @@ static void UpdateMonPic(u8 loadId)
}
else
{
- do {} while(0); // Only needed to match, feel free to remove.
- DmaCopy16Defvars(3, sMenu->partySheets[loadId], sMenu->curMonTileStart, 0x800);
+ Dma3CopyLarge16_(sMenu->partySheets[loadId], sMenu->curMonTileStart, 0x800);
LoadPalette(sMenu->partyPalettes[loadId], sMenu->curMonPalette, 32);
}
}
diff --git a/src/walda_phrase.c b/src/walda_phrase.c
index 4b617e3b8..18fb2791b 100644
--- a/src/walda_phrase.c
+++ b/src/walda_phrase.c
@@ -173,14 +173,12 @@ static void sub_81D9C90(u8 *array, s32 arg1, s32 arg2)
{
var1 = (array[0] & 0x80) >> 7;
- var1++; var1--; // needed to match
-
for (j = arg1 - 1; j >= 0; j--)
{
- var2 = array[j] & 0x80;
+ var2 = (array[j] & 0x80) >> 7;
array[j] <<= 1;
array[j] |= var1;
- var1 = var2 >> 7;
+ var1 = var2;
}
}
}