diff options
Diffstat (limited to 'src')
69 files changed, 1844 insertions, 1571 deletions
diff --git a/src/battle/anim/current.c b/src/battle/anim/current.c index af72edef0..af72edef0 100755..100644 --- a/src/battle/anim/current.c +++ b/src/battle/anim/current.c diff --git a/src/battle/anim/dark.c b/src/battle/anim/dark.c index a7026edff..59db85342 100644 --- a/src/battle/anim/dark.c +++ b/src/battle/anim/dark.c @@ -1024,7 +1024,7 @@ void sub_80E0A4C(u8 taskId) if (IsContest()) { - species = EWRAM_19348; + species = EWRAM_19348[0]; } else { diff --git a/src/battle/anim/egg.c b/src/battle/anim/egg.c index 5b6d56dac..5b6d56dac 100755..100644 --- a/src/battle/anim/egg.c +++ b/src/battle/anim/egg.c diff --git a/src/battle/anim/flying.c b/src/battle/anim/flying.c index ec40e26c4..ec40e26c4 100755..100644 --- a/src/battle/anim/flying.c +++ b/src/battle/anim/flying.c diff --git a/src/battle/anim/ghost.c b/src/battle/anim/ghost.c index 85879c86c..85879c86c 100755..100644 --- a/src/battle/anim/ghost.c +++ b/src/battle/anim/ghost.c diff --git a/src/battle/anim/ground.c b/src/battle/anim/ground.c index a523df20e..a523df20e 100755..100644 --- a/src/battle/anim/ground.c +++ b/src/battle/anim/ground.c diff --git a/src/battle/anim/ice.c b/src/battle/anim/ice.c index 50c8b9030..50c8b9030 100755..100644 --- a/src/battle/anim/ice.c +++ b/src/battle/anim/ice.c diff --git a/src/battle/anim/normal.c b/src/battle/anim/normal.c index 8303e7c68..8303e7c68 100755..100644 --- a/src/battle/anim/normal.c +++ b/src/battle/anim/normal.c diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 79d60125e..11ddd6b71 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -6339,7 +6339,7 @@ void HandleEndTurn_BattleWon(void) { case TRAINER_CLASS_ELITE_FOUR: case TRAINER_CLASS_CHAMPION: - PlayBGM(BGM_KACHI5); + PlayBGM(MUS_KACHI5); break; case TRAINER_CLASS_TEAM_AQUA: case TRAINER_CLASS_TEAM_MAGMA: @@ -6347,13 +6347,13 @@ void HandleEndTurn_BattleWon(void) case TRAINER_CLASS_AQUA_LEADER: case TRAINER_CLASS_MAGMA_ADMIN: case TRAINER_CLASS_MAGMA_LEADER: - PlayBGM(BGM_KACHI4); + PlayBGM(MUS_KACHI4); break; case TRAINER_CLASS_LEADER: - PlayBGM(BGM_KACHI3); + PlayBGM(MUS_KACHI3); break; default: - PlayBGM(BGM_KACHI1); + PlayBGM(MUS_KACHI1); break; } } diff --git a/src/battle/battle_ai_switch_items.c b/src/battle/battle_ai_switch_items.c index 4dd7614bf..4dd7614bf 100755..100644 --- a/src/battle/battle_ai_switch_items.c +++ b/src/battle/battle_ai_switch_items.c diff --git a/src/battle/battle_anim.c b/src/battle/battle_anim.c index f3b0056ac..ebfe2401d 100644 --- a/src/battle/battle_anim.c +++ b/src/battle/battle_anim.c @@ -1499,7 +1499,7 @@ void LaunchBattleAnimation(const u8 *const moveAnims[], u16 move, u8 isMoveAnim) else { for (i = 0; i < 4; i++) - gAnimSpeciesByBanks[i] = EWRAM_19348; + gAnimSpeciesByBanks[i] = EWRAM_19348[0]; } if (isMoveAnim == 0) @@ -1933,7 +1933,7 @@ void MoveBattlerSpriteToBG(u8 bank, u8 toBG_2) spriteId = gBankSpriteIds[bank]; gBattle_BG1_X = -(gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x) + 32; - if (IsContest() != 0 && IsSpeciesNotUnown(EWRAM_19348) != 0) + if (IsContest() != 0 && IsSpeciesNotUnown(EWRAM_19348[0]) != 0) gBattle_BG1_X--; gBattle_BG1_Y = -(gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) + 32; gSprites[gBankSpriteIds[bank]].invisible = TRUE; @@ -1987,7 +1987,7 @@ static void sub_8076380(void) struct UnknownStruct2 s; u16 *ptr; - if (IsSpeciesNotUnown(EWRAM_19348)) + if (IsSpeciesNotUnown(EWRAM_19348[0])) { sub_8078914(&s); ptr = s.unk4; diff --git a/src/battle/battle_anim_812C144.c b/src/battle/battle_anim_812C144.c index 601e3c6df..cef1fb97c 100755..100644 --- a/src/battle/battle_anim_812C144.c +++ b/src/battle/battle_anim_812C144.c @@ -1,12 +1,17 @@ #include "global.h" #include "battle.h" #include "battle_anim.h" +#include "contest.h" +#include "data2.h" +#include "decompress.h" +#include "ewram.h" #include "palette.h" #include "random.h" #include "rom_8077ABC.h" #include "scanline_effect.h" #include "sound.h" #include "trig.h" +#include "constants/songs.h" extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; @@ -18,15 +23,25 @@ extern u16 gBattle_WIN0V; extern u16 gBattle_WIN1H; extern u16 gBattle_WIN1V; extern u16 gBattle_BG1_X; +extern u16 gBattle_BG1_Y; extern u16 gBattle_BG2_X; +extern u16 gBattle_BG2_Y; extern const struct SpriteTemplate gBattleAnimSpriteTemplate_83D7220; extern const struct SpriteTemplate gSpriteTemplate_8402500; +extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7C18[]; +extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7BEC[]; extern const union AffineAnimCmd gUnknown_08402400[]; extern const union AffineAnimCmd gUnknown_084024B0[]; extern const union AffineAnimCmd gUnknown_08402518[]; extern const union AffineAnimCmd gUnknown_08402540[]; extern const union AffineAnimCmd gUnknown_08402590[]; +extern const u32 gUnknown_08D2AA98[]; +extern const u32 gUnknown_08D2A9E0[]; +extern const u16 gUnknown_08D2AA80[]; +extern const s8 gUnknown_084025C0[]; +extern u8 gBattleMonForms[]; +extern u8 gBankSpriteIds[]; extern u8 sub_8046234(s16 x, s16 y, u8 a3); @@ -1124,3 +1139,226 @@ void sub_812D790(u8 taskId) DestroyAnimVisualTask(taskId); } } + +void sub_812D7E8(u8 taskId) +{ + int i, j; + u8 position; + struct Struct_sub_8078914 subStruct; + u8 *dest; + u8 *src; + u16 *field_4; + u16 *ptr; + u16 stretch; + + switch (gTasks[taskId].data[0]) + { + case 0: + REG_MOSAIC = 0; + if (GetBattlerPosition_permutated(gAnimBankAttacker) == 1) + REG_BG1CNT_BITFIELD.mosaic = 1; + else + REG_BG2CNT_BITFIELD.mosaic = 1; + + gTasks[taskId].data[10] = gBattleAnimArgs[0]; + gTasks[taskId].data[0]++; + break; + case 1: + if (gTasks[taskId].data[2]++ > 1) + { + gTasks[taskId].data[2] = 0; + gTasks[taskId].data[1]++; + stretch = gTasks[taskId].data[1]; + REG_MOSAIC = (stretch << 4) | stretch; + if (stretch == 15) + gTasks[taskId].data[0]++; + } + break; + case 2: + sub_8031FC4(gAnimBankAttacker, gAnimBankTarget, gTasks[taskId].data[10]); + sub_8078954(&subStruct, gAnimBankAttacker); + + if (IsContest()) + position = 0; + else + position = GetBattlerPosition(gAnimBankAttacker); + + dest = gUnknown_081FAF4C[position] + (gBattleMonForms[gAnimBankAttacker] << 11); + src = subStruct.field_0; + DmaCopy32(3, dest, src, 0x800); + + if (IsContest()) + { + if (IsSpeciesNotUnown(EWRAM_19348[0]) != IsSpeciesNotUnown(EWRAM_19348[1])) + { + field_4 = (u16 *)subStruct.field_4; + for (i = 0; i < 8; i++) + { + for (j = 0; j < 4; j++) + { + u16 temp = field_4[j + i * 0x20]; + field_4[j + i * 0x20] = field_4[(7 - j) + i * 0x20]; + field_4[(7 - j) + i * 0x20] = temp; + } + } + + for (i = 0; i < 8; i++) + { + for (j = 0; j < 8; j++) + { + field_4[j + i * 0x20] ^= 0x400; + } + } + } + + ptr = EWRAM_19348; + if (IsSpeciesNotUnown(ptr[1])) + gSprites[gBankSpriteIds[gAnimBankAttacker]].affineAnims = gSpriteAffineAnimTable_81E7C18; + else + gSprites[gBankSpriteIds[gAnimBankAttacker]].affineAnims = gSpriteAffineAnimTable_81E7BEC; + + StartSpriteAffineAnim(&gSprites[gBankSpriteIds[gAnimBankAttacker]], 0); + } + + gTasks[taskId].data[0]++; + break; + case 3: + if (gTasks[taskId].data[2]++ > 1) + { + gTasks[taskId].data[2] = 0; + gTasks[taskId].data[1]--; + stretch = gTasks[taskId].data[1]; + REG_MOSAIC = (stretch << 4) | stretch; + + if (stretch == 0) + gTasks[taskId].data[0]++; + } + break; + case 4: + REG_MOSAIC = 0; + if (GetBattlerPosition_permutated(gAnimBankAttacker) == 1) + REG_BG1CNT_BITFIELD.mosaic = 0; + else + REG_BG2CNT_BITFIELD.mosaic = 0; + + if (!IsContest()) + { + if (GetBattlerSide(gAnimBankAttacker) == B_SIDE_OPPONENT) + { + if (gTasks[taskId].data[10] == 0) + sub_8032984(gAnimBankAttacker, eTransformStatuses[gAnimBankAttacker].species); + } + } + + DestroyAnimVisualTask(taskId); + break; + } +} + +void c3_80DFBE4(u8 taskId) +{ + gBattleAnimArgs[7] = gSprites[gBankSpriteIds[gAnimBankAttacker]].invisible; + DestroyAnimVisualTask(taskId); +} + +void sub_812DB58(u8 taskId) +{ + sub_8031FC4(gAnimBankAttacker, gAnimBankTarget, 1); + DestroyAnimVisualTask(taskId); +} + +void sub_812DB84(u8 taskId) +{ + struct Struct_sub_8078914 subStruct; + + switch (gTasks[taskId].data[0]) + { + case 0: + REG_BLDCNT = BLDCNT_TGT2_BD | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 + | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1; + REG_BLDALPHA = 0x1000; + REG_BG1CNT_BITFIELD.screenSize = 0; + REG_BG1CNT_BITFIELD.priority = 1; + if (!IsContest()) + REG_BG1CNT_BITFIELD.charBaseBlock = 1; + + sub_8078914(&subStruct); + DmaClear32(3, subStruct.field_4, 0x1000); + LZDecompressVram(gUnknown_08D2AA98, subStruct.field_4); + LZDecompressVram(gUnknown_08D2A9E0, subStruct.field_0); + LoadCompressedPalette(gUnknown_08D2AA80, subStruct.field_8 * 16, 32); + if (IsContest()) + { + sub_80763FC(subStruct.field_8, (u16 *)subStruct.field_4, 0, 0); + gBattle_BG1_X = -56; + gBattle_BG1_Y = 0; + } + else + { + if (GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER) + gBattle_BG1_X = -135; + else + gBattle_BG1_X = -10; + + gBattle_BG1_Y = 0; + } + + gTasks[taskId].data[10] = gBattle_BG1_X; + gTasks[taskId].data[11] = gBattle_BG1_Y; + + gTasks[taskId].data[0]++; + PlaySE12WithPanning(SE_W234, BattleAnimAdjustPanning(-64)); + break; + case 1: + if (gTasks[taskId].data[4]++ > 0) + { + gTasks[taskId].data[4] = 0; + if (++gTasks[taskId].data[1] > 12) + gTasks[taskId].data[1] = 12; + + REG_BLDALPHA = ((16 - gTasks[taskId].data[1]) << 8) | gTasks[taskId].data[1]; + + if (gTasks[taskId].data[1] == 12) + gTasks[taskId].data[0]++; + } + break; + case 2: + if (--gTasks[taskId].data[1] < 0) + gTasks[taskId].data[1] = 0; + + REG_BLDALPHA = ((16 - gTasks[taskId].data[1]) << 8) | gTasks[taskId].data[1]; + + if (gTasks[taskId].data[1] == 0) + { + gBattle_BG1_X = gUnknown_084025C0[gTasks[taskId].data[2]] + gTasks[taskId].data[10]; + if (++gTasks[taskId].data[2] == 4) + gTasks[taskId].data[0] = 4; + else + gTasks[taskId].data[0] = 3; + } + break; + case 3: + if (++gTasks[taskId].data[3] == 4) + { + gTasks[taskId].data[3] = 0; + gTasks[taskId].data[0] = 1; + PlaySE12WithPanning(SE_W234, BattleAnimAdjustPanning(-64)); + } + break; + case 4: + sub_8078914(&subStruct); + DmaFill32Large(3, 0, subStruct.field_0, 0x2000, 0x1000); + DmaClear32(3, subStruct.field_4, 0x800); + + if (!IsContest()) + REG_BG1CNT_BITFIELD.charBaseBlock = 0; + + REG_BG1CNT_BITFIELD.priority = 1; + gBattle_BG1_X = 0; + gBattle_BG1_Y = 0; + REG_BLDCNT = 0; + REG_BLDALPHA = 0; + DestroyAnimVisualTask(taskId); + break; + } +} diff --git a/src/battle/battle_setup.c b/src/battle/battle_setup.c index f53959cc2..8c5f68902 100644 --- a/src/battle/battle_setup.c +++ b/src/battle/battle_setup.c @@ -587,7 +587,7 @@ void ScrSpecial_StartRayquazaBattle(void) ScriptContext2_Enable(); gMain.savedCallback = CB2_EndScriptedWildBattle; gBattleTypeFlags = BATTLE_TYPE_LEGENDARY; - CreateBattleStartTask(B_TRANSITION_BLUR, BGM_BATTLE34); + CreateBattleStartTask(B_TRANSITION_BLUR, MUS_BATTLE34); IncrementGameStat(GAME_STAT_TOTAL_BATTLES); IncrementGameStat(GAME_STAT_WILD_BATTLES); } @@ -598,9 +598,9 @@ void ScrSpecial_StartGroudonKyogreBattle(void) gMain.savedCallback = CB2_EndScriptedWildBattle; gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_KYOGRE_GROUDON; if (gGameVersion == VERSION_RUBY) - CreateBattleStartTask(B_TRANSITION_SHARDS, BGM_BATTLE34); // GROUDON + CreateBattleStartTask(B_TRANSITION_SHARDS, MUS_BATTLE34); // GROUDON else - CreateBattleStartTask(B_TRANSITION_RIPPLE, BGM_BATTLE34); // KYOGRE + CreateBattleStartTask(B_TRANSITION_RIPPLE, MUS_BATTLE34); // KYOGRE IncrementGameStat(GAME_STAT_TOTAL_BATTLES); IncrementGameStat(GAME_STAT_WILD_BATTLES); } @@ -610,7 +610,7 @@ void ScrSpecial_StartRegiBattle(void) ScriptContext2_Enable(); gMain.savedCallback = CB2_EndScriptedWildBattle; gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_REGI; - CreateBattleStartTask(B_TRANSITION_GRID_SQUARES, BGM_BATTLE36); + CreateBattleStartTask(B_TRANSITION_GRID_SQUARES, MUS_BATTLE36); IncrementGameStat(GAME_STAT_TOTAL_BATTLES); IncrementGameStat(GAME_STAT_WILD_BATTLES); } @@ -1172,46 +1172,46 @@ void PlayTrainerEncounterMusic(void) switch (sub_803FC58(gTrainerBattleOpponent)) { case TRAINER_ENCOUNTER_MUSIC_MALE: - music = BGM_BOYEYE; + music = MUS_BOYEYE; break; case TRAINER_ENCOUNTER_MUSIC_FEMALE: - music = BGM_GIRLEYE; + music = MUS_GIRLEYE; break; case TRAINER_ENCOUNTER_MUSIC_GIRL: - music = BGM_SYOUJOEYE; + music = MUS_SYOUJOEYE; break; case TRAINER_ENCOUNTER_MUSIC_INTENSE: - music = BGM_HAGESHII; + music = MUS_HAGESHII; break; case TRAINER_ENCOUNTER_MUSIC_COOL: - music = BGM_KAKKOII; + music = MUS_KAKKOII; break; case TRAINER_ENCOUNTER_MUSIC_AQUA: - music = BGM_AQA_0; + music = MUS_AQA_0; break; case TRAINER_ENCOUNTER_MUSIC_MAGMA: - music = BGM_MGM0; + music = MUS_MGM0; break; case TRAINER_ENCOUNTER_MUSIC_SWIMMER: - music = BGM_SWIMEYE; + music = MUS_SWIMEYE; break; case TRAINER_ENCOUNTER_MUSIC_TWINS: - music = BGM_HUTAGO; + music = MUS_HUTAGO; break; case TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR: - music = BGM_SITENNOU; + music = MUS_SITENNOU; break; case TRAINER_ENCOUNTER_MUSIC_HIKER: - music = BGM_YAMA_EYE; + music = MUS_YAMA_EYE; break; case TRAINER_ENCOUNTER_MUSIC_INTERVIEWER: - music = BGM_INTER_V; + music = MUS_INTER_V; break; case TRAINER_ENCOUNTER_MUSIC_RICH: - music = BGM_TEST; + music = MUS_TEST; break; default: - music = BGM_AYASII; + music = MUS_AYASII; } PlayNewMapMusic(music); } diff --git a/src/battle/pokeball.c b/src/battle/pokeball.c index be2adbf1b..c619141a1 100644 --- a/src/battle/pokeball.c +++ b/src/battle/pokeball.c @@ -815,7 +815,7 @@ static void sub_8046FBC(struct Sprite *sprite) { gDoingBattleAnim = 0; m4aMPlayAllStop(); - PlaySE(BGM_FANFA5); + PlaySE(MUS_FANFA5); } else if (sprite->data[4] == 315) { diff --git a/src/berry_blender.c b/src/berry_blender.c index 4531ea546..8bf669a92 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -1245,7 +1245,7 @@ static void sub_804E9F8(void) { gBerryBlenderData->field_178 = GetCurrentMapMusic(); } - PlayBGM(BGM_CYCLING); + PlayBGM(MUS_CYCLING); break; case 100: Menu_DrawStdWindowFrame(0, 13, 29, 19); @@ -1507,7 +1507,7 @@ static void sub_804F378(void) { gBerryBlenderData->field_178 = GetCurrentMapMusic(); } - PlayBGM(BGM_CYCLING); + PlayBGM(MUS_CYCLING); PlaySE(SE_MOTER); Blender_ControlHitPitch(); break; @@ -3524,7 +3524,7 @@ static void sub_8052BD0(u8 taskID) { if (gTasks[taskID].data[0] == 0) { - PlayFanfare(BGM_FANFA1); + PlayFanfare(MUS_FANFA1); gTasks[taskID].data[0]++; } if (IsFanfareTaskInactive()) diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index 77f80d728..a8f797e28 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -238,7 +238,7 @@ static void sub_814640C(u8 taskId) { SetMainCallback2(sub_80A5B40); sub_80A7DD4(); - gpu_pal_allocator_reset__manage_upper_four(); + FreeAndReserveObjectSpritePalettes(); DestroyTask(taskId); } } diff --git a/src/bike.c b/src/bike.c index f0f996b6b..41090a375 100644 --- a/src/bike.c +++ b/src/bike.c @@ -1001,8 +1001,8 @@ void GetOnOffBike(u8 var) else { SetPlayerAvatarTransitionFlags(var); - Overworld_SetSavedMusic(BGM_CYCLING); - Overworld_ChangeMusicTo(BGM_CYCLING); + Overworld_SetSavedMusic(MUS_CYCLING); + Overworld_ChangeMusicTo(MUS_CYCLING); } } diff --git a/src/cable_car.c b/src/cable_car.c index bae6f020a..52111b285 100644 --- a/src/cable_car.c +++ b/src/cable_car.c @@ -386,7 +386,7 @@ static void CableCarMainCallback_Setup(void) break; case 7: BeginNormalPaletteFade(0xFFFFFFFF, 3, 16, 0, RGB(0, 0, 0)); - FadeInNewBGM(BGM_ROPEWAY, 1); + FadeInNewBGM(MUS_ROPEWAY, 1); sub_8123FBC(1); gMain.state++; break; @@ -439,7 +439,7 @@ static void sub_8123740(void) DmaFill16Large(3, 0, VRAM, VRAM_SIZE, 0x1000); DmaFill32Defvars(3, 0, OAM, OAM_SIZE); DmaFill16Defvars(3, 0, PLTT, PLTT_SIZE); - warp_in(); + WarpIntoMap(); gFieldCallback = NULL; SetMainCallback2(CB2_LoadMap); } diff --git a/src/cable_club.c b/src/cable_club.c index 0da23c5f3..1e1f0af07 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -766,9 +766,9 @@ static void sub_808382C(u8 taskId) break; case 5: if (gLinkPlayers[0].trainerId & 1) - current_map_music_set__default_for_battle(BGM_BATTLE32); + current_map_music_set__default_for_battle(MUS_BATTLE32); else - current_map_music_set__default_for_battle(BGM_BATTLE20); + current_map_music_set__default_for_battle(MUS_BATTLE20); switch (gSpecialVar_0x8004) { diff --git a/src/contest.c b/src/contest.c index fcadd8ae1..9dff08ea7 100644 --- a/src/contest.c +++ b/src/contest.c @@ -1584,7 +1584,7 @@ void sub_80AC2CC(u8 taskId) { case 0: sub_80B1EA8(-1, 1); - PlayFanfare(BGM_ME_ZANNEN); + PlayFanfare(MUS_ME_ZANNEN); gTasks[taskId].data[10]++; break; case 1: diff --git a/src/credits.c b/src/credits.c index b99bc56bd..1a810492b 100644 --- a/src/credits.c +++ b/src/credits.c @@ -497,7 +497,7 @@ void sub_81439D0(void) SetVBlankCallback(vblank_8143948); - m4aSongNumStart(BGM_THANKFOR); + m4aSongNumStart(MUS_THANKFOR); SetMainCallback2(sub_814395C); gUnknown_02039325 = 0; @@ -741,7 +741,7 @@ static void task_a_8144080(u8 taskIdA) } if (gTasks[taskIdA].data[TDA_0] == 6840) - m4aSongNumStart(BGM_END); + m4aSongNumStart(MUS_END); gTasks[taskIdA].data[TDA_0] -= 1; } diff --git a/src/data/battle_strings_en.h b/src/data/battle_strings_en.h index 67eb70ee1..7ae5467dd 100644 --- a/src/data/battle_strings_en.h +++ b/src/data/battle_strings_en.h @@ -747,8 +747,8 @@ const u8 BattleText_BallBrokeOhNo[] = _("Oh, no!\nThe POKéMON broke free!"); const u8 BattleText_BallBrokeAppeared[] = _("Aww!\nIt appeared to be caught!"); const u8 BattleText_BallBrokeAlmost[] = _("Aargh!\nAlmost had it!"); const u8 BattleText_BallBrokeSoClose[] = _("Shoot!\nIt was so close, too!"); -const u8 BattleText_BallCaught1[] = _("Gotcha!\n{STRING 3} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}\p"); -const u8 BattleText_BallCaught2[] = _("Gotcha!\n{STRING 3} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}{PAUSE 127}"); +const u8 BattleText_BallCaught1[] = _("Gotcha!\n{STRING 3} was caught!{UNKNOWN_A}{PLAY_BGM MUS_KACHI22}\p"); +const u8 BattleText_BallCaught2[] = _("Gotcha!\n{STRING 3} was caught!{UNKNOWN_A}{PLAY_BGM MUS_KACHI22}{PAUSE 127}"); const u8 BattleText_GiveNickname[] = _("Give a nickname to the\ncaptured {STRING 3}?"); const u8 BattleText_SentToPC[] = _("{STRING 3} was sent to\n{STRING 35} PC."); const u8 BattleText_Someone[] = _("someone’s"); diff --git a/src/data/field_event_obj/event_object_graphics.h b/src/data/field_event_obj/event_object_graphics.h index 8f1bb96a8..8f1bb96a8 100755..100644 --- a/src/data/field_event_obj/event_object_graphics.h +++ b/src/data/field_event_obj/event_object_graphics.h diff --git a/src/data/field_event_obj/field_effect_object_graphics.h b/src/data/field_event_obj/field_effect_object_graphics.h index 36850a4ec..36850a4ec 100755..100644 --- a/src/data/field_event_obj/field_effect_object_graphics.h +++ b/src/data/field_event_obj/field_effect_object_graphics.h diff --git a/src/data/field_event_obj/field_effect_object_template_pointers.h b/src/data/field_event_obj/field_effect_object_template_pointers.h index 320af1ff8..682816ed9 100644 --- a/src/data/field_event_obj/field_effect_object_template_pointers.h +++ b/src/data/field_event_obj/field_effect_object_template_pointers.h @@ -26,7 +26,7 @@ const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown17; const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown18; const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown19; const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown20; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown21; +const struct SpriteTemplate gFieldEffectSpriteTemplate_Reflection; const struct SpriteTemplate gFieldEffectSpriteTemplate_BerryTreeGrowthSparkle; const struct SpriteTemplate gFieldEffectSpriteTemplate_DeepSandFootprints; const struct SpriteTemplate gFieldEffectSpriteTemplate_TreeDisguise; @@ -64,7 +64,7 @@ const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[] = { &gFieldEffectSpriteTemplate_Unknown18, &gFieldEffectSpriteTemplate_Unknown19, &gFieldEffectSpriteTemplate_Unknown20, - &gFieldEffectSpriteTemplate_Unknown21, + &gFieldEffectSpriteTemplate_Reflection, &gFieldEffectSpriteTemplate_BerryTreeGrowthSparkle, &gFieldEffectSpriteTemplate_DeepSandFootprints, &gFieldEffectSpriteTemplate_TreeDisguise, diff --git a/src/data/field_event_obj/field_effect_objects.h b/src/data/field_event_obj/field_effect_objects.h index 9d3ae343d..8533b3cdd 100644 --- a/src/data/field_event_obj/field_effect_objects.h +++ b/src/data/field_event_obj/field_effect_objects.h @@ -34,13 +34,13 @@ const struct SpriteFrameImage gFieldEffectPicTable_ShadowExtraLarge[] = { obj_frame_tiles(gFieldEffectPic_ShadowExtraLarge) }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowSmall = {0xFFFF, 0xFFFF, &gFieldOamData_8x8, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowSmall, gDummySpriteAffineAnimTable, oamc_shadow}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowSmall = {0xFFFF, 0xFFFF, &gFieldOamData_8x8, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowSmall, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect}; -const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowMedium = {0xFFFF, 0xFFFF, &gFieldOamData_16x8, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowMedium, gDummySpriteAffineAnimTable, oamc_shadow}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowMedium = {0xFFFF, 0xFFFF, &gFieldOamData_16x8, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowMedium, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect}; -const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowLarge = {0xFFFF, 0xFFFF, &gFieldOamData_32x8, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowLarge, gDummySpriteAffineAnimTable, oamc_shadow}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowLarge = {0xFFFF, 0xFFFF, &gFieldOamData_32x8, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowLarge, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect}; -const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowExtraLarge = {0xFFFF, 0xFFFF, &gFieldOamData_64x32, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowExtraLarge, gDummySpriteAffineAnimTable, oamc_shadow}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_ShadowExtraLarge = {0xFFFF, 0xFFFF, &gFieldOamData_64x32, gFieldEffectAnimTable_Shadow, gFieldEffectPicTable_ShadowExtraLarge, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_TallGrass[] = { obj_frame_tiles(gFieldEffectPic_TallGrass_0), @@ -63,7 +63,7 @@ const union AnimCmd *const gFieldEffectAnimTable_TallGrass[] = { gFieldEffectAnim_83745E8 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_TallGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_TallGrass, gFieldEffectPicTable_TallGrass, gDummySpriteAffineAnimTable, unc_grass_normal}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_TallGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_TallGrass, gFieldEffectPicTable_TallGrass, gDummySpriteAffineAnimTable, UpdateTallGrassFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_Ripple[] = { obj_frame_tiles(gFieldEffectPic_Ripple_0), @@ -89,7 +89,7 @@ const union AnimCmd *const gFieldEffectAnimTable_Ripple[] = { gFieldEffectAnim_8374644 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Ripple = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Ripple, gFieldEffectPicTable_Ripple, gDummySpriteAffineAnimTable, sub_8128800}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_Ripple = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Ripple, gFieldEffectPicTable_Ripple, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim}; const struct SpriteFrameImage gFieldEffectPicTable_Ash[] = { obj_frame_tiles(gFieldEffectPic_Ash_0), @@ -112,7 +112,7 @@ const union AnimCmd *const gFieldEffectAnimTable_Ash[] = { gFieldEffectAnim_83746AC }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Ash = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Ash, gFieldEffectPicTable_Ash, gDummySpriteAffineAnimTable, sub_8127D84}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_Ash = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Ash, gFieldEffectPicTable_Ash, gDummySpriteAffineAnimTable, UpdateAshFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_SurfBlob[] = { obj_frame_tiles(gFieldEffectPic_SurfBlob_0), @@ -147,7 +147,7 @@ const union AnimCmd *const gFieldEffectAnimTable_SurfBlob[] = { gFieldEffectAnim_8374710 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_SurfBlob = {0xFFFF, 0xFFFF, &gFieldOamData_32x32, gFieldEffectAnimTable_SurfBlob, gFieldEffectPicTable_SurfBlob, gDummySpriteAffineAnimTable, sub_8127F7C}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_SurfBlob = {0xFFFF, 0xFFFF, &gFieldOamData_32x32, gFieldEffectAnimTable_SurfBlob, gFieldEffectPicTable_SurfBlob, gDummySpriteAffineAnimTable, UpdateSurfBlobFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_Arrow[] = { obj_frame_tiles(gFieldEffectPic_Arrow_0), @@ -210,7 +210,7 @@ const union AnimCmd *const gFieldEffectAnimTable_Dust[] = { gFieldEffectAnim_83747F0 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Dust = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_Dust, gFieldEffectPicTable_Dust, gDummySpriteAffineAnimTable, sub_81287C4}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_Dust = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_Dust, gFieldEffectPicTable_Dust, gDummySpriteAffineAnimTable, UpdateJumpLandingFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_JumpTallGrass[] = { obj_frame_tiles(gFieldEffectPic_JumpTallGrass_0), @@ -231,7 +231,7 @@ const union AnimCmd *const gFieldEffectAnimTable_JumpTallGrass[] = { gFieldEffectAnim_837483C }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpTallGrass = {0xFFFF, 0x1005, &gFieldOamData_16x8, gFieldEffectAnimTable_JumpTallGrass, gFieldEffectPicTable_JumpTallGrass, gDummySpriteAffineAnimTable, sub_81287C4}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpTallGrass = {0xFFFF, 0x1005, &gFieldOamData_16x8, gFieldEffectAnimTable_JumpTallGrass, gFieldEffectPicTable_JumpTallGrass, gDummySpriteAffineAnimTable, UpdateJumpLandingFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_SandFootprints[] = { obj_frame_tiles(gFieldEffectPic_SandFootprints_0), @@ -266,7 +266,7 @@ const union AnimCmd *const gFieldEffectAnimTable_SandFootprints[] = { gFieldEffectAnim_8374894 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_SandFootprints = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_SandFootprints, gFieldEffectPicTable_SandFootprints, gDummySpriteAffineAnimTable, sub_8127584}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_SandFootprints = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_SandFootprints, gFieldEffectPicTable_SandFootprints, gDummySpriteAffineAnimTable, UpdateFootprintsTireTracksFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_DeepSandFootprints[] = { obj_frame_tiles(gFieldEffectPic_DeepSandFootprints_0), @@ -301,7 +301,7 @@ const union AnimCmd *const gFieldEffectAnimTable_DeepSandFootprints[] = { gFieldEffectAnim_83748F0 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_DeepSandFootprints = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_DeepSandFootprints, gFieldEffectPicTable_DeepSandFootprints, gDummySpriteAffineAnimTable, sub_8127584}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_DeepSandFootprints = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_DeepSandFootprints, gFieldEffectPicTable_DeepSandFootprints, gDummySpriteAffineAnimTable, UpdateFootprintsTireTracksFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_BikeTireTracks[] = { obj_frame_tiles(gFieldEffectPic_BikeTireTracks_0), @@ -362,7 +362,7 @@ const union AnimCmd *const gFieldEffectAnimTable_BikeTireTracks[] = { gFieldEffectAnim_837497C }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_BikeTireTracks = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_BikeTireTracks, gFieldEffectPicTable_BikeTireTracks, gDummySpriteAffineAnimTable, sub_8127584}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_BikeTireTracks = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_BikeTireTracks, gFieldEffectPicTable_BikeTireTracks, gDummySpriteAffineAnimTable, UpdateFootprintsTireTracksFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_JumpBigSplash[] = { obj_frame_tiles(gFieldEffectPic_JumpBigSplash_0), @@ -383,7 +383,7 @@ const union AnimCmd *const gFieldEffectAnimTable_JumpBigSplash[] = { gFieldEffectAnim_83749E0 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpBigSplash = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_JumpBigSplash, gFieldEffectPicTable_JumpBigSplash, gDummySpriteAffineAnimTable, sub_81287C4}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpBigSplash = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_JumpBigSplash, gFieldEffectPicTable_JumpBigSplash, gDummySpriteAffineAnimTable, UpdateJumpLandingFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_Splash[] = { obj_frame_tiles(gFieldEffectPic_Splash_0), @@ -413,7 +413,7 @@ const union AnimCmd *const gFieldEffectAnimTable_Splash[] = { gFieldEffectAnim_8374A2C }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Splash = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_Splash, gFieldEffectPicTable_Splash, gDummySpriteAffineAnimTable, sub_81276B4}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_Splash = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_Splash, gFieldEffectPicTable_Splash, gDummySpriteAffineAnimTable, UpdateSplashFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_JumpSmallSplash[] = { obj_frame_tiles(gFieldEffectPic_JumpSmallSplash_0), @@ -432,7 +432,7 @@ const union AnimCmd *const gFieldEffectAnimTable_JumpSmallSplash[] = { gFieldEffectAnim_8374A88 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpSmallSplash = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_JumpSmallSplash, gFieldEffectPicTable_JumpSmallSplash, gDummySpriteAffineAnimTable, sub_81287C4}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpSmallSplash = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_JumpSmallSplash, gFieldEffectPicTable_JumpSmallSplash, gDummySpriteAffineAnimTable, UpdateJumpLandingFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_LongGrass[] = { obj_frame_tiles(gFieldEffectPic_LongGrass_0), @@ -456,7 +456,7 @@ const union AnimCmd *const gFieldEffectAnimTable_LongGrass[] = { gFieldEffectAnim_8374AD4 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_LongGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_LongGrass, gFieldEffectPicTable_LongGrass, gDummySpriteAffineAnimTable, unc_grass_tall}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_LongGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_LongGrass, gFieldEffectPicTable_LongGrass, gDummySpriteAffineAnimTable, UpdateLongGrassFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_JumpLongGrass[] = { obj_frame_tiles(gFieldEffectPic_JumpLongGrass_0), @@ -481,7 +481,7 @@ const union AnimCmd *const gFieldEffectAnimTable_JumpLongGrass[] = { gFieldEffectAnim_8374B40 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpLongGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_JumpLongGrass, gFieldEffectPicTable_JumpLongGrass, gDummySpriteAffineAnimTable, sub_81287C4}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_JumpLongGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_JumpLongGrass, gFieldEffectPicTable_JumpLongGrass, gDummySpriteAffineAnimTable, UpdateJumpLandingFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_Unknown17[] = { obj_frame_tiles(gFieldEffectPic_JumpLongGrass_5), @@ -512,7 +512,7 @@ const union AnimCmd *const gFieldEffectAnimTable_Unknown17[] = { gFieldEffectAnim_8374BC0 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown17 = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown17, gFieldEffectPicTable_Unknown17, gDummySpriteAffineAnimTable, sub_8128800}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown17 = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown17, gFieldEffectPicTable_Unknown17, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim}; const struct SpriteFrameImage gFieldEffectPicTable_Unknown18[] = { obj_frame_tiles(gFieldEffectPic_Unknown18_0), @@ -535,7 +535,7 @@ const union AnimCmd *const gFieldEffectAnimTable_Unknown18[] = { gFieldEffectAnim_8374C24 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown18 = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown18, gFieldEffectPicTable_Unknown18, gDummySpriteAffineAnimTable, sub_8128800}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown18 = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown18, gFieldEffectPicTable_Unknown18, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim}; const struct SpriteFrameImage gFieldEffectPicTable_Unknown19[] = { obj_frame_tiles(gFieldEffectPic_Unknown19_0), @@ -556,7 +556,7 @@ const union AnimCmd *const gFieldEffectAnimTable_Unknown19[] = { gFieldEffectAnim_8374C7C }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown19 = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown19, gFieldEffectPicTable_Unknown19, gDummySpriteAffineAnimTable, sub_8128800}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown19 = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown19, gFieldEffectPicTable_Unknown19, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim}; const struct SpriteFrameImage gFieldEffectPicTable_SandPile[] = { obj_frame_tiles(gFieldEffectPic_SandPile_0), @@ -575,7 +575,7 @@ const union AnimCmd *const gFieldEffectAnimTable_SandPile[] = { gFieldEffectAnim_8374CC4 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_SandPile = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_SandPile, gFieldEffectPicTable_SandPile, gDummySpriteAffineAnimTable, sub_81282E0}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_SandPile = {0xFFFF, 0x1004, &gFieldOamData_16x8, gFieldEffectAnimTable_SandPile, gFieldEffectPicTable_SandPile, gDummySpriteAffineAnimTable, UpdateSandPileFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_Unknown20[] = { obj_frame_tiles(gFieldEffectPic_Unknown20_0), @@ -598,40 +598,40 @@ const union AnimCmd *const gFieldEffectAnimTable_Unknown20[] = { gFieldEffectAnim_8374D10 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown20 = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown20, gFieldEffectPicTable_Unknown20, gDummySpriteAffineAnimTable, sub_8128800}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown20 = {0xFFFF, 0x1004, &gFieldOamData_16x16, gFieldEffectAnimTable_Unknown20, gFieldEffectPicTable_Unknown20, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim}; -const union AffineAnimCmd gFieldEffectAffineAnim_8374D48[] = { +const union AffineAnimCmd gFieldEffectAffineAnim_WavyReflection[] = { AFFINEANIMCMD_FRAME(0xFF00, 0x100, -128, 0), - AFFINEANIMCMD_FRAME(0x1, 0x0, 0, 4), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), - AFFINEANIMCMD_FRAME(0xFFFF, 0x0, 0, 4), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), - AFFINEANIMCMD_FRAME(0xFFFF, 0x0, 0, 4), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), - AFFINEANIMCMD_FRAME(0x1, 0x0, 0, 4), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), + AFFINEANIMCMD_FRAME( 1, 0, 0, 4), + AFFINEANIMCMD_FRAME( 0, 0, 0, 8), + AFFINEANIMCMD_FRAME(-1, 0, 0, 4), + AFFINEANIMCMD_FRAME( 0, 0, 0, 8), + AFFINEANIMCMD_FRAME(-1, 0, 0, 4), + AFFINEANIMCMD_FRAME( 0, 0, 0, 8), + AFFINEANIMCMD_FRAME( 1, 0, 0, 4), + AFFINEANIMCMD_FRAME( 0, 0, 0, 8), AFFINEANIMCMD_JUMP(1) }; -const union AffineAnimCmd gFieldEffectAffineAnim_8374D98[] = { +const union AffineAnimCmd gFieldEffectAffineAnim_WavyReflectionFlipped[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, -128, 0), - AFFINEANIMCMD_FRAME(0xFFFF, 0x0, 0, 4), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), - AFFINEANIMCMD_FRAME(0x1, 0x0, 0, 4), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), - AFFINEANIMCMD_FRAME(0x1, 0x0, 0, 4), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), - AFFINEANIMCMD_FRAME(0xFFFF, 0x0, 0, 4), - AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), + AFFINEANIMCMD_FRAME(-1, 0, 0, 4), + AFFINEANIMCMD_FRAME( 0, 0, 0, 8), + AFFINEANIMCMD_FRAME( 1, 0, 0, 4), + AFFINEANIMCMD_FRAME( 0, 0, 0, 8), + AFFINEANIMCMD_FRAME( 1, 0, 0, 4), + AFFINEANIMCMD_FRAME( 0, 0, 0, 8), + AFFINEANIMCMD_FRAME(-1, 0, 0, 4), + AFFINEANIMCMD_FRAME( 0, 0, 0, 8), AFFINEANIMCMD_JUMP(1) }; -const union AffineAnimCmd *const gFieldEffectAffineAnimTable_Unknown21[] = { - gFieldEffectAffineAnim_8374D48, - gFieldEffectAffineAnim_8374D98 +const union AffineAnimCmd *const gFieldEffectAffineAnimTable_Reflection[] = { + gFieldEffectAffineAnim_WavyReflection, + gFieldEffectAffineAnim_WavyReflectionFlipped }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Unknown21 = {0x0, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gFieldEffectAffineAnimTable_Unknown21, SpriteCallbackDummy}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_Reflection = {0x0, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gFieldEffectAffineAnimTable_Reflection, SpriteCallbackDummy}; const struct SpriteFrameImage gFieldEffectPicTable_BerryTreeGrowthSparkle[] = { obj_frame_tiles(gFieldEffectPic_BerryTreeGrowthSparkle_0), @@ -670,7 +670,7 @@ const union AnimCmd *const gFieldEffectAnimTable_BerryTreeGrowthSparkle[] = { gFieldEffectAnim_8374E38 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_BerryTreeGrowthSparkle = {0xFFFF, 0xFFFF, &gFieldOamData_16x16, gFieldEffectAnimTable_BerryTreeGrowthSparkle, gFieldEffectPicTable_BerryTreeGrowthSparkle, gDummySpriteAffineAnimTable, sub_8128800}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_BerryTreeGrowthSparkle = {0xFFFF, 0xFFFF, &gFieldOamData_16x16, gFieldEffectAnimTable_BerryTreeGrowthSparkle, gFieldEffectPicTable_BerryTreeGrowthSparkle, gDummySpriteAffineAnimTable, WaitFieldEffectSpriteAnim}; const struct SpriteFrameImage gFieldEffectPicTable_TreeDisguise[] = { obj_frame_tiles(gFieldEffectPic_TreeDisguise_0), @@ -703,7 +703,7 @@ const union AnimCmd *const gFieldEffectAnimTable_TreeDisguise[] = { gFieldEffectAnim_8374EE8 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_TreeDisguise = {0xFFFF, 0xFFFF, &gFieldOamData_16x32, gFieldEffectAnimTable_TreeDisguise, gFieldEffectPicTable_TreeDisguise, gDummySpriteAffineAnimTable, sub_81285AC}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_TreeDisguise = {0xFFFF, 0xFFFF, &gFieldOamData_16x32, gFieldEffectAnimTable_TreeDisguise, gFieldEffectPicTable_TreeDisguise, gDummySpriteAffineAnimTable, UpdateDisguiseFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_MountainDisguise[] = { obj_frame_tiles(gFieldEffectPic_MountainDisguise_0), @@ -736,7 +736,7 @@ const union AnimCmd *const gFieldEffectAnimTable_MountainDisguise[] = { gFieldEffectAnim_8374F68 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_MountainDisguise = {0xFFFF, 0xFFFF, &gFieldOamData_16x32, gFieldEffectAnimTable_MountainDisguise, gFieldEffectPicTable_MountainDisguise, gDummySpriteAffineAnimTable, sub_81285AC}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_MountainDisguise = {0xFFFF, 0xFFFF, &gFieldOamData_16x32, gFieldEffectAnimTable_MountainDisguise, gFieldEffectPicTable_MountainDisguise, gDummySpriteAffineAnimTable, UpdateDisguiseFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_SandDisguise[] = { obj_frame_tiles(gFieldEffectPic_SandDisguise_0), @@ -748,7 +748,7 @@ const struct SpriteFrameImage gFieldEffectPicTable_SandDisguise[] = { obj_frame_tiles(gFieldEffectPic_SandDisguise_6) }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_SandDisguise = {0xFFFF, 0xFFFF, &gFieldOamData_16x32, gFieldEffectAnimTable_TreeDisguise, gFieldEffectPicTable_SandDisguise, gDummySpriteAffineAnimTable, sub_81285AC}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_SandDisguise = {0xFFFF, 0xFFFF, &gFieldOamData_16x32, gFieldEffectAnimTable_TreeDisguise, gFieldEffectPicTable_SandDisguise, gDummySpriteAffineAnimTable, UpdateDisguiseFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_Bird[] = { obj_frame_tiles(gFieldEffectPic_Bird) @@ -780,7 +780,7 @@ const union AnimCmd *const gFieldEffectAnimTable_ShortGrass[] = { gFieldEffectAnim_8375034 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_ShortGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_ShortGrass, gFieldEffectPicTable_ShortGrass, gDummySpriteAffineAnimTable, sub_8127334}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_ShortGrass = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_ShortGrass, gFieldEffectPicTable_ShortGrass, gDummySpriteAffineAnimTable, UpdateShortGrassFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_HotSpringsWater[] = { obj_frame_tiles(gFieldEffectPic_HotSpringsWater) @@ -795,7 +795,7 @@ const union AnimCmd *const gFieldEffectAnimTable_HotSpringsWater[] = { gFieldEffectAnim_8375064 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_HotSpringsWater = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_HotSpringsWater, gFieldEffectPicTable_HotSpringsWater, gDummySpriteAffineAnimTable, sub_8127A7C}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_HotSpringsWater = {0xFFFF, 0x1005, &gFieldOamData_16x16, gFieldEffectAnimTable_HotSpringsWater, gFieldEffectPicTable_HotSpringsWater, gDummySpriteAffineAnimTable, UpdateHotSpringsWaterFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_PopOutOfAsh[] = { obj_frame_tiles(gFieldEffectPic_PopOutOfAsh_0), @@ -872,7 +872,7 @@ const union AnimCmd *const gFieldEffectAnimTable_Bubbles[] = { gFieldEffectAnim_8375188 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Bubbles = {0xFFFF, 0x1004, &gFieldOamData_16x32, gFieldEffectAnimTable_Bubbles, gFieldEffectPicTable_Bubbles, gDummySpriteAffineAnimTable, sub_8128410}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_Bubbles = {0xFFFF, 0x1004, &gFieldOamData_16x32, gFieldEffectAnimTable_Bubbles, gFieldEffectPicTable_Bubbles, gDummySpriteAffineAnimTable, UpdateBubblesFieldEffect}; const struct SpriteFrameImage gFieldEffectPicTable_Sparkle[] = { obj_frame_tiles(gFieldEffectPic_Sparkle_0), @@ -890,7 +890,7 @@ const union AnimCmd *const gFieldEffectAnimTable_Sparkle[] = { gFieldEffectAnim_83751D8 }; -const struct SpriteTemplate gFieldEffectSpriteTemplate_Sparkle = {0xFFFF, 0x100F, &gFieldOamData_16x16, gFieldEffectAnimTable_Sparkle, gFieldEffectPicTable_Sparkle, gDummySpriteAffineAnimTable, sub_8128774}; +const struct SpriteTemplate gFieldEffectSpriteTemplate_Sparkle = {0xFFFF, 0x100F, &gFieldOamData_16x16, gFieldEffectAnimTable_Sparkle, gFieldEffectPicTable_Sparkle, gDummySpriteAffineAnimTable, UpdateSparkleFieldEffect}; const struct SpritePalette gFieldEffectObjectPaletteInfo3 = {gFieldEffectObjectPalette3, 0x100F}; diff --git a/src/debug/nakamura_debug_menu.c b/src/debug/nakamura_debug_menu.c index a20d58319..508dc048e 100644 --- a/src/debug/nakamura_debug_menu.c +++ b/src/debug/nakamura_debug_menu.c @@ -752,14 +752,14 @@ static const u8 Str_843E58D[] = _( static u16 FishingPoints_CountFishingTilesInMapThird(u8 a0) { u16 retval = 0; - u16 height = gMapHeader.mapData->height / 3; + u16 height = gMapHeader.mapLayout->height / 3; u16 y; u16 x; u16 start = height * a0; for (y = start; y < start + height; y++) { - for (x = 0; x < gMapHeader.mapData->width; x++) + for (x = 0; x < gMapHeader.mapLayout->width; x++) { if (MetatileBehavior_IsFeebasEncounterable(MapGridGetMetatileBehaviorAt(x + 7, y + 7)) == TRUE) { @@ -783,9 +783,9 @@ static u16 FishingPoints_GetIndexOfCurrentFishingSpot(void) x -= 7; y -= 7; - for (yy = 0; yy < gMapHeader.mapData->height; yy++) + for (yy = 0; yy < gMapHeader.mapLayout->height; yy++) { - for (xx = 0; xx < gMapHeader.mapData->width; xx++) + for (xx = 0; xx < gMapHeader.mapLayout->width; xx++) { if (MetatileBehavior_IsFeebasEncounterable(MapGridGetMetatileBehaviorAt(xx + 7, yy + 7)) == TRUE) { diff --git a/src/debug/sound_check_menu.c b/src/debug/sound_check_menu.c index 1fcf52f38..d57c699da 100644 --- a/src/debug/sound_check_menu.c +++ b/src/debug/sound_check_menu.c @@ -19,7 +19,7 @@ // window selections enum { - BGM_WINDOW, + MUS_WINDOW, SE_WINDOW }; @@ -151,7 +151,7 @@ void CB2_StartSoundCheckMenu(void) SetMainCallback2(CB2_SoundCheckMenu); REG_DISPCNT = 0x7140; taskId = CreateTask(Task_InitSoundCheckMenu, 0); - gTasks[taskId].tWindowSelected = BGM_WINDOW; + gTasks[taskId].tWindowSelected = MUS_WINDOW; gTasks[taskId].tBgmIndex = 0; gTasks[taskId].tSeIndex = 0; gTasks[taskId].data[3] = 0; @@ -196,7 +196,7 @@ extern const u8 *const gSENames[]; void sub_80BA384(u8 taskId) // Task_HandleDrawingSoundCheckMenuText { HighlightSelectedWindow(gTasks[taskId].tWindowSelected); - PrintSoundNumber(gTasks[taskId].tBgmIndex + BGM_STOP, 7, 8); // print by BGM index + PrintSoundNumber(gTasks[taskId].tBgmIndex + MUS_STOP, 7, 8); // print by BGM index sub_80BA79C(gBGMNames[gTasks[taskId].tBgmIndex], 11, 8); PrintSoundNumber(gTasks[taskId].tSeIndex, 7, 15); sub_80BA79C(gSENames[gTasks[taskId].tSeIndex], 11, 15); @@ -247,19 +247,19 @@ bool8 Task_ProcessSoundCheckMenuInput(u8 taskId) { if (gTasks[taskId].tBgmIndex != 0) { - m4aSongNumStop(gTasks[taskId].data[3] + BGM_STOP); - m4aSongNumStart(gTasks[taskId].tBgmIndex + BGM_STOP); + m4aSongNumStop(gTasks[taskId].data[3] + MUS_STOP); + m4aSongNumStart(gTasks[taskId].tBgmIndex + MUS_STOP); gTasks[taskId].data[3] = gTasks[taskId].tBgmIndex; } else { - m4aSongNumStop(gTasks[taskId].data[3] + BGM_STOP); + m4aSongNumStop(gTasks[taskId].data[3] + MUS_STOP); gTasks[taskId].data[3] = 0; } } else if (gTasks[taskId].tBgmIndex != 0) { - m4aSongNumStart(gTasks[taskId].tBgmIndex + BGM_STOP); + m4aSongNumStart(gTasks[taskId].tBgmIndex + MUS_STOP); gTasks[taskId].data[3] = gTasks[taskId].tBgmIndex; } } @@ -346,7 +346,7 @@ void HighlightSelectedWindow(u8 windowType) { switch (windowType) { - case BGM_WINDOW: + case MUS_WINDOW: default: REG_WIN1H = WIN_RANGE(17, 223); REG_WIN1V = WIN_RANGE(41, 87); @@ -819,124 +819,124 @@ void sub_80BB1D4(void) } #define SOUND_LIST_BGM \ - X(BGM_STOP, "STOP") \ - X(BGM_TETSUJI, "TETSUJI") \ - X(BGM_FIELD13, "FIELD13") \ - X(BGM_KACHI22, "KACHI22") \ - X(BGM_KACHI2, "KACHI2") \ - X(BGM_KACHI3, "KACHI3") \ - X(BGM_KACHI5, "KACHI5") \ - X(BGM_PCC, "PCC") \ - X(BGM_NIBI, "NIBI") \ - X(BGM_SUIKUN, "SUIKUN") \ - X(BGM_DOORO1, "DOORO1") \ - X(BGM_DOORO_X1, "DOORO-X1") \ - X(BGM_DOORO_X3, "DOORO-X3") \ - X(BGM_MACHI_S2, "MACHI-S2") \ - X(BGM_MACHI_S4, "MACHI-S4") \ - X(BGM_GIM, "GIM") \ - X(BGM_NAMINORI, "NAMINORI") \ - X(BGM_DAN01, "DAN01") \ - X(BGM_FANFA1, "FANFA1") \ - X(BGM_ME_ASA, "ME-ASA") \ - X(BGM_ME_BACHI, "ME-BACHI") \ - X(BGM_FANFA4, "FANFA4") \ - X(BGM_FANFA5, "FANFA5") \ - X(BGM_ME_WAZA, "ME-WAZA") \ - X(BGM_BIJYUTU, "BIJYUTU") \ - X(BGM_DOORO_X4, "DOORO-X4") \ - X(BGM_FUNE_KAN, "FUNE-KAN") \ - X(BGM_ME_SHINKA, "ME-SHINKA") \ - X(BGM_SHINKA, "SHINKA") \ - X(BGM_ME_WASURE, "ME-WASURE") \ - X(BGM_SYOUJOEYE, "SYOUJOEYE") \ - X(BGM_BOYEYE, "BOYEYE") \ - X(BGM_DAN02, "DAN02") \ - X(BGM_MACHI_S3, "MACHI-S3") \ - X(BGM_ODAMAKI, "ODAMAKI") \ - X(BGM_B_TOWER, "B-TOWER") \ - X(BGM_SWIMEYE, "SWIMEYE") \ - X(BGM_DAN03, "DAN03") \ - X(BGM_ME_KINOMI, "ME-KINOMI") \ - X(BGM_ME_TAMA, "ME-TAMA") \ - X(BGM_ME_B_BIG, "ME-B-BIG") \ - X(BGM_ME_B_SMALL, "ME-B-SMALL") \ - X(BGM_ME_ZANNEN, "ME-ZANNEN") \ - X(BGM_BD_TIME, "BD-TIME") \ - X(BGM_TEST1, "TEST1") \ - X(BGM_TEST2, "TEST2") \ - X(BGM_TEST3, "TEST3") \ - X(BGM_TEST4, "TEST4") \ - X(BGM_TEST, "TEST") \ - X(BGM_GOMACHI0, "GOMACHI0") \ - X(BGM_GOTOWN, "GOTOWN") \ - X(BGM_POKECEN, "POKECEN") \ - X(BGM_NEXTROAD, "NEXTROAD") \ - X(BGM_GRANROAD, "GRANROAD") \ - X(BGM_CYCLING, "CYCLING") \ - X(BGM_FRIENDLY, "FRIENDLY") \ - X(BGM_MISHIRO, "MISHIRO") \ - X(BGM_TOZAN, "TOZAN") \ - X(BGM_GIRLEYE, "GIRLEYE") \ - X(BGM_MINAMO, "MINAMO") \ - X(BGM_ASHROAD, "ASHROAD") \ - X(BGM_EVENT0, "EVENT0") \ - X(BGM_DEEPDEEP, "DEEPDEEP") \ - X(BGM_KACHI1, "KACHI1") \ - X(BGM_TITLE3, "TITLE3") \ - X(BGM_DEMO1, "DEMO1") \ - X(BGM_GIRL_SUP, "GIRL-SUP") \ - X(BGM_HAGESHII, "HAGESHII") \ - X(BGM_KAKKOII, "KAKKOII") \ - X(BGM_KAZANBAI, "KAZANBAI") \ - X(BGM_AQA_0, "AQA-0") \ - X(BGM_TSURETEK, "TSURETEK") \ - X(BGM_BOY_SUP, "BOY-SUP") \ - X(BGM_RAINBOW, "RAINBOW") \ - X(BGM_AYASII, "AYASII") \ - X(BGM_KACHI4, "KACHI4") \ - X(BGM_ROPEWAY, "ROPEWAY") \ - X(BGM_CASINO, "CASINO") \ - X(BGM_HIGHTOWN, "HIGHTOWN") \ - X(BGM_SAFARI, "SAFARI") \ - X(BGM_C_ROAD, "C-ROAD") \ - X(BGM_AJITO, "AJITO") \ - X(BGM_M_BOAT, "M-BOAT") \ - X(BGM_M_DUNGON, "M-DUNGON") \ - X(BGM_FINECITY, "FINECITY") \ - X(BGM_MACHUPI, "MACHUPI") \ - X(BGM_P_SCHOOL, "P-SCHOOL") \ - X(BGM_DENDOU, "DENDOU") \ - X(BGM_TONEKUSA, "TONEKUSA") \ - X(BGM_MABOROSI, "MABOROSI") \ - X(BGM_CON_FAN, "CON-FAN") \ - X(BGM_CONTEST0, "CONTEST0") \ - X(BGM_MGM0, "MGM0") \ - X(BGM_T_BATTLE, "T-BATTLE") \ - X(BGM_OOAME, "OOAME") \ - X(BGM_HIDERI, "HIDERI") \ - X(BGM_RUNECITY, "RUNECITY") \ - X(BGM_CON_K, "CON-K") \ - X(BGM_EIKOU_R, "EIKOU-R") \ - X(BGM_KARAKURI, "KARAKURI") \ - X(BGM_HUTAGO, "HUTAGO") \ - X(BGM_SITENNOU, "SITENNOU") \ - X(BGM_YAMA_EYE, "YAMA-EYE") \ - X(BGM_CONLOBBY, "CONLOBBY") \ - X(BGM_INTER_V, "INTER-V") \ - X(BGM_DAIGO, "DAIGO") \ - X(BGM_THANKFOR, "THANKFOR") \ - X(BGM_END, "END") \ - X(BGM_BATTLE27, "BATTLE27") \ - X(BGM_BATTLE31, "BATTLE31") \ - X(BGM_BATTLE20, "BATTLE20") \ - X(BGM_BATTLE32, "BATTLE32") \ - X(BGM_BATTLE33, "BATTLE33") \ - X(BGM_BATTLE36, "BATTLE36") \ - X(BGM_BATTLE34, "BATTLE34") \ - X(BGM_BATTLE35, "BATTLE35") \ - X(BGM_BATTLE38, "BATTLE38") \ - X(BGM_BATTLE30, "BATTLE30") + X(MUS_STOP, "STOP") \ + X(MUS_TETSUJI, "TETSUJI") \ + X(MUS_FIELD13, "FIELD13") \ + X(MUS_KACHI22, "KACHI22") \ + X(MUS_KACHI2, "KACHI2") \ + X(MUS_KACHI3, "KACHI3") \ + X(MUS_KACHI5, "KACHI5") \ + X(MUS_PCC, "PCC") \ + X(MUS_NIBI, "NIBI") \ + X(MUS_SUIKUN, "SUIKUN") \ + X(MUS_DOORO1, "DOORO1") \ + X(MUS_DOORO_X1, "DOORO-X1") \ + X(MUS_DOORO_X3, "DOORO-X3") \ + X(MUS_MACHI_S2, "MACHI-S2") \ + X(MUS_MACHI_S4, "MACHI-S4") \ + X(MUS_GIM, "GIM") \ + X(MUS_NAMINORI, "NAMINORI") \ + X(MUS_DAN01, "DAN01") \ + X(MUS_FANFA1, "FANFA1") \ + X(MUS_ME_ASA, "ME-ASA") \ + X(MUS_ME_BACHI, "ME-BACHI") \ + X(MUS_FANFA4, "FANFA4") \ + X(MUS_FANFA5, "FANFA5") \ + X(MUS_ME_WAZA, "ME-WAZA") \ + X(MUS_BIJYUTU, "BIJYUTU") \ + X(MUS_DOORO_X4, "DOORO-X4") \ + X(MUS_FUNE_KAN, "FUNE-KAN") \ + X(MUS_ME_SHINKA, "ME-SHINKA") \ + X(MUS_SHINKA, "SHINKA") \ + X(MUS_ME_WASURE, "ME-WASURE") \ + X(MUS_SYOUJOEYE, "SYOUJOEYE") \ + X(MUS_BOYEYE, "BOYEYE") \ + X(MUS_DAN02, "DAN02") \ + X(MUS_MACHI_S3, "MACHI-S3") \ + X(MUS_ODAMAKI, "ODAMAKI") \ + X(MUS_B_TOWER, "B-TOWER") \ + X(MUS_SWIMEYE, "SWIMEYE") \ + X(MUS_DAN03, "DAN03") \ + X(MUS_ME_KINOMI, "ME-KINOMI") \ + X(MUS_ME_TAMA, "ME-TAMA") \ + X(MUS_ME_B_BIG, "ME-B-BIG") \ + X(MUS_ME_B_SMALL, "ME-B-SMALL") \ + X(MUS_ME_ZANNEN, "ME-ZANNEN") \ + X(MUS_BD_TIME, "BD-TIME") \ + X(MUS_TEST1, "TEST1") \ + X(MUS_TEST2, "TEST2") \ + X(MUS_TEST3, "TEST3") \ + X(MUS_TEST4, "TEST4") \ + X(MUS_TEST, "TEST") \ + X(MUS_GOMACHI0, "GOMACHI0") \ + X(MUS_GOTOWN, "GOTOWN") \ + X(MUS_POKECEN, "POKECEN") \ + X(MUS_NEXTROAD, "NEXTROAD") \ + X(MUS_GRANROAD, "GRANROAD") \ + X(MUS_CYCLING, "CYCLING") \ + X(MUS_FRIENDLY, "FRIENDLY") \ + X(MUS_MISHIRO, "MISHIRO") \ + X(MUS_TOZAN, "TOZAN") \ + X(MUS_GIRLEYE, "GIRLEYE") \ + X(MUS_MINAMO, "MINAMO") \ + X(MUS_ASHROAD, "ASHROAD") \ + X(MUS_EVENT0, "EVENT0") \ + X(MUS_DEEPDEEP, "DEEPDEEP") \ + X(MUS_KACHI1, "KACHI1") \ + X(MUS_TITLE3, "TITLE3") \ + X(MUS_DEMO1, "DEMO1") \ + X(MUS_GIRL_SUP, "GIRL-SUP") \ + X(MUS_HAGESHII, "HAGESHII") \ + X(MUS_KAKKOII, "KAKKOII") \ + X(MUS_KAZANBAI, "KAZANBAI") \ + X(MUS_AQA_0, "AQA-0") \ + X(MUS_TSURETEK, "TSURETEK") \ + X(MUS_BOY_SUP, "BOY-SUP") \ + X(MUS_RAINBOW, "RAINBOW") \ + X(MUS_AYASII, "AYASII") \ + X(MUS_KACHI4, "KACHI4") \ + X(MUS_ROPEWAY, "ROPEWAY") \ + X(MUS_CASINO, "CASINO") \ + X(MUS_HIGHTOWN, "HIGHTOWN") \ + X(MUS_SAFARI, "SAFARI") \ + X(MUS_C_ROAD, "C-ROAD") \ + X(MUS_AJITO, "AJITO") \ + X(MUS_M_BOAT, "M-BOAT") \ + X(MUS_M_DUNGON, "M-DUNGON") \ + X(MUS_FINECITY, "FINECITY") \ + X(MUS_MACHUPI, "MACHUPI") \ + X(MUS_P_SCHOOL, "P-SCHOOL") \ + X(MUS_DENDOU, "DENDOU") \ + X(MUS_TONEKUSA, "TONEKUSA") \ + X(MUS_MABOROSI, "MABOROSI") \ + X(MUS_CON_FAN, "CON-FAN") \ + X(MUS_CONTEST0, "CONTEST0") \ + X(MUS_MGM0, "MGM0") \ + X(MUS_T_BATTLE, "T-BATTLE") \ + X(MUS_OOAME, "OOAME") \ + X(MUS_HIDERI, "HIDERI") \ + X(MUS_RUNECITY, "RUNECITY") \ + X(MUS_CON_K, "CON-K") \ + X(MUS_EIKOU_R, "EIKOU-R") \ + X(MUS_KARAKURI, "KARAKURI") \ + X(MUS_HUTAGO, "HUTAGO") \ + X(MUS_SITENNOU, "SITENNOU") \ + X(MUS_YAMA_EYE, "YAMA-EYE") \ + X(MUS_CONLOBBY, "CONLOBBY") \ + X(MUS_INTER_V, "INTER-V") \ + X(MUS_DAIGO, "DAIGO") \ + X(MUS_THANKFOR, "THANKFOR") \ + X(MUS_END, "END") \ + X(MUS_BATTLE27, "BATTLE27") \ + X(MUS_BATTLE31, "BATTLE31") \ + X(MUS_BATTLE20, "BATTLE20") \ + X(MUS_BATTLE32, "BATTLE32") \ + X(MUS_BATTLE33, "BATTLE33") \ + X(MUS_BATTLE36, "BATTLE36") \ + X(MUS_BATTLE34, "BATTLE34") \ + X(MUS_BATTLE35, "BATTLE35") \ + X(MUS_BATTLE38, "BATTLE38") \ + X(MUS_BATTLE30, "BATTLE30") #define SOUND_LIST_SE \ X(SE_STOP, "STOP") \ diff --git a/src/decoration.c b/src/decoration.c index e31624540..a4976932d 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -2039,7 +2039,7 @@ void sub_80FF114(u8 taskId) { DrawWholeMapView(); Overworld_SetWarpDestination(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1, gTasks[taskId].data[3], gTasks[taskId].data[4]); - warp_in(); + WarpIntoMap(); } void sub_80FF160(u8 taskId) { @@ -2271,7 +2271,7 @@ void AddDecorationIconObjectFromEventObject(struct UnkStruct_02038900 * unk_0203 sub_81008BC(unk_02038900); sub_8100930(unk_02038900->decoration->shape); sub_8100874(unk_02038900); - sub_810070C(unk_02038900->palette, ((u16 *)gMapHeader.mapData->secondaryTileset->metatiles + 8 * unk_02038900->decoration->tiles[0])[7] >> 12); + sub_810070C(unk_02038900->palette, ((u16 *)gMapHeader.mapLayout->secondaryTileset->metatiles + 8 * unk_02038900->decoration->tiles[0])[7] >> 12); LoadSpritePalette(&gUnknown_083EC954); gUnknown_020391A8 = gSprites[gFieldCamera.trackedSpriteId].data[0]; gFieldCamera.trackedSpriteId = CreateSprite(&gSpriteTemplate_83EC93C, gUnknown_083EC900[unk_02038900->decoration->shape].x, gUnknown_083EC900[unk_02038900->decoration->shape].y, 0); @@ -3206,7 +3206,7 @@ bool8 sub_810038C(u8 taskId) { data[1]++; return FALSE; - } else if (gUnknown_020391AA == DIR_NORTH && data[1] - 7 >= gMapHeader.mapData->height) + } else if (gUnknown_020391AA == DIR_NORTH && data[1] - 7 >= gMapHeader.mapLayout->height) { data[1]--; return FALSE; @@ -3214,7 +3214,7 @@ bool8 sub_810038C(u8 taskId) { data[0]++; return FALSE; - } else if (gUnknown_020391AA == DIR_EAST && data[0] + data[5] - 8 >= gMapHeader.mapData->width) + } else if (gUnknown_020391AA == DIR_EAST && data[0] + data[5] - 8 >= gMapHeader.mapLayout->width) { data[0]--; return FALSE; @@ -3336,7 +3336,7 @@ void sub_810070C(u16 *a0, u16 a1) u16 i; for (i=0; i<16; i++) { - a0[i] = ((u16 *)gMapHeader.mapData->primaryTileset->palettes)[16 * a1 + i]; + a0[i] = ((u16 *)gMapHeader.mapLayout->primaryTileset->palettes)[16 * a1 + i]; } } @@ -3352,7 +3352,7 @@ void sub_8100740(u8 *dest, u16 flags) } for (i=0; i<32; i++) { - buffer[i] = ((u8 *)gMapHeader.mapData->primaryTileset->tiles)[flags * 32 + i]; + buffer[i] = ((u8 *)gMapHeader.mapLayout->primaryTileset->tiles)[flags * 32 + i]; } switch (mode) { @@ -3398,7 +3398,7 @@ void sub_8100874(struct UnkStruct_02038900 *unk_02038900) u16 sub_810089C(u16 a0) { - return ((u16 *)gMapHeader.mapData->secondaryTileset->metatiles)[a0] & 0xfff; + return ((u16 *)gMapHeader.mapLayout->secondaryTileset->metatiles)[a0] & 0xfff; } const u8 Unknown_3EC660[] = {0, 1, 2, 3}; @@ -3665,7 +3665,7 @@ void sub_8100B6C(void) { for (k=0; k<gUnknown_020391B4[i].width; k++) { - MapGridSetMetatileEntryAt(x + 7 + k, y + 7 - j, ((u16 *)gMapHeader.mapData->map)[(x + k) + gMapHeader.mapData->width * (y - j)] | 0x3000); + MapGridSetMetatileEntryAt(x + 7 + k, y + 7 - j, ((u16 *)gMapHeader.mapLayout->map)[(x + k) + gMapHeader.mapLayout->width * (y - j)] | 0x3000); } } sub_8100A60(gUnknown_020391B4[i].decorId); diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 60bd09ca9..5d498c1ff 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -60,8 +60,9 @@ static bool8 EventObjectZCoordIsCompatible(struct EventObject*, u8); static struct EventObjectTemplate *FindEventObjectTemplateByLocalId(u8, struct EventObjectTemplate*, u8); static void UpdateEventObjectSpriteSubpriorityAndVisibility(struct Sprite *); static void InitObjectPriorityByZCoord(struct Sprite *sprite, u8 z); +static void CreateReflectionEffectSprites(void); -const u8 gUnknown_0830FD14[] = {1, 1, 6, 7, 8, 9, 6, 7, 8, 9, 11, 11, 0, 0, 0, 0}; +const u8 gReflectionEffectPaletteMap[] = {1, 1, 6, 7, 8, 9, 6, 7, 8, 9, 11, 11, 0, 0, 0, 0}; const struct SpriteTemplate gCameraSpriteTemplate = {0, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, ObjectCB_CameraObject}; @@ -324,7 +325,7 @@ const u8 gInitialMovementTypeFacingDirections[] = { #include "data/field_event_obj/event_object_subsprites.h" #include "data/field_event_obj/event_object_graphics_info.h" -const struct SpritePalette gUnknown_0837377C[] = { +const struct SpritePalette sEventObjectSpritePalettes[] = { {gEventObjectPalette0, 0x1103}, {gEventObjectPalette1, 0x1104}, {gEventObjectPalette2, 0x1105}, @@ -355,121 +356,122 @@ const struct SpritePalette gUnknown_0837377C[] = { {NULL, 0x0000} }; -const u16 Palettes_837385C[] = { +const u16 gPlayerReflectionPaletteTags[] = { 0x1101, 0x1101, 0x1101, 0x1101 }; -const u16 Palettes_8373864[] = { +// These were probably intended to be used for the female player's reflection. +const u16 gUnusedPlayerReflectionPaletteTags[] = { 0x1111, 0x1111, 0x1111, 0x1111 }; -const u16 Palettes_837386C[] = { +const u16 gPlayerUnderwaterReflectionPaletteTags[] = { 0x1115, 0x1115, 0x1115, 0x1115 }; -const struct PairedPalettes gUnknown_08373874[] = { - {0x1100, Palettes_837385C}, - {0x1110, Palettes_837385C}, - {0x1115, Palettes_837386C}, +const struct ReflectionPaletteSet gPlayerReflectionPaletteSets[] = { + {0x1100, gPlayerReflectionPaletteTags}, + {0x1110, gPlayerReflectionPaletteTags}, + {0x1115, gPlayerUnderwaterReflectionPaletteTags}, {0x11FF, NULL} }; -const u16 Palettes_8373894[] = { +const u16 gQuintyPlumpReflectionPaletteTags[] = { 0x110C, 0x110C, 0x110C, 0x110C }; -const u16 Palettes_837389C[] = { +const u16 gTruckReflectionPaletteTags[] = { 0x110D, 0x110D, 0x110D, 0x110D }; -const u16 Palettes_83738A4[] = { +const u16 gMachokeMoverReflectionPaletteTags[] = { 0x110E, 0x110E, 0x110E, 0x110E }; -const u16 Palettes_83738AC[] = { +const u16 gMovingBoxReflectionPaletteTags[] = { 0x1112, 0x1112, 0x1112, 0x1112 }; -const u16 Palettes_83738B4[] = { +const u16 gCableCarReflectionPaletteTags[] = { 0x1113, 0x1113, 0x1113, 0x1113 }; -const u16 Palettes_83738BC[] = { +const u16 gSSTidalReflectionPaletteTags[] = { 0x1114, 0x1114, 0x1114, 0x1114 }; -const u16 Palettes_83738C4[] = { +const u16 gSubmarineShadowReflectionPaletteTags[] = { 0x111A, 0x111A, 0x111A, 0x111A }; -const u16 Palettes_83738CC[] = { +const u16 gKyogre2ReflectionPaletteTags[] = { 0x1117, 0x1117, 0x1117, 0x1117 }; -const u16 Palettes_83738D4[] = { +const u16 gGroudon2ReflectionPaletteTags[] = { 0x1119, 0x1119, 0x1119, 0x1119 }; -const u16 Palettes_83738DC[] = { +const u16 gInvisibleKecleonReflectionPaletteTags[] = { 0x1109, 0x1109, 0x1109, 0x1109 }; -const struct PairedPalettes gUnknown_083738E4[] = { - {0x1100, Palettes_837385C}, - {0x1110, Palettes_837385C}, - {0x110B, Palettes_8373894}, - {0x110D, Palettes_837389C}, - {0x110E, Palettes_83738A4}, - {0x1112, Palettes_83738AC}, - {0x1113, Palettes_83738B4}, - {0x1114, Palettes_83738BC}, - {0x1116, Palettes_83738CC}, - {0x1118, Palettes_83738D4}, - {0x1105, Palettes_83738DC}, - {0x111A, Palettes_83738C4}, +const struct ReflectionPaletteSet gSpecialObjectReflectionPaletteSets[] = { + {0x1100, gPlayerReflectionPaletteTags}, + {0x1110, gPlayerReflectionPaletteTags}, + {0x110B, gQuintyPlumpReflectionPaletteTags}, + {0x110D, gTruckReflectionPaletteTags}, + {0x110E, gMachokeMoverReflectionPaletteTags}, + {0x1112, gMovingBoxReflectionPaletteTags}, + {0x1113, gCableCarReflectionPaletteTags}, + {0x1114, gSSTidalReflectionPaletteTags}, + {0x1116, gKyogre2ReflectionPaletteTags}, + {0x1118, gGroudon2ReflectionPaletteTags}, + {0x1105, gInvisibleKecleonReflectionPaletteTags}, + {0x111A, gSubmarineShadowReflectionPaletteTags}, {0x11FF, NULL} }; -const u16 Unknown_837394C[] = { +const u16 gObjectPaletteTags0[] = { 0x1100, 0x1101, 0x1103, @@ -482,7 +484,7 @@ const u16 Unknown_837394C[] = { 0x110A }; -const u16 Unknown_8373960[] = { +const u16 gObjectPaletteTags1[] = { 0x1100, 0x1101, 0x1103, @@ -495,7 +497,7 @@ const u16 Unknown_8373960[] = { 0x110A }; -const u16 Unknown_8373974[] = { +const u16 gObjectPaletteTags2[] = { 0x1100, 0x1101, 0x1103, @@ -508,7 +510,7 @@ const u16 Unknown_8373974[] = { 0x110A }; -const u16 Unknown_8373988[] = { +const u16 gObjectPaletteTags3[] = { 0x1100, 0x1101, 0x1103, @@ -521,11 +523,11 @@ const u16 Unknown_8373988[] = { 0x110A }; -const u16 *const gUnknown_0837399C[] = { - Unknown_837394C, - Unknown_8373960, - Unknown_8373974, - Unknown_8373988 +const u16 *const gObjectPaletteTagSets[] = { + gObjectPaletteTags0, + gObjectPaletteTags1, + gObjectPaletteTags2, + gObjectPaletteTags3 }; #include "data/field_event_obj/berry_tree_graphics_tables.h" @@ -729,7 +731,7 @@ bool8 (*const gDirectionBlockedMetatileFuncs[])(u8) = { MetatileBehavior_IsWestBlocked }; -const struct Coords16 gDirectionToVectors[] = { +static const struct Coords16 sDirectionToVectors[] = { { 0, 0}, { 0, 1}, { 0, -1}, @@ -958,8 +960,11 @@ const u8 gUnknown_08375767[][4] = { #include "data/field_event_obj/movement_action_func_tables.h" -static u8 gUnknown_030005A4; -static u16 gUnknown_030005A6; +// There is code supporing multiple sets of player reflection palettes, but +// the data for each is identical. Perhaps non-water/ice reflections were planned. +static u8 sCurrentReflectionType; + +static u16 sCurrentSpecialObjectPaletteTag; extern struct LinkPlayerEventObject gLinkPlayerEventObjects[]; extern u8 gReservedSpritePaletteCount; @@ -989,16 +994,21 @@ static void ClearAllEventObjects(void) #endif } -void sub_805AA98(void) +void ResetEventObjects(void) { ClearLinkPlayerEventObjects(); ClearAllEventObjects(); ClearPlayerAvatarInfo(); - sub_805AAB0(); + CreateReflectionEffectSprites(); } -void sub_805AAB0(void) +static void CreateReflectionEffectSprites(void) { + // The reflection effect when an event object is standing over water or ice + // is driven by these two invisible sprites' callback functions. The callback + // continuously updates OAM rot/scale matrices using affine animations that scale + // the sprite up and down horizontally. The second one is needed to handle the inverted + // effect when the object is facing to the east. (The sprite has h-flip enabled). u8 spriteId = spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[21], 0, 0, 0x1F); gSprites[spriteId].oam.affineMode = 1; InitSpriteAffineAnim(&gSprites[spriteId]); @@ -1223,9 +1233,9 @@ static u8 TrySetupEventObjectSprite(struct EventObjectTemplate *eventObjTemplate eventObject = &gEventObjects[eventObjectId]; gfxInfo = GetEventObjectGraphicsInfo(eventObject->graphicsId); if (gfxInfo->paletteSlot == 0) - npc_load_two_palettes__no_record(gfxInfo->paletteTag1, gfxInfo->paletteSlot); + LoadPlayerObjectReflectionPalette(gfxInfo->paletteTag, gfxInfo->paletteSlot); else if (gfxInfo->paletteSlot == 10) - npc_load_two_palettes__and_record(gfxInfo->paletteTag1, gfxInfo->paletteSlot); + LoadSpecialObjectReflectionPalette(gfxInfo->paletteTag, gfxInfo->paletteSlot); if (eventObject->movementType == MOVEMENT_TYPE_INVISIBLE) eventObject->invisible = TRUE; @@ -1330,7 +1340,7 @@ void MakeObjectTemplateFromEventObjectGraphicsInfo(u16 graphicsId, void (*callba const struct EventObjectGraphicsInfo *gfxInfo = GetEventObjectGraphicsInfo(graphicsId); sprTemplate->tileTag = gfxInfo->tileTag; - sprTemplate->paletteTag = gfxInfo->paletteTag1; + sprTemplate->paletteTag = gfxInfo->paletteTag; sprTemplate->oam = gfxInfo->oam; sprTemplate->anims = gfxInfo->anims; sprTemplate->images = gfxInfo->images; @@ -1397,7 +1407,7 @@ u8 sub_805B410(u8 graphicsId, u8 b, s16 x, s16 y, u8 elevation, u8 direction) sprite->data[0] = b; sprite->data[1] = elevation; if (gfxInfo->paletteSlot == 10) - npc_load_two_palettes__and_record(gfxInfo->paletteTag1, gfxInfo->paletteSlot); + LoadSpecialObjectReflectionPalette(gfxInfo->paletteTag, gfxInfo->paletteSlot); if (subspriteTables != NULL) { SetSubspriteTables(sprite, subspriteTables); @@ -1497,7 +1507,7 @@ void sub_805B710(u16 a, u16 b) #endif } } - sub_805AAB0(); + CreateReflectionEffectSprites(); } extern void SetPlayerAvatarEventObjectIdAndObjectId(u8, u8); @@ -1529,9 +1539,9 @@ void sub_805B75C(u8 eventObjectId, s16 b, s16 c) sp0.images = &sp18; *(u16 *)&sp0.paletteTag = 0xFFFF; if (gfxInfo->paletteSlot == 0) - npc_load_two_palettes__no_record(gfxInfo->paletteTag1, gfxInfo->paletteSlot); + LoadPlayerObjectReflectionPalette(gfxInfo->paletteTag, gfxInfo->paletteSlot); if (gfxInfo->paletteSlot > 9) - npc_load_two_palettes__and_record(gfxInfo->paletteTag1, gfxInfo->paletteSlot); + LoadSpecialObjectReflectionPalette(gfxInfo->paletteTag, gfxInfo->paletteSlot); *(u16 *)&sp0.paletteTag = 0xFFFF; spriteId = CreateSprite(&sp0, 0, 0, 0); if (spriteId != 64) @@ -1547,7 +1557,7 @@ void sub_805B75C(u8 eventObjectId, s16 b, s16 c) if (eventObject->movementType == MOVEMENT_TYPE_PLAYER) { SetPlayerAvatarEventObjectIdAndObjectId(eventObjectId, spriteId); - eventObject->warpArrowSpriteId = sub_8126B54(); + eventObject->warpArrowSpriteId = CreateWarpArrowSprite(); } if (subspriteTables != NULL) SetSubspriteTables(sprite, subspriteTables); @@ -1591,9 +1601,9 @@ void sub_805B980(struct EventObject *eventObject, u8 graphicsId) gfxInfo = GetEventObjectGraphicsInfo(graphicsId); sprite = &gSprites[eventObject->spriteId]; if (gfxInfo->paletteSlot == 0) - pal_patch_for_npc(gfxInfo->paletteTag1, gfxInfo->paletteSlot); + PatchObjectPalette(gfxInfo->paletteTag, gfxInfo->paletteSlot); if (gfxInfo->paletteSlot == 10) - npc_load_two_palettes__and_record(gfxInfo->paletteTag1, gfxInfo->paletteSlot); + LoadSpecialObjectReflectionPalette(gfxInfo->paletteTag, gfxInfo->paletteSlot); sprite->oam.shape = gfxInfo->oam->shape; sprite->oam.size = gfxInfo->oam->size; sprite->images = gfxInfo->images; @@ -1749,7 +1759,7 @@ void sub_805BD90(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y) } } -void gpu_pal_allocator_reset__manage_upper_four(void) +void FreeAndReserveObjectSpritePalettes(void) { FreeAllSpritePalettes(); gReservedSpritePaletteCount = 12; @@ -1760,7 +1770,7 @@ void sub_805BDF8(u16 tag) u16 paletteIndex = FindEventObjectPaletteIndexByTag(tag); if (paletteIndex != 0x11FF) //always happens. FindEventObjectPaletteIndexByTag returns u8 - sub_805BE58(&gUnknown_0837377C[paletteIndex]); + sub_805BE58(&sEventObjectSpritePalettes[paletteIndex]); } void unref_sub_805BE24(u16 *arr) @@ -1779,58 +1789,58 @@ u8 sub_805BE58(const struct SpritePalette *palette) return LoadSpritePalette(palette); } -void pal_patch_for_npc(u16 paletteTag, u16 paletteIndex) +void PatchObjectPalette(u16 paletteTag, u16 paletteIndex) { u8 index = paletteIndex; u8 tagPaletteIndex = FindEventObjectPaletteIndexByTag(paletteTag); - LoadPalette(gUnknown_0837377C[tagPaletteIndex].data, index * 16 + 0x100, 0x20); + LoadPalette(sEventObjectSpritePalettes[tagPaletteIndex].data, index * 16 + 0x100, 0x20); } -void pal_patch_for_npc_range(const u16 *arr, u8 b, u8 c) +static void PatchObjectPalettes(const u16 *paletteTags, u8 paletteIndex, u8 maxPaletteIndex) { - for (; b < c; arr++, b++) - pal_patch_for_npc(*arr, b); + for (; paletteIndex < maxPaletteIndex; paletteTags++, paletteIndex++) + PatchObjectPalette(*paletteTags, paletteIndex); } u8 FindEventObjectPaletteIndexByTag(u16 tag) { u8 i; - for (i = 0; gUnknown_0837377C[i].tag != 0x11FF; i++) + for (i = 0; sEventObjectSpritePalettes[i].tag != 0x11FF; i++) { - if (gUnknown_0837377C[i].tag == tag) + if (sEventObjectSpritePalettes[i].tag == tag) return i; } return 0xFF; } -void npc_load_two_palettes__no_record(u16 paletteTag, u8 paletteIndex) +void LoadPlayerObjectReflectionPalette(u16 paletteTag, u8 paletteIndex) { u8 i; - pal_patch_for_npc(paletteTag, paletteIndex); - for (i = 0; gUnknown_08373874[i].tag != 0x11FF; i++) + PatchObjectPalette(paletteTag, paletteIndex); + for (i = 0; gPlayerReflectionPaletteSets[i].mainPaletteTag != 0x11FF; i++) { - if (gUnknown_08373874[i].tag == paletteTag) + if (gPlayerReflectionPaletteSets[i].mainPaletteTag == paletteTag) { - pal_patch_for_npc(gUnknown_08373874[i].data[gUnknown_030005A4], gUnknown_0830FD14[paletteIndex]); + PatchObjectPalette(gPlayerReflectionPaletteSets[i].reflectionPaletteTags[sCurrentReflectionType], gReflectionEffectPaletteMap[paletteIndex]); break; } } } -void npc_load_two_palettes__and_record(u16 paletteTag, u8 paletteIndex) +void LoadSpecialObjectReflectionPalette(u16 paletteTag, u8 paletteIndex) { u8 i; - gUnknown_030005A6 = paletteTag; - pal_patch_for_npc(paletteTag, paletteIndex); - for (i = 0; gUnknown_083738E4[i].tag != 0x11FF; i++) + sCurrentSpecialObjectPaletteTag = paletteTag; + PatchObjectPalette(paletteTag, paletteIndex); + for (i = 0; gSpecialObjectReflectionPaletteSets[i].mainPaletteTag != 0x11FF; i++) { - if (gUnknown_083738E4[i].tag == paletteTag) + if (gSpecialObjectReflectionPaletteSets[i].mainPaletteTag == paletteTag) { - pal_patch_for_npc(gUnknown_083738E4[i].data[gUnknown_030005A4], gUnknown_0830FD14[paletteIndex]); + PatchObjectPalette(gSpecialObjectReflectionPaletteSets[i].reflectionPaletteTags[sCurrentReflectionType], gReflectionEffectPaletteMap[paletteIndex]); break; } } @@ -2046,7 +2056,7 @@ u8 unref_sub_805C43C(struct Sprite *src, s16 x, s16 y, u8 subpriority) { u8 i; - for (i = 0; i < 64; i++) + for (i = 0; i < MAX_SPRITES; i++) { if (!gSprites[i].inUse) { @@ -2060,11 +2070,11 @@ u8 unref_sub_805C43C(struct Sprite *src, s16 x, s16 y, u8 subpriority) return i; } -u8 obj_unfreeze(struct Sprite *src, s16 x, s16 y, u8 subpriority) +u8 CreateCopySpriteAt(struct Sprite *src, s16 x, s16 y, u8 subpriority) { s16 i; - for (i = 63; i > -1; i--) + for (i = MAX_SPRITES - 1; i > -1; i--) { if (!gSprites[i].inUse) { @@ -2075,7 +2085,8 @@ u8 obj_unfreeze(struct Sprite *src, s16 x, s16 y, u8 subpriority) return i; } } - return 64; + + return MAX_SPRITES; } void SetEventObjectDirection(struct EventObject *eventObject, u8 direction) @@ -2210,28 +2221,31 @@ void TryOverrideTemplateCoordsForEventObject(u8 localId, u8 mapNum, u8 mapGroup) OverrideTemplateCoordsForEventObject(&gEventObjects[eventObjectId]); } -void sub_805C7C4(u8 a) +void InitEventObjectPalettes(u8 reflectionType) { - gpu_pal_allocator_reset__manage_upper_four(); - gUnknown_030005A6 = 0x11FF; - gUnknown_030005A4 = a; - pal_patch_for_npc_range(gUnknown_0837399C[gUnknown_030005A4], 0, 10); + FreeAndReserveObjectSpritePalettes(); + sCurrentSpecialObjectPaletteTag = 0x11FF; + sCurrentReflectionType = reflectionType; + PatchObjectPalettes(gObjectPaletteTagSets[sCurrentReflectionType], 0, 10); } -u16 npc_paltag_by_palslot(u8 a) +u16 GetObjectPaletteTag(u8 paletteIndex) { u8 i; - if (a < 10) - return gUnknown_0837399C[gUnknown_030005A4][a]; + // Regular objects and the player occupy the first 10 palettes. + if (paletteIndex < 10) + return gObjectPaletteTagSets[sCurrentReflectionType][paletteIndex]; - for (i = 0; gUnknown_083738E4[i].tag != 0x11FF; i++) + // Palette slots 10 and 11 belong to the special object. + for (i = 0; gSpecialObjectReflectionPaletteSets[i].mainPaletteTag != 0x11FF; i++) { - if (gUnknown_083738E4[i].tag == gUnknown_030005A6) + if (gSpecialObjectReflectionPaletteSets[i].mainPaletteTag == sCurrentSpecialObjectPaletteTag) { - return gUnknown_083738E4[i].data[gUnknown_030005A4]; + return gSpecialObjectReflectionPaletteSets[i].reflectionPaletteTags[sCurrentReflectionType]; } } + return 0x11FF; } @@ -4445,14 +4459,14 @@ void sub_8060288(u8 localId, u8 mapNum, u8 mapGroup) void MoveCoords(u8 direction, s16 *x, s16 *y) { - *x += gDirectionToVectors[direction].x; - *y += gDirectionToVectors[direction].y; + *x += sDirectionToVectors[direction].x; + *y += sDirectionToVectors[direction].y; } void Unref_MovePixelCoords(u8 direction, s16 *x, s16 *y) { - *x += gDirectionToVectors[direction].x << 4; - *y += gDirectionToVectors[direction].y << 4; + *x += sDirectionToVectors[direction].x << 4; + *y += sDirectionToVectors[direction].y << 4; } static void MoveCoordsInDirection(u32 dir, s16 *x, s16 *y, s16 deltaX, s16 deltaY) @@ -4460,13 +4474,13 @@ static void MoveCoordsInDirection(u32 dir, s16 *x, s16 *y, s16 deltaX, s16 delta u8 direction = dir; s16 dx2 = (u16)deltaX; s16 dy2 = (u16)deltaY; - if (gDirectionToVectors[direction].x > 0) + if (sDirectionToVectors[direction].x > 0) *x += dx2; - if (gDirectionToVectors[direction].x < 0) + if (sDirectionToVectors[direction].x < 0) *x -= dx2; - if (gDirectionToVectors[direction].y > 0) + if (sDirectionToVectors[direction].y > 0) *y += dy2; - if (gDirectionToVectors[direction].y < 0) + if (sDirectionToVectors[direction].y < 0) *y -= dy2; } @@ -7554,12 +7568,12 @@ void GroundEffect_MoveOnLongGrass(struct EventObject *eventObj, struct Sprite *s void GroundEffect_WaterReflection(struct EventObject *eventObj, struct Sprite *sprite) { - SetUpReflection(eventObj, sprite, 0); + InitObjectReflectionSprite(eventObj, sprite, 0); } void GroundEffect_IceReflection(struct EventObject *eventObj, struct Sprite *sprite) { - SetUpReflection(eventObj, sprite, 1); + InitObjectReflectionSprite(eventObj, sprite, 1); } void GroundEffect_FlowingWater(struct EventObject *eventObj, struct Sprite *sprite) @@ -7655,8 +7669,12 @@ void GroundEffect_JumpOnTallGrass(struct EventObject *eventObj, struct Sprite *s gFieldEffectArguments[3] = 2; FieldEffectStart(FLDEFF_JUMP_TALL_GRASS); - spriteId = sub_8126FF0( - eventObj->localId, eventObj->mapNum, eventObj->mapGroup, eventObj->currentCoords.x, eventObj->currentCoords.y); + spriteId = FindTallGrassFieldEffectSpriteId( + eventObj->localId, + eventObj->mapNum, + eventObj->mapGroup, + eventObj->currentCoords.x, + eventObj->currentCoords.y); if (spriteId == MAX_SPRITES) GroundEffect_SpawnOnTallGrass(eventObj, sprite); @@ -7871,32 +7889,32 @@ void UnfreezeEventObjects(void) static void Step1(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += gDirectionToVectors[dir].x; - sprite->pos1.y += gDirectionToVectors[dir].y; + sprite->pos1.x += sDirectionToVectors[dir].x; + sprite->pos1.y += sDirectionToVectors[dir].y; } static void Step2(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 2 * (u16) gDirectionToVectors[dir].x; - sprite->pos1.y += 2 * (u16) gDirectionToVectors[dir].y; + sprite->pos1.x += 2 * (u16) sDirectionToVectors[dir].x; + sprite->pos1.y += 2 * (u16) sDirectionToVectors[dir].y; } static void Step3(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 2 * (u16) gDirectionToVectors[dir].x + (u16) gDirectionToVectors[dir].x; - sprite->pos1.y += 2 * (u16) gDirectionToVectors[dir].y + (u16) gDirectionToVectors[dir].y; + sprite->pos1.x += 2 * (u16) sDirectionToVectors[dir].x + (u16) sDirectionToVectors[dir].x; + sprite->pos1.y += 2 * (u16) sDirectionToVectors[dir].y + (u16) sDirectionToVectors[dir].y; } static void Step4(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 4 * (u16) gDirectionToVectors[dir].x; - sprite->pos1.y += 4 * (u16) gDirectionToVectors[dir].y; + sprite->pos1.x += 4 * (u16) sDirectionToVectors[dir].x; + sprite->pos1.y += 4 * (u16) sDirectionToVectors[dir].y; } static void Step8(struct Sprite *sprite, u8 dir) { - sprite->pos1.x += 8 * (u16) gDirectionToVectors[dir].x; - sprite->pos1.y += 8 * (u16) gDirectionToVectors[dir].y; + sprite->pos1.x += 8 * (u16) sDirectionToVectors[dir].x; + sprite->pos1.y += 8 * (u16) sDirectionToVectors[dir].y; } static void oamt_npc_ministep_reset(struct Sprite *sprite, u8 direction, u8 a3) diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 48d5dd82c..182f85d8d 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -567,14 +567,14 @@ static void Task_EvolutionScene(u8 taskID) case 3: // wait for cry, play tu du SE if (IsCryFinished()) { - PlaySE(BGM_ME_SHINKA); + PlaySE(MUS_ME_SHINKA); gTasks[taskID].tState++; } break; case 4: // play evolution music and fade screen black if (!IsSEPlaying()) { - PlayNewMapMusic(BGM_SHINKA); + PlayNewMapMusic(MUS_SHINKA); gTasks[taskID].tState++; BeginNormalPaletteFade(0x1C, 4, 0, 16, RGB(0, 0, 0)); } @@ -642,7 +642,7 @@ static void Task_EvolutionScene(u8 taskID) { StringExpandPlaceholders(gStringVar4, BattleText_FinishEvo); Text_InitWindow8002EB0(&gUnknown_03004210, gStringVar4, 144, 2, 15); - PlayBGM(BGM_FANFA5); + PlayBGM(MUS_FANFA5); gTasks[taskID].tState++; SetMonData(mon, MON_DATA_SPECIES, (void*)(&gTasks[taskID].tPostEvoSpecies)); CalculateMonStats(mon); @@ -719,7 +719,7 @@ static void Task_EvolutionScene(u8 taskID) if (gUnknown_03004210.state == 0 && !IsSEPlaying()) { sub_8024CEC(); - PlayFanfare(BGM_FANFA1); + PlayFanfare(MUS_FANFA1); StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[3]); Text_InitWindow8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); gTasks[taskID].tLearnsFirstMove = 0x40; // re-used as a counter @@ -908,15 +908,15 @@ static void Task_TradeEvolutionScene(u8 taskID) case 2: if (IsCryFinished()) { - m4aSongNumStop(BGM_SHINKA); - PlaySE(BGM_ME_SHINKA); + m4aSongNumStop(MUS_SHINKA); + PlaySE(MUS_ME_SHINKA); gTasks[taskID].tState++; } break; case 3: if (!IsSEPlaying()) { - PlayBGM(BGM_SHINKA); + PlayBGM(MUS_SHINKA); gTasks[taskID].tState++; BeginNormalPaletteFade(0x1C, 4, 0, 16, RGB(0, 0, 0)); } @@ -984,7 +984,7 @@ static void Task_TradeEvolutionScene(u8 taskID) { StringExpandPlaceholders(gStringVar4, BattleText_FinishEvo); Text_InitWindow8002EB0(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15); - PlayFanfare(BGM_FANFA5); + PlayFanfare(MUS_FANFA5); gTasks[taskID].tState++; SetMonData(mon, MON_DATA_SPECIES, (void*)(&gTasks[taskID].tPostEvoSpecies)); CalculateMonStats(mon); @@ -1016,7 +1016,7 @@ static void Task_TradeEvolutionScene(u8 taskID) } else { - PlayBGM(BGM_SHINKA); + PlayBGM(MUS_SHINKA); Text_InitWindow8002EB0(&gUnknown_03004828->window, gOtherText_LinkStandby2, gUnknown_03004828->textWindowBaseTileNum, 2, 15); gTasks[taskID].tState++; } @@ -1033,7 +1033,7 @@ static void Task_TradeEvolutionScene(u8 taskID) if (gUnknown_03004828->window.state == 0 && !IsSEPlaying()) { sub_8024CEC(); - PlayFanfare(BGM_FANFA1); + PlayFanfare(MUS_FANFA1); StrCpyDecodeToDisplayedStringBattle(gBattleStringsTable[3]); Text_InitWindow8002EB0(&gUnknown_03004828->window, gDisplayedStringBattle, gUnknown_03004828->textWindowBaseTileNum, 2, 15); gTasks[taskID].tLearnsFirstMove = 0x40; // re-used as a counter diff --git a/src/field_camera.c b/src/field_camera.c index fa8f1a582..29cdf0496 100644 --- a/src/field_camera.c +++ b/src/field_camera.c @@ -24,18 +24,18 @@ static s16 sVerticalCameraPan; static u8 gUnknown_0300059C; static void (*sFieldCameraPanningCallback)(void); -struct FieldCamera gFieldCamera; -u16 gTotalCameraPixelOffsetY; -u16 gTotalCameraPixelOffsetX; - -static void RedrawMapSliceNorth(struct FieldCameraOffset*, struct MapData*); -static void RedrawMapSliceSouth(struct FieldCameraOffset*, struct MapData*); -static void RedrawMapSliceEast(struct FieldCameraOffset*, struct MapData*); -static void RedrawMapSliceWest(struct FieldCameraOffset*, struct MapData*); +extern struct FieldCamera gFieldCamera; +extern u16 gTotalCameraPixelOffsetY; +extern u16 gTotalCameraPixelOffsetX; + +static void RedrawMapSliceNorth(struct FieldCameraOffset*, struct MapLayout*); +static void RedrawMapSliceSouth(struct FieldCameraOffset*, struct MapLayout*); +static void RedrawMapSliceEast(struct FieldCameraOffset*, struct MapLayout*); +static void RedrawMapSliceWest(struct FieldCameraOffset*, struct MapLayout*); static s32 MapPosToBgTilemapOffset(struct FieldCameraOffset*, s32, s32); -static void DrawWholeMapViewInternal(int x, int y, struct MapData*); -static void DrawMetatileAt(struct MapData*, u16, int, int); +static void DrawWholeMapViewInternal(int x, int y, struct MapLayout*); +static void DrawMetatileAt(struct MapLayout*, u16, int, int); static void DrawMetatile(s32, u16*, u16); static void CameraPanningCB_PanAhead(void); @@ -96,11 +96,11 @@ void sub_8057B14(u16 *a, u16 *b) void DrawWholeMapView(void) { - DrawWholeMapViewInternal(gSaveBlock1.pos.x, gSaveBlock1.pos.y, gMapHeader.mapData); + DrawWholeMapViewInternal(gSaveBlock1.pos.x, gSaveBlock1.pos.y, gMapHeader.mapLayout); sFieldCameraOffset.copyBGToVRAM = TRUE; } -static void DrawWholeMapViewInternal(int x, int y, struct MapData *mapData) +static void DrawWholeMapViewInternal(int x, int y, struct MapLayout *mapLayout) { u8 i; u8 j; @@ -118,27 +118,27 @@ static void DrawWholeMapViewInternal(int x, int y, struct MapData *mapData) temp = sFieldCameraOffset.xTileOffset + j; if (temp >= 32) temp -= 32; - DrawMetatileAt(mapData, r6 + temp, x + j / 2, y + i / 2); + DrawMetatileAt(mapLayout, r6 + temp, x + j / 2, y + i / 2); } } } static void RedrawMapSlicesForCameraUpdate(struct FieldCameraOffset *cameraOffset, int x, int y) { - struct MapData *mapData = gMapHeader.mapData; + struct MapLayout *mapLayout = gMapHeader.mapLayout; if (x > 0) - RedrawMapSliceWest(cameraOffset, mapData); + RedrawMapSliceWest(cameraOffset, mapLayout); if (x < 0) - RedrawMapSliceEast(cameraOffset, mapData); + RedrawMapSliceEast(cameraOffset, mapLayout); if (y > 0) - RedrawMapSliceNorth(cameraOffset, mapData); + RedrawMapSliceNorth(cameraOffset, mapLayout); if (y < 0) - RedrawMapSliceSouth(cameraOffset, mapData); + RedrawMapSliceSouth(cameraOffset, mapLayout); cameraOffset->copyBGToVRAM = TRUE; } -static void RedrawMapSliceNorth(struct FieldCameraOffset *cameraOffset, struct MapData *mapData) +static void RedrawMapSliceNorth(struct FieldCameraOffset *cameraOffset, struct MapLayout *mapLayout) { u8 i; u8 temp; @@ -153,11 +153,11 @@ static void RedrawMapSliceNorth(struct FieldCameraOffset *cameraOffset, struct M temp = cameraOffset->xTileOffset + i; if (temp >= 32) temp -= 32; - DrawMetatileAt(mapData, r7 + temp, gSaveBlock1.pos.x + i / 2, gSaveBlock1.pos.y + 14); + DrawMetatileAt(mapLayout, r7 + temp, gSaveBlock1.pos.x + i / 2, gSaveBlock1.pos.y + 14); } } -static void RedrawMapSliceSouth(struct FieldCameraOffset *cameraOffset, struct MapData *mapData) +static void RedrawMapSliceSouth(struct FieldCameraOffset *cameraOffset, struct MapLayout *mapLayout) { u8 i; u8 temp; @@ -168,11 +168,11 @@ static void RedrawMapSliceSouth(struct FieldCameraOffset *cameraOffset, struct M temp = cameraOffset->xTileOffset + i; if (temp >= 32) temp -= 32; - DrawMetatileAt(mapData, r7 + temp, gSaveBlock1.pos.x + i / 2, gSaveBlock1.pos.y); + DrawMetatileAt(mapLayout, r7 + temp, gSaveBlock1.pos.x + i / 2, gSaveBlock1.pos.y); } } -static void RedrawMapSliceEast(struct FieldCameraOffset *cameraOffset, struct MapData *mapData) +static void RedrawMapSliceEast(struct FieldCameraOffset *cameraOffset, struct MapLayout *mapLayout) { u8 i; u8 temp; @@ -183,11 +183,11 @@ static void RedrawMapSliceEast(struct FieldCameraOffset *cameraOffset, struct Ma temp = cameraOffset->yTileOffset + i; if (temp >= 32) temp -= 32; - DrawMetatileAt(mapData, temp * 32 + r6, gSaveBlock1.pos.x, gSaveBlock1.pos.y + i / 2); + DrawMetatileAt(mapLayout, temp * 32 + r6, gSaveBlock1.pos.x, gSaveBlock1.pos.y + i / 2); } } -static void RedrawMapSliceWest(struct FieldCameraOffset *cameraOffset, struct MapData *mapData) +static void RedrawMapSliceWest(struct FieldCameraOffset *cameraOffset, struct MapLayout *mapLayout) { u8 i; u8 temp; @@ -200,7 +200,7 @@ static void RedrawMapSliceWest(struct FieldCameraOffset *cameraOffset, struct Ma temp = cameraOffset->yTileOffset + i; if (temp >= 32) temp -= 32; - DrawMetatileAt(mapData, temp * 32 + r5, gSaveBlock1.pos.x + 14, gSaveBlock1.pos.y + i / 2); + DrawMetatileAt(mapLayout, temp * 32 + r5, gSaveBlock1.pos.x + 14, gSaveBlock1.pos.y + i / 2); } } @@ -210,7 +210,7 @@ void CurrentMapDrawMetatileAt(int x, int y) if (offset >= 0) { - DrawMetatileAt(gMapHeader.mapData, offset, x, y); + DrawMetatileAt(gMapHeader.mapLayout, offset, x, y); sFieldCameraOffset.copyBGToVRAM = TRUE; } } @@ -226,7 +226,7 @@ void DrawDoorMetatileAt(int x, int y, u16 *arr) } } -static void DrawMetatileAt(struct MapData *mapData, u16 offset, int x, int y) +static void DrawMetatileAt(struct MapLayout *mapLayout, u16 offset, int x, int y) { u16 *metatiles; u16 metatileId = MapGridGetMetatileIdAt(x, y); @@ -236,11 +236,11 @@ static void DrawMetatileAt(struct MapData *mapData, u16 offset, int x, int y) if (metatileId < 0x200) { - metatiles = mapData->primaryTileset->metatiles; + metatiles = mapLayout->primaryTileset->metatiles; } else { - metatiles = mapData->secondaryTileset->metatiles; + metatiles = mapLayout->secondaryTileset->metatiles; metatileId -= 0x200; } diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 273378c14..a973b80ca 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -356,7 +356,7 @@ u8 *GetInteractedLinkPlayerScript(struct MapPosition *position, u8 metatileBehav if (!MetatileBehavior_IsCounter(MapGridGetMetatileBehaviorAt(position->x, position->y))) eventObjectId = GetEventObjectIdByXYZ(position->x, position->y, position->height); else - eventObjectId = GetEventObjectIdByXYZ(position->x + gUnknown_0821664C[direction].x, position->y + gUnknown_0821664C[direction].y, position->height); + eventObjectId = GetEventObjectIdByXYZ(position->x + gDirectionToVectors[direction].x, position->y + gDirectionToVectors[direction].y, position->height); if (eventObjectId == 16 || gEventObjects[eventObjectId].localId == 0xFF) return NULL; @@ -385,7 +385,7 @@ static u8 *GetInteractedEventObjectScript(struct MapPosition *position, u8 metat return NULL; // Look for an event object on the other side of the counter. - eventObjectId = GetEventObjectIdByXYZ(position->x + gUnknown_0821664C[direction].x, position->y + gUnknown_0821664C[direction].y, position->height); + eventObjectId = GetEventObjectIdByXYZ(position->x + gDirectionToVectors[direction].x, position->y + gDirectionToVectors[direction].y, position->height); if (eventObjectId == 16 || gEventObjects[eventObjectId].localId == 0xFF) return NULL; } @@ -680,7 +680,7 @@ static bool8 mapheader_run_first_tag2_script_list_match_conditionally(struct Map if (IsArrowWarpMetatileBehavior(metatileBehavior, direction) == TRUE && warpEventId != -1) { - walkrun_find_lowest_active_bit_in_bitfield(); + StoreInitialPlayerAvatarState(); sub_8068C30(&gMapHeader, warpEventId, position); sub_8080E88(); return TRUE; @@ -694,7 +694,7 @@ bool8 TryStartWarpEventScript(struct MapPosition *position, u16 metatileBehavior if (warpEventId != -1 && IsWarpMetatileBehavior(metatileBehavior) == TRUE) { - walkrun_find_lowest_active_bit_in_bitfield(); + StoreInitialPlayerAvatarState(); sub_8068C30(&gMapHeader, warpEventId, position); if (MetatileBehavior_IsEscalator(metatileBehavior) == TRUE) { @@ -798,7 +798,7 @@ static bool8 map_warp_consider_2_to_inside(struct MapPosition *position, u16 met warpEventId = FindWarpEventByPosition(&gMapHeader, position); if (warpEventId != -1 && IsWarpMetatileBehavior(metatileBehavior) == TRUE) { - walkrun_find_lowest_active_bit_in_bitfield(); + StoreInitialPlayerAvatarState(); sub_8068C30(&gMapHeader, warpEventId, position); sub_8080EF0(); return TRUE; @@ -894,7 +894,7 @@ bool8 dive_warp(struct MapPosition *position, u16 metatileBehavior) { if (SetDiveWarpEmerge(position->x - 7, position->y - 7)) { - walkrun_find_lowest_active_bit_in_bitfield(); + StoreInitialPlayerAvatarState(); sp13E_warp_to_last_warp(); PlaySE(SE_W291); return TRUE; @@ -904,7 +904,7 @@ bool8 dive_warp(struct MapPosition *position, u16 metatileBehavior) { if (SetDiveWarpDive(position->x - 7, position->y - 7)) { - walkrun_find_lowest_active_bit_in_bitfield(); + StoreInitialPlayerAvatarState(); sp13E_warp_to_last_warp(); PlaySE(SE_W291); return TRUE; diff --git a/src/field_effect.c b/src/field_effect.c index 91794a07a..90c11b8c3 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -306,9 +306,11 @@ bool8 (*const gUnknown_0839F364[])(struct Task *, struct EventObject *, struct S sub_80877D4 }; -void (*const gUnknown_0839F378[])(struct Task *) = { - sub_80878F4, - sub_8087914 +static void EscapeRopeFieldEffect_Step0(struct Task *); +static void EscapeRopeFieldEffect_Step1(struct Task *); +void (*const gEscapeRopeFieldEffectFuncs[])(struct Task *) = { + EscapeRopeFieldEffect_Step0, + EscapeRopeFieldEffect_Step1 }; static u8 sActiveList[32]; @@ -918,7 +920,7 @@ void PokeballGlowEffect_1(struct Sprite *sprite) sprite->data[3] = 0; if (sprite->data[5]) { - PlayFanfare(BGM_ME_ASA); + PlayFanfare(MUS_ME_ASA); } } } @@ -1107,7 +1109,7 @@ void task00_8084310(u8 taskId) if (!FieldEffectActiveListContains(FLDEFF_USE_FLY)) { Overworld_ResetStateAfterFly(); - warp_in(); + WarpIntoMap(); SetMainCallback2(CB2_LoadMap); gFieldCallback = mapldr_08084390; DestroyTask(taskId); @@ -1150,7 +1152,6 @@ void c3_080843F8(u8 taskId) } } -extern void pal_fill_for_map_transition(void); void sub_8086774(u8); extern void CameraObjectReset2(void); extern void CameraObjectReset1(void); @@ -1286,14 +1287,13 @@ bool8 sub_80869F8(struct Task *task) void sub_8086A68(u8); extern void sub_80B4824(u8); -extern void sub_8053FF8(void); -extern void fade_8080918(void); +extern void TryFadeOutOldMapMusic(void); void sub_8086B98(struct Task *); void sub_8086BE4(struct Task *); void sub_8086C30(void); void sub_8086C40(void); -bool8 sub_8054034(void); +bool8 BGMusicStopped(void); void sub_8086C94(void); void sub_80B483C(void); void sub_8086CBC(u8); @@ -1408,16 +1408,16 @@ void sub_8086BE4(struct Task *task) void sub_8086C30(void) { - sub_8053FF8(); - fade_8080918(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); } void sub_8086C40(void) { - if (!gPaletteFade.active && sub_8054034() == TRUE) + if (!gPaletteFade.active && BGMusicStopped() == TRUE) { sub_80B483C(); - warp_in(); + WarpIntoMap(); gFieldCallback = sub_8086C94; SetMainCallback2(CB2_LoadMap); DestroyTask(FindTaskIdByFunc(sub_8086A68)); @@ -1767,17 +1767,17 @@ bool8 sub_80872E4(struct Task *task, struct EventObject *eventObject, struct Spr bool8 sub_80873D8(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { - sub_8053FF8(); - fade_8080918(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); task->data[0]++; return FALSE; } bool8 sub_80873F4(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { - if (!gPaletteFade.active && sub_8054034() == TRUE) + if (!gPaletteFade.active && BGMusicStopped() == TRUE) { - warp_in(); + WarpIntoMap(); gFieldCallback = mapldr_080851BC; SetMainCallback2(CB2_LoadMap); DestroyTask(FindTaskIdByFunc(sub_80871D0)); @@ -1930,21 +1930,21 @@ bool8 sub_80877AC(struct Task *task, struct EventObject *eventObject, struct Spr { if (!FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH)) { - sub_8053FF8(); - fade_8080918(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); task->data[0]++; } return FALSE; } -void sub_80878C4(u8); +static void DoEscapeRopeFieldEffect(u8); void mapldr_080859D4(void); bool8 sub_80877D4(struct Task *task, struct EventObject *eventObject, struct Sprite *sprite) { - if (!gPaletteFade.active && sub_8054034() == TRUE) + if (!gPaletteFade.active && BGMusicStopped() == TRUE) { - warp_in(); + WarpIntoMap(); gFieldCallback = sub_8086748; SetMainCallback2(CB2_LoadMap); DestroyTask(FindTaskIdByFunc(sub_808766C)); @@ -1970,52 +1970,60 @@ void sub_808788C(struct Sprite *sprite) } } -void sub_80878A8(void) +void StartEscapeRopeFieldEffect(void) { ScriptContext2_Enable(); FreezeEventObjects(); - CreateTask(sub_80878C4, 0x50); + CreateTask(DoEscapeRopeFieldEffect, 0x50); } -void sub_80878C4(u8 taskId) +static void DoEscapeRopeFieldEffect(u8 taskId) { - gUnknown_0839F378[gTasks[taskId].data[0]](&gTasks[taskId]); + gEscapeRopeFieldEffectFuncs[gTasks[taskId].data[0]](&gTasks[taskId]); } -void sub_80878F4(struct Task *task) +static void EscapeRopeFieldEffect_Step0(struct Task *task) { task->data[0]++; task->data[14] = 64; task->data[15] = GetPlayerFacingDirection(); } -void sub_8087914(struct Task *task) +static void EscapeRopeFieldEffect_Step1(struct Task *task) { struct EventObject *eventObject; - u8 unknown_0839F380[5] = {1, 3, 4, 2, 1}; + u8 clockwiseDirections[5] = { + DIR_SOUTH, + DIR_WEST, + DIR_EAST, + DIR_NORTH, + DIR_SOUTH, + }; + if (task->data[14] != 0 && (--task->data[14]) == 0) { - sub_8053FF8(); - fade_8080918(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); } + eventObject = &gEventObjects[gPlayerAvatar.eventObjectId]; if (!EventObjectIsMovementOverridden(eventObject) || EventObjectClearHeldMovementIfFinished(eventObject)) { - if (task->data[14] == 0 && !gPaletteFade.active && sub_8054034() == TRUE) + if (task->data[14] == 0 && !gPaletteFade.active && BGMusicStopped() == TRUE) { SetEventObjectDirection(eventObject, task->data[15]); sub_8053678(); - warp_in(); + WarpIntoMap(); gFieldCallback = mapldr_080859D4; SetMainCallback2(CB2_LoadMap); - DestroyTask(FindTaskIdByFunc(sub_80878C4)); - } else if (task->data[1] == 0 || (--task->data[1]) == 0) + DestroyTask(FindTaskIdByFunc(DoEscapeRopeFieldEffect)); + } + else if (task->data[1] == 0 || (--task->data[1]) == 0) { - EventObjectSetHeldMovement(eventObject, GetFaceDirectionMovementAction(unknown_0839F380[eventObject->facingDirection])); + EventObjectSetHeldMovement(eventObject, GetFaceDirectionMovementAction(clockwiseDirections[eventObject->facingDirection])); if (task->data[2] < 12) - { task->data[2]++; - } + task->data[1] = 8 >> (task->data[2] >> 2); } } @@ -2157,17 +2165,17 @@ static void TeleportFieldEffectTask3(struct Task *task) if (task->data[4] >= 0xa8) { task->data[0]++; - sub_8053FF8(); - fade_8080918(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); } } static void TeleportFieldEffectTask4(struct Task *task) { - if (!gPaletteFade.active && sub_8054034() == TRUE) + if (!gPaletteFade.active && BGMusicStopped() == TRUE) { Overworld_SetWarpDestToLastHealLoc(); - warp_in(); + WarpIntoMap(); SetMainCallback2(CB2_LoadMap); gFieldCallback = mapldr_08085D88; DestroyTask(FindTaskIdByFunc(ExecuteTeleportFieldEffectTask)); @@ -3062,7 +3070,7 @@ void sub_8088F10(struct Task *task) { if (sub_8088FA4(task->data[1])) { - fade_8080918(); + WarpFadeScreen(); task->data[0]++; } } diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 73082bdb7..84f340b35 100644 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -11,148 +11,153 @@ #include "constants/field_effects.h" #include "constants/songs.h" -static void sub_81269E0(struct Sprite *); -static void npc_pal_op(struct EventObject *eventObject, struct Sprite *sprite); -static void npc_pal_op_A(struct EventObject *, u8); -static void npc_pal_op_B(struct EventObject *, u8); -static void sub_81275A0(struct Sprite *); -static void sub_81275C4(struct Sprite *); -static void sub_8127DA0(struct Sprite *); -static void sub_8127DD0(struct Sprite *); -static void sub_8127E30(struct Sprite *); +static void UpdateObjectReflectionSprite(struct Sprite *); +static void LoadObjectReflectionPalette(struct EventObject *eventObject, struct Sprite *sprite); +static void LoadObjectHighBridgeReflectionPalette(struct EventObject *, u8); +static void LoadObjectRegularReflectionPalette(struct EventObject *, u8); +static void FadeFootprintsTireTracks_Step0(struct Sprite *); +static void FadeFootprintsTireTracks_Step1(struct Sprite *); +static void UpdateAshFieldEffect_Step0(struct Sprite *); +static void UpdateAshFieldEffect_Step1(struct Sprite *); +static void UpdateAshFieldEffect_Step2(struct Sprite *); static void sub_812882C(struct Sprite *, u8, u8); -static void sub_81278D8(struct Sprite *); +static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite *); static void sub_8127FD4(struct EventObject *, struct Sprite *); static void sub_812800C(struct EventObject *, struct Sprite *); static void sub_81280A0(struct EventObject *, struct Sprite *, struct Sprite *); static void sub_8128174(struct Sprite *); static u32 ShowDisguiseFieldEffect(u8, u8, u8); -void SetUpReflection(struct EventObject *eventObject, struct Sprite *sprite, bool8 flag) +void InitObjectReflectionSprite(struct EventObject *eventObject, struct Sprite *sprite, bool8 stillReflection) { - struct Sprite *newSprite; + struct Sprite *reflectionSprite; - newSprite = &gSprites[obj_unfreeze(sprite, sprite->pos1.x, sprite->pos1.y, 0x98)]; - newSprite->callback = sub_81269E0; - newSprite->oam.priority = 3; - newSprite->oam.paletteNum = gUnknown_0830FD14[newSprite->oam.paletteNum]; - newSprite->usingSheet = TRUE; - newSprite->anims = gDummySpriteAnimTable; - StartSpriteAnim(newSprite, 0); - newSprite->affineAnims = gDummySpriteAffineAnimTable; - newSprite->affineAnimBeginning = TRUE; - newSprite->subspriteMode = 0; - newSprite->data[0] = sprite->data[0]; - newSprite->data[1] = eventObject->localId; - newSprite->data[7] = flag; - npc_pal_op(eventObject, newSprite); - if (!flag) - { - newSprite->oam.affineMode = 1; - } + reflectionSprite = &gSprites[CreateCopySpriteAt(sprite, sprite->pos1.x, sprite->pos1.y, 0x98)]; + reflectionSprite->callback = UpdateObjectReflectionSprite; + reflectionSprite->oam.priority = 3; + reflectionSprite->oam.paletteNum = gReflectionEffectPaletteMap[reflectionSprite->oam.paletteNum]; + reflectionSprite->usingSheet = TRUE; + reflectionSprite->anims = gDummySpriteAnimTable; + StartSpriteAnim(reflectionSprite, 0); + reflectionSprite->affineAnims = gDummySpriteAffineAnimTable; + reflectionSprite->affineAnimBeginning = TRUE; + reflectionSprite->subspriteMode = SUBSPRITES_OFF; + reflectionSprite->data[0] = sprite->data[0]; + reflectionSprite->data[1] = eventObject->localId; + reflectionSprite->data[7] = stillReflection; + LoadObjectReflectionPalette(eventObject, reflectionSprite); + + if (!stillReflection) + reflectionSprite->oam.affineMode = ST_OAM_AFFINE_NORMAL; } -static s16 sub_81268D0(struct EventObject *eventObject) +static s16 GetReflectionVerticalOffset(struct EventObject *eventObject) { return GetEventObjectGraphicsInfo(eventObject->graphicsId)->height - 2; } -static void npc_pal_op(struct EventObject *eventObject, struct Sprite *sprite) +static void LoadObjectReflectionPalette(struct EventObject *eventObject, struct Sprite *sprite) { - u8 whichElement; - u16 unk_8041e2c[] = {0x0c, 0x1c, 0x2c}; + u8 bridgeType; + u16 bridgeReflectionVerticalOffsets[] = { 12, 28, 44 }; sprite->data[2] = 0; - if (!GetEventObjectGraphicsInfo(eventObject->graphicsId)->disableReflectionPaletteLoad && ((whichElement = MetatileBehavior_GetBridgeType(eventObject->previousMetatileBehavior)) || (whichElement = MetatileBehavior_GetBridgeType(eventObject->currentMetatileBehavior)))) + if (!GetEventObjectGraphicsInfo(eventObject->graphicsId)->disableReflectionPaletteLoad && ((bridgeType = MetatileBehavior_GetBridgeType(eventObject->previousMetatileBehavior)) || (bridgeType = MetatileBehavior_GetBridgeType(eventObject->currentMetatileBehavior)))) { - sprite->data[2] = unk_8041e2c[whichElement - 1]; - npc_pal_op_A(eventObject, sprite->oam.paletteNum); + sprite->data[2] = bridgeReflectionVerticalOffsets[bridgeType - 1]; + LoadObjectHighBridgeReflectionPalette(eventObject, sprite->oam.paletteNum); } else { - npc_pal_op_B(eventObject, sprite->oam.paletteNum); + LoadObjectRegularReflectionPalette(eventObject, sprite->oam.paletteNum); } } -static void npc_pal_op_B(struct EventObject *eventObject, u8 paletteNum) +static void LoadObjectRegularReflectionPalette(struct EventObject *eventObject, u8 paletteIndex) { const struct EventObjectGraphicsInfo *graphicsInfo; graphicsInfo = GetEventObjectGraphicsInfo(eventObject->graphicsId); - if (graphicsInfo->paletteTag2 != 0x11ff) + if (graphicsInfo->bridgeReflectionPaletteTag != 0x11ff) { if (graphicsInfo->paletteSlot == 0) { - npc_load_two_palettes__no_record(graphicsInfo->paletteTag1, paletteNum); + LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag, paletteIndex); } else if (graphicsInfo->paletteSlot == 10) { - npc_load_two_palettes__and_record(graphicsInfo->paletteTag1, paletteNum); + LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, paletteIndex); } else { - pal_patch_for_npc(npc_paltag_by_palslot(paletteNum), paletteNum); + PatchObjectPalette(GetObjectPaletteTag(paletteIndex), paletteIndex); } - UpdateSpritePaletteWithWeather(paletteNum); + UpdateSpritePaletteWithWeather(paletteIndex); } } -static void npc_pal_op_A(struct EventObject *eventObject, u8 paletteNum) +// When walking on a bridge high above water (Route 120), the reflection is a solid dark blue color. +// This is so the sprite blends in with the dark water metatile underneath the bridge. +static void LoadObjectHighBridgeReflectionPalette(struct EventObject *eventObject, u8 paletteNum) { const struct EventObjectGraphicsInfo *graphicsInfo; graphicsInfo = GetEventObjectGraphicsInfo(eventObject->graphicsId); - if (graphicsInfo->paletteTag2 != 0x11ff) + if (graphicsInfo->bridgeReflectionPaletteTag != 0x11ff) { - pal_patch_for_npc(graphicsInfo->paletteTag2, paletteNum); + PatchObjectPalette(graphicsInfo->bridgeReflectionPaletteTag, paletteNum); UpdateSpritePaletteWithWeather(paletteNum); } } -static void sub_81269E0(struct Sprite *sprite) +static void UpdateObjectReflectionSprite(struct Sprite *reflectionSprite) { struct EventObject *eventObject; - struct Sprite *oldSprite; + struct Sprite *mainSprite; - eventObject = &gEventObjects[sprite->data[0]]; - oldSprite = &gSprites[eventObject->spriteId]; - if (!eventObject->active || !eventObject->hasReflection || eventObject->localId != sprite->data[1]) + eventObject = &gEventObjects[reflectionSprite->data[0]]; + mainSprite = &gSprites[eventObject->spriteId]; + if (!eventObject->active || !eventObject->hasReflection || eventObject->localId != reflectionSprite->data[1]) { - sprite->inUse = FALSE; + reflectionSprite->inUse = FALSE; } else { - sprite->oam.paletteNum = gUnknown_0830FD14[oldSprite->oam.paletteNum]; - sprite->oam.shape = oldSprite->oam.shape; - sprite->oam.size = oldSprite->oam.size; - sprite->oam.matrixNum = oldSprite->oam.matrixNum | 0x10; - sprite->oam.tileNum = oldSprite->oam.tileNum; - sprite->subspriteTables = oldSprite->subspriteTables; - sprite->subspriteTableNum = oldSprite->subspriteTableNum; - sprite->invisible = oldSprite->invisible; - sprite->pos1.x = oldSprite->pos1.x; - sprite->pos1.y = oldSprite->pos1.y + sub_81268D0(eventObject) + sprite->data[2]; - sprite->centerToCornerVecX = oldSprite->centerToCornerVecX; - sprite->centerToCornerVecY = oldSprite->centerToCornerVecY; - sprite->pos2.x = oldSprite->pos2.x; - sprite->pos2.y = -oldSprite->pos2.y; - sprite->coordOffsetEnabled = oldSprite->coordOffsetEnabled; - if (sprite->data[7] == FALSE) + reflectionSprite->oam.paletteNum = gReflectionEffectPaletteMap[mainSprite->oam.paletteNum]; + reflectionSprite->oam.shape = mainSprite->oam.shape; + reflectionSprite->oam.size = mainSprite->oam.size; + reflectionSprite->oam.matrixNum = mainSprite->oam.matrixNum | 0x10; + reflectionSprite->oam.tileNum = mainSprite->oam.tileNum; + reflectionSprite->subspriteTables = mainSprite->subspriteTables; + reflectionSprite->subspriteTableNum = mainSprite->subspriteTableNum; + reflectionSprite->invisible = mainSprite->invisible; + reflectionSprite->pos1.x = mainSprite->pos1.x; + // reflectionSprite->data[2] holds an additional vertical offset, used by the high bridges on Route 120 + reflectionSprite->pos1.y = mainSprite->pos1.y + GetReflectionVerticalOffset(eventObject) + reflectionSprite->data[2]; + reflectionSprite->centerToCornerVecX = mainSprite->centerToCornerVecX; + reflectionSprite->centerToCornerVecY = mainSprite->centerToCornerVecY; + reflectionSprite->pos2.x = mainSprite->pos2.x; + reflectionSprite->pos2.y = -mainSprite->pos2.y; + reflectionSprite->coordOffsetEnabled = mainSprite->coordOffsetEnabled; + + // Check if the reflection is not still. + if (reflectionSprite->data[7] == FALSE) { - sprite->oam.matrixNum = 0; - if (oldSprite->oam.matrixNum & 0x8) - { - sprite->oam.matrixNum = 1; - } + // Sets the reflection sprite's rot/scale matrix to the appropriate + // matrix based on whether or not the main sprite is horizontally flipped. + // If the sprite is facing to the east, then it is flipped, and its matrixNum is 8. + reflectionSprite->oam.matrixNum = 0; + if (mainSprite->oam.matrixNum & 0x8) + reflectionSprite->oam.matrixNum = 1; } } } -u8 sub_8126B54(void) +u8 CreateWarpArrowSprite(void) { u8 spriteId; struct Sprite *sprite; - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[8] /*gFieldEffectSpriteTemplate_Arrow*/, 0, 0, 0x52); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[8], 0, 0, 0x52); if (spriteId != MAX_SPRITES) { sprite = &gSprites[spriteId]; @@ -163,12 +168,12 @@ u8 sub_8126B54(void) return spriteId; } -void objid_set_invisible(u8 spriteId) +void SetSpriteInvisible(u8 spriteId) { gSprites[spriteId].invisible = TRUE; } -void sub_8126BC4(u8 spriteId, u8 animNum, s16 x, s16 y) +void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y) { s16 x2; s16 y2; @@ -184,18 +189,18 @@ void sub_8126BC4(u8 spriteId, u8 animNum, s16 x, s16 y) sprite->invisible = FALSE; sprite->data[0] = x; sprite->data[1] = y; - StartSpriteAnim(sprite, animNum - 1); + StartSpriteAnim(sprite, direction - 1); } } -const u8 gUnknown_08401E32[] = { +const u8 gShadowEffectTemplateIds[] = { 0, 1, 2, 3 }; -const u16 gUnknown_08401E36[] = { +const u16 gShadowVerticalOffsets[] = { 4, 4, 4, @@ -210,19 +215,19 @@ u32 FldEff_Shadow(void) eventObjectId = GetEventObjectIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]); graphicsInfo = GetEventObjectGraphicsInfo(gEventObjects[eventObjectId].graphicsId); - spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[gUnknown_08401E32[graphicsInfo->shadowSize]], 0, 0, 0x94); + spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[gShadowEffectTemplateIds[graphicsInfo->shadowSize]], 0, 0, 0x94); if (spriteId != MAX_SPRITES) { gSprites[spriteId].coordOffsetEnabled = TRUE; gSprites[spriteId].data[0] = gFieldEffectArguments[0]; gSprites[spriteId].data[1] = gFieldEffectArguments[1]; gSprites[spriteId].data[2] = gFieldEffectArguments[2]; - gSprites[spriteId].data[3] = (graphicsInfo->height >> 1) - gUnknown_08401E36[graphicsInfo->shadowSize]; + gSprites[spriteId].data[3] = (graphicsInfo->height >> 1) - gShadowVerticalOffsets[graphicsInfo->shadowSize]; } return 0; } -void oamc_shadow(struct Sprite *sprite) +void UpdateShadowFieldEffect(struct Sprite *sprite) { u8 eventObjectId; struct EventObject *eventObject; @@ -239,7 +244,12 @@ void oamc_shadow(struct Sprite *sprite) sprite->oam.priority = linkedSprite->oam.priority; sprite->pos1.x = linkedSprite->pos1.x; sprite->pos1.y = linkedSprite->pos1.y + sprite->data[3]; - if (!eventObject->active || !eventObject->hasShadow || MetatileBehavior_IsPokeGrass(eventObject->currentMetatileBehavior) || MetatileBehavior_IsSurfableWaterOrUnderwater(eventObject->currentMetatileBehavior) || MetatileBehavior_IsSurfableWaterOrUnderwater(eventObject->previousMetatileBehavior) || MetatileBehavior_IsReflective(eventObject->currentMetatileBehavior) || MetatileBehavior_IsReflective(eventObject->previousMetatileBehavior)) + if (!eventObject->active || !eventObject->hasShadow + || MetatileBehavior_IsPokeGrass(eventObject->currentMetatileBehavior) + || MetatileBehavior_IsSurfableWaterOrUnderwater(eventObject->currentMetatileBehavior) + || MetatileBehavior_IsSurfableWaterOrUnderwater(eventObject->previousMetatileBehavior) + || MetatileBehavior_IsReflective(eventObject->currentMetatileBehavior) + || MetatileBehavior_IsReflective(eventObject->previousMetatileBehavior)) { FieldEffectStop(sprite, FLDEFF_SHADOW); } @@ -276,7 +286,7 @@ u32 FldEff_TallGrass(void) return 0; } -void unc_grass_normal(struct Sprite *sprite) +void UpdateTallGrassFieldEffect(struct Sprite *sprite) { u8 mapNum; u8 mapGroup; @@ -305,14 +315,12 @@ void unc_grass_normal(struct Sprite *sprite) { eventObject = &gEventObjects[eventObjectId]; if ((eventObject->currentCoords.x != sprite->data[1] || eventObject->currentCoords.y != sprite->data[2]) && (eventObject->previousCoords.x != sprite->data[1] || eventObject->previousCoords.y != sprite->data[2])) - { sprite->data[7] = TRUE; - } + metatileBehavior = 0; if (sprite->animCmdIndex == 0) - { metatileBehavior = 4; - } + UpdateEventObjectSpriteVisibility(sprite, 0); sub_812882C(sprite, sprite->data[0], metatileBehavior); } @@ -336,7 +344,7 @@ u32 FldEff_JumpTallGrass(void) return 0; } -u8 sub_8126FF0(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y) +u8 FindTallGrassFieldEffectSpriteId(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y) { struct Sprite *sprite; u8 i; @@ -346,12 +354,11 @@ u8 sub_8126FF0(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y) if (gSprites[i].inUse) { sprite = &gSprites[i]; - if (sprite->callback == unc_grass_normal && (x == sprite->data[1] && y == sprite->data[2]) && (localId == (u8)(sprite->data[3] >> 8) && mapNum == (sprite->data[3] & 0xFF) && mapGroup == sprite->data[4])) - { + if (sprite->callback == UpdateTallGrassFieldEffect && (x == sprite->data[1] && y == sprite->data[2]) && (localId == (u8)(sprite->data[3] >> 8) && mapNum == (sprite->data[3] & 0xFF) && mapGroup == sprite->data[4])) return i; - } } } + return MAX_SPRITES; } @@ -385,7 +392,7 @@ u32 FldEff_LongGrass(void) return 0; } -void unc_grass_tall(struct Sprite *sprite) +void UpdateLongGrassFieldEffect(struct Sprite *sprite) { u8 mapNum; u8 mapGroup; @@ -464,7 +471,7 @@ u32 FldEff_ShortGrass(void) return 0; } -void sub_8127334(struct Sprite *sprite) +void UpdateShortGrassFieldEffect(struct Sprite *sprite) { u8 eventObjectId; s16 x; @@ -554,29 +561,29 @@ u32 FldEff_BikeTireTracks(void) return spriteId; } -void (*const gUnknown_08401E40[])(struct Sprite *) = { - sub_81275A0, - sub_81275C4 +void (*const gFadeFootprintsTireTracksFuncs[])(struct Sprite *) = { + FadeFootprintsTireTracks_Step0, + FadeFootprintsTireTracks_Step1 }; -void sub_8127584(struct Sprite *sprite) +void UpdateFootprintsTireTracksFieldEffect(struct Sprite *sprite) { - gUnknown_08401E40[sprite->data[0]](sprite); + gFadeFootprintsTireTracksFuncs[sprite->data[0]](sprite); } -static void sub_81275A0(struct Sprite *sprite) +static void FadeFootprintsTireTracks_Step0(struct Sprite *sprite) { + // Wait 40 frames before the flickering starts. if (++sprite->data[1] > 40) - { sprite->data[0] = 1; - } + UpdateEventObjectSpriteVisibility(sprite, FALSE); } -static void sub_81275C4(struct Sprite *sprite) +static void FadeFootprintsTireTracks_Step1(struct Sprite *sprite) { sprite->invisible ^= 1; - sprite->data[1] ++; + sprite->data[1]++; UpdateEventObjectSpriteVisibility(sprite, sprite->invisible); if (sprite->data[1] > 56) { @@ -612,7 +619,7 @@ u32 FldEff_Splash(void) return 0; } -void sub_81276B4(struct Sprite *sprite) +void UpdateSplashFieldEffect(struct Sprite *sprite) { u8 eventObjectId; @@ -679,7 +686,7 @@ u32 FldEff_FeetInFlowingWater(void) { graphicsInfo = GetEventObjectGraphicsInfo(eventObject->graphicsId); sprite = &gSprites[spriteId]; - sprite->callback = sub_81278D8; + sprite->callback = UpdateFeetInFlowingWaterFieldEffect; sprite->coordOffsetEnabled = TRUE; sprite->oam.priority = gSprites[eventObject->spriteId].oam.priority; sprite->data[0] = gFieldEffectArguments[0]; @@ -693,7 +700,7 @@ u32 FldEff_FeetInFlowingWater(void) return 0; } -static void sub_81278D8(struct Sprite *sprite) +static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite *sprite) { u8 eventObjectId; struct Sprite *linkedSprite; @@ -763,7 +770,7 @@ u32 FldEff_HotSpringsWater(void) return 0; } -void sub_8127A7C(struct Sprite *sprite) +void UpdateHotSpringsWaterFieldEffect(struct Sprite *sprite) { u8 eventObjectId; const struct EventObjectGraphicsInfo *graphicsInfo; @@ -852,7 +859,7 @@ u32 FldEff_Unknown22(void) return 0; } -void ash(s16 x, s16 y, u16 c, s16 d) +void StartAshFieldEffect(s16 x, s16 y, u16 c, s16 d) { gFieldEffectArguments[0] = x; gFieldEffectArguments[1] = y; @@ -887,28 +894,26 @@ u32 FldEff_Ash(void) return 0; } -void (*const gUnknown_08401E48[])(struct Sprite *) = { - sub_8127DA0, - sub_8127DD0, - sub_8127E30 +void (*const gAshFieldEffectFuncs[])(struct Sprite *) = { + UpdateAshFieldEffect_Step0, + UpdateAshFieldEffect_Step1, + UpdateAshFieldEffect_Step2 }; -void sub_8127D84(struct Sprite *sprite) +void UpdateAshFieldEffect(struct Sprite *sprite) { - gUnknown_08401E48[sprite->data[0]](sprite); + gAshFieldEffectFuncs[sprite->data[0]](sprite); } -static void sub_8127DA0(struct Sprite *sprite) +static void UpdateAshFieldEffect_Step0(struct Sprite *sprite) { sprite->invisible = TRUE; sprite->animPaused = TRUE; if (--sprite->data[4] == 0) - { sprite->data[0] = 1; - } } -static void sub_8127DD0(struct Sprite *sprite) +static void UpdateAshFieldEffect_Step1(struct Sprite *sprite) { sprite->invisible = FALSE; sprite->animPaused = FALSE; @@ -918,13 +923,11 @@ static void sub_8127DD0(struct Sprite *sprite) sprite->data[0] = 2; } -static void sub_8127E30(struct Sprite *sprite) +static void UpdateAshFieldEffect_Step2(struct Sprite *sprite) { UpdateEventObjectSpriteVisibility(sprite, FALSE); if (sprite->animEnded) - { FieldEffectStop(sprite, FLDEFF_ASH); - } } u32 FldEff_SurfBlob(void) @@ -979,7 +982,7 @@ static u8 sub_8127F70(struct Sprite *sprite) return (sprite->data[0] & 0xF00) >> 8; } -void sub_8127F7C(struct Sprite *sprite) +void UpdateSurfBlobFieldEffect(struct Sprite *sprite) { struct EventObject *eventObject; struct Sprite *linkedSprite; @@ -994,11 +997,16 @@ void sub_8127F7C(struct Sprite *sprite) static void sub_8127FD4(struct EventObject *eventObject, struct Sprite *sprite) { - u8 unk_8041E54[] = {0, 0, 1, 2, 3}; + u8 surfBlobDirectionAnims[] = { + 0, // DIR_NONE + 0, // DIR_SOUTH + 1, // DIR_NORTH + 2, // DIR_WEST + 3, // DIR_EAST + }; + if (sub_8127F64(sprite) == 0) - { - StartSpriteAnimIfDifferent(sprite, unk_8041E54[eventObject->movementDirection]); - } + StartSpriteAnimIfDifferent(sprite, surfBlobDirectionAnims[eventObject->movementDirection]); } #ifdef NONMATCHING @@ -1211,7 +1219,7 @@ u32 FldEff_SandPile(void) return 0; } -void sub_81282E0(struct Sprite *sprite) +void UpdateSandPileFieldEffect(struct Sprite *sprite) { u8 eventObjectId; s16 x; @@ -1257,7 +1265,7 @@ u32 FldEff_Bubbles(void) return 0; } -void sub_8128410(struct Sprite *sprite) +void UpdateBubblesFieldEffect(struct Sprite *sprite) { sprite->data[0] += 0x80; sprite->data[0] &= 0x100; @@ -1289,19 +1297,19 @@ u32 FldEff_BerryTreeGrowthSparkle(void) u32 FldEff_TreeDisguise(void) { - return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, 0x18, 0x04); + return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, 24, 4); } u32 FldEff_MountainDisguise(void) { - return ShowDisguiseFieldEffect(FLDEFF_MOUNTAIN_DISGUISE, 0x19, 0x03); + return ShowDisguiseFieldEffect(FLDEFF_MOUNTAIN_DISGUISE, 25, 3); } u32 FldEff_SandDisguise(void) { - return ShowDisguiseFieldEffect(FLDEFF_SAND_DISGUISE, 0x1C, 0x02); + return ShowDisguiseFieldEffect(FLDEFF_SAND_DISGUISE, 28, 2); } static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 templateIdx, u8 paletteNum) @@ -1328,7 +1336,7 @@ static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 templateIdx, u8 paletteNum) return spriteId; } -void sub_81285AC(struct Sprite *sprite) +void UpdateDisguiseFieldEffect(struct Sprite *sprite) { u8 eventObjectId; const struct EventObjectGraphicsInfo *graphicsInfo; @@ -1406,27 +1414,25 @@ u32 FldEff_Sparkle(void) return 0; } -void sub_8128774(struct Sprite *sprite) +void UpdateSparkleFieldEffect(struct Sprite *sprite) { if (sprite->data[0] == 0) { if (sprite->animEnded) { sprite->invisible = TRUE; - sprite->data[0] ++; + sprite->data[0]++; } + if (sprite->data[0] == 0) - { return; - } } - if (++ sprite->data[1] >= 35) - { + + if (++sprite->data[1] > 34) FieldEffectStop(sprite, FLDEFF_SPARKLE); - } } -void sub_81287C4(struct Sprite *sprite) +void UpdateJumpLandingFieldEffect(struct Sprite *sprite) { if (sprite->animEnded) { @@ -1439,16 +1445,12 @@ void sub_81287C4(struct Sprite *sprite) } } -void sub_8128800(struct Sprite *sprite) +void WaitFieldEffectSpriteAnim(struct Sprite *sprite) { if (sprite->animEnded) - { FieldEffectStop(sprite, sprite->data[0]); - } else - { UpdateEventObjectSpriteVisibility(sprite, FALSE); - } } #ifdef NONMATCHING diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c index a9dc78dfa..c52dc98c6 100644 --- a/src/field_fadetransition.c +++ b/src/field_fadetransition.c @@ -39,35 +39,35 @@ void palette_bg_fill_black(void) void pal_fill_for_map_transition(void) { - u8 map_light = get_map_type_from_warp0(); - switch (fade_type_for_given_maplight_pair(map_light, Overworld_GetMapTypeOfSaveblockLocation())) + u8 previousMapType = GetLastUsedWarpMapType(); + switch (GetMapPairFadeFromType(previousMapType, Overworld_GetMapTypeOfSaveblockLocation())) { case 0: - FadeScreen(0, 0); + FadeScreen(FADE_FROM_BLACK, 0); palette_bg_fill_black(); break; case 1: - FadeScreen(2, 0); + FadeScreen(FADE_FROM_WHITE, 0); palette_bg_fill_white(); } } void pal_fill_black(void) { - FadeScreen(0, 0); + FadeScreen(FADE_FROM_BLACK, 0); palette_bg_fill_black(); } -void fade_8080918(void) +void WarpFadeScreen(void) { - u8 light_level = Overworld_GetMapTypeOfSaveblockLocation(); - switch (sub_810CDB8(light_level, warp1_get_mapheader()->mapType)) + u8 currentMapType = Overworld_GetMapTypeOfSaveblockLocation(); + switch (GetMapPairFadeToType(currentMapType, GetDestinationWarpMapHeader()->mapType)) { case 0: - FadeScreen(1, 0); + FadeScreen(FADE_TO_BLACK, 0); break; case 1: - FadeScreen(3, 0); + FadeScreen(FADE_TO_WHITE, 0); } } @@ -358,7 +358,7 @@ void sub_8080E44(void) CreateTask(task_mpl_807E3C8, 10); } -bool32 sub_8080E64(void) +static bool32 PaletteFadeActive(void) { return gPaletteFade.active; } @@ -374,8 +374,8 @@ bool32 sub_8080E70(void) void sub_8080E88(void) { ScriptContext2_Enable(); - sub_8053FF8(); - fade_8080918(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); PlayRainSoundEffect(); PlaySE(SE_KAIDAN); gFieldCallback = mapldr_default; @@ -385,8 +385,8 @@ void sub_8080E88(void) void sp13E_warp_to_last_warp(void) { ScriptContext2_Enable(); - sub_8053FF8(); - fade_8080918(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); PlayRainSoundEffect(); gFieldCallback = mapldr_default; CreateTask(task0A_fade_n_map_maybe, 10); @@ -426,8 +426,8 @@ void sub_8080F58(void) void sub_8080F68(void) { ScriptContext2_Enable(); - sub_8053FF8(); - fade_8080918(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); PlaySE(SE_TK_WARPIN); CreateTask(task0A_fade_n_map_maybe, 10); gFieldCallback = sub_8080B78; @@ -436,12 +436,12 @@ void sub_8080F68(void) void sub_8080F9C(void) { ScriptContext2_Enable(); - fade_8080918(); + WarpFadeScreen(); CreateTask(task0A_fade_n_map_maybe, 10); gFieldCallback = sub_80C791C; } -void sub_8080FC4(u8 taskId) +static void WaitCableClubWarp(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -452,13 +452,11 @@ void sub_8080FC4(u8 taskId) task->data[0]++; break; case 1: - if (!sub_8080E64() && sub_8054034()) - { + if (!PaletteFadeActive() && BGMusicStopped()) task->data[0]++; - } break; case 2: - warp_in(); + WarpIntoMap(); SetMainCallback2(sub_8054588); DestroyTask(taskId); break; @@ -468,10 +466,10 @@ void sub_8080FC4(u8 taskId) void DoCableClubWarp(void) { ScriptContext2_Enable(); - sub_8053FF8(); - fade_8080918(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); PlaySE(SE_KAIDAN); - CreateTask(sub_8080FC4, 10); + CreateTask(WaitCableClubWarp, 10); } void sub_8081050(u8 taskId) @@ -482,13 +480,13 @@ void sub_8081050(u8 taskId) { case 0: ClearLinkCallback_2(); - FadeScreen(1, 0); - sub_8053FF8(); + FadeScreen(FADE_TO_BLACK, 0); + TryFadeOutOldMapMusic(); PlaySE(SE_KAIDAN); data[0]++; break; case 1: - if (!sub_8080E64() && sub_8054034()) + if (!PaletteFadeActive() && BGMusicStopped()) { sub_800832C(); data[0]++; @@ -497,7 +495,7 @@ void sub_8081050(u8 taskId) case 2: if (!gReceivedRemoteLinkPlayers) { - warp_in(); + WarpIntoMap(); SetMainCallback2(CB2_LoadMap); DestroyTask(taskId); } @@ -538,13 +536,13 @@ void task0A_fade_n_map_maybe(u8 taskId) task->data[0]++; break; case 1: - if (!sub_8080E64() && sub_8054034()) + if (!PaletteFadeActive() && BGMusicStopped()) { task->data[0]++; } break; case 2: - warp_in(); + WarpIntoMap(); SetMainCallback2(CB2_LoadMap); DestroyTask(taskId); break; @@ -595,8 +593,8 @@ void sub_808115C(u8 taskId) } break; case 4: - sub_8053FF8(); - fade_8080918(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); PlayRainSoundEffect(); task->data[0] = 0; task->func = task0A_fade_n_map_maybe; @@ -616,13 +614,13 @@ void sub_80812C8(u8 taskId) task->data[0]++; break; case 1: - if (!sub_8080E64() && sub_8054034()) + if (!PaletteFadeActive() && BGMusicStopped()) { task->data[0]++; } break; case 2: - warp_in(); + WarpIntoMap(); SetMainCallback2(sub_8054534); DestroyTask(taskId); break; @@ -632,8 +630,8 @@ void sub_80812C8(u8 taskId) void sub_8081334(void) { ScriptContext2_Enable(); - sub_8053FF8(); - fade_8080918(); + TryFadeOutOldMapMusic(); + WarpFadeScreen(); PlayRainSoundEffect(); PlaySE(SE_KAIDAN); gFieldCallback = sub_8080B60; diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index dac26ff32..9a4f5f6cd 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -1142,7 +1142,7 @@ void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender) eventObjectId = SpawnSpecialEventObject(&playerEventObjTemplate); eventObject = &gEventObjects[eventObjectId]; eventObject->isPlayer = 1; - eventObject->warpArrowSpriteId = sub_8126B54(); + eventObject->warpArrowSpriteId = CreateWarpArrowSprite(); EventObjectTurn(eventObject, direction); ClearPlayerAvatarInfo(); gPlayerAvatar.runningState = NOT_MOVING; @@ -1199,11 +1199,11 @@ static void sub_8059D60(struct EventObject *eventObject) x = eventObject->currentCoords.x; y = eventObject->currentCoords.y; MoveCoords(direction, &x, &y); - sub_8126BC4(eventObject->warpArrowSpriteId, direction, x, y); + ShowWarpArrowSprite(eventObject->warpArrowSpriteId, direction, x, y); return; } } - objid_set_invisible(eventObject->warpArrowSpriteId); + SetSpriteInvisible(eventObject->warpArrowSpriteId); } /* Strength */ diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index b314699c5..4e5965ee3 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -9,71 +9,78 @@ #include "text.h" #include "scanline_effect.h" -const static u16 gUnknown_0839ACDC[] = { 0xC8, 0x48, 0x38, 0x28, 0x18, 0x0 }; +const static u16 sFlashLevelPixelRadii[] = { 200, 72, 56, 40, 24, 0 }; const s32 gMaxFlashLevel = 4; -const static struct ScanlineEffectParams gUnknown_0839ACEC = +const static struct ScanlineEffectParams sFlashEffectParams = { (void *)REG_ADDR_WIN0H, ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1, 1 }; -static void sub_808136C(u16 *dest, u32 a2, s32 a3, s32 a4) +static void SetFlashScanlineEffectWindowBoundary(u16 *dest, u32 y, s32 left, s32 right) { - if (a2 <= 0xA0) + if (y <= 160) { - if (a3 < 0) - a3 = 0; - if (a3 > 255) - a3 = 255; - if (a4 < 0) - a4 = 0; - if (a4 > 255) - a4 = 255; - dest[a2] = (a3 << 8) | a4; + if (left < 0) + left = 0; + if (left > 255) + left = 255; + if (right < 0) + right = 0; + if (right > 255) + right = 255; + dest[y] = (left << 8) | right; } } -static void sub_8081398(u16 *dest, s32 a2, s32 a3, s32 a4) +static void SetFlashScanlineEffectWindowBoundaries(u16 *dest, s32 centerX, s32 centerY, s32 radius) { - s32 v1 = a4; - s32 v2 = a4; + s32 r = radius; + s32 v2 = radius; s32 v3 = 0; - while (v1 >= v3) + while (r >= v3) { - sub_808136C(dest, a3 - v3, a2 - v1, a2 + v1); - sub_808136C(dest, a3 + v3, a2 - v1, a2 + v1); - sub_808136C(dest, a3 - v1, a2 - v3, a2 + v3); - sub_808136C(dest, a3 + v1, a2 - v3, a2 + v3); + SetFlashScanlineEffectWindowBoundary(dest, centerY - v3, centerX - r, centerX + r); + SetFlashScanlineEffectWindowBoundary(dest, centerY + v3, centerX - r, centerX + r); + SetFlashScanlineEffectWindowBoundary(dest, centerY - r, centerX - v3, centerX + v3); + SetFlashScanlineEffectWindowBoundary(dest, centerY + r, centerX - v3, centerX + v3); v2 -= (v3 * 2) - 1; v3++; if (v2 < 0) { - v2 += 2 * (v1 - 1); - v1--; + v2 += 2 * (r - 1); + r--; } } } -static void sub_8081424(u8 taskId) +#define tFlashCenterX data[1] +#define tFlashCenterY data[2] +#define tCurFlashRadius data[3] +#define tDestFlashRadius data[4] +#define tFlashRadiusDelta data[5] +#define tClearScanlineEffect data[6] + +static void UpdateFlashLevelEffect(u8 taskId) { s16 *data = gTasks[taskId].data; switch (data[0]) { case 0: - sub_8081398(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], data[1], data[2], data[3]); + SetFlashScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius); data[0] = 1; break; case 1: - sub_8081398(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], data[1], data[2], data[3]); + SetFlashScanlineEffectWindowBoundaries(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], tFlashCenterX, tFlashCenterY, tCurFlashRadius); data[0] = 0; - data[3] += data[5]; - if (data[3] > data[4]) + tCurFlashRadius += tFlashRadiusDelta; + if (tCurFlashRadius > tDestFlashRadius) { - if (data[6] == 1) + if (tClearScanlineEffect == 1) { ScanlineEffect_Stop(); data[0] = 2; @@ -93,7 +100,7 @@ static void sub_8081424(u8 taskId) static void sub_80814E8(u8 taskId) { - if (!FuncIsActiveTask(sub_8081424)) + if (!FuncIsActiveTask(UpdateFlashLevelEffect)) { EnableBothScriptContexts(); DestroyTask(taskId); @@ -106,41 +113,46 @@ static void sub_8081510(void) CreateTask(sub_80814E8, 80); } -static u8 sub_8081534(s32 a1, s32 a2, s32 a3, s32 a4, s32 a5, u8 a6) +static u8 sub_8081534(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 destFlashRadius, s32 clearScanlineEffect, u8 delta) { - u8 taskId = CreateTask(sub_8081424, 80); + u8 taskId = CreateTask(UpdateFlashLevelEffect, 80); s16 *data = gTasks[taskId].data; - data[3] = a3; - data[4] = a4; - data[1] = a1; - data[2] = a2; - data[6] = a5; + tCurFlashRadius = initialFlashRadius; + tDestFlashRadius = destFlashRadius; + tFlashCenterX = centerX; + tFlashCenterY = centerY; + tClearScanlineEffect = clearScanlineEffect; - if (a3 < a4) - data[5] = a6; + if (initialFlashRadius < destFlashRadius) + tFlashRadiusDelta = delta; else - data[5] = -a6; + tFlashRadiusDelta = -delta; return taskId; } -void sub_8081594(u8 a1) +#undef tCurFlashRadius +#undef tDestFlashRadius +#undef tFlashRadiusDelta +#undef tClearScanlineEffect + +void sub_8081594(u8 flashLevel) { - u8 flashLevel = Overworld_GetFlashLevel(); + u8 curFlashLevel = Overworld_GetFlashLevel(); u8 value = 0; - if (!a1) + if (!flashLevel) value = 1; - sub_8081534(120, 80, gUnknown_0839ACDC[flashLevel], gUnknown_0839ACDC[a1], value, 1); + sub_8081534(120, 80, sFlashLevelPixelRadii[curFlashLevel], sFlashLevelPixelRadii[flashLevel], value, 1); sub_8081510(); ScriptContext2_Enable(); } -void sub_80815E0(u8 a1) +void WriteFlashScanlineEffectBuffer(u8 flashLevel) { - if (a1) + if (flashLevel) { - sub_8081398(&gScanlineEffectRegBuffers[0][0], 120, 80, gUnknown_0839ACDC[a1]); + SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, sFlashLevelPixelRadii[flashLevel]); CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480); } } @@ -208,10 +220,9 @@ static void sub_80816A8(u8 taskId) REG_BLDALPHA = 1804; REG_WININ = 63; REG_WINOUT = 30; - sub_8081398(&gScanlineEffectRegBuffers[0][0], data[2], data[3], 1); + SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], data[2], data[3], 1); CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480); - //ScanlineEffect_SetParams(gUnknown_0839ACEC[0], gUnknown_0839ACEC[1], gUnknown_0839ACEC[2]); - ScanlineEffect_SetParams(gUnknown_0839ACEC); + ScanlineEffect_SetParams(sFlashEffectParams); data[0] = 1; break; case 1: @@ -221,7 +232,7 @@ static void sub_80816A8(u8 taskId) data[0] = 2; break; case 2: - if (!FuncIsActiveTask(sub_8081424)) + if (!FuncIsActiveTask(UpdateFlashLevelEffect)) { EnableBothScriptContexts(); data[0] = 3; @@ -323,7 +334,7 @@ void sub_8081924(void) static void task50_0807F0C8(u8 taskId) { - if (sub_8054034() == TRUE) + if (BGMusicStopped() == TRUE) { DestroyTask(taskId); EnableBothScriptContexts(); diff --git a/src/field_specials.c b/src/field_specials.c index cb400dc2d..f7b14dad8 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -21,6 +21,7 @@ #include "constants/species.h" #include "constants/abilities.h" #include "constants/moves.h" +#include "constants/weather.h" #include "text.h" #include "wallclock.h" #include "tv.h" @@ -42,7 +43,7 @@ #define CHAR_DECIMAL_SEPARATOR CHAR_COMMA #endif -extern struct WarpData gUnknown_020297F0; +extern struct WarpData gLastUsedWarp; extern u8 gBattleOutcome; extern u16 gSpecialVar_0x8004; extern u16 gSpecialVar_0x8005; @@ -207,7 +208,7 @@ u16 GetRecordedCyclingRoadResults(void) { } void UpdateCyclingRoadState(void) { - if (gUnknown_020297F0.mapNum == MAP_NUM(ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE) && gUnknown_020297F0.mapGroup == MAP_GROUP(ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE)) + if (gLastUsedWarp.mapNum == MAP_NUM(ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE) && gLastUsedWarp.mapGroup == MAP_GROUP(ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE)) { return; } @@ -2009,17 +2010,17 @@ bool8 FoundBlackGlasses(void) void SetRoute119Weather(void) { - if (is_map_type_1_2_3_5_or_6(get_map_type_from_warp0()) != TRUE) + if (is_map_type_1_2_3_5_or_6(GetLastUsedWarpMapType()) != TRUE) { - SetSav1Weather(0x14); + SetSav1Weather(WEATHER_ROUTE119_CYCLE); } } void SetRoute123Weather(void) { - if (is_map_type_1_2_3_5_or_6(get_map_type_from_warp0()) != TRUE) + if (is_map_type_1_2_3_5_or_6(GetLastUsedWarpMapType()) != TRUE) { - SetSav1Weather(0x15); + SetSav1Weather(WEATHER_ROUTE123_CYCLE); } } @@ -2027,13 +2028,12 @@ u8 GetLeadMonIndex(void) { u8 i; u8 partyCount = CalculatePlayerPartyCount(); - for (i=0; i<partyCount; i++) + for (i = 0; i < partyCount; i++) { if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != SPECIES_EGG && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL) != 0) - { return i; - } } + return 0; } diff --git a/src/field_tasks.c b/src/field_tasks.c index 25a4efc58..8b736c949 100644 --- a/src/field_tasks.c +++ b/src/field_tasks.c @@ -611,8 +611,8 @@ bool32 sub_8069D34(s16 x, s16 y) void SetSootopolisGymCrackedIceMetatiles(void) { s32 x, y; - s32 width = gMapHeader.mapData->width; - s32 height = gMapHeader.mapData->height; + s32 width = gMapHeader.mapLayout->width; + s32 height = gMapHeader.mapLayout->height; for (x = 0; x < width; x++) { for (y = 0; y < height; y++) @@ -713,11 +713,11 @@ void PerStepCallback_8069F64(u8 taskId) { if (MapGridGetMetatileIdAt(x, y) == 0x20a) { - ash(x, y, 0x212, 4); + StartAshFieldEffect(x, y, 0x212, 4); } else { - ash(x, y, 0x206, 4); + StartAshFieldEffect(x, y, 0x206, 4); } if (CheckBagHasItem(ITEM_SOOT_SACK, 1)) { @@ -782,24 +782,29 @@ void PerStepCallback_806A07C(u8 taskId) } } -const u16 gUnknown_08376418[] = {0xe8, 0xeb, 0xea, 0xe9}; +static const u16 sMuddySlopeAnimationMetatiles[] = {0xe8, 0xeb, 0xea, 0xe9}; -void sub_806A18C(s16 *data, s16 x, s16 y) +static void SetMuddySlopeAnimatedMetatile(s16 *counter, s16 x, s16 y) { u16 tile; - if ((--data[0]) == 0) - { + if (--(*counter) == 0) tile = 0xe8; - } else - { - tile = gUnknown_08376418[data[0] / 8]; - } + tile = sMuddySlopeAnimationMetatiles[*counter / 8]; + MapGridSetMetatileIdAt(x, y, tile); CurrentMapDrawMetatileAt(x, y); + + // Immediately set the metatile back to the original muddy slope metatile + // but don't actualy draw it on the screen. This is so the underlying metatile + // behvior on the map is not changed. MapGridSetMetatileIdAt(x, y, 0xe8); } +// Checks for the player traversing on muddy slope metatiles. +// When the player walks or slides on one, it executes a short animation to +// make it look like a small mudslide. A maximum of 4 mudslide animations can +// exist simultaneously. void Task_MuddySlope(u8 taskId) { s16 x, y, x2, y2; @@ -827,7 +832,7 @@ void Task_MuddySlope(u8 taskId) data[3] = y; if (MetatileBehavior_IsMuddySlope(MapGridGetMetatileBehaviorAt(x, y))) { - for (i=4; i<14; i+=3) + for (i = 4; i < 14; i += 3) { if (data[i] == 0) { @@ -841,6 +846,7 @@ void Task_MuddySlope(u8 taskId) } break; } + if (gCamera.field_0 && mapIndices != data[0]) { data[0] = mapIndices; @@ -852,13 +858,14 @@ void Task_MuddySlope(u8 taskId) x2 = 0; y2 = 0; } - for (i=4; i<14; i+=3) + + for (i = 4; i < 14; i += 3) { if (data[i]) { data[i + 1] -= x2; data[i + 2] -= y2; - sub_806A18C(&data[i], data[i + 1], data[i + 2]); + SetMuddySlopeAnimatedMetatile(&data[i], data[i + 1], data[i + 2]); } } } diff --git a/src/fieldmap.c b/src/fieldmap.c index 7383bb174..874df23b0 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -25,7 +25,7 @@ EWRAM_DATA struct MapHeader gMapHeader = {0}; EWRAM_DATA struct Camera gCamera = {0}; EWRAM_DATA static struct ConnectionFlags gUnknown_0202E850 = {0}; -struct BackupMapData gUnknown_03004870; +struct BackupMapLayout gUnknown_03004870; static const struct ConnectionFlags sDummyConnectionFlags = {0}; @@ -53,19 +53,19 @@ void sub_8055FC0(void) void mapheader_copy_mapdata_with_padding(struct MapHeader *mapHeader) { - struct MapData *mapData; + struct MapLayout *mapLayout; int width; int height; - mapData = mapHeader->mapData; + mapLayout = mapHeader->mapLayout; CpuFastFill16(0x03ff, gUnknown_02029828, sizeof(gUnknown_02029828)); gUnknown_03004870.map = gUnknown_02029828; - width = mapData->width + 15; + width = mapLayout->width + 15; gUnknown_03004870.width = width; - height = mapData->height + 14; + height = mapLayout->height + 14; gUnknown_03004870.height = height; if (width * height <= 0x2800) { - map_copy_with_padding(mapData->map, mapData->width, mapData->height); + map_copy_with_padding(mapLayout->map, mapLayout->width, mapLayout->height); sub_80560AC(mapHeader); } } @@ -129,8 +129,8 @@ void sub_8056134(int x, int y, struct MapHeader *mapHeader, int x2, int y2, int u16 *dest; int mapWidth; - mapWidth = mapHeader->mapData->width; - src = &mapHeader->mapData->map[mapWidth * y2 + x2]; + mapWidth = mapHeader->mapLayout->width; + src = &mapHeader->mapLayout->map[mapWidth * y2 + x2]; dest = &gUnknown_03004870.map[gUnknown_03004870.width * y + x]; for (i = 0; i < height; i++) @@ -150,9 +150,9 @@ void fillSouthConnection(struct MapHeader *mapHeader, struct MapHeader *connecte if (connectedMapHeader) { - cWidth = connectedMapHeader->mapData->width; + cWidth = connectedMapHeader->mapLayout->width; x = offset + 7; - y = mapHeader->mapData->height + 7; + y = mapHeader->mapLayout->height + 7; if (x < 0) { x2 = -x; @@ -196,8 +196,8 @@ void fillNorthConnection(struct MapHeader *mapHeader, struct MapHeader *connecte if (connectedMapHeader) { - cWidth = connectedMapHeader->mapData->width; - cHeight = connectedMapHeader->mapData->height; + cWidth = connectedMapHeader->mapLayout->width; + cHeight = connectedMapHeader->mapLayout->height; x = offset + 7; y2 = cHeight - 7; if (x < 0) @@ -245,8 +245,8 @@ void fillWestConnection(struct MapHeader *mapHeader, struct MapHeader *connected int cWidth, cHeight; if (connectedMapHeader) { - cWidth = connectedMapHeader->mapData->width; - cHeight = connectedMapHeader->mapData->height; + cWidth = connectedMapHeader->mapLayout->width; + cHeight = connectedMapHeader->mapLayout->height; y = offset + 7; x2 = cWidth - 7; if (y < 0) @@ -291,8 +291,8 @@ void fillEastConnection(struct MapHeader *mapHeader, struct MapHeader *connected int cHeight; if (connectedMapHeader) { - cHeight = connectedMapHeader->mapData->height; - x = mapHeader->mapData->width + 7; + cHeight = connectedMapHeader->mapLayout->height; + x = mapHeader->mapLayout->width + 7; y = offset + 7; if (y < 0) { @@ -352,10 +352,10 @@ u8 MapGridGetZCoordAt(int x, int y) } else { - border = gMapHeader.mapData->border; + border = gMapHeader.mapLayout->border; i = (x + 1) & 1; i += ((y + 1) & 1) * 2; - block = gMapHeader.mapData->border[i]; + block = gMapHeader.mapLayout->border[i]; block |= 0xc00; } if (block == 0x3ff) @@ -378,10 +378,10 @@ u8 MapGridIsImpassableAt(int x, int y) } else { - border = gMapHeader.mapData->border; + border = gMapHeader.mapLayout->border; i = (x + 1) & 1; i += ((y + 1) & 1) * 2; - block = gMapHeader.mapData->border[i]; + block = gMapHeader.mapLayout->border[i]; block |= 0xc00; } if (block == 0x3ff) @@ -396,7 +396,7 @@ u32 MapGridGetMetatileIdAt(int x, int y) u16 block; int i; int j; - struct MapData *mapData; + struct MapLayout *mapLayout; u16 *border; u16 block2; @@ -407,17 +407,17 @@ u32 MapGridGetMetatileIdAt(int x, int y) } else { - mapData = gMapHeader.mapData; + mapLayout = gMapHeader.mapLayout; i = (x + 1) & 1; i += ((y + 1) & 1) * 2; - block = mapData->border[i] | 0xc00; + block = mapLayout->border[i] | 0xc00; } if (block == 0x3ff) { - border = gMapHeader.mapData->border; + border = gMapHeader.mapLayout->border; j = (x + 1) & 1; j += ((y + 1) & 1) * 2; - block2 = gMapHeader.mapData->border[j]; + block2 = gMapHeader.mapLayout->border[j]; block2 |= 0xc00; return block2 & block; } @@ -465,12 +465,12 @@ u32 GetBehaviorByMetatileId(u16 metatile) u16 *attributes; if (metatile <= 0x1ff) { - attributes = gMapHeader.mapData->primaryTileset->metatileAttributes; + attributes = gMapHeader.mapLayout->primaryTileset->metatileAttributes; return attributes[metatile]; } else if (metatile <= 0x3ff) { - attributes = gMapHeader.mapData->secondaryTileset->metatileAttributes; + attributes = gMapHeader.mapLayout->secondaryTileset->metatileAttributes; return attributes[metatile - 0x200]; } else @@ -600,7 +600,7 @@ void sub_80566F0(u8 a1) int GetMapBorderIdAt(int x, int y) { - struct MapData *mapData; + struct MapLayout *mapLayout; u16 block, block2; int i, j; if (x >= 0 && x < gUnknown_03004870.width @@ -616,10 +616,10 @@ int GetMapBorderIdAt(int x, int y) } else { - mapData = gMapHeader.mapData; + mapLayout = gMapHeader.mapLayout; j = (x + 1) & 1; j += ((y + 1) & 1) * 2; - block2 = 0xc00 | mapData->border[j]; + block2 = 0xc00 | mapLayout->border[j]; if (block2 == 0x3ff) { goto fail; @@ -676,8 +676,8 @@ int GetPostCameraMoveMapBorderId(int x, int y) int CanCameraMoveInDirection(int direction) { int x, y; - x = gSaveBlock1.pos.x + 7 + gUnknown_0821664C[direction].x; - y = gSaveBlock1.pos.y + 7 + gUnknown_0821664C[direction].y; + x = gSaveBlock1.pos.x + 7 + gDirectionToVectors[direction].x; + y = gSaveBlock1.pos.y + 7 + gDirectionToVectors[direction].y; if (GetMapBorderIdAt(x, y) == -1) { return 0; @@ -696,7 +696,7 @@ void sub_8056918(struct MapConnection *connection, int direction, int x, int y) gSaveBlock1.pos.y -= connection->offset; break; case CONNECTION_WEST: - gSaveBlock1.pos.x = mapHeader->mapData->width; + gSaveBlock1.pos.x = mapHeader->mapLayout->width; gSaveBlock1.pos.y -= connection->offset; break; case CONNECTION_SOUTH: @@ -705,7 +705,7 @@ void sub_8056918(struct MapConnection *connection, int direction, int x, int y) break; case CONNECTION_NORTH: gSaveBlock1.pos.x -= connection->offset; - gSaveBlock1.pos.y = mapHeader->mapData->height; + gSaveBlock1.pos.y = mapHeader->mapLayout->height; break; } } @@ -768,10 +768,10 @@ bool8 sub_8056ABC(u8 direction, int x, int y, struct MapConnection *connection) { case CONNECTION_SOUTH: case CONNECTION_NORTH: - return sub_8056B20(x, gMapHeader.mapData->width, mapHeader->mapData->width, connection->offset); + return sub_8056B20(x, gMapHeader.mapLayout->width, mapHeader->mapLayout->width, connection->offset); case CONNECTION_WEST: case CONNECTION_EAST: - return sub_8056B20(y, gMapHeader.mapData->height, mapHeader->mapData->height, connection->offset); + return sub_8056B20(y, gMapHeader.mapLayout->height, mapHeader->mapLayout->height, connection->offset); } return FALSE; } @@ -812,10 +812,10 @@ int sub_8056B60(struct MapConnection *connection, int x, int y) { case CONNECTION_SOUTH: case CONNECTION_NORTH: - return sub_8056B4C(x - connection->offset, mapHeader->mapData->width); + return sub_8056B4C(x - connection->offset, mapHeader->mapLayout->width); case CONNECTION_WEST: case CONNECTION_EAST: - return sub_8056B4C(y - connection->offset, mapHeader->mapData->height); + return sub_8056B4C(y - connection->offset, mapHeader->mapLayout->height); } return FALSE; } @@ -839,9 +839,9 @@ struct MapConnection *sub_8056BA0(s16 x, s16 y) direction = connection->direction; if ((direction == CONNECTION_DIVE || direction == CONNECTION_EMERGE) || (direction == CONNECTION_NORTH && y > 6) - || (direction == CONNECTION_SOUTH && y < gMapHeader.mapData->height + 7) + || (direction == CONNECTION_SOUTH && y < gMapHeader.mapLayout->height + 7) || (direction == CONNECTION_WEST && x > 6) - || (direction == CONNECTION_EAST && x < gMapHeader.mapData->width + 7)) + || (direction == CONNECTION_EAST && x < gMapHeader.mapLayout->width + 7)) { continue; } @@ -916,42 +916,42 @@ void sub_8056CBC(struct Tileset *tileset, int offset, int size) } } -void sub_8056D28(struct MapData *mapData) +void sub_8056D28(struct MapLayout *mapLayout) { void *src = (void*)(BG_VRAM); - sub_8056C98(mapData->primaryTileset, src); + sub_8056C98(mapLayout->primaryTileset, src); } -void sub_8056D38(struct MapData *mapData) +void sub_8056D38(struct MapLayout *mapLayout) { void *src = (void*)(BG_VRAM + 0x4000); - sub_8056C98(mapData->secondaryTileset, src); + sub_8056C98(mapLayout->secondaryTileset, src); } -void apply_map_tileset1_palette(struct MapData *mapData) +void apply_map_tileset1_palette(struct MapLayout *mapLayout) { - sub_8056CBC(mapData->primaryTileset, 0, 0xc0); + sub_8056CBC(mapLayout->primaryTileset, 0, 0xc0); } -void apply_map_tileset2_palette(struct MapData *mapData) +void apply_map_tileset2_palette(struct MapLayout *mapLayout) { - sub_8056CBC(mapData->secondaryTileset, 0x60, 0xc0); + sub_8056CBC(mapLayout->secondaryTileset, 0x60, 0xc0); } -void copy_map_tileset1_tileset2_to_vram(struct MapData *mapData) +void copy_map_tileset1_tileset2_to_vram(struct MapLayout *mapLayout) { - if (mapData) + if (mapLayout) { - sub_8056D28(mapData); - sub_8056D38(mapData); + sub_8056D28(mapLayout); + sub_8056D38(mapLayout); } } -void apply_map_tileset1_tileset2_palette(struct MapData *mapData) +void apply_map_tileset1_tileset2_palette(struct MapLayout *mapLayout) { - if (mapData) + if (mapLayout) { - apply_map_tileset1_palette(mapData); - apply_map_tileset2_palette(mapData); + apply_map_tileset1_palette(mapLayout); + apply_map_tileset2_palette(mapLayout); } } diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index a9f64a2d1..5a04f7061 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -12,12 +12,12 @@ #include "sprite.h" #include "task.h" -struct FlashStruct +struct MapTypeFadePairs { - u8 unk0; - u8 unk1; - u8 unk2; - u8 unk3; + u8 mapTypeA; + u8 mapTypeB; + u8 fadeToType; // 0 = fade to black, 1 = fade to white + u8 fadeFromType; // 0 = fade from black, 1 = fade from white void (*func)(void); }; @@ -26,39 +26,39 @@ extern void (*gPostMenuFieldCallback)(void); extern u8 gUnknown_081B694A[]; -void sub_810CBFC(void); -void sub_810CC34(void); -bool8 sub_810CD5C(void); -void sub_810CE5C(u8); -void sub_810CE78(u8); -void sub_810CF18(u8); -void sub_810CF5C(u8); -void sub_810CFC4(u8); -void sub_810D00C(u8); -void sub_810D028(u8); -void sub_810D0C4(u8); -void sub_810D128(u8); -void sub_810CFF8(void); -void sub_810CE48(void); - -static const struct FlashStruct gUnknown_083F7FC4[] = +static void sub_810CBFC(void); +static void sub_810CC34(void); +static bool8 sub_810CD5C(void); +static void sub_810CE5C(u8); +static void sub_810CE78(u8); +static void sub_810CF18(u8); +static void sub_810CF5C(u8); +static void sub_810CFC4(u8); +static void sub_810D00C(u8); +static void sub_810D028(u8); +static void sub_810D0C4(u8); +static void sub_810D128(u8); +static void CreateEnterUndergroundEffectTask(void); +static void CreateExitUndergroundTask(void); + +static const struct MapTypeFadePairs gMapTypeFadePairs[] = { - {1, 4, 1, 0, sub_810CFF8}, - {2, 4, 1, 0, sub_810CFF8}, - {3, 4, 1, 0, sub_810CFF8}, - {5, 4, 1, 0, sub_810CFF8}, - {6, 4, 1, 0, sub_810CFF8}, - {7, 4, 1, 0, sub_810CFF8}, - {8, 4, 1, 0, sub_810CFF8}, - {9, 4, 1, 0, sub_810CFF8}, - {4, 1, 0, 1, sub_810CE48}, - {4, 2, 0, 1, sub_810CE48}, - {4, 3, 0, 1, sub_810CE48}, - {4, 5, 0, 1, sub_810CE48}, - {4, 6, 0, 1, sub_810CE48}, - {4, 7, 0, 1, sub_810CE48}, - {4, 8, 0, 1, sub_810CE48}, - {4, 9, 0, 1, sub_810CE48}, + {MAP_TYPE_TOWN, MAP_TYPE_UNDERGROUND, 1, 0, CreateEnterUndergroundEffectTask}, + {MAP_TYPE_CITY, MAP_TYPE_UNDERGROUND, 1, 0, CreateEnterUndergroundEffectTask}, + {MAP_TYPE_ROUTE, MAP_TYPE_UNDERGROUND, 1, 0, CreateEnterUndergroundEffectTask}, + {MAP_TYPE_UNDERWATER, MAP_TYPE_UNDERGROUND, 1, 0, CreateEnterUndergroundEffectTask}, + {MAP_TYPE_6, MAP_TYPE_UNDERGROUND, 1, 0, CreateEnterUndergroundEffectTask}, + {MAP_TYPE_7, MAP_TYPE_UNDERGROUND, 1, 0, CreateEnterUndergroundEffectTask}, + {MAP_TYPE_INDOOR, MAP_TYPE_UNDERGROUND, 1, 0, CreateEnterUndergroundEffectTask}, + {MAP_TYPE_SECRET_BASE, MAP_TYPE_UNDERGROUND, 1, 0, CreateEnterUndergroundEffectTask}, + {MAP_TYPE_UNDERGROUND, MAP_TYPE_TOWN, 0, 1, CreateExitUndergroundTask}, + {MAP_TYPE_UNDERGROUND, MAP_TYPE_CITY, 0, 1, CreateExitUndergroundTask}, + {MAP_TYPE_UNDERGROUND, MAP_TYPE_ROUTE, 0, 1, CreateExitUndergroundTask}, + {MAP_TYPE_UNDERGROUND, MAP_TYPE_UNDERWATER, 0, 1, CreateExitUndergroundTask}, + {MAP_TYPE_UNDERGROUND, MAP_TYPE_6, 0, 1, CreateExitUndergroundTask}, + {MAP_TYPE_UNDERGROUND, MAP_TYPE_7, 0, 1, CreateExitUndergroundTask}, + {MAP_TYPE_UNDERGROUND, MAP_TYPE_INDOOR, 0, 1, CreateExitUndergroundTask}, + {MAP_TYPE_UNDERGROUND, MAP_TYPE_SECRET_BASE, 0, 1, CreateExitUndergroundTask}, {0, 0, 0, 0, NULL}, }; @@ -95,7 +95,7 @@ bool8 SetUpFieldMove_Flash(void) return FALSE; } -void sub_810CBFC(void) +static void sub_810CBFC(void) { u8 taskId = oei_task_add(); gFieldEffectArguments[0] = gLastFieldPokeMenuOpened; @@ -103,7 +103,7 @@ void sub_810CBFC(void) gTasks[taskId].data[9] = (uintptr_t)sub_810CC34; } -void sub_810CC34(void) +static void sub_810CC34(void) { PlaySE(SE_W115); FlagSet(FLAG_SYS_USE_FLASH); @@ -156,17 +156,17 @@ void sub_810CC80(void) SetMainCallback2(gMain.savedCallback); } -bool8 sub_810CD5C(void) +static bool8 sub_810CD5C(void) { u8 i; - u8 v0 = get_map_type_from_warp0(); - u8 v1 = Overworld_GetMapTypeOfSaveblockLocation(); + u8 prevMapType = GetLastUsedWarpMapType(); + u8 curMapType = Overworld_GetMapTypeOfSaveblockLocation(); - for (i = 0; gUnknown_083F7FC4[i].unk0; i++) + for (i = 0; gMapTypeFadePairs[i].mapTypeA; i++) { - if (gUnknown_083F7FC4[i].unk0 == v0 && gUnknown_083F7FC4[i].unk1 == v1) + if (gMapTypeFadePairs[i].mapTypeA == prevMapType && gMapTypeFadePairs[i].mapTypeB == curMapType) { - gUnknown_083F7FC4[i].func(); + gMapTypeFadePairs[i].func(); return TRUE; } } @@ -174,51 +174,49 @@ bool8 sub_810CD5C(void) return FALSE; } -u8 sub_810CDB8(u8 a1, u8 a2) +u8 GetMapPairFadeToType(u8 currentMapType, u8 destinationMapType) { u8 i; - u8 v0 = a1; - u8 v1 = a2; + u8 curMapType = currentMapType; + u8 destMapType = destinationMapType; - for (i = 0; gUnknown_083F7FC4[i].unk0; i++) + for (i = 0; gMapTypeFadePairs[i].mapTypeA; i++) { - if (gUnknown_083F7FC4[i].unk0 == v0 && gUnknown_083F7FC4[i].unk1 == v1) - { - return gUnknown_083F7FC4[i].unk2; - } + if (gMapTypeFadePairs[i].mapTypeA == curMapType && gMapTypeFadePairs[i].mapTypeB == destMapType) + return gMapTypeFadePairs[i].fadeToType; } return FALSE; } -u8 fade_type_for_given_maplight_pair(u8 a1, u8 a2) +u8 GetMapPairFadeFromType(u8 currentMapType, u8 destinationMapType) { u8 i; - u8 v0 = a1; - u8 v1 = a2; + u8 curMapType = currentMapType; + u8 destMapType = destinationMapType; - for (i = 0; gUnknown_083F7FC4[i].unk0; i++) + for (i = 0; gMapTypeFadePairs[i].mapTypeA; i++) { - if (gUnknown_083F7FC4[i].unk0 == v0 && gUnknown_083F7FC4[i].unk1 == v1) + if (gMapTypeFadePairs[i].mapTypeA == curMapType && gMapTypeFadePairs[i].mapTypeB == destMapType) { - return gUnknown_083F7FC4[i].unk3; + return gMapTypeFadePairs[i].fadeFromType; } } return FALSE; } -void sub_810CE48(void) +static void CreateExitUndergroundTask(void) { CreateTask(sub_810CE5C, 0); } -void sub_810CE5C(u8 taskId) +static void sub_810CE5C(u8 taskId) { gTasks[taskId].func = sub_810CE78; } -void sub_810CE78(u8 taskId) +static void sub_810CE78(u8 taskId) { REG_DISPCNT = 0; LZ77UnCompVram(gCaveTransitionTiles, (void *)0x600C000); @@ -235,7 +233,7 @@ void sub_810CE78(u8 taskId) gTasks[taskId].data[1] = 0; } -void sub_810CF18(u8 taskId) +static void sub_810CF18(u8 taskId) { u16 count = gTasks[taskId].data[1]; u16 blend = count + 0x1000; @@ -251,7 +249,7 @@ void sub_810CF18(u8 taskId) } } -void sub_810CF5C(u8 taskId) +static void sub_810CF5C(u8 taskId) { u16 count; @@ -272,7 +270,7 @@ void sub_810CF5C(u8 taskId) } } -void sub_810CFC4(u8 taskId) +static void sub_810CFC4(u8 taskId) { if (gTasks[taskId].data[2]) gTasks[taskId].data[2]--; @@ -280,17 +278,17 @@ void sub_810CFC4(u8 taskId) SetMainCallback2(gMain.savedCallback); } -void sub_810CFF8(void) +static void CreateEnterUndergroundEffectTask(void) { CreateTask(sub_810D00C, 0); } -void sub_810D00C(u8 taskId) +static void sub_810D00C(u8 taskId) { gTasks[taskId].func = sub_810D028; } -void sub_810D028(u8 taskId) +static void sub_810D028(u8 taskId) { REG_DISPCNT = 0; LZ77UnCompVram(gCaveTransitionTiles, (void *)0x600C000); @@ -308,7 +306,7 @@ void sub_810D028(u8 taskId) gTasks[taskId].data[2] = 0; } -void sub_810D0C4(u8 taskId) +static void sub_810D0C4(u8 taskId) { u16 count = gTasks[taskId].data[2]; if (count < 16) @@ -325,7 +323,7 @@ void sub_810D0C4(u8 taskId) } } -void sub_810D128(u8 taskId) +static void sub_810D128(u8 taskId) { u16 count = 16 - gTasks[taskId].data[1]; u16 blend = count + 0x1000; diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 5bd0d229b..2536f4898 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -451,7 +451,7 @@ static bool8 sub_8141E64(void) if (!gPaletteFade.active) { SetMainCallback2(CB2_HallOfFame); - PlayBGM(BGM_DENDOU); + PlayBGM(MUS_DENDOU); return 0; } break; diff --git a/src/hof_pc.c b/src/hof_pc.c index 3ff9eaaea..b9407bace 100644 --- a/src/hof_pc.c +++ b/src/hof_pc.c @@ -8,7 +8,6 @@ #include "task.h" extern void (*gFieldCallback)(void); -extern void (*gUnknown_0300485C)(void); static void ReshowPCMenuAfterHallOfFamePC(void); static void Task_WaitForPaletteFade(u8); diff --git a/src/item_menu.c b/src/item_menu.c index 5fbfb775e..71516c0a4 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -38,14 +38,13 @@ #include "ewram.h" // External stuff -extern void gpu_pal_allocator_reset__manage_upper_four(void); +extern void FreeAndReserveObjectSpritePalettes(void); extern void SetVerticalScrollIndicatorPriority(); extern void sub_809D104(u16 *, u16, u16, const u8 *, u16, u16, u16, u16); extern void PauseVerticalScrollIndicator(); extern u8 sub_80F9284(void); extern void sub_808B5B4(); extern u8 sub_80F92F4(); -extern void sub_80C9C7C(u8); extern void pal_fill_black(void); extern bool8 IsWeatherNotFadingIn(void); extern u8 sub_80F931C(); @@ -140,7 +139,7 @@ EWRAM_DATA static s8 gUnknown_0203855B = 0; EWRAM_DATA static s8 gUnknown_0203855C = 0; EWRAM_DATA u16 gSpecialVar_ItemId = 0; EWRAM_DATA u8 gCurSelectedItemSlotIndex = 0; -EWRAM_DATA u8 gUnknown_02038561 = 0; +EWRAM_DATA u8 gPokemonItemUseType = 0; EWRAM_DATA static u8 gUnknown_02038562 = 0; EWRAM_DATA static u8 gUnknown_02038563 = 0; EWRAM_DATA static u8 gUnknown_02038564 = 0; @@ -392,7 +391,7 @@ static bool8 SetupBagMultistep(void) gMain.state++; break; case 2: - gpu_pal_allocator_reset__manage_upper_four(); + FreeAndReserveObjectSpritePalettes(); gMain.state++; break; case 3: @@ -2666,7 +2665,7 @@ void HandleItemMenuPaletteFade(u8 taskId) MainCallback cb = (MainCallback)((u16)taskData[8] << 16 | (u16)taskData[9]); SetMainCallback2(cb); - gpu_pal_allocator_reset__manage_upper_four(); + FreeAndReserveObjectSpritePalettes(); DestroyTask(taskId); } } @@ -2701,7 +2700,7 @@ static void HandlePopupMenuAction_UseOnField(u8 taskId) if (sCurrentBagPocket != BAG_POCKET_BERRIES) ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId); else - sub_80C9C7C(taskId); + ItemUseOutOfBattle_Berry(taskId); } } } @@ -2925,7 +2924,7 @@ static void HandlePopupMenuAction_Give(u8 taskId) gTasks[taskId].data[8] = (u32)sub_808B020 >> 16; gTasks[taskId].data[9] = (u32)sub_808B020; gTasks[taskId].func = HandleItemMenuPaletteFade; - gUnknown_02038561 = 1; + gPokemonItemUseType = ITEM_USE_GIVE_ITEM; BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); } } diff --git a/src/item_use.c b/src/item_use.c index 69fcd51de..4e76ea434 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -34,28 +34,35 @@ #include "string_util.h" #include "strings.h" #include "task.h" +#include "constants/species.h" #include "constants/vars.h" extern void (*gFieldItemUseCallback)(u8); extern void (*gFieldCallback)(void); -extern void (*gUnknown_0300485C)(void); extern void (*gPokemonItemUseCallback)(u8, u16, TaskFunc); -extern u8 gUnknown_02038561; +extern u8 gPokemonItemUseType; extern u8 gLastFieldPokeMenuOpened; extern u8 gBankInMenu; -extern u8 gUnknown_081A1654[]; -extern u8 gUnknown_081A168F[]; +extern u8 S_PlantBerryTreeFromBag[]; +extern u8 S_WaterBerryTreeFromBag[]; extern u16 gBattlerPartyIndexes[]; extern u16 gBattleTypeFlags; +static void ItemUseOnFieldCB_Berry(u8); +static void ItemUseOnFieldCB_WailmerPail(u8); +static void StartTeachMonTMHMMove(u8); +static void DisplayTeachMonTMHMYesNoChoice(u8); +static void BootTMHM(u8); +static void WaitButtonPressAndDisplayTMHMInfo(u8); + static const u8 gSSTidalBetaString[] = _("この チケットで ふねに のりほうだい\nはやく のってみたいな"); static const u8 gSSTidalBetaString2[] = _("この チケットで ふねに のりほうだい\nはやく のってみたいな"); -static const u8 *const gUnknown_083D61DC[2] = +static const u8 *const sSSTidalBetaStrings[] = { gSSTidalBetaString, gSSTidalBetaString2, @@ -70,9 +77,9 @@ static const MainCallback gExitToOverworldFuncList[] = static const u8 gItemFinderDirections[] = { DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST }; -static const struct YesNoFuncTable gUnknown_083D61F4 = +static const struct YesNoFuncTable sTeachMonTMHMYesNoActions = { - .yesFunc = sub_80C9FC0, + .yesFunc = StartTeachMonTMHMMove, .noFunc = CleanUpItemMenuMessage, }; @@ -80,7 +87,7 @@ void ExecuteSwitchToOverworldFromItemUse(u8 taskId) { u8 taskData; - if (gSpecialVar_ItemId == 0xAF) + if (gSpecialVar_ItemId == ITEM_ENIGMA_BERRY) taskData = gTasks[taskId].data[15] - 1; else taskData = ItemId_GetType(gSpecialVar_ItemId) - 1; @@ -115,7 +122,7 @@ void SetUpItemUseOnFieldCallback(u8 taskId) } } -void HandleDeniedItemUseMessage(u8 var1, u8 playerMenuStatus, const u8 *text) +static void HandleDeniedItemUseMessage(u8 taskId, u8 playerMenuStatus, const u8 *text) { StringExpandPlaceholders(gStringVar4, text); @@ -123,22 +130,22 @@ void HandleDeniedItemUseMessage(u8 var1, u8 playerMenuStatus, const u8 *text) { case 0: // Item Menu Menu_EraseWindowRect(0, 13, 13, 20); - DisplayItemMessageOnField(var1, gStringVar4, CleanUpItemMenuMessage, 1); + DisplayItemMessageOnField(taskId, gStringVar4, CleanUpItemMenuMessage, 1); break; default: // Field - DisplayItemMessageOnField(var1, gStringVar4, CleanUpOverworldMessage, 0); + DisplayItemMessageOnField(taskId, gStringVar4, CleanUpOverworldMessage, 0); break; } } -void DisplayDadsAdviceCannotUseItemMessage(u8 var1, u8 playerMenuStatus) +void DisplayDadsAdviceCannotUseItemMessage(u8 taskId, u8 playerMenuStatus) { - HandleDeniedItemUseMessage(var1, playerMenuStatus, gOtherText_DadsAdvice); + HandleDeniedItemUseMessage(taskId, playerMenuStatus, gOtherText_DadsAdvice); } -void DisplayCantGetOffBikeItemMessage(u8 var1, u8 playerMenuStatus) +void DisplayCantGetOffBikeItemMessage(u8 taskId, u8 playerMenuStatus) { - HandleDeniedItemUseMessage(var1, playerMenuStatus, gOtherText_CantGetOffBike); + HandleDeniedItemUseMessage(taskId, playerMenuStatus, gOtherText_CantGetOffBike); } u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId) @@ -177,7 +184,7 @@ void ItemUseOutOfBattle_Bike(u8 taskId) PlayerGetDestCoords(&x, &y); tileBehavior = MapGridGetMetatileBehaviorAt(x, y); - if (FlagGet(FLAG_SYS_CYCLING_ROAD) == TRUE // on cycling road? + if (FlagGet(FLAG_SYS_CYCLING_ROAD) == TRUE || MetatileBehavior_IsVerticalRail(tileBehavior) == TRUE || MetatileBehavior_IsHorizontalRail(tileBehavior) == TRUE || MetatileBehavior_IsIsolatedVerticalRail(tileBehavior) == TRUE @@ -200,9 +207,9 @@ void ItemUseOutOfBattle_Bike(u8 taskId) void ItemUseOnFieldCB_Bike(u8 taskId) { if (ItemId_GetSecondaryId(gSpecialVar_ItemId) == 0) - GetOnOffBike(2); + GetOnOffBike(PLAYER_AVATAR_FLAG_MACH_BIKE); if (ItemId_GetSecondaryId(gSpecialVar_ItemId) == 1) - GetOnOffBike(4); + GetOnOffBike(PLAYER_AVATAR_FLAG_ACRO_BIKE); ScriptUnfreezeEventObjects(); ScriptContext2_Disable(); @@ -256,11 +263,11 @@ void ItemUseOnFieldCB_Rod(u8 taskId) DestroyTask(taskId); } -void ItemUseOutOfBattle_Itemfinder(u8 var) +void ItemUseOutOfBattle_Itemfinder(u8 taskId) { IncrementGameStat(GAME_STAT_USED_ITEMFINDER); gFieldItemUseCallback = (void *)ItemUseOnFieldCB_Itemfinder; - SetUpItemUseOnFieldCallback(var); + SetUpItemUseOnFieldCallback(taskId); } void ItemUseOnFieldCB_Itemfinder(u8 taskId) @@ -384,23 +391,23 @@ bool8 sub_80C9688(struct MapConnection *connection, int x, int y) case 2: localOffset = connection->offset + 7; localX = x - localOffset; - localLength = mapHeader->mapData->height - 7; + localLength = mapHeader->mapLayout->height - 7; localY = localLength + y; // additions are reversed for some reason break; case 1: localOffset = connection->offset + 7; localX = x - localOffset; - localLength = gMapHeader.mapData->height + 7; + localLength = gMapHeader.mapLayout->height + 7; localY = y - localLength; break; case 3: - localLength = mapHeader->mapData->width - 7; + localLength = mapHeader->mapLayout->width - 7; localX = localLength + x; // additions are reversed for some reason localOffset = connection->offset + 7; localY = y - localOffset; break; case 4: - localLength = gMapHeader.mapData->width + 7; + localLength = gMapHeader.mapLayout->width + 7; localX = x - localLength; localOffset = connection->offset + 7; localY = y - localOffset; @@ -417,8 +424,8 @@ void sub_80C9720(u8 taskId) { s16 x, y; s16 curX, curY; - s16 width = gMapHeader.mapData->width + 7; - s16 height = gMapHeader.mapData->height + 7; + s16 width = gMapHeader.mapLayout->width + 7; + s16 height = gMapHeader.mapLayout->height + 7; PlayerGetDestCoords(&x, &y); @@ -743,7 +750,7 @@ void ItemUseOutOfBattle_CoinCase(u8 taskId) if (!gTasks[taskId].data[2]) { - Menu_EraseWindowRect(0, 0xD, 0xD, 0x14); + Menu_EraseWindowRect(0, 13, 13, 20); DisplayItemMessageOnField(taskId, gStringVar4, CleanUpItemMenuMessage, 1); } else @@ -752,16 +759,16 @@ void ItemUseOutOfBattle_CoinCase(u8 taskId) } } -void sub_80C9BB8(u8 var) +static void SSTicketWaitForAButtonPress(u8 taskId) { if (gMain.newKeys & A_BUTTON) - CleanUpItemMenuMessage(var); + CleanUpItemMenuMessage(taskId); } -void sub_80C9BD8(u8 var) +static void SSTicketWaitForAButtonPress2(u8 taskId) { if (gMain.newKeys & A_BUTTON) - CleanUpOverworldMessage(var); + CleanUpOverworldMessage(taskId); } // unused @@ -769,20 +776,20 @@ void ItemUseOutOfBattle_SSTicket(u8 taskId) { if (gTasks[taskId].data[2] == 0) { - Menu_EraseWindowRect(0, 0xD, 0xD, 0x14); - DisplayItemMessageOnField(taskId, gUnknown_083D61DC[ItemId_GetSecondaryId(gSpecialVar_ItemId)], sub_80C9BB8, 1); + Menu_EraseWindowRect(0, 13, 13, 20); + DisplayItemMessageOnField(taskId, sSSTidalBetaStrings[ItemId_GetSecondaryId(gSpecialVar_ItemId)], SSTicketWaitForAButtonPress, 1); } else { - DisplayItemMessageOnField(taskId, gUnknown_083D61DC[ItemId_GetSecondaryId(gSpecialVar_ItemId)], sub_80C9BD8, 0); + DisplayItemMessageOnField(taskId, sSSTidalBetaStrings[ItemId_GetSecondaryId(gSpecialVar_ItemId)], SSTicketWaitForAButtonPress2, 0); } } -void sub_80C9C7C(u8 taskId) +void ItemUseOutOfBattle_Berry(u8 taskId) { if (IsPlayerFacingUnplantedSoil() == TRUE) { - gFieldItemUseCallback = sub_80C9D00; + gFieldItemUseCallback = ItemUseOnFieldCB_Berry; gFieldCallback = ExecuteItemUseFromBlackPalette; gTasks[taskId].data[8] = (u32)c2_exit_to_overworld_2_switch >> 16; gTasks[taskId].data[9] = (u32)c2_exit_to_overworld_2_switch; @@ -795,11 +802,11 @@ void sub_80C9C7C(u8 taskId) } } -void sub_80C9D00(u8 taskId) +static void ItemUseOnFieldCB_Berry(u8 taskId) { RemoveBagItem(gSpecialVar_ItemId, 1); ScriptContext2_Enable(); - ScriptContext1_SetupScript(gUnknown_081A1654); + ScriptContext1_SetupScript(S_PlantBerryTreeFromBag); DestroyTask(taskId); } @@ -807,7 +814,7 @@ void ItemUseOutOfBattle_WailmerPail(u8 taskId) { if (TryToWaterBerryTree() == TRUE) { - gFieldItemUseCallback = sub_80C9D74; + gFieldItemUseCallback = ItemUseOnFieldCB_WailmerPail; SetUpItemUseOnFieldCallback(taskId); } else @@ -816,23 +823,23 @@ void ItemUseOutOfBattle_WailmerPail(u8 taskId) } } -void sub_80C9D74(u8 taskId) +static void ItemUseOnFieldCB_WailmerPail(u8 taskId) { ScriptContext2_Enable(); - ScriptContext1_SetupScript(gUnknown_081A168F); + ScriptContext1_SetupScript(S_WaterBerryTreeFromBag); DestroyTask(taskId); } -void sub_80C9D98(u8 taskId) +static void SetPokemonItemUseAndFadeOut(u8 taskId) { - gUnknown_02038561 = 0; + gPokemonItemUseType = ITEM_USE_SINGLE_MON; ItemMenu_ConfirmNormalFade(taskId); } void ItemUseOutOfBattle_Medicine(u8 taskId) { gPokemonItemUseCallback = UseMedicine; - sub_80C9D98(taskId); + SetPokemonItemUseAndFadeOut(taskId); } void ItemUseOutOfBattle_SacredAsh(u8 taskId) @@ -841,74 +848,74 @@ void ItemUseOutOfBattle_SacredAsh(u8 taskId) gLastFieldPokeMenuOpened = 0; - for (i = 0; i < 6; i++) + for (i = 0; i < PARTY_SIZE; i++) { - if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != 0 && GetMonData(&gPlayerParty[i], MON_DATA_HP) == 0) + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE && GetMonData(&gPlayerParty[i], MON_DATA_HP) == 0) { gLastFieldPokeMenuOpened = i; break; } } - gPokemonItemUseCallback = sub_8070048; - gUnknown_02038561 = 4; + gPokemonItemUseCallback = DoSacredAshItemEffect; + gPokemonItemUseType = ITEM_USE_ALL_MONS; ItemMenu_ConfirmNormalFade(taskId); } void ItemUseOutOfBattle_PPRecovery(u8 taskId) { gPokemonItemUseCallback = DoPPRecoveryItemEffect; - sub_80C9D98(taskId); + SetPokemonItemUseAndFadeOut(taskId); } void ItemUseOutOfBattle_PPUp(u8 taskId) { gPokemonItemUseCallback = DoPPUpItemEffect; - sub_80C9D98(taskId); + SetPokemonItemUseAndFadeOut(taskId); } void ItemUseOutOfBattle_RareCandy(u8 taskId) { gPokemonItemUseCallback = DoRareCandyItemEffect; - sub_80C9D98(taskId); + SetPokemonItemUseAndFadeOut(taskId); } void ItemUseOutOfBattle_TMHM(u8 taskId) { - Menu_EraseWindowRect(0, 0xD, 0xD, 0x14); + Menu_EraseWindowRect(0, 13, 13, 20); if (gSpecialVar_ItemId >= ITEM_HM01_CUT) - DisplayItemMessageOnField(taskId, gOtherText_BootedHM, sub_80C9EE4, 1); // HM + DisplayItemMessageOnField(taskId, gOtherText_BootedHM, BootTMHM, 1); // HM else - DisplayItemMessageOnField(taskId, gOtherText_BootedTM, sub_80C9EE4, 1); // TM + DisplayItemMessageOnField(taskId, gOtherText_BootedTM, BootTMHM, 1); // TM } -void sub_80C9EE4(u8 taskId) +static void BootTMHM(u8 taskId) { PlaySE(SE_PC_LOGON); - gTasks[taskId].func = sub_80C9F10; + gTasks[taskId].func = WaitButtonPressAndDisplayTMHMInfo; } -void sub_80C9F10(u8 taskId) +static void WaitButtonPressAndDisplayTMHMInfo(u8 taskId) { if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) { StringCopy(gStringVar1, gMoveNames[ItemIdToBattleMoveId(gSpecialVar_ItemId)]); StringExpandPlaceholders(gStringVar4, gOtherText_ContainsMove); - DisplayItemMessageOnField(taskId, gStringVar4, sub_80C9F80, 1); + DisplayItemMessageOnField(taskId, gStringVar4, DisplayTeachMonTMHMYesNoChoice, 1); } } -void sub_80C9F80(u8 var) +static void DisplayTeachMonTMHMYesNoChoice(u8 taskId) { DisplayYesNoMenu(7, 7, 1); sub_80A3FA0(gBGTilemapBuffers[1], 8, 8, 5, 4, 1); - DoYesNoFuncWithChoice(var, &gUnknown_083D61F4); + DoYesNoFuncWithChoice(taskId, &sTeachMonTMHMYesNoActions); } -void sub_80C9FC0(u8 var) +static void StartTeachMonTMHMMove(u8 taskId) { gPokemonItemUseCallback = TeachMonTMMove; - sub_80C9D98(var); + SetPokemonItemUseAndFadeOut(taskId); } static void PrepareItemUseMessage(void) @@ -919,27 +926,27 @@ static void PrepareItemUseMessage(void) StringExpandPlaceholders(gStringVar4, gOtherText_UsedItem); } -void ItemUseOutOfBattle_Repel(u8 var) +void ItemUseOutOfBattle_Repel(u8 taskId) { if (VarGet(VAR_REPEL_STEP_COUNT) == 0) { VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_ItemId)); PrepareItemUseMessage(); - DisplayItemMessageOnField(var, gStringVar4, CleanUpItemMenuMessage, 1); + DisplayItemMessageOnField(taskId, gStringVar4, CleanUpItemMenuMessage, 1); } else { - DisplayItemMessageOnField(var, gOtherText_RepelLingers, CleanUpItemMenuMessage, 1); + DisplayItemMessageOnField(taskId, gOtherText_RepelLingers, CleanUpItemMenuMessage, 1); } } -void sub_80CA07C(void) +static void sub_80CA07C(void) { sub_80A3E0C(); CopyItemName(gSpecialVar_ItemId, gStringVar2); } -void sub_80CA098(u8 taskId) +static void PlayBlackWhiteFluteSound(u8 taskId) { if(++gTasks[taskId].data[15] > 7) { @@ -956,7 +963,7 @@ void ItemUseOutOfBattle_BlackWhiteFlute(u8 taskId) FlagClear(FLAG_SYS_ENC_DOWN_ITEM); sub_80CA07C(); StringExpandPlaceholders(gStringVar4, gOtherText_UsedFlute); - gTasks[taskId].func = sub_80CA098; + gTasks[taskId].func = PlayBlackWhiteFluteSound; gTasks[taskId].data[15] = 0; } else if (gSpecialVar_ItemId == ITEM_BLACK_FLUTE) @@ -965,19 +972,19 @@ void ItemUseOutOfBattle_BlackWhiteFlute(u8 taskId) FlagClear(FLAG_SYS_ENC_UP_ITEM); sub_80CA07C(); StringExpandPlaceholders(gStringVar4, gOtherText_UsedRepel); - gTasks[taskId].func = sub_80CA098; + gTasks[taskId].func = PlayBlackWhiteFluteSound; gTasks[taskId].data[15] = 0; } } void task08_080A1C44(u8 taskId) { - player_avatar_init_params_reset(); - sub_80878A8(); + ResetInitialPlayerAvatarState(); + StartEscapeRopeFieldEffect(); DestroyTask(taskId); } -void EscapeRopeCallback(u8 taskId) +static void ItemUseOnFieldCB_EscapeRope(u8 taskId) { Overworld_ResetStateAfterDigEscRope(); PrepareItemUseMessage(); @@ -997,7 +1004,7 @@ void ItemUseOutOfBattle_EscapeRope(u8 taskId) { if (CanUseEscapeRopeOnCurrMap() == TRUE) { - gFieldItemUseCallback = EscapeRopeCallback; + gFieldItemUseCallback = ItemUseOnFieldCB_EscapeRope; SetUpItemUseOnFieldCallback(taskId); } else @@ -1006,30 +1013,30 @@ void ItemUseOutOfBattle_EscapeRope(u8 taskId) } } -void ItemUseOutOfBattle_EvolutionStone(u8 var) +void ItemUseOutOfBattle_EvolutionStone(u8 taskId) { gPokemonItemUseCallback = DoEvolutionStoneItemEffect; - sub_80C9D98(var); + SetPokemonItemUseAndFadeOut(taskId); } -void ItemUseInBattle_PokeBall(u8 var) +void ItemUseInBattle_PokeBall(u8 taskId) { if (PlayerPartyAndPokemonStorageFull() == FALSE) // have room for mon? { RemoveBagItem(gSpecialVar_ItemId, 1); - sub_80A7094(var); + sub_80A7094(taskId); } else { - Menu_EraseWindowRect(0, 0xD, 0xD, 0x14); - DisplayItemMessageOnField(var, gOtherText_BoxIsFull, CleanUpItemMenuMessage, 1); + Menu_EraseWindowRect(0, 13, 13, 20); + DisplayItemMessageOnField(taskId, gOtherText_BoxIsFull, CleanUpItemMenuMessage, 1); } } -void sub_80CA294(u8 var) +void sub_80CA294(u8 taskId) { if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON) - sub_80A7094(var); + sub_80A7094(taskId); } void sub_80CA2BC(u8 taskId) @@ -1046,7 +1053,7 @@ void ItemUseInBattle_StatIncrease(u8 taskId) { u16 partyId = gBattlerPartyIndexes[gBankInMenu]; - Menu_EraseWindowRect(0, 0xD, 0xD, 0x14); + Menu_EraseWindowRect(0, 13, 13, 20); if (ExecuteTableBasedItemEffect_(&gPlayerParty[partyId], gSpecialVar_ItemId, partyId, 0) != FALSE) { @@ -1064,7 +1071,7 @@ void sub_80CA394(u8 taskId) if (!gPaletteFade.active) { sub_8094E4C(); - gpu_pal_allocator_reset__manage_upper_four(); + FreeAndReserveObjectSpritePalettes(); DestroyTask(taskId); } } @@ -1083,7 +1090,7 @@ void ItemUseInBattle_Medicine(u8 var) void unref_sub_80CA410(u8 var) { - gPokemonItemUseCallback = sub_8070048; + gPokemonItemUseCallback = DoSacredAshItemEffect; sub_80CA3C0(var); } @@ -1095,7 +1102,7 @@ void ItemUseInBattle_PPRecovery(u8 var) void unref_sub_80CA448(u8 var) { - Menu_EraseWindowRect(0, 0xD, 0xD, 0x14); + Menu_EraseWindowRect(0, 13, 13, 20); if (ExecuteTableBasedItemEffect__(0, gSpecialVar_ItemId, 0) == FALSE) { @@ -1112,9 +1119,9 @@ void unref_sub_80CA448(u8 var) void ItemUseInBattle_Escape(u8 taskId) { - Menu_EraseWindowRect(0, 0xD, 0xD, 0x14); + Menu_EraseWindowRect(0, 13, 13, 20); - if((gBattleTypeFlags & BATTLE_TYPE_TRAINER) == FALSE) + if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) == FALSE) { PrepareItemUseMessage(); DisplayItemMessageOnField(taskId, gStringVar4, sub_80A7094, 1); diff --git a/src/main_menu.c b/src/main_menu.c index 886995b16..93d9be77a 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -774,7 +774,7 @@ static void Task_NewGameSpeech1(u8 taskId) gTasks[taskId].data[3] = 0xFF; gTasks[taskId].tFrameCounter = 216; //Wait 3.6 seconds (216 frames) before starting speech - PlayBGM(BGM_DOORO_X4); + PlayBGM(MUS_DOORO_X4); } static void Task_NewGameSpeech2(u8 taskId) diff --git a/src/mauville_man.c b/src/mauville_man.c index e22809242..bfdfe9cf1 100644 --- a/src/mauville_man.c +++ b/src/mauville_man.c @@ -745,7 +745,7 @@ static void Task_BardSong(u8 taskId) case 3: if (gStringVar4[task->tCharIndex] == EOS) { - FadeInNewBGM(BGM_POKECEN, 6); + FadeInNewBGM(MUS_POKECEN, 6); m4aMPlayFadeOutTemporarily(&gMPlay_SE2, 2); EnableBothScriptContexts(); DestroyTask(taskId); diff --git a/src/move_tutor_menu.c b/src/move_tutor_menu.c index 7e1365391..0ecc82a72 100644 --- a/src/move_tutor_menu.c +++ b/src/move_tutor_menu.c @@ -602,13 +602,13 @@ static void MoveTutorMain(void) PrintMainMoveTutorMenuText(gOtherText_ForgotOrDidNotLearnMove); #endif sMoveTutorMenu->state = 31; - PlayFanfare(BGM_FANFA1); + PlayFanfare(MUS_FANFA1); } break; case 31: if (Menu_UpdateWindowText()) { - PlayFanfare(BGM_FANFA1); + PlayFanfare(MUS_FANFA1); sMoveTutorMenu->state = 32; } break; diff --git a/src/new_game.c b/src/new_game.c index f8a5524f5..683a22801 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -137,7 +137,7 @@ void debug_sub_8052E04() void WarpToTruck(void) { Overworld_SetWarpDestination(MAP_GROUP(INSIDE_OF_TRUCK), MAP_NUM(INSIDE_OF_TRUCK), -1, -1, -1); - warp_in(); + WarpIntoMap(); } void ClearSav2(void) diff --git a/src/overworld.c b/src/overworld.c index 47e23ad35..f6dea1271 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -50,17 +50,11 @@ #include "wild_encounter.h" #ifdef SAPPHIRE -#define LEGENDARY_MUSIC BGM_OOAME // Heavy Rain +#define LEGENDARY_MUSIC MUS_OOAME // Heavy Rain #else -#define LEGENDARY_MUSIC BGM_HIDERI // Drought +#define LEGENDARY_MUSIC MUS_HIDERI // Drought #endif -struct UnkTVStruct -{ - u32 tv_field_0; - u32 tv_field_4; -}; - extern u8 gUnknown_020297ED; extern u16 gTotalCameraPixelOffsetY; extern u16 gTotalCameraPixelOffsetX; @@ -86,15 +80,15 @@ extern u8 TradeRoom_PromptToCancelLink[]; extern u8 TradeRoom_TerminateLink[]; extern u8 gUnknown_081A4508[]; -extern struct MapData * const gMapAttributes[]; +extern struct MapLayout * const gMapLayouts[]; extern struct MapHeader * const * const gMapGroups[]; extern s32 gMaxFlashLevel; -EWRAM_DATA struct WarpData gUnknown_020297F0 = {0}; -EWRAM_DATA struct WarpData gWarpDestination = {0}; // new warp position -EWRAM_DATA struct WarpData gUnknown_02029800 = {0}; -EWRAM_DATA struct WarpData gUnknown_02029808 = {0}; -EWRAM_DATA struct UnkPlayerStruct gUnknown_02029810 = {0}; +EWRAM_DATA struct WarpData gLastUsedWarp = {0}; +EWRAM_DATA struct WarpData gWarpDestination = {0}; +EWRAM_DATA struct WarpData gFixedDiveWarp = {0}; +EWRAM_DATA struct WarpData gFixedHoleWarp = {0}; +EWRAM_DATA struct InitialPlayerAvatarState gInitialPlayerAvatarState = {0}; EWRAM_DATA static u16 sAmbientCrySpecies = 0; EWRAM_DATA static bool8 sIsAmbientCryWaterMon = FALSE; EWRAM_DATA struct LinkPlayerEventObject gLinkPlayerEventObjects[4] = {0}; @@ -104,10 +98,16 @@ static u16 (*gUnknown_03000584)(u32); static u8 gUnknown_03000588; u16 word_3004858; -void (*gFieldCallback)(void); +extern void (*gFieldCallback)(void); u8 gUnknown_03004860; u8 gFieldLinkPlayerCount; +static u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState*, u16, u8); +static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState*, u8, u16, u8); +static bool32 sub_805483C(u8*); +static void c2_80567AC(void); +static void InitOverworldGraphicsRegisters(void); + static const struct WarpData sDummyWarpData = { .mapGroup = -1, @@ -129,20 +129,20 @@ static const u8 sUnusedData[] = 0x2C, 0x00, 0x00, 0x00, }; -const struct UCoords32 gUnknown_0821664C[] = -{ - { 0, 0}, - { 0, 1}, - { 0, -1}, - {-1, 0}, - { 1, 0}, - {-1, 1}, - { 1, 1}, - {-1, -1}, - { 1, -1}, +const struct UCoords32 gDirectionToVectors[] = +{ + { 0, 0}, // DIR_NONE + { 0, 1}, // DIR_SOUTH + { 0, -1}, // DIR_NORTH + {-1, 0}, // DIR_WEST + { 1, 0}, // DIR_EAST + {-1, 1}, // DIR_SOUTHWEST + { 1, 1}, // DIR_SOUTHEAST + {-1, -1}, // DIR_NORTHWEST + { 1, -1}, // DIR_NORTHEAST }; -const struct ScanlineEffectParams gUnknown_08216694 = +static const struct ScanlineEffectParams sFlashEffectParams = { (void *)REG_ADDR_WIN0H, ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1, @@ -197,12 +197,12 @@ static void DoWhiteOut(void) ScrSpecial_HealPlayerParty(); Overworld_ResetStateAfterWhiteOut(); Overworld_SetWarpDestToLastHealLoc(); - warp_in(); + WarpIntoMap(); } void Overworld_ResetStateAfterFly(void) { - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); FlagClear(FLAG_SYS_CYCLING_ROAD); FlagClear(FLAG_SYS_CRUISE_MODE); FlagClear(FLAG_SYS_SAFARI_MODE); @@ -212,7 +212,7 @@ void Overworld_ResetStateAfterFly(void) void Overworld_ResetStateAfterTeleport(void) { - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); FlagClear(FLAG_SYS_CYCLING_ROAD); FlagClear(FLAG_SYS_CRUISE_MODE); FlagClear(FLAG_SYS_SAFARI_MODE); @@ -223,7 +223,7 @@ void Overworld_ResetStateAfterTeleport(void) void Overworld_ResetStateAfterDigEscRope(void) { - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); FlagClear(FLAG_SYS_CYCLING_ROAD); FlagClear(FLAG_SYS_CRUISE_MODE); FlagClear(FLAG_SYS_SAFARI_MODE); @@ -233,7 +233,7 @@ void Overworld_ResetStateAfterDigEscRope(void) void Overworld_ResetStateAfterWhiteOut(void) { - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); FlagClear(FLAG_SYS_CYCLING_ROAD); FlagClear(FLAG_SYS_CRUISE_MODE); FlagClear(FLAG_SYS_SAFARI_MODE); @@ -241,7 +241,7 @@ void Overworld_ResetStateAfterWhiteOut(void) FlagClear(FLAG_SYS_USE_FLASH); } -void sub_805308C(void) +static void sub_805308C(void) { FlagClear(FLAG_SYS_SAFARI_MODE); ChooseAmbientCrySpecies(); @@ -269,18 +269,18 @@ void IncrementGameStat(u8 index) } } -u32 GetGameStat(u8 index) +u32 GetGameStat(u8 stat) { - if (index >= NUM_GAME_STATS) + if (stat >= NUM_GAME_STATS) return 0; - return gSaveBlock1.gameStats[index]; + return gSaveBlock1.gameStats[stat]; } -void SetGameStat(u8 index, u32 value) +void SetGameStat(u8 stat, u32 value) { - if (index < NUM_GAME_STATS) - gSaveBlock1.gameStats[index] = value; + if (stat < NUM_GAME_STATS) + gSaveBlock1.gameStats[stat] = value; } void LoadEventObjTemplatesFromHeader(void) @@ -336,26 +336,26 @@ void Overworld_SetEventObjTemplateMovementType(u8 localId, u8 movementType) static void mapdata_load_assets_to_gpu_and_full_redraw(void) { move_tilemap_camera_to_upper_left_corner(); - copy_map_tileset1_tileset2_to_vram(gMapHeader.mapData); - apply_map_tileset1_tileset2_palette(gMapHeader.mapData); + copy_map_tileset1_tileset2_to_vram(gMapHeader.mapLayout); + apply_map_tileset1_tileset2_palette(gMapHeader.mapLayout); DrawWholeMapView(); cur_mapheader_run_tileset_funcs_after_some_cpuset(); } -static struct MapData *get_mapdata_header(void) +static struct MapLayout *GetMapLayout(void) { - u16 mapDataId = gSaveBlock1.mapDataId; - if (mapDataId) - return gMapAttributes[mapDataId - 1]; + u16 mapLayoutId = gSaveBlock1.mapLayoutId; + if (mapLayoutId) + return gMapLayouts[mapLayoutId - 1]; return NULL; } static void ApplyCurrentWarp(void) { - gUnknown_020297F0 = gSaveBlock1.location; + gLastUsedWarp = gSaveBlock1.location; gSaveBlock1.location = gWarpDestination; - gUnknown_02029800 = sDummyWarpData; - gUnknown_02029808 = sDummyWarpData; + gFixedDiveWarp = sDummyWarpData; + gFixedHoleWarp = sDummyWarpData; } static void SetWarpData(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) @@ -367,7 +367,7 @@ static void SetWarpData(struct WarpData *warp, s8 mapGroup, s8 mapNum, s8 warpId warp->y = y; } -static bool32 warp_data_is_not_neg_1(struct WarpData *warp) +static bool32 IsDummyWarp(struct WarpData *warp) { if (warp->mapGroup != -1) return FALSE; @@ -387,25 +387,25 @@ struct MapHeader *const Overworld_GetMapHeaderByGroupAndId(u16 mapGroup, u16 map return gMapGroups[mapGroup][mapNum]; } -struct MapHeader *const warp1_get_mapheader(void) +struct MapHeader *const GetDestinationWarpMapHeader(void) { return Overworld_GetMapHeaderByGroupAndId(gWarpDestination.mapGroup, gWarpDestination.mapNum); } -static void set_current_map_header_from_sav1_save_old_name(void) +static void LoadCurrentMapData(void) { gMapHeader = *Overworld_GetMapHeaderByGroupAndId(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum); - gSaveBlock1.mapDataId = gMapHeader.mapDataId; - gMapHeader.mapData = get_mapdata_header(); + gSaveBlock1.mapLayoutId = gMapHeader.mapLayoutId; + gMapHeader.mapLayout = GetMapLayout(); } static void LoadSaveblockMapHeader(void) { gMapHeader = *Overworld_GetMapHeaderByGroupAndId(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum); - gMapHeader.mapData = get_mapdata_header(); + gMapHeader.mapLayout = GetMapLayout(); } -void sub_80533CC(void) +static void SetPlayerCoordsFromWarp(void) { if (gSaveBlock1.location.warpId >= 0 && gSaveBlock1.location.warpId < gMapHeader.events->warpCount) { @@ -419,16 +419,16 @@ void sub_80533CC(void) } else { - gSaveBlock1.pos.x = gMapHeader.mapData->width / 2; - gSaveBlock1.pos.y = gMapHeader.mapData->height / 2; + gSaveBlock1.pos.x = gMapHeader.mapLayout->width / 2; + gSaveBlock1.pos.y = gMapHeader.mapLayout->height / 2; } } -void warp_in(void) +void WarpIntoMap(void) { ApplyCurrentWarp(); - set_current_map_header_from_sav1_save_old_name(); - sub_80533CC(); + LoadCurrentMapData(); + SetPlayerCoordsFromWarp(); } void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) @@ -495,31 +495,27 @@ void sub_8053678(void) gWarpDestination = gSaveBlock1.warp4; } -void sub_8053690(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) +void SetFixedDiveWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) { - SetWarpData(&gUnknown_02029800, mapGroup, mapNum, warpId, x, y); + SetWarpData(&gFixedDiveWarp, mapGroup, mapNum, warpId, x, y); } -static void warp1_set_to_warp2(void) +static void SetFixedDiveWarpAsDestination(void) { - gWarpDestination = gUnknown_02029800; + gWarpDestination = gFixedDiveWarp; } -void sub_80536E4(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) +void SetFixedHoleWarp(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y) { - SetWarpData(&gUnknown_02029808, mapGroup, mapNum, warpId, x, y); + SetWarpData(&gFixedHoleWarp, mapGroup, mapNum, warpId, x, y); } -void sub_8053720(s16 x, s16 y) +void SetFixedHoleWarpAsDestination(s16 x, s16 y) { - if (warp_data_is_not_neg_1(&gUnknown_02029808) == TRUE) - { - gWarpDestination = gUnknown_020297F0; - } + if (IsDummyWarp(&gFixedHoleWarp) == TRUE) + gWarpDestination = gLastUsedWarp; else - { - Overworld_SetWarpDestination(gUnknown_02029808.mapGroup, gUnknown_02029808.mapNum, -1, x, y); - } + Overworld_SetWarpDestination(gFixedHoleWarp.mapGroup, gFixedHoleWarp.mapNum, -1, x, y); } void sub_8053778(void) @@ -563,7 +559,6 @@ struct MapConnection *GetMapConnection(u8 dir) static bool8 SetDiveWarp(u8 direction, u16 x, u16 y) { struct MapConnection *connection = GetMapConnection(direction); - if (connection != NULL) { Overworld_SetWarpDestination(connection->mapGroup, connection->mapNum, -1, x, y); @@ -571,10 +566,12 @@ static bool8 SetDiveWarp(u8 direction, u16 x, u16 y) else { mapheader_run_script_with_tag_x6(); - if (warp_data_is_not_neg_1(&gUnknown_02029800)) + if (IsDummyWarp(&gFixedDiveWarp)) return FALSE; - warp1_set_to_warp2(); + + SetFixedDiveWarpAsDestination(); } + return TRUE; } @@ -595,7 +592,7 @@ void sub_80538F0(u8 mapGroup, u8 mapNum) Overworld_SetWarpDestination(mapGroup, mapNum, -1, -1, -1); sub_8053F0C(); ApplyCurrentWarp(); - set_current_map_header_from_sav1_save_old_name(); + LoadCurrentMapData(); LoadEventObjTemplatesFromHeader(); ClearTempFieldEventData(); ResetCyclingRoadChallengeData(); @@ -608,8 +605,8 @@ void sub_80538F0(u8 mapGroup, u8 mapNum) Overworld_ClearSavedMusic(); mapheader_run_script_with_tag_x3(); not_trainer_hill_battle_pyramid(); - sub_8056D38(gMapHeader.mapData); - apply_map_tileset2_palette(gMapHeader.mapData); + sub_8056D38(gMapHeader.mapLayout); + apply_map_tileset2_palette(gMapHeader.mapLayout); for (paletteIndex = 6; paletteIndex < 12; paletteIndex++) ApplyWeatherGammaShiftToPal(paletteIndex); @@ -628,7 +625,7 @@ void sub_8053994(u32 a1) bool8 v2; bool8 v3; - set_current_map_header_from_sav1_save_old_name(); + LoadCurrentMapData(); LoadEventObjTemplatesFromHeader(); v2 = is_map_type_1_2_3_5_or_6(gMapHeader.mapType); v3 = Overworld_MapTypeIsIndoors(gMapHeader.mapType); @@ -655,82 +652,82 @@ void sub_8053994(u32 a1) } } -void player_avatar_init_params_reset(void) +void ResetInitialPlayerAvatarState(void) { - gUnknown_02029810.player_field_1 = 1; - gUnknown_02029810.player_field_0 = 1; + gInitialPlayerAvatarState.direction = DIR_SOUTH; + gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT; } -void walkrun_find_lowest_active_bit_in_bitfield(void) +void StoreInitialPlayerAvatarState(void) { - gUnknown_02029810.player_field_1 = GetPlayerFacingDirection(); + gInitialPlayerAvatarState.direction = GetPlayerFacingDirection(); if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE)) - gUnknown_02029810.player_field_0 = 2; + gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_MACH_BIKE; else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE)) - gUnknown_02029810.player_field_0 = 4; + gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ACRO_BIKE; else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) - gUnknown_02029810.player_field_0 = 8; + gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_SURFING; else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_UNDERWATER)) - gUnknown_02029810.player_field_0 = 16; + gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_UNDERWATER; else - gUnknown_02029810.player_field_0 = 1; + gInitialPlayerAvatarState.transitionFlags = PLAYER_AVATAR_FLAG_ON_FOOT; } -struct UnkPlayerStruct *sub_8053AA8(void) +static struct InitialPlayerAvatarState *GetInitialPlayerAvatarState(void) { - struct UnkPlayerStruct playerStruct; + struct InitialPlayerAvatarState playerStruct; u8 mapType = Overworld_GetMapTypeOfSaveblockLocation(); - u16 v2 = cur_mapdata_block_role_at_screen_center_acc_to_sav1(); - u8 v4 = sub_8053B00(&gUnknown_02029810, v2, mapType); - playerStruct.player_field_0 = v4; - playerStruct.player_field_1 = sub_8053B60(&gUnknown_02029810, v4, v2, mapType); - gUnknown_02029810 = playerStruct; - return &gUnknown_02029810; -} - -u8 sub_8053B00(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3) -{ - if (a3 != 8 && FlagGet(FLAG_SYS_CRUISE_MODE)) - return 1; - if (a3 == 5) - return 16; - if (MetatileBehavior_IsSurfableWaterOrUnderwater(a2) == 1) - return 8; + u16 metatileBehavior = GetCenterScreenMetatileBehavior(); + u8 transitionFlags = GetAdjustedInitialTransitionFlags(&gInitialPlayerAvatarState, metatileBehavior, mapType); + playerStruct.transitionFlags = transitionFlags; + playerStruct.direction = GetAdjustedInitialDirection(&gInitialPlayerAvatarState, transitionFlags, metatileBehavior, mapType); + gInitialPlayerAvatarState = playerStruct; + return &gInitialPlayerAvatarState; +} + +static u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *playerStruct, u16 metatileBehavior, u8 mapType) +{ + if (mapType != MAP_TYPE_INDOOR && FlagGet(FLAG_SYS_CRUISE_MODE)) + return PLAYER_AVATAR_FLAG_ON_FOOT; + if (mapType == MAP_TYPE_UNDERWATER) + return PLAYER_AVATAR_FLAG_UNDERWATER; + if (MetatileBehavior_IsSurfableWaterOrUnderwater(metatileBehavior) == TRUE) + return PLAYER_AVATAR_FLAG_SURFING; if (Overworld_IsBikingAllowed() != TRUE) - return 1; - if (playerStruct->player_field_0 == 2) - return 2; - if (playerStruct->player_field_0 != 4) - return 1; - return 4; -} - -u8 sub_8053B60(struct UnkPlayerStruct *playerStruct, u8 a2, u16 a3, u8 a4) -{ - if (FlagGet(FLAG_SYS_CRUISE_MODE) && a4 == 6) - return 4; - if (MetatileBehavior_IsDeepSouthWarp(a3) == TRUE) - return 2; - if (MetatileBehavior_IsNonAnimDoor(a3) == TRUE || MetatileBehavior_IsDoor(a3) == TRUE) - return 1; - if (MetatileBehavior_IsSouthArrowWarp(a3) == TRUE) - return 2; - if (MetatileBehavior_IsNorthArrowWarp(a3) == TRUE) - return 1; - if (MetatileBehavior_IsWestArrowWarp(a3) == TRUE) - return 4; - if (MetatileBehavior_IsEastArrowWarp(a3) == TRUE) - return 3; - if ((playerStruct->player_field_0 == 16 && a2 == 8) - || (playerStruct->player_field_0 == 8 && a2 == 16)) - return playerStruct->player_field_1; - if (MetatileBehavior_IsLadder(a3) == TRUE) - return playerStruct->player_field_1; - return 1; -} - -u16 cur_mapdata_block_role_at_screen_center_acc_to_sav1(void) + return PLAYER_AVATAR_FLAG_ON_FOOT; + if (playerStruct->transitionFlags == PLAYER_AVATAR_FLAG_MACH_BIKE) + return PLAYER_AVATAR_FLAG_MACH_BIKE; + if (playerStruct->transitionFlags != PLAYER_AVATAR_FLAG_ACRO_BIKE) + return PLAYER_AVATAR_FLAG_ON_FOOT; + return PLAYER_AVATAR_FLAG_ACRO_BIKE; +} + +static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStruct, u8 transitionFlags, u16 metatileBehavior, u8 mapType) +{ + if (FlagGet(FLAG_SYS_CRUISE_MODE) && mapType == MAP_TYPE_6) + return DIR_EAST; + if (MetatileBehavior_IsDeepSouthWarp(metatileBehavior) == TRUE) + return DIR_NORTH; + if (MetatileBehavior_IsNonAnimDoor(metatileBehavior) == TRUE || MetatileBehavior_IsDoor(metatileBehavior) == TRUE) + return DIR_SOUTH; + if (MetatileBehavior_IsSouthArrowWarp(metatileBehavior) == TRUE) + return DIR_NORTH; + if (MetatileBehavior_IsNorthArrowWarp(metatileBehavior) == TRUE) + return DIR_SOUTH; + if (MetatileBehavior_IsWestArrowWarp(metatileBehavior) == TRUE) + return DIR_EAST; + if (MetatileBehavior_IsEastArrowWarp(metatileBehavior) == TRUE) + return DIR_WEST; + if ((playerStruct->transitionFlags == PLAYER_AVATAR_FLAG_UNDERWATER && transitionFlags == PLAYER_AVATAR_FLAG_SURFING) + || (playerStruct->transitionFlags == PLAYER_AVATAR_FLAG_SURFING && transitionFlags == PLAYER_AVATAR_FLAG_UNDERWATER)) + return playerStruct->direction; + if (MetatileBehavior_IsLadder(metatileBehavior) == TRUE) + return playerStruct->direction; + return DIR_SOUTH; +} + +u16 GetCenterScreenMetatileBehavior(void) { return MapGridGetMetatileBehaviorAt(gSaveBlock1.pos.x + 7, gSaveBlock1.pos.y + 7); } @@ -784,10 +781,10 @@ u8 Overworld_GetFlashLevel(void) return gSaveBlock1.flashLevel; } -void sub_8053D14(u16 mapDataId) +void sub_8053D14(u16 mapLayoutId) { - gSaveBlock1.mapDataId = mapDataId; - gMapHeader.mapData = get_mapdata_header(); + gSaveBlock1.mapLayoutId = mapLayoutId; + gMapHeader.mapLayout = GetMapLayout(); } static bool16 ShouldLegendaryMusicPlayAtLocation(struct WarpData *warp) @@ -831,7 +828,7 @@ static u16 GetLocationMusic(struct WarpData *warp) if (ShouldLegendaryMusicPlayAtLocation(warp) == TRUE) return LEGENDARY_MUSIC; else if (IsInfiltratedWeatherInstitute(warp) == TRUE) - return BGM_TOZAN; + return MUS_TOZAN; else return Overworld_GetMapHeaderByGroupAndId(warp->mapGroup, warp->mapNum)->music; } @@ -844,7 +841,7 @@ u16 GetCurrLocationDefaultMusic(void) if (gSaveBlock1.location.mapGroup == MAP_GROUP(ROUTE111) && gSaveBlock1.location.mapNum == MAP_NUM(ROUTE111) && GetSav1Weather() == 8) - return BGM_ASHROAD; + return MUS_ASHROAD; music = GetLocationMusic(&gSaveBlock1.location); if (music != 0x7FFF) @@ -854,9 +851,9 @@ u16 GetCurrLocationDefaultMusic(void) else { if (gSaveBlock1.pos.x < 24) - return BGM_DOORO_X1; + return MUS_DOORO_X1; else - return BGM_GRANROAD; + return MUS_GRANROAD; } } @@ -871,9 +868,9 @@ u16 GetWarpDestinationMusic(void) { if (gSaveBlock1.location.mapGroup == MAP_GROUP(MAUVILLE_CITY) && gSaveBlock1.location.mapNum == MAP_NUM(MAUVILLE_CITY)) - return BGM_DOORO_X1; + return MUS_DOORO_X1; else - return BGM_GRANROAD; + return MUS_GRANROAD; } } @@ -891,9 +888,9 @@ void Overworld_PlaySpecialMapMusic(void) if (gSaveBlock1.savedMusic) music = gSaveBlock1.savedMusic; else if (Overworld_GetMapTypeOfSaveblockLocation() == MAP_TYPE_UNDERWATER) - music = BGM_DEEPDEEP; + music = MUS_DEEPDEEP; else if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) - music = BGM_NAMINORI; + music = MUS_NAMINORI; } if (music != GetCurrentMapMusic()) @@ -918,10 +915,10 @@ void sub_8053F0C(void) u16 currentMusic = GetCurrentMapMusic(); if (newMusic != LEGENDARY_MUSIC) { - if (currentMusic == BGM_DEEPDEEP || currentMusic == BGM_NAMINORI) + if (currentMusic == MUS_DEEPDEEP || currentMusic == MUS_NAMINORI) return; if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) - newMusic = BGM_NAMINORI; + newMusic = MUS_NAMINORI; } if (newMusic != currentMusic) { @@ -949,14 +946,14 @@ void Overworld_ChangeMusicTo(u16 newMusic) u8 GetMapMusicFadeoutSpeed(void) { - struct MapHeader *mapHeader = warp1_get_mapheader(); + struct MapHeader *mapHeader = GetDestinationWarpMapHeader(); if (Overworld_MapTypeIsIndoors(mapHeader->mapType) == TRUE) return 2; else return 4; } -void sub_8053FF8(void) +void TryFadeOutOldMapMusic(void) { u16 music = GetWarpDestinationMusic(); if (FlagGet(FLAG_SPECIAL_FLAG_1) != TRUE && music != GetCurrentMapMusic()) @@ -966,7 +963,7 @@ void sub_8053FF8(void) } } -bool8 sub_8054034(void) +bool8 BGMusicStopped(void) { return IsNotWaitingForBGMStop(); } @@ -1054,9 +1051,9 @@ u8 Overworld_GetMapTypeOfSaveblockLocation(void) return GetMapTypeByWarpData(&gSaveBlock1.location); } -u8 get_map_type_from_warp0(void) +u8 GetLastUsedWarpMapType(void) { - return GetMapTypeByWarpData(&gUnknown_020297F0); + return GetMapTypeByWarpData(&gLastUsedWarp); } bool8 is_map_type_1_2_3_5_or_6(u8 mapType) @@ -1246,7 +1243,7 @@ void sub_80543DC(u16 (*a1)(u32)) gUnknown_03000584 = a1; } -void sub_80543E8(void) +static void RunFieldCallback(void) { if (gFieldCallback != NULL) gFieldCallback(); @@ -1261,7 +1258,7 @@ void CB2_NewGame(void) StopMapMusic(); ResetSafariZoneFlag_(); NewGameInitData(); - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); PlayTimeCounter_Start(); ScriptContext1_Init(); ScriptContext2_Disable(); @@ -1274,14 +1271,12 @@ void CB2_NewGame(void) #if DEBUG -extern void (*gFieldCallback)(void); - void debug_sub_8058C00(void) { FieldClearVBlankHBlankCallbacks(); StopMapMusic(); ResetSafariZoneFlag_(); - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); PlayTimeCounter_Start(); ScriptContext1_Init(); ScriptContext2_Disable(); @@ -1309,7 +1304,7 @@ void CB2_WhiteOut(void) StopMapMusic(); ResetSafariZoneFlag_(); DoWhiteOut(); - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); ScriptContext1_Init(); ScriptContext2_Disable(); gFieldCallback = sub_8080B60; @@ -1363,7 +1358,7 @@ void sub_8054588(void) SetMainCallback2(c2_80567AC); } -void c2_80567AC(void) +static void c2_80567AC(void) { if (sub_805483C(&gMain.state)) { @@ -1472,7 +1467,7 @@ void CB2_ContinueSavedGame(void) { ClearSecretBase2Field_9(); sub_8053778(); - warp_in(); + WarpIntoMap(); SetMainCallback2(CB2_LoadMap); } else @@ -1509,19 +1504,19 @@ void VBlankCB_Field(void) sub_8072E74(); } -void sub_8054814(void) +static void InitCurrentFlashLevelScanlineEffect(void) { - u8 val = Overworld_GetFlashLevel(); - if (val) + u8 flashLevel = Overworld_GetFlashLevel(); + if (flashLevel) { - sub_80815E0(val); - ScanlineEffect_SetParams(gUnknown_08216694); + WriteFlashScanlineEffectBuffer(flashLevel); + ScanlineEffect_SetParams(sFlashEffectParams); } } -bool32 sub_805483C(u8 *a1) +static bool32 sub_805483C(u8 *state) { - switch (*a1) + switch (*state) { case 0: FieldClearVBlankHBlankCallbacks(); @@ -1529,60 +1524,60 @@ bool32 sub_805483C(u8 *a1) ScriptContext2_Disable(); sub_8054F70(); sub_8054BA8(); - (*a1)++; + (*state)++; break; case 1: sub_8053994(1); - (*a1)++; + (*state)++; break; case 2: sub_8054D4C(1); - (*a1)++; + (*state)++; break; case 3: sub_8054E98(); sub_8054D90(); sub_8054EC8(); sub_8054E60(); - (*a1)++; + (*state)++; break; case 4: - sub_8054814(); - sub_8054C54(); + InitCurrentFlashLevelScanlineEffect(); + InitOverworldGraphicsRegisters(); Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C); InitMenuWindow(&gMenuTextWindowTemplate); - (*a1)++; + (*state)++; break; case 5: move_tilemap_camera_to_upper_left_corner(); - (*a1)++; + (*state)++; break; case 6: - sub_8056D28(gMapHeader.mapData); - (*a1)++; + sub_8056D28(gMapHeader.mapLayout); + (*state)++; break; case 7: - sub_8056D38(gMapHeader.mapData); - (*a1)++; + sub_8056D38(gMapHeader.mapLayout); + (*state)++; break; case 8: - apply_map_tileset1_tileset2_palette(gMapHeader.mapData); - (*a1)++; + apply_map_tileset1_tileset2_palette(gMapHeader.mapLayout); + (*state)++; break; case 9: DrawWholeMapView(); - (*a1)++; + (*state)++; break; case 10: cur_mapheader_run_tileset_funcs_after_some_cpuset(); - (*a1)++; + (*state)++; break; case 12: - sub_80543E8(); - (*a1)++; + RunFieldCallback(); + (*state)++; break; case 11: - (*a1)++; + (*state)++; break; case 13: return 1; @@ -1590,67 +1585,67 @@ bool32 sub_805483C(u8 *a1) return 0; } -bool32 sub_805493C(u8 *a1, u32 a2) +bool32 sub_805493C(u8 *state, u32 a2) { - switch (*a1) + switch (*state) { case 0: FieldClearVBlankHBlankCallbacks(); sub_8053994(a2); - (*a1)++; + (*state)++; break; case 1: sub_8054BA8(); - (*a1)++; + (*state)++; break; case 2: sub_8054D4C(a2); - (*a1)++; + (*state)++; break; case 3: mli4_mapscripts_and_other(); sub_8054E34(); - (*a1)++; + (*state)++; break; case 4: - sub_8054814(); - sub_8054C54(); + InitCurrentFlashLevelScanlineEffect(); + InitOverworldGraphicsRegisters(); Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C); InitMenuWindow(&gMenuTextWindowTemplate); - (*a1)++; + (*state)++; break; case 5: move_tilemap_camera_to_upper_left_corner(); - (*a1)++; + (*state)++; break; case 6: - sub_8056D28(gMapHeader.mapData); - (*a1)++; + sub_8056D28(gMapHeader.mapLayout); + (*state)++; break; case 7: - sub_8056D38(gMapHeader.mapData); - (*a1)++; + sub_8056D38(gMapHeader.mapLayout); + (*state)++; break; case 8: - apply_map_tileset1_tileset2_palette(gMapHeader.mapData); - (*a1)++; + apply_map_tileset1_tileset2_palette(gMapHeader.mapLayout); + (*state)++; break; case 9: DrawWholeMapView(); - (*a1)++; + (*state)++; break; case 10: cur_mapheader_run_tileset_funcs_after_some_cpuset(); - (*a1)++; + (*state)++; break; case 11: if (gMapHeader.flags == 1 && sub_80BBB24() == 1) ShowMapNamePopup(); - (*a1)++; + (*state)++; break; case 12: - sub_80543E8(); - (*a1)++; + RunFieldCallback(); + (*state)++; break; case 13: return 1; @@ -1658,24 +1653,24 @@ bool32 sub_805493C(u8 *a1, u32 a2) return 0; } -bool32 sub_8054A4C(u8 *a1) +bool32 sub_8054A4C(u8 *state) { - switch (*a1) + switch (*state) { case 0: sub_8054BA8(); sub_8054D4C(0); sub_8054E20(); sub_8054E34(); - (*a1)++; + (*state)++; break; case 1: sub_8054C2C(); - (*a1)++; + (*state)++; break; case 2: - sub_80543E8(); - (*a1)++; + RunFieldCallback(); + (*state)++; break; case 3: return 1; @@ -1683,67 +1678,67 @@ bool32 sub_8054A4C(u8 *a1) return 0; } -bool32 sub_8054A9C(u8 *a1) +bool32 sub_8054A9C(u8 *state) { - switch (*a1) + switch (*state) { case 0: FieldClearVBlankHBlankCallbacks(); sub_8054BA8(); - (*a1)++; + (*state)++; break; case 1: sub_8054D4C(1); - (*a1)++; + (*state)++; break; case 2: sub_8054F48(); sub_8054E20(); sub_8054E7C(); - (*a1)++; + (*state)++; break; case 3: - sub_8054814(); - sub_8054C54(); + InitCurrentFlashLevelScanlineEffect(); + InitOverworldGraphicsRegisters(); Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C); InitMenuWindow(&gMenuTextWindowTemplate); - (*a1)++; + (*state)++; break; case 4: move_tilemap_camera_to_upper_left_corner(); - (*a1)++; + (*state)++; break; case 5: - sub_8056D28(gMapHeader.mapData); - (*a1)++; + sub_8056D28(gMapHeader.mapLayout); + (*state)++; break; case 6: - sub_8056D38(gMapHeader.mapData); - (*a1)++; + sub_8056D38(gMapHeader.mapLayout); + (*state)++; break; case 7: - apply_map_tileset1_tileset2_palette(gMapHeader.mapData); - (*a1)++; + apply_map_tileset1_tileset2_palette(gMapHeader.mapLayout); + (*state)++; break; case 8: DrawWholeMapView(); - (*a1)++; + (*state)++; break; case 9: cur_mapheader_run_tileset_funcs_after_some_cpuset(); - (*a1)++; + (*state)++; break; case 12: - sub_80543E8(); - (*a1)++; + RunFieldCallback(); + (*state)++; break; case 10: case 11: - (*a1)++; + (*state)++; break; case 13: SetFieldVBlankCallback(); - (*a1)++; + (*state)++; return 1; } return 0; @@ -1769,14 +1764,14 @@ void sub_8054BA8(void) void sub_8054C2C(void) { - sub_8054814(); - sub_8054C54(); + InitCurrentFlashLevelScanlineEffect(); + InitOverworldGraphicsRegisters(); Text_LoadWindowTemplate(&gWindowTemplate_81E6C3C); InitMenuWindow(&gMenuTextWindowTemplate); mapdata_load_assets_to_gpu_and_full_redraw(); } -void sub_8054C54(void) +static void InitOverworldGraphicsRegisters(void) { REG_MOSAIC = 0; REG_WININ = 7967; @@ -1810,7 +1805,7 @@ void sub_8054D4C(u32 a1) ScanlineEffect_Clear(); ResetCameraUpdateInfo(); InstallCameraPanAheadCallback(); - sub_805C7C4(0); + InitEventObjectPalettes(0); FieldEffectActiveListClear(); InitFieldMessageBox(); StartWeather(); @@ -1824,7 +1819,7 @@ void sub_8054D90(void) { gTotalCameraPixelOffsetX = 0; gTotalCameraPixelOffsetY = 0; - sub_805AA98(); + ResetEventObjects(); TrySpawnEventObjects(0, 0); mapheader_run_first_tag4_script_list_match(); } @@ -1832,15 +1827,15 @@ void sub_8054D90(void) void mli4_mapscripts_and_other(void) { s16 x, y; - struct UnkPlayerStruct *player; + struct InitialPlayerAvatarState *initialPlayerAvatarState; gTotalCameraPixelOffsetX = 0; gTotalCameraPixelOffsetY = 0; - sub_805AA98(); + ResetEventObjects(); sav1_camera_get_focus_coords(&x, &y); - player = sub_8053AA8(); - InitPlayerAvatar(x, y, player->player_field_1, gSaveBlock2.playerGender); - SetPlayerAvatarTransitionFlags(player->player_field_0); - player_avatar_init_params_reset(); + initialPlayerAvatarState = GetInitialPlayerAvatarState(); + InitPlayerAvatar(x, y, initialPlayerAvatarState->direction, gSaveBlock2.playerGender); + SetPlayerAvatarTransitionFlags(initialPlayerAvatarState->transitionFlags); + ResetInitialPlayerAvatarState(); TrySpawnEventObjects(0, 0); ResetBerryTreeSparkleFlags(); mapheader_run_first_tag4_script_list_match(); @@ -2327,8 +2322,8 @@ u8 *sub_805568C(struct UnkStruct_8054FF8 *a1) return 0; unkStruct = a1->sub; - unkStruct.x += gUnknown_0821664C[a1->d].x; - unkStruct.y += gUnknown_0821664C[a1->d].y; + unkStruct.x += gDirectionToVectors[a1->d].x; + unkStruct.y += gDirectionToVectors[a1->d].y; unkStruct.height = 0; linkPlayerId = GetLinkPlayerIdAt(unkStruct.x, unkStruct.y); diff --git a/src/party_menu.c b/src/party_menu.c index a39300825..52c637879 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -3975,7 +3975,7 @@ void Task_TeamMonTMMove3(u8 taskId) { if (gUnknown_0202E8F6 == 0) { - PlayFanfare(BGM_FANFA1); + PlayFanfare(MUS_FANFA1); gTasks[taskId].func = Task_TeamMonTMMove4; } } @@ -4456,7 +4456,7 @@ bool8 IsBlueYellowRedFlute(u16 item) return FALSE; } -void sub_8070048(u8 taskId, u16 item, TaskFunc func) +void DoSacredAshItemEffect(u8 taskId, u16 item, TaskFunc func) { ewram1C000.unk10 = func; ewram1C000.unk4 = taskId; @@ -4473,7 +4473,7 @@ void sub_8070088(u8 taskId) u8 taskId2; gTasks[taskId].func = TaskDummy; - if (GetMonData(&gPlayerParty[ewram1C000.primarySelectedMonIndex], MON_DATA_SPECIES) == 0) + if (GetMonData(&gPlayerParty[ewram1C000.primarySelectedMonIndex], MON_DATA_SPECIES) == SPECIES_NONE) { gTasks[taskId].func = sub_80701DC; } diff --git a/src/player_pc.c b/src/player_pc.c index e52666a50..ce3dda3c7 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -37,7 +37,7 @@ static EWRAM_DATA const u8 *gPcItemMenuOptionOrder = NULL; static u8 gPcItemMenuOptionsNum; -extern u8 gUnknown_02038561; +extern u8 gPokemonItemUseType; // event scripts extern u8 gBrendanHouse_TurnPCOff[]; @@ -1290,7 +1290,7 @@ static void Mailbox_DoGiveMailPokeMenu(u8 taskId) // Mailbox_DoGiveMailPokeMenu if(!gPaletteFade.active) { SetMainCallback2(sub_808B020); - gUnknown_02038561 = 3; + gPokemonItemUseType = ITEM_USE_GIVE_MAIL; DestroyTask(taskId); } } diff --git a/src/pokemon_3.c b/src/pokemon_3.c index c6eda8bca..30e9503cd 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -1108,48 +1108,48 @@ void ClearBattleMonForms(void) gBattleMonForms[i] = 0; } -u16 GetBGM_ForBattle(void) +u16 GetMUS_ForBattle(void) { if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) - return BGM_BATTLE34; + return MUS_BATTLE34; if (gBattleTypeFlags & BATTLE_TYPE_REGI) - return BGM_BATTLE36; + return MUS_BATTLE36; if (gBattleTypeFlags & BATTLE_TYPE_LINK) - return BGM_BATTLE20; + return MUS_BATTLE20; if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { switch (gTrainers[gTrainerBattleOpponent].trainerClass) { case 2: case 0x31: - return BGM_BATTLE30; + return MUS_BATTLE30; case 3: case 4: case 0x32: case 0x33: - return BGM_BATTLE31; + return MUS_BATTLE31; case 0x19: - return BGM_BATTLE32; + return MUS_BATTLE32; case 0x20: - return BGM_BATTLE33; + return MUS_BATTLE33; case 0x2E: if (!StringCompare(gTrainers[gTrainerBattleOpponent].trainerName, BattleText_Wally)) - return BGM_BATTLE20; - return BGM_BATTLE35; + return MUS_BATTLE20; + return MUS_BATTLE35; case 0x18: - return BGM_BATTLE38; + return MUS_BATTLE38; default: - return BGM_BATTLE20; + return MUS_BATTLE20; } } - return BGM_BATTLE27; + return MUS_BATTLE27; } void sub_80408BC(void) { ResetMapMusic(); m4aMPlayAllStop(); - PlayBGM(GetBGM_ForBattle()); + PlayBGM(GetMUS_ForBattle()); } void current_map_music_set__default_for_battle(u16 song) @@ -1159,7 +1159,7 @@ void current_map_music_set__default_for_battle(u16 song) if (song) PlayNewMapMusic(song); else - PlayNewMapMusic(GetBGM_ForBattle()); + PlayNewMapMusic(GetMUS_ForBattle()); } const u8 *GetMonSpritePal(struct Pokemon *mon) diff --git a/src/pokemon_menu.c b/src/pokemon_menu.c index bafa32afa..23020383d 100644 --- a/src/pokemon_menu.c +++ b/src/pokemon_menu.c @@ -52,7 +52,7 @@ extern u8 gUnknown_020384F0; extern u8 gUnknown_0202E8F4; extern u8 gUnknown_0202E8F5; extern u8 gUnknown_0202E8F6; -extern u8 gUnknown_02038561; +extern u8 gPokemonItemUseType; extern u16 gUnknown_0202E8F8; extern void (*gPokemonItemUseCallback)(u8 taskID, u16 itemID, TaskFunc func); extern TaskFunc gUnknown_03005CF0; @@ -975,7 +975,7 @@ static void sub_808AF80(void) { if (InitPartyMenu() == TRUE) { - if (gUnknown_02038561 == 0) + if (gPokemonItemUseType == ITEM_USE_SINGLE_MON) { switch (CheckIfItemIsTMHMOrEvolutionStone(gSpecialVar_ItemId)) { @@ -1002,19 +1002,19 @@ static void sub_808AF80(void) void sub_808B020(void) { gPaletteFade.bufferTransferDisabled = 1; - switch (gUnknown_02038561) + switch (gPokemonItemUseType) { - case 0: + case ITEM_USE_SINGLE_MON: if (CheckIfItemIsTMHMOrEvolutionStone(gSpecialVar_ItemId) == 1) SetPartyMenuSettings(PARTY_MENU_TYPE_STANDARD, 0, sub_808B0C0, 20); else SetPartyMenuSettings(PARTY_MENU_TYPE_STANDARD, 0, sub_808B0C0, 3); break; - case 4: + case ITEM_USE_ALL_MONS: SetPartyMenuSettings(PARTY_MENU_TYPE_STANDARD, 0, sub_808B1EC, 0xFF); break; - case 1: - case 3: + case ITEM_USE_GIVE_ITEM: + case ITEM_USE_GIVE_MAIL: SetPartyMenuSettings(PARTY_MENU_TYPE_STANDARD, 0, sub_808B0C0, 4); break; } @@ -1034,14 +1034,14 @@ void sub_808B0C0(u8 taskID) else { sub_806D5A4(); - if (gUnknown_02038561 == 0) + if (gPokemonItemUseType == ITEM_USE_SINGLE_MON) gPokemonItemUseCallback(taskID, gSpecialVar_ItemId, sub_808B224); - if (gUnknown_02038561 == 1) + if (gPokemonItemUseType == ITEM_USE_GIVE_ITEM) { PlaySE(SE_SELECT); PartyMenuTryGiveMonHeldItem(taskID, gSpecialVar_ItemId, sub_808B2EC); } - if (gUnknown_02038561 == 3) + if (gPokemonItemUseType == ITEM_USE_GIVE_MAIL) { PlaySE(SE_SELECT); PartyMenuTryGiveMonMail(taskID, sub_808B2B4); @@ -1052,9 +1052,9 @@ void sub_808B0C0(u8 taskID) gLastFieldPokeMenuOpened = sub_806CA38(taskID); PlaySE(SE_SELECT); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); - if (gUnknown_02038561 == 0 || gUnknown_02038561 == 1) + if (gPokemonItemUseType == ITEM_USE_SINGLE_MON || gPokemonItemUseType == ITEM_USE_GIVE_ITEM) gTasks[taskID].func = sub_808B25C; - if (gUnknown_02038561 == 3) + if (gPokemonItemUseType == ITEM_USE_GIVE_MAIL) gTasks[taskID].func = sub_808B2B4; break; } diff --git a/src/region_map.c b/src/region_map.c index 81ecd7c1b..74062f435 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -628,8 +628,8 @@ static void InitializeCursorPosition(void) case 5: gRegionMap->mapSectionId = gMapHeader.regionMapSectionId; gRegionMap->playerIsInCave = FALSE; - mapWidth = gMapHeader.mapData->width; - mapHeight = gMapHeader.mapData->height; + mapWidth = gMapHeader.mapLayout->width; + mapHeight = gMapHeader.mapLayout->height; x = gSaveBlock1.pos.x; y = gSaveBlock1.pos.y; if (gRegionMap->mapSectionId == MAPSEC_UNDERWATER_128) @@ -640,8 +640,8 @@ static void InitializeCursorPosition(void) mapHeader = Overworld_GetMapHeaderByGroupAndId(gSaveBlock1.warp4.mapGroup, gSaveBlock1.warp4.mapNum); gRegionMap->mapSectionId = mapHeader->regionMapSectionId; gRegionMap->playerIsInCave = TRUE; - mapWidth = mapHeader->mapData->width; - mapHeight = mapHeader->mapData->height; + mapWidth = mapHeader->mapLayout->width; + mapHeight = mapHeader->mapLayout->height; x = gSaveBlock1.warp4.x; y = gSaveBlock1.warp4.y; break; @@ -649,8 +649,8 @@ static void InitializeCursorPosition(void) mapHeader = Overworld_GetMapHeaderByGroupAndId(gSaveBlock1.warp2.mapGroup, gSaveBlock1.warp2.mapNum); gRegionMap->mapSectionId = mapHeader->regionMapSectionId; gRegionMap->playerIsInCave = TRUE; - mapWidth = mapHeader->mapData->width; - mapHeight = mapHeader->mapData->height; + mapWidth = mapHeader->mapLayout->width; + mapHeight = mapHeader->mapLayout->height; x = gSaveBlock1.warp2.x; y = gSaveBlock1.warp2.y; break; @@ -671,8 +671,8 @@ static void InitializeCursorPosition(void) gRegionMap->mapSectionId = mapHeader->regionMapSectionId; } gRegionMap->playerIsInCave = FALSE; - mapWidth = mapHeader->mapData->width; - mapHeight = mapHeader->mapData->height; + mapWidth = mapHeader->mapLayout->width; + mapHeight = mapHeader->mapLayout->height; x = r4->x; y = r4->y; } @@ -758,14 +758,14 @@ static void sub_80FB600(void) u16 r1; gRegionMap->mapSectionId = mapHeader->regionMapSectionId; - r1 = mapHeader->mapData->width / gRegionMapLocations[gRegionMap->mapSectionId].width; + r1 = mapHeader->mapLayout->width / gRegionMapLocations[gRegionMap->mapSectionId].width; if (r1 == 0) r1 = 1; x = sp2 / r1; if (x >= gRegionMapLocations[gRegionMap->mapSectionId].width) x = gRegionMapLocations[gRegionMap->mapSectionId].width - 1; - r1 = mapHeader->mapData->height / gRegionMapLocations[gRegionMap->mapSectionId].height; + r1 = mapHeader->mapLayout->height / gRegionMapLocations[gRegionMap->mapSectionId].height; if (r1 == 0) r1 = 1; y = sp4 / r1; diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c index 9c4cc2217..00ce3d8df 100644 --- a/src/rom_8077ABC.c +++ b/src/rom_8077ABC.c @@ -33,12 +33,6 @@ #define gTransformPersonalities gTransformedPersonalities #define gBattleMonSprites gBankSpriteIds -struct TransformStatus -{ - u16 unknown; - u16 species; -}; - struct Struct_gUnknown_0837F578 { u8 field_0; @@ -890,7 +884,7 @@ void sub_8078914(struct Struct_sub_8078914 *unk) } } -void sub_8078954(struct Struct_sub_8078914 *unk) +void sub_8078954(struct Struct_sub_8078914 *unk, u8 b) { if (IsContest()) { diff --git a/src/roulette.c b/src/roulette.c index ab60e089a..c8804a543 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -1055,13 +1055,13 @@ void sub_8116638(u8 taskid) case 0x2: if (gTasks[taskid].data[0x2] == 0xC) { - PlayFanfare(BGM_ME_B_BIG); + PlayFanfare(MUS_ME_B_BIG); Menu_DrawStdWindowFrame(0x0, 0xE, 0x1D, 0x13); Menu_PrintText(&gUnknown_081C41A5, 0x1, 0xF); } else { - PlayFanfare(BGM_ME_B_SMALL); + PlayFanfare(MUS_ME_B_SMALL); Menu_DrawStdWindowFrame(0x0, 0xE, 0x1D, 0x13); Menu_PrintText(&gUnknown_081C4199, 0x1, 0xF); } diff --git a/src/safari_zone.c b/src/safari_zone.c index 7cc8e16a0..9272da902 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -102,7 +102,7 @@ void sub_80C824C(void) else if (gBattleOutcome == 8) { ScriptContext2_RunNewScript(&gUnknown_081C340A); - warp_in(); + WarpIntoMap(); gFieldCallback = sub_8080E44; SetMainCallback2(CB2_LoadMap); } diff --git a/src/scrcmd.c b/src/scrcmd.c index ca49dc0df..d37e1180d 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -42,6 +42,7 @@ #include "sound.h" #include "string_util.h" #include "tv.h" +#include "constants/maps.h" typedef u16 (*SpecialFunc)(void); typedef void (*NativeFunc)(void); @@ -725,7 +726,7 @@ bool8 ScrCmd_warp(struct ScriptContext *ctx) Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); sub_8080E88(); - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); return TRUE; } @@ -739,7 +740,7 @@ bool8 ScrCmd_warpsilent(struct ScriptContext *ctx) Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); sp13E_warp_to_last_warp(); - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); return TRUE; } @@ -753,7 +754,7 @@ bool8 ScrCmd_warpdoor(struct ScriptContext *ctx) Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); sub_8080EF0(); - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); return TRUE; } @@ -765,12 +766,12 @@ bool8 ScrCmd_warphole(struct ScriptContext *ctx) u16 y; PlayerGetDestCoords(&x, &y); - if (mapGroup == 0xFF && mapNum == 0xFF) - sub_8053720(x - 7, y - 7); + if (mapGroup == MAP_GROUP(UNDEFINED) && mapNum == MAP_NUM(UNDEFINED)) + SetFixedHoleWarpAsDestination(x - 7, y - 7); else Overworld_SetWarpDestination(mapGroup, mapNum, -1, x - 7, y - 7); sp13F_fall_to_last_warp(); - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); return TRUE; } @@ -784,7 +785,7 @@ bool8 ScrCmd_warpteleport(struct ScriptContext *ctx) Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); sub_8080F68(); - player_avatar_init_params_reset(); + ResetInitialPlayerAvatarState(); return TRUE; } @@ -820,7 +821,7 @@ bool8 ScrCmd_setdivewarp(struct ScriptContext *ctx) u16 x = VarGet(ScriptReadHalfword(ctx)); u16 y = VarGet(ScriptReadHalfword(ctx)); - sub_8053690(mapGroup, mapNum, warpId, x, y); + SetFixedDiveWarp(mapGroup, mapNum, warpId, x, y); return FALSE; } @@ -832,7 +833,7 @@ bool8 ScrCmd_setholewarp(struct ScriptContext *ctx) u16 x = VarGet(ScriptReadHalfword(ctx)); u16 y = VarGet(ScriptReadHalfword(ctx)); - sub_80536E4(mapGroup, mapNum, warpId, x, y); + SetFixedHoleWarp(mapGroup, mapNum, warpId, x, y); return FALSE; } diff --git a/src/secret_base.c b/src/secret_base.c index 60ce80af5..5bec7a06d 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -110,7 +110,6 @@ const u8 gUnknown_083D13EC[] = { 0x23,0x24,0xF,0x1F,0x21,0x2F,0xE,0x14,0x20,0x22,0x0,0x0 }; -extern void *gUnknown_0300485C; extern u8 gUnknown_081A2E14[]; extern u8 UnknownString_81A1BB2[]; extern u8 UnknownString_81A1F67[]; @@ -241,11 +240,11 @@ void sub_80BB764(s16 *arg1, s16 *arg2, u16 arg3) { s16 x, y; - for (y=0; y<gMapHeader.mapData->height; y++) + for (y=0; y<gMapHeader.mapLayout->height; y++) { - for (x=0; x<gMapHeader.mapData->width; x++) + for (x=0; x<gMapHeader.mapLayout->width; x++) { - if ((gMapHeader.mapData->map[y * gMapHeader.mapData->width + x] & 0x3ff) == arg3) + if ((gMapHeader.mapLayout->map[y * gMapHeader.mapLayout->width + x] & 0x3ff) == arg3) { *arg1 = x; *arg2 = y; @@ -363,7 +362,7 @@ void sub_80BBA48(u8 taskid) if (gSaveBlock1.secretBases[curbaseid].sbr_field_10 < 0xff) gSaveBlock1.secretBases[curbaseid].sbr_field_10++; sub_80BBA14(); - warp_in(); + WarpIntoMap(); gFieldCallback = sub_8080990; SetMainCallback2(CB2_LoadMap); DestroyTask(taskid); @@ -416,7 +415,7 @@ void sub_80BBBEC(u8 taskid) { idx = 4 * (gCurrentSecretBaseId / 10); Overworld_SetWarpDestination(gSaveBlock1.location.mapGroup, gSaveBlock1.location.mapNum, -1, gUnknown_083D1374[idx + 2], gUnknown_083D1374[idx + 3]); - warp_in(); + WarpIntoMap(); gFieldCallback = sub_80BBB90; SetMainCallback2(CB2_LoadMap); DestroyTask(taskid); @@ -578,7 +577,7 @@ void sub_80BC074(u8 taskid) break; case 2: copy_saved_warp2_bank_and_enter_x_to_warp1(0x7E); - warp_in(); + WarpIntoMap(); gFieldCallback = mapldr_default; SetMainCallback2(CB2_LoadMap); ScriptContext2_Disable(); diff --git a/src/shop.c b/src/shop.c index 88719e25e..8a5da1117 100644 --- a/src/shop.c +++ b/src/shop.c @@ -409,16 +409,16 @@ static void Shop_DrawViewportTiles(void) s32 r3 = MapGridGetMetatileLayerTypeAt(facingX + x, facingY + y); if (metatileId < 512) - BuyMenuDrawMapMetatile(x, y, (u16 *)gMapHeader.mapData->primaryTileset->metatiles + metatileId * 8, r3); + BuyMenuDrawMapMetatile(x, y, (u16 *)gMapHeader.mapLayout->primaryTileset->metatiles + metatileId * 8, r3); else - BuyMenuDrawMapMetatile(x, y, (u16 *)gMapHeader.mapData->secondaryTileset->metatiles + (metatileId - 512) * 8, r3); + BuyMenuDrawMapMetatile(x, y, (u16 *)gMapHeader.mapLayout->secondaryTileset->metatiles + (metatileId - 512) * 8, r3); } else { if (metatileId < 512) - BuyMenuDrawMapPartialMetatile(x, y, (u16 *)gMapHeader.mapData->primaryTileset->metatiles + metatileId * 8); + BuyMenuDrawMapPartialMetatile(x, y, (u16 *)gMapHeader.mapLayout->primaryTileset->metatiles + metatileId * 8); else - BuyMenuDrawMapPartialMetatile(x, y, (u16 *)gMapHeader.mapData->secondaryTileset->metatiles + (metatileId - 512) * 8); + BuyMenuDrawMapPartialMetatile(x, y, (u16 *)gMapHeader.mapLayout->secondaryTileset->metatiles + (metatileId - 512) * 8); } if (y == 0 && x != 0 && x != 6) diff --git a/src/slot_machine.c b/src/slot_machine.c index ccd7e4353..3de87e0f7 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -927,17 +927,17 @@ bool8 sub_81020C8(struct Task *task) } if (eSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) { - PlayFanfare(BGM_ME_B_BIG); + PlayFanfare(MUS_ME_B_BIG); sub_8104CAC(6); } else if (eSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_MIXED)) { - PlayFanfare(BGM_ME_B_BIG); + PlayFanfare(MUS_ME_B_BIG); sub_8104CAC(5); } else { - PlayFanfare(BGM_ME_B_SMALL); + PlayFanfare(MUS_ME_B_SMALL); sub_8104CAC(2); } if (eSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_MIXED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) @@ -2682,7 +2682,7 @@ static void sub_810437C(struct Task *task) sub_810545C(); sub_8102680(); StopMapMusic(); - PlayNewMapMusic(BGM_BD_TIME); + PlayNewMapMusic(MUS_BD_TIME); } static void sub_81043EC(struct Task *task) @@ -2818,7 +2818,7 @@ static void sub_81046C0(struct Task *task) { task->data[4] = 0xa0; StartSpriteAnimIfDifferent(gSprites + eSlotMachine->unk3F, 5); - PlayFanfare(BGM_ME_ZANNEN); + PlayFanfare(MUS_ME_ZANNEN); } else { @@ -2830,7 +2830,7 @@ static void sub_81046C0(struct Task *task) sub_8104098(); eSlotMachine->pikaPower = 0; } - PlayFanfare(BGM_ME_B_SMALL); + PlayFanfare(MUS_ME_B_SMALL); } } } @@ -2906,7 +2906,7 @@ static void sub_81048CC(struct Task *task) task->data[4] = 4; task->data[5] = 0; StopMapMusic(); - PlayFanfare(BGM_ME_ZANNEN); + PlayFanfare(MUS_ME_ZANNEN); PlaySE(SE_W153); } diff --git a/src/sound.c b/src/sound.c index 159ad3f70..5b41acbc6 100644 --- a/src/sound.c +++ b/src/sound.c @@ -44,18 +44,18 @@ extern struct ToneData voicegroup_84549C0[]; static const struct Fanfare sFanfares[] = { - { BGM_FANFA1, 80 }, - { BGM_FANFA4, 160 }, - { BGM_FANFA5, 220 }, - { BGM_ME_WAZA, 220 }, - { BGM_ME_ASA, 160 }, - { BGM_ME_BACHI, 340 }, - { BGM_ME_WASURE, 180 }, - { BGM_ME_KINOMI, 120 }, - { BGM_ME_TAMA, 710 }, - { BGM_ME_B_BIG, 250 }, - { BGM_ME_B_SMALL, 150 }, - { BGM_ME_ZANNEN, 160 }, + { MUS_FANFA1, 80 }, + { MUS_FANFA4, 160 }, + { MUS_FANFA5, 220 }, + { MUS_ME_WAZA, 220 }, + { MUS_ME_ASA, 160 }, + { MUS_ME_BACHI, 340 }, + { MUS_ME_WASURE, 180 }, + { MUS_ME_KINOMI, 120 }, + { MUS_ME_TAMA, 710 }, + { MUS_ME_B_BIG, 250 }, + { MUS_ME_B_SMALL, 150 }, + { MUS_ME_ZANNEN, 160 }, }; static void Task_Fanfare(u8 taskId); diff --git a/src/sprite.c b/src/sprite.c index a9d84e01a..22b3a6d0f 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -72,7 +72,6 @@ static void JumpToTopOfAffineAnimLoop(u8 matrixNum, struct Sprite *sprite); static void AffineAnimCmd_jump(u8 matrixNum, struct Sprite *sprite); static void AffineAnimCmd_end(u8 matrixNum, struct Sprite *sprite); static void AffineAnimCmd_frame(u8 matrixNum, struct Sprite *sprite); -static void CopyOamMatrix(u8 destMatrixIndex, struct OamMatrix *srcMatrix); static u8 GetSpriteMatrixNum(struct Sprite *sprite); static void SetSpriteOamFlipBits(struct Sprite *sprite, u8 hFlip, u8 vFlip); static void AffineAnimStateRestartAnim(u8 matrixNum); diff --git a/src/tileset_anim.c b/src/tileset_anim.c index abd38edad..37cc88bd3 100644 --- a/src/tileset_anim.c +++ b/src/tileset_anim.c @@ -60,158 +60,158 @@ static void sub_807399C(u16); static void sub_8073974(u16); static void sub_80739EC(u16); -static const u8 TilesetAnimTiles_General_0_1[] = INCBIN_U8("data/tilesets/primary/general/anim/0/1.4bpp"); -static const u8 TilesetAnimTiles_General_0_0[] = INCBIN_U8("data/tilesets/primary/general/anim/0/0.4bpp"); -static const u8 TilesetAnimTiles_General_0_2[] = INCBIN_U8("data/tilesets/primary/general/anim/0/2.4bpp"); +static const u8 gTilesetAnims_General0_Frame1[] = INCBIN_U8("data/tilesets/primary/general/anim/0/1.4bpp"); +static const u8 gTilesetAnims_General0_Frame0[] = INCBIN_U8("data/tilesets/primary/general/anim/0/0.4bpp"); +static const u8 gTilesetAnims_General0_Frame2[] = INCBIN_U8("data/tilesets/primary/general/anim/0/2.4bpp"); asm(".space 32"); -static const u8 *const gTilesetAnimTable_General_0[] = +static const u8 *const gTilesetAnims_General0[] = { - TilesetAnimTiles_General_0_0, - TilesetAnimTiles_General_0_1, - TilesetAnimTiles_General_0_0, - TilesetAnimTiles_General_0_2, + gTilesetAnims_General0_Frame0, + gTilesetAnims_General0_Frame1, + gTilesetAnims_General0_Frame0, + gTilesetAnims_General0_Frame2, }; -static const u8 TilesetAnimTiles_General_1_0[] = INCBIN_U8("data/tilesets/primary/general/anim/1/0.4bpp"); -static const u8 TilesetAnimTiles_General_1_1[] = INCBIN_U8("data/tilesets/primary/general/anim/1/1.4bpp"); -static const u8 TilesetAnimTiles_General_1_2[] = INCBIN_U8("data/tilesets/primary/general/anim/1/2.4bpp"); -static const u8 TilesetAnimTiles_General_1_3[] = INCBIN_U8("data/tilesets/primary/general/anim/1/3.4bpp"); -static const u8 TilesetAnimTiles_General_1_4[] = INCBIN_U8("data/tilesets/primary/general/anim/1/4.4bpp"); -static const u8 TilesetAnimTiles_General_1_5[] = INCBIN_U8("data/tilesets/primary/general/anim/1/5.4bpp"); -static const u8 TilesetAnimTiles_General_1_6[] = INCBIN_U8("data/tilesets/primary/general/anim/1/6.4bpp"); -static const u8 TilesetAnimTiles_General_1_7[] = INCBIN_U8("data/tilesets/primary/general/anim/1/7.4bpp"); - -static const u8 *const gTilesetAnimTable_General_1[] = -{ - TilesetAnimTiles_General_1_0, - TilesetAnimTiles_General_1_1, - TilesetAnimTiles_General_1_2, - TilesetAnimTiles_General_1_3, - TilesetAnimTiles_General_1_4, - TilesetAnimTiles_General_1_5, - TilesetAnimTiles_General_1_6, - TilesetAnimTiles_General_1_7, +static const u8 gTilesetAnims_General1_Frame0[] = INCBIN_U8("data/tilesets/primary/general/anim/1/0.4bpp"); +static const u8 gTilesetAnims_General1_Frame1[] = INCBIN_U8("data/tilesets/primary/general/anim/1/1.4bpp"); +static const u8 gTilesetAnims_General1_Frame2[] = INCBIN_U8("data/tilesets/primary/general/anim/1/2.4bpp"); +static const u8 gTilesetAnims_General1_Frame3[] = INCBIN_U8("data/tilesets/primary/general/anim/1/3.4bpp"); +static const u8 gTilesetAnims_General1_Frame4[] = INCBIN_U8("data/tilesets/primary/general/anim/1/4.4bpp"); +static const u8 gTilesetAnims_General1_Frame5[] = INCBIN_U8("data/tilesets/primary/general/anim/1/5.4bpp"); +static const u8 gTilesetAnims_General1_Frame6[] = INCBIN_U8("data/tilesets/primary/general/anim/1/6.4bpp"); +static const u8 gTilesetAnims_General1_Frame7[] = INCBIN_U8("data/tilesets/primary/general/anim/1/7.4bpp"); + +static const u8 *const gTilesetAnims_General1[] = +{ + gTilesetAnims_General1_Frame0, + gTilesetAnims_General1_Frame1, + gTilesetAnims_General1_Frame2, + gTilesetAnims_General1_Frame3, + gTilesetAnims_General1_Frame4, + gTilesetAnims_General1_Frame5, + gTilesetAnims_General1_Frame6, + gTilesetAnims_General1_Frame7, }; -static const u8 TilesetAnimTiles_General_2_0[] = INCBIN_U8("data/tilesets/primary/general/anim/2/0.4bpp"); -static const u8 TilesetAnimTiles_General_2_1[] = INCBIN_U8("data/tilesets/primary/general/anim/2/1.4bpp"); -static const u8 TilesetAnimTiles_General_2_2[] = INCBIN_U8("data/tilesets/primary/general/anim/2/2.4bpp"); -static const u8 TilesetAnimTiles_General_2_3[] = INCBIN_U8("data/tilesets/primary/general/anim/2/3.4bpp"); -static const u8 TilesetAnimTiles_General_2_4[] = INCBIN_U8("data/tilesets/primary/general/anim/2/4.4bpp"); -static const u8 TilesetAnimTiles_General_2_5[] = INCBIN_U8("data/tilesets/primary/general/anim/2/5.4bpp"); -static const u8 TilesetAnimTiles_General_2_6[] = INCBIN_U8("data/tilesets/primary/general/anim/2/6.4bpp"); - -static const u8 *const gTilesetAnimTable_General_2[] = -{ - TilesetAnimTiles_General_2_0, - TilesetAnimTiles_General_2_1, - TilesetAnimTiles_General_2_2, - TilesetAnimTiles_General_2_3, - TilesetAnimTiles_General_2_4, - TilesetAnimTiles_General_2_5, - TilesetAnimTiles_General_2_6, - TilesetAnimTiles_General_2_0, +static const u8 gTilesetAnims_General2_Frame0[] = INCBIN_U8("data/tilesets/primary/general/anim/2/0.4bpp"); +static const u8 gTilesetAnims_General2_Frame1[] = INCBIN_U8("data/tilesets/primary/general/anim/2/1.4bpp"); +static const u8 gTilesetAnims_General2_Frame2[] = INCBIN_U8("data/tilesets/primary/general/anim/2/2.4bpp"); +static const u8 gTilesetAnims_General2_Frame3[] = INCBIN_U8("data/tilesets/primary/general/anim/2/3.4bpp"); +static const u8 gTilesetAnims_General2_Frame4[] = INCBIN_U8("data/tilesets/primary/general/anim/2/4.4bpp"); +static const u8 gTilesetAnims_General2_Frame5[] = INCBIN_U8("data/tilesets/primary/general/anim/2/5.4bpp"); +static const u8 gTilesetAnims_General2_Frame6[] = INCBIN_U8("data/tilesets/primary/general/anim/2/6.4bpp"); + +static const u8 *const gTilesetAnims_General2[] = +{ + gTilesetAnims_General2_Frame0, + gTilesetAnims_General2_Frame1, + gTilesetAnims_General2_Frame2, + gTilesetAnims_General2_Frame3, + gTilesetAnims_General2_Frame4, + gTilesetAnims_General2_Frame5, + gTilesetAnims_General2_Frame6, + gTilesetAnims_General2_Frame0, }; -static const u8 TilesetAnimTiles_General_3_0[] = INCBIN_U8("data/tilesets/primary/general/anim/3/0.4bpp"); -static const u8 TilesetAnimTiles_General_3_1[] = INCBIN_U8("data/tilesets/primary/general/anim/3/1.4bpp"); -static const u8 TilesetAnimTiles_General_3_2[] = INCBIN_U8("data/tilesets/primary/general/anim/3/2.4bpp"); -static const u8 TilesetAnimTiles_General_3_3[] = INCBIN_U8("data/tilesets/primary/general/anim/3/3.4bpp"); +static const u8 gTilesetAnims_General3_Frame0[] = INCBIN_U8("data/tilesets/primary/general/anim/3/0.4bpp"); +static const u8 gTilesetAnims_General3_Frame1[] = INCBIN_U8("data/tilesets/primary/general/anim/3/1.4bpp"); +static const u8 gTilesetAnims_General3_Frame2[] = INCBIN_U8("data/tilesets/primary/general/anim/3/2.4bpp"); +static const u8 gTilesetAnims_General3_Frame3[] = INCBIN_U8("data/tilesets/primary/general/anim/3/3.4bpp"); -static const u8 *const gTilesetAnimTable_General_3[] = +static const u8 *const gTilesetAnims_General3[] = { - TilesetAnimTiles_General_3_0, - TilesetAnimTiles_General_3_1, - TilesetAnimTiles_General_3_2, - TilesetAnimTiles_General_3_3, + gTilesetAnims_General3_Frame0, + gTilesetAnims_General3_Frame1, + gTilesetAnims_General3_Frame2, + gTilesetAnims_General3_Frame3, }; -static const u8 TilesetAnimTiles_General_4_0[] = INCBIN_U8("data/tilesets/primary/general/anim/4/0.4bpp"); -static const u8 TilesetAnimTiles_General_4_1[] = INCBIN_U8("data/tilesets/primary/general/anim/4/1.4bpp"); -static const u8 TilesetAnimTiles_General_4_2[] = INCBIN_U8("data/tilesets/primary/general/anim/4/2.4bpp"); -static const u8 TilesetAnimTiles_General_4_3[] = INCBIN_U8("data/tilesets/primary/general/anim/4/3.4bpp"); +static const u8 gTilesetAnims_General4_Frame0[] = INCBIN_U8("data/tilesets/primary/general/anim/4/0.4bpp"); +static const u8 gTilesetAnims_General4_Frame1[] = INCBIN_U8("data/tilesets/primary/general/anim/4/1.4bpp"); +static const u8 gTilesetAnims_General4_Frame2[] = INCBIN_U8("data/tilesets/primary/general/anim/4/2.4bpp"); +static const u8 gTilesetAnims_General4_Frame3[] = INCBIN_U8("data/tilesets/primary/general/anim/4/3.4bpp"); -static const u8 *const gTilesetAnimTable_General_4[] = +static const u8 *const gTilesetAnims_General4[] = { - TilesetAnimTiles_General_4_0, - TilesetAnimTiles_General_4_1, - TilesetAnimTiles_General_4_2, - TilesetAnimTiles_General_4_3, + gTilesetAnims_General4_Frame0, + gTilesetAnims_General4_Frame1, + gTilesetAnims_General4_Frame2, + gTilesetAnims_General4_Frame3, }; -static const u8 TilesetAnimTiles_Lavaridge_0[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/0.4bpp"); -static const u8 TilesetAnimTiles_Lavaridge_1[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/1.4bpp"); -static const u8 TilesetAnimTiles_Lavaridge_2[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/2.4bpp"); -static const u8 TilesetAnimTiles_Lavaridge_3[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/3.4bpp"); +static const u8 gTilesetAnims_Lavaridge0_Frame0[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/0.4bpp"); +static const u8 gTilesetAnims_Lavaridge0_Frame1[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/1.4bpp"); +static const u8 gTilesetAnims_Lavaridge0_Frame2[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/2.4bpp"); +static const u8 gTilesetAnims_Lavaridge0_Frame3[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/3.4bpp"); -static const u8 *const gTilesetAnimTable_Lavaridge[] = +static const u8 *const gTilesetAnims_Lavaridge0[] = { - TilesetAnimTiles_Lavaridge_0, - TilesetAnimTiles_Lavaridge_1, - TilesetAnimTiles_Lavaridge_2, - TilesetAnimTiles_Lavaridge_3, + gTilesetAnims_Lavaridge0_Frame0, + gTilesetAnims_Lavaridge0_Frame1, + gTilesetAnims_Lavaridge0_Frame2, + gTilesetAnims_Lavaridge0_Frame3, }; -static const u8 TilesetAnimTiles_Pacifidlog_0_0[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/0/0.4bpp"); -static const u8 TilesetAnimTiles_Pacifidlog_0_1[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/0/1.4bpp"); -static const u8 TilesetAnimTiles_Pacifidlog_0_2[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/0/2.4bpp"); +static const u8 gTilesetAnims_Pacifidlog0_Frame0[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/0/0.4bpp"); +static const u8 gTilesetAnims_Pacifidlog0_Frame1[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/0/1.4bpp"); +static const u8 gTilesetAnims_Pacifidlog0_Frame2[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/0/2.4bpp"); -static const u8 *const gTilesetAnimTable_Pacifidlog_0[] = +static const u8 *const gTilesetAnims_Pacifidlog0[] = { - TilesetAnimTiles_Pacifidlog_0_0, - TilesetAnimTiles_Pacifidlog_0_1, - TilesetAnimTiles_Pacifidlog_0_2, - TilesetAnimTiles_Pacifidlog_0_1, + gTilesetAnims_Pacifidlog0_Frame0, + gTilesetAnims_Pacifidlog0_Frame1, + gTilesetAnims_Pacifidlog0_Frame2, + gTilesetAnims_Pacifidlog0_Frame1, }; -static const u8 TilesetAnimTiles_Underwater_0[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/0.4bpp"); -static const u8 TilesetAnimTiles_Underwater_1[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/1.4bpp"); -static const u8 TilesetAnimTiles_Underwater_2[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/2.4bpp"); -static const u8 TilesetAnimTiles_Underwater_3[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/3.4bpp"); +static const u8 gTilesetAnims_Underwater0_Frame0[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/0.4bpp"); +static const u8 gTilesetAnims_Underwater0_Frame1[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/1.4bpp"); +static const u8 gTilesetAnims_Underwater0_Frame2[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/2.4bpp"); +static const u8 gTilesetAnims_Underwater0_Frame3[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/3.4bpp"); -static const u8 *const gTilesetAnimTable_Underwater[] = +static const u8 *const gTilesetAnims_Underwater0[] = { - TilesetAnimTiles_Underwater_0, - TilesetAnimTiles_Underwater_1, - TilesetAnimTiles_Underwater_2, - TilesetAnimTiles_Underwater_3, + gTilesetAnims_Underwater0_Frame0, + gTilesetAnims_Underwater0_Frame1, + gTilesetAnims_Underwater0_Frame2, + gTilesetAnims_Underwater0_Frame3 }; -static const u8 TilesetAnimTiles_Pacifidlog_1_0[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/0.4bpp"); -static const u8 TilesetAnimTiles_Pacifidlog_1_1[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/1.4bpp"); -static const u8 TilesetAnimTiles_Pacifidlog_1_2[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/2.4bpp"); -static const u8 TilesetAnimTiles_Pacifidlog_1_3[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/3.4bpp"); -static const u8 TilesetAnimTiles_Pacifidlog_1_4[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/4.4bpp"); -static const u8 TilesetAnimTiles_Pacifidlog_1_5[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/5.4bpp"); -static const u8 TilesetAnimTiles_Pacifidlog_1_6[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/6.4bpp"); -static const u8 TilesetAnimTiles_Pacifidlog_1_7[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/7.4bpp"); - -static const u8 *const gTilesetAnimTable_Pacifidlog_1[] = -{ - TilesetAnimTiles_Pacifidlog_1_0, - TilesetAnimTiles_Pacifidlog_1_1, - TilesetAnimTiles_Pacifidlog_1_2, - TilesetAnimTiles_Pacifidlog_1_3, - TilesetAnimTiles_Pacifidlog_1_4, - TilesetAnimTiles_Pacifidlog_1_5, - TilesetAnimTiles_Pacifidlog_1_6, - TilesetAnimTiles_Pacifidlog_1_7, +static const u8 gTilesetAnims_Pacifidlog1_Frame0[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/0.4bpp"); +static const u8 gTilesetAnims_Pacifidlog1_Frame1[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/1.4bpp"); +static const u8 gTilesetAnims_Pacifidlog1_Frame2[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/2.4bpp"); +static const u8 gTilesetAnims_Pacifidlog1_Frame3[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/3.4bpp"); +static const u8 gTilesetAnims_Pacifidlog1_Frame4[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/4.4bpp"); +static const u8 gTilesetAnims_Pacifidlog1_Frame5[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/5.4bpp"); +static const u8 gTilesetAnims_Pacifidlog1_Frame6[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/6.4bpp"); +static const u8 gTilesetAnims_Pacifidlog1_Frame7[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/7.4bpp"); + +static const u8 *const gTilesetAnims_Pacifidlog1[] = +{ + gTilesetAnims_Pacifidlog1_Frame0, + gTilesetAnims_Pacifidlog1_Frame1, + gTilesetAnims_Pacifidlog1_Frame2, + gTilesetAnims_Pacifidlog1_Frame3, + gTilesetAnims_Pacifidlog1_Frame4, + gTilesetAnims_Pacifidlog1_Frame5, + gTilesetAnims_Pacifidlog1_Frame6, + gTilesetAnims_Pacifidlog1_Frame7 }; -static const u8 TilesetAnimTiles_Mauville_0_0[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/0.4bpp"); -static const u8 TilesetAnimTiles_Mauville_0_1[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/1.4bpp"); -static const u8 TilesetAnimTiles_Mauville_0_2[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/2.4bpp"); -static const u8 TilesetAnimTiles_Mauville_0_3[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/3.4bpp"); -static const u8 TilesetAnimTiles_Mauville_0_4[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/4.4bpp"); +static const u8 gTilesetAnims_Mauville0_Frame0[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/0.4bpp"); +static const u8 gTilesetAnims_Mauville0_Frame1[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/1.4bpp"); +static const u8 gTilesetAnims_Mauville0_Frame2[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/2.4bpp"); +static const u8 gTilesetAnims_Mauville0_Frame3[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/3.4bpp"); +static const u8 gTilesetAnims_Mauville0_Frame4[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/4.4bpp"); -static const u8 TilesetAnimTiles_Mauville_1_0[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/0.4bpp"); -static const u8 TilesetAnimTiles_Mauville_1_1[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/1.4bpp"); -static const u8 TilesetAnimTiles_Mauville_1_2[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/2.4bpp"); -static const u8 TilesetAnimTiles_Mauville_1_3[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/3.4bpp"); -static const u8 TilesetAnimTiles_Mauville_1_4[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/4.4bpp"); +static const u8 gTilesetAnims_Mauville1_Frame0[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/0.4bpp"); +static const u8 gTilesetAnims_Mauville1_Frame1[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/1.4bpp"); +static const u8 gTilesetAnims_Mauville1_Frame2[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/2.4bpp"); +static const u8 gTilesetAnims_Mauville1_Frame3[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/3.4bpp"); +static const u8 gTilesetAnims_Mauville1_Frame4[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/4.4bpp"); -static const void *const gUnknown_0837BAE4[] = +static const void *const gTilesetAnims_MauvilleVDests0[] = { (void *)(VRAM + 0x4C00), (void *)(VRAM + 0x4C80), @@ -223,7 +223,7 @@ static const void *const gUnknown_0837BAE4[] = (void *)(VRAM + 0x4F80), }; -static const void *const gUnknown_0837BB04[] = +static const void *const gTilesetAnims_MauvilleVDests1[] = { (void *)(VRAM + 0x5000), (void *)(VRAM + 0x5080), @@ -235,64 +235,64 @@ static const void *const gUnknown_0837BB04[] = (void *)(VRAM + 0x5380), }; -static const u8 *const gTilesetAnimTable_Mauville_0A[] = -{ - TilesetAnimTiles_Mauville_0_0, - TilesetAnimTiles_Mauville_0_0, - TilesetAnimTiles_Mauville_0_1, - TilesetAnimTiles_Mauville_0_2, - TilesetAnimTiles_Mauville_0_3, - TilesetAnimTiles_Mauville_0_3, - TilesetAnimTiles_Mauville_0_3, - TilesetAnimTiles_Mauville_0_3, - TilesetAnimTiles_Mauville_0_3, - TilesetAnimTiles_Mauville_0_3, - TilesetAnimTiles_Mauville_0_2, - TilesetAnimTiles_Mauville_0_1, +static const u8 *const gTilesetAnims_Mauville0[] = +{ + gTilesetAnims_Mauville0_Frame0, + gTilesetAnims_Mauville0_Frame0, + gTilesetAnims_Mauville0_Frame1, + gTilesetAnims_Mauville0_Frame2, + gTilesetAnims_Mauville0_Frame3, + gTilesetAnims_Mauville0_Frame3, + gTilesetAnims_Mauville0_Frame3, + gTilesetAnims_Mauville0_Frame3, + gTilesetAnims_Mauville0_Frame3, + gTilesetAnims_Mauville0_Frame3, + gTilesetAnims_Mauville0_Frame2, + gTilesetAnims_Mauville0_Frame1, }; -static const u8 *const gTilesetAnimTable_Mauville_1A[] = -{ - TilesetAnimTiles_Mauville_1_0, - TilesetAnimTiles_Mauville_1_0, - TilesetAnimTiles_Mauville_1_1, - TilesetAnimTiles_Mauville_1_2, - TilesetAnimTiles_Mauville_1_3, - TilesetAnimTiles_Mauville_1_3, - TilesetAnimTiles_Mauville_1_3, - TilesetAnimTiles_Mauville_1_3, - TilesetAnimTiles_Mauville_1_3, - TilesetAnimTiles_Mauville_1_3, - TilesetAnimTiles_Mauville_1_2, - TilesetAnimTiles_Mauville_1_1, +static const u8 *const gTilesetAnims_Mauville1[] = +{ + gTilesetAnims_Mauville1_Frame0, + gTilesetAnims_Mauville1_Frame0, + gTilesetAnims_Mauville1_Frame1, + gTilesetAnims_Mauville1_Frame2, + gTilesetAnims_Mauville1_Frame3, + gTilesetAnims_Mauville1_Frame3, + gTilesetAnims_Mauville1_Frame3, + gTilesetAnims_Mauville1_Frame3, + gTilesetAnims_Mauville1_Frame3, + gTilesetAnims_Mauville1_Frame3, + gTilesetAnims_Mauville1_Frame2, + gTilesetAnims_Mauville1_Frame1, }; -static const u8 *const gTilesetAnimTable_Mauville_0B[] = +static const u8 *const gTilesetAnims_Mauville2[] = { - TilesetAnimTiles_Mauville_0_0, - TilesetAnimTiles_Mauville_0_0, - TilesetAnimTiles_Mauville_0_4, - TilesetAnimTiles_Mauville_0_4, + gTilesetAnims_Mauville0_Frame0, + gTilesetAnims_Mauville0_Frame0, + gTilesetAnims_Mauville0_Frame4, + gTilesetAnims_Mauville0_Frame4, }; -static const u8 *const gTilesetAnimTable_Mauville_1B[] = +static const u8 *const gTilesetAnims_Mauville3[] = { - TilesetAnimTiles_Mauville_1_0, - TilesetAnimTiles_Mauville_1_0, - TilesetAnimTiles_Mauville_1_4, - TilesetAnimTiles_Mauville_1_4, + gTilesetAnims_Mauville1_Frame0, + gTilesetAnims_Mauville1_Frame0, + gTilesetAnims_Mauville1_Frame4, + gTilesetAnims_Mauville1_Frame4, }; -static const u8 TilesetAnimTiles_Rustboro_0_0[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/0.4bpp"); -static const u8 TilesetAnimTiles_Rustboro_0_1[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/1.4bpp"); -static const u8 TilesetAnimTiles_Rustboro_0_2[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/2.4bpp"); -static const u8 TilesetAnimTiles_Rustboro_0_3[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/3.4bpp"); -static const u8 TilesetAnimTiles_Rustboro_0_4[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/4.4bpp"); -static const u8 TilesetAnimTiles_Rustboro_0_5[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/5.4bpp"); -static const u8 TilesetAnimTiles_Rustboro_0_6[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/6.4bpp"); -static const u8 TilesetAnimTiles_Rustboro_0_7[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/7.4bpp"); +static const u8 gTilesetAnims_Rustboro0_Frame0[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/0.4bpp"); +static const u8 gTilesetAnims_Rustboro0_Frame1[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/1.4bpp"); +static const u8 gTilesetAnims_Rustboro0_Frame2[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/2.4bpp"); +static const u8 gTilesetAnims_Rustboro0_Frame3[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/3.4bpp"); +static const u8 gTilesetAnims_Rustboro0_Frame4[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/4.4bpp"); +static const u8 gTilesetAnims_Rustboro0_Frame5[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/5.4bpp"); +static const u8 gTilesetAnims_Rustboro0_Frame6[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/6.4bpp"); +static const u8 gTilesetAnims_Rustboro0_Frame7[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/7.4bpp"); -static const void *const gUnknown_0837BFA4[] = +static const void *const gTilesetAnims_RustboroVDests0[] = { (void *)(VRAM + 0x5000), (void *)(VRAM + 0x5080), @@ -304,57 +304,57 @@ static const void *const gUnknown_0837BFA4[] = (void *)(VRAM + 0x5380), }; -static const u8 *const gTilesetAnimTable_Rustboro_0[] = +static const u8 *const gTilesetAnims_Rustboro0[] = { - TilesetAnimTiles_Rustboro_0_0, - TilesetAnimTiles_Rustboro_0_1, - TilesetAnimTiles_Rustboro_0_2, - TilesetAnimTiles_Rustboro_0_3, - TilesetAnimTiles_Rustboro_0_4, - TilesetAnimTiles_Rustboro_0_5, - TilesetAnimTiles_Rustboro_0_6, - TilesetAnimTiles_Rustboro_0_7, + gTilesetAnims_Rustboro0_Frame0, + gTilesetAnims_Rustboro0_Frame1, + gTilesetAnims_Rustboro0_Frame2, + gTilesetAnims_Rustboro0_Frame3, + gTilesetAnims_Rustboro0_Frame4, + gTilesetAnims_Rustboro0_Frame5, + gTilesetAnims_Rustboro0_Frame6, + gTilesetAnims_Rustboro0_Frame7, }; -static const u8 TilesetAnimTiles_Rustboro_1_0[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/1/0.4bpp"); -static const u8 TilesetAnimTiles_Rustboro_1_1[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/1/1.4bpp"); +static const u8 gTilesetAnims_Rustboro1_Frame0[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/1/0.4bpp"); +static const u8 gTilesetAnims_Rustboro1_Frame1[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/1/1.4bpp"); -static const u8 *const gTilesetAnimTable_Rustboro_1[] = +static const u8 *const gTilesetAnims_Rustboro1[] = { - TilesetAnimTiles_Rustboro_1_0, - TilesetAnimTiles_Rustboro_1_1, + gTilesetAnims_Rustboro1_Frame0, + gTilesetAnims_Rustboro1_Frame1, }; -static const u8 TilesetAnimTiles_Cave_0[] = INCBIN_U8("data/tilesets/secondary/cave/anim/0.4bpp"); -static const u8 TilesetAnimTiles_Cave_1[] = INCBIN_U8("data/tilesets/secondary/cave/anim/1.4bpp"); -static const u8 TilesetAnimTiles_Cave_2[] = INCBIN_U8("data/tilesets/secondary/cave/anim/2.4bpp"); -static const u8 TilesetAnimTiles_Cave_3[] = INCBIN_U8("data/tilesets/secondary/cave/anim/3.4bpp"); +static const u8 gTilesetAnims_Lavaridge1_Cave0_Frame0[] = INCBIN_U8("data/tilesets/secondary/cave/anim/0.4bpp"); +static const u8 gTilesetAnims_Lavaridge1_Cave0_Frame1[] = INCBIN_U8("data/tilesets/secondary/cave/anim/1.4bpp"); +static const u8 gTilesetAnims_Lavaridge1_Cave0_Frame2[] = INCBIN_U8("data/tilesets/secondary/cave/anim/2.4bpp"); +static const u8 gTilesetAnims_Lavaridge1_Cave0_Frame3[] = INCBIN_U8("data/tilesets/secondary/cave/anim/3.4bpp"); // unused anim tiles for cave -static const u8 TilesetAnimTiles_Cave_4[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/0.4bpp"); -static const u8 TilesetAnimTiles_Cave_5[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/1.4bpp"); -static const u8 TilesetAnimTiles_Cave_6[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/2.4bpp"); -static const u8 TilesetAnimTiles_Cave_7[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/3.4bpp"); +static const u8 gTilesetAnims_Lavaridge1_CaveUnused_Frame0[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/0.4bpp"); +static const u8 gTilesetAnims_Lavaridge1_CaveUnused_Frame1[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/1.4bpp"); +static const u8 gTilesetAnims_Lavaridge1_CaveUnused_Frame2[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/2.4bpp"); +static const u8 gTilesetAnims_Lavaridge1_CaveUnused_Frame3[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/3.4bpp"); asm(".space 32"); -static const u8 *const gTilesetAnimTable_Cave[] = +static const u8 *const gTilesetAnims_Lavaridge1_Cave0[] = { - TilesetAnimTiles_Cave_0, - TilesetAnimTiles_Cave_1, - TilesetAnimTiles_Cave_2, - TilesetAnimTiles_Cave_3, + gTilesetAnims_Lavaridge1_Cave0_Frame0, + gTilesetAnims_Lavaridge1_Cave0_Frame1, + gTilesetAnims_Lavaridge1_Cave0_Frame2, + gTilesetAnims_Lavaridge1_Cave0_Frame3, }; -static const u8 TilesetAnimTiles_EverGrande_0[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/0.4bpp"); -static const u8 TilesetAnimTiles_EverGrande_1[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/1.4bpp"); -static const u8 TilesetAnimTiles_EverGrande_2[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/2.4bpp"); -static const u8 TilesetAnimTiles_EverGrande_3[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/3.4bpp"); -static const u8 TilesetAnimTiles_EverGrande_4[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/4.4bpp"); -static const u8 TilesetAnimTiles_EverGrande_5[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/5.4bpp"); -static const u8 TilesetAnimTiles_EverGrande_6[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/6.4bpp"); -static const u8 TilesetAnimTiles_EverGrande_7[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/7.4bpp"); +static const u8 gTilesetAnims_EverGrande0_Frame0[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/0.4bpp"); +static const u8 gTilesetAnims_EverGrande0_Frame1[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/1.4bpp"); +static const u8 gTilesetAnims_EverGrande0_Frame2[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/2.4bpp"); +static const u8 gTilesetAnims_EverGrande0_Frame3[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/3.4bpp"); +static const u8 gTilesetAnims_EverGrande0_Frame4[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/4.4bpp"); +static const u8 gTilesetAnims_EverGrande0_Frame5[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/5.4bpp"); +static const u8 gTilesetAnims_EverGrande0_Frame6[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/6.4bpp"); +static const u8 gTilesetAnims_EverGrande0_Frame7[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/7.4bpp"); asm(".space 32"); -static const void *const gUnknown_0837C93C[] = +static const void *const gTilesetAnims_EverGrandeVDests0[] = { (void *)(VRAM + 0x5C00), (void *)(VRAM + 0x5C80), @@ -366,88 +366,88 @@ static const void *const gUnknown_0837C93C[] = (void *)(VRAM + 0x5F80), }; -static const u8 *const gTilesetAnimTable_EverGrande[] = +static const u8 *const gTilesetAnims_EverGrande0[] = { - TilesetAnimTiles_EverGrande_0, - TilesetAnimTiles_EverGrande_1, - TilesetAnimTiles_EverGrande_2, - TilesetAnimTiles_EverGrande_3, - TilesetAnimTiles_EverGrande_4, - TilesetAnimTiles_EverGrande_5, - TilesetAnimTiles_EverGrande_6, - TilesetAnimTiles_EverGrande_7, + gTilesetAnims_EverGrande0_Frame0, + gTilesetAnims_EverGrande0_Frame1, + gTilesetAnims_EverGrande0_Frame2, + gTilesetAnims_EverGrande0_Frame3, + gTilesetAnims_EverGrande0_Frame4, + gTilesetAnims_EverGrande0_Frame5, + gTilesetAnims_EverGrande0_Frame6, + gTilesetAnims_EverGrande0_Frame7, }; -static const u8 TilesetAnimTiles_Building_0[] = INCBIN_U8("data/tilesets/primary/building/anim/0.4bpp"); -static const u8 TilesetAnimTiles_Building_1[] = INCBIN_U8("data/tilesets/primary/building/anim/1.4bpp"); +static const u8 gTilesetAnims_InsideBuilding0_Frame0[] = INCBIN_U8("data/tilesets/primary/building/anim/0.4bpp"); +static const u8 gTilesetAnims_InsideBuilding0_Frame1[] = INCBIN_U8("data/tilesets/primary/building/anim/1.4bpp"); -static const u8 *const gTilesetAnimTable_Building[] = +static const u8 *const gTilesetAnims_InsideBuilding0[] = { - TilesetAnimTiles_Building_0, - TilesetAnimTiles_Building_1, + gTilesetAnims_InsideBuilding0_Frame0, + gTilesetAnims_InsideBuilding0_Frame1, }; -static const u8 TilesetAnimTiles_SootopolisGym_0_0[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/0/0.4bpp"); -static const u8 TilesetAnimTiles_SootopolisGym_0_1[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/0/1.4bpp"); -static const u8 TilesetAnimTiles_SootopolisGym_0_2[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/0/2.4bpp"); -static const u8 TilesetAnimTiles_SootopolisGym_1_0[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/1/0.4bpp"); -static const u8 TilesetAnimTiles_SootopolisGym_1_1[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/1/1.4bpp"); -static const u8 TilesetAnimTiles_SootopolisGym_1_2[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/1/2.4bpp"); +static const u8 gTilesetAnims_SootopolisGym0_Frame0[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/0/0.4bpp"); +static const u8 gTilesetAnims_SootopolisGym0_Frame1[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/0/1.4bpp"); +static const u8 gTilesetAnims_SootopolisGym0_Frame2[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/0/2.4bpp"); +static const u8 gTilesetAnims_SootopolisGym1_Frame0[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/1/0.4bpp"); +static const u8 gTilesetAnims_SootopolisGym1_Frame1[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/1/1.4bpp"); +static const u8 gTilesetAnims_SootopolisGym1_Frame2[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/1/2.4bpp"); -static const u8 *const gTilesetAnimTable_SootopolisGym_0[] = +static const u8 *const gTilesetAnims_SootopolisGym0[] = { - TilesetAnimTiles_SootopolisGym_0_0, - TilesetAnimTiles_SootopolisGym_0_1, - TilesetAnimTiles_SootopolisGym_0_2, + gTilesetAnims_SootopolisGym0_Frame0, + gTilesetAnims_SootopolisGym0_Frame1, + gTilesetAnims_SootopolisGym0_Frame2, }; -static const u8 *const gTilesetAnimTable_SootopolisGym_1[] = +static const u8 *const gTilesetAnims_SootopolisGym1[] = { - TilesetAnimTiles_SootopolisGym_1_0, - TilesetAnimTiles_SootopolisGym_1_1, - TilesetAnimTiles_SootopolisGym_1_2, + gTilesetAnims_SootopolisGym1_Frame0, + gTilesetAnims_SootopolisGym1_Frame1, + gTilesetAnims_SootopolisGym1_Frame2, }; -static const u8 TilesetAnimTiles_EliteFour_1_0[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/1/0.4bpp"); -static const u8 TilesetAnimTiles_EliteFour_1_1[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/1/1.4bpp"); -static const u8 TilesetAnimTiles_EliteFour_0_0[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/0.4bpp"); -static const u8 TilesetAnimTiles_EliteFour_0_1[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/1.4bpp"); -static const u8 TilesetAnimTiles_EliteFour_0_2[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/2.4bpp"); -static const u8 TilesetAnimTiles_EliteFour_0_3[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/3.4bpp"); +static const u8 gTilesetAnims_EliteFour0_Frame0[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/1/0.4bpp"); +static const u8 gTilesetAnims_EliteFour0_Frame1[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/1/1.4bpp"); +static const u8 gTilesetAnims_EliteFour1_Frame0[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/0.4bpp"); +static const u8 gTilesetAnims_EliteFour1_Frame1[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/1.4bpp"); +static const u8 gTilesetAnims_EliteFour1_Frame2[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/2.4bpp"); +static const u8 gTilesetAnims_EliteFour1_Frame3[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/3.4bpp"); asm(".space 32"); -static const u8 *const gTilesetAnimTable_EliteFour_0[] = +static const u8 *const gTilesetAnims_EliteFour1[] = { - TilesetAnimTiles_EliteFour_0_0, - TilesetAnimTiles_EliteFour_0_1, - TilesetAnimTiles_EliteFour_0_2, - TilesetAnimTiles_EliteFour_0_3, + gTilesetAnims_EliteFour1_Frame0, + gTilesetAnims_EliteFour1_Frame1, + gTilesetAnims_EliteFour1_Frame2, + gTilesetAnims_EliteFour1_Frame3, }; -static const u8 *const gTilesetAnimTable_EliteFour_1[] = +static const u8 *const gTilesetAnims_EliteFour0[] = { - TilesetAnimTiles_EliteFour_1_0, - TilesetAnimTiles_EliteFour_1_1, + gTilesetAnims_EliteFour0_Frame0, + gTilesetAnims_EliteFour0_Frame1, }; -static const u8 TilesetAnimTiles_MauvilleGym_0[] = INCBIN_U8("data/tilesets/secondary/mauville_gym/anim/0.4bpp"); -static const u8 TilesetAnimTiles_MauvilleGym_1[] = INCBIN_U8("data/tilesets/secondary/mauville_gym/anim/1.4bpp"); +static const u8 gTilesetAnims_MauvilleGym0_Frame0[] = INCBIN_U8("data/tilesets/secondary/mauville_gym/anim/0.4bpp"); +static const u8 gTilesetAnims_MauvilleGym0_Frame1[] = INCBIN_U8("data/tilesets/secondary/mauville_gym/anim/1.4bpp"); asm(".space 32"); -static const u8 *const gTilesetAnimTable_MauvilleGym[] = +static const u8 *const gTilesetAnims_MauvilleGym0[] = { - TilesetAnimTiles_MauvilleGym_0, - TilesetAnimTiles_MauvilleGym_1, + gTilesetAnims_MauvilleGym0_Frame0, + gTilesetAnims_MauvilleGym0_Frame1, }; -static const u8 TilesetAnimTiles_BikeShop_0[] = INCBIN_U8("data/tilesets/secondary/bike_shop/anim/0.4bpp"); -static const u8 TilesetAnimTiles_BikeShop_1[] = INCBIN_U8("data/tilesets/secondary/bike_shop/anim/1.4bpp"); +static const u8 gTilesetAnims_BikeShop0_Frame0[] = INCBIN_U8("data/tilesets/secondary/bike_shop/anim/0.4bpp"); +static const u8 gTilesetAnims_BikeShop0_Frame1[] = INCBIN_U8("data/tilesets/secondary/bike_shop/anim/1.4bpp"); asm(".space 32"); -static const u8 *const gTilesetAnimTable_BikeShop[] = +static const u8 *const gTilesetAnims_BikeShop0[] = { - TilesetAnimTiles_BikeShop_0, - TilesetAnimTiles_BikeShop_1, + gTilesetAnims_BikeShop0_Frame0, + gTilesetAnims_BikeShop0_Frame1, }; static void ClearTilesetAnimDmas(void) @@ -518,11 +518,11 @@ static void StartTileset1Animation(void) gTileset1AnimFrame = 0; gTileset1AnimLength = 0; gTileset1AnimCallback = 0; - if (gMapHeader.mapData->primaryTileset) + if (gMapHeader.mapLayout->primaryTileset) { - if (gMapHeader.mapData->primaryTileset->callback) + if (gMapHeader.mapLayout->primaryTileset->callback) { - gMapHeader.mapData->primaryTileset->callback(); + gMapHeader.mapLayout->primaryTileset->callback(); } } } @@ -532,11 +532,11 @@ static void StartTileset2Animation(void) gTileset2AnimFrame = 0; gTileset2AnimLength = 0; gTileset2AnimCallback = 0; - if (gMapHeader.mapData->secondaryTileset) + if (gMapHeader.mapLayout->secondaryTileset) { - if (gMapHeader.mapData->secondaryTileset->callback) + if (gMapHeader.mapLayout->secondaryTileset->callback) { - gMapHeader.mapData->secondaryTileset->callback(); + gMapHeader.mapLayout->secondaryTileset->callback(); } } } @@ -578,28 +578,28 @@ static void sub_8073070(u16 a1) { int v1; v1 = a1 % 4; - QueueTilesetAnimDma(gTilesetAnimTable_General_0[v1], BG_TILE_ADDR(127), 0x80); + QueueTilesetAnimDma(gTilesetAnims_General0[v1], BG_TILE_ADDR(127), 0x80); } static void sub_8073098(u16 a1) { u8 v1; v1 = a1 % 8; - QueueTilesetAnimDma(gTilesetAnimTable_General_1[v1], BG_TILE_ADDR(108), 0x3c0); + QueueTilesetAnimDma(gTilesetAnims_General1[v1], BG_TILE_ADDR(108), 0x3c0); } static void sub_80730C0(u16 a1) { int v1; v1 = a1 % 8; - QueueTilesetAnimDma(gTilesetAnimTable_General_2[v1], BG_TILE_ADDR(116), 0x140); + QueueTilesetAnimDma(gTilesetAnims_General2[v1], BG_TILE_ADDR(116), 0x140); } static void sub_80730E8(u16 a1) { int v1; v1 = a1 % 4; - QueueTilesetAnimDma(gTilesetAnimTable_General_3[v1], BG_TILE_ADDR(124), 0xc0); + QueueTilesetAnimDma(gTilesetAnims_General3[v1], BG_TILE_ADDR(124), 0xc0); } void TilesetCB_Petalburg(void) @@ -815,37 +815,37 @@ static void sub_807361C(u16 a1) { int v1; v1 = a1 % 4; - QueueTilesetAnimDma(gTilesetAnimTable_General_4[v1], BG_TILE_ADDR(120), 0x140); + QueueTilesetAnimDma(gTilesetAnims_General4[v1], BG_TILE_ADDR(120), 0x140); } static void sub_8073644(u8 a1) { u8 v1; v1 = a1 % 4; - QueueTilesetAnimDma(gTilesetAnimTable_Lavaridge[v1], BG_TILE_ADDR(200), 0x80); + QueueTilesetAnimDma(gTilesetAnims_Lavaridge0[v1], BG_TILE_ADDR(200), 0x80); v1 = (a1 + 2) % 4; - QueueTilesetAnimDma(gTilesetAnimTable_Lavaridge[v1], BG_TILE_ADDR(201), 0x80); + QueueTilesetAnimDma(gTilesetAnims_Lavaridge0[v1], BG_TILE_ADDR(201), 0x80); } static void sub_807368C(u8 a1) { int v1; v1 = a1 % 4; - QueueTilesetAnimDma(gTilesetAnimTable_Pacifidlog_0[v1], BG_TILE_ADDR(244), 0x3c0); + QueueTilesetAnimDma(gTilesetAnims_Pacifidlog0[v1], BG_TILE_ADDR(244), 0x3c0); } static void sub_80736B4(u8 a1) { int v1; v1 = a1 % 4; - QueueTilesetAnimDma(gTilesetAnimTable_Underwater[v1], BG_TILE_ADDR(252), 0x80); + QueueTilesetAnimDma(gTilesetAnims_Underwater0[v1], BG_TILE_ADDR(252), 0x80); } static void sub_80736DC(u8 a1) { int v1; v1 = a1 % 8; - QueueTilesetAnimDma(gTilesetAnimTable_Pacifidlog_1[v1], BG_TILE_ADDR(252), 0x100); + QueueTilesetAnimDma(gTilesetAnims_Pacifidlog1[v1], BG_TILE_ADDR(252), 0x100); } static void sub_8073704(u16 a1, u8 a2) @@ -855,14 +855,14 @@ static void sub_8073704(u16 a1, u8 a2) if (a1 < 12) { v1 = a1 % 12; - QueueTilesetAnimDma(gTilesetAnimTable_Mauville_0A[v1], gUnknown_0837BAE4[a2], 0x80); - QueueTilesetAnimDma(gTilesetAnimTable_Mauville_1A[v1], gUnknown_0837BB04[a2], 0x80); + QueueTilesetAnimDma(gTilesetAnims_Mauville0[v1], gTilesetAnims_MauvilleVDests0[a2], 0x80); + QueueTilesetAnimDma(gTilesetAnims_Mauville1[v1], gTilesetAnims_MauvilleVDests1[a2], 0x80); } else { v1 = a1 % 4; - QueueTilesetAnimDma(gTilesetAnimTable_Mauville_0B[v1], gUnknown_0837BAE4[a2], 0x80); - QueueTilesetAnimDma(gTilesetAnimTable_Mauville_1B[v1], gUnknown_0837BB04[a2], 0x80); + QueueTilesetAnimDma(gTilesetAnims_Mauville2[v1], gTilesetAnims_MauvilleVDests0[a2], 0x80); + QueueTilesetAnimDma(gTilesetAnims_Mauville3[v1], gTilesetAnims_MauvilleVDests1[a2], 0x80); } } @@ -872,9 +872,9 @@ static void sub_80737A4(u16 a1, u8 a2) a1 -= a2; v1 = a1 % 8; - if (gTilesetAnimTable_Rustboro_0[v1]) + if (gTilesetAnims_Rustboro0[v1]) { - QueueTilesetAnimDma(gTilesetAnimTable_Rustboro_0[v1], gUnknown_0837BFA4[a2], 0x80); + QueueTilesetAnimDma(gTilesetAnims_Rustboro0[v1], gTilesetAnims_RustboroVDests0[a2], 0x80); } } @@ -882,14 +882,14 @@ static void sub_80737E0(u16 a1) { int v1; v1 = a1 % 2; - QueueTilesetAnimDma(gTilesetAnimTable_Rustboro_1[v1], BG_TILE_ADDR(240), 0x80); + QueueTilesetAnimDma(gTilesetAnims_Rustboro1[v1], BG_TILE_ADDR(240), 0x80); } static void sub_8073808(u16 a1) { int v1; v1 = a1 % 4; - QueueTilesetAnimDma(gTilesetAnimTable_Cave[v1], BG_TILE_ADDR(168), 0x80); + QueueTilesetAnimDma(gTilesetAnims_Lavaridge1_Cave0[v1], BG_TILE_ADDR(168), 0x80); } static void sub_8073830(u16 a1, u8 a2) @@ -897,14 +897,14 @@ static void sub_8073830(u16 a1, u8 a2) int v1; a1 -= a2; v1 = a1 % 8; - QueueTilesetAnimDma(gTilesetAnimTable_EverGrande[v1], gUnknown_0837C93C[a2], 0x80); + QueueTilesetAnimDma(gTilesetAnims_EverGrande0[v1], gTilesetAnims_EverGrandeVDests0[a2], 0x80); } static void sub_8073868(u16 a1) { int v1; v1 = a1 % 4; - QueueTilesetAnimDma(gTilesetAnimTable_Cave[v1], BG_TILE_ADDR(232), 0x80); + QueueTilesetAnimDma(gTilesetAnims_Lavaridge1_Cave0[v1], BG_TILE_ADDR(232), 0x80); } static void sub_8073890(u16 a1) @@ -951,41 +951,41 @@ static void sub_8073904(u16 a1) { int v1; v1 = a1 % 2; - QueueTilesetAnimDma(gTilesetAnimTable_Building[v1], BG_TILE_ADDR(124), 0x80); + QueueTilesetAnimDma(gTilesetAnims_InsideBuilding0[v1], BG_TILE_ADDR(124), 0x80); } static void sub_807392C(u16 a1) { int v1; v1 = a1 % 3; - QueueTilesetAnimDma(gTilesetAnimTable_SootopolisGym_0[v1], BG_TILE_ADDR(252), 0x180); - QueueTilesetAnimDma(gTilesetAnimTable_SootopolisGym_1[v1], BG_TILE_ADDR(244), 0x280); + QueueTilesetAnimDma(gTilesetAnims_SootopolisGym0[v1], BG_TILE_ADDR(252), 0x180); + QueueTilesetAnimDma(gTilesetAnims_SootopolisGym1[v1], BG_TILE_ADDR(244), 0x280); } static void sub_8073974(u16 a1) { int v1; v1 = a1 % 4; - QueueTilesetAnimDma(gTilesetAnimTable_EliteFour_0[v1], BG_TILE_ADDR(254), 0x20); + QueueTilesetAnimDma(gTilesetAnims_EliteFour1[v1], BG_TILE_ADDR(254), 0x20); } static void sub_807399C(u16 a1) { int v1; v1 = a1 % 2; - QueueTilesetAnimDma(gTilesetAnimTable_EliteFour_1[v1], BG_TILE_ADDR(248), 0x80); + QueueTilesetAnimDma(gTilesetAnims_EliteFour0[v1], BG_TILE_ADDR(248), 0x80); } static void sub_80739C4(u16 a1) { int v1; v1 = a1 % 2; - QueueTilesetAnimDma(gTilesetAnimTable_MauvilleGym[v1], BG_TILE_ADDR(164), 0x200); + QueueTilesetAnimDma(gTilesetAnims_MauvilleGym0[v1], BG_TILE_ADDR(164), 0x200); } static void sub_80739EC(u16 a1) { int v1; v1 = a1 % 2; - QueueTilesetAnimDma(gTilesetAnimTable_BikeShop[v1], BG_TILE_ADDR(252), 0x120); + QueueTilesetAnimDma(gTilesetAnims_BikeShop0[v1], BG_TILE_ADDR(252), 0x120); } diff --git a/src/time_events.c b/src/time_events.c index 4bd732788..d3acdaf2f 100644 --- a/src/time_events.c +++ b/src/time_events.c @@ -81,7 +81,7 @@ void UpdateShoalTideFlag(void) 1, }; - if (is_map_type_1_2_3_5_or_6(get_map_type_from_warp0())) + if (is_map_type_1_2_3_5_or_6(GetLastUsedWarpMapType())) { RtcCalcLocalTime(); if (tide[gLocalTime.hours]) diff --git a/src/trade.c b/src/trade.c index 8d7f5b1fc..50de29b7f 100644 --- a/src/trade.c +++ b/src/trade.c @@ -1208,7 +1208,7 @@ static void sub_8047EC0(void) sub_8048C70(); gMain.state ++; nullsub_5(7, 0); - PlayBGM(BGM_P_SCHOOL); + PlayBGM(MUS_P_SCHOOL); break; case 14: sub_804ACF4(1); @@ -4812,7 +4812,7 @@ static bool8 sub_804C29C(void) gSprites[gUnknown_03004828->pokePicSpriteIdxs[0]].pos2.y = gMonFrontPicCoords[gUnknown_03004828->tradeSpecies[0]].y_offset; gUnknown_03004828->unk_00c4 ++; gUnknown_03004828->unk_0124 = GetCurrentMapMusic(); - PlayBGM(BGM_SHINKA); + PlayBGM(MUS_SHINKA); break; case 1: if (gUnknown_03004828->bg2hofs > 0) @@ -5195,7 +5195,7 @@ static bool8 sub_804C29C(void) case 68: if (++ gUnknown_03004828->unk_00c0 == 4) { - PlayFanfare(BGM_FANFA5); + PlayFanfare(MUS_FANFA5); } if (gUnknown_03004828->unk_00c0 == 0xf0) { diff --git a/src/wild_encounter.c b/src/wild_encounter.c index ad11bf566..133f8b3aa 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -3725,7 +3725,7 @@ static u16 GetRoute119WaterTileNum(s16 x, s16 y, u8 section) for (yCur = yMin; yCur <= yMax; yCur++) { - for (xCur = 0; xCur < gMapHeader.mapData->width; xCur++) + for (xCur = 0; xCur < gMapHeader.mapLayout->width; xCur++) { if (MetatileBehavior_IsFeebasEncounterable(MapGridGetMetatileBehaviorAt(xCur + 7, yCur + 7)) == TRUE) { |