From 3fd878483f38145cb4311d377f99545f25af52a8 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 10 Feb 2019 00:50:46 -0500 Subject: Start renaming symbols I finally figured out what the code is trying to do. I have a foothold; the rest should follow. --- common_syms/overworld.txt | 2 +- data/scripts/cable_club.inc | 4 +- include/cable_club.h | 2 +- include/global.h | 4 +- include/overworld.h | 2 +- include/trainer_card.h | 2 +- src/cable_club.c | 12 +- src/overworld.c | 327 ++++++++++++++++++++++++-------------------- src/rom_8011DC0.c | 4 +- src/start_menu.c | 4 +- src/trainer_card.c | 2 +- 11 files changed, 197 insertions(+), 168 deletions(-) diff --git a/common_syms/overworld.txt b/common_syms/overworld.txt index b92da84ec..dcf48cb6c 100644 --- a/common_syms/overworld.txt +++ b/common_syms/overworld.txt @@ -4,5 +4,5 @@ gBGTilemapBuffers3 gUnknown_03005DA8 gFieldCallback gFieldCallback2 -gUnknown_03005DB4 +gLinkGuestPlayerId gFieldLinkPlayerCount diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index b73d7e1fa..b1e34278f 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -914,14 +914,14 @@ RecordCorner_EventScript_277471:: @ 8277471 releaseall end -EventScript_TradeRoom_ReadTrainerCard1:: @ 827747E +EventScript_TradeRoom_ReadTrainerCard_NoColor:: @ 827747E msgbox Text_278452, MSGBOX_DEFAULT fadescreen 1 special sp02A_crash_sound waitstate end -EventScript_TradeRoom_ReadTrainerCard2:: @ 827748D +EventScript_TradeRoom_ReadTrainerCard_Normal:: @ 827748D msgbox Text_27847B, MSGBOX_DEFAULT fadescreen 1 special sp02A_crash_sound diff --git a/include/cable_club.h b/include/cable_club.h index 60d56460d..c2849ca3e 100644 --- a/include/cable_club.h +++ b/include/cable_club.h @@ -15,6 +15,6 @@ void sub_80B360C(void); bool32 sub_80B2AF4(u16 *arg0, u16 *arg1); void sub_80B3AF8(u8 taskId); void task00_08081A90(u8 taskId); -bool32 sub_80B39D4(u8 linkPlayerIndex); +bool32 GetLinkTrainerCardColor(u8 linkPlayerIndex); #endif //GUARD_CABLE_CLUB_H diff --git a/include/global.h b/include/global.h index 14a6387cd..64d039c6f 100644 --- a/include/global.h +++ b/include/global.h @@ -907,12 +907,12 @@ struct MapPosition s8 height; }; -struct UnkStruct_8054FF8 +struct TradeRoomTrainer { u8 a; u8 b; u8 c; - u8 d; + u8 facing; struct MapPosition sub; u16 field_C; }; diff --git a/include/overworld.h b/include/overworld.h index 79cbf1da3..1a8702d71 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -25,7 +25,7 @@ extern u16 *gBGTilemapBuffers3; extern u16 gUnknown_03005DA8; extern void (*gFieldCallback)(void); extern bool8 (*gFieldCallback2)(void); -extern u8 gUnknown_03005DB4; +extern u8 gLinkGuestPlayerId; extern u8 gFieldLinkPlayerCount; // Exported ROM declarations diff --git a/include/trainer_card.h b/include/trainer_card.h index 1cadbd8fc..173d23baa 100644 --- a/include/trainer_card.h +++ b/include/trainer_card.h @@ -43,7 +43,7 @@ struct TrainerCard extern struct TrainerCard gTrainerCards[4]; u32 CountPlayerTrainerStars(void); -u8 sub_80C4904(u8 cardId); +u8 GetTrainerCardStars(u8 cardId); void CopyTrainerCardData(struct TrainerCard *dst, u16 *src, u8 gameVersion); void ShowPlayerTrainerCard(void (*callback)(void)); void ShowTrainerCardInLink(u8 arg0, void (*callback)(void)); diff --git a/src/cable_club.c b/src/cable_club.c index 303b0d016..a778ff559 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -352,7 +352,7 @@ static void sub_80B2918(u8 taskId) else { gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - gUnknown_03005DB4 = GetMultiplayerId(); + gLinkGuestPlayerId = GetMultiplayerId(); sub_800AA04(gFieldLinkPlayerCount); card = (struct TrainerCard *)gBlockSendBuffer; TrainerCard_GenerateCardForPlayer(card); @@ -399,7 +399,7 @@ static void sub_80B2A08(u8 taskId) else { gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - gUnknown_03005DB4 = GetMultiplayerId(); + gLinkGuestPlayerId = GetMultiplayerId(); sub_800AA04(gFieldLinkPlayerCount); card = (struct TrainerCard *)gBlockSendBuffer; TrainerCard_GenerateCardForPlayer(card); @@ -972,7 +972,7 @@ void sub_80B360C(void) if (gSpecialVar_0x8004 == 1 || gSpecialVar_0x8004 == 2) { - UpdatePlayerLinkBattleRecords(gUnknown_03005DB4 ^ 1); + UpdatePlayerLinkBattleRecords(gLinkGuestPlayerId ^ 1); if (gWirelessCommType) { switch (gBattleOutcome) @@ -1177,14 +1177,16 @@ void sp02A_crash_sound(void) ShowTrainerCardInLink(gSpecialVar_0x8006, CB2_ReturnToFieldContinueScriptPlayMapMusic); } -bool32 sub_80B39D4(u8 linkPlayerIndex) +// Returns FALSE if the player has no stars. Returns TRUE otherwise, and puts the name of the +// color into gStringVar2. +bool32 GetLinkTrainerCardColor(u8 linkPlayerIndex) { u32 trainerCardColorIndex; gSpecialVar_0x8006 = linkPlayerIndex; StringCopy(gStringVar1, gLinkPlayers[linkPlayerIndex].name); - trainerCardColorIndex = sub_80C4904(linkPlayerIndex); + trainerCardColorIndex = GetTrainerCardStars(linkPlayerIndex); if (trainerCardColorIndex == 0) return FALSE; diff --git a/src/overworld.c b/src/overworld.c index 08fd94c1b..a9dfa4280 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -66,13 +66,33 @@ #include "constants/species.h" #include "constants/weather.h" +#define LINK_CONSTANT_UNK_1 0x11 +#define LINK_CONSTANT_DPAD_DOWN 0x12 +#define LINK_CONSTANT_DPAD_UP 0x13 +#define LINK_CONSTANT_DPAD_LEFT 0x14 +#define LINK_CONSTANT_DPAD_RIGHT 0x15 +#define LINK_CONSTANT_UNK_2 0x16 +#define LINK_CONSTANT_UNK_3 0x17 +#define LINK_CONSTANT_START_BUTTON 0x18 +#define LINK_CONSTANT_A_BUTTON 0x19 +#define LINK_CONSTANT_UNK_4 0x1A // I'd guess this is the B button? +#define LINK_CONSTANT_UNK_5 0x1B +#define LINK_CONSTANT_UNK_6 0x1C +#define LINK_CONSTANT_UNK_7 0x1D +#define LINK_CONSTANT_UNK_8 0x1E + +#define TRAINER_TRADING_STATE_IDLE 0x80 +#define TRAINER_TRADING_STATE_UNK_1 0x81 +#define TRAINER_TRADING_STATE_UNK_2 0x82 +#define TRAINER_TRADING_STATE_UNK_3 0x83 + // event scripts extern const u8 EventScript_WhiteOut[]; extern const u8 EventScript_271862[]; extern const u8 EventScript_277513[]; extern const u8 EventScript_TradeRoom_TooBusyToNotice[]; -extern const u8 EventScript_TradeRoom_ReadTrainerCard1[]; -extern const u8 EventScript_TradeRoom_ReadTrainerCard2[]; +extern const u8 EventScript_TradeRoom_ReadTrainerCard_NoColor[]; +extern const u8 EventScript_TradeRoom_ReadTrainerCard_Normal[]; extern const u8 gUnknown_08277388[]; extern const u8 gUnknown_082773A3[]; extern const u8 gUnknown_082773BE[]; @@ -106,21 +126,21 @@ static bool32 load_map_stuff(u8 *state, u32); static bool32 map_loading_iteration_2_link(u8 *state); static void mli4_mapscripts_and_other(void); static void InitOverworldGraphicsRegisters(void); -static u8 sub_8087858(u8); +static u8 GetSpriteForLinkedPlayer(u8); static u16 sub_80871C0(u32 a1); static void sub_80867C8(void); static void sub_80867D8(void); static void sub_8086AE4(void); static void sub_80869DC(void); static void sub_8086B14(void); -static void sub_8086AAC(void); +static void SetCameraToTrackGuestPlayer(void); static void sub_8086988(bool32 arg0); static void sub_8086A80(void); static void sub_8086A68(void); static void sub_8086860(void); -static void sub_8086AC8(void); +static void SetCameraToTrackGuestPlayer_2(void); static void sub_8086B9C(void); -static void sub_8086C40(void); +static void guess_ResetHeldKeys(void); static void sub_8086C90(void); static void sub_8086FA0(u16); static void sub_8086F38(u16*, s32); @@ -138,26 +158,26 @@ static void SpawnLinkPlayerEventObject(u8 linkPlayerId, s16 x, s16 y, u8 a4); static void InitLinkPlayerEventObjectPos(struct EventObject *eventObj, s16 x, s16 y); static void sub_80877DC(u8 linkPlayerId, u8 a2); static void sub_808780C(u8 linkPlayerId); -static u8 sub_8087858(u8 linkPlayerId); +static u8 GetSpriteForLinkedPlayer(u8 linkPlayerId); static void sub_8087584(void); -static u32 sub_8087690(void); +static u32 GetLinkEventQueueLength(void); static void ZeroLinkPlayerEventObject(struct LinkPlayerEventObject *linkPlayerEventObj); -static const u8 *sub_80873B4(struct UnkStruct_8054FF8 *a1); +static const u8 *sub_80873B4(struct TradeRoomTrainer *a1); static u16 sub_8087480(const u8 *script); static void sub_8087510(void); static void sub_808751C(void); static void sub_8087530(const u8 *script); static void sub_808754C(void); static void sub_8087568(const u8 *script); -static void sub_80872D8(s32 linkPlayerId, s32 a2, struct UnkStruct_8054FF8 *a3); -static bool32 sub_8087340(struct UnkStruct_8054FF8 *a1); -static bool32 sub_8087358(struct UnkStruct_8054FF8 *a1); -static u8 *sub_8087370(struct UnkStruct_8054FF8 *a1); -static bool32 sub_8087388(struct UnkStruct_8054FF8 *a1); -static const u8 *sub_80873B4(struct UnkStruct_8054FF8 *a1); +static void sub_80872D8(s32 linkPlayerId, s32 a2, struct TradeRoomTrainer *a3); +static bool32 sub_8087340(struct TradeRoomTrainer *a1); +static bool32 sub_8087358(struct TradeRoomTrainer *a1); +static u8 *sub_8087370(struct TradeRoomTrainer *a1); +static bool32 sub_8087388(struct TradeRoomTrainer *a1); +static const u8 *sub_80873B4(struct TradeRoomTrainer *a1); static u16 sub_808711C(u32); static u16 sub_8087140(u32); -static void sub_808709C(u16 *a1); +static void guess_ResetLinkKeys(u16 *a1); static u16 sub_80870B0(u32 a1); static u16 sub_80870F8(u32 a1); static u16 sub_8087068(u16 a1); @@ -172,8 +192,8 @@ static u16 GetCenterScreenMetatileBehavior(void); // IWRAM bss vars IWRAM_DATA static void *sUnknown_03000E0C; -IWRAM_DATA static u8 sUnknown_03000E10[4]; -IWRAM_DATA static u16 (*sUnknown_03000E14)(u32); +IWRAM_DATA static u8 sTrainerTradingStates[4]; +IWRAM_DATA static u16 (*sguess_PlayerKeyCallback)(u32); IWRAM_DATA static u8 sUnknown_03000E18; IWRAM_DATA static u8 sUnknown_03000E19; IWRAM_DATA static u32 sUnusedVar; @@ -185,7 +205,7 @@ u16 *gBGTilemapBuffers3; u16 gUnknown_03005DA8; void (*gFieldCallback)(void); bool8 (*gFieldCallback2)(void); -u8 gUnknown_03005DB4; +u8 gLinkGuestPlayerId; u8 gFieldLinkPlayerCount; // EWRAM vars @@ -323,7 +343,7 @@ static u8 sub_80879D8(struct LinkPlayerEventObject *, struct EventObject *, u8); static u8 sub_80879F8(struct LinkPlayerEventObject *, struct EventObject *, u8); static u8 sub_80879FC(struct LinkPlayerEventObject *, struct EventObject *, u8); -static u8 (*const gUnknown_08339DC8[])(struct LinkPlayerEventObject *, struct EventObject *, u8) = +static u8 (*const gLinkPlayerEventModes[])(struct LinkPlayerEventObject *, struct EventObject *, u8) = { sub_80879D8, sub_80879F8, @@ -1100,7 +1120,7 @@ u16 GetCurrLocationDefaultMusic(void) } else { - if (gSaveBlock1Ptr->pos.x < 24) + if (gSaveBlock1Ptr->pos.x < LINK_CONSTANT_START_BUTTON) return MUS_DOORO_X1; else return MUS_GRANROAD; @@ -1243,7 +1263,7 @@ static void PlayAmbientCry(void) && !MetatileBehavior_IsSurfableWaterOrUnderwater(MapGridGetMetatileBehaviorAt(x, y))) return; pan = (Random() % 88) + 212; - volume = (Random() % 30) + 50; + volume = (Random() % LINK_CONSTANT_UNK_8) + 50; PlayCry2(sAmbientCrySpecies, pan, volume, 1); } @@ -1810,7 +1830,7 @@ static bool32 map_loading_iteration_3(u8 *state) sub_8086AE4(); sub_80869DC(); sub_8086B14(); - sub_8086AAC(); + SetCameraToTrackGuestPlayer(); (*state)++; break; case 4: @@ -1982,7 +2002,7 @@ static bool32 map_loading_iteration_2_link(u8 *state) case 2: sub_8086B9C(); sub_8086A68(); - sub_8086AC8(); + SetCameraToTrackGuestPlayer_2(); (*state)++; break; case 3: @@ -2169,21 +2189,25 @@ static void sub_8086A80(void) InitCameraUpdateCallback(gPlayerAvatar.spriteId); } -static void sub_8086AAC(void) +static void SetCameraToTrackGuestPlayer(void) { - InitCameraUpdateCallback(sub_8087858(gUnknown_03005DB4)); + InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLinkGuestPlayerId)); } -static void sub_8086AC8(void) +// Duplicate function. +static void SetCameraToTrackGuestPlayer_2(void) { - InitCameraUpdateCallback(sub_8087858(gUnknown_03005DB4)); + InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLinkGuestPlayerId)); } static void sub_8086AE4(void) { u16 x, y; GetCameraFocusCoords(&x, &y); - sub_8088B3C(x + gUnknown_03005DB4, y); + + // This is a hack of some kind; it's undone in sub_8086B14, which is called + // soon after this function. + sub_8088B3C(x + gLinkGuestPlayerId, y); } static void sub_8086B14(void) @@ -2192,7 +2216,7 @@ static void sub_8086B14(void) u16 x, y; GetCameraFocusCoords(&x, &y); - x -= gUnknown_03005DB4; + x -= gLinkGuestPlayerId; for (i = 0; i < gFieldLinkPlayerCount; i++) { @@ -2200,7 +2224,7 @@ static void sub_8086B14(void) CreateLinkPlayerSprite(i, gLinkPlayers[i].version); } - sub_8086C40(); + guess_ResetHeldKeys(); } static void sub_8086B9C(void) @@ -2214,10 +2238,10 @@ static void c1_link_related(void) { if (gWirelessCommType == 0 || !sub_800F0B8() || !sub_8009F3C()) { - u8 var = gUnknown_03005DB4; - sub_8086F38(gLinkPartnersHeldKeys, var); - sub_8086FA0(sUnknown_03000E14(var)); - sub_8086C40(); + u8 guestId = gLinkGuestPlayerId; + sub_8086F38(gLinkPartnersHeldKeys, guestId); + sub_8086FA0(sguess_PlayerKeyCallback(guestId)); + guess_ResetHeldKeys(); } } @@ -2227,15 +2251,15 @@ void sub_8086C2C(void) c1_link_related_func_set(sub_80870B0); } -static void sub_8086C40(void) +static void guess_ResetHeldKeys(void) { - sub_808709C(gLinkPartnersHeldKeys); + guess_ResetLinkKeys(gLinkPartnersHeldKeys); } static void c1_link_related_func_set(u16 (*func)(u32)) { sUnknown_03000E19 = 0; - sUnknown_03000E14 = func; + sguess_PlayerKeyCallback = func; } static void sub_8086C64(void) @@ -2248,7 +2272,7 @@ static void sub_8086C90(void) { s32 i; for (i = 0; i < 4; i++) - sUnknown_03000E10[i] = 0x80; + sTrainerTradingStates[i] = TRAINER_TRADING_STATE_IDLE; } static bool32 sub_8086CA8(u16 a1) @@ -2257,7 +2281,7 @@ static bool32 sub_8086CA8(u16 a1) s32 count = gFieldLinkPlayerCount; for (i = 0; i < count; i++) - if (sUnknown_03000E10[i] != a1) + if (sTrainerTradingStates[i] != a1) return FALSE; return TRUE; } @@ -2268,23 +2292,23 @@ static bool32 sub_8086CE0(u16 a1) s32 count = gFieldLinkPlayerCount; for (i = 0; i < count; i++) - if (sUnknown_03000E10[i] == a1) + if (sTrainerTradingStates[i] == a1) return TRUE; return FALSE; } -static void sub_8086D18(u32 a1, u16 a2, struct UnkStruct_8054FF8 *a3, u16 *a4) +static void sub_8086D18(u32 playerId, u16 key, struct TradeRoomTrainer *trainer, u16 *a4) { const u8 *script; - if (sUnknown_03000E10[a1] == 0x80) + if (sTrainerTradingStates[playerId] == TRAINER_TRADING_STATE_IDLE) { - script = sub_8087370(a3); + script = sub_8087370(trainer); if (script) { *a4 = sub_8087480(script); - sUnknown_03000E10[a1] = 0x81; - if (a3->b) + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; + if (trainer->b) { c1_link_related_func_set(sub_80870F8); sub_8087530(script); @@ -2293,66 +2317,67 @@ static void sub_8086D18(u32 a1, u16 a2, struct UnkStruct_8054FF8 *a3, u16 *a4) } if (sub_8086CE0(0x83) == 1) { - sUnknown_03000E10[a1] = 0x81; - if (a3->b) + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; + if (trainer->b) { c1_link_related_func_set(sub_80870F8); sub_8087584(); } return; } - switch (a2) + + switch (key) { - case 24: - if (sub_8087358(a3)) + case LINK_CONSTANT_START_BUTTON: + if (sub_8087358(trainer)) { - sUnknown_03000E10[a1] = 0x81; - if (a3->b) + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; + if (trainer->b) { c1_link_related_func_set(sub_80870F8); sub_808751C(); } } break; - case 18: - if (sub_8087388(a3) == TRUE) + case LINK_CONSTANT_DPAD_DOWN: + if (sub_8087388(trainer) == TRUE) { - sUnknown_03000E10[a1] = 0x81; - if (a3->b) + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; + if (trainer->b) { c1_link_related_func_set(sub_80870F8); sub_808754C(); } } break; - case 25: - script = sub_80873B4(a3); + case LINK_CONSTANT_A_BUTTON: + script = sub_80873B4(trainer); if (script) { - sUnknown_03000E10[a1] = 0x81; - if (a3->b) + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; + if (trainer->b) { c1_link_related_func_set(sub_80870F8); sub_8087568(script); } } break; - case 27: - if (sub_8087340(a3)) + case LINK_CONSTANT_UNK_5: + if (sub_8087340(trainer)) { - sUnknown_03000E10[a1] = 0x81; - if (a3->b) + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; + if (trainer->b) { c1_link_related_func_set(sub_808711C); sub_8087510(); } } break; - case 28: - if (sub_8087340(a3)) + case LINK_CONSTANT_UNK_6: + if (sub_8087340(trainer)) { - sUnknown_03000E10[a1] = 0x81; - if (a3->b) + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; + if (trainer->b) { c1_link_related_func_set(sub_8087140); sub_8087510(); @@ -2362,64 +2387,64 @@ static void sub_8086D18(u32 a1, u16 a2, struct UnkStruct_8054FF8 *a3, u16 *a4) } } - switch (a2) + switch (key) { - case 23: - sUnknown_03000E10[a1] = 0x83; + case LINK_CONSTANT_UNK_3: + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_3; break; - case 22: - sUnknown_03000E10[a1] = 0x82; + case LINK_CONSTANT_UNK_2: + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_2; break; - case 26: - sUnknown_03000E10[a1] = 0x80; - if (a3->b) + case LINK_CONSTANT_UNK_4: + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_IDLE; + if (trainer->b) c1_link_related_func_set(sub_80870B0); break; - case 29: - if (sUnknown_03000E10[a1] == 0x82) - sUnknown_03000E10[a1] = 0x81; + case LINK_CONSTANT_UNK_7: + if (sTrainerTradingStates[playerId] == TRAINER_TRADING_STATE_UNK_2) + sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; break; } } -static void sub_8086F38(u16 *a1, s32 a2) +static void sub_8086F38(u16 *keys, s32 guestId) { - struct UnkStruct_8054FF8 st; + struct TradeRoomTrainer trainer; s32 i; for (i = 0; i < 4; i++) { - u8 v5 = a1[i]; + u8 key = keys[i]; u16 v8 = 0; - sub_80872D8(i, a2, &st); - sub_8086D18(i, v5, &st, &v8); - if (sUnknown_03000E10[i] == 0x80) - v8 = sub_8087068(v5); + sub_80872D8(i, guestId, &trainer); + sub_8086D18(i, key, &trainer, &v8); + if (sTrainerTradingStates[i] == TRAINER_TRADING_STATE_IDLE) + v8 = sub_8087068(key); sub_808796C(i, v8); } } static void sub_8086FA0(u16 a1) { - if (a1 >= 17 && a1 < 30) + if (a1 >= LINK_CONSTANT_UNK_1 && a1 < LINK_CONSTANT_UNK_8) gUnknown_03005DA8 = a1; else - gUnknown_03005DA8 = 17; + gUnknown_03005DA8 = LINK_CONSTANT_UNK_1; if (gWirelessCommType != 0 - && sub_8087690() > 1 + && GetLinkEventQueueLength() > 1 && is_c1_link_related_active() == TRUE && sub_8009F3C() == TRUE) { switch (a1) { - case 17: - case 18: - case 19: - case 20: - case 21: - case 24: - case 25: + case LINK_CONSTANT_UNK_1: + case LINK_CONSTANT_DPAD_DOWN: + case LINK_CONSTANT_DPAD_UP: + case LINK_CONSTANT_DPAD_LEFT: + case LINK_CONSTANT_DPAD_RIGHT: + case LINK_CONSTANT_START_BUTTON: + case LINK_CONSTANT_A_BUTTON: gUnknown_03005DA8 = 0; break; } @@ -2429,52 +2454,53 @@ static void sub_8086FA0(u16 a1) static u16 sub_808700C(u32 a1) { if (gMain.heldKeys & DPAD_UP) - return 19; + return LINK_CONSTANT_DPAD_UP; else if (gMain.heldKeys & DPAD_DOWN) - return 18; + return LINK_CONSTANT_DPAD_DOWN; else if (gMain.heldKeys & DPAD_LEFT) - return 20; + return LINK_CONSTANT_DPAD_LEFT; else if (gMain.heldKeys & DPAD_RIGHT) - return 21; + return LINK_CONSTANT_DPAD_RIGHT; else if (gMain.newKeys & START_BUTTON) - return 24; + return LINK_CONSTANT_START_BUTTON; else if (gMain.newKeys & A_BUTTON) - return 25; + return LINK_CONSTANT_A_BUTTON; else - return 17; + return LINK_CONSTANT_UNK_1; } static u16 sub_8087068(u16 a1) { switch (a1) { - case 21: + case LINK_CONSTANT_DPAD_RIGHT: return 4; - case 20: + case LINK_CONSTANT_DPAD_LEFT: return 3; - case 19: + case LINK_CONSTANT_DPAD_UP: return 1; - case 18: + case LINK_CONSTANT_DPAD_DOWN: return 2; default: return 0; } } -static void sub_808709C(u16 *a1) +// Overwrites the keys with 0x11 +static void guess_ResetLinkKeys(u16 *keys) { s32 i; for (i = 0; i < 4; i++) - a1[i] = 17; + keys[i] = LINK_CONSTANT_UNK_1; } static u16 sub_80870B0(u32 a1) { if (ScriptContext2_IsEnabled() == 1) - return 17; + return LINK_CONSTANT_UNK_1; if (sub_800B4DC() > 4) return 27; - if (sub_8087690() <= 4) + if (GetLinkEventQueueLength() <= 4) return sub_808700C(a1); return 28; } @@ -2482,7 +2508,7 @@ static u16 sub_80870B0(u32 a1) static u16 sub_80870EC(u32 a1) { sub_8086C64(); - return 17; + return LINK_CONSTANT_UNK_1; } static u16 sub_80870F8(u32 a1) @@ -2490,7 +2516,7 @@ static u16 sub_80870F8(u32 a1) u16 retVal; if (ScriptContext2_IsEnabled() == TRUE) { - retVal = 17; + retVal = LINK_CONSTANT_UNK_1; } else { @@ -2505,7 +2531,7 @@ static u16 sub_808711C(u32 a1) u16 retVal; if (sub_800B4DC() > 2) { - retVal = 17; + retVal = LINK_CONSTANT_UNK_1; } else { @@ -2519,9 +2545,9 @@ static u16 sub_808711C(u32 a1) static u16 sub_8087140(u32 a1) { u16 retVal; - if (sub_8087690() > 2) + if (GetLinkEventQueueLength() > 2) { - retVal = 17; + retVal = LINK_CONSTANT_UNK_1; } else { @@ -2535,12 +2561,12 @@ static u16 sub_8087140(u32 a1) static u16 sub_8087164(u32 a1) { sub_8086C64(); - return 17; + return LINK_CONSTANT_UNK_1; } static u16 sub_8087170(u32 linkPlayerId) { - if (sUnknown_03000E10[linkPlayerId] == 0x82) + if (sTrainerTradingStates[linkPlayerId] == TRAINER_TRADING_STATE_UNK_2) { if (gMain.newKeys & B_BUTTON) { @@ -2549,13 +2575,13 @@ static u16 sub_8087170(u32 linkPlayerId) } else { - return 17; + return LINK_CONSTANT_UNK_1; } } else { sub_8086C64(); - return 17; + return LINK_CONSTANT_UNK_1; } } @@ -2567,19 +2593,19 @@ static u16 sub_80871AC(u32 a1) static u16 sub_80871C0(u32 a1) { - return 17; + return LINK_CONSTANT_UNK_1; } static u16 sub_80871C4(u32 a1) { - if (sUnknown_03000E10[a1] != 0x83) + if (sTrainerTradingStates[a1] != TRAINER_TRADING_STATE_UNK_3) sub_8086C64(); - if (sub_8086CA8(0x83) == TRUE) + if (sub_8086CA8(TRAINER_TRADING_STATE_UNK_3) == TRUE) { ScriptContext1_SetupScript(EventScript_277513); c1_link_related_func_set(sub_80871C0); } - return 17; + return LINK_CONSTANT_UNK_1; } static u16 sub_80871FC(u32 a1) @@ -2590,16 +2616,16 @@ static u16 sub_80871FC(u32 a1) static u16 sub_8087210(u32 a1) { - return 17; + return LINK_CONSTANT_UNK_1; } u32 sub_8087214(void) { if (sub_8086CE0(0x83) == TRUE) return 2; - if (sUnknown_03000E14 == sub_8087170 && sUnknown_03000E10[gUnknown_03005DB4] != 0x82) + if (sguess_PlayerKeyCallback == sub_8087170 && sTrainerTradingStates[gLinkGuestPlayerId] != TRAINER_TRADING_STATE_UNK_2) return 0; - if (sUnknown_03000E14 == sub_8087164 && sUnknown_03000E10[gUnknown_03005DB4] == 0x81) + if (sguess_PlayerKeyCallback == sub_8087164 && sTrainerTradingStates[gLinkGuestPlayerId] == TRAINER_TRADING_STATE_UNK_1) return 2; if (sub_8086CA8(0x82) != 0) return 1; @@ -2635,14 +2661,14 @@ u16 sub_80872C4(void) return 0; } -static void sub_80872D8(s32 linkPlayerId, s32 a2, struct UnkStruct_8054FF8 *a3) +static void sub_80872D8(s32 linkPlayerId, s32 a2, struct TradeRoomTrainer *a3) { s16 x, y; a3->a = linkPlayerId; a3->b = (linkPlayerId == a2) ? 1 : 0; a3->c = gLinkPlayerEventObjects[linkPlayerId].mode; - a3->d = sub_80878A0(linkPlayerId); + a3->facing = sub_80878A0(linkPlayerId); sub_8087878(linkPlayerId, &x, &y); a3->sub.x = x; a3->sub.y = y; @@ -2650,7 +2676,7 @@ static void sub_80872D8(s32 linkPlayerId, s32 a2, struct UnkStruct_8054FF8 *a3) a3->field_C = MapGridGetMetatileBehaviorAt(x, y); } -static bool32 sub_8087340(struct UnkStruct_8054FF8 *a1) +static bool32 sub_8087340(struct TradeRoomTrainer *a1) { u8 v1 = a1->c; if (v1 == 2 || v1 == 0) @@ -2659,7 +2685,7 @@ static bool32 sub_8087340(struct UnkStruct_8054FF8 *a1) return FALSE; } -static bool32 sub_8087358(struct UnkStruct_8054FF8 *a1) +static bool32 sub_8087358(struct TradeRoomTrainer *a1) { u8 v1 = a1->c; if (v1 == 2 || v1 == 0) @@ -2668,26 +2694,26 @@ static bool32 sub_8087358(struct UnkStruct_8054FF8 *a1) return FALSE; } -static u8 *sub_8087370(struct UnkStruct_8054FF8 *a1) +static u8 *sub_8087370(struct TradeRoomTrainer *a1) { if (a1->c != 2) return 0; return GetCoordEventScriptAtMapPosition(&a1->sub); } -static bool32 sub_8087388(struct UnkStruct_8054FF8 *a1) +static bool32 sub_8087388(struct TradeRoomTrainer *a1) { if (a1->c != 2 && a1->c != 0) return FALSE; else if (!MetatileBehavior_IsSouthArrowWarp(a1->field_C)) return FALSE; - else if (a1->d != 1) + else if (a1->facing != 1) return FALSE; else return TRUE; } -static const u8 *sub_80873B4(struct UnkStruct_8054FF8 *a1) +static const u8 *sub_80873B4(struct TradeRoomTrainer *a1) { struct MapPosition unkStruct; u8 linkPlayerId; @@ -2696,8 +2722,8 @@ static const u8 *sub_80873B4(struct UnkStruct_8054FF8 *a1) return 0; unkStruct = a1->sub; - unkStruct.x += gDirectionToVectors[a1->d].x; - unkStruct.y += gDirectionToVectors[a1->d].y; + unkStruct.x += gDirectionToVectors[a1->facing].x; + unkStruct.y += gDirectionToVectors[a1->facing].y; unkStruct.height = 0; linkPlayerId = GetLinkPlayerIdAt(unkStruct.x, unkStruct.y); @@ -2705,15 +2731,15 @@ static const u8 *sub_80873B4(struct UnkStruct_8054FF8 *a1) { if (!a1->b) return EventScript_TradeRoom_TooBusyToNotice; - else if (sUnknown_03000E10[linkPlayerId] != 0x80) + else if (sTrainerTradingStates[linkPlayerId] != TRAINER_TRADING_STATE_IDLE) return EventScript_TradeRoom_TooBusyToNotice; - else if (!sub_80B39D4(linkPlayerId)) - return EventScript_TradeRoom_ReadTrainerCard1; + else if (!GetLinkTrainerCardColor(linkPlayerId)) + return EventScript_TradeRoom_ReadTrainerCard_NoColor; else - return EventScript_TradeRoom_ReadTrainerCard2; + return EventScript_TradeRoom_ReadTrainerCard_Normal; } - return GetInteractedLinkPlayerScript(&unkStruct, a1->field_C, a1->d); + return GetInteractedLinkPlayerScript(&unkStruct, a1->field_C, a1->facing); } static u16 sub_8087480(const u8 *script) @@ -2806,9 +2832,9 @@ bool32 sub_80875C8(void) return FALSE; else if (sub_8009F3C() != TRUE) return FALSE; - else if (sUnknown_03000E14 == sub_808711C) + else if (sguess_PlayerKeyCallback == sub_808711C) return TRUE; - else if (sUnknown_03000E14 != sub_80870F8) + else if (sguess_PlayerKeyCallback != sub_80870F8) return FALSE; temp = sUnknown_03000E18; @@ -2824,13 +2850,13 @@ bool32 sub_80875C8(void) bool32 sub_8087634(void) { - if (sub_8087690() < 2) + if (GetLinkEventQueueLength() < 2) return FALSE; else if (is_c1_link_related_active() != TRUE) return FALSE; else if (sub_8009F3C() != TRUE) return FALSE; - else if (sUnknown_03000E14 == sub_8087140) + else if (sguess_PlayerKeyCallback == sub_8087140) return TRUE; else return FALSE; @@ -2846,7 +2872,7 @@ bool32 sub_808766C(void) return TRUE; } -static u32 sub_8087690(void) +static u32 GetLinkEventQueueLength(void) { if (gWirelessCommType != 0) return gUnknown_03005000.unk_9e8.unk_232; @@ -2923,7 +2949,8 @@ static void sub_808780C(u8 linkPlayerId) eventObj->active = 0; } -static u8 sub_8087858(u8 linkPlayerId) +// Returns the spriteId corresponding to this player. +static u8 GetSpriteForLinkedPlayer(u8 linkPlayerId) { u8 eventObjId = gLinkPlayerEventObjects[linkPlayerId].eventObjId; struct EventObject *eventObj = &gEventObjects[eventObjId]; @@ -2986,7 +3013,7 @@ static void sub_808796C(u8 linkPlayerId, u8 a2) if (a2 > 10) eventObj->triggerGroundEffectsOnMove = 1; else - gUnknown_08339E00[gUnknown_08339DC8[linkPlayerEventObj->mode](linkPlayerEventObj, eventObj, a2)](linkPlayerEventObj, eventObj); + gUnknown_08339E00[gLinkPlayerEventModes[linkPlayerEventObj->mode](linkPlayerEventObj, eventObj, a2)](linkPlayerEventObj, eventObj); } } diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index 9bdd86167..c409d5d32 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -188,7 +188,7 @@ extern u8 gUnknown_02022C3E; extern u16 gUnknown_02022C3C; extern u8 gUnknown_02022C20[]; extern u8 gFieldLinkPlayerCount; -extern u8 gUnknown_03005DB4; +extern u8 gLinkGuestPlayerId; // IWRAM vars IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0; @@ -1641,7 +1641,7 @@ void sub_8014304(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 arg4) gSpecialVar_0x8004 = arg4; VarSet(VAR_0x4087, arg4); gFieldLinkPlayerCount = GetLinkPlayerCount(); - gUnknown_03005DB4 = GetMultiplayerId(); + gLinkGuestPlayerId = GetMultiplayerId(); SetCableClubWarp(); SetWarpDestination(mapGroup, mapNum, -1, x, y); WarpIntoMap(); diff --git a/src/start_menu.c b/src/start_menu.c index d5eec76d2..a1c9fc9ad 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -84,7 +84,7 @@ EWRAM_DATA static bool8 sSavingComplete = FALSE; EWRAM_DATA static u8 sSaveInfoWindowId = 0; // Extern variables. -extern u8 gUnknown_03005DB4; +extern u8 gLinkGuestPlayerId; // Extern functions in not decompiled files. extern void sub_80AF688(void); @@ -734,7 +734,7 @@ static bool8 StartMenuLinkModePlayerNameCallback(void) { PlayRainSoundEffect(); CleanupOverworldWindowsAndTilemaps(); - ShowTrainerCardInLink(gUnknown_03005DB4, CB2_ReturnToFieldWithOpenMenu); + ShowTrainerCardInLink(gLinkGuestPlayerId, CB2_ReturnToFieldWithOpenMenu); return TRUE; } diff --git a/src/trainer_card.c b/src/trainer_card.c index 49a62284f..be2e95ab3 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -1536,7 +1536,7 @@ static void sub_80C48C8(void) } } -u8 sub_80C4904(u8 cardId) +u8 GetTrainerCardStars(u8 cardId) { struct TrainerCard* trainerCards = gTrainerCards; return trainerCards[cardId].stars; -- cgit v1.2.3 From f2f1b1978ba3423a519df66d4f382dd68ac8b185 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 10 Feb 2019 03:54:50 -0500 Subject: Done documenting link code in overworld.c --- asm/pokenav.s | 2 +- common_syms/overworld.txt | 4 +- data/scripts/cable_club.inc | 2 +- include/global.h | 8 +- include/link.h | 4 +- include/link_rfu.h | 6 +- include/overworld.h | 22 +- src/cable_club.c | 8 +- src/easy_chat.c | 2 +- src/field_screen_effect.c | 2 +- src/link.c | 18 +- src/link_rfu.c | 18 +- src/menu_helpers.c | 4 +- src/overworld.c | 604 +++++++++++++++++++++++--------------------- src/rom_8011DC0.c | 4 +- src/scrcmd.c | 6 +- src/start_menu.c | 10 +- src/trade.c | 4 +- 18 files changed, 381 insertions(+), 347 deletions(-) diff --git a/asm/pokenav.s b/asm/pokenav.s index 40ce730ea..337a296ad 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -12,7 +12,7 @@ sub_81C7078: @ 81C7078 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 - bl is_c1_link_related_active + bl IsUpdateLinkStateCBActive cmp r0, 0 bne _081C7090 ldr r0, =sub_81C7170 diff --git a/common_syms/overworld.txt b/common_syms/overworld.txt index dcf48cb6c..8506c74a0 100644 --- a/common_syms/overworld.txt +++ b/common_syms/overworld.txt @@ -1,8 +1,8 @@ gBGTilemapBuffers1 gBGTilemapBuffers2 gBGTilemapBuffers3 -gUnknown_03005DA8 +gHeldKeyCodeToSend gFieldCallback gFieldCallback2 -gLinkGuestPlayerId +gLinkSelfPlayerId gFieldLinkPlayerCount diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index b1e34278f..c5e8a41a7 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -967,7 +967,7 @@ RecordCorner_EventScript_2774E0:: @ 82774E0 closemessage end -gUnknown_082774EF:: @ 82774EF +gEventScript_ConfirmLeaveTradeRoom:: @ 82774EF msgbox Text_2783A8, MSGBOX_YESNO compare VAR_RESULT, 1 goto_if_eq gUnknown_08277509 diff --git a/include/global.h b/include/global.h index 64d039c6f..6843b4216 100644 --- a/include/global.h +++ b/include/global.h @@ -907,13 +907,13 @@ struct MapPosition s8 height; }; -struct TradeRoomTrainer +struct TradeRoomPlayer { - u8 a; - u8 b; + u8 playerId; + u8 isSelf; u8 c; u8 facing; - struct MapPosition sub; + struct MapPosition pos; u16 field_C; }; diff --git a/include/link.h b/include/link.h index 52a631570..b29d9b4e1 100644 --- a/include/link.h +++ b/include/link.h @@ -312,7 +312,7 @@ void sub_800AB18(void); void sub_8009F18(void); bool8 sub_800AA60(void); void sub_800ABF4(u16 a0); -bool32 sub_8009F3C(void); -u32 sub_800B4DC(void); +bool32 IsSendingKeysToLink(void); +u32 GetLinkRecvQueueLength(void); #endif // GUARD_LINK_H diff --git a/include/link_rfu.h b/include/link_rfu.h index d468d6c49..435880e20 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -218,7 +218,7 @@ void sub_800E700(void); void sub_800EDD4(void); void sub_800F6FC(u8 who); void sub_800F728(u8 who); -bool32 sub_800F7E4(void); +bool32 IsSendingKeysToRfu(void); void sub_800F804(void); void sub_800F850(void); u8 sub_800FCD8(void); @@ -237,8 +237,8 @@ void sub_800E6D0(void); bool32 sub_8010EC0(void); bool32 sub_8010F1C(void); bool32 sub_8011A80(void); -bool32 sub_800F0B8(void); -u32 sub_80124D4(void); +bool32 IsRfuRecvQueueEmpty(void); +u32 GetRfuRecvQueueLength(void); void RfuVSync(void); void sub_80111B0(bool32 a0); u8 sub_8011A74(void); diff --git a/include/overworld.h b/include/overworld.h index 1a8702d71..b5c41b1e6 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -1,6 +1,18 @@ #ifndef GUARD_OVERWORLD_H #define GUARD_OVERWORLD_H +#define LINK_KEY_CODE_NULL 0x00 +#define LINK_KEY_CODE_EMPTY 0x11 +#define LINK_KEY_CODE_DPAD_DOWN 0x12 +#define LINK_KEY_CODE_DPAD_UP 0x13 +#define LINK_KEY_CODE_DPAD_LEFT 0x14 +#define LINK_KEY_CODE_DPAD_RIGHT 0x15 +#define LINK_KEY_CODE_UNK_2 0x16 +#define LINK_KEY_CODE_UNK_3 0x17 +#define LINK_KEY_CODE_START_BUTTON 0x18 +#define LINK_KEY_CODE_A_BUTTON 0x19 +#define LINK_KEY_CODE_UNK_4 0x1A // I'd guess this is the B button? + struct InitialPlayerAvatarState { u8 transitionFlags; @@ -22,10 +34,10 @@ extern struct LinkPlayerEventObject gLinkPlayerEventObjects[4]; extern u16 *gBGTilemapBuffers1; extern u16 *gBGTilemapBuffers2; extern u16 *gBGTilemapBuffers3; -extern u16 gUnknown_03005DA8; +extern u16 gHeldKeyCodeToSend; extern void (*gFieldCallback)(void); extern bool8 (*gFieldCallback2)(void); -extern u8 gLinkGuestPlayerId; +extern u8 gLinkSelfPlayerId; extern u8 gFieldLinkPlayerCount; // Exported ROM declarations @@ -103,7 +115,7 @@ u8 GetSavedWarpRegionMapSectionId(void); u8 GetCurrentRegionMapSectionId(void); u8 GetCurrentMapBattleScene(void); void CleanupOverworldWindowsAndTilemaps(void); -bool32 is_c1_link_related_active(void); +bool32 IsUpdateLinkStateCBActive(void); void CB1_Overworld(void); void CB2_OverworldBasic(void); void CB2_Overworld(void); @@ -117,13 +129,13 @@ void sub_8086074(void); void CB2_ReturnToField(void); void CB2_ReturnToFieldLocal(void); void CB2_ReturnToFieldLink(void); -void c2_8056854(void); +void CB2_ReturnToFieldFromMultiplayer(void); void CB2_ReturnToFieldWithOpenMenu(void); void CB2_ReturnToFieldContinueScript(void); void CB2_ReturnToFieldContinueScriptPlayMapMusic(void); void sub_80861E8(void); void CB2_ContinueSavedGame(void); -void sub_8086C2C(void); +void ResetAllMultiplayerState(void); u32 sub_8087214(void); bool32 sub_808727C(void); u16 sub_8087288(void); diff --git a/src/cable_club.c b/src/cable_club.c index a778ff559..c76de7a6a 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -352,7 +352,7 @@ static void sub_80B2918(u8 taskId) else { gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - gLinkGuestPlayerId = GetMultiplayerId(); + gLinkSelfPlayerId = GetMultiplayerId(); sub_800AA04(gFieldLinkPlayerCount); card = (struct TrainerCard *)gBlockSendBuffer; TrainerCard_GenerateCardForPlayer(card); @@ -399,7 +399,7 @@ static void sub_80B2A08(u8 taskId) else { gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - gLinkGuestPlayerId = GetMultiplayerId(); + gLinkSelfPlayerId = GetMultiplayerId(); sub_800AA04(gFieldLinkPlayerCount); card = (struct TrainerCard *)gBlockSendBuffer; TrainerCard_GenerateCardForPlayer(card); @@ -972,7 +972,7 @@ void sub_80B360C(void) if (gSpecialVar_0x8004 == 1 || gSpecialVar_0x8004 == 2) { - UpdatePlayerLinkBattleRecords(gLinkGuestPlayerId ^ 1); + UpdatePlayerLinkBattleRecords(gLinkSelfPlayerId ^ 1); if (gWirelessCommType) { switch (gBattleOutcome) @@ -993,7 +993,7 @@ void sub_80B360C(void) } else { - gMain.savedCallback = c2_8056854; + gMain.savedCallback = CB2_ReturnToFieldFromMultiplayer; } SetMainCallback2(sub_80A0514); diff --git a/src/easy_chat.c b/src/easy_chat.c index c84895df5..2dce4de0d 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -146,7 +146,7 @@ static void sub_811A2A4(u8 taskId, TaskFunc taskFunc) static void sub_811A2C0(u8 taskId) { - if (!is_c1_link_related_active()) + if (!IsUpdateLinkStateCBActive()) { while (sub_811A428(taskId)); } diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index 93017f125..ee9b49732 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -255,7 +255,7 @@ void sub_80AF2B4(u8 taskId) break; case 2: sub_8009F18(); - sub_8086C2C(); + ResetAllMultiplayerState(); ScriptContext2_Disable(); DestroyTask(taskId); break; diff --git a/src/link.c b/src/link.c index bec9dddc6..1550d8783 100644 --- a/src/link.c +++ b/src/link.c @@ -28,7 +28,7 @@ #include "link.h" #include "link_rfu.h" -extern u16 gUnknown_03005DA8; +extern u16 gHeldKeyCodeToSend; // Static type declarations @@ -695,12 +695,12 @@ static void BuildSendCmd(u16 command) gSendCmd[0] = LINKCMD_0x5566; break; case LINKCMD_SEND_HELD_KEYS_2: - if (gUnknown_03005DA8 == 0 || gLinkTransferringData) + if (gHeldKeyCodeToSend == 0 || gLinkTransferringData) { break; } gSendCmd[0] = LINKCMD_SEND_HELD_KEYS_2; - gSendCmd[1] = gUnknown_03005DA8; + gSendCmd[1] = gHeldKeyCodeToSend; break; } } @@ -714,11 +714,11 @@ void sub_8009F18(void) gLinkCallback = sub_8009F70; } -bool32 sub_8009F3C(void) +bool32 IsSendingKeysToLink(void) { if (gWirelessCommType) { - return sub_800F7E4(); + return IsSendingKeysToRfu(); } if (gLinkCallback == sub_8009F70) { @@ -1849,7 +1849,7 @@ bool8 HandleLinkConnection(void) r5 = sub_8010F1C(); if (sub_808766C() == TRUE) { - if (r4 == TRUE || sub_800F0B8() || r5) + if (r4 == TRUE || IsRfuRecvQueueEmpty() || r5) { return TRUE; } @@ -1882,18 +1882,18 @@ void sub_800B4C0(void) } } -u32 sub_800B4DC(void) +u32 GetLinkRecvQueueLength(void) { if (gWirelessCommType != 0) { - return sub_80124D4(); + return GetRfuRecvQueueLength(); } return gLink.recvQueue.count; } bool8 sub_800B504(void) { - if (sub_800B4DC() > 2) + if (GetLinkRecvQueueLength() > 2) { return TRUE; } diff --git a/src/link_rfu.c b/src/link_rfu.c index ebfc802e0..859d741b1 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -17,7 +17,7 @@ #include "text.h" #include "constants/species.h" -extern u16 gUnknown_03005DA8; +extern u16 gHeldKeyCodeToSend; extern void nullsub_89(u8 taskId); struct UnkRfuStruct_1 gUnknown_03004140; @@ -2978,7 +2978,7 @@ static void sub_800F048(void) } } -bool32 sub_800F0B8(void) +bool32 IsRfuRecvQueueEmpty(void) { s32 i; s32 j; @@ -3199,7 +3199,7 @@ bool32 sub_800F4F0(void) for (i = 0; i < CMD_LENGTH - 1; i++) gSendCmd[i] = 0; } - return sub_800F0B8(); + return IsRfuRecvQueueEmpty(); } void sub_800F638(u8 unused, u32 flags) @@ -3259,10 +3259,12 @@ u8 sub_800F74C(const u8 *a0) void rfu_func_080F97B8(void) { - if (gReceivedRemoteLinkPlayers && gUnknown_03005DA8 && gLinkTransferringData != 1) + if (gReceivedRemoteLinkPlayers + && gHeldKeyCodeToSend != LINK_KEY_CODE_NULL + && gLinkTransferringData != TRUE) { gUnknown_03000D78[0]++; - gUnknown_03005DA8 |= (gUnknown_03000D78[0] << 8); + gHeldKeyCodeToSend |= (gUnknown_03000D78[0] << 8); sub_800FD14(0xbe00); } } @@ -3272,7 +3274,7 @@ struct UnkLinkRfuStruct_02022B14 *sub_800F7DC(void) return &gUnknown_02022B14; } -bool32 sub_800F7E4(void) +bool32 IsSendingKeysToRfu(void) { return gUnknown_03005000.unk_00 == rfu_func_080F97B8; } @@ -3496,7 +3498,7 @@ void sub_800FD14(u16 command) gSendCmd[1 + i] = gUnknown_03005000.unk_f2[i]; break; case 0xbe00: - gSendCmd[1] = gUnknown_03005DA8; + gSendCmd[1] = gHeldKeyCodeToSend; break; case 0xee00: break; @@ -5150,7 +5152,7 @@ u32 sub_80124C0(void) return gUnknown_03005000.unk_9e8.unk_232; } -u32 sub_80124D4(void) +u32 GetRfuRecvQueueLength(void) { return gUnknown_03005000.unk_124.unk_8c2; } diff --git a/src/menu_helpers.c b/src/menu_helpers.c index e6547b300..846c23b6b 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -293,7 +293,7 @@ bool8 sub_8122148(u16 itemId) bool8 itemid_80BF6D8_mail_related(u16 itemId) { - if (is_c1_link_related_active() != TRUE && InUnionRoom() != TRUE) + if (IsUpdateLinkStateCBActive() != TRUE && InUnionRoom() != TRUE) return TRUE; else if (ItemIsMail(itemId) != TRUE) return TRUE; @@ -303,7 +303,7 @@ bool8 itemid_80BF6D8_mail_related(u16 itemId) bool8 sub_81221AC(void) { - if (is_c1_link_related_active() == TRUE || gReceivedRemoteLinkPlayers == 1) + if (IsUpdateLinkStateCBActive() == TRUE || gReceivedRemoteLinkPlayers == 1) return TRUE; else return FALSE; diff --git a/src/overworld.c b/src/overworld.c index a9dfa4280..ca588a072 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -66,25 +66,21 @@ #include "constants/species.h" #include "constants/weather.h" -#define LINK_CONSTANT_UNK_1 0x11 -#define LINK_CONSTANT_DPAD_DOWN 0x12 -#define LINK_CONSTANT_DPAD_UP 0x13 -#define LINK_CONSTANT_DPAD_LEFT 0x14 -#define LINK_CONSTANT_DPAD_RIGHT 0x15 -#define LINK_CONSTANT_UNK_2 0x16 -#define LINK_CONSTANT_UNK_3 0x17 -#define LINK_CONSTANT_START_BUTTON 0x18 -#define LINK_CONSTANT_A_BUTTON 0x19 -#define LINK_CONSTANT_UNK_4 0x1A // I'd guess this is the B button? -#define LINK_CONSTANT_UNK_5 0x1B -#define LINK_CONSTANT_UNK_6 0x1C -#define LINK_CONSTANT_UNK_7 0x1D -#define LINK_CONSTANT_UNK_8 0x1E - -#define TRAINER_TRADING_STATE_IDLE 0x80 -#define TRAINER_TRADING_STATE_UNK_1 0x81 -#define TRAINER_TRADING_STATE_UNK_2 0x82 -#define TRAINER_TRADING_STATE_UNK_3 0x83 +// These two are a hack to stop user input until link stuff can be +// resolved. +#define LINK_KEY_CODE_HANDLE_RECV_QUEUE 0x1B +#define LINK_KEY_CODE_HANDLE_SEND_QUEUE 0x1C +#define LINK_KEY_CODE_UNK_7 0x1D +#define LINK_KEY_CODE_UNK_8 0x1E + +#define PLAYER_TRADING_STATE_IDLE 0x80 +#define PLAYER_TRADING_STATE_BUSY 0x81 +#define PLAYER_TRADING_STATE_UNK_2 0x82 +#define PLAYER_TRADING_STATE_UNK_3 0x83 + +#define EVENT_SCRIPT_NONE 0 +#define EVENT_SCRIPT_ID_9 9 +#define EVENT_SCRIPT_ID_10 10 // event scripts extern const u8 EventScript_WhiteOut[]; @@ -105,7 +101,7 @@ extern const u8 gUnknown_08277374[]; extern const u8 gUnknown_0827737E[]; extern const u8 gUnknown_082773FF[]; extern const u8 gUnknown_082773F5[]; -extern const u8 gUnknown_082774EF[]; +extern const u8 gEventScript_ConfirmLeaveTradeRoom[]; extern const u8 gUnknown_08277509[]; extern const struct MapLayout *const gMapLayouts[]; @@ -139,20 +135,20 @@ static void sub_8086A80(void); static void sub_8086A68(void); static void sub_8086860(void); static void SetCameraToTrackGuestPlayer_2(void); -static void sub_8086B9C(void); -static void guess_ResetHeldKeys(void); -static void sub_8086C90(void); -static void sub_8086FA0(u16); -static void sub_8086F38(u16*, s32); +static void CreateLinkPlayerSprites(void); +static void ClearAllPlayerKeys(void); +static void ResetAllTradingStates(void); +static void UpdateHeldKeyCode(u16); +static void UpdateAllLinkPlayers(u16*, s32); static u8 npc_something3(u8 a1, u8 a2); static u8 LinkPlayerDetectCollision(u8 selfEventObjId, u8 a2, s16 x, s16 y); static void CreateLinkPlayerSprite(u8 linkPlayerId, u8 gameVersion); -static void sub_8087878(u8 linkPlayerId, u16 *x, u16 *y); -static u8 sub_80878A0(u8 linkPlayerId); -static u8 sub_80878C0(u8 linkPlayerId); +static void GetLinkPlayerCoords(u8 linkPlayerId, u16 *x, u16 *y); +static u8 GetLinkPlayerFacingDirection(u8 linkPlayerId); +static u8 GetLinkPlayerElevation(u8 linkPlayerId); static s32 sub_80878E4(u8 linkPlayerId); static u8 GetLinkPlayerIdAt(s16 x, s16 y); -static void sub_808796C(u8 linkPlayerId, u8 a2); +static void RunPlayerEventScript(u8 linkPlayerId, u8 a2); static void ZeroEventObject(struct EventObject *eventObj); static void SpawnLinkPlayerEventObject(u8 linkPlayerId, s16 x, s16 y, u8 a4); static void InitLinkPlayerEventObjectPos(struct EventObject *eventObj, s16 x, s16 y); @@ -160,29 +156,29 @@ static void sub_80877DC(u8 linkPlayerId, u8 a2); static void sub_808780C(u8 linkPlayerId); static u8 GetSpriteForLinkedPlayer(u8 linkPlayerId); static void sub_8087584(void); -static u32 GetLinkEventQueueLength(void); +static u32 GetLinkSendQueueLength(void); static void ZeroLinkPlayerEventObject(struct LinkPlayerEventObject *linkPlayerEventObj); -static const u8 *sub_80873B4(struct TradeRoomTrainer *a1); -static u16 sub_8087480(const u8 *script); +static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *a1); +static u16 GetTypeForTileEventScript(const u8 *script); static void sub_8087510(void); -static void sub_808751C(void); +static void InitLinkRoomStartMenuScript(void); static void sub_8087530(const u8 *script); -static void sub_808754C(void); -static void sub_8087568(const u8 *script); -static void sub_80872D8(s32 linkPlayerId, s32 a2, struct TradeRoomTrainer *a3); -static bool32 sub_8087340(struct TradeRoomTrainer *a1); -static bool32 sub_8087358(struct TradeRoomTrainer *a1); -static u8 *sub_8087370(struct TradeRoomTrainer *a1); -static bool32 sub_8087388(struct TradeRoomTrainer *a1); -static const u8 *sub_80873B4(struct TradeRoomTrainer *a1); -static u16 sub_808711C(u32); -static u16 sub_8087140(u32); -static void guess_ResetLinkKeys(u16 *a1); -static u16 sub_80870B0(u32 a1); -static u16 sub_80870F8(u32 a1); +static void CreateConfirmLeaveTradeRoomPrompt(void); +static void InitMenuBasedScript(const u8 *script); +static void LoadTradeRoomPlayer(s32 linkPlayerId, s32 a2, struct TradeRoomPlayer *a3); +static bool32 sub_8087340(struct TradeRoomPlayer *a1); +static bool32 sub_8087340_2(struct TradeRoomPlayer *a1); +static u8 *TryGetTileEventScript(struct TradeRoomPlayer *a1); +static bool32 PlayerIsAtSouthExit(struct TradeRoomPlayer *a1); +static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *a1); +static u16 KeyInterCB_DeferToRecvQueue(u32); +static u16 KeyInterCB_DeferToSendQueue(u32); +static void ResetPlayerHeldKeys(u16 *a1); +static u16 KeyInterCB_SelfIdle(u32 a1); +static u16 KeyInterCB_DeferToEventScript(u32 a1); static u16 sub_8087068(u16 a1); -static void c1_link_related(void); -static void c1_link_related_func_set(u16 (*func)(u32)); +static void CB1_UpdateLinkState(void); +static void SetKeyInterceptCallback(u16 (*func)(u32)); static void SetFieldVBlankCallback(void); static void FieldClearVBlankHBlankCallbacks(void); static void sub_8085810(void); @@ -192,20 +188,23 @@ static u16 GetCenterScreenMetatileBehavior(void); // IWRAM bss vars IWRAM_DATA static void *sUnknown_03000E0C; -IWRAM_DATA static u8 sTrainerTradingStates[4]; -IWRAM_DATA static u16 (*sguess_PlayerKeyCallback)(u32); -IWRAM_DATA static u8 sUnknown_03000E18; -IWRAM_DATA static u8 sUnknown_03000E19; +IWRAM_DATA static u8 sPlayerTradingStates[4]; +// This callback is called with a player's key code. It then returns an +// adjusted key code, effectively intercepting the input before anything +// can process it. +IWRAM_DATA static u16 (*sPlayerKeyInterceptCallback)(u32); +IWRAM_DATA static bool8 sUnknown_03000E18; +IWRAM_DATA static u8 sRfuKeepAliveTimer; IWRAM_DATA static u32 sUnusedVar; // IWRAM common u16 *gBGTilemapBuffers1; u16 *gBGTilemapBuffers2; u16 *gBGTilemapBuffers3; -u16 gUnknown_03005DA8; +u16 gHeldKeyCodeToSend; void (*gFieldCallback)(void); bool8 (*gFieldCallback2)(void); -u8 gLinkGuestPlayerId; +u8 gLinkSelfPlayerId; // This is our player id in a multiplayer mode. u8 gFieldLinkPlayerCount; // EWRAM vars @@ -1120,7 +1119,7 @@ u16 GetCurrLocationDefaultMusic(void) } else { - if (gSaveBlock1Ptr->pos.x < LINK_CONSTANT_START_BUTTON) + if (gSaveBlock1Ptr->pos.x < LINK_KEY_CODE_START_BUTTON) return MUS_DOORO_X1; else return MUS_GRANROAD; @@ -1263,7 +1262,7 @@ static void PlayAmbientCry(void) && !MetatileBehavior_IsSurfableWaterOrUnderwater(MapGridGetMetatileBehaviorAt(x, y))) return; pan = (Random() % 88) + 212; - volume = (Random() % LINK_CONSTANT_UNK_8) + 50; + volume = (Random() % LINK_KEY_CODE_UNK_8) + 50; PlayCry2(sAmbientCrySpecies, pan, volume, 1); } @@ -1427,9 +1426,9 @@ static void ResetSafariZoneFlag_(void) ResetSafariZoneFlag(); } -bool32 is_c1_link_related_active(void) +bool32 IsUpdateLinkStateCBActive(void) { - if (gMain.callback1 == c1_link_related) + if (gMain.callback1 == CB1_UpdateLinkState) return TRUE; else return FALSE; @@ -1615,15 +1614,15 @@ static void c2_80567AC(void) if (map_loading_iteration_3(&gMain.state)) { SetFieldVBlankCallback(); - SetMainCallback1(c1_link_related); - sub_8086C2C(); + SetMainCallback1(CB1_UpdateLinkState); + ResetAllMultiplayerState(); SetMainCallback2(CB2_Overworld); } } void CB2_ReturnToField(void) { - if (is_c1_link_related_active() == TRUE) + if (IsUpdateLinkStateCBActive() == TRUE) { SetMainCallback2(CB2_ReturnToFieldLink); } @@ -1649,12 +1648,12 @@ void CB2_ReturnToFieldLink(void) SetMainCallback2(CB2_Overworld); } -void c2_8056854(void) +void CB2_ReturnToFieldFromMultiplayer(void) { FieldClearVBlankHBlankCallbacks(); StopMapMusic(); - SetMainCallback1(c1_link_related); - sub_8086C2C(); + SetMainCallback1(CB1_UpdateLinkState); + ResetAllMultiplayerState(); if (gWirelessCommType != 0) gFieldCallback = sub_80AF314; @@ -2000,7 +1999,7 @@ static bool32 map_loading_iteration_2_link(u8 *state) (*state)++; break; case 2: - sub_8086B9C(); + CreateLinkPlayerSprites(); sub_8086A68(); SetCameraToTrackGuestPlayer_2(); (*state)++; @@ -2191,13 +2190,13 @@ static void sub_8086A80(void) static void SetCameraToTrackGuestPlayer(void) { - InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLinkGuestPlayerId)); + InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLinkSelfPlayerId)); } // Duplicate function. static void SetCameraToTrackGuestPlayer_2(void) { - InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLinkGuestPlayerId)); + InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLinkSelfPlayerId)); } static void sub_8086AE4(void) @@ -2207,7 +2206,7 @@ static void sub_8086AE4(void) // This is a hack of some kind; it's undone in sub_8086B14, which is called // soon after this function. - sub_8088B3C(x + gLinkGuestPlayerId, y); + sub_8088B3C(x + gLinkSelfPlayerId, y); } static void sub_8086B14(void) @@ -2216,7 +2215,7 @@ static void sub_8086B14(void) u16 x, y; GetCameraFocusCoords(&x, &y); - x -= gLinkGuestPlayerId; + x -= gLinkSelfPlayerId; for (i = 0; i < gFieldLinkPlayerCount; i++) { @@ -2224,103 +2223,118 @@ static void sub_8086B14(void) CreateLinkPlayerSprite(i, gLinkPlayers[i].version); } - guess_ResetHeldKeys(); + ClearAllPlayerKeys(); } -static void sub_8086B9C(void) +static void CreateLinkPlayerSprites(void) { u16 i; for (i = 0; i < gFieldLinkPlayerCount; i++) CreateLinkPlayerSprite(i, gLinkPlayers[i].version); } -static void c1_link_related(void) + +static void CB1_UpdateLinkState(void) { - if (gWirelessCommType == 0 || !sub_800F0B8() || !sub_8009F3C()) + if (gWirelessCommType == 0 || !IsRfuRecvQueueEmpty() || !IsSendingKeysToLink()) { - u8 guestId = gLinkGuestPlayerId; - sub_8086F38(gLinkPartnersHeldKeys, guestId); - sub_8086FA0(sguess_PlayerKeyCallback(guestId)); - guess_ResetHeldKeys(); + u8 selfId = gLinkSelfPlayerId; + UpdateAllLinkPlayers(gLinkPartnersHeldKeys, selfId); + + // Note: Because guestId is between 0 and 4, while the smallest key code is + // LINK_KEY_CODE_EMPTY, this is functionally equivalent to `sPlayerKeyInterceptCallback(0)`. + // It is expecting the callback to be KeyInterCB_SelfIdle, and that will + // completely ignore any input parameters. + // + // UpdateHeldKeyCode performs a sanity check on its input; if + // sPlayerKeyInterceptCallback echoes back the argument, which is selfId, then + // it'll use LINK_KEY_CODE_EMPTY instead. + UpdateHeldKeyCode(sPlayerKeyInterceptCallback(selfId)); + ClearAllPlayerKeys(); } } -void sub_8086C2C(void) +void ResetAllMultiplayerState(void) { - sub_8086C90(); - c1_link_related_func_set(sub_80870B0); + ResetAllTradingStates(); + SetKeyInterceptCallback(KeyInterCB_SelfIdle); } -static void guess_ResetHeldKeys(void) +static void ClearAllPlayerKeys(void) { - guess_ResetLinkKeys(gLinkPartnersHeldKeys); + ResetPlayerHeldKeys(gLinkPartnersHeldKeys); } -static void c1_link_related_func_set(u16 (*func)(u32)) +static void SetKeyInterceptCallback(u16 (*func)(u32)) { - sUnknown_03000E19 = 0; - sguess_PlayerKeyCallback = func; + sRfuKeepAliveTimer = 0; + sPlayerKeyInterceptCallback = func; } -static void sub_8086C64(void) +// Once every ~60 frames, if the link state hasn't changed (timer reset by calls +// to SetKeyInterceptCallback), it does a bunch of sanity checks on the connection. +// I'm not sure if sRfuKeepAliveTimer is reset in the process, though; rfu stuff is +// still undocumented. +static void CheckRfuKeepAliveTimer(void) { - if (gWirelessCommType != 0 && ++sUnknown_03000E19 > 60) + if (gWirelessCommType != 0 && ++sRfuKeepAliveTimer > 60) sub_8010198(); } -static void sub_8086C90(void) +static void ResetAllTradingStates(void) { s32 i; for (i = 0; i < 4; i++) - sTrainerTradingStates[i] = TRAINER_TRADING_STATE_IDLE; + sPlayerTradingStates[i] = PLAYER_TRADING_STATE_IDLE; } -static bool32 sub_8086CA8(u16 a1) +// Returns true if all connected players are in tradingState. +static bool32 AreAllPlayersInState(u16 tradingState) { s32 i; s32 count = gFieldLinkPlayerCount; for (i = 0; i < count; i++) - if (sTrainerTradingStates[i] != a1) + if (sPlayerTradingStates[i] != tradingState) return FALSE; return TRUE; } -static bool32 sub_8086CE0(u16 a1) +static bool32 AreAnyPlayersInState(u16 tradingState) { s32 i; s32 count = gFieldLinkPlayerCount; for (i = 0; i < count; i++) - if (sTrainerTradingStates[i] == a1) + if (sPlayerTradingStates[i] == tradingState) return TRUE; return FALSE; } -static void sub_8086D18(u32 playerId, u16 key, struct TradeRoomTrainer *trainer, u16 *a4) +static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlayer *trainer, u16 *eventScriptType) { const u8 *script; - if (sTrainerTradingStates[playerId] == TRAINER_TRADING_STATE_IDLE) + if (sPlayerTradingStates[playerId] == PLAYER_TRADING_STATE_IDLE) { - script = sub_8087370(trainer); + script = TryGetTileEventScript(trainer); if (script) { - *a4 = sub_8087480(script); - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; - if (trainer->b) + *eventScriptType = GetTypeForTileEventScript(script); + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + if (trainer->isSelf) { - c1_link_related_func_set(sub_80870F8); + SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); sub_8087530(script); } return; } - if (sub_8086CE0(0x83) == 1) + if (AreAnyPlayersInState(PLAYER_TRADING_STATE_UNK_3) == TRUE) { - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; - if (trainer->b) + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + if (trainer->isSelf) { - c1_link_related_func_set(sub_80870F8); + SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); sub_8087584(); } return; @@ -2328,58 +2342,58 @@ static void sub_8086D18(u32 playerId, u16 key, struct TradeRoomTrainer *trainer, switch (key) { - case LINK_CONSTANT_START_BUTTON: - if (sub_8087358(trainer)) + case LINK_KEY_CODE_START_BUTTON: + if (sub_8087340_2(trainer)) { - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; - if (trainer->b) + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + if (trainer->isSelf) { - c1_link_related_func_set(sub_80870F8); - sub_808751C(); + SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); + InitLinkRoomStartMenuScript(); } } break; - case LINK_CONSTANT_DPAD_DOWN: - if (sub_8087388(trainer) == TRUE) + case LINK_KEY_CODE_DPAD_DOWN: + if (PlayerIsAtSouthExit(trainer) == TRUE) { - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; - if (trainer->b) + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + if (trainer->isSelf) { - c1_link_related_func_set(sub_80870F8); - sub_808754C(); + SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); + CreateConfirmLeaveTradeRoomPrompt(); } } break; - case LINK_CONSTANT_A_BUTTON: - script = sub_80873B4(trainer); + case LINK_KEY_CODE_A_BUTTON: + script = TryInteractWithPlayer(trainer); if (script) { - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; - if (trainer->b) + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + if (trainer->isSelf) { - c1_link_related_func_set(sub_80870F8); - sub_8087568(script); + SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); + InitMenuBasedScript(script); } } break; - case LINK_CONSTANT_UNK_5: + case LINK_KEY_CODE_HANDLE_RECV_QUEUE: if (sub_8087340(trainer)) { - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; - if (trainer->b) + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + if (trainer->isSelf) { - c1_link_related_func_set(sub_808711C); + SetKeyInterceptCallback(KeyInterCB_DeferToRecvQueue); sub_8087510(); } } break; - case LINK_CONSTANT_UNK_6: + case LINK_KEY_CODE_HANDLE_SEND_QUEUE: if (sub_8087340(trainer)) { - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; - if (trainer->b) + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; + if (trainer->isSelf) { - c1_link_related_func_set(sub_8087140); + SetKeyInterceptCallback(KeyInterCB_DeferToSendQueue); sub_8087510(); } } @@ -2389,97 +2403,97 @@ static void sub_8086D18(u32 playerId, u16 key, struct TradeRoomTrainer *trainer, switch (key) { - case LINK_CONSTANT_UNK_3: - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_3; + case LINK_KEY_CODE_UNK_3: + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_UNK_3; break; - case LINK_CONSTANT_UNK_2: - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_2; + case LINK_KEY_CODE_UNK_2: + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_UNK_2; break; - case LINK_CONSTANT_UNK_4: - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_IDLE; - if (trainer->b) - c1_link_related_func_set(sub_80870B0); + case LINK_KEY_CODE_UNK_4: + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_IDLE; + if (trainer->isSelf) + SetKeyInterceptCallback(KeyInterCB_SelfIdle); break; - case LINK_CONSTANT_UNK_7: - if (sTrainerTradingStates[playerId] == TRAINER_TRADING_STATE_UNK_2) - sTrainerTradingStates[playerId] = TRAINER_TRADING_STATE_UNK_1; + case LINK_KEY_CODE_UNK_7: + if (sPlayerTradingStates[playerId] == PLAYER_TRADING_STATE_UNK_2) + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; break; } } -static void sub_8086F38(u16 *keys, s32 guestId) +static void UpdateAllLinkPlayers(u16 *keys, s32 selfId) { - struct TradeRoomTrainer trainer; + struct TradeRoomPlayer trainer; s32 i; for (i = 0; i < 4; i++) { u8 key = keys[i]; - u16 v8 = 0; - sub_80872D8(i, guestId, &trainer); - sub_8086D18(i, key, &trainer, &v8); - if (sTrainerTradingStates[i] == TRAINER_TRADING_STATE_IDLE) - v8 = sub_8087068(key); - sub_808796C(i, v8); + u16 eventScriptType = EVENT_SCRIPT_NONE; + LoadTradeRoomPlayer(i, selfId, &trainer); + HandleLinkPlayerKeyInput(i, key, &trainer, &eventScriptType); + if (sPlayerTradingStates[i] == PLAYER_TRADING_STATE_IDLE) + eventScriptType = sub_8087068(key); + RunPlayerEventScript(i, eventScriptType); } } -static void sub_8086FA0(u16 a1) +static void UpdateHeldKeyCode(u16 key) { - if (a1 >= LINK_CONSTANT_UNK_1 && a1 < LINK_CONSTANT_UNK_8) - gUnknown_03005DA8 = a1; + if (key >= LINK_KEY_CODE_EMPTY && key < LINK_KEY_CODE_UNK_8) + gHeldKeyCodeToSend = key; else - gUnknown_03005DA8 = LINK_CONSTANT_UNK_1; + gHeldKeyCodeToSend = LINK_KEY_CODE_EMPTY; if (gWirelessCommType != 0 - && GetLinkEventQueueLength() > 1 - && is_c1_link_related_active() == TRUE - && sub_8009F3C() == TRUE) + && GetLinkSendQueueLength() > 1 + && IsUpdateLinkStateCBActive() == TRUE + && IsSendingKeysToLink() == TRUE) { - switch (a1) + switch (key) { - case LINK_CONSTANT_UNK_1: - case LINK_CONSTANT_DPAD_DOWN: - case LINK_CONSTANT_DPAD_UP: - case LINK_CONSTANT_DPAD_LEFT: - case LINK_CONSTANT_DPAD_RIGHT: - case LINK_CONSTANT_START_BUTTON: - case LINK_CONSTANT_A_BUTTON: - gUnknown_03005DA8 = 0; + case LINK_KEY_CODE_EMPTY: + case LINK_KEY_CODE_DPAD_DOWN: + case LINK_KEY_CODE_DPAD_UP: + case LINK_KEY_CODE_DPAD_LEFT: + case LINK_KEY_CODE_DPAD_RIGHT: + case LINK_KEY_CODE_START_BUTTON: + case LINK_KEY_CODE_A_BUTTON: + gHeldKeyCodeToSend = LINK_KEY_CODE_NULL; break; } } } -static u16 sub_808700C(u32 a1) +static u16 KeyInterCB_ReadButtons(u32 key) { if (gMain.heldKeys & DPAD_UP) - return LINK_CONSTANT_DPAD_UP; + return LINK_KEY_CODE_DPAD_UP; else if (gMain.heldKeys & DPAD_DOWN) - return LINK_CONSTANT_DPAD_DOWN; + return LINK_KEY_CODE_DPAD_DOWN; else if (gMain.heldKeys & DPAD_LEFT) - return LINK_CONSTANT_DPAD_LEFT; + return LINK_KEY_CODE_DPAD_LEFT; else if (gMain.heldKeys & DPAD_RIGHT) - return LINK_CONSTANT_DPAD_RIGHT; + return LINK_KEY_CODE_DPAD_RIGHT; else if (gMain.newKeys & START_BUTTON) - return LINK_CONSTANT_START_BUTTON; + return LINK_KEY_CODE_START_BUTTON; else if (gMain.newKeys & A_BUTTON) - return LINK_CONSTANT_A_BUTTON; + return LINK_KEY_CODE_A_BUTTON; else - return LINK_CONSTANT_UNK_1; + return LINK_KEY_CODE_EMPTY; } static u16 sub_8087068(u16 a1) { switch (a1) { - case LINK_CONSTANT_DPAD_RIGHT: + case LINK_KEY_CODE_DPAD_RIGHT: return 4; - case LINK_CONSTANT_DPAD_LEFT: + case LINK_KEY_CODE_DPAD_LEFT: return 3; - case LINK_CONSTANT_DPAD_UP: + case LINK_KEY_CODE_DPAD_UP: return 1; - case LINK_CONSTANT_DPAD_DOWN: + case LINK_KEY_CODE_DPAD_DOWN: return 2; default: return 0; @@ -2487,251 +2501,257 @@ static u16 sub_8087068(u16 a1) } // Overwrites the keys with 0x11 -static void guess_ResetLinkKeys(u16 *keys) +static void ResetPlayerHeldKeys(u16 *keys) { s32 i; for (i = 0; i < 4; i++) - keys[i] = LINK_CONSTANT_UNK_1; + keys[i] = LINK_KEY_CODE_EMPTY; } -static u16 sub_80870B0(u32 a1) + +static u16 KeyInterCB_SelfIdle(u32 key) { - if (ScriptContext2_IsEnabled() == 1) - return LINK_CONSTANT_UNK_1; - if (sub_800B4DC() > 4) - return 27; - if (GetLinkEventQueueLength() <= 4) - return sub_808700C(a1); - return 28; + if (ScriptContext2_IsEnabled() == TRUE) + return LINK_KEY_CODE_EMPTY; + if (GetLinkRecvQueueLength() > 4) + return LINK_KEY_CODE_HANDLE_RECV_QUEUE; + if (GetLinkSendQueueLength() <= 4) + return KeyInterCB_ReadButtons(key); + return LINK_KEY_CODE_HANDLE_SEND_QUEUE; } -static u16 sub_80870EC(u32 a1) +static u16 sub_80870EC(u32 key) { - sub_8086C64(); - return LINK_CONSTANT_UNK_1; + CheckRfuKeepAliveTimer(); + return LINK_KEY_CODE_EMPTY; } -static u16 sub_80870F8(u32 a1) +// Ignore the player's inputs as long as there is an event script +// in ScriptContext2. +static u16 KeyInterCB_DeferToEventScript(u32 key) { u16 retVal; if (ScriptContext2_IsEnabled() == TRUE) { - retVal = LINK_CONSTANT_UNK_1; + retVal = LINK_KEY_CODE_EMPTY; } else { - retVal = 26; - c1_link_related_func_set(sub_80870EC); + retVal = LINK_KEY_CODE_UNK_4; + SetKeyInterceptCallback(sub_80870EC); } return retVal; } -static u16 sub_808711C(u32 a1) +// Ignore the player's inputs as long as there are events being recived. +static u16 KeyInterCB_DeferToRecvQueue(u32 key) { u16 retVal; - if (sub_800B4DC() > 2) + if (GetLinkRecvQueueLength() > 2) { - retVal = LINK_CONSTANT_UNK_1; + retVal = LINK_KEY_CODE_EMPTY; } else { - retVal = 26; + retVal = LINK_KEY_CODE_UNK_4; ScriptContext2_Disable(); - c1_link_related_func_set(sub_80870EC); + SetKeyInterceptCallback(sub_80870EC); } return retVal; } -static u16 sub_8087140(u32 a1) +// Ignore the player's inputs as long as there are events being sent. +static u16 KeyInterCB_DeferToSendQueue(u32 key) { u16 retVal; - if (GetLinkEventQueueLength() > 2) + if (GetLinkSendQueueLength() > 2) { - retVal = LINK_CONSTANT_UNK_1; + retVal = LINK_KEY_CODE_EMPTY; } else { - retVal = 26; + retVal = LINK_KEY_CODE_UNK_4; ScriptContext2_Disable(); - c1_link_related_func_set(sub_80870EC); + SetKeyInterceptCallback(sub_80870EC); } return retVal; } -static u16 sub_8087164(u32 a1) +static u16 sub_8087164(u32 key) { - sub_8086C64(); - return LINK_CONSTANT_UNK_1; + CheckRfuKeepAliveTimer(); + return LINK_KEY_CODE_EMPTY; } static u16 sub_8087170(u32 linkPlayerId) { - if (sTrainerTradingStates[linkPlayerId] == TRAINER_TRADING_STATE_UNK_2) + if (sPlayerTradingStates[linkPlayerId] == PLAYER_TRADING_STATE_UNK_2) { if (gMain.newKeys & B_BUTTON) { - c1_link_related_func_set(sub_8087164); - return 29; + SetKeyInterceptCallback(sub_8087164); + return LINK_KEY_CODE_UNK_7; } else { - return LINK_CONSTANT_UNK_1; + return LINK_KEY_CODE_EMPTY; } } else { - sub_8086C64(); - return LINK_CONSTANT_UNK_1; + CheckRfuKeepAliveTimer(); + return LINK_KEY_CODE_EMPTY; } } static u16 sub_80871AC(u32 a1) { - c1_link_related_func_set(sub_8087170); - return 22; + SetKeyInterceptCallback(sub_8087170); + return LINK_KEY_CODE_UNK_2; } static u16 sub_80871C0(u32 a1) { - return LINK_CONSTANT_UNK_1; + return LINK_KEY_CODE_EMPTY; } static u16 sub_80871C4(u32 a1) { - if (sTrainerTradingStates[a1] != TRAINER_TRADING_STATE_UNK_3) - sub_8086C64(); - if (sub_8086CA8(TRAINER_TRADING_STATE_UNK_3) == TRUE) + if (sPlayerTradingStates[a1] != PLAYER_TRADING_STATE_UNK_3) + CheckRfuKeepAliveTimer(); + if (AreAllPlayersInState(PLAYER_TRADING_STATE_UNK_3) == TRUE) { ScriptContext1_SetupScript(EventScript_277513); - c1_link_related_func_set(sub_80871C0); + SetKeyInterceptCallback(sub_80871C0); } - return LINK_CONSTANT_UNK_1; + return LINK_KEY_CODE_EMPTY; } static u16 sub_80871FC(u32 a1) { - c1_link_related_func_set(sub_80871C4); + SetKeyInterceptCallback(sub_80871C4); return 23; } static u16 sub_8087210(u32 a1) { - return LINK_CONSTANT_UNK_1; + return LINK_KEY_CODE_EMPTY; } u32 sub_8087214(void) { - if (sub_8086CE0(0x83) == TRUE) + if (AreAnyPlayersInState(PLAYER_TRADING_STATE_UNK_3) == TRUE) return 2; - if (sguess_PlayerKeyCallback == sub_8087170 && sTrainerTradingStates[gLinkGuestPlayerId] != TRAINER_TRADING_STATE_UNK_2) + if (sPlayerKeyInterceptCallback == sub_8087170 && sPlayerTradingStates[gLinkSelfPlayerId] != PLAYER_TRADING_STATE_UNK_2) return 0; - if (sguess_PlayerKeyCallback == sub_8087164 && sTrainerTradingStates[gLinkGuestPlayerId] == TRAINER_TRADING_STATE_UNK_1) + if (sPlayerKeyInterceptCallback == sub_8087164 && sPlayerTradingStates[gLinkSelfPlayerId] == PLAYER_TRADING_STATE_BUSY) return 2; - if (sub_8086CA8(0x82) != 0) + if (AreAllPlayersInState(PLAYER_TRADING_STATE_UNK_2) != FALSE) return 1; return 0; } bool32 sub_808727C(void) { - return sub_8086CE0(0x83); + return AreAnyPlayersInState(PLAYER_TRADING_STATE_UNK_3); } u16 sub_8087288(void) { - c1_link_related_func_set(sub_80871AC); + SetKeyInterceptCallback(sub_80871AC); return 0; } u16 sub_808729C(void) { - c1_link_related_func_set(sub_80870F8); + SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); return 0; } u16 sub_80872B0(void) { - c1_link_related_func_set(sub_80871FC); + SetKeyInterceptCallback(sub_80871FC); return 0; } u16 sub_80872C4(void) { - c1_link_related_func_set(sub_8087210); + SetKeyInterceptCallback(sub_8087210); return 0; } -static void sub_80872D8(s32 linkPlayerId, s32 a2, struct TradeRoomTrainer *a3) +static void LoadTradeRoomPlayer(s32 linkPlayerId, s32 myPlayerId, struct TradeRoomPlayer *trainer) { s16 x, y; - a3->a = linkPlayerId; - a3->b = (linkPlayerId == a2) ? 1 : 0; - a3->c = gLinkPlayerEventObjects[linkPlayerId].mode; - a3->facing = sub_80878A0(linkPlayerId); - sub_8087878(linkPlayerId, &x, &y); - a3->sub.x = x; - a3->sub.y = y; - a3->sub.height = sub_80878C0(linkPlayerId); - a3->field_C = MapGridGetMetatileBehaviorAt(x, y); + trainer->playerId = linkPlayerId; + trainer->isSelf = (linkPlayerId == myPlayerId) ? 1 : 0; + trainer->c = gLinkPlayerEventObjects[linkPlayerId].mode; + trainer->facing = GetLinkPlayerFacingDirection(linkPlayerId); + GetLinkPlayerCoords(linkPlayerId, &x, &y); + trainer->pos.x = x; + trainer->pos.y = y; + trainer->pos.height = GetLinkPlayerElevation(linkPlayerId); + trainer->field_C = MapGridGetMetatileBehaviorAt(x, y); } -static bool32 sub_8087340(struct TradeRoomTrainer *a1) +static bool32 sub_8087340(struct TradeRoomPlayer *player) { - u8 v1 = a1->c; + u8 v1 = player->c; if (v1 == 2 || v1 == 0) return TRUE; else return FALSE; } -static bool32 sub_8087358(struct TradeRoomTrainer *a1) +// Duplicate function. +static bool32 sub_8087340_2(struct TradeRoomPlayer *player) { - u8 v1 = a1->c; + u8 v1 = player->c; if (v1 == 2 || v1 == 0) return TRUE; else return FALSE; } -static u8 *sub_8087370(struct TradeRoomTrainer *a1) +static u8 *TryGetTileEventScript(struct TradeRoomPlayer *player) { - if (a1->c != 2) + if (player->c != 2) return 0; - return GetCoordEventScriptAtMapPosition(&a1->sub); + return GetCoordEventScriptAtMapPosition(&player->pos); } -static bool32 sub_8087388(struct TradeRoomTrainer *a1) +static bool32 PlayerIsAtSouthExit(struct TradeRoomPlayer *player) { - if (a1->c != 2 && a1->c != 0) + if (player->c != 2 && player->c != 0) return FALSE; - else if (!MetatileBehavior_IsSouthArrowWarp(a1->field_C)) + else if (!MetatileBehavior_IsSouthArrowWarp(player->field_C)) return FALSE; - else if (a1->facing != 1) + else if (player->facing != 1) return FALSE; else return TRUE; } -static const u8 *sub_80873B4(struct TradeRoomTrainer *a1) +static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *player) { - struct MapPosition unkStruct; + struct MapPosition otherPlayerPos; u8 linkPlayerId; - if (a1->c && a1->c != 2) + if (player->c && player->c != 2) return 0; - unkStruct = a1->sub; - unkStruct.x += gDirectionToVectors[a1->facing].x; - unkStruct.y += gDirectionToVectors[a1->facing].y; - unkStruct.height = 0; - linkPlayerId = GetLinkPlayerIdAt(unkStruct.x, unkStruct.y); + otherPlayerPos = player->pos; + otherPlayerPos.x += gDirectionToVectors[player->facing].x; + otherPlayerPos.y += gDirectionToVectors[player->facing].y; + otherPlayerPos.height = 0; + linkPlayerId = GetLinkPlayerIdAt(otherPlayerPos.x, otherPlayerPos.y); if (linkPlayerId != 4) { - if (!a1->b) + if (!player->isSelf) return EventScript_TradeRoom_TooBusyToNotice; - else if (sTrainerTradingStates[linkPlayerId] != TRAINER_TRADING_STATE_IDLE) + else if (sPlayerTradingStates[linkPlayerId] != PLAYER_TRADING_STATE_IDLE) return EventScript_TradeRoom_TooBusyToNotice; else if (!GetLinkTrainerCardColor(linkPlayerId)) return EventScript_TradeRoom_ReadTrainerCard_NoColor; @@ -2739,10 +2759,10 @@ static const u8 *sub_80873B4(struct TradeRoomTrainer *a1) return EventScript_TradeRoom_ReadTrainerCard_Normal; } - return GetInteractedLinkPlayerScript(&unkStruct, a1->field_C, a1->facing); + return GetInteractedLinkPlayerScript(&otherPlayerPos, player->field_C, player->facing); } -static u16 sub_8087480(const u8 *script) +static u16 GetTypeForTileEventScript(const u8 *script) { if (script == gUnknown_08277388) return 10; @@ -2777,7 +2797,7 @@ static void sub_8087510(void) ScriptContext2_Enable(); } -static void sub_808751C(void) +static void InitLinkRoomStartMenuScript(void) { PlaySE(SE_WIN_OPEN); ShowStartMenu(); @@ -2791,14 +2811,14 @@ static void sub_8087530(const u8 *script) ScriptContext2_Enable(); } -static void sub_808754C(void) +static void CreateConfirmLeaveTradeRoomPrompt(void) { PlaySE(SE_WIN_OPEN); - ScriptContext1_SetupScript(gUnknown_082774EF); + ScriptContext1_SetupScript(gEventScript_ConfirmLeaveTradeRoom); ScriptContext2_Enable(); } -static void sub_8087568(const u8 *script) +static void InitMenuBasedScript(const u8 *script) { PlaySE(SE_SELECT); ScriptContext1_SetupScript(script); @@ -2813,12 +2833,12 @@ static void sub_8087584(void) bool32 sub_8087598(void) { - if (!is_c1_link_related_active()) - return 0; - if (sub_800B4DC() >= 3) - sUnknown_03000E18 = 1; + if (!IsUpdateLinkStateCBActive()) + return FALSE; + if (GetLinkRecvQueueLength() >= 3) + sUnknown_03000E18 = TRUE; else - sUnknown_03000E18 = 0; + sUnknown_03000E18 = FALSE; return sUnknown_03000E18; } @@ -2826,19 +2846,19 @@ bool32 sub_80875C8(void) { u8 temp; - if (sub_800B4DC() < 2) + if (GetLinkRecvQueueLength() < 2) return FALSE; - else if (is_c1_link_related_active() != TRUE) + else if (IsUpdateLinkStateCBActive() != TRUE) return FALSE; - else if (sub_8009F3C() != TRUE) + else if (IsSendingKeysToLink() != TRUE) return FALSE; - else if (sguess_PlayerKeyCallback == sub_808711C) + else if (sPlayerKeyInterceptCallback == KeyInterCB_DeferToRecvQueue) return TRUE; - else if (sguess_PlayerKeyCallback != sub_80870F8) + else if (sPlayerKeyInterceptCallback != KeyInterCB_DeferToEventScript) return FALSE; temp = sUnknown_03000E18; - sUnknown_03000E18 = 0; + sUnknown_03000E18 = FALSE; if (temp == TRUE) return TRUE; @@ -2850,13 +2870,13 @@ bool32 sub_80875C8(void) bool32 sub_8087634(void) { - if (GetLinkEventQueueLength() < 2) + if (GetLinkSendQueueLength() < 2) return FALSE; - else if (is_c1_link_related_active() != TRUE) + else if (IsUpdateLinkStateCBActive() != TRUE) return FALSE; - else if (sub_8009F3C() != TRUE) + else if (IsSendingKeysToLink() != TRUE) return FALSE; - else if (sguess_PlayerKeyCallback == sub_8087140) + else if (sPlayerKeyInterceptCallback == KeyInterCB_DeferToSendQueue) return TRUE; else return FALSE; @@ -2866,13 +2886,13 @@ bool32 sub_808766C(void) { if (gWirelessCommType != 0) return FALSE; - else if (!sub_8009F3C()) + else if (!IsSendingKeysToLink()) return FALSE; else return TRUE; } -static u32 GetLinkEventQueueLength(void) +static u32 GetLinkSendQueueLength(void) { if (gWirelessCommType != 0) return gUnknown_03005000.unk_9e8.unk_232; @@ -2957,7 +2977,7 @@ static u8 GetSpriteForLinkedPlayer(u8 linkPlayerId) return eventObj->spriteId; } -static void sub_8087878(u8 linkPlayerId, u16 *x, u16 *y) +static void GetLinkPlayerCoords(u8 linkPlayerId, u16 *x, u16 *y) { u8 eventObjId = gLinkPlayerEventObjects[linkPlayerId].eventObjId; struct EventObject *eventObj = &gEventObjects[eventObjId]; @@ -2965,14 +2985,14 @@ static void sub_8087878(u8 linkPlayerId, u16 *x, u16 *y) *y = eventObj->currentCoords.y; } -static u8 sub_80878A0(u8 linkPlayerId) +static u8 GetLinkPlayerFacingDirection(u8 linkPlayerId) { u8 eventObjId = gLinkPlayerEventObjects[linkPlayerId].eventObjId; struct EventObject *eventObj = &gEventObjects[eventObjId]; return eventObj->range.as_byte; } -static u8 sub_80878C0(u8 linkPlayerId) +static u8 GetLinkPlayerElevation(u8 linkPlayerId) { u8 eventObjId = gLinkPlayerEventObjects[linkPlayerId].eventObjId; struct EventObject *eventObj = &gEventObjects[eventObjId]; @@ -3002,7 +3022,7 @@ static u8 GetLinkPlayerIdAt(s16 x, s16 y) return 4; } -static void sub_808796C(u8 linkPlayerId, u8 a2) +static void RunPlayerEventScript(u8 linkPlayerId, u8 eventScriptType) { struct LinkPlayerEventObject *linkPlayerEventObj = &gLinkPlayerEventObjects[linkPlayerId]; u8 eventObjId = linkPlayerEventObj->eventObjId; @@ -3010,10 +3030,10 @@ static void sub_808796C(u8 linkPlayerId, u8 a2) if (linkPlayerEventObj->active) { - if (a2 > 10) + if (eventScriptType > 10) eventObj->triggerGroundEffectsOnMove = 1; else - gUnknown_08339E00[gLinkPlayerEventModes[linkPlayerEventObj->mode](linkPlayerEventObj, eventObj, a2)](linkPlayerEventObj, eventObj); + gUnknown_08339E00[gLinkPlayerEventModes[linkPlayerEventObj->mode](linkPlayerEventObj, eventObj, eventScriptType)](linkPlayerEventObj, eventObj); } } diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index c409d5d32..57fb2c898 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -188,7 +188,7 @@ extern u8 gUnknown_02022C3E; extern u16 gUnknown_02022C3C; extern u8 gUnknown_02022C20[]; extern u8 gFieldLinkPlayerCount; -extern u8 gLinkGuestPlayerId; +extern u8 gLinkSelfPlayerId; // IWRAM vars IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0; @@ -1641,7 +1641,7 @@ void sub_8014304(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 arg4) gSpecialVar_0x8004 = arg4; VarSet(VAR_0x4087, arg4); gFieldLinkPlayerCount = GetLinkPlayerCount(); - gLinkGuestPlayerId = GetMultiplayerId(); + gLinkSelfPlayerId = GetMultiplayerId(); SetCableClubWarp(); SetWarpDestination(mapGroup, mapNum, -1, x, y); WarpIntoMap(); diff --git a/src/scrcmd.c b/src/scrcmd.c index 837259a7f..e681a9135 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1203,7 +1203,7 @@ bool8 ScrCmd_turnvobject(struct ScriptContext *ctx) bool8 ScrCmd_lockall(struct ScriptContext *ctx) { - if (is_c1_link_related_active()) + if (IsUpdateLinkStateCBActive()) { return FALSE; } @@ -1217,7 +1217,7 @@ bool8 ScrCmd_lockall(struct ScriptContext *ctx) bool8 ScrCmd_lock(struct ScriptContext *ctx) { - if (is_c1_link_related_active()) + if (IsUpdateLinkStateCBActive()) { return FALSE; } @@ -2182,7 +2182,7 @@ bool8 ScrCmd_cmdD8(struct ScriptContext *ctx) bool8 ScrCmd_cmdD9(struct ScriptContext *ctx) { - if (is_c1_link_related_active()) + if (IsUpdateLinkStateCBActive()) { return FALSE; } diff --git a/src/start_menu.c b/src/start_menu.c index a1c9fc9ad..4b41933ae 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -84,7 +84,7 @@ EWRAM_DATA static bool8 sSavingComplete = FALSE; EWRAM_DATA static u8 sSaveInfoWindowId = 0; // Extern variables. -extern u8 gLinkGuestPlayerId; +extern u8 gLinkSelfPlayerId; // Extern functions in not decompiled files. extern void sub_80AF688(void); @@ -244,7 +244,7 @@ static void BuildStartMenuActions(void) { sNumStartMenuActions = 0; - if (is_c1_link_related_active() == TRUE) + if (IsUpdateLinkStateCBActive() == TRUE) { BuildLinkModeStartMenu(); } @@ -547,7 +547,7 @@ void sub_809FA34(u8 taskId) // Referenced in field_screen.s and rom_8011DC0.s void ShowStartMenu(void) // Called from overworld.c and field_control_avatar.s { - if (!is_c1_link_related_active()) + if (!IsUpdateLinkStateCBActive()) { FreezeEventObjects(); sub_808B864(); @@ -672,7 +672,7 @@ static bool8 StartMenuPlayerNameCallback(void) RemoveExtraStartMenuWindows(); CleanupOverworldWindowsAndTilemaps(); - if (is_c1_link_related_active() || InUnionRoom()) + if (IsUpdateLinkStateCBActive() || InUnionRoom()) ShowPlayerTrainerCard(CB2_ReturnToFieldWithOpenMenu); // Display trainer card else if (FlagGet(FLAG_SYS_FRONTIER_PASS)) ShowFrontierPass(CB2_ReturnToFieldWithOpenMenu); // Display frontier pass @@ -734,7 +734,7 @@ static bool8 StartMenuLinkModePlayerNameCallback(void) { PlayRainSoundEffect(); CleanupOverworldWindowsAndTilemaps(); - ShowTrainerCardInLink(gLinkGuestPlayerId, CB2_ReturnToFieldWithOpenMenu); + ShowTrainerCardInLink(gLinkSelfPlayerId, CB2_ReturnToFieldWithOpenMenu); return TRUE; } diff --git a/src/trade.c b/src/trade.c index 70b57fbc7..2cd7cf2d9 100644 --- a/src/trade.c +++ b/src/trade.c @@ -2762,7 +2762,7 @@ static void sub_80794CC(void) Free(gUnknown_0203229C); FreeAllWindowBuffers(); sub_800E084(); - SetMainCallback2(c2_8056854); + SetMainCallback2(CB2_ReturnToFieldFromMultiplayer); } } else @@ -2772,7 +2772,7 @@ static void sub_80794CC(void) Free(gUnknown_02032184); Free(gUnknown_0203229C); FreeAllWindowBuffers(); - SetMainCallback2(c2_8056854); + SetMainCallback2(CB2_ReturnToFieldFromMultiplayer); } } } -- cgit v1.2.3 From e75f45dbcfcd65901035fbc7e3793332670eb306 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 10 Feb 2019 20:42:50 -0500 Subject: Reverse engineered many of the multiplayer events Some corrections to the way events are handled and identified. --- asm/rom_81D1C44.s | 2 +- data/event_scripts.s | 20 +- data/io_reg.s | 10 +- data/maps/DoubleBattleColosseum/map.json | 8 +- data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc | 2 +- data/maps/RecordCorner/map.json | 8 +- data/maps/SingleBattleColosseum/map.json | 4 +- .../scripts.inc | 2 +- data/maps/TradeCenter/map.json | 6 +- data/scripts/cable_club.inc | 100 ++--- data/specials.inc | 12 +- include/constants/battle_frontier.h | 2 + include/link.h | 6 +- include/overworld.h | 19 +- include/party_menu.h | 2 +- include/record_mixing.h | 2 +- include/save.h | 6 +- src/battle_controllers.c | 2 +- src/berry_blender.c | 8 +- src/cable_club.c | 31 +- src/field_screen_effect.c | 4 +- src/link.c | 10 +- src/link_rfu.c | 4 +- src/mystery_event_menu.c | 2 +- src/overworld.c | 407 +++++++++++---------- src/party_menu.c | 2 +- src/record_mixing.c | 50 +-- src/rom_8011DC0.c | 2 +- src/save.c | 4 +- src/script_pokemon_util_80F87D8.c | 21 +- src/start_menu.c | 4 +- src/trade.c | 8 +- 32 files changed, 416 insertions(+), 354 deletions(-) diff --git a/asm/rom_81D1C44.s b/asm/rom_81D1C44.s index 13664a4b2..a9ef8e4f2 100644 --- a/asm/rom_81D1C44.s +++ b/asm/rom_81D1C44.s @@ -6500,7 +6500,7 @@ _081D4F6C: bne _081D4F88 movs r0, 0x49 bl PlaySE - bl sub_800A620 + bl CheckShouldAdvanceLinkState movs r0, 0 strh r0, [r5] b _081D4FE6 diff --git a/data/event_scripts.s b/data/event_scripts.s index 8d8b0cd68..1e7dbe237 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1157,21 +1157,21 @@ EverGrandeCity_HallOfFame_EventScript_271851:: @ 8271851 setvar VAR_0x40D3, 1 return -EventScript_WhiteOut:: @ 8271857 +gEventScript_WhiteOut:: @ 8271857 call EverGrandeCity_HallOfFame_EventScript_2718CC - goto EventScript_271862 + goto gEventScript_ResetMrBriney end -EventScript_271862:: @ 8271862 +gEventScript_ResetMrBriney:: @ 8271862 compare VAR_0x4096, 1 - goto_if_eq EverGrandeCity_HallOfFame_EventScript_271884 + goto_if_eq EventScript_MoveMrBrineyToHouse compare VAR_0x4096, 2 - goto_if_eq EverGrandeCity_HallOfFame_EventScript_27189A + goto_if_eq EventScript_MoveMrBrineyToDewford compare VAR_0x4096, 3 - goto_if_eq EverGrandeCity_HallOfFame_EventScript_2718B3 + goto_if_eq EventScript_MoveMrBrineyToRoute108 end -EverGrandeCity_HallOfFame_EventScript_271884:: @ 8271884 +EventScript_MoveMrBrineyToHouse:: @ 8271884 setflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN setflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD_TOWN setflag FLAG_HIDE_ROUTE_108_MR_BRINEY @@ -1181,7 +1181,7 @@ EverGrandeCity_HallOfFame_EventScript_271884:: @ 8271884 clearflag FLAG_HIDE_BRINEYS_HOUSE_PEEKO end -EverGrandeCity_HallOfFame_EventScript_27189A:: @ 827189A +EventScript_MoveMrBrineyToDewford:: @ 827189A setflag FLAG_HIDE_ROUTE_108_MR_BRINEY setflag FLAG_HIDE_ROUTE_109_MR_BRINEY_BOAT setflag FLAG_HIDE_ROUTE_104_MR_BRINEY @@ -1192,7 +1192,7 @@ EverGrandeCity_HallOfFame_EventScript_27189A:: @ 827189A clearflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD_TOWN end -EverGrandeCity_HallOfFame_EventScript_2718B3:: @ 82718B3 +EventScript_MoveMrBrineyToRoute108:: @ 82718B3 setflag FLAG_HIDE_ROUTE_104_MR_BRINEY setflag FLAG_HIDE_ROUTE_104_MR_BRINEY_BOAT setflag FLAG_HIDE_BRINEYS_HOUSE_MR_BRINEY @@ -1610,7 +1610,7 @@ EventScript_271D5E:: @ 8271D5E goto EventScript_271D89 EventScript_271D83:: @ 8271D83 - special sub_80E6BE8 + special EventScript_RecordMixingPlayerSpotTriggered waitstate lock faceplayer diff --git a/data/io_reg.s b/data/io_reg.s index e6315cd89..9c5f64f58 100644 --- a/data/io_reg.s +++ b/data/io_reg.s @@ -24,11 +24,11 @@ gUnref_82EC784:: @ 82EC784 .4byte 0x02000100 .4byte 0x08000400 -gUnknown_82EC7C4:: @ 82EC7C4 - .2byte 0x0100 - .2byte 0x0200 - .2byte 0x0400 - .2byte 0x0800 +gOverworldBackgroundLayerFlags:: @ 82EC7C4 + .2byte 0x0100 /* BLDCNT_TGT2_BG0 */ + .2byte 0x0200 /* BLDCNT_TGT2_BG1 */ + .2byte 0x0400 /* BLDCNT_TGT2_BG2 */ + .2byte 0x0800 /* BLDCNT_TGT2_BG3 */ gUnknown_82EC7CC:: @ 82EC7CC .2byte 0x0001 diff --git a/data/maps/DoubleBattleColosseum/map.json b/data/maps/DoubleBattleColosseum/map.json index c0cd88761..b46c8fa3e 100644 --- a/data/maps/DoubleBattleColosseum/map.json +++ b/data/maps/DoubleBattleColosseum/map.json @@ -52,7 +52,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gUnknown_08277388" + "script": "gEventScript_DoubleBattleColosseum_PlayerSpot0" }, { "type": "trigger", @@ -61,7 +61,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gUnknown_082773BE" + "script": "gEventScript_DoubleBattleColosseum_PlayerSpot2" }, { "type": "trigger", @@ -70,7 +70,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gUnknown_082773A3" + "script": "gEventScript_DoubleBattleColosseum_PlayerSpot1" }, { "type": "trigger", @@ -79,7 +79,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gUnknown_082773D9" + "script": "gEventScript_DoubleBattleColosseum_PlayerSpot3" } ], "bg_events": [] diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc index 0602c9dad..d2e5dded1 100644 --- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc @@ -248,7 +248,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_22400C:: @ 822400C waitmovement 0 special SavePlayerParty fadescreen 1 - special sub_80F9438 + special EventScript_ChooseHalfPartyForBattle waitstate compare VAR_RESULT, 0 goto_if_ne MossdeepCity_SpaceCenter_2F_EventScript_224032 diff --git a/data/maps/RecordCorner/map.json b/data/maps/RecordCorner/map.json index 98bcc0201..9bf870a52 100644 --- a/data/maps/RecordCorner/map.json +++ b/data/maps/RecordCorner/map.json @@ -66,7 +66,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gUnknown_0827741D" + "script": "gEventScript_RecordCenter_Spot0" }, { "type": "trigger", @@ -75,7 +75,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gUnknown_08277447" + "script": "gEventScript_RecordCenter_Spot2" }, { "type": "trigger", @@ -84,7 +84,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gUnknown_08277432" + "script": "gEventScript_RecordCenter_Spot1" }, { "type": "trigger", @@ -93,7 +93,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gUnknown_0827745C" + "script": "gEventScript_RecordCenter_Spot3" } ], "bg_events": [] diff --git a/data/maps/SingleBattleColosseum/map.json b/data/maps/SingleBattleColosseum/map.json index a2cc78b2f..4576bc042 100644 --- a/data/maps/SingleBattleColosseum/map.json +++ b/data/maps/SingleBattleColosseum/map.json @@ -52,7 +52,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gUnknown_08277374" + "script": "gEventScript_SingleBattleColosseum_PlayerSpot0" }, { "type": "trigger", @@ -61,7 +61,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gUnknown_0827737E" + "script": "gEventScript_SingleBattleColosseum_PlayerSpot1" } ], "bg_events": [] diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc index 5db204293..2d8de4bb4 100644 --- a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc +++ b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc @@ -129,7 +129,7 @@ SootopolisCity_MysteryEventsHouse_1F_EventScript_227AE2:: @ 8227AE2 SootopolisCity_MysteryEventsHouse_1F_EventScript_227AEF:: @ 8227AEF msgbox SootopolisCity_MysteryEventsHouse_1F_Text_227C84, MSGBOX_DEFAULT fadescreen 1 - special sub_80F9438 + special EventScript_ChooseHalfPartyForBattle waitstate return diff --git a/data/maps/TradeCenter/map.json b/data/maps/TradeCenter/map.json index f7511a753..6ab2bdbe1 100644 --- a/data/maps/TradeCenter/map.json +++ b/data/maps/TradeCenter/map.json @@ -46,22 +46,24 @@ ], "coord_events": [ { + "comment": "This is trade seat #1.", "type": "trigger", "x": 4, "y": 5, "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gUnknown_082773F5" + "script": "gEventScript_TradeCenter_Chair0" }, { + "comment": "This is trade seat #2.", "type": "trigger", "x": 7, "y": 5, "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gUnknown_082773FF" + "script": "gEventScript_TradeCenter_Chair1" } ], "bg_events": [] diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index c5e8a41a7..dbd664dbc 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -791,116 +791,118 @@ EventScript_CableBoxResults:: @ 8277365 releaseall end -gUnknown_08277374:: @ 8277374 +gEventScript_SingleBattleColosseum_PlayerSpot0:: @ 8277374 setvar VAR_0x8005, 0 - special sub_80B3968 + special EventScript_ColosseumPlayerSpotTriggered waitstate end -gUnknown_0827737E:: @ 827737E +gEventScript_SingleBattleColosseum_PlayerSpot1:: @ 827737E setvar VAR_0x8005, 1 - special sub_80B3968 + special EventScript_ColosseumPlayerSpotTriggered waitstate end -gUnknown_08277388:: @ 8277388 +gEventScript_DoubleBattleColosseum_PlayerSpot0:: @ 8277388 fadescreen 1 - special sub_80F9438 + special EventScript_ChooseHalfPartyForBattle waitstate compare VAR_RESULT, 0 - goto_if_eq DoubleBattleColosseum_EventScript_2773F4 + goto_if_eq gEventScript_DoubleBattleColosseum_CancelSpotTrigger setvar VAR_0x8005, 0 - special sub_80B3968 + special EventScript_ColosseumPlayerSpotTriggered waitstate end -gUnknown_082773A3:: @ 82773A3 +gEventScript_DoubleBattleColosseum_PlayerSpot1:: @ 82773A3 fadescreen 1 - special sub_80F9438 + special EventScript_ChooseHalfPartyForBattle waitstate compare VAR_RESULT, 0 - goto_if_eq DoubleBattleColosseum_EventScript_2773F4 + goto_if_eq gEventScript_DoubleBattleColosseum_CancelSpotTrigger setvar VAR_0x8005, 1 - special sub_80B3968 + special EventScript_ColosseumPlayerSpotTriggered waitstate end -gUnknown_082773BE:: @ 82773BE +gEventScript_DoubleBattleColosseum_PlayerSpot2:: @ 82773BE fadescreen 1 - special sub_80F9438 + special EventScript_ChooseHalfPartyForBattle waitstate compare VAR_RESULT, 0 - goto_if_eq DoubleBattleColosseum_EventScript_2773F4 + goto_if_eq gEventScript_DoubleBattleColosseum_CancelSpotTrigger setvar VAR_0x8005, 2 - special sub_80B3968 + special EventScript_ColosseumPlayerSpotTriggered waitstate end -gUnknown_082773D9:: @ 82773D9 +gEventScript_DoubleBattleColosseum_PlayerSpot3:: @ 82773D9 fadescreen 1 - special sub_80F9438 + special EventScript_ChooseHalfPartyForBattle waitstate compare VAR_RESULT, 0 - goto_if_eq DoubleBattleColosseum_EventScript_2773F4 + goto_if_eq gEventScript_DoubleBattleColosseum_CancelSpotTrigger setvar VAR_0x8005, 3 - special sub_80B3968 + special EventScript_ColosseumPlayerSpotTriggered waitstate end -DoubleBattleColosseum_EventScript_2773F4:: @ 82773F4 +gEventScript_DoubleBattleColosseum_CancelSpotTrigger:: @ 82773F4 end -gUnknown_082773F5:: @ 82773F5 +gEventScript_TradeCenter_Chair0:: @ 82773F5 setvar VAR_0x8005, 0 - special sub_80B3924 + special EventScript_PlayerEnteredTradeSeat waitstate end -gUnknown_082773FF:: @ 82773FF +gEventScript_TradeCenter_Chair1:: @ 82773FF setvar VAR_0x8005, 1 - special sub_80B3924 + special EventScript_PlayerEnteredTradeSeat waitstate end -gUnknown_08277409:: @ 8277409 +/* Never used */ +gEventScript_TradeCenter_Chair2:: @ 8277409 setvar VAR_0x8005, 2 - special sub_80B3924 + special EventScript_PlayerEnteredTradeSeat waitstate end -gUnknown_08277413:: @ 8277413 +/* Never used */ +gEventScript_TradeCenter_Chair3:: @ 8277413 setvar VAR_0x8005, 3 - special sub_80B3924 + special EventScript_PlayerEnteredTradeSeat waitstate end -gUnknown_0827741D:: @ 827741D +gEventScript_RecordCenter_Spot0:: @ 827741D setvar VAR_0x8005, 0 - special sub_80E6BE8 + special EventScript_RecordMixingPlayerSpotTriggered waitstate compare VAR_TEMP_1, 0 goto_if_ne RecordCorner_EventScript_277471 end -gUnknown_08277432:: @ 8277432 +gEventScript_RecordCenter_Spot1:: @ 8277432 setvar VAR_0x8005, 1 - special sub_80E6BE8 + special EventScript_RecordMixingPlayerSpotTriggered waitstate compare VAR_TEMP_1, 0 goto_if_ne RecordCorner_EventScript_277471 end -gUnknown_08277447:: @ 8277447 +gEventScript_RecordCenter_Spot2:: @ 8277447 setvar VAR_0x8005, 2 - special sub_80E6BE8 + special EventScript_RecordMixingPlayerSpotTriggered waitstate compare VAR_TEMP_1, 0 goto_if_ne RecordCorner_EventScript_277471 end -gUnknown_0827745C:: @ 827745C +gEventScript_RecordCenter_Spot3:: @ 827745C setvar VAR_0x8005, 3 - special sub_80E6BE8 + special EventScript_RecordMixingPlayerSpotTriggered waitstate compare VAR_TEMP_1, 0 goto_if_ne RecordCorner_EventScript_277471 @@ -914,21 +916,21 @@ RecordCorner_EventScript_277471:: @ 8277471 releaseall end -EventScript_TradeRoom_ReadTrainerCard_NoColor:: @ 827747E +gEventScript_TradeRoom_ReadTrainerCard_NoColor:: @ 827747E msgbox Text_278452, MSGBOX_DEFAULT fadescreen 1 special sp02A_crash_sound waitstate end -EventScript_TradeRoom_ReadTrainerCard_Normal:: @ 827748D +gEventScript_TradeRoom_ReadTrainerCard_Normal:: @ 827748D msgbox Text_27847B, MSGBOX_DEFAULT fadescreen 1 special sp02A_crash_sound waitstate end -EventScript_TradeRoom_TooBusyToNotice:: @ 827749C +gEventScript_TradeRoom_TooBusyToNotice:: @ 827749C msgbox Text_27842E, MSGBOX_DEFAULT closemessage end @@ -968,21 +970,21 @@ RecordCorner_EventScript_2774E0:: @ 82774E0 end gEventScript_ConfirmLeaveTradeRoom:: @ 82774EF - msgbox Text_2783A8, MSGBOX_YESNO + msgbox Text_TerminateLinkConfirmation, MSGBOX_YESNO compare VAR_RESULT, 1 - goto_if_eq gUnknown_08277509 + goto_if_eq gEventScript_TerminateLink erasebox 0, 0, 29, 19 releaseall end -gUnknown_08277509:: @ 8277509 - messageautoscroll Text_2783E9 +gEventScript_TerminateLink:: @ 8277509 + messageautoscroll Text_TerminateLinkPleaseWait waitmessage - special sub_80B371C + special EventScript_ExitLinkRoom end -EventScript_277513:: @ 8277513 - special sub_80B36EC +gEventScript_DoLinkRoomExit:: @ 8277513 + special EventScript_CleanupLinkRoomState special sub_80AF9F8 waitstate end @@ -1736,11 +1738,11 @@ OldaleTown_PokemonCenter_2F_Text_278372: @ 8278372 .string "Please confirm the number of\n" .string "players and start again.$" -Text_2783A8: @ 82783A8 +Text_TerminateLinkConfirmation: @ 82783A8 .string "The link will be terminated if you\n" .string "leave the room. Is that okay?$" -Text_2783E9: @ 82783E9 +Text_TerminateLinkPleaseWait: @ 82783E9 .string "Terminating link…\n" .string "You will be escorted out of\l" .string "the room. Please wait.$" diff --git a/data/specials.inc b/data/specials.inc index b3ca15ed1..e13a23ab0 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -12,8 +12,8 @@ gSpecials:: @ 81DBA64 def_special SetCableClubWarp def_special sub_80AF948 def_special sub_80AF9F8 - def_special sub_80B36EC - def_special sub_80B371C + def_special EventScript_CleanupLinkRoomState + def_special EventScript_ExitLinkRoom def_special sub_80E8E18 def_special sub_80E8BC8 def_special sub_80E9068 @@ -35,14 +35,14 @@ gSpecials:: @ 81DBA64 def_special sub_80E91F8 def_special sub_80EA30C def_special DoSecretBasePCTurnOffEffect - def_special sub_80E6BE8 + def_special EventScript_RecordMixingPlayerSpotTriggered def_special sub_80B2DA4 def_special sub_80B2E4C def_special sub_80B2E74 def_special sub_80B2EA8 def_special CloseLink - def_special sub_80B3968 - def_special sub_80B3924 + def_special EventScript_ColosseumPlayerSpotTriggered + def_special EventScript_PlayerEnteredTradeSeat def_special nullsub_37 def_special sub_80B3254 def_special sub_80B2FD8 @@ -50,7 +50,7 @@ gSpecials:: @ 81DBA64 def_special SpawnLinkPartnerEventObject def_special SavePlayerParty def_special LoadPlayerParty - def_special sub_80F9438 + def_special EventScript_ChooseHalfPartyForBattle def_special sp02A_crash_sound def_special EventObjectInteractionGetBerryTreeData def_special EventObjectInteractionGetBerryName diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h index ca9e3bc9f..1224c0f31 100644 --- a/include/constants/battle_frontier.h +++ b/include/constants/battle_frontier.h @@ -10,6 +10,8 @@ #define FRONTIER_FACILITY_PIKE 5 #define FRONTIER_FACILITY_PYRAMID 6 #define NUM_FRONTIER_FACILITIES 7 +// The multiplayer battle colosseum rooms re-use VAR_FRONTIER_FACILITY. +#define FRONTIER_FACILITY_DOUBLE_COLOSSEUM 9 #define TENT_VERDANTURF 2 #define TENT_FALLARBOR 3 diff --git a/include/link.h b/include/link.h index b29d9b4e1..8c272699d 100644 --- a/include/link.h +++ b/include/link.h @@ -244,7 +244,7 @@ bool8 IsLinkTaskFinished(void); void CreateWirelessStatusIndicatorSprite(u8, u8); void sub_800ADF8(void); void sub_800B488(void); -void sub_800A620(void); +void CheckShouldAdvanceLinkState(void); void sub_8011BD0(void); u8 IsLinkMaster(void); void sub_800AC34(void); @@ -299,8 +299,8 @@ extern struct LinkPlayer gLocalLinkPlayer; bool32 Link_AnyPartnersPlayingRubyOrSapphire(void); bool32 sub_800A03C(void); -void sub_8009628(u8); -u8 sub_800AA48(void); +void SetLocalLinkPlayerId(u8); +u8 GetSavedPlayerCount(void); void sub_8009FAC(void); bool8 sub_800A4D8(u8 a0); u8 sub_800A9D8(void); diff --git a/include/overworld.h b/include/overworld.h index b5c41b1e6..9434d5c28 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -8,11 +8,22 @@ #define LINK_KEY_CODE_DPAD_LEFT 0x14 #define LINK_KEY_CODE_DPAD_RIGHT 0x15 #define LINK_KEY_CODE_UNK_2 0x16 -#define LINK_KEY_CODE_UNK_3 0x17 +#define LINK_KEY_CODE_EXIT_ROOM 0x17 #define LINK_KEY_CODE_START_BUTTON 0x18 #define LINK_KEY_CODE_A_BUTTON 0x19 #define LINK_KEY_CODE_UNK_4 0x1A // I'd guess this is the B button? +// These two are a hack to stop user input until link stuff can be +// resolved. +#define LINK_KEY_CODE_HANDLE_RECV_QUEUE 0x1B +#define LINK_KEY_CODE_HANDLE_SEND_QUEUE 0x1C +#define LINK_KEY_CODE_UNK_7 0x1D +#define LINK_KEY_CODE_UNK_8 0x1E + +#define MOVEMENT_MODE_FREE 0 +#define MOVEMENT_MODE_FROZEN 1 +#define MOVEMENT_MODE_SCRIPTED 2 + struct InitialPlayerAvatarState { u8 transitionFlags; @@ -24,7 +35,7 @@ struct LinkPlayerEventObject u8 active; u8 linkPlayerId; u8 eventObjId; - u8 mode; + u8 movementMode; }; // Exported RAM declarations @@ -120,7 +131,7 @@ void CB1_Overworld(void); void CB2_OverworldBasic(void); void CB2_Overworld(void); void SetMainCallback1(void (*cb)(void)); -void sub_8085E94(void *a0); +void SetUnusedCallback(void *a0); void CB2_NewGame(void); void CB2_WhiteOut(void); void CB2_LoadMap(void); @@ -140,7 +151,7 @@ u32 sub_8087214(void); bool32 sub_808727C(void); u16 sub_8087288(void); u16 sub_808729C(void); -u16 sub_80872B0(void); +u16 QueueExitLinkRoomKey(void); u16 sub_80872C4(void); bool32 sub_8087598(void); bool32 sub_80875C8(void); diff --git a/include/party_menu.h b/include/party_menu.h index 702b4fde1..e67dd56f2 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -85,7 +85,7 @@ u8 GetItemEffectType(u16 item); void CB2_PartyMenuFromStartMenu(void); void sub_81B7F60(void); void sub_81B8448(void); -void sub_81B8518(u8 unused); +void InitChooseHalfPartyForBattle(u8 unused); void sub_81B8558(void); void sub_81B8904(u8 initArg, MainCallback callback); void sub_81B892C(void); diff --git a/include/record_mixing.h b/include/record_mixing.h index 0d50f46f9..d02b77f9c 100644 --- a/include/record_mixing.h +++ b/include/record_mixing.h @@ -7,7 +7,7 @@ struct PlayerHallRecords struct RankingHall2P twoPlayers[2]; }; -void sub_80E6BE8(void); +void EventScript_RecordMixingPlayerSpotTriggered(void); void GetPlayerHallRecords(struct PlayerHallRecords *dst); #endif //GUARD_RECORD_MIXING_H diff --git a/include/save.h b/include/save.h index 42ce8b3f3..de2dd5129 100644 --- a/include/save.h +++ b/include/save.h @@ -83,13 +83,11 @@ bool8 sub_8153380(void); bool8 sub_81533AC(void); u8 sub_81533E0(void); u8 sub_8153408(void); -u8 sub_8153430(void); -bool8 sub_8153474(void); +u8 FullSaveGame(void); //FullSaveGame +bool8 CheckSaveFile(void); //CheckSaveFile u8 Save_LoadGameData(u8 a1); u16 sub_815355C(void); u8 sub_81534D0(u8); -u8 sub_8153430(void); -bool8 sub_8153474(void); u32 TryCopySpecialSaveSection(u8 sector, u8* dst); u32 sub_8153634(u8 sector, u8* src); void sub_8153688(u8 taskId); diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 70a53f332..29272c19a 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -767,7 +767,7 @@ static void Task_HandleSendLinkBuffersData(u8 taskId) { if (IsLinkMaster()) { - sub_800A620(); + CheckShouldAdvanceLinkState(); gTasks[taskId].data[11]++; } else diff --git a/src/berry_blender.c b/src/berry_blender.c index f2e3c7d14..cfcd81f73 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -146,8 +146,8 @@ extern void sub_81AABF0(void (*callback)(void)); extern void sub_800B4C0(void); extern void ClearLinkCallback(void); extern void sub_8009F8C(void); -extern void sub_8153430(void); -extern bool8 sub_8153474(void); +extern void FullSaveGame(void); +extern bool8 CheckSaveFile(void); extern void sub_80EECEC(void); // this file's functions @@ -2600,7 +2600,7 @@ static bool8 LinkPlayAgainHandleSaving(void) } break; case 2: - sub_8153430(); + FullSaveGame(); sBerryBlenderData->field_1A0++; sBerryBlenderData->framesToWait = 0; break; @@ -2614,7 +2614,7 @@ static bool8 LinkPlayAgainHandleSaving(void) case 4: if (IsLinkTaskFinished()) { - if (sub_8153474()) + if (CheckSaveFile()) { sBerryBlenderData->field_1A0 = 5; } diff --git a/src/cable_club.c b/src/cable_club.c index c76de7a6a..05c19c9ae 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -282,7 +282,7 @@ static void sub_80B2804(u8 taskId) if (GetFieldMessageBoxMode() == FIELD_MESSAGE_BOX_HIDDEN) { - if (sub_800AA48() != GetLinkPlayerCount_2()) + if (GetSavedPlayerCount() != GetLinkPlayerCount_2()) { ShowFieldAutoScrollMessage(gText_ConfirmLinkWhenPlayersReady); gTasks[taskId].func = sub_80B270C; @@ -295,7 +295,7 @@ static void sub_80B2804(u8 taskId) else if (gMain.heldKeys & A_BUTTON) { PlaySE(SE_SELECT); - sub_800A620(); + CheckShouldAdvanceLinkState(); gTasks[taskId].func = sub_80B28A8; } } @@ -310,7 +310,7 @@ static void sub_80B28A8(u8 taskId) || sub_80B2D6C(taskId) == TRUE) return; - if (GetLinkPlayerCount_2() != sub_800AA48()) + if (GetLinkPlayerCount_2() != GetSavedPlayerCount()) { gTasks[taskId].func = sub_80B2D2C; } @@ -764,9 +764,9 @@ static void sub_80B3194(u8 taskId) static void sub_80B31E8(u8 taskId) { - if (sub_800AA48() == GetLinkPlayerCount_2()) + if (GetSavedPlayerCount() == GetLinkPlayerCount_2()) { - sub_800A620(); + CheckShouldAdvanceLinkState(); gTasks[taskId].func = sub_80B3220; } } @@ -999,7 +999,7 @@ void sub_80B360C(void) SetMainCallback2(sub_80A0514); } -void sub_80B36EC(void) +void EventScript_CleanupLinkRoomState(void) { if (gSpecialVar_0x8004 == 1 || gSpecialVar_0x8004 == 2 || gSpecialVar_0x8004 == 5 || gSpecialVar_0x8004 == 9) { @@ -1009,11 +1009,13 @@ void sub_80B36EC(void) SetWarpDestinationToDynamicWarp(0x7F); } -void sub_80B371C(void) +void EventScript_ExitLinkRoom(void) { - sub_80872B0(); + QueueExitLinkRoomKey(); } +// I can't find anything that would set data[0] to a value before this +// stask starts. Is it a bug? static void sub_80B3728(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -1028,7 +1030,7 @@ static void sub_80B3728(u8 taskId) if (IsFieldMessageBoxHidden()) { sub_8087288(); - sub_8009628(gSpecialVar_0x8005); + SetLocalLinkPlayerId(gSpecialVar_0x8005); task->data[0] = 2; } break; @@ -1130,7 +1132,8 @@ static void sub_80B3894(u8 taskId) } } -void sub_80B3924(void) +// Note: VAR_0x8005 is set to the ID of the trade seat. +void EventScript_PlayerEnteredTradeSeat(void) { if (gWirelessCommType != 0) { @@ -1152,7 +1155,8 @@ void nullsub_37(void) } -void sub_80B3968(void) +// Note: VAR_0x8005 is set to the ID of the player spot. +void EventScript_ColosseumPlayerSpotTriggered(void) { gLinkType = 0x2211; @@ -1166,6 +1170,7 @@ void sub_80B3968(void) } } +// This function is never called. static void sub_80B39A4(void) { u8 taskId = CreateTask(sub_80B3728, 80); @@ -1265,13 +1270,13 @@ void sub_80B3AF8(u8 taskId) } break; case 2: - if (GetLinkPlayerCount_2() >= sub_800AA48()) + if (GetLinkPlayerCount_2() >= GetSavedPlayerCount()) { if (IsLinkMaster()) { if (++data[1] > 30) { - sub_800A620(); + CheckShouldAdvanceLinkState(); data[0]++; } } diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index ee9b49732..b8427c7de 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -621,7 +621,7 @@ void sub_80AF948(void) CreateTask(sub_80AF8E0, 10); } -static void sub_80AF96C(u8 taskId) +static void Task_ReturnToWorldFromLinkRoom(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -654,7 +654,7 @@ static void sub_80AF96C(u8 taskId) void sub_80AF9F8(void) { - CreateTask(sub_80AF96C, 10); + CreateTask(Task_ReturnToWorldFromLinkRoom, 10); } static void sub_80AFA0C(u8 taskId) diff --git a/src/link.c b/src/link.c index 1550d8783..72ac3e878 100644 --- a/src/link.c +++ b/src/link.c @@ -302,9 +302,9 @@ void LinkTestScreen(void) SetMainCallback2(CB2_LinkTest); } -void sub_8009628(u8 a0) +void SetLocalLinkPlayerId(u8 playerId) { - gLocalLinkPlayer.id = a0; + gLocalLinkPlayer.id = playerId; } static void InitLocalLinkPlayer(void) @@ -1142,7 +1142,7 @@ void ResetBlockReceivedFlag(u8 who) } } -void sub_800A620(void) +void CheckShouldAdvanceLinkState(void) { if ((gLinkStatus & LINK_STAT_MASTER) && EXTRACT_PLAYER_COUNT(gLinkStatus) > 1) { @@ -1327,7 +1327,9 @@ void sub_800AA04(u8 a0) } } -u8 sub_800AA48(void) +// The number of players when trading began. This is frequently compared against the +// current number of connected players to check if anyone dropped out. +u8 GetSavedPlayerCount(void) { return gSavedLinkPlayerCount; } diff --git a/src/link_rfu.c b/src/link_rfu.c index 859d741b1..f13d15337 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -3788,10 +3788,10 @@ bool32 sub_8010454(u32 a0) u8 sub_801048C(bool32 a0) { - if (a0 == 0) + if (a0 == FALSE) return sub_800D550(0, 0); sub_800D550(1, 0x258); - return FALSE; + return 0; } void sub_80104B0(void) diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c index 0de4675d9..2058bb81f 100644 --- a/src/mystery_event_menu.c +++ b/src/mystery_event_menu.c @@ -179,7 +179,7 @@ static void CB2_MysteryEventMenu(void) if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - sub_800A620(); + CheckShouldAdvanceLinkState(); SetWindowBorderStyle(1, 1, 1, 0xD); PrintMysteryMenuText(1, gText_LoadingEvent, 1, 2, 0); PutWindowTilemap(1); diff --git a/src/overworld.c b/src/overworld.c index ca588a072..671d3412f 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -66,48 +66,47 @@ #include "constants/species.h" #include "constants/weather.h" -// These two are a hack to stop user input until link stuff can be -// resolved. -#define LINK_KEY_CODE_HANDLE_RECV_QUEUE 0x1B -#define LINK_KEY_CODE_HANDLE_SEND_QUEUE 0x1C -#define LINK_KEY_CODE_UNK_7 0x1D -#define LINK_KEY_CODE_UNK_8 0x1E - #define PLAYER_TRADING_STATE_IDLE 0x80 #define PLAYER_TRADING_STATE_BUSY 0x81 #define PLAYER_TRADING_STATE_UNK_2 0x82 -#define PLAYER_TRADING_STATE_UNK_3 0x83 - -#define EVENT_SCRIPT_NONE 0 -#define EVENT_SCRIPT_ID_9 9 -#define EVENT_SCRIPT_ID_10 10 +#define PLAYER_TRADING_STATE_EXITING_ROOM 0x83 + +#define FACING_NONE 0 +#define FACING_UP 1 +#define FACING_DOWN 2 +#define FACING_LEFT 3 +#define FACING_RIGHT 4 +#define FACING_FORCED_UP 7 +#define FACING_FORCED_DOWN 8 +#define FACING_FORCED_LEFT 9 +#define FACING_FORCED_RIGHT 10 // event scripts -extern const u8 EventScript_WhiteOut[]; -extern const u8 EventScript_271862[]; -extern const u8 EventScript_277513[]; -extern const u8 EventScript_TradeRoom_TooBusyToNotice[]; -extern const u8 EventScript_TradeRoom_ReadTrainerCard_NoColor[]; -extern const u8 EventScript_TradeRoom_ReadTrainerCard_Normal[]; -extern const u8 gUnknown_08277388[]; -extern const u8 gUnknown_082773A3[]; -extern const u8 gUnknown_082773BE[]; -extern const u8 gUnknown_082773D9[]; -extern const u8 gUnknown_0827741D[]; -extern const u8 gUnknown_08277432[]; -extern const u8 gUnknown_08277447[]; -extern const u8 gUnknown_0827745C[]; -extern const u8 gUnknown_08277374[]; -extern const u8 gUnknown_0827737E[]; -extern const u8 gUnknown_082773FF[]; -extern const u8 gUnknown_082773F5[]; +extern const u8 gEventScript_WhiteOut[]; +extern const u8 gEventScript_ResetMrBriney[]; +extern const u8 gEventScript_DoLinkRoomExit[]; +extern const u8 gEventScript_TradeRoom_TooBusyToNotice[]; +extern const u8 gEventScript_TradeRoom_ReadTrainerCard_NoColor[]; +extern const u8 gEventScript_TradeRoom_ReadTrainerCard_Normal[]; +extern const u8 gEventScript_DoubleBattleColosseum_PlayerSpot0[]; +extern const u8 gEventScript_DoubleBattleColosseum_PlayerSpot1[]; +extern const u8 gEventScript_DoubleBattleColosseum_PlayerSpot2[]; +extern const u8 gEventScript_DoubleBattleColosseum_PlayerSpot3[]; +extern const u8 gEventScript_RecordCenter_Spot0[]; +extern const u8 gEventScript_RecordCenter_Spot1[]; +extern const u8 gEventScript_RecordCenter_Spot2[]; +extern const u8 gEventScript_RecordCenter_Spot3[]; +extern const u8 gEventScript_SingleBattleColosseum_PlayerSpot0[]; +extern const u8 gEventScript_SingleBattleColosseum_PlayerSpot1[]; +extern const u8 gEventScript_TradeCenter_Chair1[]; +extern const u8 gEventScript_TradeCenter_Chair0[]; extern const u8 gEventScript_ConfirmLeaveTradeRoom[]; -extern const u8 gUnknown_08277509[]; +extern const u8 gEventScript_TerminateLink[]; extern const struct MapLayout *const gMapLayouts[]; extern const struct MapHeader *const *const gMapGroups[]; extern const int gMaxFlashLevel; -extern const u16 gUnknown_82EC7C4[]; +extern const u16 gOverworldBackgroundLayerFlags[]; static void Overworld_ResetStateAfterWhiteOut(void); static void c2_80567AC(void); @@ -123,7 +122,7 @@ static bool32 map_loading_iteration_2_link(u8 *state); static void mli4_mapscripts_and_other(void); static void InitOverworldGraphicsRegisters(void); static u8 GetSpriteForLinkedPlayer(u8); -static u16 sub_80871C0(u32 a1); +static u16 KeyInterCB_SendNothing(u32 a1); static void sub_80867C8(void); static void sub_80867D8(void); static void sub_8086AE4(void); @@ -140,7 +139,7 @@ static void ClearAllPlayerKeys(void); static void ResetAllTradingStates(void); static void UpdateHeldKeyCode(u16); static void UpdateAllLinkPlayers(u16*, s32); -static u8 npc_something3(u8 a1, u8 a2); +static u8 FlipVerticalAndClearForced(u8 a1, u8 a2); static u8 LinkPlayerDetectCollision(u8 selfEventObjId, u8 a2, s16 x, s16 y); static void CreateLinkPlayerSprite(u8 linkPlayerId, u8 gameVersion); static void GetLinkPlayerCoords(u8 linkPlayerId, u16 *x, u16 *y); @@ -148,7 +147,7 @@ static u8 GetLinkPlayerFacingDirection(u8 linkPlayerId); static u8 GetLinkPlayerElevation(u8 linkPlayerId); static s32 sub_80878E4(u8 linkPlayerId); static u8 GetLinkPlayerIdAt(s16 x, s16 y); -static void RunPlayerEventScript(u8 linkPlayerId, u8 a2); +static void SetPlayerFacingDirection(u8 linkPlayerId, u8 a2); static void ZeroEventObject(struct EventObject *eventObj); static void SpawnLinkPlayerEventObject(u8 linkPlayerId, s16 x, s16 y, u8 a4); static void InitLinkPlayerEventObjectPos(struct EventObject *eventObj, s16 x, s16 y); @@ -159,7 +158,7 @@ static void sub_8087584(void); static u32 GetLinkSendQueueLength(void); static void ZeroLinkPlayerEventObject(struct LinkPlayerEventObject *linkPlayerEventObj); static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *a1); -static u16 GetTypeForTileEventScript(const u8 *script); +static u16 GetDirectionForEventScript(const u8 *script); static void sub_8087510(void); static void InitLinkRoomStartMenuScript(void); static void sub_8087530(const u8 *script); @@ -176,7 +175,7 @@ static u16 KeyInterCB_DeferToSendQueue(u32); static void ResetPlayerHeldKeys(u16 *a1); static u16 KeyInterCB_SelfIdle(u32 a1); static u16 KeyInterCB_DeferToEventScript(u32 a1); -static u16 sub_8087068(u16 a1); +static u16 GetDirectionForDpadKey(u16 a1); static void CB1_UpdateLinkState(void); static void SetKeyInterceptCallback(u16 (*func)(u32)); static void SetFieldVBlankCallback(void); @@ -187,7 +186,7 @@ static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStr static u16 GetCenterScreenMetatileBehavior(void); // IWRAM bss vars -IWRAM_DATA static void *sUnknown_03000E0C; +IWRAM_DATA static void *sUnusedCallback; IWRAM_DATA static u8 sPlayerTradingStates[4]; // This callback is called with a player's key code. It then returns an // adjusted key code, effectively intercepting the input before anything @@ -338,49 +337,53 @@ static const struct ScanlineEffectParams sFlashEffectParams = 0, }; -static u8 sub_80879D8(struct LinkPlayerEventObject *, struct EventObject *, u8); -static u8 sub_80879F8(struct LinkPlayerEventObject *, struct EventObject *, u8); -static u8 sub_80879FC(struct LinkPlayerEventObject *, struct EventObject *, u8); +static u8 MovementEventModeCB_Normal(struct LinkPlayerEventObject *, struct EventObject *, u8); +static u8 MovementEventModeCB_Ignored(struct LinkPlayerEventObject *, struct EventObject *, u8); +static u8 MovementEventModeCB_Normal_2(struct LinkPlayerEventObject *, struct EventObject *, u8); -static u8 (*const gLinkPlayerEventModes[])(struct LinkPlayerEventObject *, struct EventObject *, u8) = +static u8 (*const gLinkPlayerMovementModes[])(struct LinkPlayerEventObject *, struct EventObject *, u8) = { - sub_80879D8, - sub_80879F8, - sub_80879FC, + MovementEventModeCB_Normal, // MOVEMENT_MODE_FREE + MovementEventModeCB_Ignored, // MOVEMENT_MODE_FROZEN + MovementEventModeCB_Normal_2, // MOVEMENT_MODE_SCRIPTED }; -static u8 sub_8087A1C(struct LinkPlayerEventObject *, struct EventObject *, u8); -static u8 sub_8087A20(struct LinkPlayerEventObject *, struct EventObject *, u8); -static u8 sub_8087A88(struct LinkPlayerEventObject *, struct EventObject *, u8); - -static u8 (*const gUnknown_08339DD4[])(struct LinkPlayerEventObject *, struct EventObject *, u8) = -{ - sub_8087A1C, - sub_8087A20, - sub_8087A20, - sub_8087A20, - sub_8087A20, - sub_8087A1C, - sub_8087A1C, - sub_8087A88, - sub_8087A88, - sub_8087A88, - sub_8087A88, +static u8 FacingHandler_DoNothing(struct LinkPlayerEventObject *, struct EventObject *, u8); +static u8 FacingHandler_DpadMovement(struct LinkPlayerEventObject *, struct EventObject *, u8); +static u8 FacingHandler_ForcedFacingChange(struct LinkPlayerEventObject *, struct EventObject *, u8); + +// These handlers return TRUE if the movement was scripted and successful, and FALSE otherwise. +static bool8 (*const gLinkPlayerFacingHandlers[])(struct LinkPlayerEventObject *, struct EventObject *, u8) = +{ + FacingHandler_DoNothing, + FacingHandler_DpadMovement, + FacingHandler_DpadMovement, + FacingHandler_DpadMovement, + FacingHandler_DpadMovement, + FacingHandler_DoNothing, + FacingHandler_DoNothing, + FacingHandler_ForcedFacingChange, + FacingHandler_ForcedFacingChange, + FacingHandler_ForcedFacingChange, + FacingHandler_ForcedFacingChange, }; -static void sub_8087AA0(struct LinkPlayerEventObject *, struct EventObject *); -static void sub_8087AA8(struct LinkPlayerEventObject *, struct EventObject *); +static void MovementStatusHandler_EnterFreeMode(struct LinkPlayerEventObject *, struct EventObject *); +static void MovementStatusHandler_TryAdvanceScript(struct LinkPlayerEventObject *, struct EventObject *); -static void (*const gUnknown_08339E00[])(struct LinkPlayerEventObject *, struct EventObject *) = +// These handlers are run after an attempted movement. +static void (*const gMovementStatusHandler[])(struct LinkPlayerEventObject *, struct EventObject *) = { - sub_8087AA0, - sub_8087AA8, + // FALSE: + MovementStatusHandler_EnterFreeMode, + // TRUE: + MovementStatusHandler_TryAdvanceScript, }; // code void DoWhiteOut(void) { - ScriptContext2_RunNewScript(EventScript_WhiteOut); + ScriptContext2_RunNewScript(gEventScript_WhiteOut); SetMoney(&gSaveBlock1Ptr->money, GetMoney(&gSaveBlock1Ptr->money) / 2); HealPlayerParty(); Overworld_ResetStateAfterWhiteOut(); @@ -406,7 +409,7 @@ void Overworld_ResetStateAfterTeleport(void) FlagClear(FLAG_SYS_SAFARI_MODE); FlagClear(FLAG_SYS_USE_STRENGTH); FlagClear(FLAG_SYS_USE_FLASH); - ScriptContext2_RunNewScript(EventScript_271862); + ScriptContext2_RunNewScript(gEventScript_ResetMrBriney); } void Overworld_ResetStateAfterDigEscRope(void) @@ -1495,9 +1498,10 @@ void SetMainCallback1(MainCallback cb) gMain.callback1 = cb; } -void sub_8085E94(void *a0) +// This function is never called. +void SetUnusedCallback(void *func) { - sUnknown_03000E0C = a0; + sUnusedCallback = func; } static bool8 map_post_load_hook_exec(void) @@ -2102,7 +2106,7 @@ static void InitOverworldGraphicsRegisters(void) SetGpuReg(REG_OFFSET_WIN0V, 0xFF); SetGpuReg(REG_OFFSET_WIN1H, 0xFFFF); SetGpuReg(REG_OFFSET_WIN1V, 0xFFFF); - SetGpuReg(REG_OFFSET_BLDCNT, gUnknown_82EC7C4[1] | gUnknown_82EC7C4[2] | gUnknown_82EC7C4[3] + SetGpuReg(REG_OFFSET_BLDCNT, gOverworldBackgroundLayerFlags[1] | gOverworldBackgroundLayerFlags[2] | gOverworldBackgroundLayerFlags[3] | BLDCNT_TGT2_OBJ | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(13, 7)); InitOverworldBgs(); @@ -2249,6 +2253,9 @@ static void CB1_UpdateLinkState(void) // UpdateHeldKeyCode performs a sanity check on its input; if // sPlayerKeyInterceptCallback echoes back the argument, which is selfId, then // it'll use LINK_KEY_CODE_EMPTY instead. + // + // Note 2: There are some key intercept callbacks that treat the key as a player + // ID. It's so hacky. UpdateHeldKeyCode(sPlayerKeyInterceptCallback(selfId)); ClearAllPlayerKeys(); } @@ -2311,7 +2318,7 @@ static bool32 AreAnyPlayersInState(u16 tradingState) return FALSE; } -static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlayer *trainer, u16 *eventScriptType) +static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlayer *trainer, u16 *forceFacing) { const u8 *script; @@ -2320,7 +2327,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay script = TryGetTileEventScript(trainer); if (script) { - *eventScriptType = GetTypeForTileEventScript(script); + *forceFacing = GetDirectionForEventScript(script); sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; if (trainer->isSelf) { @@ -2329,7 +2336,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay } return; } - if (AreAnyPlayersInState(PLAYER_TRADING_STATE_UNK_3) == TRUE) + if (AreAnyPlayersInState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) { sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; if (trainer->isSelf) @@ -2403,8 +2410,8 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay switch (key) { - case LINK_KEY_CODE_UNK_3: - sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_UNK_3; + case LINK_KEY_CODE_EXIT_ROOM: + sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_EXITING_ROOM; break; case LINK_KEY_CODE_UNK_2: sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_UNK_2; @@ -2429,12 +2436,12 @@ static void UpdateAllLinkPlayers(u16 *keys, s32 selfId) for (i = 0; i < 4; i++) { u8 key = keys[i]; - u16 eventScriptType = EVENT_SCRIPT_NONE; + u16 setFacing = FACING_NONE; LoadTradeRoomPlayer(i, selfId, &trainer); - HandleLinkPlayerKeyInput(i, key, &trainer, &eventScriptType); + HandleLinkPlayerKeyInput(i, key, &trainer, &setFacing); if (sPlayerTradingStates[i] == PLAYER_TRADING_STATE_IDLE) - eventScriptType = sub_8087068(key); - RunPlayerEventScript(i, eventScriptType); + setFacing = GetDirectionForDpadKey(key); + SetPlayerFacingDirection(i, setFacing); } } @@ -2483,20 +2490,20 @@ static u16 KeyInterCB_ReadButtons(u32 key) return LINK_KEY_CODE_EMPTY; } -static u16 sub_8087068(u16 a1) +static u16 GetDirectionForDpadKey(u16 a1) { switch (a1) { case LINK_KEY_CODE_DPAD_RIGHT: - return 4; + return FACING_RIGHT; case LINK_KEY_CODE_DPAD_LEFT: - return 3; + return FACING_LEFT; case LINK_KEY_CODE_DPAD_UP: - return 1; + return FACING_UP; case LINK_KEY_CODE_DPAD_DOWN: - return 2; + return FACING_DOWN; default: - return 0; + return FACING_NONE; } } @@ -2577,19 +2584,19 @@ static u16 KeyInterCB_DeferToSendQueue(u32 key) return retVal; } -static u16 sub_8087164(u32 key) +static u16 KeyInterCB_DoNothingAndKeepAlive(u32 key) { CheckRfuKeepAliveTimer(); return LINK_KEY_CODE_EMPTY; } -static u16 sub_8087170(u32 linkPlayerId) +static u16 sub_8087170(u32 keyOrPlayerId) { - if (sPlayerTradingStates[linkPlayerId] == PLAYER_TRADING_STATE_UNK_2) + if (sPlayerTradingStates[keyOrPlayerId] == PLAYER_TRADING_STATE_UNK_2) { if (gMain.newKeys & B_BUTTON) { - SetKeyInterceptCallback(sub_8087164); + SetKeyInterceptCallback(KeyInterCB_DoNothingAndKeepAlive); return LINK_KEY_CODE_UNK_7; } else @@ -2610,41 +2617,45 @@ static u16 sub_80871AC(u32 a1) return LINK_KEY_CODE_UNK_2; } -static u16 sub_80871C0(u32 a1) +static u16 KeyInterCB_SendNothing(u32 key) { return LINK_KEY_CODE_EMPTY; } -static u16 sub_80871C4(u32 a1) +static u16 KeyInterCB_WaitForPlayersToExit(u32 keyOrPlayerId) { - if (sPlayerTradingStates[a1] != PLAYER_TRADING_STATE_UNK_3) + // keyOrPlayerId could be any keycode. This callback does no sanity checking + // on the size of the key. It's assuming that it is being called from + // CB1_UpdateLinkState. + if (sPlayerTradingStates[keyOrPlayerId] != PLAYER_TRADING_STATE_EXITING_ROOM) CheckRfuKeepAliveTimer(); - if (AreAllPlayersInState(PLAYER_TRADING_STATE_UNK_3) == TRUE) + if (AreAllPlayersInState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) { - ScriptContext1_SetupScript(EventScript_277513); - SetKeyInterceptCallback(sub_80871C0); + ScriptContext1_SetupScript(gEventScript_DoLinkRoomExit); + SetKeyInterceptCallback(KeyInterCB_SendNothing); } return LINK_KEY_CODE_EMPTY; } -static u16 sub_80871FC(u32 a1) +static u16 KeyInterCB_SendExitRoomKey(u32 key) { - SetKeyInterceptCallback(sub_80871C4); - return 23; + SetKeyInterceptCallback(KeyInterCB_WaitForPlayersToExit); + return LINK_KEY_CODE_EXIT_ROOM; } -static u16 sub_8087210(u32 a1) +// Duplicate function. +static u16 KeyInterCB_SendNothing_2(u32 key) { return LINK_KEY_CODE_EMPTY; } u32 sub_8087214(void) { - if (AreAnyPlayersInState(PLAYER_TRADING_STATE_UNK_3) == TRUE) + if (AreAnyPlayersInState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) return 2; if (sPlayerKeyInterceptCallback == sub_8087170 && sPlayerTradingStates[gLinkSelfPlayerId] != PLAYER_TRADING_STATE_UNK_2) return 0; - if (sPlayerKeyInterceptCallback == sub_8087164 && sPlayerTradingStates[gLinkSelfPlayerId] == PLAYER_TRADING_STATE_BUSY) + if (sPlayerKeyInterceptCallback == KeyInterCB_DoNothingAndKeepAlive && sPlayerTradingStates[gLinkSelfPlayerId] == PLAYER_TRADING_STATE_BUSY) return 2; if (AreAllPlayersInState(PLAYER_TRADING_STATE_UNK_2) != FALSE) return 1; @@ -2653,7 +2664,7 @@ u32 sub_8087214(void) bool32 sub_808727C(void) { - return AreAnyPlayersInState(PLAYER_TRADING_STATE_UNK_3); + return AreAnyPlayersInState(PLAYER_TRADING_STATE_EXITING_ROOM); } u16 sub_8087288(void) @@ -2668,15 +2679,17 @@ u16 sub_808729C(void) return 0; } -u16 sub_80872B0(void) +// The exit room key will be sent at the next opportunity. +// The return value is meaningless. +u16 QueueExitLinkRoomKey(void) { - SetKeyInterceptCallback(sub_80871FC); + SetKeyInterceptCallback(KeyInterCB_SendExitRoomKey); return 0; } u16 sub_80872C4(void) { - SetKeyInterceptCallback(sub_8087210); + SetKeyInterceptCallback(KeyInterCB_SendNothing_2); return 0; } @@ -2686,7 +2699,7 @@ static void LoadTradeRoomPlayer(s32 linkPlayerId, s32 myPlayerId, struct TradeRo trainer->playerId = linkPlayerId; trainer->isSelf = (linkPlayerId == myPlayerId) ? 1 : 0; - trainer->c = gLinkPlayerEventObjects[linkPlayerId].mode; + trainer->c = gLinkPlayerEventObjects[linkPlayerId].movementMode; trainer->facing = GetLinkPlayerFacingDirection(linkPlayerId); GetLinkPlayerCoords(linkPlayerId, &x, &y); trainer->pos.x = x; @@ -2698,7 +2711,7 @@ static void LoadTradeRoomPlayer(s32 linkPlayerId, s32 myPlayerId, struct TradeRo static bool32 sub_8087340(struct TradeRoomPlayer *player) { u8 v1 = player->c; - if (v1 == 2 || v1 == 0) + if (v1 == MOVEMENT_MODE_SCRIPTED || v1 == MOVEMENT_MODE_FREE) return TRUE; else return FALSE; @@ -2708,7 +2721,7 @@ static bool32 sub_8087340(struct TradeRoomPlayer *player) static bool32 sub_8087340_2(struct TradeRoomPlayer *player) { u8 v1 = player->c; - if (v1 == 2 || v1 == 0) + if (v1 == MOVEMENT_MODE_SCRIPTED || v1 == MOVEMENT_MODE_FREE) return TRUE; else return FALSE; @@ -2716,14 +2729,14 @@ static bool32 sub_8087340_2(struct TradeRoomPlayer *player) static u8 *TryGetTileEventScript(struct TradeRoomPlayer *player) { - if (player->c != 2) - return 0; + if (player->c != MOVEMENT_MODE_SCRIPTED) + return FACING_NONE; return GetCoordEventScriptAtMapPosition(&player->pos); } static bool32 PlayerIsAtSouthExit(struct TradeRoomPlayer *player) { - if (player->c != 2 && player->c != 0) + if (player->c != MOVEMENT_MODE_SCRIPTED && player->c != MOVEMENT_MODE_FREE) return FALSE; else if (!MetatileBehavior_IsSouthArrowWarp(player->field_C)) return FALSE; @@ -2738,8 +2751,8 @@ static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *player) struct MapPosition otherPlayerPos; u8 linkPlayerId; - if (player->c && player->c != 2) - return 0; + if (player->c != MOVEMENT_MODE_FREE && player->c != MOVEMENT_MODE_SCRIPTED) + return FACING_NONE; otherPlayerPos = player->pos; otherPlayerPos.x += gDirectionToVectors[player->facing].x; @@ -2750,46 +2763,48 @@ static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *player) if (linkPlayerId != 4) { if (!player->isSelf) - return EventScript_TradeRoom_TooBusyToNotice; + return gEventScript_TradeRoom_TooBusyToNotice; else if (sPlayerTradingStates[linkPlayerId] != PLAYER_TRADING_STATE_IDLE) - return EventScript_TradeRoom_TooBusyToNotice; + return gEventScript_TradeRoom_TooBusyToNotice; else if (!GetLinkTrainerCardColor(linkPlayerId)) - return EventScript_TradeRoom_ReadTrainerCard_NoColor; + return gEventScript_TradeRoom_ReadTrainerCard_NoColor; else - return EventScript_TradeRoom_ReadTrainerCard_Normal; + return gEventScript_TradeRoom_ReadTrainerCard_Normal; } return GetInteractedLinkPlayerScript(&otherPlayerPos, player->field_C, player->facing); } -static u16 GetTypeForTileEventScript(const u8 *script) -{ - if (script == gUnknown_08277388) - return 10; - else if (script == gUnknown_082773A3) - return 9; - else if (script == gUnknown_082773BE) - return 10; - else if (script == gUnknown_082773D9) - return 9; - else if (script == gUnknown_0827741D) - return 10; - else if (script == gUnknown_08277432) - return 9; - else if (script == gUnknown_08277447) - return 10; - else if (script == gUnknown_0827745C) - return 9; - else if (script == gUnknown_08277374) - return 10; - else if (script == gUnknown_0827737E) - return 9; - else if (script == gUnknown_082773F5) - return 10; - else if (script == gUnknown_082773FF) - return 9; +// This returns which direction to force the player to look when one of +// these event scripts runs. +static u16 GetDirectionForEventScript(const u8 *script) +{ + if (script == gEventScript_DoubleBattleColosseum_PlayerSpot0) + return FACING_FORCED_RIGHT; + else if (script == gEventScript_DoubleBattleColosseum_PlayerSpot1) + return FACING_FORCED_LEFT; + else if (script == gEventScript_DoubleBattleColosseum_PlayerSpot2) + return FACING_FORCED_RIGHT; + else if (script == gEventScript_DoubleBattleColosseum_PlayerSpot3) + return FACING_FORCED_LEFT; + else if (script == gEventScript_RecordCenter_Spot0) + return FACING_FORCED_RIGHT; + else if (script == gEventScript_RecordCenter_Spot1) + return FACING_FORCED_LEFT; + else if (script == gEventScript_RecordCenter_Spot2) + return FACING_FORCED_RIGHT; + else if (script == gEventScript_RecordCenter_Spot3) + return FACING_FORCED_LEFT; + else if (script == gEventScript_SingleBattleColosseum_PlayerSpot0) + return FACING_FORCED_RIGHT; + else if (script == gEventScript_SingleBattleColosseum_PlayerSpot1) + return FACING_FORCED_LEFT; + else if (script == gEventScript_TradeCenter_Chair0) + return FACING_FORCED_RIGHT; + else if (script == gEventScript_TradeCenter_Chair1) + return FACING_FORCED_LEFT; else - return 0; + return FACING_NONE; } static void sub_8087510(void) @@ -2827,7 +2842,7 @@ static void InitMenuBasedScript(const u8 *script) static void sub_8087584(void) { - ScriptContext1_SetupScript(gUnknown_08277509); + ScriptContext1_SetupScript(gEventScript_TerminateLink); ScriptContext2_Enable(); } @@ -2927,7 +2942,7 @@ static void SpawnLinkPlayerEventObject(u8 linkPlayerId, s16 x, s16 y, u8 a4) linkPlayerEventObj->active = 1; linkPlayerEventObj->linkPlayerId = linkPlayerId; linkPlayerEventObj->eventObjId = eventObjId; - linkPlayerEventObj->mode = 0; + linkPlayerEventObj->movementMode = MOVEMENT_MODE_FREE; eventObj->active = 1; eventObj->singleMovementActive = a4; @@ -3012,7 +3027,7 @@ static u8 GetLinkPlayerIdAt(s16 x, s16 y) for (i = 0; i < 4; i++) { if (gLinkPlayerEventObjects[i].active - && (gLinkPlayerEventObjects[i].mode == 0 || gLinkPlayerEventObjects[i].mode == 2)) + && (gLinkPlayerEventObjects[i].movementMode == 0 || gLinkPlayerEventObjects[i].movementMode == 2)) { struct EventObject *eventObj = &gEventObjects[gLinkPlayerEventObjects[i].eventObjId]; if (eventObj->currentCoords.x == x && eventObj->currentCoords.y == y) @@ -3022,7 +3037,7 @@ static u8 GetLinkPlayerIdAt(s16 x, s16 y) return 4; } -static void RunPlayerEventScript(u8 linkPlayerId, u8 eventScriptType) +static void SetPlayerFacingDirection(u8 linkPlayerId, u8 facing) { struct LinkPlayerEventObject *linkPlayerEventObj = &gLinkPlayerEventObjects[linkPlayerId]; u8 eventObjId = linkPlayerEventObj->eventObjId; @@ -3030,94 +3045,108 @@ static void RunPlayerEventScript(u8 linkPlayerId, u8 eventScriptType) if (linkPlayerEventObj->active) { - if (eventScriptType > 10) + if (facing > FACING_FORCED_RIGHT) eventObj->triggerGroundEffectsOnMove = 1; - else - gUnknown_08339E00[gLinkPlayerEventModes[linkPlayerEventObj->mode](linkPlayerEventObj, eventObj, eventScriptType)](linkPlayerEventObj, eventObj); + else { + // This is a hack to split this code onto two separate lines, without declaring a local variable. + // C++ style inline variables would be nice here. + #define TEMP gLinkPlayerMovementModes[linkPlayerEventObj->movementMode](linkPlayerEventObj, eventObj, facing) + + gMovementStatusHandler[TEMP](linkPlayerEventObj, eventObj); + + // Clean up the hack. + #undef TEMP + } } } -static u8 sub_80879D8(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) + +static u8 MovementEventModeCB_Normal(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) { - return gUnknown_08339DD4[a3](linkPlayerEventObj, eventObj, a3); + return gLinkPlayerFacingHandlers[a3](linkPlayerEventObj, eventObj, a3); } -static u8 sub_80879F8(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) +static u8 MovementEventModeCB_Ignored(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) { - return 1; + return FACING_UP; } -static u8 sub_80879FC(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) +// Duplicate Function +static u8 MovementEventModeCB_Normal_2(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) { - return gUnknown_08339DD4[a3](linkPlayerEventObj, eventObj, a3); + return gLinkPlayerFacingHandlers[a3](linkPlayerEventObj, eventObj, a3); } -static u8 sub_8087A1C(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) +static bool8 FacingHandler_DoNothing(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) { - return 0; + return FALSE; } -static u8 sub_8087A20(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) +static bool8 FacingHandler_DpadMovement(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) { s16 x, y; - eventObj->range.as_byte = npc_something3(a3, eventObj->range.as_byte); + eventObj->range.as_byte = FlipVerticalAndClearForced(a3, eventObj->range.as_byte); EventObjectMoveDestCoords(eventObj, eventObj->range.as_byte, &x, &y); if (LinkPlayerDetectCollision(linkPlayerEventObj->eventObjId, eventObj->range.as_byte, x, y)) { - return 0; + return FALSE; } else { eventObj->directionSequenceIndex = 16; ShiftEventObjectCoords(eventObj, x, y); EventObjectUpdateZCoord(eventObj); - return 1; + return TRUE; } } -static u8 sub_8087A88(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) +static bool8 FacingHandler_ForcedFacingChange(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj, u8 a3) { - eventObj->range.as_byte = npc_something3(a3, eventObj->range.as_byte); - return 0; + eventObj->range.as_byte = FlipVerticalAndClearForced(a3, eventObj->range.as_byte); + return FALSE; } -static void sub_8087AA0(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj) +// This is called every time a free movement happens. Most of the time it's a No-Op. +static void MovementStatusHandler_EnterFreeMode(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj) { - linkPlayerEventObj->mode = 0; + linkPlayerEventObj->movementMode = MOVEMENT_MODE_FREE; } -static void sub_8087AA8(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj) +static void MovementStatusHandler_TryAdvanceScript(struct LinkPlayerEventObject *linkPlayerEventObj, struct EventObject *eventObj) { eventObj->directionSequenceIndex--; - linkPlayerEventObj->mode = 1; + linkPlayerEventObj->movementMode = MOVEMENT_MODE_FROZEN; MoveCoords(eventObj->range.as_byte, &eventObj->initialCoords.x, &eventObj->initialCoords.y); if (!eventObj->directionSequenceIndex) { ShiftStillEventObjectCoords(eventObj); - linkPlayerEventObj->mode = 2; + linkPlayerEventObj->movementMode = MOVEMENT_MODE_SCRIPTED; } } -static u8 npc_something3(u8 a1, u8 a2) +// Flip Up/Down facing codes. If newFacing doesn't specify a direction, default +// to oldFacing. Note that this clears also the "FORCED" part of the facing code, +// even for Left/Right codes. +static u8 FlipVerticalAndClearForced(u8 newFacing, u8 oldFacing) { - switch (a1 - 1) + switch (newFacing - 1) { - case 0: - case 6: - return 2; - case 1: - case 7: - return 1; - case 2: - case 8: - return 3; - case 3: - case 9: - return 4; + case (FACING_UP - 1): + case (FACING_FORCED_UP - 1): + return FACING_DOWN; + case (FACING_DOWN - 1): + case (FACING_FORCED_DOWN - 1): + return FACING_UP; + case (FACING_LEFT - 1): + case (FACING_FORCED_LEFT - 1): + return FACING_LEFT; + case (FACING_RIGHT - 1): + case (FACING_FORCED_RIGHT - 1): + return FACING_RIGHT; } - return a2; + return oldFacing; } static u8 LinkPlayerDetectCollision(u8 selfEventObjId, u8 a2, s16 x, s16 y) @@ -3177,7 +3206,7 @@ static void SpriteCB_LinkPlayer(struct Sprite *sprite) SetObjectSubpriorityByZCoord(eventObj->previousElevation, sprite, 1); sprite->oam.priority = ZCoordToPriority(eventObj->previousElevation); - if (!linkPlayerEventObj->mode) + if (!linkPlayerEventObj->movementMode != MOVEMENT_MODE_FREE) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(eventObj->range.as_byte)); else StartSpriteAnimIfDifferent(sprite, GetMoveDirectionAnimNum(eventObj->range.as_byte)); diff --git a/src/party_menu.c b/src/party_menu.c index 15b5d24d8..7cf2303d4 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -6513,7 +6513,7 @@ static void sub_81B8474(u8 taskId) gTasks[taskId].func = sub_81B8104; } -void sub_81B8518(u8 unused) +void InitChooseHalfPartyForBattle(u8 unused) { sub_81B8558(); InitPartyMenu(4, 0, 0, 0, 0, sub_81B1370, gMain.savedCallback); diff --git a/src/record_mixing.c b/src/record_mixing.c index 189033685..4c0ada830 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -106,7 +106,7 @@ static EWRAM_DATA union PlayerRecords *sSentRecord = NULL; // Static ROM declarations static void Task_RecordMixing_Main(u8 taskId); -static void sub_80E7324(u8 taskId); +static void Task_MixingRecordsRecv(u8 taskId); static void Task_SendPacket(u8 taskId); static void Task_CopyReceiveBuffer(u8 taskId); static void Task_SendPacket_SwitchToReceive(u8 taskId); @@ -120,7 +120,7 @@ static void ReceiveLilycoveLadyData(LilycoveLady *, size_t, u8); static void sub_80E7B2C(const u8 *); static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *, size_t, u8, TVShow *); static void ReceiveGiftItem(u16 *item, u8 which); -static void sub_80E7FF8(u8 taskId); +static void Task_DoRecordMixing(u8 taskId); static void sub_80E8110(struct Apprentice *arg0, struct Apprentice *arg1); static void ReceiveApprenticeData(struct Apprentice *arg0, size_t arg1, u32 arg2); static void ReceiveRankingHallRecords(struct PlayerHallRecords *hallRecords, size_t arg1, u32 arg2); @@ -170,7 +170,8 @@ static const u8 gUnknown_0858CFBE[3][4] = #define BUFFER_CHUNK_SIZE 200 -void sub_80E6BE8(void) +// Note: VAR_0x8005 contains the spotId. +void EventScript_RecordMixingPlayerSpotTriggered(void) { sub_80B37D4(Task_RecordMixing_Main); } @@ -313,6 +314,7 @@ static void Task_RecordMixing_SoundEffect(u8 taskId) #define tState data[0] #define tSndEffTaskId data[15] +// Note: Currently, special var 8005 contains the player's spot id. static void Task_RecordMixing_Main(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -322,16 +324,16 @@ static void Task_RecordMixing_Main(u8 taskId) case 0: // init sSentRecord = malloc(sizeof(union PlayerRecords)); sReceivedRecords = malloc(sizeof(union PlayerRecords) * 4); - sub_8009628(gSpecialVar_0x8005); + SetLocalLinkPlayerId(gSpecialVar_0x8005); VarSet(VAR_TEMP_0, 1); gUnknown_03001130 = FALSE; PrepareExchangePacket(); CreateRecordMixingSprite(); tState = 1; - data[10] = CreateTask(sub_80E7324, 80); + data[10] = CreateTask(Task_MixingRecordsRecv, 80); tSndEffTaskId = CreateTask(Task_RecordMixing_SoundEffect, 81); break; - case 1: // wait for sub_80E7324 + case 1: // wait for Task_MixingRecordsRecv if (!gTasks[data[10]].isActive) { tState = 2; @@ -341,11 +343,11 @@ static void Task_RecordMixing_Main(u8 taskId) } break; case 2: - data[10] = CreateTask(sub_80E7FF8, 10); + data[10] = CreateTask(Task_DoRecordMixing, 10); tState = 3; PlaySE(SE_W226); break; - case 3: // wait for sub_80E7FF8 + case 3: // wait for Task_DoRecordMixing if (!gTasks[data[10]].isActive) { tState = 4; @@ -381,7 +383,7 @@ static void Task_RecordMixing_Main(u8 taskId) #undef tState #undef tSndEffTaskId -static void sub_80E7324(u8 taskId) +static void Task_MixingRecordsRecv(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -405,7 +407,7 @@ static void sub_80E7324(u8 taskId) u8 players = GetLinkPlayerCount_2(); if (IsLinkMaster() == TRUE) { - if (players == sub_800AA48()) + if (players == GetSavedPlayerCount()) { PlaySE(SE_PIN); task->data[0] = 201; @@ -420,14 +422,15 @@ static void sub_80E7324(u8 taskId) } break; case 201: - if (sub_800AA48() == GetLinkPlayerCount_2() && ++task->data[12] > (GetLinkPlayerCount_2() * 30)) + // We're the link master. Delay for 30 frames per connected player. + if (GetSavedPlayerCount() == GetLinkPlayerCount_2() && ++task->data[12] > (GetLinkPlayerCount_2() * 30)) { - sub_800A620(); + CheckShouldAdvanceLinkState(); task->data[0] = 1; } break; case 301: - if (sub_800AA48() == GetLinkPlayerCount_2()) + if (GetSavedPlayerCount() == GetLinkPlayerCount_2()) task->data[0] = 1; break; case 400: // wait 20 frames @@ -470,6 +473,7 @@ static void sub_80E7324(u8 taskId) StorePtrInTaskData(sReceivedRecords, (u16 *)&gTasks[subTaskId].data[5]); sRecordStructSize = sizeof(struct PlayerRecordsEmerald); } + // Note: This task is destroyed by Task_CopyReceiveBuffer when it's done. } break; case 5: // wait 60 frames @@ -938,7 +942,7 @@ static void ReceiveGiftItem(u16 *item, u8 which) } } -static void sub_80E7FF8(u8 taskId) +static void Task_DoRecordMixing(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -953,20 +957,22 @@ static void sub_80E7FF8(u8 taskId) else task->data[0] = 6; break; + + // Mixing Ruby/Sapphire records. case 2: SetContinueGameWarpStatusToDynamicWarp(); - sub_8153430(); + FullSaveGame(); task->data[0] ++; break; case 3: - if (sub_8153474()) + if (CheckSaveFile()) { ClearContinueGameWarpStatus2(); task->data[0] = 4; task->data[1] = 0; } break; - case 4: + case 4: // Wait 10 frames if (++task->data[1] > 10) { sub_800AC34(); @@ -974,22 +980,24 @@ static void sub_80E7FF8(u8 taskId) } break; case 5: - if (gReceivedRemoteLinkPlayers == 0) + if (gReceivedRemoteLinkPlayers == FALSE) DestroyTask(taskId); break; + + // Mixing Emerald/FireRed/LeafGreen records. case 6: - if (!sub_801048C(0)) + if (!sub_801048C(FALSE)) { CreateTask(sub_8153688, 5); task->data[0] ++; } break; - case 7: + case 7: // wait for sub_8153688 to finish. if (!FuncIsActiveTask(sub_8153688)) { if (gWirelessCommType) { - sub_801048C(1); + sub_801048C(TRUE); task->data[0] = 8; } else diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index 57fb2c898..8f95e6719 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -1697,7 +1697,7 @@ void sub_801440C(u8 taskId) case 81: CleanupOverworldWindowsAndTilemaps(); gMain.savedCallback = sub_801AC54; - sub_81B8518(3); + InitChooseHalfPartyForBattle(3); break; case 1: CleanupOverworldWindowsAndTilemaps(); diff --git a/src/save.c b/src/save.c index a22e20f0b..d07e59766 100644 --- a/src/save.c +++ b/src/save.c @@ -768,7 +768,7 @@ u8 sub_8153408(void) // trade.s save return 0; } -u8 sub_8153430(void) +u8 FullSaveGame(void) { if (gFlashMemoryPresent != TRUE) return 1; @@ -780,7 +780,7 @@ u8 sub_8153430(void) return 0; } -bool8 sub_8153474(void) +bool8 CheckSaveFile(void) { u8 retVal = FALSE; u16 val = ++gUnknown_03006208; diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c index cade00b50..f971d8487 100755 --- a/src/script_pokemon_util_80F87D8.c +++ b/src/script_pokemon_util_80F87D8.c @@ -29,6 +29,7 @@ #include "constants/items.h" #include "constants/species.h" #include "constants/vars.h" +#include "constants/battle_frontier.h" extern const u16 gEventObjectPalette8[]; extern const u16 gEventObjectPalette17[]; @@ -40,7 +41,7 @@ static const u8 gUnknown_0858D8EC[] = { 3, 4, 5, 14 }; static void sub_80F8EE8(u8 taskId); static void sub_80F9088(u8 taskId); -static void sub_80F9460(void); +static void CB2_ReturnFromChooseHalfParty(void); static void sub_80F94B8(void); void SetContestTrainerGfxIds(void) @@ -640,22 +641,24 @@ void ScriptSetMonMoveSlot(u8 monIndex, u16 move, u8 slot) SetMonMoveSlot(&gPlayerParty[monIndex], move, slot); } -void sub_80F9438(void) +// Note: When control returns to the event script, gSpecialVar_Result be +// TRUE if the party selection was successful. +void EventScript_ChooseHalfPartyForBattle(void) { - gMain.savedCallback = sub_80F9460; - VarSet(VAR_FRONTIER_FACILITY, 9); // this isn't a valid frontier facility id (??) - sub_81B8518(0); + gMain.savedCallback = CB2_ReturnFromChooseHalfParty; + VarSet(VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_DOUBLE_COLOSSEUM); + InitChooseHalfPartyForBattle(0); } -static void sub_80F9460(void) +static void CB2_ReturnFromChooseHalfParty(void) { switch (gSelectedOrderFromParty[0]) { case 0: - gSpecialVar_Result = 0; + gSpecialVar_Result = FALSE; break; default: - gSpecialVar_Result = 1; + gSpecialVar_Result = TRUE; break; } @@ -665,7 +668,7 @@ static void sub_80F9460(void) void sub_80F9490(void) { gMain.savedCallback = sub_80F94B8; - sub_81B8518(gSpecialVar_0x8004 + 1); + InitChooseHalfPartyForBattle(gSpecialVar_0x8004 + 1); } static void sub_80F94B8(void) diff --git a/src/start_menu.c b/src/start_menu.c index 4b41933ae..dfe3b08be 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -1265,11 +1265,11 @@ static void sub_80A0550(u8 taskId) break; case 1: SetContinueGameWarpStatusToDynamicWarp(); - sub_8153430(); + FullSaveGame(); *step = 2; break; case 2: - if (sub_8153474()) + if (CheckSaveFile()) { ClearContinueGameWarpStatus2(); *step = 3; diff --git a/src/trade.c b/src/trade.c index 2cd7cf2d9..db5e6a1a3 100644 --- a/src/trade.c +++ b/src/trade.c @@ -1507,13 +1507,13 @@ static void sub_80773D0(void) } break; case 3: - if (GetLinkPlayerCount_2() >= sub_800AA48()) + if (GetLinkPlayerCount_2() >= GetSavedPlayerCount()) { if (IsLinkMaster()) { if (++gUnknown_0203229C->unk_A8 > 30) { - sub_800A620(); + CheckShouldAdvanceLinkState(); gMain.state++; } } @@ -4099,11 +4099,11 @@ void sub_807AE50(void) case 3: if (IsLinkMaster()) { - if (GetLinkPlayerCount_2() >= sub_800AA48()) + if (GetLinkPlayerCount_2() >= GetSavedPlayerCount()) { if (++gUnknown_020322A0->timer > 30) { - sub_800A620(); + CheckShouldAdvanceLinkState(); gMain.state++; } } -- cgit v1.2.3 From 327de0283df467efbd819e192c54e6224684cb38 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sun, 10 Feb 2019 21:16:12 -0500 Subject: Adjust constants returned by FlipVerticalAndClearForced --- src/overworld.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/overworld.c b/src/overworld.c index 671d3412f..b5b1b04a6 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -3135,16 +3135,16 @@ static u8 FlipVerticalAndClearForced(u8 newFacing, u8 oldFacing) { case (FACING_UP - 1): case (FACING_FORCED_UP - 1): - return FACING_DOWN; + return DIR_NORTH; case (FACING_DOWN - 1): case (FACING_FORCED_DOWN - 1): - return FACING_UP; + return DIR_SOUTH; case (FACING_LEFT - 1): case (FACING_FORCED_LEFT - 1): - return FACING_LEFT; + return DIR_WEST; case (FACING_RIGHT - 1): case (FACING_FORCED_RIGHT - 1): - return FACING_RIGHT; + return DIR_EAST; } return oldFacing; } -- cgit v1.2.3 From 08579edbcd596c9659fe25490480c6f96e2b4288 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Mon, 18 Feb 2019 01:03:44 -0500 Subject: Clean up mistakes and bad formatting --- common_syms/overworld.txt | 2 +- data/event_scripts.s | 8 +- data/maps/DoubleBattleColosseum/map.json | 8 +- data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc | 2 +- data/maps/RecordCorner/map.json | 8 +- data/maps/SingleBattleColosseum/map.json | 4 +- .../scripts.inc | 2 +- data/maps/TradeCenter/map.json | 4 +- data/scripts/cable_club.inc | 86 ++++++------- data/specials.inc | 12 +- include/global.h | 2 +- include/overworld.h | 2 +- include/record_mixing.h | 2 +- src/cable_club.c | 16 +-- src/overworld.c | 143 +++++++++++---------- src/record_mixing.c | 4 +- src/rom_8011DC0.c | 4 +- src/script_pokemon_util_80F87D8.c | 4 +- src/start_menu.c | 4 +- 19 files changed, 159 insertions(+), 158 deletions(-) diff --git a/common_syms/overworld.txt b/common_syms/overworld.txt index 8506c74a0..1ba43d7cf 100644 --- a/common_syms/overworld.txt +++ b/common_syms/overworld.txt @@ -4,5 +4,5 @@ gBGTilemapBuffers3 gHeldKeyCodeToSend gFieldCallback gFieldCallback2 -gLinkSelfPlayerId +LocalLinkPlayerId gFieldLinkPlayerCount diff --git a/data/event_scripts.s b/data/event_scripts.s index 1e7dbe237..9c88ed49f 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1157,12 +1157,12 @@ EverGrandeCity_HallOfFame_EventScript_271851:: @ 8271851 setvar VAR_0x40D3, 1 return -gEventScript_WhiteOut:: @ 8271857 +EventScript_WhiteOut:: @ 8271857 call EverGrandeCity_HallOfFame_EventScript_2718CC - goto gEventScript_ResetMrBriney + goto EventScript_ResetMrBriney end -gEventScript_ResetMrBriney:: @ 8271862 +EventScript_ResetMrBriney:: @ 8271862 compare VAR_0x4096, 1 goto_if_eq EventScript_MoveMrBrineyToHouse compare VAR_0x4096, 2 @@ -1610,7 +1610,7 @@ EventScript_271D5E:: @ 8271D5E goto EventScript_271D89 EventScript_271D83:: @ 8271D83 - special EventScript_RecordMixingPlayerSpotTriggered + special RecordMixingPlayerSpotTriggered waitstate lock faceplayer diff --git a/data/maps/DoubleBattleColosseum/map.json b/data/maps/DoubleBattleColosseum/map.json index b46c8fa3e..20daa12c2 100644 --- a/data/maps/DoubleBattleColosseum/map.json +++ b/data/maps/DoubleBattleColosseum/map.json @@ -52,7 +52,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gEventScript_DoubleBattleColosseum_PlayerSpot0" + "script": "EventScript_DoubleBattleColosseum_PlayerSpot0" }, { "type": "trigger", @@ -61,7 +61,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gEventScript_DoubleBattleColosseum_PlayerSpot2" + "script": "EventScript_DoubleBattleColosseum_PlayerSpot2" }, { "type": "trigger", @@ -70,7 +70,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gEventScript_DoubleBattleColosseum_PlayerSpot1" + "script": "EventScript_DoubleBattleColosseum_PlayerSpot1" }, { "type": "trigger", @@ -79,7 +79,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gEventScript_DoubleBattleColosseum_PlayerSpot3" + "script": "EventScript_DoubleBattleColosseum_PlayerSpot3" } ], "bg_events": [] diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc index d2e5dded1..72c43febe 100644 --- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc @@ -248,7 +248,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_22400C:: @ 822400C waitmovement 0 special SavePlayerParty fadescreen 1 - special EventScript_ChooseHalfPartyForBattle + special ChooseHalfPartyForBattle waitstate compare VAR_RESULT, 0 goto_if_ne MossdeepCity_SpaceCenter_2F_EventScript_224032 diff --git a/data/maps/RecordCorner/map.json b/data/maps/RecordCorner/map.json index 9bf870a52..cd39e69d0 100644 --- a/data/maps/RecordCorner/map.json +++ b/data/maps/RecordCorner/map.json @@ -66,7 +66,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gEventScript_RecordCenter_Spot0" + "script": "EventScript_RecordCenter_Spot0" }, { "type": "trigger", @@ -75,7 +75,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gEventScript_RecordCenter_Spot2" + "script": "EventScript_RecordCenter_Spot2" }, { "type": "trigger", @@ -84,7 +84,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gEventScript_RecordCenter_Spot1" + "script": "EventScript_RecordCenter_Spot1" }, { "type": "trigger", @@ -93,7 +93,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gEventScript_RecordCenter_Spot3" + "script": "EventScript_RecordCenter_Spot3" } ], "bg_events": [] diff --git a/data/maps/SingleBattleColosseum/map.json b/data/maps/SingleBattleColosseum/map.json index 4576bc042..c5ff203c7 100644 --- a/data/maps/SingleBattleColosseum/map.json +++ b/data/maps/SingleBattleColosseum/map.json @@ -52,7 +52,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gEventScript_SingleBattleColosseum_PlayerSpot0" + "script": "EventScript_SingleBattleColosseum_PlayerSpot0" }, { "type": "trigger", @@ -61,7 +61,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gEventScript_SingleBattleColosseum_PlayerSpot1" + "script": "EventScript_SingleBattleColosseum_PlayerSpot1" } ], "bg_events": [] diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc index 2d8de4bb4..c85712d1d 100644 --- a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc +++ b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc @@ -129,7 +129,7 @@ SootopolisCity_MysteryEventsHouse_1F_EventScript_227AE2:: @ 8227AE2 SootopolisCity_MysteryEventsHouse_1F_EventScript_227AEF:: @ 8227AEF msgbox SootopolisCity_MysteryEventsHouse_1F_Text_227C84, MSGBOX_DEFAULT fadescreen 1 - special EventScript_ChooseHalfPartyForBattle + special ChooseHalfPartyForBattle waitstate return diff --git a/data/maps/TradeCenter/map.json b/data/maps/TradeCenter/map.json index 6ab2bdbe1..d9e3f7c92 100644 --- a/data/maps/TradeCenter/map.json +++ b/data/maps/TradeCenter/map.json @@ -53,7 +53,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gEventScript_TradeCenter_Chair0" + "script": "EventScript_TradeCenter_Chair0" }, { "comment": "This is trade seat #2.", @@ -63,7 +63,7 @@ "elevation": 3, "var": "VAR_TEMP_0", "var_value": 0, - "script": "gEventScript_TradeCenter_Chair1" + "script": "EventScript_TradeCenter_Chair1" } ], "bg_events": [] diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index dbd664dbc..5c413a7c1 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -791,118 +791,118 @@ EventScript_CableBoxResults:: @ 8277365 releaseall end -gEventScript_SingleBattleColosseum_PlayerSpot0:: @ 8277374 +EventScript_SingleBattleColosseum_PlayerSpot0:: @ 8277374 setvar VAR_0x8005, 0 - special EventScript_ColosseumPlayerSpotTriggered + special ColosseumPlayerSpotTriggered waitstate end -gEventScript_SingleBattleColosseum_PlayerSpot1:: @ 827737E +EventScript_SingleBattleColosseum_PlayerSpot1:: @ 827737E setvar VAR_0x8005, 1 - special EventScript_ColosseumPlayerSpotTriggered + special ColosseumPlayerSpotTriggered waitstate end -gEventScript_DoubleBattleColosseum_PlayerSpot0:: @ 8277388 +EventScript_DoubleBattleColosseum_PlayerSpot0:: @ 8277388 fadescreen 1 - special EventScript_ChooseHalfPartyForBattle + special ChooseHalfPartyForBattle waitstate compare VAR_RESULT, 0 - goto_if_eq gEventScript_DoubleBattleColosseum_CancelSpotTrigger + goto_if_eq EventScript_DoubleBattleColosseum_CancelSpotTrigger setvar VAR_0x8005, 0 - special EventScript_ColosseumPlayerSpotTriggered + special ColosseumPlayerSpotTriggered waitstate end -gEventScript_DoubleBattleColosseum_PlayerSpot1:: @ 82773A3 +EventScript_DoubleBattleColosseum_PlayerSpot1:: @ 82773A3 fadescreen 1 - special EventScript_ChooseHalfPartyForBattle + special ChooseHalfPartyForBattle waitstate compare VAR_RESULT, 0 - goto_if_eq gEventScript_DoubleBattleColosseum_CancelSpotTrigger + goto_if_eq EventScript_DoubleBattleColosseum_CancelSpotTrigger setvar VAR_0x8005, 1 - special EventScript_ColosseumPlayerSpotTriggered + special ColosseumPlayerSpotTriggered waitstate end -gEventScript_DoubleBattleColosseum_PlayerSpot2:: @ 82773BE +EventScript_DoubleBattleColosseum_PlayerSpot2:: @ 82773BE fadescreen 1 - special EventScript_ChooseHalfPartyForBattle + special ChooseHalfPartyForBattle waitstate compare VAR_RESULT, 0 - goto_if_eq gEventScript_DoubleBattleColosseum_CancelSpotTrigger + goto_if_eq EventScript_DoubleBattleColosseum_CancelSpotTrigger setvar VAR_0x8005, 2 - special EventScript_ColosseumPlayerSpotTriggered + special ColosseumPlayerSpotTriggered waitstate end -gEventScript_DoubleBattleColosseum_PlayerSpot3:: @ 82773D9 +EventScript_DoubleBattleColosseum_PlayerSpot3:: @ 82773D9 fadescreen 1 - special EventScript_ChooseHalfPartyForBattle + special ChooseHalfPartyForBattle waitstate compare VAR_RESULT, 0 - goto_if_eq gEventScript_DoubleBattleColosseum_CancelSpotTrigger + goto_if_eq EventScript_DoubleBattleColosseum_CancelSpotTrigger setvar VAR_0x8005, 3 - special EventScript_ColosseumPlayerSpotTriggered + special ColosseumPlayerSpotTriggered waitstate end -gEventScript_DoubleBattleColosseum_CancelSpotTrigger:: @ 82773F4 +EventScript_DoubleBattleColosseum_CancelSpotTrigger:: @ 82773F4 end -gEventScript_TradeCenter_Chair0:: @ 82773F5 +EventScript_TradeCenter_Chair0:: @ 82773F5 setvar VAR_0x8005, 0 - special EventScript_PlayerEnteredTradeSeat + special PlayerEnteredTradeSeat waitstate end -gEventScript_TradeCenter_Chair1:: @ 82773FF +EventScript_TradeCenter_Chair1:: @ 82773FF setvar VAR_0x8005, 1 - special EventScript_PlayerEnteredTradeSeat + special PlayerEnteredTradeSeat waitstate end /* Never used */ -gEventScript_TradeCenter_Chair2:: @ 8277409 +EventScript_TradeCenter_Chair2:: @ 8277409 setvar VAR_0x8005, 2 - special EventScript_PlayerEnteredTradeSeat + special PlayerEnteredTradeSeat waitstate end /* Never used */ -gEventScript_TradeCenter_Chair3:: @ 8277413 +EventScript_TradeCenter_Chair3:: @ 8277413 setvar VAR_0x8005, 3 - special EventScript_PlayerEnteredTradeSeat + special PlayerEnteredTradeSeat waitstate end -gEventScript_RecordCenter_Spot0:: @ 827741D +EventScript_RecordCenter_Spot0:: @ 827741D setvar VAR_0x8005, 0 - special EventScript_RecordMixingPlayerSpotTriggered + special RecordMixingPlayerSpotTriggered waitstate compare VAR_TEMP_1, 0 goto_if_ne RecordCorner_EventScript_277471 end -gEventScript_RecordCenter_Spot1:: @ 8277432 +EventScript_RecordCenter_Spot1:: @ 8277432 setvar VAR_0x8005, 1 - special EventScript_RecordMixingPlayerSpotTriggered + special RecordMixingPlayerSpotTriggered waitstate compare VAR_TEMP_1, 0 goto_if_ne RecordCorner_EventScript_277471 end -gEventScript_RecordCenter_Spot2:: @ 8277447 +EventScript_RecordCenter_Spot2:: @ 8277447 setvar VAR_0x8005, 2 - special EventScript_RecordMixingPlayerSpotTriggered + special RecordMixingPlayerSpotTriggered waitstate compare VAR_TEMP_1, 0 goto_if_ne RecordCorner_EventScript_277471 end -gEventScript_RecordCenter_Spot3:: @ 827745C +EventScript_RecordCenter_Spot3:: @ 827745C setvar VAR_0x8005, 3 - special EventScript_RecordMixingPlayerSpotTriggered + special RecordMixingPlayerSpotTriggered waitstate compare VAR_TEMP_1, 0 goto_if_ne RecordCorner_EventScript_277471 @@ -969,22 +969,22 @@ RecordCorner_EventScript_2774E0:: @ 82774E0 closemessage end -gEventScript_ConfirmLeaveTradeRoom:: @ 82774EF +EventScript_ConfirmLeaveTradeRoom:: @ 82774EF msgbox Text_TerminateLinkConfirmation, MSGBOX_YESNO compare VAR_RESULT, 1 - goto_if_eq gEventScript_TerminateLink + goto_if_eq EventScript_TerminateLink erasebox 0, 0, 29, 19 releaseall end -gEventScript_TerminateLink:: @ 8277509 +EventScript_TerminateLink:: @ 8277509 messageautoscroll Text_TerminateLinkPleaseWait waitmessage - special EventScript_ExitLinkRoom + special ExitLinkRoom end -gEventScript_DoLinkRoomExit:: @ 8277513 - special EventScript_CleanupLinkRoomState +EventScript_DoLinkRoomExit:: @ 8277513 + special CleanupLinkRoomState special sub_80AF9F8 waitstate end diff --git a/data/specials.inc b/data/specials.inc index e13a23ab0..e5f0b1f27 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -12,8 +12,8 @@ gSpecials:: @ 81DBA64 def_special SetCableClubWarp def_special sub_80AF948 def_special sub_80AF9F8 - def_special EventScript_CleanupLinkRoomState - def_special EventScript_ExitLinkRoom + def_special CleanupLinkRoomState + def_special ExitLinkRoom def_special sub_80E8E18 def_special sub_80E8BC8 def_special sub_80E9068 @@ -35,14 +35,14 @@ gSpecials:: @ 81DBA64 def_special sub_80E91F8 def_special sub_80EA30C def_special DoSecretBasePCTurnOffEffect - def_special EventScript_RecordMixingPlayerSpotTriggered + def_special RecordMixingPlayerSpotTriggered def_special sub_80B2DA4 def_special sub_80B2E4C def_special sub_80B2E74 def_special sub_80B2EA8 def_special CloseLink - def_special EventScript_ColosseumPlayerSpotTriggered - def_special EventScript_PlayerEnteredTradeSeat + def_special ColosseumPlayerSpotTriggered + def_special PlayerEnteredTradeSeat def_special nullsub_37 def_special sub_80B3254 def_special sub_80B2FD8 @@ -50,7 +50,7 @@ gSpecials:: @ 81DBA64 def_special SpawnLinkPartnerEventObject def_special SavePlayerParty def_special LoadPlayerParty - def_special EventScript_ChooseHalfPartyForBattle + def_special ChooseHalfPartyForBattle def_special sp02A_crash_sound def_special EventObjectInteractionGetBerryTreeData def_special EventObjectInteractionGetBerryName diff --git a/include/global.h b/include/global.h index 6843b4216..1b0b0afa3 100644 --- a/include/global.h +++ b/include/global.h @@ -910,7 +910,7 @@ struct MapPosition struct TradeRoomPlayer { u8 playerId; - u8 isSelf; + u8 isLocalPlayer; u8 c; u8 facing; struct MapPosition pos; diff --git a/include/overworld.h b/include/overworld.h index 9434d5c28..ea361e25b 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -48,7 +48,7 @@ extern u16 *gBGTilemapBuffers3; extern u16 gHeldKeyCodeToSend; extern void (*gFieldCallback)(void); extern bool8 (*gFieldCallback2)(void); -extern u8 gLinkSelfPlayerId; +extern u8 LocalLinkPlayerId; extern u8 gFieldLinkPlayerCount; // Exported ROM declarations diff --git a/include/record_mixing.h b/include/record_mixing.h index d02b77f9c..4cd231e8a 100644 --- a/include/record_mixing.h +++ b/include/record_mixing.h @@ -7,7 +7,7 @@ struct PlayerHallRecords struct RankingHall2P twoPlayers[2]; }; -void EventScript_RecordMixingPlayerSpotTriggered(void); +void RecordMixingPlayerSpotTriggered(void); void GetPlayerHallRecords(struct PlayerHallRecords *dst); #endif //GUARD_RECORD_MIXING_H diff --git a/src/cable_club.c b/src/cable_club.c index 05c19c9ae..83e1e55dd 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -352,7 +352,7 @@ static void sub_80B2918(u8 taskId) else { gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - gLinkSelfPlayerId = GetMultiplayerId(); + LocalLinkPlayerId = GetMultiplayerId(); sub_800AA04(gFieldLinkPlayerCount); card = (struct TrainerCard *)gBlockSendBuffer; TrainerCard_GenerateCardForPlayer(card); @@ -399,7 +399,7 @@ static void sub_80B2A08(u8 taskId) else { gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - gLinkSelfPlayerId = GetMultiplayerId(); + LocalLinkPlayerId = GetMultiplayerId(); sub_800AA04(gFieldLinkPlayerCount); card = (struct TrainerCard *)gBlockSendBuffer; TrainerCard_GenerateCardForPlayer(card); @@ -972,7 +972,7 @@ void sub_80B360C(void) if (gSpecialVar_0x8004 == 1 || gSpecialVar_0x8004 == 2) { - UpdatePlayerLinkBattleRecords(gLinkSelfPlayerId ^ 1); + UpdatePlayerLinkBattleRecords(LocalLinkPlayerId ^ 1); if (gWirelessCommType) { switch (gBattleOutcome) @@ -999,7 +999,7 @@ void sub_80B360C(void) SetMainCallback2(sub_80A0514); } -void EventScript_CleanupLinkRoomState(void) +void CleanupLinkRoomState(void) { if (gSpecialVar_0x8004 == 1 || gSpecialVar_0x8004 == 2 || gSpecialVar_0x8004 == 5 || gSpecialVar_0x8004 == 9) { @@ -1009,13 +1009,11 @@ void EventScript_CleanupLinkRoomState(void) SetWarpDestinationToDynamicWarp(0x7F); } -void EventScript_ExitLinkRoom(void) +void ExitLinkRoom(void) { QueueExitLinkRoomKey(); } -// I can't find anything that would set data[0] to a value before this -// stask starts. Is it a bug? static void sub_80B3728(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -1133,7 +1131,7 @@ static void sub_80B3894(u8 taskId) } // Note: VAR_0x8005 is set to the ID of the trade seat. -void EventScript_PlayerEnteredTradeSeat(void) +void PlayerEnteredTradeSeat(void) { if (gWirelessCommType != 0) { @@ -1156,7 +1154,7 @@ void nullsub_37(void) } // Note: VAR_0x8005 is set to the ID of the player spot. -void EventScript_ColosseumPlayerSpotTriggered(void) +void ColosseumPlayerSpotTriggered(void) { gLinkType = 0x2211; diff --git a/src/overworld.c b/src/overworld.c index b5b1b04a6..95766805c 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -82,26 +82,26 @@ #define FACING_FORCED_RIGHT 10 // event scripts -extern const u8 gEventScript_WhiteOut[]; -extern const u8 gEventScript_ResetMrBriney[]; -extern const u8 gEventScript_DoLinkRoomExit[]; +extern const u8 EventScript_WhiteOut[]; +extern const u8 EventScript_ResetMrBriney[]; +extern const u8 EventScript_DoLinkRoomExit[]; extern const u8 gEventScript_TradeRoom_TooBusyToNotice[]; extern const u8 gEventScript_TradeRoom_ReadTrainerCard_NoColor[]; extern const u8 gEventScript_TradeRoom_ReadTrainerCard_Normal[]; -extern const u8 gEventScript_DoubleBattleColosseum_PlayerSpot0[]; -extern const u8 gEventScript_DoubleBattleColosseum_PlayerSpot1[]; -extern const u8 gEventScript_DoubleBattleColosseum_PlayerSpot2[]; -extern const u8 gEventScript_DoubleBattleColosseum_PlayerSpot3[]; -extern const u8 gEventScript_RecordCenter_Spot0[]; -extern const u8 gEventScript_RecordCenter_Spot1[]; -extern const u8 gEventScript_RecordCenter_Spot2[]; -extern const u8 gEventScript_RecordCenter_Spot3[]; -extern const u8 gEventScript_SingleBattleColosseum_PlayerSpot0[]; -extern const u8 gEventScript_SingleBattleColosseum_PlayerSpot1[]; -extern const u8 gEventScript_TradeCenter_Chair1[]; -extern const u8 gEventScript_TradeCenter_Chair0[]; -extern const u8 gEventScript_ConfirmLeaveTradeRoom[]; -extern const u8 gEventScript_TerminateLink[]; +extern const u8 EventScript_DoubleBattleColosseum_PlayerSpot0[]; +extern const u8 EventScript_DoubleBattleColosseum_PlayerSpot1[]; +extern const u8 EventScript_DoubleBattleColosseum_PlayerSpot2[]; +extern const u8 EventScript_DoubleBattleColosseum_PlayerSpot3[]; +extern const u8 EventScript_RecordCenter_Spot0[]; +extern const u8 EventScript_RecordCenter_Spot1[]; +extern const u8 EventScript_RecordCenter_Spot2[]; +extern const u8 EventScript_RecordCenter_Spot3[]; +extern const u8 EventScript_SingleBattleColosseum_PlayerSpot0[]; +extern const u8 EventScript_SingleBattleColosseum_PlayerSpot1[]; +extern const u8 EventScript_TradeCenter_Chair1[]; +extern const u8 EventScript_TradeCenter_Chair0[]; +extern const u8 EventScript_ConfirmLeaveTradeRoom[]; +extern const u8 EventScript_TerminateLink[]; extern const struct MapLayout *const gMapLayouts[]; extern const struct MapHeader *const *const gMapGroups[]; @@ -186,7 +186,7 @@ static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStr static u16 GetCenterScreenMetatileBehavior(void); // IWRAM bss vars -IWRAM_DATA static void *sUnusedCallback; +IWRAM_DATA static void *sUnusedOverworldCallback; IWRAM_DATA static u8 sPlayerTradingStates[4]; // This callback is called with a player's key code. It then returns an // adjusted key code, effectively intercepting the input before anything @@ -203,7 +203,7 @@ u16 *gBGTilemapBuffers3; u16 gHeldKeyCodeToSend; void (*gFieldCallback)(void); bool8 (*gFieldCallback2)(void); -u8 gLinkSelfPlayerId; // This is our player id in a multiplayer mode. +u8 LocalLinkPlayerId; // This is our player id in a multiplayer mode. u8 gFieldLinkPlayerCount; // EWRAM vars @@ -383,7 +383,7 @@ static void (*const gMovementStatusHandler[])(struct LinkPlayerEventObject *, st // code void DoWhiteOut(void) { - ScriptContext2_RunNewScript(gEventScript_WhiteOut); + ScriptContext2_RunNewScript(EventScript_WhiteOut); SetMoney(&gSaveBlock1Ptr->money, GetMoney(&gSaveBlock1Ptr->money) / 2); HealPlayerParty(); Overworld_ResetStateAfterWhiteOut(); @@ -409,7 +409,7 @@ void Overworld_ResetStateAfterTeleport(void) FlagClear(FLAG_SYS_SAFARI_MODE); FlagClear(FLAG_SYS_USE_STRENGTH); FlagClear(FLAG_SYS_USE_FLASH); - ScriptContext2_RunNewScript(gEventScript_ResetMrBriney); + ScriptContext2_RunNewScript(EventScript_ResetMrBriney); } void Overworld_ResetStateAfterDigEscRope(void) @@ -1122,7 +1122,7 @@ u16 GetCurrLocationDefaultMusic(void) } else { - if (gSaveBlock1Ptr->pos.x < LINK_KEY_CODE_START_BUTTON) + if (gSaveBlock1Ptr->pos.x < 24) return MUS_DOORO_X1; else return MUS_GRANROAD; @@ -1265,7 +1265,7 @@ static void PlayAmbientCry(void) && !MetatileBehavior_IsSurfableWaterOrUnderwater(MapGridGetMetatileBehaviorAt(x, y))) return; pan = (Random() % 88) + 212; - volume = (Random() % LINK_KEY_CODE_UNK_8) + 50; + volume = (Random() % 30) + 50; PlayCry2(sAmbientCrySpecies, pan, volume, 1); } @@ -1501,7 +1501,7 @@ void SetMainCallback1(MainCallback cb) // This function is never called. void SetUnusedCallback(void *func) { - sUnusedCallback = func; + sUnusedOverworldCallback = func; } static bool8 map_post_load_hook_exec(void) @@ -2194,13 +2194,13 @@ static void sub_8086A80(void) static void SetCameraToTrackGuestPlayer(void) { - InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLinkSelfPlayerId)); + InitCameraUpdateCallback(GetSpriteForLinkedPlayer(LocalLinkPlayerId)); } // Duplicate function. static void SetCameraToTrackGuestPlayer_2(void) { - InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLinkSelfPlayerId)); + InitCameraUpdateCallback(GetSpriteForLinkedPlayer(LocalLinkPlayerId)); } static void sub_8086AE4(void) @@ -2210,7 +2210,7 @@ static void sub_8086AE4(void) // This is a hack of some kind; it's undone in sub_8086B14, which is called // soon after this function. - sub_8088B3C(x + gLinkSelfPlayerId, y); + sub_8088B3C(x + LocalLinkPlayerId, y); } static void sub_8086B14(void) @@ -2219,7 +2219,7 @@ static void sub_8086B14(void) u16 x, y; GetCameraFocusCoords(&x, &y); - x -= gLinkSelfPlayerId; + x -= LocalLinkPlayerId; for (i = 0; i < gFieldLinkPlayerCount; i++) { @@ -2242,7 +2242,7 @@ static void CB1_UpdateLinkState(void) { if (gWirelessCommType == 0 || !IsRfuRecvQueueEmpty() || !IsSendingKeysToLink()) { - u8 selfId = gLinkSelfPlayerId; + u8 selfId = LocalLinkPlayerId; UpdateAllLinkPlayers(gLinkPartnersHeldKeys, selfId); // Note: Because guestId is between 0 and 4, while the smallest key code is @@ -2307,7 +2307,7 @@ static bool32 AreAllPlayersInState(u16 tradingState) return TRUE; } -static bool32 AreAnyPlayersInState(u16 tradingState) +static bool32 AreAnyPlayersInTradingState(u16 tradingState) { s32 i; s32 count = gFieldLinkPlayerCount; @@ -2329,17 +2329,17 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay { *forceFacing = GetDirectionForEventScript(script); sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; - if (trainer->isSelf) + if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); sub_8087530(script); } return; } - if (AreAnyPlayersInState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) + if (AreAnyPlayersInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) { sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; - if (trainer->isSelf) + if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); sub_8087584(); @@ -2353,7 +2353,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay if (sub_8087340_2(trainer)) { sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; - if (trainer->isSelf) + if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); InitLinkRoomStartMenuScript(); @@ -2364,7 +2364,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay if (PlayerIsAtSouthExit(trainer) == TRUE) { sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; - if (trainer->isSelf) + if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); CreateConfirmLeaveTradeRoomPrompt(); @@ -2376,7 +2376,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay if (script) { sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; - if (trainer->isSelf) + if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToEventScript); InitMenuBasedScript(script); @@ -2387,7 +2387,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay if (sub_8087340(trainer)) { sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; - if (trainer->isSelf) + if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToRecvQueue); sub_8087510(); @@ -2398,7 +2398,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay if (sub_8087340(trainer)) { sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; - if (trainer->isSelf) + if (trainer->isLocalPlayer) { SetKeyInterceptCallback(KeyInterCB_DeferToSendQueue); sub_8087510(); @@ -2418,7 +2418,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay break; case LINK_KEY_CODE_UNK_4: sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_IDLE; - if (trainer->isSelf) + if (trainer->isLocalPlayer) SetKeyInterceptCallback(KeyInterCB_SelfIdle); break; case LINK_KEY_CODE_UNK_7: @@ -2631,7 +2631,7 @@ static u16 KeyInterCB_WaitForPlayersToExit(u32 keyOrPlayerId) CheckRfuKeepAliveTimer(); if (AreAllPlayersInState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) { - ScriptContext1_SetupScript(gEventScript_DoLinkRoomExit); + ScriptContext1_SetupScript(EventScript_DoLinkRoomExit); SetKeyInterceptCallback(KeyInterCB_SendNothing); } return LINK_KEY_CODE_EMPTY; @@ -2651,11 +2651,11 @@ static u16 KeyInterCB_SendNothing_2(u32 key) u32 sub_8087214(void) { - if (AreAnyPlayersInState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) + if (AreAnyPlayersInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) return 2; - if (sPlayerKeyInterceptCallback == sub_8087170 && sPlayerTradingStates[gLinkSelfPlayerId] != PLAYER_TRADING_STATE_UNK_2) + if (sPlayerKeyInterceptCallback == sub_8087170 && sPlayerTradingStates[LocalLinkPlayerId] != PLAYER_TRADING_STATE_UNK_2) return 0; - if (sPlayerKeyInterceptCallback == KeyInterCB_DoNothingAndKeepAlive && sPlayerTradingStates[gLinkSelfPlayerId] == PLAYER_TRADING_STATE_BUSY) + if (sPlayerKeyInterceptCallback == KeyInterCB_DoNothingAndKeepAlive && sPlayerTradingStates[LocalLinkPlayerId] == PLAYER_TRADING_STATE_BUSY) return 2; if (AreAllPlayersInState(PLAYER_TRADING_STATE_UNK_2) != FALSE) return 1; @@ -2664,7 +2664,7 @@ u32 sub_8087214(void) bool32 sub_808727C(void) { - return AreAnyPlayersInState(PLAYER_TRADING_STATE_EXITING_ROOM); + return AreAnyPlayersInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM); } u16 sub_8087288(void) @@ -2698,7 +2698,7 @@ static void LoadTradeRoomPlayer(s32 linkPlayerId, s32 myPlayerId, struct TradeRo s16 x, y; trainer->playerId = linkPlayerId; - trainer->isSelf = (linkPlayerId == myPlayerId) ? 1 : 0; + trainer->isLocalPlayer = (linkPlayerId == myPlayerId) ? 1 : 0; trainer->c = gLinkPlayerEventObjects[linkPlayerId].movementMode; trainer->facing = GetLinkPlayerFacingDirection(linkPlayerId); GetLinkPlayerCoords(linkPlayerId, &x, &y); @@ -2762,7 +2762,7 @@ static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *player) if (linkPlayerId != 4) { - if (!player->isSelf) + if (!player->isLocalPlayer) return gEventScript_TradeRoom_TooBusyToNotice; else if (sPlayerTradingStates[linkPlayerId] != PLAYER_TRADING_STATE_IDLE) return gEventScript_TradeRoom_TooBusyToNotice; @@ -2779,29 +2779,29 @@ static const u8 *TryInteractWithPlayer(struct TradeRoomPlayer *player) // these event scripts runs. static u16 GetDirectionForEventScript(const u8 *script) { - if (script == gEventScript_DoubleBattleColosseum_PlayerSpot0) + if (script == EventScript_DoubleBattleColosseum_PlayerSpot0) return FACING_FORCED_RIGHT; - else if (script == gEventScript_DoubleBattleColosseum_PlayerSpot1) + else if (script == EventScript_DoubleBattleColosseum_PlayerSpot1) return FACING_FORCED_LEFT; - else if (script == gEventScript_DoubleBattleColosseum_PlayerSpot2) + else if (script == EventScript_DoubleBattleColosseum_PlayerSpot2) return FACING_FORCED_RIGHT; - else if (script == gEventScript_DoubleBattleColosseum_PlayerSpot3) + else if (script == EventScript_DoubleBattleColosseum_PlayerSpot3) return FACING_FORCED_LEFT; - else if (script == gEventScript_RecordCenter_Spot0) + else if (script == EventScript_RecordCenter_Spot0) return FACING_FORCED_RIGHT; - else if (script == gEventScript_RecordCenter_Spot1) + else if (script == EventScript_RecordCenter_Spot1) return FACING_FORCED_LEFT; - else if (script == gEventScript_RecordCenter_Spot2) + else if (script == EventScript_RecordCenter_Spot2) return FACING_FORCED_RIGHT; - else if (script == gEventScript_RecordCenter_Spot3) + else if (script == EventScript_RecordCenter_Spot3) return FACING_FORCED_LEFT; - else if (script == gEventScript_SingleBattleColosseum_PlayerSpot0) + else if (script == EventScript_SingleBattleColosseum_PlayerSpot0) return FACING_FORCED_RIGHT; - else if (script == gEventScript_SingleBattleColosseum_PlayerSpot1) + else if (script == EventScript_SingleBattleColosseum_PlayerSpot1) return FACING_FORCED_LEFT; - else if (script == gEventScript_TradeCenter_Chair0) + else if (script == EventScript_TradeCenter_Chair0) return FACING_FORCED_RIGHT; - else if (script == gEventScript_TradeCenter_Chair1) + else if (script == EventScript_TradeCenter_Chair1) return FACING_FORCED_LEFT; else return FACING_NONE; @@ -2829,7 +2829,7 @@ static void sub_8087530(const u8 *script) static void CreateConfirmLeaveTradeRoomPrompt(void) { PlaySE(SE_WIN_OPEN); - ScriptContext1_SetupScript(gEventScript_ConfirmLeaveTradeRoom); + ScriptContext1_SetupScript(EventScript_ConfirmLeaveTradeRoom); ScriptContext2_Enable(); } @@ -2842,7 +2842,7 @@ static void InitMenuBasedScript(const u8 *script) static void sub_8087584(void) { - ScriptContext1_SetupScript(gEventScript_TerminateLink); + ScriptContext1_SetupScript(EventScript_TerminateLink); ScriptContext2_Enable(); } @@ -3046,8 +3046,11 @@ static void SetPlayerFacingDirection(u8 linkPlayerId, u8 facing) if (linkPlayerEventObj->active) { if (facing > FACING_FORCED_RIGHT) + { eventObj->triggerGroundEffectsOnMove = 1; - else { + } + else + { // This is a hack to split this code onto two separate lines, without declaring a local variable. // C++ style inline variables would be nice here. #define TEMP gLinkPlayerMovementModes[linkPlayerEventObj->movementMode](linkPlayerEventObj, eventObj, facing) @@ -3131,19 +3134,19 @@ static void MovementStatusHandler_TryAdvanceScript(struct LinkPlayerEventObject // even for Left/Right codes. static u8 FlipVerticalAndClearForced(u8 newFacing, u8 oldFacing) { - switch (newFacing - 1) + switch (newFacing) { - case (FACING_UP - 1): - case (FACING_FORCED_UP - 1): + case FACING_UP: + case FACING_FORCED_UP: return DIR_NORTH; - case (FACING_DOWN - 1): - case (FACING_FORCED_DOWN - 1): + case FACING_DOWN: + case FACING_FORCED_DOWN: return DIR_SOUTH; - case (FACING_LEFT - 1): - case (FACING_FORCED_LEFT - 1): + case FACING_LEFT: + case FACING_FORCED_LEFT: return DIR_WEST; - case (FACING_RIGHT - 1): - case (FACING_FORCED_RIGHT - 1): + case FACING_RIGHT: + case FACING_FORCED_RIGHT: return DIR_EAST; } return oldFacing; diff --git a/src/record_mixing.c b/src/record_mixing.c index 4c0ada830..7bbb4286d 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -171,7 +171,7 @@ static const u8 gUnknown_0858CFBE[3][4] = #define BUFFER_CHUNK_SIZE 200 // Note: VAR_0x8005 contains the spotId. -void EventScript_RecordMixingPlayerSpotTriggered(void) +void RecordMixingPlayerSpotTriggered(void) { sub_80B37D4(Task_RecordMixing_Main); } @@ -984,7 +984,7 @@ static void Task_DoRecordMixing(u8 taskId) DestroyTask(taskId); break; - // Mixing Emerald/FireRed/LeafGreen records. + // Mixing Emerald records. case 6: if (!sub_801048C(FALSE)) { diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index 8f95e6719..19f032fd0 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -188,7 +188,7 @@ extern u8 gUnknown_02022C3E; extern u16 gUnknown_02022C3C; extern u8 gUnknown_02022C20[]; extern u8 gFieldLinkPlayerCount; -extern u8 gLinkSelfPlayerId; +extern u8 LocalLinkPlayerId; // IWRAM vars IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0; @@ -1641,7 +1641,7 @@ void sub_8014304(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 arg4) gSpecialVar_0x8004 = arg4; VarSet(VAR_0x4087, arg4); gFieldLinkPlayerCount = GetLinkPlayerCount(); - gLinkSelfPlayerId = GetMultiplayerId(); + LocalLinkPlayerId = GetMultiplayerId(); SetCableClubWarp(); SetWarpDestination(mapGroup, mapNum, -1, x, y); WarpIntoMap(); diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c index f971d8487..7d6020c7a 100755 --- a/src/script_pokemon_util_80F87D8.c +++ b/src/script_pokemon_util_80F87D8.c @@ -641,9 +641,9 @@ void ScriptSetMonMoveSlot(u8 monIndex, u16 move, u8 slot) SetMonMoveSlot(&gPlayerParty[monIndex], move, slot); } -// Note: When control returns to the event script, gSpecialVar_Result be +// Note: When control returns to the event script, gSpecialVar_Result will be // TRUE if the party selection was successful. -void EventScript_ChooseHalfPartyForBattle(void) +void ChooseHalfPartyForBattle(void) { gMain.savedCallback = CB2_ReturnFromChooseHalfParty; VarSet(VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_DOUBLE_COLOSSEUM); diff --git a/src/start_menu.c b/src/start_menu.c index dfe3b08be..352f94bff 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -84,7 +84,7 @@ EWRAM_DATA static bool8 sSavingComplete = FALSE; EWRAM_DATA static u8 sSaveInfoWindowId = 0; // Extern variables. -extern u8 gLinkSelfPlayerId; +extern u8 LocalLinkPlayerId; // Extern functions in not decompiled files. extern void sub_80AF688(void); @@ -734,7 +734,7 @@ static bool8 StartMenuLinkModePlayerNameCallback(void) { PlayRainSoundEffect(); CleanupOverworldWindowsAndTilemaps(); - ShowTrainerCardInLink(gLinkSelfPlayerId, CB2_ReturnToFieldWithOpenMenu); + ShowTrainerCardInLink(LocalLinkPlayerId, CB2_ReturnToFieldWithOpenMenu); return TRUE; } -- cgit v1.2.3 From accea672f16cb74b0ec16e0e740cf9f67a651dfb Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 26 Feb 2019 22:04:44 -0500 Subject: Incorporate feedback --- common_syms/overworld.txt | 2 +- data/maps/TradeCenter/map.json | 1 - include/link.h | 2 +- include/overworld.h | 2 +- include/save.h | 4 ++-- src/berry_blender.c | 9 ++------- src/cable_club.c | 8 ++++---- src/link.c | 2 +- src/overworld.c | 30 +++++++++++++++--------------- src/record_mixing.c | 2 +- src/rom_8011DC0.c | 4 ++-- src/start_menu.c | 4 ++-- 12 files changed, 32 insertions(+), 38 deletions(-) diff --git a/common_syms/overworld.txt b/common_syms/overworld.txt index 1ba43d7cf..e136f5444 100644 --- a/common_syms/overworld.txt +++ b/common_syms/overworld.txt @@ -4,5 +4,5 @@ gBGTilemapBuffers3 gHeldKeyCodeToSend gFieldCallback gFieldCallback2 -LocalLinkPlayerId +gLocalLinkPlayerId gFieldLinkPlayerCount diff --git a/data/maps/TradeCenter/map.json b/data/maps/TradeCenter/map.json index 9d196c762..3e47ca41b 100644 --- a/data/maps/TradeCenter/map.json +++ b/data/maps/TradeCenter/map.json @@ -46,7 +46,6 @@ ], "coord_events": [ { - "comment": "This is trade seat #1.", "type": "trigger", "x": 4, "y": 5, diff --git a/include/link.h b/include/link.h index 83deab88f..182ee68f4 100644 --- a/include/link.h +++ b/include/link.h @@ -299,7 +299,7 @@ extern struct LinkPlayer gLocalLinkPlayer; bool32 Link_AnyPartnersPlayingRubyOrSapphire(void); bool32 sub_800A03C(void); -void SetLocalLinkPlayerId(u8); +void SetgLocalLinkPlayerId(u8); u8 GetSavedPlayerCount(void); void sub_8009FAC(void); bool8 sub_800A4D8(u8 a0); diff --git a/include/overworld.h b/include/overworld.h index ea361e25b..bf1d93901 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -48,7 +48,7 @@ extern u16 *gBGTilemapBuffers3; extern u16 gHeldKeyCodeToSend; extern void (*gFieldCallback)(void); extern bool8 (*gFieldCallback2)(void); -extern u8 LocalLinkPlayerId; +extern u8 gLocalLinkPlayerId; extern u8 gFieldLinkPlayerCount; // Exported ROM declarations diff --git a/include/save.h b/include/save.h index de2dd5129..7ce86de70 100644 --- a/include/save.h +++ b/include/save.h @@ -83,8 +83,8 @@ bool8 sub_8153380(void); bool8 sub_81533AC(void); u8 sub_81533E0(void); u8 sub_8153408(void); -u8 FullSaveGame(void); //FullSaveGame -bool8 CheckSaveFile(void); //CheckSaveFile +u8 FullSaveGame(void); +bool8 CheckSaveFile(void); u8 Save_LoadGameData(u8 a1); u16 sub_815355C(void); u8 sub_81534D0(u8); diff --git a/src/berry_blender.c b/src/berry_blender.c index dd8117f08..87d24e717 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -34,6 +34,8 @@ #include "battle_records.h" #include "graphics.h" #include "new_game.h" +#include "save.h" +#include "link.h" #define BLENDER_SCORE_BEST 0 #define BLENDER_SCORE_GOOD 1 @@ -140,15 +142,8 @@ extern const u8 gText_Space[]; extern const u8 gText_BlenderMaxSpeedRecord[]; extern const u8 gText_234Players[]; -extern void sub_800A418(void); -extern u8 sub_800A9D8(void); extern void sub_81AABF0(void (*callback)(void)); extern void sub_800B4C0(void); -extern void ClearLinkCallback(void); -extern void sub_8009F8C(void); -extern void FullSaveGame(void); -extern bool8 CheckSaveFile(void); -extern void sub_80EECEC(void); // this file's functions static void BerryBlender_SetBackgroundsPos(void); diff --git a/src/cable_club.c b/src/cable_club.c index 83e1e55dd..f504ad8a8 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -352,7 +352,7 @@ static void sub_80B2918(u8 taskId) else { gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - LocalLinkPlayerId = GetMultiplayerId(); + gLocalLinkPlayerId = GetMultiplayerId(); sub_800AA04(gFieldLinkPlayerCount); card = (struct TrainerCard *)gBlockSendBuffer; TrainerCard_GenerateCardForPlayer(card); @@ -399,7 +399,7 @@ static void sub_80B2A08(u8 taskId) else { gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - LocalLinkPlayerId = GetMultiplayerId(); + gLocalLinkPlayerId = GetMultiplayerId(); sub_800AA04(gFieldLinkPlayerCount); card = (struct TrainerCard *)gBlockSendBuffer; TrainerCard_GenerateCardForPlayer(card); @@ -972,7 +972,7 @@ void sub_80B360C(void) if (gSpecialVar_0x8004 == 1 || gSpecialVar_0x8004 == 2) { - UpdatePlayerLinkBattleRecords(LocalLinkPlayerId ^ 1); + UpdatePlayerLinkBattleRecords(gLocalLinkPlayerId ^ 1); if (gWirelessCommType) { switch (gBattleOutcome) @@ -1028,7 +1028,7 @@ static void sub_80B3728(u8 taskId) if (IsFieldMessageBoxHidden()) { sub_8087288(); - SetLocalLinkPlayerId(gSpecialVar_0x8005); + SetgLocalLinkPlayerId(gSpecialVar_0x8005); task->data[0] = 2; } break; diff --git a/src/link.c b/src/link.c index 72ac3e878..cf06e4958 100644 --- a/src/link.c +++ b/src/link.c @@ -302,7 +302,7 @@ void LinkTestScreen(void) SetMainCallback2(CB2_LinkTest); } -void SetLocalLinkPlayerId(u8 playerId) +void SetgLocalLinkPlayerId(u8 playerId) { gLocalLinkPlayer.id = playerId; } diff --git a/src/overworld.c b/src/overworld.c index 95766805c..63143b7b4 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -203,7 +203,7 @@ u16 *gBGTilemapBuffers3; u16 gHeldKeyCodeToSend; void (*gFieldCallback)(void); bool8 (*gFieldCallback2)(void); -u8 LocalLinkPlayerId; // This is our player id in a multiplayer mode. +u8 gLocalLinkPlayerId; // This is our player id in a multiplayer mode. u8 gFieldLinkPlayerCount; // EWRAM vars @@ -2194,13 +2194,13 @@ static void sub_8086A80(void) static void SetCameraToTrackGuestPlayer(void) { - InitCameraUpdateCallback(GetSpriteForLinkedPlayer(LocalLinkPlayerId)); + InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLocalLinkPlayerId)); } // Duplicate function. static void SetCameraToTrackGuestPlayer_2(void) { - InitCameraUpdateCallback(GetSpriteForLinkedPlayer(LocalLinkPlayerId)); + InitCameraUpdateCallback(GetSpriteForLinkedPlayer(gLocalLinkPlayerId)); } static void sub_8086AE4(void) @@ -2210,7 +2210,7 @@ static void sub_8086AE4(void) // This is a hack of some kind; it's undone in sub_8086B14, which is called // soon after this function. - sub_8088B3C(x + LocalLinkPlayerId, y); + sub_8088B3C(x + gLocalLinkPlayerId, y); } static void sub_8086B14(void) @@ -2219,7 +2219,7 @@ static void sub_8086B14(void) u16 x, y; GetCameraFocusCoords(&x, &y); - x -= LocalLinkPlayerId; + x -= gLocalLinkPlayerId; for (i = 0; i < gFieldLinkPlayerCount; i++) { @@ -2242,7 +2242,7 @@ static void CB1_UpdateLinkState(void) { if (gWirelessCommType == 0 || !IsRfuRecvQueueEmpty() || !IsSendingKeysToLink()) { - u8 selfId = LocalLinkPlayerId; + u8 selfId = gLocalLinkPlayerId; UpdateAllLinkPlayers(gLinkPartnersHeldKeys, selfId); // Note: Because guestId is between 0 and 4, while the smallest key code is @@ -2296,7 +2296,7 @@ static void ResetAllTradingStates(void) } // Returns true if all connected players are in tradingState. -static bool32 AreAllPlayersInState(u16 tradingState) +static bool32 AreAllPlayersInTradingState(u16 tradingState) { s32 i; s32 count = gFieldLinkPlayerCount; @@ -2307,7 +2307,7 @@ static bool32 AreAllPlayersInState(u16 tradingState) return TRUE; } -static bool32 AreAnyPlayersInTradingState(u16 tradingState) +static bool32 IsAnyPlayerInTradingState(u16 tradingState) { s32 i; s32 count = gFieldLinkPlayerCount; @@ -2336,7 +2336,7 @@ static void HandleLinkPlayerKeyInput(u32 playerId, u16 key, struct TradeRoomPlay } return; } - if (AreAnyPlayersInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) + if (IsAnyPlayerInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) { sPlayerTradingStates[playerId] = PLAYER_TRADING_STATE_BUSY; if (trainer->isLocalPlayer) @@ -2629,7 +2629,7 @@ static u16 KeyInterCB_WaitForPlayersToExit(u32 keyOrPlayerId) // CB1_UpdateLinkState. if (sPlayerTradingStates[keyOrPlayerId] != PLAYER_TRADING_STATE_EXITING_ROOM) CheckRfuKeepAliveTimer(); - if (AreAllPlayersInState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) + if (AreAllPlayersInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) { ScriptContext1_SetupScript(EventScript_DoLinkRoomExit); SetKeyInterceptCallback(KeyInterCB_SendNothing); @@ -2651,20 +2651,20 @@ static u16 KeyInterCB_SendNothing_2(u32 key) u32 sub_8087214(void) { - if (AreAnyPlayersInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) + if (IsAnyPlayerInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM) == TRUE) return 2; - if (sPlayerKeyInterceptCallback == sub_8087170 && sPlayerTradingStates[LocalLinkPlayerId] != PLAYER_TRADING_STATE_UNK_2) + if (sPlayerKeyInterceptCallback == sub_8087170 && sPlayerTradingStates[gLocalLinkPlayerId] != PLAYER_TRADING_STATE_UNK_2) return 0; - if (sPlayerKeyInterceptCallback == KeyInterCB_DoNothingAndKeepAlive && sPlayerTradingStates[LocalLinkPlayerId] == PLAYER_TRADING_STATE_BUSY) + if (sPlayerKeyInterceptCallback == KeyInterCB_DoNothingAndKeepAlive && sPlayerTradingStates[gLocalLinkPlayerId] == PLAYER_TRADING_STATE_BUSY) return 2; - if (AreAllPlayersInState(PLAYER_TRADING_STATE_UNK_2) != FALSE) + if (AreAllPlayersInTradingState(PLAYER_TRADING_STATE_UNK_2) != FALSE) return 1; return 0; } bool32 sub_808727C(void) { - return AreAnyPlayersInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM); + return IsAnyPlayerInTradingState(PLAYER_TRADING_STATE_EXITING_ROOM); } u16 sub_8087288(void) diff --git a/src/record_mixing.c b/src/record_mixing.c index aafd7284b..e58fdcc4e 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -324,7 +324,7 @@ static void Task_RecordMixing_Main(u8 taskId) case 0: // init sSentRecord = malloc(sizeof(union PlayerRecords)); sReceivedRecords = malloc(sizeof(union PlayerRecords) * 4); - SetLocalLinkPlayerId(gSpecialVar_0x8005); + SetgLocalLinkPlayerId(gSpecialVar_0x8005); VarSet(VAR_TEMP_0, 1); gUnknown_03001130 = FALSE; PrepareExchangePacket(); diff --git a/src/rom_8011DC0.c b/src/rom_8011DC0.c index 0f3ebe633..3d85a9d1d 100644 --- a/src/rom_8011DC0.c +++ b/src/rom_8011DC0.c @@ -188,7 +188,7 @@ extern u8 gUnknown_02022C3E; extern u16 gUnknown_02022C3C; extern u8 gUnknown_02022C20[]; extern u8 gFieldLinkPlayerCount; -extern u8 LocalLinkPlayerId; +extern u8 gLocalLinkPlayerId; // IWRAM vars IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0; @@ -1641,7 +1641,7 @@ void sub_8014304(s8 mapGroup, s8 mapNum, s32 x, s32 y, u16 arg4) gSpecialVar_0x8004 = arg4; VarSet(VAR_0x4087, arg4); gFieldLinkPlayerCount = GetLinkPlayerCount(); - LocalLinkPlayerId = GetMultiplayerId(); + gLocalLinkPlayerId = GetMultiplayerId(); SetCableClubWarp(); SetWarpDestination(mapGroup, mapNum, -1, x, y); WarpIntoMap(); diff --git a/src/start_menu.c b/src/start_menu.c index 352f94bff..fb94fb3f7 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -84,7 +84,7 @@ EWRAM_DATA static bool8 sSavingComplete = FALSE; EWRAM_DATA static u8 sSaveInfoWindowId = 0; // Extern variables. -extern u8 LocalLinkPlayerId; +extern u8 gLocalLinkPlayerId; // Extern functions in not decompiled files. extern void sub_80AF688(void); @@ -734,7 +734,7 @@ static bool8 StartMenuLinkModePlayerNameCallback(void) { PlayRainSoundEffect(); CleanupOverworldWindowsAndTilemaps(); - ShowTrainerCardInLink(LocalLinkPlayerId, CB2_ReturnToFieldWithOpenMenu); + ShowTrainerCardInLink(gLocalLinkPlayerId, CB2_ReturnToFieldWithOpenMenu); return TRUE; } -- cgit v1.2.3 From b8a60b055b9261210874fef3cac7696d6a97f45f Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 26 Feb 2019 22:11:43 -0500 Subject: Fix previous merge --- data/event_scripts.s | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/event_scripts.s b/data/event_scripts.s index 257143ef5..d6bc782c4 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1148,7 +1148,7 @@ EventScript_WhiteOut:: @ 8271857 goto EventScript_ResetMrBriney end -EventScript_271862:: @ 8271862 +EventScript_ResetMrBriney:: @ 8271862 compare VAR_BRINEY_LOCATION, 1 goto_if_eq EventScript_MoveMrBrineyToHouse compare VAR_BRINEY_LOCATION, 2 -- cgit v1.2.3 From fe55580fe1e51c669033939125c939ed13a555d0 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 27 Feb 2019 03:42:04 -0500 Subject: Reverse engineer unusual weather events --- data/event_scripts.s | 56 +++++++++++----------- data/maps/Route105/scripts.inc | 8 ++-- data/maps/Route114/scripts.inc | 8 ++-- data/maps/Route115/scripts.inc | 8 ++-- data/maps/Route116/scripts.inc | 8 ++-- data/maps/Route118/scripts.inc | 8 ++-- data/maps/Route119_WeatherInstitute_2F/scripts.inc | 18 +++---- data/maps/Route125/scripts.inc | 8 ++-- data/maps/Route127/scripts.inc | 8 ++-- data/maps/Route129/scripts.inc | 8 ++-- data/specials.inc | 2 +- include/constants/flags.h | 2 +- include/constants/vars.h | 4 +- include/constants/weather.h | 26 ++++++++++ src/field_specials.c | 22 ++++----- src/match_call.c | 2 +- src/overworld.c | 2 +- src/region_map.c | 4 +- 18 files changed, 115 insertions(+), 87 deletions(-) diff --git a/data/event_scripts.s b/data/event_scripts.s index 55bbb7618..adecc3fcf 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -3188,7 +3188,7 @@ gUnknown_08273D1F:: @ 8273D1F gUnknown_08273D1F:: @ 8273D1F lockall - compare VAR_0x4037, 9 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START goto_if_ge Route105_EventScript_273D51 goto Route105_EventScript_273D5F end @@ -3200,7 +3200,7 @@ Route105_EventScript_273D31:: @ 8273D31 doweather call Route105_EventScript_273D6D special DrawWholeMapView - setvar VAR_0x4037, 0 + setvar VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_NONE setvar VAR_0x4039, 0 clearflag FLAG_SPECIAL_FLAG_0x4000 fadescreenswapbuffers 0 @@ -3218,23 +3218,23 @@ Route105_EventScript_273D5F:: @ 8273D5F end Route105_EventScript_273D6D:: @ 8273D6D - switch VAR_0x4037 - case 1, Route105_EventScript_273E23 - case 2, Route105_EventScript_273E36 - case 3, Route105_EventScript_273E49 - case 4, Route105_EventScript_273E5C - case 5, Route105_EventScript_273E6F - case 6, Route105_EventScript_273E82 - case 7, Route105_EventScript_273E95 - case 8, Route105_EventScript_273EA8 - case 9, Route105_EventScript_273EBB - case 10, Route105_EventScript_273F28 - case 11, Route105_EventScript_273F95 - case 12, Route105_EventScript_274002 - case 13, Route105_EventScript_27406F - case 14, Route105_EventScript_2740DC - case 15, Route105_EventScript_274149 - case 16, Route105_EventScript_2741B6 + switch VAR_UNUSUAL_WEATHER_LOCATION + case UNUSUAL_WEATHER_ROUTE_114_NORTH, Route105_EventScript_273E23 + case UNUSUAL_WEATHER_ROUTE_114_SOUTH, Route105_EventScript_273E36 + case UNUSUAL_WEATHER_ROUTE_115_WEST, Route105_EventScript_273E49 + case UNUSUAL_WEATHER_ROUTE_115_EAST, Route105_EventScript_273E5C + case UNUSUAL_WEATHER_ROUTE_116_NORTH, Route105_EventScript_273E6F + case UNUSUAL_WEATHER_ROUTE_116_SOUTH, Route105_EventScript_273E82 + case UNUSUAL_WEATHER_ROUTE_118_EAST, Route105_EventScript_273E95 + case UNUSUAL_WEATHER_ROUTE_118_WEST, Route105_EventScript_273EA8 + case UNUSUAL_WEATHER_ROUTE_105_NORTH, Route105_EventScript_273EBB + case UNUSUAL_WEATHER_ROUTE_105_SOUTH, Route105_EventScript_273F28 + case UNUSUAL_WEATHER_ROUTE_125_WEST, Route105_EventScript_273F95 + case UNUSUAL_WEATHER_ROUTE_125_EAST, Route105_EventScript_274002 + case UNUSUAL_WEATHER_ROUTE_127_NORTH, Route105_EventScript_27406F + case UNUSUAL_WEATHER_ROUTE_127_SOUTH, Route105_EventScript_2740DC + case UNUSUAL_WEATHER_ROUTE_129_WEST, Route105_EventScript_274149 + case UNUSUAL_WEATHER_ROUTE_129_EAST, Route105_EventScript_2741B6 return Route105_EventScript_273E23:: @ 8273E23 @@ -3401,15 +3401,15 @@ Underwater3_EventScript_274223:: @ 8274223 Underwater5_EventScript_274223:: @ 8274223 Underwater6_EventScript_274223:: @ 8274223 Underwater7_EventScript_274223:: @ 8274223 - switch VAR_0x4037 - case 9, Underwater3_EventScript_274281 - case 10, Underwater3_EventScript_27428A - case 11, Underwater3_EventScript_274293 - case 12, Underwater3_EventScript_27429C - case 13, Underwater3_EventScript_2742A5 - case 14, Underwater3_EventScript_2742AE - case 15, Underwater3_EventScript_2742B7 - case 16, Underwater3_EventScript_2742C0 + switch VAR_UNUSUAL_WEATHER_LOCATION + case UNUSUAL_WEATHER_ROUTE_105_NORTH, Underwater3_EventScript_274281 + case UNUSUAL_WEATHER_ROUTE_105_SOUTH, Underwater3_EventScript_27428A + case UNUSUAL_WEATHER_ROUTE_125_WEST, Underwater3_EventScript_274293 + case UNUSUAL_WEATHER_ROUTE_125_EAST, Underwater3_EventScript_27429C + case UNUSUAL_WEATHER_ROUTE_127_NORTH, Underwater3_EventScript_2742A5 + case UNUSUAL_WEATHER_ROUTE_127_SOUTH, Underwater3_EventScript_2742AE + case UNUSUAL_WEATHER_ROUTE_129_WEST, Underwater3_EventScript_2742B7 + case UNUSUAL_WEATHER_ROUTE_129_EAST, Underwater3_EventScript_2742C0 return Underwater3_EventScript_274281:: @ 8274281 diff --git a/data/maps/Route105/scripts.inc b/data/maps/Route105/scripts.inc index 6ad11bc52..74416f153 100644 --- a/data/maps/Route105/scripts.inc +++ b/data/maps/Route105/scripts.inc @@ -6,9 +6,9 @@ Route105_MapScripts:: @ 81EE1DB Route105_MapScript1_1EE1EB: @ 81EE1EB call_if_unset FLAG_REGI_DOORS_OPENED, Route105_EventScript_1EE20B - compare VAR_0x4037, 9 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_105_NORTH call_if_eq Route105_EventScript_2739AB - compare VAR_0x4037, 10 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_105_SOUTH call_if_eq Route105_EventScript_273A18 end @@ -20,9 +20,9 @@ Route105_EventScript_1EE20B:: @ 81EE20B Route105_MapScript1_1EE21E: @ 81EE21E compare VAR_0x4039, 1 call_if_eq Route105_EventScript_273D13 - compare VAR_0x4037, 9 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_105_NORTH call_if_eq Route105_EventScript_273D17 - compare VAR_0x4037, 10 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_105_SOUTH call_if_eq Route105_EventScript_273D17 end diff --git a/data/maps/Route114/scripts.inc b/data/maps/Route114/scripts.inc index d4327a2f4..856a0f1e4 100644 --- a/data/maps/Route114/scripts.inc +++ b/data/maps/Route114/scripts.inc @@ -7,16 +7,16 @@ Route114_MapScripts:: @ 81F252F Route114_MapScript1_1F253F: @ 81F253F compare VAR_0x4039, 1 call_if_eq Route114_EventScript_273D13 - compare VAR_0x4037, 1 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_114_NORTH call_if_eq Route114_EventScript_273D1B - compare VAR_0x4037, 2 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_114_SOUTH call_if_eq Route114_EventScript_273D1B end Route114_MapScript1_1F2561: @ 81F2561 - compare VAR_0x4037, 1 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_114_NORTH call_if_eq Route114_EventScript_273913 - compare VAR_0x4037, 2 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_114_SOUTH call_if_eq Route114_EventScript_273926 end diff --git a/data/maps/Route115/scripts.inc b/data/maps/Route115/scripts.inc index 9cb3ea2e0..42cf643af 100644 --- a/data/maps/Route115/scripts.inc +++ b/data/maps/Route115/scripts.inc @@ -5,18 +5,18 @@ Route115_MapScripts:: @ 81F2920 .byte 0 Route115_MapScript1_1F2930: @ 81F2930 - compare VAR_0x4037, 3 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_115_WEST call_if_eq Route115_EventScript_273939 - compare VAR_0x4037, 4 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_115_EAST call_if_eq Route115_EventScript_27394C end Route115_MapScript1_1F2947: @ 81F2947 compare VAR_0x4039, 1 call_if_eq Route115_EventScript_273D13 - compare VAR_0x4037, 3 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_115_WEST call_if_eq Route115_EventScript_273D1B - compare VAR_0x4037, 4 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_115_EAST call_if_eq Route115_EventScript_273D1B end diff --git a/data/maps/Route116/scripts.inc b/data/maps/Route116/scripts.inc index 90ae29f5b..afb0505c8 100644 --- a/data/maps/Route116/scripts.inc +++ b/data/maps/Route116/scripts.inc @@ -8,9 +8,9 @@ Route116_MapScript1_1F2C1C: @ 81F2C1C call_if_set FLAG_RECOVERED_DEVON_GOODS, Route116_EventScript_1F2C47 compare VAR_0x4039, 1 call_if_eq Route116_EventScript_273D13 - compare VAR_0x4037, 5 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_116_NORTH call_if_eq Route116_EventScript_273D1B - compare VAR_0x4037, 6 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_116_SOUTH call_if_eq Route116_EventScript_273D1B end @@ -19,9 +19,9 @@ Route116_EventScript_1F2C47:: @ 81F2C47 return Route116_MapScript1_1F2C4F: @ 81F2C4F - compare VAR_0x4037, 5 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_116_NORTH call_if_eq Route116_EventScript_27395F - compare VAR_0x4037, 6 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_116_SOUTH call_if_eq Route116_EventScript_273972 end diff --git a/data/maps/Route118/scripts.inc b/data/maps/Route118/scripts.inc index 758804137..88c4e1275 100644 --- a/data/maps/Route118/scripts.inc +++ b/data/maps/Route118/scripts.inc @@ -8,16 +8,16 @@ Route118_MapScript1_1F3DCC: @ 81F3DCC call Route118_EventScript_28CCC7 compare VAR_0x4039, 1 call_if_eq Route118_EventScript_273D13 - compare VAR_0x4037, 7 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_118_EAST call_if_eq Route118_EventScript_273D1B - compare VAR_0x4037, 8 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_118_WEST call_if_eq Route118_EventScript_273D1B end Route118_MapScript1_1F3DF3: @ 81F3DF3 - compare VAR_0x4037, 7 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_118_EAST call_if_eq Route118_EventScript_273985 - compare VAR_0x4037, 8 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_118_WEST call_if_eq Route118_EventScript_273998 end diff --git a/data/maps/Route119_WeatherInstitute_2F/scripts.inc b/data/maps/Route119_WeatherInstitute_2F/scripts.inc index 7d557fdef..2eaeceb2f 100644 --- a/data/maps/Route119_WeatherInstitute_2F/scripts.inc +++ b/data/maps/Route119_WeatherInstitute_2F/scripts.inc @@ -137,11 +137,13 @@ Route119_WeatherInstitute_2F_EventScript_2700F7:: @ 82700F7 end Route119_WeatherInstitute_2F_EventScript_27010A:: @ 827010A + @ This code uses VAR_0x8004 to count the number of legendaries the player has defeated + @ already. setvar VAR_0x8004, 0 - call_if_set FLAG_DEFEATED_KYOGRE, Route119_WeatherInstitute_2F_EventScript_270160 - call_if_set FLAG_DEFEATED_GROUDON, Route119_WeatherInstitute_2F_EventScript_270160 + call_if_set FLAG_DEFEATED_KYOGRE, WeatherInstitute_UnusualWeather_IncrementLegendCount + call_if_set FLAG_DEFEATED_GROUDON, WeatherInstitute_UnusualWeather_IncrementLegendCount compare VAR_0x8004, 2 - goto_if_eq Route119_WeatherInstitute_2F_EventScript_270166 + goto_if_eq WeatherInstitute_UnusualWeather_LegendariesAlreadyDefeated call_if_unset FLAG_TEMP_2, Route119_WeatherInstitute_2F_EventScript_270159 specialvar VAR_RESULT, sub_813B374 compare VAR_RESULT, 1 @@ -156,16 +158,16 @@ Route119_WeatherInstitute_2F_EventScript_27014F:: @ 827014F end Route119_WeatherInstitute_2F_EventScript_270159:: @ 8270159 - special sub_813B2E4 + special CreateUnusualWeatherEvent setflag FLAG_TEMP_2 return -Route119_WeatherInstitute_2F_EventScript_270160:: @ 8270160 +WeatherInstitute_UnusualWeather_IncrementLegendCount:: @ 8270160 addvar VAR_0x8004, 1 return -Route119_WeatherInstitute_2F_EventScript_270166:: @ 8270166 - msgbox Route119_WeatherInstitute_2F_Text_2708FC, MSGBOX_DEFAULT +WeatherInstitute_UnusualWeather_LegendariesAlreadyDefeated:: @ 8270166 + msgbox WeatherInstitute_UnusualWeather_LegendariesAlreadyDefeatedText, MSGBOX_DEFAULT release end @@ -325,7 +327,7 @@ Route119_WeatherInstitute_2F_Text_270873: @ 8270873 .string "Could that mean, somewhere near\n" .string "{STR_VAR_1}…$" -Route119_WeatherInstitute_2F_Text_2708FC: @ 82708FC +WeatherInstitute_UnusualWeather_LegendariesAlreadyDefeatedText: @ 82708FC .string "Abnormal weather conditions are\n" .string "no longer being reported.\p" .string "The occasional rainfall is a blessing,\n" diff --git a/data/maps/Route125/scripts.inc b/data/maps/Route125/scripts.inc index 4812b9691..d1046e6a4 100644 --- a/data/maps/Route125/scripts.inc +++ b/data/maps/Route125/scripts.inc @@ -8,16 +8,16 @@ Route125_MapScript1_1F6758: @ 81F6758 call_if_set FLAG_SYS_WEATHER_CTRL, Common_EventScript_SetWeather15 compare VAR_0x4039, 1 call_if_eq Route125_EventScript_273D13 - compare VAR_0x4037, 11 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_125_WEST call_if_eq Route125_EventScript_273D17 - compare VAR_0x4037, 12 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_125_EAST call_if_eq Route125_EventScript_273D17 end Route125_MapScript1_1F6783: @ 81F6783 - compare VAR_0x4037, 11 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_125_WEST call_if_eq Route125_EventScript_273A85 - compare VAR_0x4037, 12 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_125_EAST call_if_eq Route125_EventScript_273AF2 end diff --git a/data/maps/Route127/scripts.inc b/data/maps/Route127/scripts.inc index 7d5eee844..9f2018e8f 100644 --- a/data/maps/Route127/scripts.inc +++ b/data/maps/Route127/scripts.inc @@ -8,16 +8,16 @@ Route127_MapScript1_1F69E9: @ 81F69E9 call_if_set FLAG_SYS_WEATHER_CTRL, Common_EventScript_SetWeather15 compare VAR_0x4039, 1 call_if_eq Route127_EventScript_273D13 - compare VAR_0x4037, 13 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_127_NORTH call_if_eq Route127_EventScript_273D17 - compare VAR_0x4037, 14 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_127_SOUTH call_if_eq Route127_EventScript_273D17 end Route127_MapScript1_1F6A14: @ 81F6A14 - compare VAR_0x4037, 13 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_127_NORTH call_if_eq Route127_EventScript_273B5F - compare VAR_0x4037, 14 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_127_SOUTH call_if_eq Route127_EventScript_273BCC end diff --git a/data/maps/Route129/scripts.inc b/data/maps/Route129/scripts.inc index 8aec4bc28..5f65712d7 100644 --- a/data/maps/Route129/scripts.inc +++ b/data/maps/Route129/scripts.inc @@ -5,9 +5,9 @@ Route129_MapScripts:: @ 81F7284 .byte 0 Route129_MapScript1_1F7294: @ 81F7294 - compare VAR_0x4037, 15 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_129_WEST call_if_eq Route129_EventScript_273C39 - compare VAR_0x4037, 16 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_129_EAST call_if_eq Route129_EventScript_273CA6 end @@ -16,9 +16,9 @@ Route129_MapScript1_1F72AB: @ 81F72AB call_if_eq Route129_EventScript_273D13 compare VAR_0x405E, 4 call_if_ge Route129_EventScript_1F72D8 - compare VAR_0x4037, 15 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_129_WEST call_if_eq Route129_EventScript_273D17 - compare VAR_0x4037, 16 + compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_129_EAST call_if_eq Route129_EventScript_273D17 end diff --git a/data/specials.inc b/data/specials.inc index 965bef117..193af9e86 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -499,7 +499,7 @@ gSpecials:: @ 81DBA64 def_special sub_813B21C def_special SetMatchCallRegisteredFlag def_special sub_8175280 - def_special sub_813B2E4 + def_special CreateUnusualWeatherEvent def_special sub_813B374 def_special sub_813B490 def_special sub_80A08CC diff --git a/include/constants/flags.h b/include/constants/flags.h index b440ba78b..f0759389f 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -236,7 +236,7 @@ #define FLAG_MET_WAILMER_TRAINER 0xDA #define FLAG_EVIL_LEADER_PLEASE_STOP 0xDB -#define FLAG_UNUSED_0x0DC 0xDC // Unused Flag +#define FLAG_NEVER_SET_0x0DC 0xDC // This flag is read, but never written to #define FLAG_RECEIVED_GO_GOGGLES 0xDD #define FLAG_WINGULL_SENT_ON_ERRAND 0xDE diff --git a/include/constants/vars.h b/include/constants/vars.h index fc3b3263d..9f364416c 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -60,7 +60,7 @@ #define VAR_POISON_STEP_COUNTER 0x402B #define VAR_RESET_RTC_ENABLE 0x402C #define VAR_ENIGMA_BERRY_AVAILABLE 0x402D -#define VAR_0x402E 0x402E // Seems to be unused. +#define VAR_UNUSED_0x402E 0x402E // Unused Var #define VAR_FRONTIER_MANIAC_FACILITY 0x402F #define VAR_FRONTIER_GAMBLER_FACILITY 0x4030 @@ -71,7 +71,7 @@ #define VAR_DEOXYS_ROCK_STEP_COUNT 0x4034 #define VAR_DEOXYS_ROCK_LEVEL 0x4035 #define VAR_STORAGE_UNKNOWN 0x4036 -#define VAR_0x4037 0x4037 +#define VAR_UNUSUAL_WEATHER_LOCATION 0x4037 #define VAR_0x4038 0x4038 #define VAR_0x4039 0x4039 #define VAR_0x403A 0x403A diff --git a/include/constants/weather.h b/include/constants/weather.h index d62e07474..b01cfb390 100644 --- a/include/constants/weather.h +++ b/include/constants/weather.h @@ -37,4 +37,30 @@ #define COORD_EVENT_WEATHER_ROUTE119_CYCLE 20 #define COORD_EVENT_WEATHER_ROUTE123_CYCLE 21 +// These are the "unusual weather events" that are used +// to find Kyogre and Groudon. +#define UNUSUAL_WEATHER_COUNT_PER_LEGENDARY 8 +#define UNUSUAL_WEATHER_GROUDON_LOCATIONS_START 1 +#define UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START 1 + UNUSUAL_WEATHER_COUNT_PER_LEGENDARY + +#define UNUSUAL_WEATHER_NONE 0 +// Groudon locations +#define UNUSUAL_WEATHER_ROUTE_114_NORTH 1 +#define UNUSUAL_WEATHER_ROUTE_114_SOUTH 2 +#define UNUSUAL_WEATHER_ROUTE_115_WEST 3 +#define UNUSUAL_WEATHER_ROUTE_115_EAST 4 +#define UNUSUAL_WEATHER_ROUTE_116_NORTH 5 +#define UNUSUAL_WEATHER_ROUTE_116_SOUTH 6 +#define UNUSUAL_WEATHER_ROUTE_118_EAST 7 +#define UNUSUAL_WEATHER_ROUTE_118_WEST 8 +// Kyogre locations +#define UNUSUAL_WEATHER_ROUTE_105_NORTH 9 +#define UNUSUAL_WEATHER_ROUTE_105_SOUTH 10 +#define UNUSUAL_WEATHER_ROUTE_125_WEST 11 +#define UNUSUAL_WEATHER_ROUTE_125_EAST 12 +#define UNUSUAL_WEATHER_ROUTE_127_NORTH 13 +#define UNUSUAL_WEATHER_ROUTE_127_SOUTH 14 +#define UNUSUAL_WEATHER_ROUTE_129_WEST 15 +#define UNUSUAL_WEATHER_ROUTE_129_EAST 16 + #endif // GUARD_CONSTANTS_WEATHER_H diff --git a/src/field_specials.c b/src/field_specials.c index 307f81399..1accaa5e5 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3421,28 +3421,28 @@ bool8 sub_813B260(void) return FALSE; } -void sub_813B2E4(void) +void CreateUnusualWeatherEvent(void) { u16 randomValue = Random(); VarSet(VAR_0x4038, 0); if (FlagGet(FLAG_DEFEATED_KYOGRE) == TRUE) { - VarSet(VAR_0x4037, (randomValue & 7) + 1); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue & (UNUSUAL_WEATHER_COUNT_PER_LEGENDARY - 1)) + UNUSUAL_WEATHER_GROUDON_LOCATIONS_START); } else if (FlagGet(FLAG_DEFEATED_GROUDON) == TRUE) { - VarSet(VAR_0x4037, (randomValue & 7) + 9); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue & (UNUSUAL_WEATHER_COUNT_PER_LEGENDARY - 1)) + UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START); } else if ((randomValue & 1) == 0) { randomValue = Random(); - VarSet(VAR_0x4037, (randomValue & 7) + 1); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue & (UNUSUAL_WEATHER_COUNT_PER_LEGENDARY - 1)) + UNUSUAL_WEATHER_GROUDON_LOCATIONS_START); } else { randomValue = Random(); - VarSet(VAR_0x4037, (randomValue & 7) + 9); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue & (UNUSUAL_WEATHER_COUNT_PER_LEGENDARY - 1)) + UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START); } } @@ -3450,7 +3450,7 @@ bool32 sub_813B374(void) { static const u8 gUnknown_085B3400[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; - u16 var = VarGet(VAR_0x4037); + u16 var = VarGet(VAR_UNUSUAL_WEATHER_LOCATION); GetMapName(gStringVar1, gUnknown_085B3400[var - 1], 0); @@ -3466,12 +3466,12 @@ bool32 sub_813B374(void) bool8 sub_813B3B0(void) { - static const u8 gUnknown_085B3410[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; + static const u8 sUnusualWeatherMapNumbers[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; u16 var1 = VarGet(VAR_0x4038); - u16 var2 = VarGet(VAR_0x4037); + u16 unusualWeather = VarGet(VAR_UNUSUAL_WEATHER_LOCATION); - if (!var2) + if (unusualWeather == UNUSUAL_WEATHER_NONE) { return FALSE; } @@ -3510,14 +3510,14 @@ bool8 sub_813B3B0(void) } } - if (gSaveBlock1Ptr->location.mapNum == gUnknown_085B3410[var2 - 1] && + if (gSaveBlock1Ptr->location.mapNum == sUnusualWeatherMapNumbers[unusualWeather - 1] && gSaveBlock1Ptr->location.mapGroup == 0) { return TRUE; } else { - VarSet(VAR_0x4037, 0); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_NONE); return FALSE; } } diff --git a/src/match_call.c b/src/match_call.c index e7e91969f..de1181e8b 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -1016,7 +1016,7 @@ static bool32 MapAllowsMatchCall(void) if (gMapHeader.regionMapSectionId == MAPSEC_SOOTOPOLIS_CITY && FlagGet(FLAG_HIDE_SOOTOPOLIS_CITY_RAYQUAZA) == TRUE - && FlagGet(FLAG_UNUSED_0x0DC) == FALSE) + && FlagGet(FLAG_NEVER_SET_0x0DC) == FALSE) return FALSE; if (gMapHeader.regionMapSectionId == MAPSEC_MT_CHIMNEY diff --git a/src/overworld.c b/src/overworld.c index a10d1e17a..edc4d402c 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -411,7 +411,7 @@ static void Overworld_ResetStateAfterWhiteOut(void) if (VarGet(VAR_0x4039) == 1) { VarSet(VAR_0x4039, 0); - VarSet(VAR_0x4037, 0); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_NONE); } } diff --git a/src/region_map.c b/src/region_map.c index ff0c19167..5c85606a8 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -1159,7 +1159,7 @@ static u16 RegionMap_GetTerraCaveMapSecId(void) { s16 idx; - idx = VarGet(VAR_0x4037) - 1; + idx = VarGet(VAR_UNUSUAL_WEATHER_LOCATION) - 1; if (idx < 0 || idx > 15) { idx = 0; @@ -1171,7 +1171,7 @@ static void RegionMap_GetMarineCaveCoords(u16 *x, u16 *y) { u16 idx; - idx = VarGet(VAR_0x4037); + idx = VarGet(VAR_UNUSUAL_WEATHER_LOCATION); if (idx < 9 || idx > 16) { idx = 9; -- cgit v1.2.3 From c1348d22f3d85cbc7425e8498a023b9b525f7207 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 27 Feb 2019 04:27:54 -0500 Subject: Name most event scripts related to unusual weather --- data/event_scripts.s | 177 ++++++++++----------- data/maps/Route105/scripts.inc | 10 +- data/maps/Route114/scripts.inc | 10 +- data/maps/Route115/scripts.inc | 10 +- data/maps/Route116/scripts.inc | 10 +- data/maps/Route118/scripts.inc | 10 +- data/maps/Route119_WeatherInstitute_2F/scripts.inc | 36 ++--- data/maps/Route125/scripts.inc | 10 +- data/maps/Route127/scripts.inc | 10 +- data/maps/Route129/scripts.inc | 10 +- data/maps/Underwater3/scripts.inc | 2 +- data/maps/Underwater5/scripts.inc | 2 +- data/maps/Underwater6/scripts.inc | 2 +- data/maps/Underwater7/scripts.inc | 2 +- data/specials.inc | 2 +- include/event_scripts.h | 2 +- src/field_control_avatar.c | 2 +- src/field_specials.c | 17 +- 18 files changed, 158 insertions(+), 166 deletions(-) diff --git a/data/event_scripts.s b/data/event_scripts.s index adecc3fcf..19b4949eb 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -2707,10 +2707,10 @@ gUnknown_08273594:: @ 8273594 gUnknown_082735F2:: @ 82735F2 .string "It appears to be for use at\nthe LILYCOVE CITY port.\pWhy not give it a try and see what\nit is about?$" -gUnknown_08273656:: @ 8273656 +gText_UnusualWeatherEnded_Rain:: @ 8273656 .string "The massive downpour appears to\nhave stopped…$" -gUnknown_08273684:: @ 8273684 +gText_UnusualWeatherEnded_Sun:: @ 8273684 .string "The intense sunshine appears to\nhave subsided…$" EventScript_2736B3:: @ 82736B3 @@ -2999,47 +2999,47 @@ EventScript_2738FF:: @ 82738FF releaseall end -Route114_EventScript_273913:: @ 8273913 +UnusualWeather_EventScript_PlaceTilesRoute114North:: @ 8273913 setmetatile 7, 3, 839, 1 setmetatile 7, 4, 847, 0 return -Route114_EventScript_273926:: @ 8273926 +UnusualWeather_EventScript_PlaceTilesRoute114South:: @ 8273926 setmetatile 6, 45, 601, 1 setmetatile 6, 46, 609, 0 return -Route115_EventScript_273939:: @ 8273939 +UnusualWeather_EventScript_PlaceTilesRoute115West:: @ 8273939 setmetatile 21, 5, 601, 1 setmetatile 21, 6, 609, 0 return -Route115_EventScript_27394C:: @ 827394C +UnusualWeather_EventScript_PlaceTilesRoute115East:: @ 827394C setmetatile 36, 9, 601, 1 setmetatile 36, 10, 609, 0 return -Route116_EventScript_27395F:: @ 827395F +UnusualWeather_EventScript_PlaceTilesRoute116North:: @ 827395F setmetatile 59, 12, 159, 1 setmetatile 59, 13, 167, 0 return -Route116_EventScript_273972:: @ 8273972 +UnusualWeather_EventScript_PlaceTilesRoute116South:: @ 8273972 setmetatile 79, 5, 159, 1 setmetatile 79, 6, 167, 0 return -Route118_EventScript_273985:: @ 8273985 +UnusualWeather_EventScript_PlaceTilesRoute118East:: @ 8273985 setmetatile 42, 5, 159, 1 setmetatile 42, 6, 167, 0 return -Route118_EventScript_273998:: @ 8273998 +UnusualWeather_EventScript_PlaceTilesRoute118West:: @ 8273998 setmetatile 9, 5, 159, 1 setmetatile 9, 6, 167, 0 return -Route105_EventScript_2739AB:: @ 82739AB +UnusualWeather_EventScript_PlaceTilesRoute105North:: @ 82739AB setmetatile 10, 28, 334, 0 setmetatile 11, 28, 334, 0 setmetatile 9, 29, 334, 0 @@ -3054,7 +3054,7 @@ Route105_EventScript_2739AB:: @ 82739AB setmetatile 11, 31, 334, 0 return -Route105_EventScript_273A18:: @ 8273A18 +UnusualWeather_EventScript_PlaceTilesRoute105South:: @ 8273A18 setmetatile 20, 53, 334, 0 setmetatile 21, 53, 334, 0 setmetatile 19, 54, 334, 0 @@ -3069,7 +3069,7 @@ Route105_EventScript_273A18:: @ 8273A18 setmetatile 21, 56, 334, 0 return -Route125_EventScript_273A85:: @ 8273A85 +UnusualWeather_EventScript_PlaceTilesRoute125West:: @ 8273A85 setmetatile 8, 16, 334, 0 setmetatile 9, 16, 334, 0 setmetatile 7, 17, 334, 0 @@ -3084,7 +3084,7 @@ Route125_EventScript_273A85:: @ 8273A85 setmetatile 9, 19, 334, 0 return -Route125_EventScript_273AF2:: @ 8273AF2 +UnusualWeather_EventScript_PlaceTilesRoute125East:: @ 8273AF2 setmetatile 53, 18, 334, 0 setmetatile 54, 18, 334, 0 setmetatile 52, 19, 334, 0 @@ -3099,7 +3099,7 @@ Route125_EventScript_273AF2:: @ 8273AF2 setmetatile 54, 21, 334, 0 return -Route127_EventScript_273B5F:: @ 8273B5F +UnusualWeather_EventScript_PlaceTilesRoute127North:: @ 8273B5F setmetatile 57, 9, 334, 0 setmetatile 58, 9, 334, 0 setmetatile 56, 10, 334, 0 @@ -3114,7 +3114,7 @@ Route127_EventScript_273B5F:: @ 8273B5F setmetatile 58, 12, 334, 0 return -Route127_EventScript_273BCC:: @ 8273BCC +UnusualWeather_EventScript_PlaceTilesRoute127South:: @ 8273BCC setmetatile 61, 30, 334, 0 setmetatile 62, 30, 334, 0 setmetatile 60, 31, 334, 0 @@ -3129,7 +3129,7 @@ Route127_EventScript_273BCC:: @ 8273BCC setmetatile 62, 33, 334, 0 return -Route129_EventScript_273C39:: @ 8273C39 +UnusualWeather_EventScript_PlaceTilesRoute129West:: @ 8273C39 setmetatile 16, 14, 334, 0 setmetatile 17, 14, 334, 0 setmetatile 15, 15, 334, 0 @@ -3144,7 +3144,7 @@ Route129_EventScript_273C39:: @ 8273C39 setmetatile 17, 17, 334, 0 return -Route129_EventScript_273CA6:: @ 8273CA6 +UnusualWeather_EventScript_PlaceTilesRoute129East:: @ 8273CA6 setmetatile 42, 19, 334, 0 setmetatile 43, 19, 334, 0 setmetatile 41, 20, 334, 0 @@ -3170,35 +3170,27 @@ Route129_EventScript_273D13:: @ 8273D13 setflag FLAG_SPECIAL_FLAG_0x4000 return -Route105_EventScript_273D17:: @ 8273D17 -Route125_EventScript_273D17:: @ 8273D17 -Route127_EventScript_273D17:: @ 8273D17 -Route129_EventScript_273D17:: @ 8273D17 +UnusualWeather_StartKyogreWeather:: @ 8273D17 setweather WEATHER_RAIN_HEAVY return -Route114_EventScript_273D1B:: @ 8273D1B -Route115_EventScript_273D1B:: @ 8273D1B -Route116_EventScript_273D1B:: @ 8273D1B -Route118_EventScript_273D1B:: @ 8273D1B +UnusualWeather_StartGroudonWeather:: @ 8273D1B setweather WEATHER_DROUGHT return -gUnknown_08273D1F:: @ 8273D1F - -gUnknown_08273D1F:: @ 8273D1F +UnusualWeather_EventScript_EndEventAndCleanup_1:: @ 8273D1F lockall compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START - goto_if_ge Route105_EventScript_273D51 - goto Route105_EventScript_273D5F + goto_if_ge UnusualWeather_EventScript_ShowRainEndedMessage + goto UnusualWeather_EventScript_ShowSunEndedMessage end -Route105_EventScript_273D31:: @ 8273D31 +UnusualWeather_EventScript_EndEventAndCleanup_2:: @ 8273D31 closemessage fadescreenswapbuffers 1 setweather WEATHER_SUNNY doweather - call Route105_EventScript_273D6D + call UnusualWeather_EventScript_CleanupMapTiles special DrawWholeMapView setvar VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_NONE setvar VAR_0x4039, 0 @@ -3207,77 +3199,77 @@ Route105_EventScript_273D31:: @ 8273D31 releaseall end -Route105_EventScript_273D51:: @ 8273D51 - msgbox gUnknown_08273656, MSGBOX_DEFAULT - goto Route105_EventScript_273D31 +UnusualWeather_EventScript_ShowRainEndedMessage:: @ 8273D51 + msgbox gText_UnusualWeatherEnded_Rain, MSGBOX_DEFAULT + goto UnusualWeather_EventScript_EndEventAndCleanup_2 end -Route105_EventScript_273D5F:: @ 8273D5F - msgbox gUnknown_08273684, MSGBOX_DEFAULT - goto Route105_EventScript_273D31 +UnusualWeather_EventScript_ShowSunEndedMessage:: @ 8273D5F + msgbox gText_UnusualWeatherEnded_Sun, MSGBOX_DEFAULT + goto UnusualWeather_EventScript_EndEventAndCleanup_2 end -Route105_EventScript_273D6D:: @ 8273D6D +UnusualWeather_EventScript_CleanupMapTiles:: @ 8273D6D switch VAR_UNUSUAL_WEATHER_LOCATION - case UNUSUAL_WEATHER_ROUTE_114_NORTH, Route105_EventScript_273E23 - case UNUSUAL_WEATHER_ROUTE_114_SOUTH, Route105_EventScript_273E36 - case UNUSUAL_WEATHER_ROUTE_115_WEST, Route105_EventScript_273E49 - case UNUSUAL_WEATHER_ROUTE_115_EAST, Route105_EventScript_273E5C - case UNUSUAL_WEATHER_ROUTE_116_NORTH, Route105_EventScript_273E6F - case UNUSUAL_WEATHER_ROUTE_116_SOUTH, Route105_EventScript_273E82 - case UNUSUAL_WEATHER_ROUTE_118_EAST, Route105_EventScript_273E95 - case UNUSUAL_WEATHER_ROUTE_118_WEST, Route105_EventScript_273EA8 - case UNUSUAL_WEATHER_ROUTE_105_NORTH, Route105_EventScript_273EBB - case UNUSUAL_WEATHER_ROUTE_105_SOUTH, Route105_EventScript_273F28 - case UNUSUAL_WEATHER_ROUTE_125_WEST, Route105_EventScript_273F95 - case UNUSUAL_WEATHER_ROUTE_125_EAST, Route105_EventScript_274002 - case UNUSUAL_WEATHER_ROUTE_127_NORTH, Route105_EventScript_27406F - case UNUSUAL_WEATHER_ROUTE_127_SOUTH, Route105_EventScript_2740DC - case UNUSUAL_WEATHER_ROUTE_129_WEST, Route105_EventScript_274149 - case UNUSUAL_WEATHER_ROUTE_129_EAST, Route105_EventScript_2741B6 - return - -Route105_EventScript_273E23:: @ 8273E23 + case UNUSUAL_WEATHER_ROUTE_114_NORTH, UnusualWeather_EventScript_CleanupRoute114North + case UNUSUAL_WEATHER_ROUTE_114_SOUTH, UnusualWeather_EventScript_CleanupRoute114South + case UNUSUAL_WEATHER_ROUTE_115_WEST, UnusualWeather_EventScript_CleanupRoute115West + case UNUSUAL_WEATHER_ROUTE_115_EAST, UnusualWeather_EventScript_CleanupRoute115East + case UNUSUAL_WEATHER_ROUTE_116_NORTH, UnusualWeather_EventScript_CleanupRoute116North + case UNUSUAL_WEATHER_ROUTE_116_SOUTH, UnusualWeather_EventScript_CleanupRoute116South + case UNUSUAL_WEATHER_ROUTE_118_EAST, UnusualWeather_EventScript_CleanupRoute118East + case UNUSUAL_WEATHER_ROUTE_118_WEST, UnusualWeather_EventScript_CleanupRoute118West + case UNUSUAL_WEATHER_ROUTE_105_NORTH, UnusualWeather_EventScript_CleanupRoute105North + case UNUSUAL_WEATHER_ROUTE_105_SOUTH, UnusualWeather_EventScript_CleanupRoute105South + case UNUSUAL_WEATHER_ROUTE_125_WEST, UnusualWeather_EventScript_CleanupRoute125West + case UNUSUAL_WEATHER_ROUTE_125_EAST, UnusualWeather_EventScript_CleanupRoute125East + case UNUSUAL_WEATHER_ROUTE_127_NORTH, UnusualWeather_EventScript_CleanupRoute127North + case UNUSUAL_WEATHER_ROUTE_127_SOUTH, UnusualWeather_EventScript_CleanupRoute127South + case UNUSUAL_WEATHER_ROUTE_129_WEST, UnusualWeather_EventScript_CleanupRoute129West + case UNUSUAL_WEATHER_ROUTE_129_EAST, UnusualWeather_EventScript_CleanupRoute129East + return + +UnusualWeather_EventScript_CleanupRoute114North:: @ 8273E23 setmetatile 7, 3, 617, 1 setmetatile 7, 4, 617, 1 return -Route105_EventScript_273E36:: @ 8273E36 +UnusualWeather_EventScript_CleanupRoute114South:: @ 8273E36 setmetatile 6, 45, 613, 1 setmetatile 6, 46, 613, 1 return -Route105_EventScript_273E49:: @ 8273E49 +UnusualWeather_EventScript_CleanupRoute115West:: @ 8273E49 setmetatile 21, 5, 613, 1 setmetatile 21, 6, 613, 1 return -Route105_EventScript_273E5C:: @ 8273E5C +UnusualWeather_EventScript_CleanupRoute115East:: @ 8273E5C setmetatile 36, 9, 613, 1 setmetatile 36, 10, 613, 1 return -Route105_EventScript_273E6F:: @ 8273E6F +UnusualWeather_EventScript_CleanupRoute116North:: @ 8273E6F setmetatile 59, 12, 124, 1 setmetatile 59, 13, 124, 1 return -Route105_EventScript_273E82:: @ 8273E82 +UnusualWeather_EventScript_CleanupRoute116South:: @ 8273E82 setmetatile 79, 5, 124, 1 setmetatile 79, 6, 124, 1 return -Route105_EventScript_273E95:: @ 8273E95 +UnusualWeather_EventScript_CleanupRoute118East:: @ 8273E95 setmetatile 42, 5, 124, 1 setmetatile 42, 6, 121, 1 return -Route105_EventScript_273EA8:: @ 8273EA8 +UnusualWeather_EventScript_CleanupRoute118West:: @ 8273EA8 setmetatile 9, 5, 124, 1 setmetatile 9, 6, 121, 1 return -Route105_EventScript_273EBB:: @ 8273EBB +UnusualWeather_EventScript_CleanupRoute105North:: @ 8273EBB setmetatile 10, 28, 368, 0 setmetatile 11, 28, 368, 0 setmetatile 9, 29, 368, 0 @@ -3292,7 +3284,7 @@ Route105_EventScript_273EBB:: @ 8273EBB setmetatile 11, 31, 368, 0 return -Route105_EventScript_273F28:: @ 8273F28 +UnusualWeather_EventScript_CleanupRoute105South:: @ 8273F28 setmetatile 20, 53, 368, 0 setmetatile 21, 53, 368, 0 setmetatile 19, 54, 368, 0 @@ -3307,7 +3299,7 @@ Route105_EventScript_273F28:: @ 8273F28 setmetatile 21, 56, 368, 0 return -Route105_EventScript_273F95:: @ 8273F95 +UnusualWeather_EventScript_CleanupRoute125West:: @ 8273F95 setmetatile 8, 16, 368, 0 setmetatile 9, 16, 368, 0 setmetatile 7, 17, 368, 0 @@ -3322,7 +3314,7 @@ Route105_EventScript_273F95:: @ 8273F95 setmetatile 9, 19, 368, 0 return -Route105_EventScript_274002:: @ 8274002 +UnusualWeather_EventScript_CleanupRoute125East:: @ 8274002 setmetatile 53, 18, 368, 0 setmetatile 54, 18, 368, 0 setmetatile 52, 19, 368, 0 @@ -3337,7 +3329,7 @@ Route105_EventScript_274002:: @ 8274002 setmetatile 54, 21, 368, 0 return -Route105_EventScript_27406F:: @ 827406F +UnusualWeather_EventScript_CleanupRoute127North:: @ 827406F setmetatile 57, 9, 368, 0 setmetatile 58, 9, 368, 0 setmetatile 56, 10, 368, 0 @@ -3352,7 +3344,7 @@ Route105_EventScript_27406F:: @ 827406F setmetatile 58, 12, 368, 0 return -Route105_EventScript_2740DC:: @ 82740DC +UnusualWeather_EventScript_CleanupRoute127South:: @ 82740DC setmetatile 61, 30, 368, 0 setmetatile 62, 30, 368, 0 setmetatile 60, 31, 368, 0 @@ -3367,7 +3359,7 @@ Route105_EventScript_2740DC:: @ 82740DC setmetatile 62, 33, 368, 0 return -Route105_EventScript_274149:: @ 8274149 +UnusualWeather_EventScript_CleanupRoute129West:: @ 8274149 setmetatile 16, 14, 368, 0 setmetatile 17, 14, 368, 0 setmetatile 15, 15, 368, 0 @@ -3382,7 +3374,7 @@ Route105_EventScript_274149:: @ 8274149 setmetatile 17, 17, 368, 0 return -Route105_EventScript_2741B6:: @ 82741B6 +UnusualWeather_EventScript_CleanupRoute129East:: @ 82741B6 setmetatile 42, 19, 368, 0 setmetatile 43, 19, 368, 0 setmetatile 41, 20, 368, 0 @@ -3397,50 +3389,47 @@ Route105_EventScript_2741B6:: @ 82741B6 setmetatile 43, 22, 368, 0 return -Underwater3_EventScript_274223:: @ 8274223 -Underwater5_EventScript_274223:: @ 8274223 -Underwater6_EventScript_274223:: @ 8274223 -Underwater7_EventScript_274223:: @ 8274223 +UnusualWeather_Underwater_SetupEscapeWarp:: @ 8274223 switch VAR_UNUSUAL_WEATHER_LOCATION - case UNUSUAL_WEATHER_ROUTE_105_NORTH, Underwater3_EventScript_274281 - case UNUSUAL_WEATHER_ROUTE_105_SOUTH, Underwater3_EventScript_27428A - case UNUSUAL_WEATHER_ROUTE_125_WEST, Underwater3_EventScript_274293 - case UNUSUAL_WEATHER_ROUTE_125_EAST, Underwater3_EventScript_27429C - case UNUSUAL_WEATHER_ROUTE_127_NORTH, Underwater3_EventScript_2742A5 - case UNUSUAL_WEATHER_ROUTE_127_SOUTH, Underwater3_EventScript_2742AE - case UNUSUAL_WEATHER_ROUTE_129_WEST, Underwater3_EventScript_2742B7 - case UNUSUAL_WEATHER_ROUTE_129_EAST, Underwater3_EventScript_2742C0 + case UNUSUAL_WEATHER_ROUTE_105_NORTH, UnusualWeather_Underwater_SetupEscapeWarpRoute105North + case UNUSUAL_WEATHER_ROUTE_105_SOUTH, UnusualWeather_Underwater_SetupEscapeWarpRoute105South + case UNUSUAL_WEATHER_ROUTE_125_WEST, UnusualWeather_Underwater_SetupEscapeWarpRoute125West + case UNUSUAL_WEATHER_ROUTE_125_EAST, UnusualWeather_Underwater_SetupEscapeWarpRoute125East + case UNUSUAL_WEATHER_ROUTE_127_NORTH, UnusualWeather_Underwater_SetupEscapeWarpRoute127North + case UNUSUAL_WEATHER_ROUTE_127_SOUTH, UnusualWeather_Underwater_SetupEscapeWarpRoute127South + case UNUSUAL_WEATHER_ROUTE_129_WEST, UnusualWeather_Underwater_SetupEscapeWarpRoute129West + case UNUSUAL_WEATHER_ROUTE_129_EAST, UnusualWeather_Underwater_SetupEscapeWarpRoute129East return -Underwater3_EventScript_274281:: @ 8274281 +UnusualWeather_Underwater_SetupEscapeWarpRoute105North:: @ 8274281 setescapewarp MAP_ROUTE105, 255, 11, 29 return -Underwater3_EventScript_27428A:: @ 827428A +UnusualWeather_Underwater_SetupEscapeWarpRoute105South:: @ 827428A setescapewarp MAP_ROUTE105, 255, 21, 54 return -Underwater3_EventScript_274293:: @ 8274293 +UnusualWeather_Underwater_SetupEscapeWarpRoute125West:: @ 8274293 setescapewarp MAP_ROUTE125, 255, 9, 17 return -Underwater3_EventScript_27429C:: @ 827429C +UnusualWeather_Underwater_SetupEscapeWarpRoute125East:: @ 827429C setescapewarp MAP_ROUTE125, 255, 54, 19 return -Underwater3_EventScript_2742A5:: @ 82742A5 +UnusualWeather_Underwater_SetupEscapeWarpRoute127North:: @ 82742A5 setescapewarp MAP_ROUTE127, 255, 58, 10 return -Underwater3_EventScript_2742AE:: @ 82742AE +UnusualWeather_Underwater_SetupEscapeWarpRoute127South:: @ 82742AE setescapewarp MAP_ROUTE127, 255, 62, 31 return -Underwater3_EventScript_2742B7:: @ 82742B7 +UnusualWeather_Underwater_SetupEscapeWarpRoute129West:: @ 82742B7 setescapewarp MAP_ROUTE129, 255, 17, 15 return -Underwater3_EventScript_2742C0:: @ 82742C0 +UnusualWeather_Underwater_SetupEscapeWarpRoute129East:: @ 82742C0 setescapewarp MAP_ROUTE129, 255, 43, 20 return diff --git a/data/maps/Route105/scripts.inc b/data/maps/Route105/scripts.inc index 74416f153..1f4202ec4 100644 --- a/data/maps/Route105/scripts.inc +++ b/data/maps/Route105/scripts.inc @@ -7,9 +7,9 @@ Route105_MapScripts:: @ 81EE1DB Route105_MapScript1_1EE1EB: @ 81EE1EB call_if_unset FLAG_REGI_DOORS_OPENED, Route105_EventScript_1EE20B compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_105_NORTH - call_if_eq Route105_EventScript_2739AB + call_if_eq UnusualWeather_EventScript_PlaceTilesRoute105North compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_105_SOUTH - call_if_eq Route105_EventScript_273A18 + call_if_eq UnusualWeather_EventScript_PlaceTilesRoute105South end Route105_EventScript_1EE20B:: @ 81EE20B @@ -21,13 +21,13 @@ Route105_MapScript1_1EE21E: @ 81EE21E compare VAR_0x4039, 1 call_if_eq Route105_EventScript_273D13 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_105_NORTH - call_if_eq Route105_EventScript_273D17 + call_if_eq UnusualWeather_StartKyogreWeather compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_105_SOUTH - call_if_eq Route105_EventScript_273D17 + call_if_eq UnusualWeather_StartKyogreWeather end Route105_MapScript2_1EE240: @ 81EE240 - map_script_2 VAR_0x4039, 1, gUnknown_08273D1F + map_script_2 VAR_0x4039, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 .2byte 0 Route105_EventScript_1EE24A:: @ 81EE24A diff --git a/data/maps/Route114/scripts.inc b/data/maps/Route114/scripts.inc index 856a0f1e4..6a2f8b174 100644 --- a/data/maps/Route114/scripts.inc +++ b/data/maps/Route114/scripts.inc @@ -8,20 +8,20 @@ Route114_MapScript1_1F253F: @ 81F253F compare VAR_0x4039, 1 call_if_eq Route114_EventScript_273D13 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_114_NORTH - call_if_eq Route114_EventScript_273D1B + call_if_eq UnusualWeather_StartGroudonWeather compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_114_SOUTH - call_if_eq Route114_EventScript_273D1B + call_if_eq UnusualWeather_StartGroudonWeather end Route114_MapScript1_1F2561: @ 81F2561 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_114_NORTH - call_if_eq Route114_EventScript_273913 + call_if_eq UnusualWeather_EventScript_PlaceTilesRoute114North compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_114_SOUTH - call_if_eq Route114_EventScript_273926 + call_if_eq UnusualWeather_EventScript_PlaceTilesRoute114South end Route114_MapScript2_1F2578: @ 81F2578 - map_script_2 VAR_0x4039, 1, gUnknown_08273D1F + map_script_2 VAR_0x4039, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 .2byte 0 Route114_EventScript_1F2582:: @ 81F2582 diff --git a/data/maps/Route115/scripts.inc b/data/maps/Route115/scripts.inc index 42cf643af..be3a98f42 100644 --- a/data/maps/Route115/scripts.inc +++ b/data/maps/Route115/scripts.inc @@ -6,22 +6,22 @@ Route115_MapScripts:: @ 81F2920 Route115_MapScript1_1F2930: @ 81F2930 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_115_WEST - call_if_eq Route115_EventScript_273939 + call_if_eq UnusualWeather_EventScript_PlaceTilesRoute115West compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_115_EAST - call_if_eq Route115_EventScript_27394C + call_if_eq UnusualWeather_EventScript_PlaceTilesRoute115East end Route115_MapScript1_1F2947: @ 81F2947 compare VAR_0x4039, 1 call_if_eq Route115_EventScript_273D13 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_115_WEST - call_if_eq Route115_EventScript_273D1B + call_if_eq UnusualWeather_StartGroudonWeather compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_115_EAST - call_if_eq Route115_EventScript_273D1B + call_if_eq UnusualWeather_StartGroudonWeather end Route115_MapScript2_1F2969: @ 81F2969 - map_script_2 VAR_0x4039, 1, gUnknown_08273D1F + map_script_2 VAR_0x4039, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 .2byte 0 Route115_EventScript_1F2973:: @ 81F2973 diff --git a/data/maps/Route116/scripts.inc b/data/maps/Route116/scripts.inc index afb0505c8..193b70157 100644 --- a/data/maps/Route116/scripts.inc +++ b/data/maps/Route116/scripts.inc @@ -9,9 +9,9 @@ Route116_MapScript1_1F2C1C: @ 81F2C1C compare VAR_0x4039, 1 call_if_eq Route116_EventScript_273D13 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_116_NORTH - call_if_eq Route116_EventScript_273D1B + call_if_eq UnusualWeather_StartGroudonWeather compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_116_SOUTH - call_if_eq Route116_EventScript_273D1B + call_if_eq UnusualWeather_StartGroudonWeather end Route116_EventScript_1F2C47:: @ 81F2C47 @@ -20,13 +20,13 @@ Route116_EventScript_1F2C47:: @ 81F2C47 Route116_MapScript1_1F2C4F: @ 81F2C4F compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_116_NORTH - call_if_eq Route116_EventScript_27395F + call_if_eq UnusualWeather_EventScript_PlaceTilesRoute116North compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_116_SOUTH - call_if_eq Route116_EventScript_273972 + call_if_eq UnusualWeather_EventScript_PlaceTilesRoute116South end Route116_MapScript2_1F2C66: @ 81F2C66 - map_script_2 VAR_0x4039, 1, gUnknown_08273D1F + map_script_2 VAR_0x4039, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 .2byte 0 Route116_EventScript_1F2C70:: @ 81F2C70 diff --git a/data/maps/Route118/scripts.inc b/data/maps/Route118/scripts.inc index 88c4e1275..a2784b298 100644 --- a/data/maps/Route118/scripts.inc +++ b/data/maps/Route118/scripts.inc @@ -9,20 +9,20 @@ Route118_MapScript1_1F3DCC: @ 81F3DCC compare VAR_0x4039, 1 call_if_eq Route118_EventScript_273D13 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_118_EAST - call_if_eq Route118_EventScript_273D1B + call_if_eq UnusualWeather_StartGroudonWeather compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_118_WEST - call_if_eq Route118_EventScript_273D1B + call_if_eq UnusualWeather_StartGroudonWeather end Route118_MapScript1_1F3DF3: @ 81F3DF3 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_118_EAST - call_if_eq Route118_EventScript_273985 + call_if_eq UnusualWeather_EventScript_PlaceTilesRoute118East compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_118_WEST - call_if_eq Route118_EventScript_273998 + call_if_eq UnusualWeather_EventScript_PlaceTilesRoute118West end Route118_MapScript2_1F3E0A: @ 81F3E0A - map_script_2 VAR_0x4039, 1, gUnknown_08273D1F + map_script_2 VAR_0x4039, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 .2byte 0 Route118_EventScript_1F3E14:: @ 81F3E14 diff --git a/data/maps/Route119_WeatherInstitute_2F/scripts.inc b/data/maps/Route119_WeatherInstitute_2F/scripts.inc index 2eaeceb2f..fa2664d68 100644 --- a/data/maps/Route119_WeatherInstitute_2F/scripts.inc +++ b/data/maps/Route119_WeatherInstitute_2F/scripts.inc @@ -131,43 +131,43 @@ Route119_WeatherInstitute_2F_EventScript_2700EA:: @ 82700EA end Route119_WeatherInstitute_2F_EventScript_2700F7:: @ 82700F7 - goto_if_set FLAG_SYS_GAME_CLEAR, Route119_WeatherInstitute_2F_EventScript_27010A + goto_if_set FLAG_SYS_GAME_CLEAR, Route119_WeatherInstitute_2F_EventScript_TryStartUnusualWeather msgbox Route119_WeatherInstitute_2F_Text_27077E, MSGBOX_DEFAULT release end -Route119_WeatherInstitute_2F_EventScript_27010A:: @ 827010A +Route119_WeatherInstitute_2F_EventScript_TryStartUnusualWeather:: @ 827010A @ This code uses VAR_0x8004 to count the number of legendaries the player has defeated @ already. setvar VAR_0x8004, 0 - call_if_set FLAG_DEFEATED_KYOGRE, WeatherInstitute_UnusualWeather_IncrementLegendCount - call_if_set FLAG_DEFEATED_GROUDON, WeatherInstitute_UnusualWeather_IncrementLegendCount + call_if_set FLAG_DEFEATED_KYOGRE, WeatherInstitute_UnusualWeather_EventScript_IncrementLegendCount + call_if_set FLAG_DEFEATED_GROUDON, WeatherInstitute_UnusualWeather_EventScript_IncrementLegendCount compare VAR_0x8004, 2 - goto_if_eq WeatherInstitute_UnusualWeather_LegendariesAlreadyDefeated - call_if_unset FLAG_TEMP_2, Route119_WeatherInstitute_2F_EventScript_270159 - specialvar VAR_RESULT, sub_813B374 + goto_if_eq WeatherInstitute_UnusualWeather_EventScript_ShowLegendariesAlreadyDefeated + call_if_unset FLAG_TEMP_2, WeatherInstitute_UnusualWeather_EventScript_DoCreateUnusualWeather + specialvar VAR_RESULT, GetUnusualWeatherMapNameAndType compare VAR_RESULT, 1 - goto_if_eq Route119_WeatherInstitute_2F_EventScript_27014F - msgbox Route119_WeatherInstitute_2F_Text_2707F1, MSGBOX_DEFAULT + goto_if_eq WeatherInstitute_UnusualWeather_EventScript_ShowKyogreWeatherMessage + msgbox WeatherInstitute_UnusualWeather_GroudonWeatherText, MSGBOX_DEFAULT release end -Route119_WeatherInstitute_2F_EventScript_27014F:: @ 827014F - msgbox Route119_WeatherInstitute_2F_Text_270873, MSGBOX_DEFAULT +WeatherInstitute_UnusualWeather_EventScript_ShowKyogreWeatherMessage:: @ 827014F + msgbox WeatherInstitute_UnusualWeather_KyogreWeatherText, MSGBOX_DEFAULT release end -Route119_WeatherInstitute_2F_EventScript_270159:: @ 8270159 +WeatherInstitute_UnusualWeather_EventScript_DoCreateUnusualWeather:: @ 8270159 special CreateUnusualWeatherEvent setflag FLAG_TEMP_2 return -WeatherInstitute_UnusualWeather_IncrementLegendCount:: @ 8270160 +WeatherInstitute_UnusualWeather_EventScript_IncrementLegendCount:: @ 8270160 addvar VAR_0x8004, 1 return -WeatherInstitute_UnusualWeather_LegendariesAlreadyDefeated:: @ 8270166 - msgbox WeatherInstitute_UnusualWeather_LegendariesAlreadyDefeatedText, MSGBOX_DEFAULT +WeatherInstitute_UnusualWeather_EventScript_ShowLegendariesAlreadyDefeated:: @ 8270166 + msgbox WeatherInstitute_UnusualWeather_EventScript_ShowLegendariesAlreadyDefeatedText, MSGBOX_DEFAULT release end @@ -311,7 +311,7 @@ Route119_WeatherInstitute_2F_Text_27077E: @ 827077E .string "years, but it's ridiculous to think that\l" .string "humans can freely change the weather.$" -Route119_WeatherInstitute_2F_Text_2707F1: @ 82707F1 +WeatherInstitute_UnusualWeather_GroudonWeatherText: @ 82707F1 .string "I track weather patterns over\n" .string "the HOENN region.\p" .string "Presently, a drought has been recorded\n" @@ -319,7 +319,7 @@ Route119_WeatherInstitute_2F_Text_2707F1: @ 82707F1 .string "Could that mean, somewhere near\n" .string "{STR_VAR_1}…$" -Route119_WeatherInstitute_2F_Text_270873: @ 8270873 +WeatherInstitute_UnusualWeather_KyogreWeatherText: @ 8270873 .string "I track weather patterns over\n" .string "the HOENN region.\p" .string "Presently, heavy rainfall has been\n" @@ -327,7 +327,7 @@ Route119_WeatherInstitute_2F_Text_270873: @ 8270873 .string "Could that mean, somewhere near\n" .string "{STR_VAR_1}…$" -WeatherInstitute_UnusualWeather_LegendariesAlreadyDefeatedText: @ 82708FC +WeatherInstitute_UnusualWeather_EventScript_ShowLegendariesAlreadyDefeatedText: @ 82708FC .string "Abnormal weather conditions are\n" .string "no longer being reported.\p" .string "The occasional rainfall is a blessing,\n" diff --git a/data/maps/Route125/scripts.inc b/data/maps/Route125/scripts.inc index d1046e6a4..a2e9f1d40 100644 --- a/data/maps/Route125/scripts.inc +++ b/data/maps/Route125/scripts.inc @@ -9,20 +9,20 @@ Route125_MapScript1_1F6758: @ 81F6758 compare VAR_0x4039, 1 call_if_eq Route125_EventScript_273D13 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_125_WEST - call_if_eq Route125_EventScript_273D17 + call_if_eq UnusualWeather_StartKyogreWeather compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_125_EAST - call_if_eq Route125_EventScript_273D17 + call_if_eq UnusualWeather_StartKyogreWeather end Route125_MapScript1_1F6783: @ 81F6783 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_125_WEST - call_if_eq Route125_EventScript_273A85 + call_if_eq UnusualWeather_EventScript_PlaceTilesRoute125West compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_125_EAST - call_if_eq Route125_EventScript_273AF2 + call_if_eq UnusualWeather_EventScript_PlaceTilesRoute125East end Route125_MapScript2_1F679A: @ 81F679A - map_script_2 VAR_0x4039, 1, gUnknown_08273D1F + map_script_2 VAR_0x4039, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 .2byte 0 Route125_EventScript_1F67A4:: @ 81F67A4 diff --git a/data/maps/Route127/scripts.inc b/data/maps/Route127/scripts.inc index 9f2018e8f..27b17d340 100644 --- a/data/maps/Route127/scripts.inc +++ b/data/maps/Route127/scripts.inc @@ -9,20 +9,20 @@ Route127_MapScript1_1F69E9: @ 81F69E9 compare VAR_0x4039, 1 call_if_eq Route127_EventScript_273D13 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_127_NORTH - call_if_eq Route127_EventScript_273D17 + call_if_eq UnusualWeather_StartKyogreWeather compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_127_SOUTH - call_if_eq Route127_EventScript_273D17 + call_if_eq UnusualWeather_StartKyogreWeather end Route127_MapScript1_1F6A14: @ 81F6A14 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_127_NORTH - call_if_eq Route127_EventScript_273B5F + call_if_eq UnusualWeather_EventScript_PlaceTilesRoute127North compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_127_SOUTH - call_if_eq Route127_EventScript_273BCC + call_if_eq UnusualWeather_EventScript_PlaceTilesRoute127South end Route127_MapScript2_1F6A2B: @ 81F6A2B - map_script_2 VAR_0x4039, 1, gUnknown_08273D1F + map_script_2 VAR_0x4039, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 .2byte 0 Route127_EventScript_1F6A35:: @ 81F6A35 diff --git a/data/maps/Route129/scripts.inc b/data/maps/Route129/scripts.inc index 5f65712d7..3fc30cf91 100644 --- a/data/maps/Route129/scripts.inc +++ b/data/maps/Route129/scripts.inc @@ -6,9 +6,9 @@ Route129_MapScripts:: @ 81F7284 Route129_MapScript1_1F7294: @ 81F7294 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_129_WEST - call_if_eq Route129_EventScript_273C39 + call_if_eq UnusualWeather_EventScript_PlaceTilesRoute129West compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_129_EAST - call_if_eq Route129_EventScript_273CA6 + call_if_eq UnusualWeather_EventScript_PlaceTilesRoute129East end Route129_MapScript1_1F72AB: @ 81F72AB @@ -17,9 +17,9 @@ Route129_MapScript1_1F72AB: @ 81F72AB compare VAR_0x405E, 4 call_if_ge Route129_EventScript_1F72D8 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_129_WEST - call_if_eq Route129_EventScript_273D17 + call_if_eq UnusualWeather_StartKyogreWeather compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_129_EAST - call_if_eq Route129_EventScript_273D17 + call_if_eq UnusualWeather_StartKyogreWeather end Route129_EventScript_1F72D8:: @ 81F72D8 @@ -27,7 +27,7 @@ Route129_EventScript_1F72D8:: @ 81F72D8 return Route129_MapScript2_1F72E2: @ 81F72E2 - map_script_2 VAR_0x4039, 1, gUnknown_08273D1F + map_script_2 VAR_0x4039, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 .2byte 0 Route129_EventScript_1F72EC:: @ 81F72EC diff --git a/data/maps/Underwater3/scripts.inc b/data/maps/Underwater3/scripts.inc index 99f0efcf0..53b80053f 100644 --- a/data/maps/Underwater3/scripts.inc +++ b/data/maps/Underwater3/scripts.inc @@ -3,6 +3,6 @@ Underwater3_MapScripts:: @ 81F7724 .byte 0 Underwater3_MapScript1_1F772A: @ 81F772A - call Underwater3_EventScript_274223 + call UnusualWeather_Underwater_SetupEscapeWarp end diff --git a/data/maps/Underwater5/scripts.inc b/data/maps/Underwater5/scripts.inc index ea37514eb..fe068207e 100644 --- a/data/maps/Underwater5/scripts.inc +++ b/data/maps/Underwater5/scripts.inc @@ -3,6 +3,6 @@ Underwater5_MapScripts:: @ 81F7731 .byte 0 Underwater5_MapScript1_1F7737: @ 81F7737 - call Underwater5_EventScript_274223 + call UnusualWeather_Underwater_SetupEscapeWarp end diff --git a/data/maps/Underwater6/scripts.inc b/data/maps/Underwater6/scripts.inc index fee91dc75..d5a11c1bf 100644 --- a/data/maps/Underwater6/scripts.inc +++ b/data/maps/Underwater6/scripts.inc @@ -3,6 +3,6 @@ Underwater6_MapScripts:: @ 81F773D .byte 0 Underwater6_MapScript1_1F7743: @ 81F7743 - call Underwater6_EventScript_274223 + call UnusualWeather_Underwater_SetupEscapeWarp end diff --git a/data/maps/Underwater7/scripts.inc b/data/maps/Underwater7/scripts.inc index a0eba386a..c3bee154e 100644 --- a/data/maps/Underwater7/scripts.inc +++ b/data/maps/Underwater7/scripts.inc @@ -3,6 +3,6 @@ Underwater7_MapScripts:: @ 81F7749 .byte 0 Underwater7_MapScript1_1F774F: @ 81F774F - call Underwater7_EventScript_274223 + call UnusualWeather_Underwater_SetupEscapeWarp end diff --git a/data/specials.inc b/data/specials.inc index 193af9e86..eddf9a08b 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -500,7 +500,7 @@ gSpecials:: @ 81DBA64 def_special SetMatchCallRegisteredFlag def_special sub_8175280 def_special CreateUnusualWeatherEvent - def_special sub_813B374 + def_special GetUnusualWeatherMapNameAndType def_special sub_813B490 def_special sub_80A08CC def_special Unused_SetWeatherSunny diff --git a/include/event_scripts.h b/include/event_scripts.h index 65e2c74b7..e3ec8afb4 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -564,7 +564,7 @@ extern const u8 EventScript_FallDownHole[]; extern const u8 BattleFrontier_BattlePyramidEmptySquare_EventScript_252BE8[]; extern const u8 EventScript_Poison[]; extern const u8 EventScript_EggHatch[]; -extern const u8 gUnknown_08273D1F[]; +extern const u8 UnusualWeather_EventScript_EndEventAndCleanup_1[]; extern const u8 IslandCave_EventScript_238EAF[]; extern const u8 MauvilleCity_EventScript_1DF7BA[]; extern const u8 Route119_EventScript_1F49EC[]; diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index cffafaf9f..90f7f4d5e 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -559,7 +559,7 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior) } if (sub_813B3B0() == TRUE) { - ScriptContext1_SetupScript(gUnknown_08273D1F); + ScriptContext1_SetupScript(UnusualWeather_EventScript_EndEventAndCleanup_1); return TRUE; } if (ShouldDoBrailleRegicePuzzle() == TRUE) diff --git a/src/field_specials.c b/src/field_specials.c index 1accaa5e5..a5edb0122 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3446,15 +3446,17 @@ void CreateUnusualWeatherEvent(void) } } -bool32 sub_813B374(void) +// Saves the map name for the current unusual weather location in gStringVar1, then +// returns TRUE if the weather is for Kyogre, and FALSE if it's for Groudon. +bool32 GetUnusualWeatherMapNameAndType(void) { - static const u8 gUnknown_085B3400[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; + static const u8 sUnusualWeatherMapNumbers[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; - u16 var = VarGet(VAR_UNUSUAL_WEATHER_LOCATION); + u16 unusualWeather = VarGet(VAR_UNUSUAL_WEATHER_LOCATION); - GetMapName(gStringVar1, gUnknown_085B3400[var - 1], 0); + GetMapName(gStringVar1, sUnusualWeatherMapNumbers[unusualWeather - 1], 0); - if (var < 9) + if (unusualWeather < UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START) { return FALSE; } @@ -3466,7 +3468,8 @@ bool32 sub_813B374(void) bool8 sub_813B3B0(void) { - static const u8 sUnusualWeatherMapNumbers[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; + // Duplicate array. + static const u8 sUnusualWeatherMapNumbers_2[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; u16 var1 = VarGet(VAR_0x4038); u16 unusualWeather = VarGet(VAR_UNUSUAL_WEATHER_LOCATION); @@ -3510,7 +3513,7 @@ bool8 sub_813B3B0(void) } } - if (gSaveBlock1Ptr->location.mapNum == sUnusualWeatherMapNumbers[unusualWeather - 1] && + if (gSaveBlock1Ptr->location.mapNum == sUnusualWeatherMapNumbers_2[unusualWeather - 1] && gSaveBlock1Ptr->location.mapGroup == 0) { return TRUE; -- cgit v1.2.3 From 4b9e93850c50a2fbd380c061e129c76d33f6e452 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Wed, 27 Feb 2019 12:45:31 -0600 Subject: Document easy chat screen types --- data/event_scripts.s | 50 +- .../BattleFrontier_BattleTowerLobby/scripts.inc | 12 +- data/maps/DewfordTown/scripts.inc | 4 +- .../LilycoveCity_PokemonTrainerFanClub/scripts.inc | 8 +- data/maps/Route123_BerryMastersHouse/scripts.inc | 4 +- data/scripts/apprentice.inc | 4 +- data/scripts/gabby_and_ty.inc | 4 +- data/scripts/mauville_man.inc | 4 +- data/scripts/mystery_event_club.inc | 8 +- data/specials.inc | 2 +- graphics/easy_chat/scroll_indicator.png | Bin 0 -> 160 bytes graphics/easy_chat/start_select_buttons.png | Bin 0 -> 214 bytes graphics/easy_chat/triangle_cursor.png | Bin 0 -> 147 bytes graphics/misc/interview_arrow.png | Bin 160 -> 0 bytes graphics/misc/interview_buttons.png | Bin 214 -> 0 bytes graphics/misc/interview_triangle_cursor.png | Bin 147 -> 0 bytes include/constants/easy_chat.h | 27 + include/easy_chat.h | 28 +- include/global.h | 8 +- src/battle_tower.c | 8 +- src/easy_chat.c | 1694 ++++++++++---------- src/lilycove_lady.c | 6 +- src/party_menu.c | 13 +- src/trainer_card.c | 2 +- src/tv.c | 4 +- 25 files changed, 963 insertions(+), 927 deletions(-) create mode 100644 graphics/easy_chat/scroll_indicator.png create mode 100644 graphics/easy_chat/start_select_buttons.png create mode 100644 graphics/easy_chat/triangle_cursor.png delete mode 100644 graphics/misc/interview_arrow.png delete mode 100644 graphics/misc/interview_buttons.png delete mode 100644 graphics/misc/interview_triangle_cursor.png diff --git a/data/event_scripts.s b/data/event_scripts.s index 55bbb7618..1453175b5 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1,6 +1,7 @@ #include "constants/global.h" #include "constants/battle_frontier.h" #include "constants/battle_setup.h" +#include "constants/easy_chat.h" #include "constants/event_objects.h" #include "constants/event_object_movement_constants.h" #include "constants/field_effects.h" @@ -1683,18 +1684,9 @@ Common_EventScript_ShowPokemonCenterSign:: @ 8271E73 msgbox gText_PokemonCenterSign, MSGBOX_SIGN end -BattleFrontier_BattleTowerLobby_EventScript_271E7C:: @ 8271E7C -DewfordTown_EventScript_271E7C:: @ 8271E7C -LilycoveCity_ContestLobby_EventScript_271E7C:: @ 8271E7C -LilycoveCity_PokemonTrainerFanClub_EventScript_271E7C:: @ 8271E7C -MauvilleCity_PokemonCenter_1F_EventScript_271E7C:: @ 8271E7C -PetalburgCity_PokemonCenter_1F_EventScript_271E7C:: @ 8271E7C -Route111_EventScript_271E7C:: @ 8271E7C -Route123_BerryMastersHouse_EventScript_271E7C:: @ 8271E7C -SlateportCity_OceanicMuseum_1F_EventScript_271E7C:: @ 8271E7C -SlateportCity_PokemonFanClub_EventScript_271E7C:: @ 8271E7C +Common_ShowEasyChatScreen:: @ 8271E7C fadescreen 1 - special easy_chat_input_maybe + special ShowEasyChatScreen fadescreen 0 return @@ -2941,8 +2933,8 @@ EventScript_Questionnaire:: @ 827381B msgbox gUnknown_0827339F, MSGBOX_YESNO compare VAR_RESULT, 0 goto_if_eq EventScript_2738FD - setvar VAR_0x8004, 20 - call MauvilleCity_PokemonCenter_1F_EventScript_271E7C + setvar VAR_0x8004, EASY_CHAT_TYPE_QUESTIONNAIRE + call Common_ShowEasyChatScreen lock faceplayer specialvar VAR_0x8008, sub_813B490 @@ -3769,10 +3761,10 @@ SlateportCity_PokemonFanClub_EventScript_28C7F0:: @ 828C7F0 SlateportCity_PokemonFanClub_EventScript_28C827:: @ 828C827 msgbox SlateportCity_PokemonFanClub_Text_28073B, MSGBOX_DEFAULT - setvar VAR_0x8004, 5 + setvar VAR_0x8004, EASY_CHAT_TYPE_INTERVIEW copyvar VAR_0x8005, VAR_0x8009 - setvar VAR_0x8006, 1 - call SlateportCity_PokemonFanClub_EventScript_271E7C + setvar VAR_0x8006, EASY_CHAT_PERSON_REPORTER_FEMALE + call Common_ShowEasyChatScreen lock faceplayer compare VAR_RESULT, 1 @@ -3824,10 +3816,10 @@ SlateportCity_OceanicMuseum_1F_EventScript_28C8C8:: @ 828C8C8 SlateportCity_OceanicMuseum_1F_EventScript_28C8E7:: @ 828C8E7 msgbox SlateportCity_OceanicMuseum_1F_Text_2812F2, MSGBOX_DEFAULT - setvar VAR_0x8004, 5 + setvar VAR_0x8004, EASY_CHAT_TYPE_INTERVIEW copyvar VAR_0x8005, VAR_0x8009 - setvar VAR_0x8006, 0 - call SlateportCity_OceanicMuseum_1F_EventScript_271E7C + setvar VAR_0x8006, EASY_CHAT_PERSON_REPORTER_MALE + call Common_ShowEasyChatScreen lock faceplayer compare VAR_RESULT, 1 @@ -3896,17 +3888,17 @@ SlateportCity_PokemonFanClub_EventScript_28C9DF:: @ 828C9DF end SlateportCity_PokemonFanClub_EventScript_28C9ED:: @ 828C9ED - setvar VAR_0x8004, 7 + setvar VAR_0x8004, EASY_CHAT_TYPE_FAN_CLUB copyvar VAR_0x8005, VAR_0x8009 setvar VAR_0x8006, 0 - call SlateportCity_PokemonFanClub_EventScript_271E7C + call Common_ShowEasyChatScreen lock faceplayer compare VAR_RESULT, 0 goto_if_eq SlateportCity_PokemonFanClub_EventScript_28CA45 msgbox SlateportCity_PokemonFanClub_Text_2804AC, MSGBOX_DEFAULT setvar VAR_0x8006, 1 - call SlateportCity_PokemonFanClub_EventScript_271E7C + call Common_ShowEasyChatScreen lock faceplayer compare VAR_RESULT, 0 @@ -3945,10 +3937,10 @@ LilycoveCity_ContestLobby_EventScript_28CA59:: @ 828CA59 LilycoveCity_ContestLobby_EventScript_28CA9B:: @ 828CA9B msgbox LilycoveCity_ContestLobby_Text_27EFE7, MSGBOX_DEFAULT - setvar VAR_0x8004, 11 + setvar VAR_0x8004, EASY_CHAT_TYPE_CONTEST_INTERVIEW copyvar VAR_0x8005, VAR_0x8009 setvar VAR_0x8006, 0 - call LilycoveCity_ContestLobby_EventScript_271E7C + call Common_ShowEasyChatScreen lock faceplayer compare VAR_RESULT, 1 @@ -3966,10 +3958,10 @@ LilycoveCity_ContestLobby_EventScript_28CADA:: @ 828CADA setvar VAR_0x8004, 24 special SetContestCategoryStringVarForInterview msgbox LilycoveCity_ContestLobby_Text_27F03E, MSGBOX_DEFAULT - setvar VAR_0x8004, 11 + setvar VAR_0x8004, EASY_CHAT_TYPE_CONTEST_INTERVIEW copyvar VAR_0x8005, VAR_0x8009 setvar VAR_0x8006, 1 - call LilycoveCity_ContestLobby_EventScript_271E7C + call Common_ShowEasyChatScreen lock faceplayer compare VAR_RESULT, 0 @@ -4034,9 +4026,9 @@ BattleFrontier_BattleTowerLobby_EventScript_28CBD8:: @ 828CBD8 compare VAR_RESULT, 1 call_if_eq BattleFrontier_BattleTowerLobby_EventScript_28CC41 msgbox BattleFrontier_BattleTowerLobby_Text_27F97A, MSGBOX_DEFAULT - setvar VAR_0x8004, 12 + setvar VAR_0x8004, EASY_CHAT_TYPE_BATTLE_TOWER_INTERVIEW copyvar VAR_0x8005, VAR_0x8009 - call BattleFrontier_BattleTowerLobby_EventScript_271E7C + call Common_ShowEasyChatScreen lock faceplayer compare VAR_RESULT, 1 @@ -4506,7 +4498,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A861C:: @ 82A861C special sub_818E3BC compare VAR_0x8004, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A864C - compare VAR_0x8004, 15 + compare VAR_0x8004, EASY_CHAT_TYPE_QUIZ_ANSWER goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8656 LilycoveCity_PokemonCenter_1F_EventScript_2A8635:: @ 82A8635 diff --git a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc index 8d407ac1d..6d53a33e1 100644 --- a/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerLobby/scripts.inc @@ -572,8 +572,8 @@ BattleFrontier_BattleTowerLobby_EventScript_23EEE7:: @ 823EEE7 BattleFrontier_BattleTowerLobby_EventScript_23EF32:: @ 823EF32 msgbox BattleFrontier_BattleTowerLobby_Text_23F969, MSGBOX_DEFAULT - setvar VAR_0x8004, 1 - call BattleFrontier_BattleTowerLobby_EventScript_271E7C + setvar VAR_0x8004, EASY_CHAT_TYPE_BATTLE_START + call Common_ShowEasyChatScreen lock faceplayer goto BattleFrontier_BattleTowerLobby_EventScript_23EF8A @@ -581,8 +581,8 @@ BattleFrontier_BattleTowerLobby_EventScript_23EF32:: @ 823EF32 BattleFrontier_BattleTowerLobby_EventScript_23EF4C:: @ 823EF4C msgbox BattleFrontier_BattleTowerLobby_Text_23F9AA, MSGBOX_DEFAULT - setvar VAR_0x8004, 2 - call BattleFrontier_BattleTowerLobby_EventScript_271E7C + setvar VAR_0x8004, EASY_CHAT_TYPE_BATTLE_WON + call Common_ShowEasyChatScreen lock faceplayer goto BattleFrontier_BattleTowerLobby_EventScript_23EF8A @@ -590,8 +590,8 @@ BattleFrontier_BattleTowerLobby_EventScript_23EF4C:: @ 823EF4C BattleFrontier_BattleTowerLobby_EventScript_23EF66:: @ 823EF66 msgbox BattleFrontier_BattleTowerLobby_Text_23F9D4, MSGBOX_DEFAULT - setvar VAR_0x8004, 3 - call BattleFrontier_BattleTowerLobby_EventScript_271E7C + setvar VAR_0x8004, EASY_CHAT_TYPE_BATTLE_LOST + call Common_ShowEasyChatScreen lock faceplayer goto BattleFrontier_BattleTowerLobby_EventScript_23EF8A diff --git a/data/maps/DewfordTown/scripts.inc b/data/maps/DewfordTown/scripts.inc index d1f382e36..ed8acea17 100644 --- a/data/maps/DewfordTown/scripts.inc +++ b/data/maps/DewfordTown/scripts.inc @@ -608,8 +608,8 @@ DewfordTown_EventScript_1E9948:: @ 81E9948 DewfordTown_EventScript_1E9952:: @ 81E9952 msgbox DewfordTown_Text_1EA242, MSGBOX_DEFAULT - setvar VAR_0x8004, 9 - call DewfordTown_EventScript_271E7C + setvar VAR_0x8004, EASY_CHAT_TYPE_TRENDY_PHRASE + call Common_ShowEasyChatScreen lock faceplayer compare VAR_RESULT, 1 diff --git a/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc b/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc index f65d901bb..f83be42b9 100644 --- a/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc +++ b/data/maps/LilycoveCity_PokemonTrainerFanClub/scripts.inc @@ -512,9 +512,9 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CD90:: @ 821CD90 setvar VAR_0x8004, 8 special BufferStreakTrainerText msgbox LilycoveCity_PokemonTrainerFanClub_Text_281BCB, MSGBOX_DEFAULT - setvar VAR_0x8004, 14 + setvar VAR_0x8004, EASY_CHAT_TYPE_FAN_QUESTION copyvar VAR_0x8005, VAR_0x800A - call LilycoveCity_PokemonTrainerFanClub_EventScript_271E7C + call Common_ShowEasyChatScreen lock faceplayer compare VAR_RESULT, 1 @@ -542,9 +542,9 @@ LilycoveCity_PokemonTrainerFanClub_EventScript_21CE15:: @ 821CE15 setvar VAR_0x8004, 8 special BufferStreakTrainerText msgbox LilycoveCity_PokemonTrainerFanClub_Text_281C65, MSGBOX_DEFAULT - setvar VAR_0x8004, 14 + setvar VAR_0x8004, EASY_CHAT_TYPE_FAN_QUESTION copyvar VAR_0x8005, VAR_0x800A - call LilycoveCity_PokemonTrainerFanClub_EventScript_271E7C + call Common_ShowEasyChatScreen lock faceplayer compare VAR_RESULT, 1 diff --git a/data/maps/Route123_BerryMastersHouse/scripts.inc b/data/maps/Route123_BerryMastersHouse/scripts.inc index 6d4afa30a..31158782d 100644 --- a/data/maps/Route123_BerryMastersHouse/scripts.inc +++ b/data/maps/Route123_BerryMastersHouse/scripts.inc @@ -41,8 +41,8 @@ Route123_BerryMastersHouse_EventScript_26F8C0:: @ 826F8C0 dotimebasedevents goto_if_set FLAG_DAILY_BERRY_MASTERS_WIFE, Route123_BerryMastersHouse_EventScript_26FA6F msgbox Route123_BerryMastersHouse_Text_2A74E6, MSGBOX_DEFAULT - setvar VAR_0x8004, 13 - call Route123_BerryMastersHouse_EventScript_271E7C + setvar VAR_0x8004, EASY_CHAT_TYPE_GOOD_SAYING + call Common_ShowEasyChatScreen lock faceplayer compare VAR_RESULT, 1 diff --git a/data/scripts/apprentice.inc b/data/scripts/apprentice.inc index ac4bd1979..d6713cde4 100644 --- a/data/scripts/apprentice.inc +++ b/data/scripts/apprentice.inc @@ -269,8 +269,8 @@ BattleFrontier_BattleTowerLobby_EventScript_2B6DD4: apprentice_msg TRUE, 11 setvar VAR_0x8004, 25 special CallApprenticeFunction - setvar VAR_0x8004, 19 - call BattleFrontier_BattleTowerLobby_EventScript_271E7C + setvar VAR_0x8004, EASY_CHAT_TYPE_APPRENTICE + call Common_ShowEasyChatScreen lock faceplayer setvar VAR_0x8004, 21 diff --git a/data/scripts/gabby_and_ty.inc b/data/scripts/gabby_and_ty.inc index ee0e533bc..31000539c 100644 --- a/data/scripts/gabby_and_ty.inc +++ b/data/scripts/gabby_and_ty.inc @@ -313,8 +313,8 @@ Route111_EventScript_28D0A7:: @ 828D0A7 compare VAR_RESULT, 0 goto_if_eq Route111_EventScript_28D0E1 msgbox Route111_Text_28B433, MSGBOX_DEFAULT - setvar VAR_0x8004, 10 - call Route111_EventScript_271E7C + setvar VAR_0x8004, EASY_CHAT_TYPE_GABBY_AND_TY + call Common_ShowEasyChatScreen lock faceplayer compare VAR_RESULT, 0 diff --git a/data/scripts/mauville_man.inc b/data/scripts/mauville_man.inc index 2791e5d9f..0ab47ea80 100644 --- a/data/scripts/mauville_man.inc +++ b/data/scripts/mauville_man.inc @@ -43,8 +43,8 @@ MauvilleCity_PokemonCenter_1F_EventScript_28E0F4:: @ 828E0F4 end MauvilleCity_PokemonCenter_1F_EventScript_28E113:: @ 828E113 - setvar VAR_0x8004, 6 - call MauvilleCity_PokemonCenter_1F_EventScript_271E7C + setvar VAR_0x8004, EASY_CHAT_TYPE_BARD_SONG + call Common_ShowEasyChatScreen lock faceplayer compare VAR_RESULT, 0 diff --git a/data/scripts/mystery_event_club.inc b/data/scripts/mystery_event_club.inc index ea805edc4..cc189a96b 100644 --- a/data/scripts/mystery_event_club.inc +++ b/data/scripts/mystery_event_club.inc @@ -24,8 +24,8 @@ PetalburgCity_PokemonCenter_1F_EventScript_291591:: @ 8291591 PetalburgCity_PokemonCenter_1F_EventScript_29159F:: @ 829159F msgbox PetalburgCity_PokemonCenter_1F_Text_291969, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, 0 - call PetalburgCity_PokemonCenter_1F_EventScript_271E7C + setvar VAR_0x8004, EASY_CHAT_TYPE_PROFILE + call Common_ShowEasyChatScreen lock faceplayer compare VAR_RESULT, 0 @@ -76,8 +76,8 @@ PetalburgCity_PokemonCenter_1F_EventScript_291642:: @ 8291642 PetalburgCity_PokemonCenter_1F_EventScript_291650:: @ 8291650 msgbox PetalburgCity_PokemonCenter_1F_Text_291A6B, MSGBOX_DEFAULT closemessage - setvar VAR_0x8004, 0 - call PetalburgCity_PokemonCenter_1F_EventScript_271E7C + setvar VAR_0x8004, EASY_CHAT_TYPE_PROFILE + call Common_ShowEasyChatScreen lock faceplayer compare VAR_RESULT, 0 diff --git a/data/specials.inc b/data/specials.inc index 965bef117..e7f5e6072 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -106,7 +106,7 @@ gSpecials:: @ 81DBA64 def_special sub_80B3000 def_special SaveGame def_special DoWateringBerryTreeAnim - def_special easy_chat_input_maybe + def_special ShowEasyChatScreen def_special sub_811EECC def_special ScrSpecial_GetCurrentMauvilleMan def_special ScrSpecial_HasBardSongBeenChanged diff --git a/graphics/easy_chat/scroll_indicator.png b/graphics/easy_chat/scroll_indicator.png new file mode 100644 index 000000000..1c1073d2f Binary files /dev/null and b/graphics/easy_chat/scroll_indicator.png differ diff --git a/graphics/easy_chat/start_select_buttons.png b/graphics/easy_chat/start_select_buttons.png new file mode 100644 index 000000000..d6dfc7cbd Binary files /dev/null and b/graphics/easy_chat/start_select_buttons.png differ diff --git a/graphics/easy_chat/triangle_cursor.png b/graphics/easy_chat/triangle_cursor.png new file mode 100644 index 000000000..a4a3f0bb1 Binary files /dev/null and b/graphics/easy_chat/triangle_cursor.png differ diff --git a/graphics/misc/interview_arrow.png b/graphics/misc/interview_arrow.png deleted file mode 100644 index 1c1073d2f..000000000 Binary files a/graphics/misc/interview_arrow.png and /dev/null differ diff --git a/graphics/misc/interview_buttons.png b/graphics/misc/interview_buttons.png deleted file mode 100644 index d6dfc7cbd..000000000 Binary files a/graphics/misc/interview_buttons.png and /dev/null differ diff --git a/graphics/misc/interview_triangle_cursor.png b/graphics/misc/interview_triangle_cursor.png deleted file mode 100644 index a4a3f0bb1..000000000 Binary files a/graphics/misc/interview_triangle_cursor.png and /dev/null differ diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h index 1c8866bc3..50f5994f4 100644 --- a/include/constants/easy_chat.h +++ b/include/constants/easy_chat.h @@ -1,6 +1,33 @@ #ifndef GUARD_CONSTANTS_EASY_CHAT_H #define GUARD_CONSTANTS_EASY_CHAT_H +#define EASY_CHAT_TYPE_PROFILE 0 +#define EASY_CHAT_TYPE_BATTLE_START 1 +#define EASY_CHAT_TYPE_BATTLE_WON 2 +#define EASY_CHAT_TYPE_BATTLE_LOST 3 +#define EASY_CHAT_TYPE_MAIL 4 +#define EASY_CHAT_TYPE_INTERVIEW 5 +#define EASY_CHAT_TYPE_BARD_SONG 6 +#define EASY_CHAT_TYPE_FAN_CLUB 7 +#define EASY_CHAT_TYPE_UNK_8 8 +#define EASY_CHAT_TYPE_TRENDY_PHRASE 9 +#define EASY_CHAT_TYPE_GABBY_AND_TY 10 +#define EASY_CHAT_TYPE_CONTEST_INTERVIEW 11 +#define EASY_CHAT_TYPE_BATTLE_TOWER_INTERVIEW 12 +#define EASY_CHAT_TYPE_GOOD_SAYING 13 +#define EASY_CHAT_TYPE_FAN_QUESTION 14 +#define EASY_CHAT_TYPE_QUIZ_ANSWER 15 +#define EASY_CHAT_TYPE_QUIZ_QUESTION 16 +#define EASY_CHAT_TYPE_QUIZ_SET_QUESTION 17 +#define EASY_CHAT_TYPE_QUIZ_SET_ANSWER 18 +#define EASY_CHAT_TYPE_APPRENTICE 19 +#define EASY_CHAT_TYPE_QUESTIONNAIRE 20 + +#define EASY_CHAT_PERSON_REPORTER_MALE 0 +#define EASY_CHAT_PERSON_REPORTER_FEMALE 1 +#define EASY_CHAT_PERSON_BOY 2 +#define EASY_CHAT_PERSON_DISPLAY_NONE 3 + #define EC_GROUP_POKEMON 0x0 #define EC_GROUP_TRAINER 0x1 #define EC_GROUP_STATUS 0x2 diff --git a/include/easy_chat.h b/include/easy_chat.h index b7685e48c..2efdc4e5d 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -6,11 +6,11 @@ struct EasyChatScreenTemplate { - u8 unk_00; + u8 type; u8 numColumns; u8 numRows; - u8 unk_03_0:7; - u8 unk_03_7:1; + u8 frameId:7; + u8 fourFooterOptions:1; const u8 *titleText; const u8 *instructionsText1; const u8 *instructionsText2; @@ -20,7 +20,7 @@ struct EasyChatScreenTemplate struct EasyChatScreen { - /*0x00*/ u8 kind; + /*0x00*/ u8 type; /*0x01*/ u8 templateId; /*0x02*/ u8 numColumns; /*0x03*/ u8 numRows; @@ -28,7 +28,7 @@ struct EasyChatScreen /*0x05*/ s8 mainCursorColumn; /*0x06*/ s8 mainCursorRow; /*0x07*/ u8 unk_07; - /*0x08*/ u8 unk_08; + /*0x08*/ u8 stateBackup; /*0x09*/ u8 unk_09; /*0x0A*/ s8 unk_0a; /*0x0B*/ s8 unk_0b; @@ -38,7 +38,7 @@ struct EasyChatScreen /*0x0F*/ u8 unk_0f; /*0x10*/ s8 unk_10; /*0x11*/ s8 unk_11; - /*0x12*/ u8 sizeParam; + /*0x12*/ u8 displayedPersonType; /*0x13*/ u8 unk_13; /*0x14*/ u8 unk_14[0x20]; /*0x34*/ const u8 *titleText; @@ -75,13 +75,13 @@ struct Unk203A11C u16 unkB00[BG_SCREEN_SIZE / 2]; }; -struct Unk08597C30 +struct EasyChatPhraseFrameDimensions { - u8 unk0_0:5; - u8 unk0_5:3; - u8 unk1; - u8 unk2; - u8 unk3; + u8 left:5; + u8 top:3; + u8 width; + u8 height; + u8 footerId; }; struct EasyChatWordInfo @@ -122,7 +122,7 @@ struct EasyChatWordsByLetter }; void InitEasyChatPhrases(void); -void easy_chat_input_maybe(void); +void ShowEasyChatScreen(void); u8 * CopyEasyChatWord(u8 *dest, u16 word); bool32 sub_811F8D8(int word); void InitializeEasyChatWordArray(u16 *words, u16 length); @@ -132,7 +132,7 @@ u16 sub_811EE38(u16 group); u16 sub_811F01C(void); u16 EasyChat_GetNumWordsInGroup(u8); u16 sub_811EE90(u16); -void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam); +void DoEasyChatScreen(u8 type, u16 *words, MainCallback callback, u8 displayedPersonType); void sub_811F8BC(void); #endif // GUARD_EASYCHAT_H diff --git a/include/global.h b/include/global.h index ee0ba6893..cc026f36a 100644 --- a/include/global.h +++ b/include/global.h @@ -870,10 +870,10 @@ struct SaveBlock1 /*0x2BA1*/ u8 outbreakPokemonProbability; /*0x2BA2*/ u16 outbreakDaysLeft; /*0x2BA4*/ struct GabbyAndTyData gabbyAndTyData; - /*0x2BB0*/ u16 unk2BB0[6]; - /*0x2BBC*/ u16 unk2BBC[6]; - /*0x2BC8*/ u16 unk2BC8[6]; - /*0x2BD4*/ u16 unk2BD4[6]; + /*0x2BB0*/ u16 easyChatProfile[6]; + /*0x2BBC*/ u16 easyChatBattleStart[6]; + /*0x2BC8*/ u16 easyChatBattleWon[6]; + /*0x2BD4*/ u16 easyChatBattleLost[6]; /*0x2BE0*/ struct MailStruct mail[MAIL_COUNT]; /*0x2E20*/ u8 additionalPhrases[8]; // bitfield for 33 additional phrases in easy chat system /*0x2E28*/ OldMan oldMan; diff --git a/src/battle_tower.c b/src/battle_tower.c index fbb77789e..06aaef48d 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -2401,9 +2401,9 @@ static void sub_8163EE4(void) for (i = 0; i < 6; i++) { - playerRecord->greeting[i] = gSaveBlock1Ptr->unk2BBC[i]; - playerRecord->speechWon[i] = gSaveBlock1Ptr->unk2BC8[i]; - playerRecord->speechLost[i] = gSaveBlock1Ptr->unk2BD4[i]; + playerRecord->greeting[i] = gSaveBlock1Ptr->easyChatBattleStart[i]; + playerRecord->speechWon[i] = gSaveBlock1Ptr->easyChatBattleWon[i]; + playerRecord->speechLost[i] = gSaveBlock1Ptr->easyChatBattleLost[i]; } for (i = 0; i < 4; i++) @@ -3059,7 +3059,7 @@ static void FillEReaderTrainerWithPlayerData(void) j = 7; for (i = 0; i < 6; i++) { - ereaderTrainer->greeting[i] = gSaveBlock1Ptr->unk2BBC[i]; + ereaderTrainer->greeting[i] = gSaveBlock1Ptr->easyChatBattleStart[i]; ereaderTrainer->farewellPlayerLost[i] = j; ereaderTrainer->farewellPlayerWon[i] = j + 6; j++; diff --git a/src/easy_chat.c b/src/easy_chat.c index 3c436246d..aa681eeba 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -34,18 +34,18 @@ #include "constants/species.h" #define EZCHAT_TASK_STATE 0 -#define EZCHAT_TASK_KIND 1 +#define EZCHAT_TASK_TYPE 1 #define EZCHAT_TASK_WORDS 2 #define EZCHAT_TASK_MAINCALLBACK 4 #define EZCHAT_TASK_UNK06 6 #define EZCHAT_TASK_SIZE 7 -EWRAM_DATA struct EasyChatScreen *gEasyChatScreen = NULL; -EWRAM_DATA struct Unk203A11C *gUnknown_0203A11C = 0; -EWRAM_DATA struct Unk203A120 *gUnknown_0203A120 = 0; +static EWRAM_DATA struct EasyChatScreen *sEasyChatScreen = NULL; +static EWRAM_DATA struct Unk203A11C *sUnknown_0203A11C = NULL; +static EWRAM_DATA struct Unk203A120 *sUnknown_0203A120 = NULL; static void sub_811A2C0(u8); -static void sub_811A278(void); +static void MainCallback_EasyChatScreen(void); static bool8 sub_811A428(u8); static void sub_811A2FC(u8); static void sub_811A4D0(MainCallback); @@ -67,8 +67,8 @@ static u16 sub_811B0E8(void); static u16 sub_811B0F8(void); static u16 sub_811B150(void); static u16 sub_811B1B4(void); -static u8 sub_811BA68(void); -static u8 sub_811BCC8(u8); +static u8 GetEasyChatScreenFrameId(void); +static u8 GetEachChatScreenTemplateId(u8); static void sub_811BDF0(u8 *); static void sub_811BF78(void); static bool8 sub_811BF8C(void); @@ -79,7 +79,7 @@ static bool8 sub_811C170(void); static bool8 sub_811F28C(void); static void sub_811F2B8(void); static u8 sub_811F3AC(void); -static int sub_811BA3C(void); +static int FooterHasFourOptions(void); static int sub_811B184(void); static int sub_811B264(void); static int sub_811B32C(void); @@ -169,7 +169,7 @@ static bool8 sub_811CDD4(void); static bool8 sub_811CE14(void); static bool8 sub_811CE54(void); static void sub_811DF60(u8, u8); -static int sub_811E920(int); +static int GetFooterOptionXOffset(int); static void sub_811DF90(void); static void sub_811D104(u8); static void sub_811D214(u8); @@ -228,10 +228,10 @@ static u16 sub_811F5C4(u16); static u16 sub_811F6B8(u16); static bool8 sub_811F764(u16, u8); static int sub_811F838(u16); -static void sub_811A8CC(void); -static void sub_811A8F0(void); -static void sub_811A914(void); -static void sub_811A938(void); +static void DoQuizAnswerEasyChatScreen(void); +static void DoQuizQuestionEasyChatScreen(void); +static void DoQuizSetAnswerEasyChatScreen(void); +static void DoQuizSetQuestionEasyChatScreen(void); struct Unk8597530 { @@ -242,28 +242,29 @@ struct Unk8597530 static const struct Unk8597530 sUnknown_08597530[] = { { .word = 26, - .callback = sub_811A8CC, + .callback = DoQuizAnswerEasyChatScreen, }, { .word = 25, - .callback = sub_811A8F0, + .callback = DoQuizQuestionEasyChatScreen, }, { .word = 28, - .callback = sub_811A914, + .callback = DoQuizSetAnswerEasyChatScreen, }, { .word = 27, - .callback = sub_811A938, + .callback = DoQuizSetQuestionEasyChatScreen, }, }; -static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { + +static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { { - .unk_00 = 0, + .type = EASY_CHAT_TYPE_PROFILE, .numColumns = 2, .numRows = 2, - .unk_03_0 = 0, - .unk_03_7 = 0, + .frameId = 0, + .fourFooterOptions = FALSE, .titleText = gText_Profile, .instructionsText1 = gText_CombineFourWordsOrPhrases, .instructionsText2 = gText_AndMakeYourProfile, @@ -271,11 +272,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 1, + .type = EASY_CHAT_TYPE_BATTLE_START, .numColumns = 2, .numRows = 3, - .unk_03_0 = 1, - .unk_03_7 = 0, + .frameId = 1, + .fourFooterOptions = FALSE, .titleText = gText_AtTheBattlesStart, .instructionsText1 = gText_CombineSixWordsOrPhrases, .instructionsText2 = gText_AndMakeAMessage, @@ -283,11 +284,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 2, + .type = EASY_CHAT_TYPE_BATTLE_WON, .numColumns = 2, .numRows = 3, - .unk_03_0 = 1, - .unk_03_7 = 0, + .frameId = 1, + .fourFooterOptions = FALSE, .titleText = gText_UponWinningABattle, .instructionsText1 = gText_CombineSixWordsOrPhrases, .instructionsText2 = gText_AndMakeAMessage, @@ -295,11 +296,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 3, + .type = EASY_CHAT_TYPE_BATTLE_LOST, .numColumns = 2, .numRows = 3, - .unk_03_0 = 1, - .unk_03_7 = 0, + .frameId = 1, + .fourFooterOptions = FALSE, .titleText = gText_UponLosingABattle, .instructionsText1 = gText_CombineSixWordsOrPhrases, .instructionsText2 = gText_AndMakeAMessage, @@ -307,11 +308,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 4, + .type = EASY_CHAT_TYPE_MAIL, .numColumns = 2, .numRows = 5, - .unk_03_0 = 2, - .unk_03_7 = 0, + .frameId = 2, + .fourFooterOptions = FALSE, .titleText = NULL, .instructionsText1 = gText_CombineNineWordsOrPhrases, .instructionsText2 = gText_AndMakeAMessage2, @@ -319,11 +320,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 5, + .type = EASY_CHAT_TYPE_INTERVIEW, .numColumns = 2, .numRows = 2, - .unk_03_0 = 5, - .unk_03_7 = 0, + .frameId = 5, + .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_CombineFourWordsOrPhrases, .instructionsText2 = gText_LetsReplyToTheInterview, @@ -331,11 +332,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 6, + .type = EASY_CHAT_TYPE_BARD_SONG, .numColumns = 2, .numRows = 3, - .unk_03_0 = 1, - .unk_03_7 = 0, + .frameId = 1, + .fourFooterOptions = FALSE, .titleText = gText_TheBardsSong, .instructionsText1 = gText_ChangeJustOneWordOrPhrase, .instructionsText2 = gText_AndImproveTheBardsSong, @@ -343,11 +344,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 7, + .type = EASY_CHAT_TYPE_FAN_CLUB, .numColumns = 1, .numRows = 1, - .unk_03_0 = 4, - .unk_03_7 = 0, + .frameId = 4, + .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_FindWordsThatDescribeYour, .instructionsText2 = gText_FeelingsRightNow, @@ -355,11 +356,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 9, + .type = EASY_CHAT_TYPE_TRENDY_PHRASE, .numColumns = 2, .numRows = 1, - .unk_03_0 = 3, - .unk_03_7 = 0, + .frameId = 3, + .fourFooterOptions = FALSE, .titleText = gText_WhatsHipAndHappening, .instructionsText1 = gText_CombineTwoWordsOrPhrases, .instructionsText2 = gText_AndMakeATrendySaying, @@ -367,11 +368,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 16, + .type = EASY_CHAT_TYPE_QUIZ_QUESTION, .numColumns = 2, .numRows = 5, - .unk_03_0 = 7, - .unk_03_7 = 1, + .frameId = 7, + .fourFooterOptions = TRUE, .titleText = NULL, .instructionsText1 = gText_AfterYouHaveReadTheQuiz, .instructionsText2 = gText_QuestionPressTheAButton, @@ -379,11 +380,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = NULL, }, { - .unk_00 = 15, + .type = EASY_CHAT_TYPE_QUIZ_ANSWER, .numColumns = 1, .numRows = 1, - .unk_03_0 = 6, - .unk_03_7 = 1, + .frameId = 6, + .fourFooterOptions = TRUE, .titleText = gText_TheQuizAnswerIs, .instructionsText1 = gText_OutOfTheListedChoices, .instructionsText2 = gText_SelectTheAnswerToTheQuiz, @@ -391,11 +392,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 17, + .type = EASY_CHAT_TYPE_QUIZ_SET_QUESTION, .numColumns = 2, .numRows = 5, - .unk_03_0 = 8, - .unk_03_7 = 1, + .frameId = 8, + .fourFooterOptions = TRUE, .titleText = NULL, .instructionsText1 = gText_CombineNineWordsOrPhrases, .instructionsText2 = gText_AndCreateAQuiz, @@ -403,11 +404,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = NULL, }, { - .unk_00 = 18, + .type = EASY_CHAT_TYPE_QUIZ_SET_ANSWER, .numColumns = 1, .numRows = 1, - .unk_03_0 = 6, - .unk_03_7 = 1, + .frameId = 6, + .fourFooterOptions = TRUE, .titleText = gText_TheQuizAnswerIs, .instructionsText1 = gText_PickAWordOrPhraseAnd, .instructionsText2 = gText_SetTheQuizAnswer, @@ -415,11 +416,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = NULL, }, { - .unk_00 = 6, + .type = EASY_CHAT_TYPE_BARD_SONG, .numColumns = 2, .numRows = 3, - .unk_03_0 = 1, - .unk_03_7 = 0, + .frameId = 1, + .fourFooterOptions = FALSE, .titleText = gText_TheBardsSong, .instructionsText1 = gText_ChangeJustOneWordOrPhrase, .instructionsText2 = gText_AndImproveTheBardsSong, @@ -427,11 +428,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 19, + .type = EASY_CHAT_TYPE_APPRENTICE, .numColumns = 2, .numRows = 3, - .unk_03_0 = 1, - .unk_03_7 = 0, + .frameId = 1, + .fourFooterOptions = FALSE, .titleText = gText_ApprenticesPhrase, .instructionsText1 = gText_FindWordsWhichFit, .instructionsText2 = gText_TheTrainersImage, @@ -439,11 +440,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 13, + .type = EASY_CHAT_TYPE_GOOD_SAYING, .numColumns = 2, .numRows = 1, - .unk_03_0 = 3, - .unk_03_7 = 0, + .frameId = 3, + .fourFooterOptions = FALSE, .titleText = gText_GoodSaying, .instructionsText1 = gText_CombineTwoWordsOrPhrases2, .instructionsText2 = gText_ToTeachHerAGoodSaying, @@ -451,11 +452,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 10, + .type = EASY_CHAT_TYPE_GABBY_AND_TY, .numColumns = 1, .numRows = 1, - .unk_03_0 = 4, - .unk_03_7 = 0, + .frameId = 4, + .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_FindWordsThatDescribeYour, .instructionsText2 = gText_FeelingsRightNow, @@ -463,11 +464,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 12, + .type = EASY_CHAT_TYPE_BATTLE_TOWER_INTERVIEW, .numColumns = 1, .numRows = 1, - .unk_03_0 = 4, - .unk_03_7 = 0, + .frameId = 4, + .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_FindWordsThatDescribeYour, .instructionsText2 = gText_FeelingsRightNow, @@ -475,11 +476,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 11, + .type = EASY_CHAT_TYPE_CONTEST_INTERVIEW, .numColumns = 1, .numRows = 1, - .unk_03_0 = 4, - .unk_03_7 = 0, + .frameId = 4, + .fourFooterOptions = FALSE, .titleText = gText_Interview, .instructionsText1 = gText_FindWordsThatDescribeYour, .instructionsText2 = gText_FeelingsRightNow, @@ -487,11 +488,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 14, + .type = EASY_CHAT_TYPE_FAN_QUESTION, .numColumns = 1, .numRows = 1, - .unk_03_0 = 4, - .unk_03_7 = 0, + .frameId = 4, + .fourFooterOptions = FALSE, .titleText = gText_FansQuestion, .instructionsText1 = gText_FindWordsWhichFit, .instructionsText2 = gText_TheTrainersImage, @@ -499,11 +500,11 @@ static const struct EasyChatScreenTemplate gEasyChatScreenTemplates[] = { .confirmText2 = gText_IsAsShownOkay, }, { - .unk_00 = 20, + .type = EASY_CHAT_TYPE_QUESTIONNAIRE, .numColumns = 2, .numRows = 2, - .unk_03_0 = 0, - .unk_03_7 = 0, + .frameId = 0, + .fourFooterOptions = FALSE, .titleText = gText_Questionnaire, .instructionsText1 = gText_CombineFourWordsOrPhrases, .instructionsText2 = gText_AndFillOutTheQuestionnaire, @@ -534,10 +535,10 @@ static const u16 sBerryMasterWifePhrases[][2] = { {EC_WORD_SUPER, EC_WORD_HUSTLE}, }; -static const u16 sUnknown_08597780[] = INCBIN_U16("graphics/misc/interview_triangle_cursor.gbapal"); -static const u32 sUnknown_085977A0[] = INCBIN_U32("graphics/misc/interview_triangle_cursor.4bpp"); -static const u32 sUnknown_085977C0[] = INCBIN_U32("graphics/misc/interview_arrow.4bpp"); -static const u32 sUnknown_085978C0[] = INCBIN_U32("graphics/misc/interview_buttons.4bpp"); +static const u16 sEasyChatTriangleCursorPalette[] = INCBIN_U16("graphics/easy_chat/triangle_cursor.gbapal"); +static const u32 sEasyChatTriangleCursorGfx[] = INCBIN_U32("graphics/easy_chat/triangle_cursor.4bpp"); +static const u32 sEasyChatScrollIndicatorGfx[] = INCBIN_U32("graphics/easy_chat/scroll_indicator.4bpp"); +static const u32 sEasyChatStartSelectButtonsGfx[] = INCBIN_U32("graphics/easy_chat/start_select_buttons.4bpp"); static const u16 sUnknown_085979C0[] = INCBIN_U16("graphics/misc/interview_frame.gbapal"); static const u32 sUnknown_085979E0[] = INCBIN_U32("graphics/misc/interview_frame.4bpp.lz"); static const u16 sUnknown_08597B14[] = INCBIN_U16("graphics/misc/interview_frame_orange.gbapal"); @@ -546,69 +547,69 @@ static const u32 sUnknown_08597B54[] = INCBIN_U32("graphics/misc/interview_frame static const u16 sUnknown_08597C1C[] = INCBIN_U16("graphics/misc/8597C1C.gbapal"); static const u16 sUnknown_08597C24[] = INCBIN_U16("graphics/misc/8597C24.gbapal"); -static const struct Unk08597C30 gUnknown_08597C30[] = { +static const struct EasyChatPhraseFrameDimensions sPhraseFrameDimensions[] = { { - .unk0_0 = 3, - .unk0_5 = 4, - .unk1 = 24, - .unk2 = 4, - .unk3 = 0, + .left = 3, + .top = 4, + .width = 24, + .height = 4, + .footerId = 0, }, { - .unk0_0 = 3, - .unk0_5 = 3, - .unk1 = 24, - .unk2 = 6, - .unk3 = 0, + .left = 3, + .top = 3, + .width = 24, + .height = 6, + .footerId = 0, }, { - .unk0_0 = 3, - .unk0_5 = 0, - .unk1 = 24, - .unk2 = 10, - .unk3 = 0, + .left = 3, + .top = 0, + .width = 24, + .height = 10, + .footerId = 0, }, { - .unk0_0 = 3, - .unk0_5 = 5, - .unk1 = 24, - .unk2 = 2, - .unk3 = 0, + .left = 3, + .top = 5, + .width = 24, + .height = 2, + .footerId = 0, }, { - .unk0_0 = 16, - .unk0_5 = 5, - .unk1 = 12, - .unk2 = 2, - .unk3 = 0, + .left = 16, + .top = 5, + .width = 12, + .height = 2, + .footerId = 0, }, { - .unk0_0 = 3, - .unk0_5 = 4, - .unk1 = 24, - .unk2 = 4, - .unk3 = 0, + .left = 3, + .top = 4, + .width = 24, + .height = 4, + .footerId = 0, }, { - .unk0_0 = 9, - .unk0_5 = 4, - .unk1 = 12, - .unk2 = 2, - .unk3 = 1, + .left = 9, + .top = 4, + .width = 12, + .height = 2, + .footerId = 1, }, { - .unk0_0 = 5, - .unk0_5 = 3, - .unk1 = 0x14, - .unk2 = 10, - .unk3 = 3, + .left = 5, + .top = 3, + .width = 0x14, + .height = 10, + .footerId = 3, }, { - .unk0_0 = 3, - .unk0_5 = 0, - .unk1 = 24, - .unk2 = 10, - .unk3 = 2, + .left = 3, + .top = 0, + .width = 24, + .height = 10, + .footerId = 2, }, }; @@ -701,28 +702,28 @@ static const u8 *const sUnknown_08597C90[] = { gUnknown_862B86C, }; -static const struct SpriteSheet sUnknown_08597CA0[] = { +static const struct SpriteSheet sEasyChatSpriteSheets[] = { { - .data = sUnknown_085977A0, + .data = sEasyChatTriangleCursorGfx, .size = 0x0020, .tag = 0 }, { - .data = sUnknown_085977C0, + .data = sEasyChatScrollIndicatorGfx, .size = 0x0100, .tag = 2 }, { - .data = sUnknown_085978C0, + .data = sEasyChatStartSelectButtonsGfx, .size = 0x0100, .tag = 3 }, {0} }; -static const struct SpritePalette sUnknown_08597CC0[] = { +static const struct SpritePalette sEasyChatSpritePalettes[] = { { - .data = sUnknown_08597780, + .data = sEasyChatTriangleCursorPalette, .tag = 0, }, { @@ -999,7 +1000,7 @@ static const struct SpriteTemplate sUnknown_08597E48 = { .callback = SpriteCallbackDummy, }; -static const u8 sUnknown_08597E60[][4] = { +static const u8 sFooterOptionXOffsets[][4] = { {16, 111, 196, 0}, {16, 78, 130, 160}, {16, 80, 134, 170}, @@ -1039,14 +1040,14 @@ const u8 *const gEasyChatGroupNamePointers[] = { [EC_GROUP_POKEMON_2] = gEasyChatGroupName_Pokemon2, }; -static const u16 sUnknown_0859E62C[] = { +static const u16 sDefaultProfileWords[] = { EC_WORD_I_AM, EC_WORD_A, EC_WORD_POKEMON, EC_WORD_FRIEND, }; -static const u16 sUnknown_0859E634[] = { +static const u16 sDefaultBattleStartWords[] = { EC_WORD_ARE, EC_WORD_YOU, EC_WORD_READY, @@ -1077,20 +1078,20 @@ static const u16 sUnknown_0859E658[] = { SPECIES_DEOXYS, }; -void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam) +void DoEasyChatScreen(u8 type, u16 *words, MainCallback callback, u8 displayedPersonType) { u8 taskId; ResetTasks(); taskId = CreateTask(sub_811A2C0, 0); - gTasks[taskId].data[EZCHAT_TASK_KIND] = kind; - gTasks[taskId].data[EZCHAT_TASK_SIZE] = sizeParam; + gTasks[taskId].data[EZCHAT_TASK_TYPE] = type; + gTasks[taskId].data[EZCHAT_TASK_SIZE] = displayedPersonType; SetWordTaskArg(taskId, EZCHAT_TASK_WORDS, (u32)words); SetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK, (u32)callback); - SetMainCallback2(sub_811A278); + SetMainCallback2(MainCallback_EasyChatScreen); } -static void sub_811A278(void) +static void MainCallback_EasyChatScreen(void) { RunTasks(); AnimateSprites(); @@ -1098,7 +1099,7 @@ static void sub_811A278(void) UpdatePaletteFade(); } -static void sub_811A290(void) +static void VBlankCallback_EasyChatScreen(void) { TransferPlttBuffer(); LoadOam(); @@ -1136,22 +1137,22 @@ static void sub_811A2FC(u8 taskId) switch (data[EZCHAT_TASK_STATE]) { case 0: - SetVBlankCallback(sub_811A290); + SetVBlankCallback(VBlankCallback_EasyChatScreen); BlendPalettes(0xFFFFFFFF, 16, 0); - BeginNormalPaletteFade(-1, -1, 16, 0, 0); + BeginNormalPaletteFade(0xFFFFFFFF, -1, 16, 0, 0); data[EZCHAT_TASK_STATE] = 5; break; case 1: v0 = sub_811AAAC(); if (sub_811A88C(v0)) { - BeginNormalPaletteFade(-1, -2, 0, 16, 0); + BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, 0); data[EZCHAT_TASK_STATE] = 3; data[EZCHAT_TASK_UNK06] = v0; } else if (v0 == 0x18) { - BeginNormalPaletteFade(-1, -1, 0, 16, 0); + BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, 0); data[EZCHAT_TASK_STATE] = 4; } else if (v0 != 0) @@ -1163,27 +1164,19 @@ static void sub_811A2FC(u8 taskId) break; case 2: if (!sub_811C170()) - { data[EZCHAT_TASK_STATE] = 1; - } break; case 3: if (!gPaletteFade.active) - { sub_811A8A4(data[EZCHAT_TASK_UNK06]); - } break; case 4: if (!gPaletteFade.active) - { sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); - } break; case 5: if (!gPaletteFade.active) - { data[EZCHAT_TASK_STATE] = 1; - } break; } } @@ -1208,7 +1201,7 @@ static bool8 sub_811A428(u8 taskId) } break; case 2: - if (!EasyChat_AllocateResources(data[EZCHAT_TASK_KIND], (u16 *)GetWordTaskArg(taskId, EZCHAT_TASK_WORDS), data[EZCHAT_TASK_SIZE])) + if (!EasyChat_AllocateResources(data[EZCHAT_TASK_TYPE], (u16 *)GetWordTaskArg(taskId, EZCHAT_TASK_WORDS), data[EZCHAT_TASK_SIZE])) { sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); } @@ -1241,98 +1234,98 @@ static void sub_811A4D0(MainCallback callback) SetMainCallback2(callback); } -void easy_chat_input_maybe(void) +void ShowEasyChatScreen(void) { int i; u16 *words; struct MauvilleManBard *bard; - u8 sizeParam = 3; + u8 displayedPersonType = EASY_CHAT_PERSON_DISPLAY_NONE; switch (gSpecialVar_0x8004) { - case 0: - words = gSaveBlock1Ptr->unk2BB0; + case EASY_CHAT_TYPE_PROFILE: + words = gSaveBlock1Ptr->easyChatProfile; break; - case 1: - words = gSaveBlock1Ptr->unk2BBC; + case EASY_CHAT_TYPE_BATTLE_START: + words = gSaveBlock1Ptr->easyChatBattleStart; break; - case 2: - words = gSaveBlock1Ptr->unk2BC8; + case EASY_CHAT_TYPE_BATTLE_WON: + words = gSaveBlock1Ptr->easyChatBattleWon; break; - case 3: - words = gSaveBlock1Ptr->unk2BD4; + case EASY_CHAT_TYPE_BATTLE_LOST: + words = gSaveBlock1Ptr->easyChatBattleLost; break; - case 4: + case EASY_CHAT_TYPE_MAIL: words = gSaveBlock1Ptr->mail[gSpecialVar_0x8005].words; break; - case 6: + case EASY_CHAT_TYPE_BARD_SONG: bard = &gSaveBlock1Ptr->oldMan.bard; for (i = 0; i < 6; i ++) - { bard->temporaryLyrics[i] = bard->songLyrics[i]; - } + words = bard->temporaryLyrics; break; - case 5: + case EASY_CHAT_TYPE_INTERVIEW: words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].bravoTrainer.words; - sizeParam = gSpecialVar_0x8006; + displayedPersonType = gSpecialVar_0x8006; break; - case 7: + case EASY_CHAT_TYPE_FAN_CLUB: words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanclubOpinions.words[gSpecialVar_0x8006]; - sizeParam = 1; + displayedPersonType = EASY_CHAT_PERSON_REPORTER_FEMALE; break; - case 8: + case EASY_CHAT_TYPE_UNK_8: words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].unkShow04.words; - sizeParam = 0; + displayedPersonType = EASY_CHAT_PERSON_REPORTER_MALE; break; - case 9: + case EASY_CHAT_TYPE_TRENDY_PHRASE: words = (u16 *)gStringVar3; words[0] = gSaveBlock1Ptr->easyChatPairs[0].words[0]; words[1] = gSaveBlock1Ptr->easyChatPairs[0].words[1]; break; - case 10: + case EASY_CHAT_TYPE_GABBY_AND_TY: words = gSaveBlock1Ptr->gabbyAndTyData.quote; *words = -1; - sizeParam = 1; + displayedPersonType = EASY_CHAT_PERSON_REPORTER_FEMALE; break; - case 11: + case EASY_CHAT_TYPE_CONTEST_INTERVIEW: words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].bravoTrainer.words[gSpecialVar_0x8006]; - sizeParam = 0; + displayedPersonType = EASY_CHAT_PERSON_REPORTER_MALE; break; - case 12: + case EASY_CHAT_TYPE_BATTLE_TOWER_INTERVIEW: words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanclubOpinions.words18; - sizeParam = 1; + displayedPersonType = EASY_CHAT_PERSON_REPORTER_FEMALE; break; - case 13: + case EASY_CHAT_TYPE_GOOD_SAYING: words = (u16 *)gStringVar3; InitializeEasyChatWordArray(words, 2); break; - case 14: + case EASY_CHAT_TYPE_FAN_QUESTION: words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanClubSpecial.words; words[0] = -1; - sizeParam = 2; + displayedPersonType = EASY_CHAT_PERSON_BOY; break; - case 15: + case EASY_CHAT_TYPE_QUIZ_ANSWER: words = &gSaveBlock1Ptr->lilycoveLady.quiz.unk_016; break; - case 16: + case EASY_CHAT_TYPE_QUIZ_QUESTION: return; - case 17: + case EASY_CHAT_TYPE_QUIZ_SET_QUESTION: words = gSaveBlock1Ptr->lilycoveLady.quiz.unk_002; break; - case 18: + case EASY_CHAT_TYPE_QUIZ_SET_ANSWER: words = &gSaveBlock1Ptr->lilycoveLady.quiz.unk_014; break; - case 19: + case EASY_CHAT_TYPE_APPRENTICE: words = gSaveBlock2Ptr->apprentices[0].easyChatWords; break; - case 20: + case EASY_CHAT_TYPE_QUESTIONNAIRE: words = GetSaveBlock1Field3564(); break; default: return; } + CleanupOverworldWindowsAndTilemaps(); - sub_811A20C(gSpecialVar_0x8004, words, CB2_ReturnToFieldContinueScript, sizeParam); + DoEasyChatScreen(gSpecialVar_0x8004, words, CB2_ReturnToFieldContinueScript, displayedPersonType); } static void sub_811A7E4(void) @@ -1351,7 +1344,7 @@ static void sub_811A7E4(void) lilycoveLady = &gSaveBlock1Ptr->lilycoveLady; lilycoveLady->quiz.unk_016 = -1; CleanupOverworldWindowsAndTilemaps(); - sub_811A8F0(); + DoQuizQuestionEasyChatScreen(); } return; } @@ -1389,88 +1382,100 @@ static void sub_811A8A4(u16 word) sub_811A4D0(sUnknown_08597530[i].callback); } -static void sub_811A8CC(void) +static void DoQuizAnswerEasyChatScreen(void) { - sub_811A20C(0xF, &gSaveBlock1Ptr->lilycoveLady.quiz.unk_016, CB2_ReturnToFieldContinueScript, 3); + DoEasyChatScreen( + EASY_CHAT_TYPE_QUIZ_ANSWER, + &gSaveBlock1Ptr->lilycoveLady.quiz.unk_016, + CB2_ReturnToFieldContinueScript, + EASY_CHAT_PERSON_DISPLAY_NONE); } -static void sub_811A8F0(void) +static void DoQuizQuestionEasyChatScreen(void) { - sub_811A20C(0x10, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, CB2_ReturnToFieldContinueScript, 3); + DoEasyChatScreen(EASY_CHAT_TYPE_QUIZ_QUESTION, + gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, + CB2_ReturnToFieldContinueScript, + EASY_CHAT_PERSON_DISPLAY_NONE); } -static void sub_811A914(void) +static void DoQuizSetAnswerEasyChatScreen(void) { - sub_811A20C(0x12, &gSaveBlock1Ptr->lilycoveLady.quiz.unk_014, CB2_ReturnToFieldContinueScript, 3); + DoEasyChatScreen(EASY_CHAT_TYPE_QUIZ_SET_ANSWER, + &gSaveBlock1Ptr->lilycoveLady.quiz.unk_014, + CB2_ReturnToFieldContinueScript, + EASY_CHAT_PERSON_DISPLAY_NONE); } -static void sub_811A938(void) +static void DoQuizSetQuestionEasyChatScreen(void) { - sub_811A20C(0x11, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, CB2_ReturnToFieldContinueScript, 3); + DoEasyChatScreen(EASY_CHAT_TYPE_QUIZ_SET_QUESTION, + gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, + CB2_ReturnToFieldContinueScript, + EASY_CHAT_PERSON_DISPLAY_NONE); } -static bool8 EasyChat_AllocateResources(u8 kind, u16 *words, u8 sizeParam) +static bool8 EasyChat_AllocateResources(u8 type, u16 *words, u8 displayedPersonType) { u8 templateId; int i; - gEasyChatScreen = malloc(sizeof(*gEasyChatScreen)); - if (gEasyChatScreen == NULL) - { + sEasyChatScreen = malloc(sizeof(*sEasyChatScreen)); + if (sEasyChatScreen == NULL) return FALSE; - } - gEasyChatScreen->kind = kind; - gEasyChatScreen->words = words; - gEasyChatScreen->mainCursorColumn = 0; - gEasyChatScreen->mainCursorRow = 0; - gEasyChatScreen->unk_09 = 0; - gEasyChatScreen->sizeParam = sizeParam; - gEasyChatScreen->unk_13 = 0; - templateId = sub_811BCC8(kind); - if (kind == 0x10) + + sEasyChatScreen->type = type; + sEasyChatScreen->words = words; + sEasyChatScreen->mainCursorColumn = 0; + sEasyChatScreen->mainCursorRow = 0; + sEasyChatScreen->unk_09 = 0; + sEasyChatScreen->displayedPersonType = displayedPersonType; + sEasyChatScreen->unk_13 = 0; + templateId = GetEachChatScreenTemplateId(type); + if (type == EASY_CHAT_TYPE_QUIZ_QUESTION) { - sub_811BDF0(gEasyChatScreen->unk_14); - gEasyChatScreen->titleText = gEasyChatScreen->unk_14; - gEasyChatScreen->state = 7; + sub_811BDF0(sEasyChatScreen->unk_14); + sEasyChatScreen->titleText = sEasyChatScreen->unk_14; + sEasyChatScreen->state = 7; } else { - gEasyChatScreen->state = 0; - gEasyChatScreen->titleText = gEasyChatScreenTemplates[templateId].titleText; - } - gEasyChatScreen->numColumns = gEasyChatScreenTemplates[templateId].numColumns; - gEasyChatScreen->numRows = gEasyChatScreenTemplates[templateId].numRows; - gEasyChatScreen->unk_07 = gEasyChatScreen->numColumns * gEasyChatScreen->numRows; - gEasyChatScreen->templateId = templateId; - if (gEasyChatScreen->unk_07 > 9) - { - gEasyChatScreen->unk_07 = 9; + sEasyChatScreen->state = 0; + sEasyChatScreen->titleText = sEasyChatScreenTemplates[templateId].titleText; } + + sEasyChatScreen->numColumns = sEasyChatScreenTemplates[templateId].numColumns; + sEasyChatScreen->numRows = sEasyChatScreenTemplates[templateId].numRows; + sEasyChatScreen->unk_07 = sEasyChatScreen->numColumns * sEasyChatScreen->numRows; + sEasyChatScreen->templateId = templateId; + if (sEasyChatScreen->unk_07 > 9) + sEasyChatScreen->unk_07 = 9; + if (words != NULL) { - CpuCopy16(words, gEasyChatScreen->ecWordBuffer, gEasyChatScreen->unk_07 * sizeof(u16)); + CpuCopy16(words, sEasyChatScreen->ecWordBuffer, sEasyChatScreen->unk_07 * sizeof(u16)); } else { - for (i = 0; i < gEasyChatScreen->unk_07; i ++) - { - gEasyChatScreen->ecWordBuffer[i] = -1; - } - gEasyChatScreen->words = gEasyChatScreen->ecWordBuffer; + for (i = 0; i < sEasyChatScreen->unk_07; i ++) + sEasyChatScreen->ecWordBuffer[i] = -1; + + sEasyChatScreen->words = sEasyChatScreen->ecWordBuffer; } - gEasyChatScreen->unk_0d = (sub_811F3AC() - 1) / 2 + 1; + + sEasyChatScreen->unk_0d = (sub_811F3AC() - 1) / 2 + 1; return TRUE; } static void EasyChat_FreeResources(void) { - if (gEasyChatScreen != NULL) - FREE_AND_SET_NULL(gEasyChatScreen); + if (sEasyChatScreen != NULL) + FREE_AND_SET_NULL(sEasyChatScreen); } static u16 sub_811AAAC(void) { - switch (gEasyChatScreen->state) + switch (sEasyChatScreen->state) { case 0: return sub_811AB68(); @@ -1500,7 +1505,7 @@ static u16 sub_811AAAC(void) bool32 sub_811AB44(void) { - switch (sub_811BA68()) + switch (GetEasyChatScreenFrameId()) { case 2: case 7: @@ -1517,10 +1522,10 @@ static u16 sub_811AB68(void) if (gMain.newKeys & A_BUTTON) { sub_811BF78(); - gEasyChatScreen->state = 2; - gEasyChatScreen->unk_0a = 0; - gEasyChatScreen->unk_0b = 0; - gEasyChatScreen->unk_0c = 0; + sEasyChatScreen->state = 2; + sEasyChatScreen->unk_0a = 0; + sEasyChatScreen->unk_0b = 0; + sEasyChatScreen->unk_0c = 0; return 9; } else if (gMain.newKeys & B_BUTTON) @@ -1533,51 +1538,51 @@ static u16 sub_811AB68(void) } else if (gMain.newKeys & DPAD_UP) { - gEasyChatScreen->mainCursorRow--; + sEasyChatScreen->mainCursorRow--; break; } else if (gMain.newKeys & DPAD_LEFT) { - gEasyChatScreen->mainCursorColumn--; + sEasyChatScreen->mainCursorColumn--; break; } else if (gMain.newKeys & DPAD_DOWN) { - gEasyChatScreen->mainCursorRow++; + sEasyChatScreen->mainCursorRow++; break; } else if (gMain.newKeys & DPAD_RIGHT) { - gEasyChatScreen->mainCursorColumn++; + sEasyChatScreen->mainCursorColumn++; break; } return 0; } while (0); - if (gEasyChatScreen->mainCursorRow < 0) - gEasyChatScreen->mainCursorRow = gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows; + if (sEasyChatScreen->mainCursorRow < 0) + sEasyChatScreen->mainCursorRow = sEasyChatScreenTemplates[sEasyChatScreen->templateId].numRows; - if (gEasyChatScreen->mainCursorRow > gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows) - gEasyChatScreen->mainCursorRow = 0; + if (sEasyChatScreen->mainCursorRow > sEasyChatScreenTemplates[sEasyChatScreen->templateId].numRows) + sEasyChatScreen->mainCursorRow = 0; - if (gEasyChatScreen->mainCursorRow == gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows) + if (sEasyChatScreen->mainCursorRow == sEasyChatScreenTemplates[sEasyChatScreen->templateId].numRows) { - if (gEasyChatScreen->mainCursorColumn > 2) - gEasyChatScreen->mainCursorColumn = 2; + if (sEasyChatScreen->mainCursorColumn > 2) + sEasyChatScreen->mainCursorColumn = 2; - gEasyChatScreen->state = 1; + sEasyChatScreen->state = 1; return 3; } - if (gEasyChatScreen->mainCursorColumn < 0) - gEasyChatScreen->mainCursorColumn = gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns - 1; + if (sEasyChatScreen->mainCursorColumn < 0) + sEasyChatScreen->mainCursorColumn = sEasyChatScreenTemplates[sEasyChatScreen->templateId].numColumns - 1; - if (gEasyChatScreen->mainCursorColumn >= gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns) - gEasyChatScreen->mainCursorColumn = 0; + if (sEasyChatScreen->mainCursorColumn >= sEasyChatScreenTemplates[sEasyChatScreen->templateId].numColumns) + sEasyChatScreen->mainCursorColumn = 0; - if (sub_811AB44() && gEasyChatScreen->mainCursorColumn == 1 && gEasyChatScreen->mainCursorRow == 4) - gEasyChatScreen->mainCursorColumn = 0; + if (sub_811AB44() && sEasyChatScreen->mainCursorColumn == 1 && sEasyChatScreen->mainCursorRow == 4) + sEasyChatScreen->mainCursorColumn = 0; return 2; } @@ -1588,7 +1593,7 @@ static u16 sub_811ACDC(void) { if (gMain.newKeys & A_BUTTON) { - switch (gEasyChatScreen->mainCursorColumn) + switch (sEasyChatScreen->mainCursorColumn) { case 0: return sub_811B184(); @@ -1611,47 +1616,47 @@ static u16 sub_811ACDC(void) } else if (gMain.newKeys & DPAD_UP) { - gEasyChatScreen->mainCursorRow--; + sEasyChatScreen->mainCursorRow--; break; } else if (gMain.newKeys & DPAD_LEFT) { - gEasyChatScreen->mainCursorColumn--; + sEasyChatScreen->mainCursorColumn--; break; } else if (gMain.newKeys & DPAD_DOWN) { - gEasyChatScreen->mainCursorRow = 0; + sEasyChatScreen->mainCursorRow = 0; break; } else if (gMain.newKeys & DPAD_RIGHT) { - gEasyChatScreen->mainCursorColumn++; + sEasyChatScreen->mainCursorColumn++; break; } return 0; } while (0); - if (gEasyChatScreen->mainCursorRow == gEasyChatScreenTemplates[gEasyChatScreen->templateId].numRows) + if (sEasyChatScreen->mainCursorRow == sEasyChatScreenTemplates[sEasyChatScreen->templateId].numRows) { - int numFooterColumns = sub_811BA3C() ? 4 : 3; - if (gEasyChatScreen->mainCursorColumn < 0) - gEasyChatScreen->mainCursorColumn = numFooterColumns - 1; + int numFooterColumns = FooterHasFourOptions() ? 4 : 3; + if (sEasyChatScreen->mainCursorColumn < 0) + sEasyChatScreen->mainCursorColumn = numFooterColumns - 1; - if (gEasyChatScreen->mainCursorColumn >= numFooterColumns) - gEasyChatScreen->mainCursorColumn = 0; + if (sEasyChatScreen->mainCursorColumn >= numFooterColumns) + sEasyChatScreen->mainCursorColumn = 0; return 3; } - if (gEasyChatScreen->mainCursorColumn >= gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns) - gEasyChatScreen->mainCursorColumn = gEasyChatScreenTemplates[gEasyChatScreen->templateId].numColumns - 1; + if (sEasyChatScreen->mainCursorColumn >= sEasyChatScreenTemplates[sEasyChatScreen->templateId].numColumns) + sEasyChatScreen->mainCursorColumn = sEasyChatScreenTemplates[sEasyChatScreen->templateId].numColumns - 1; - if (sub_811AB44() && gEasyChatScreen->mainCursorColumn == 1 && gEasyChatScreen->mainCursorRow == 4) - gEasyChatScreen->mainCursorColumn = 0; + if (sub_811AB44() && sEasyChatScreen->mainCursorColumn == 1 && sEasyChatScreen->mainCursorRow == 4) + sEasyChatScreen->mainCursorColumn = 0; - gEasyChatScreen->state = 0; + sEasyChatScreen->state = 0; return 2; } @@ -1662,10 +1667,10 @@ static u16 sub_811AE44(void) if (gMain.newKeys & A_BUTTON) { - if (gEasyChatScreen->unk_0a != -1) + if (sEasyChatScreen->unk_0a != -1) return sub_811B2B0(); - switch (gEasyChatScreen->unk_0b) + switch (sEasyChatScreen->unk_0b) { case 0: return sub_811B33C(); @@ -1698,7 +1703,7 @@ static u16 sub_811AF00(void) { if (gMain.newKeys & B_BUTTON) { - gEasyChatScreen->state = 2; + sEasyChatScreen->state = 2; return 14; } @@ -1734,11 +1739,11 @@ static u16 sub_811AF8C(void) { case MENU_B_PRESSED: // B Button case 1: // No - gEasyChatScreen->state = sub_811B2A4(); + sEasyChatScreen->state = sub_811B2A4(); return 7; case 0: // Yes gSpecialVar_Result = 0; - var0 = gEasyChatScreen->kind - 17; + var0 = sEasyChatScreen->type - EASY_CHAT_TYPE_QUIZ_SET_QUESTION; if (var0 < 2) sub_811B3E4(); @@ -1754,7 +1759,7 @@ static u16 sub_811AFEC(void) { case MENU_B_PRESSED: // B Button case 1: // No - gEasyChatScreen->state = sub_811B2A4(); + sEasyChatScreen->state = sub_811B2A4(); return 7; case 0: // Yes sub_811BE9C(); @@ -1772,11 +1777,11 @@ static u16 sub_811B040(void) { case MENU_B_PRESSED: // B Button case 1: // No - gEasyChatScreen->state = 1; + sEasyChatScreen->state = 1; return 7; case 0: // Yes sub_811B418(); - gEasyChatScreen->state = 1; + sEasyChatScreen->state = 1; return 8; default: return 0; @@ -1798,7 +1803,7 @@ static u16 sub_811B0BC(void) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { - gEasyChatScreen->state = sub_811B2A4(); + sEasyChatScreen->state = sub_811B2A4(); return 7; } @@ -1807,7 +1812,7 @@ static u16 sub_811B0BC(void) static u16 sub_811B0E8(void) { - gEasyChatScreen->state = 10; + sEasyChatScreen->state = 10; return 6; } @@ -1818,8 +1823,8 @@ static u16 sub_811B0F8(void) case MENU_B_PRESSED: // B Button case 1: // No sub_811B454(); - gEasyChatScreen->unk_08 = 0; - gEasyChatScreen->state = 8; + sEasyChatScreen->stateBackup = 0; + sEasyChatScreen->state = 8; return 31; case 0: // Yes gSpecialVar_Result = sub_811B4EC(); @@ -1832,124 +1837,127 @@ static u16 sub_811B0F8(void) static u16 sub_811B150(void) { - if (gEasyChatScreen->kind == 19 || gEasyChatScreen->kind == 11) + if (sEasyChatScreen->type == EASY_CHAT_TYPE_APPRENTICE + || sEasyChatScreen->type == EASY_CHAT_TYPE_CONTEST_INTERVIEW) { - gEasyChatScreen->unk_08 = gEasyChatScreen->state; - gEasyChatScreen->state = 8; + sEasyChatScreen->stateBackup = sEasyChatScreen->state; + sEasyChatScreen->state = 8; return 34; } else { - gEasyChatScreen->unk_08 = gEasyChatScreen->state; - gEasyChatScreen->state = 4; + sEasyChatScreen->stateBackup = sEasyChatScreen->state; + sEasyChatScreen->state = 4; return 5; } } static int sub_811B184(void) { - gEasyChatScreen->unk_08 = gEasyChatScreen->state; - if (gEasyChatScreen->kind != 6) + sEasyChatScreen->stateBackup = sEasyChatScreen->state; + if (sEasyChatScreen->type != EASY_CHAT_TYPE_BARD_SONG) { - gEasyChatScreen->state = 5; + sEasyChatScreen->state = 5; return 4; } else { - gEasyChatScreen->unk_08 = gEasyChatScreen->state; - gEasyChatScreen->state = 8; + sEasyChatScreen->stateBackup = sEasyChatScreen->state; + sEasyChatScreen->state = 8; return 32; } } static u16 sub_811B1B4(void) { - gEasyChatScreen->unk_08 = gEasyChatScreen->state; - if (gEasyChatScreen->kind == 17) + sEasyChatScreen->stateBackup = sEasyChatScreen->state; + if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_QUESTION) { if (sub_811BD64()) { - gEasyChatScreen->state = 8; + sEasyChatScreen->state = 8; return 29; } if (sub_811BDB0()) { - gEasyChatScreen->state = 8; + sEasyChatScreen->state = 8; return 30; } - gEasyChatScreen->state = 6; + sEasyChatScreen->state = 6; return 6; } - else if (gEasyChatScreen->kind == 18) + else if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_ANSWER) { if (sub_811BDB0()) { - gEasyChatScreen->state = 8; + sEasyChatScreen->state = 8; return 30; } if (sub_811BD64()) { - gEasyChatScreen->state = 8; + sEasyChatScreen->state = 8; return 29; } - gEasyChatScreen->state = 6; + sEasyChatScreen->state = 6; return 6; } - else if (gEasyChatScreen->kind == 9 || gEasyChatScreen->kind == 13) + else if (sEasyChatScreen->type == EASY_CHAT_TYPE_TRENDY_PHRASE + || sEasyChatScreen->type == EASY_CHAT_TYPE_GOOD_SAYING) { if (!sub_811BD2C()) { - gEasyChatScreen->state = 8; + sEasyChatScreen->state = 8; return 33; } - gEasyChatScreen->state = 6; + sEasyChatScreen->state = 6; return 6; } - else if (gEasyChatScreen->kind == 19 || gEasyChatScreen->kind == 11) + else if (sEasyChatScreen->type == EASY_CHAT_TYPE_APPRENTICE + || sEasyChatScreen->type == EASY_CHAT_TYPE_CONTEST_INTERVIEW) { if (sub_811BCF4()) { - gEasyChatScreen->state = 8; + sEasyChatScreen->state = 8; return 34; } - gEasyChatScreen->state = 6; + sEasyChatScreen->state = 6; return 6; } - else if (gEasyChatScreen->kind == 20) + else if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUESTIONNAIRE) { - gEasyChatScreen->state = 6; + sEasyChatScreen->state = 6; return 6; } else { if (sub_811BCF4() == 1 || !sub_811B4EC()) { - gEasyChatScreen->state = 4; + sEasyChatScreen->state = 4; return 5; } - gEasyChatScreen->state = 6; + sEasyChatScreen->state = 6; return 6; } } static int sub_811B264(void) { - gEasyChatScreen->unk_08 = gEasyChatScreen->state; - switch (gEasyChatScreen->kind) + sEasyChatScreen->stateBackup = sEasyChatScreen->state; + switch (sEasyChatScreen->type) { - case 15: + case EASY_CHAT_TYPE_QUIZ_ANSWER: return 25; - case 17: + case EASY_CHAT_TYPE_QUIZ_SET_QUESTION: sub_811B3E4(); return 28; - case 18: + case EASY_CHAT_TYPE_QUIZ_SET_ANSWER: sub_811B3E4(); return 27; default: @@ -1959,14 +1967,14 @@ static int sub_811B264(void) static u8 sub_811B2A4(void) { - return gEasyChatScreen->unk_08; + return sEasyChatScreen->stateBackup; } static int sub_811B2B0(void) { u16 var1; - if (gEasyChatScreen->unk_09 == 0) + if (sEasyChatScreen->unk_09 == 0) { u8 groupId = sub_811F3B8(sub_811B8E8()); sub_811F548(0, groupId); @@ -1980,36 +1988,36 @@ static int sub_811B2B0(void) if (var1 == 0) return 0; - gEasyChatScreen->unk_0f = (var1 - 1) / 2; - gEasyChatScreen->unk_0e = 0; - gEasyChatScreen->unk_10 = 0; - gEasyChatScreen->unk_11 = 0; - gEasyChatScreen->state = 3; + sEasyChatScreen->unk_0f = (var1 - 1) / 2; + sEasyChatScreen->unk_0e = 0; + sEasyChatScreen->unk_10 = 0; + sEasyChatScreen->unk_11 = 0; + sEasyChatScreen->state = 3; return 11; } static int sub_811B32C(void) { - gEasyChatScreen->state = 0; + sEasyChatScreen->state = 0; return 10; } static int sub_811B33C(void) { - gEasyChatScreen->unk_0a = 0; - gEasyChatScreen->unk_0b = 0; - gEasyChatScreen->unk_0c = 0; - if (!gEasyChatScreen->unk_09) - gEasyChatScreen->unk_09 = 1; + sEasyChatScreen->unk_0a = 0; + sEasyChatScreen->unk_0b = 0; + sEasyChatScreen->unk_0c = 0; + if (!sEasyChatScreen->unk_09) + sEasyChatScreen->unk_09 = 1; else - gEasyChatScreen->unk_09 = 0; + sEasyChatScreen->unk_09 = 0; return 23; } static int sub_811B368(void) { - if (gEasyChatScreen->kind == 6) + if (sEasyChatScreen->type == EASY_CHAT_TYPE_BARD_SONG) { PlaySE(SE_HAZURE); return 0; @@ -2032,14 +2040,14 @@ static int sub_811B394(void) else { sub_811B488(easyChatWord); - if (gEasyChatScreen->kind != 6) + if (sEasyChatScreen->type != EASY_CHAT_TYPE_BARD_SONG) { - gEasyChatScreen->state = 0; + sEasyChatScreen->state = 0; return 12; } else { - gEasyChatScreen->state = 9; + sEasyChatScreen->state = 9; return 13; } } @@ -2048,36 +2056,36 @@ static int sub_811B394(void) static void sub_811B3E4(void) { int i; - for (i = 0; i < gEasyChatScreen->unk_07; i++) - gEasyChatScreen->words[i] = gEasyChatScreen->ecWordBuffer[i]; + for (i = 0; i < sEasyChatScreen->unk_07; i++) + sEasyChatScreen->words[i] = sEasyChatScreen->ecWordBuffer[i]; } static void sub_811B418(void) { int i; - for (i = 0; i < gEasyChatScreen->unk_07; i++) - gEasyChatScreen->ecWordBuffer[i] = 0xFFFF; + for (i = 0; i < sEasyChatScreen->unk_07; i++) + sEasyChatScreen->ecWordBuffer[i] = 0xFFFF; } static void sub_811B454(void) { int i; - for (i = 0; i < gEasyChatScreen->unk_07; i++) - gEasyChatScreen->ecWordBuffer[i] = gEasyChatScreen->words[i]; + for (i = 0; i < sEasyChatScreen->unk_07; i++) + sEasyChatScreen->ecWordBuffer[i] = sEasyChatScreen->words[i]; } static void sub_811B488(u16 easyChatWord) { u16 index = sub_811B8C8(); - gEasyChatScreen->ecWordBuffer[index] = easyChatWord; + sEasyChatScreen->ecWordBuffer[index] = easyChatWord; } static u8 sub_811B4AC(void) { u16 i; - for (i = 0; i < gEasyChatScreen->unk_07; i++) + for (i = 0; i < sEasyChatScreen->unk_07; i++) { - if (gEasyChatScreen->ecWordBuffer[i] != gEasyChatScreen->words[i]) + if (sEasyChatScreen->ecWordBuffer[i] != sEasyChatScreen->words[i]) return 1; } @@ -2086,7 +2094,7 @@ static u8 sub_811B4AC(void) static int sub_811B4EC(void) { - u8 var0 = gEasyChatScreen->kind - 17; + u8 var0 = sEasyChatScreen->type - EASY_CHAT_TYPE_QUIZ_SET_QUESTION; if (var0 < 2) { if (sub_811BD64()) @@ -2105,9 +2113,9 @@ static int sub_811B4EC(void) static u16 sub_811B528(int arg0) { - if (gEasyChatScreen->unk_0a != -1) + if (sEasyChatScreen->unk_0a != -1) { - if (gEasyChatScreen->unk_09 == 0) + if (sEasyChatScreen->unk_09 == 0) return sub_811B568(arg0); else return sub_811B634(arg0); @@ -2123,32 +2131,32 @@ static int sub_811B568(u32 arg0) switch (arg0) { case 2: - if (gEasyChatScreen->unk_0b != -gEasyChatScreen->unk_0c) + if (sEasyChatScreen->unk_0b != -sEasyChatScreen->unk_0c) { - if (gEasyChatScreen->unk_0b) + if (sEasyChatScreen->unk_0b) { - gEasyChatScreen->unk_0b--; + sEasyChatScreen->unk_0b--; return 15; } else { - gEasyChatScreen->unk_0c--; + sEasyChatScreen->unk_0c--; return 17; } } break; case 3: - if (gEasyChatScreen->unk_0b + gEasyChatScreen->unk_0c < gEasyChatScreen->unk_0d - 1) + if (sEasyChatScreen->unk_0b + sEasyChatScreen->unk_0c < sEasyChatScreen->unk_0d - 1) { int var0; - if (gEasyChatScreen->unk_0b < 3) + if (sEasyChatScreen->unk_0b < 3) { - gEasyChatScreen->unk_0b++; + sEasyChatScreen->unk_0b++; var0 = 15; } else { - gEasyChatScreen->unk_0c++; + sEasyChatScreen->unk_0c++; var0 = 16; } @@ -2157,16 +2165,16 @@ static int sub_811B568(u32 arg0) } break; case 1: - if (gEasyChatScreen->unk_0a) - gEasyChatScreen->unk_0a--; + if (sEasyChatScreen->unk_0a) + sEasyChatScreen->unk_0a--; else sub_811B744(); return 15; case 0: - if (gEasyChatScreen->unk_0a < 1) + if (sEasyChatScreen->unk_0a < 1) { - gEasyChatScreen->unk_0a++; + sEasyChatScreen->unk_0a++; if (sub_811B9C8()) sub_811B744(); } @@ -2185,30 +2193,30 @@ static int sub_811B634(u32 arg0) switch (arg0) { case 2: - if (gEasyChatScreen->unk_0b > 0) - gEasyChatScreen->unk_0b--; + if (sEasyChatScreen->unk_0b > 0) + sEasyChatScreen->unk_0b--; else - gEasyChatScreen->unk_0b = 3; + sEasyChatScreen->unk_0b = 3; sub_811B978(); return 15; case 3: - if (gEasyChatScreen->unk_0b < 3) - gEasyChatScreen->unk_0b++; + if (sEasyChatScreen->unk_0b < 3) + sEasyChatScreen->unk_0b++; else - gEasyChatScreen->unk_0b = 0; + sEasyChatScreen->unk_0b = 0; sub_811B978(); return 15; case 0: - gEasyChatScreen->unk_0a++; + sEasyChatScreen->unk_0a++; if (sub_811B9C8()) sub_811B744(); return 15; case 1: - gEasyChatScreen->unk_0a--; - if (gEasyChatScreen->unk_0a < 0) + sEasyChatScreen->unk_0a--; + if (sEasyChatScreen->unk_0a < 0) sub_811B744(); return 15; @@ -2222,26 +2230,26 @@ static int sub_811B6C4(u32 arg0) switch (arg0) { case 2: - if (gEasyChatScreen->unk_0b) - gEasyChatScreen->unk_0b--; + if (sEasyChatScreen->unk_0b) + sEasyChatScreen->unk_0b--; else - gEasyChatScreen->unk_0b = 2; + sEasyChatScreen->unk_0b = 2; return 15; case 3: - if (gEasyChatScreen->unk_0b < 2) - gEasyChatScreen->unk_0b++; + if (sEasyChatScreen->unk_0b < 2) + sEasyChatScreen->unk_0b++; else - gEasyChatScreen->unk_0b = 0; + sEasyChatScreen->unk_0b = 0; return 15; case 1: - gEasyChatScreen->unk_0b++; + sEasyChatScreen->unk_0b++; sub_811B768(); return 15; case 0: - gEasyChatScreen->unk_0a = 0; - gEasyChatScreen->unk_0b++; + sEasyChatScreen->unk_0a = 0; + sEasyChatScreen->unk_0b++; return 15; } @@ -2250,21 +2258,21 @@ static int sub_811B6C4(u32 arg0) static void sub_811B744(void) { - gEasyChatScreen->unk_0a = 0xFF; - if (gEasyChatScreen->unk_0b) - gEasyChatScreen->unk_0b--; + sEasyChatScreen->unk_0a = 0xFF; + if (sEasyChatScreen->unk_0b) + sEasyChatScreen->unk_0b--; } static void sub_811B768(void) { - if (gEasyChatScreen->unk_09 == 0) + if (sEasyChatScreen->unk_09 == 0) { - gEasyChatScreen->unk_0a = 1; + sEasyChatScreen->unk_0a = 1; sub_811B978(); } else { - gEasyChatScreen->unk_0a = sub_811B960(gEasyChatScreen->unk_0b); + sEasyChatScreen->unk_0a = sub_811B960(sEasyChatScreen->unk_0b); } } @@ -2274,16 +2282,16 @@ static u16 sub_811B794(u32 arg0) switch (arg0) { case 2: - if (gEasyChatScreen->unk_11 + gEasyChatScreen->unk_0e > 0) + if (sEasyChatScreen->unk_11 + sEasyChatScreen->unk_0e > 0) { - if (gEasyChatScreen->unk_11 > 0) + if (sEasyChatScreen->unk_11 > 0) { - gEasyChatScreen->unk_11--; + sEasyChatScreen->unk_11--; result = 18; } else { - gEasyChatScreen->unk_0e--; + sEasyChatScreen->unk_0e--; result = 19; } @@ -2292,16 +2300,16 @@ static u16 sub_811B794(u32 arg0) } break; case 3: - if (gEasyChatScreen->unk_11 + gEasyChatScreen->unk_0e < gEasyChatScreen->unk_0f) + if (sEasyChatScreen->unk_11 + sEasyChatScreen->unk_0e < sEasyChatScreen->unk_0f) { - if (gEasyChatScreen->unk_11 < 3) + if (sEasyChatScreen->unk_11 < 3) { - gEasyChatScreen->unk_11++; + sEasyChatScreen->unk_11++; result = 18; } else { - gEasyChatScreen->unk_0e++; + sEasyChatScreen->unk_0e++; result = 20; } @@ -2310,42 +2318,42 @@ static u16 sub_811B794(u32 arg0) } break; case 1: - if (gEasyChatScreen->unk_10 > 0) - gEasyChatScreen->unk_10--; + if (sEasyChatScreen->unk_10 > 0) + sEasyChatScreen->unk_10--; else - gEasyChatScreen->unk_10 = 1; + sEasyChatScreen->unk_10 = 1; sub_811B9A0(); return 18; case 0: - if (gEasyChatScreen->unk_10 < 1) + if (sEasyChatScreen->unk_10 < 1) { - gEasyChatScreen->unk_10++; + sEasyChatScreen->unk_10++; if (sub_811BA1C()) - gEasyChatScreen->unk_10 = 0; + sEasyChatScreen->unk_10 = 0; } else { - gEasyChatScreen->unk_10 = 0; + sEasyChatScreen->unk_10 = 0; } return 18; case 4: - if (gEasyChatScreen->unk_0e) + if (sEasyChatScreen->unk_0e) { - if (gEasyChatScreen->unk_0e > 3) - gEasyChatScreen->unk_0e -= 4; + if (sEasyChatScreen->unk_0e > 3) + sEasyChatScreen->unk_0e -= 4; else - gEasyChatScreen->unk_0e = 0; + sEasyChatScreen->unk_0e = 0; return 21; } break; case 5: - if (gEasyChatScreen->unk_0e <= gEasyChatScreen->unk_0f - 4) + if (sEasyChatScreen->unk_0e <= sEasyChatScreen->unk_0f - 4) { - gEasyChatScreen->unk_0e += 4; - if (gEasyChatScreen->unk_0e > gEasyChatScreen->unk_0f - 3) - gEasyChatScreen->unk_0e = gEasyChatScreen->unk_0f + 0xFD; + sEasyChatScreen->unk_0e += 4; + if (sEasyChatScreen->unk_0e > sEasyChatScreen->unk_0f - 3) + sEasyChatScreen->unk_0e = sEasyChatScreen->unk_0f + 0xFD; sub_811B9A0(); return 22; @@ -2358,24 +2366,24 @@ static u16 sub_811B794(u32 arg0) static u16 sub_811B8C8(void) { - return (gEasyChatScreen->mainCursorRow * gEasyChatScreen->numColumns) + gEasyChatScreen->mainCursorColumn; + return (sEasyChatScreen->mainCursorRow * sEasyChatScreen->numColumns) + sEasyChatScreen->mainCursorColumn; } static u16 sub_811B8E8(void) { - return 2 * (gEasyChatScreen->unk_0b + gEasyChatScreen->unk_0c) + gEasyChatScreen->unk_0a; + return 2 * (sEasyChatScreen->unk_0b + sEasyChatScreen->unk_0c) + sEasyChatScreen->unk_0a; } static int sub_811B908(void) { - int var0 = (u8)gEasyChatScreen->unk_0a < 7 ? gEasyChatScreen->unk_0a : 0; - int var1 = (u8)gEasyChatScreen->unk_0b < 4 ? gEasyChatScreen->unk_0b : 0; + int var0 = (u8)sEasyChatScreen->unk_0a < 7 ? sEasyChatScreen->unk_0a : 0; + int var1 = (u8)sEasyChatScreen->unk_0b < 4 ? sEasyChatScreen->unk_0b : 0; return sUnknown_08597748[var1][var0]; } static u16 sub_811B940(void) { - return 2 * (gEasyChatScreen->unk_11 + gEasyChatScreen->unk_0e) + gEasyChatScreen->unk_10; + return 2 * (sEasyChatScreen->unk_11 + sEasyChatScreen->unk_0e) + sEasyChatScreen->unk_10; } static u8 sub_811B960(u8 arg0) @@ -2394,8 +2402,8 @@ static void sub_811B978(void) { while (sub_811B9C8()) { - if (gEasyChatScreen->unk_0a) - gEasyChatScreen->unk_0a--; + if (sEasyChatScreen->unk_0a) + sEasyChatScreen->unk_0a--; else break; } @@ -2405,8 +2413,8 @@ static void sub_811B9A0(void) { while (sub_811BA1C()) { - if (gEasyChatScreen->unk_10) - gEasyChatScreen->unk_10--; + if (sEasyChatScreen->unk_10) + sEasyChatScreen->unk_10--; else break; } @@ -2414,10 +2422,10 @@ static void sub_811B9A0(void) static u8 sub_811B9C8(void) { - if (gEasyChatScreen->unk_09 == 0) + if (sEasyChatScreen->unk_09 == 0) return sub_811B8E8() >= sub_811F3AC() ? 1 : 0; else - return gEasyChatScreen->unk_0a > sub_811B960(gEasyChatScreen->unk_0b) ? 1 : 0; + return sEasyChatScreen->unk_0a > sub_811B960(sEasyChatScreen->unk_0b) ? 1 : 0; } static u8 sub_811BA1C(void) @@ -2425,73 +2433,73 @@ static u8 sub_811BA1C(void) return sub_811B940() >= sub_811F5B0() ? 1 : 0; } -static int sub_811BA3C(void) +static int FooterHasFourOptions(void) { - return gEasyChatScreenTemplates[gEasyChatScreen->templateId].unk_03_7; + return sEasyChatScreenTemplates[sEasyChatScreen->templateId].fourFooterOptions; } -u8 sub_811BA5C(void) +static u8 GetEasyChatScreenType(void) { - return gEasyChatScreen->kind; + return sEasyChatScreen->type; } -static u8 sub_811BA68(void) +static u8 GetEasyChatScreenFrameId(void) { - return gEasyChatScreenTemplates[gEasyChatScreen->templateId].unk_03_0; + return sEasyChatScreenTemplates[sEasyChatScreen->templateId].frameId; } -const u8 *sub_811BA88(void) +const u8 *GetTitleText(void) { - return gEasyChatScreen->titleText; + return sEasyChatScreen->titleText; } -u16 *sub_811BA94(void) +static u16 *GetEasyChatWordBuffer(void) { - return gEasyChatScreen->ecWordBuffer; + return sEasyChatScreen->ecWordBuffer; } -u8 sub_811BAA0(void) +static u8 GetNumRows(void) { - return gEasyChatScreen->numRows; + return sEasyChatScreen->numRows; } -u8 sub_811BAAC(void) +static u8 GetNumColumns(void) { - return gEasyChatScreen->numColumns; + return sEasyChatScreen->numColumns; } -u8 sub_811BAB8(void) +static u8 GetMainCursorColumn(void) { - return gEasyChatScreen->mainCursorColumn; + return sEasyChatScreen->mainCursorColumn; } -u8 sub_811BAC4(void) +static u8 GetMainCursorRow(void) { - return gEasyChatScreen->mainCursorRow; + return sEasyChatScreen->mainCursorRow; } static void GetEasyChatInstructionsText(const u8 **str1, const u8 **str2) { - *str1 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].instructionsText1; - *str2 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].instructionsText2; + *str1 = sEasyChatScreenTemplates[sEasyChatScreen->templateId].instructionsText1; + *str2 = sEasyChatScreenTemplates[sEasyChatScreen->templateId].instructionsText2; } static void GetEasyChatConfirmText(const u8 **str1, const u8 **str2) { - *str1 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].confirmText1; - *str2 = gEasyChatScreenTemplates[gEasyChatScreen->templateId].confirmText2; + *str1 = sEasyChatScreenTemplates[sEasyChatScreen->templateId].confirmText1; + *str2 = sEasyChatScreenTemplates[sEasyChatScreen->templateId].confirmText2; } static void sub_811BB40(const u8 **str1, const u8 **str2) { - switch (gEasyChatScreen->kind) + switch (sEasyChatScreen->type) { - case 4: + case EASY_CHAT_TYPE_MAIL: *str1 = gText_StopGivingPkmnMail; *str2 = NULL; break; - case 15: - case 16: + case EASY_CHAT_TYPE_QUIZ_ANSWER: + case EASY_CHAT_TYPE_QUIZ_QUESTION: *str1 = gText_LikeToQuitQuiz; *str2 = gText_ChallengeQuestionMark; break; @@ -2511,34 +2519,34 @@ static void GetEasyChatConfirmDeletionText(const u8 **str1, const u8 **str2) void sub_811BB9C(u8 *arg0, u8 *arg1) { - *arg0 = gEasyChatScreen->unk_0a; - *arg1 = gEasyChatScreen->unk_0b; + *arg0 = sEasyChatScreen->unk_0a; + *arg1 = sEasyChatScreen->unk_0b; } u8 sub_811BBB0(void) { - return gEasyChatScreen->unk_09; + return sEasyChatScreen->unk_09; } u8 sub_811BBBC(void) { - return gEasyChatScreen->unk_0c; + return sEasyChatScreen->unk_0c; } void sub_811BBC8(u8 *arg0, u8 *arg1) { - *arg0 = gEasyChatScreen->unk_10; - *arg1 = gEasyChatScreen->unk_11; + *arg0 = sEasyChatScreen->unk_10; + *arg1 = sEasyChatScreen->unk_11; } u8 sub_811BBDC(void) { - return gEasyChatScreen->unk_0e; + return sEasyChatScreen->unk_0e; } u8 sub_811BBE8(void) { - return gEasyChatScreen->unk_0f; + return sEasyChatScreen->unk_0f; } static u8 unref_sub_811BBF4(void) @@ -2548,14 +2556,14 @@ static u8 unref_sub_811BBF4(void) int sub_811BBF8(void) { - switch (gEasyChatScreen->state) + switch (sEasyChatScreen->state) { case 2: - if (gEasyChatScreen->unk_09 == 0 && gEasyChatScreen->unk_0c) + if (sEasyChatScreen->unk_09 == 0 && sEasyChatScreen->unk_0c) return 1; break; case 3: - if (gEasyChatScreen->unk_0e) + if (sEasyChatScreen->unk_0e) return 1; break; } @@ -2565,14 +2573,14 @@ int sub_811BBF8(void) int sub_811BC2C(void) { - switch (gEasyChatScreen->state) + switch (sEasyChatScreen->state) { case 2: - if (gEasyChatScreen->unk_09 == 0 && gEasyChatScreen->unk_0c + 4 <= gEasyChatScreen->unk_0d - 1) + if (sEasyChatScreen->unk_09 == 0 && sEasyChatScreen->unk_0c + 4 <= sEasyChatScreen->unk_0d - 1) return 1; break; case 3: - if (gEasyChatScreen->unk_0e + 4 <= gEasyChatScreen->unk_0f) + if (sEasyChatScreen->unk_0e + 4 <= sEasyChatScreen->unk_0f) return 1; break; } @@ -2580,9 +2588,9 @@ int sub_811BC2C(void) return 0; } -static int sub_811BC70(void) +static int FooterHasFourOptions_(void) { - return sub_811BA3C(); + return FooterHasFourOptions(); } u8 sub_811BC7C(const u16 *arg0, u8 arg1) @@ -2591,25 +2599,25 @@ u8 sub_811BC7C(const u16 *arg0, u8 arg1) for (i = 0; i < arg1; i++) { - if (arg0[i] != gEasyChatScreen->ecWordBuffer[i]) + if (arg0[i] != sEasyChatScreen->ecWordBuffer[i]) return 1; } return 0; } -u8 sub_811BCBC(void) +static u8 GetDisplayedPersonType(void) { - return gEasyChatScreen->sizeParam; + return sEasyChatScreen->displayedPersonType; } -static u8 sub_811BCC8(u8 entryType) +static u8 GetEachChatScreenTemplateId(u8 type) { u32 i; - for (i = 0; i < ARRAY_COUNT(gEasyChatScreenTemplates); i++) + for (i = 0; i < ARRAY_COUNT(sEasyChatScreenTemplates); i++) { - if (gEasyChatScreenTemplates[i].unk_00 == entryType) + if (sEasyChatScreenTemplates[i].type == type) return i; } @@ -2620,9 +2628,9 @@ static int sub_811BCF4(void) { int i; - for (i = 0; i < gEasyChatScreen->unk_07; i++) + for (i = 0; i < sEasyChatScreen->unk_07; i++) { - if (gEasyChatScreen->ecWordBuffer[i] != 0xFFFF) + if (sEasyChatScreen->ecWordBuffer[i] != 0xFFFF) return 0; } @@ -2633,9 +2641,9 @@ static int sub_811BD2C(void) { int i; - for (i = 0; i < gEasyChatScreen->unk_07; i++) + for (i = 0; i < sEasyChatScreen->unk_07; i++) { - if (gEasyChatScreen->ecWordBuffer[i] == 0xFFFF) + if (sEasyChatScreen->ecWordBuffer[i] == 0xFFFF) return 0; } @@ -2647,7 +2655,7 @@ static int sub_811BD64(void) int i; struct SaveBlock1 *saveBlock1; - if (gEasyChatScreen->kind == 17) + if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_QUESTION) return sub_811BCF4(); saveBlock1 = gSaveBlock1Ptr; @@ -2663,7 +2671,7 @@ static int sub_811BD64(void) static int sub_811BDB0(void) { struct LilycoveLadyQuiz *quiz; - if (gEasyChatScreen->kind == 18) + if (sEasyChatScreen->type == EASY_CHAT_TYPE_QUIZ_SET_ANSWER) return sub_811BCF4(); quiz = &gSaveBlock1Ptr->lilycoveLady.quiz; @@ -2694,10 +2702,10 @@ static void sub_811BE54(void) u16 *ecWord; u8 *str; - ecWord = gEasyChatScreen->ecWordBuffer; + ecWord = sEasyChatScreen->ecWordBuffer; str = gStringVar2; i = 0; - while (i < gEasyChatScreen->unk_07) + while (i < sEasyChatScreen->unk_07) { str = CopyEasyChatWordPadded(str, *ecWord, 0); *str = 0; @@ -2712,22 +2720,22 @@ static void sub_811BE54(void) static void sub_811BE9C(void) { - switch (gEasyChatScreen->kind) + switch (sEasyChatScreen->type) { - case 0: + case EASY_CHAT_TYPE_PROFILE: FlagSet(FLAG_SYS_CHAT_USED); break; - case 20: + case EASY_CHAT_TYPE_QUESTIONNAIRE: if (sub_811BF20()) gSpecialVar_0x8004 = 2; else gSpecialVar_0x8004 = 0; break; - case 9: + case EASY_CHAT_TYPE_TRENDY_PHRASE: sub_811BE54(); - gSpecialVar_0x8004 = sub_81226D8(gEasyChatScreen->ecWordBuffer); + gSpecialVar_0x8004 = sub_81226D8(sEasyChatScreen->ecWordBuffer); break; - case 13: + case EASY_CHAT_TYPE_GOOD_SAYING: gSpecialVar_0x8004 = sub_811BF40(); break; } @@ -2752,7 +2760,7 @@ static u16 sub_811BF40(void) static void sub_811BF78(void) { - gEasyChatScreen->unk_13 = 0; + sEasyChatScreen->unk_13 = 0; } static int sub_811BF88(int easyChatWord) @@ -2770,13 +2778,13 @@ static bool8 sub_811BF8C(void) static bool8 sub_811BFA4(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: ResetBgsAndClearDma3BusyFlags(0); InitBgsFromTemplates(0, sEasyChatBgTemplates, ARRAY_COUNT(sEasyChatBgTemplates)); - SetBgTilemapBuffer(3, gUnknown_0203A11C->unkB00); - SetBgTilemapBuffer(1, gUnknown_0203A11C->unk300); + SetBgTilemapBuffer(3, sUnknown_0203A11C->unkB00); + SetBgTilemapBuffer(1, sUnknown_0203A11C->unk300); InitWindows(sEasyChatWindowTemplates); DeactivateAllTextPrinters(); sub_811CF64(); @@ -2787,7 +2795,7 @@ static bool8 sub_811BFA4(void) DecompressAndLoadBgGfxUsingHeap(3, gEasyChatWindow_Gfx, 0, 0, 0); CopyToBgTilemapBuffer(3, gEasyChatWindow_Tilemap, 0, 0); sub_811D60C(); - sub_811D424(gUnknown_0203A11C->unk300); + sub_811D424(sUnknown_0203A11C->unk300); sub_811D230(); sub_811E948(); CopyBgTilemapBufferToVram(3); @@ -2804,7 +2812,7 @@ static bool8 sub_811BFA4(void) break; case 4: sub_811DE90(); - if (sub_811BA5C() != 16) + if (GetEasyChatScreenType() != EASY_CHAT_TYPE_QUIZ_QUESTION) sub_811DEC4(); break; case 5: @@ -2830,26 +2838,26 @@ static bool8 sub_811BFA4(void) return FALSE; } - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return TRUE; } static void sub_811C13C(void) { - if (gUnknown_0203A11C) - FREE_AND_SET_NULL(gUnknown_0203A11C); + if (sUnknown_0203A11C) + FREE_AND_SET_NULL(sUnknown_0203A11C); } static void sub_811C158(u16 arg0) { - gUnknown_0203A11C->unk4 = arg0; - gUnknown_0203A11C->unk0 = 0; + sUnknown_0203A11C->unk4 = arg0; + sUnknown_0203A11C->unk0 = 0; sub_811C170(); } static bool8 sub_811C170(void) { - switch (gUnknown_0203A11C->unk4) + switch (sUnknown_0203A11C->unk4) { case 0: return FALSE; case 1: return sub_811C2D4(); @@ -2892,11 +2900,11 @@ static bool8 sub_811C170(void) static bool8 sub_811C2D4(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D2C8(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -2910,21 +2918,21 @@ static bool8 sub_811C30C(void) u8 i; u16 *ecWordBuffer; u16 *ecWord; - u8 var0; + u8 frameId; u8 cursorColumn, cursorRow, numColumns; s16 var1; int stringWidth; int trueStringWidth; u8 var2; - u8 sp0[64]; + u8 str[64]; - ecWordBuffer = sub_811BA94(); - var0 = sub_811BA68(); - cursorColumn = sub_811BAB8(); - cursorRow = sub_811BAC4(); - numColumns = sub_811BAAC(); + ecWordBuffer = GetEasyChatWordBuffer(); + frameId = GetEasyChatScreenFrameId(); + cursorColumn = GetMainCursorColumn(); + cursorRow = GetMainCursorRow(); + numColumns = GetNumColumns(); ecWord = &ecWordBuffer[cursorRow * numColumns]; - var1 = 8 * gUnknown_08597C30[var0].unk0_0 + 13; + var1 = 8 * sPhraseFrameDimensions[frameId].left + 13; for (i = 0; i < cursorColumn; i++) { if (*ecWord == 0xFFFF) @@ -2933,8 +2941,8 @@ static bool8 sub_811C30C(void) } else { - CopyEasyChatWord(sp0, *ecWord); - stringWidth = GetStringWidth(1, sp0, 0); + CopyEasyChatWord(str, *ecWord); + stringWidth = GetStringWidth(1, str, 0); } trueStringWidth = stringWidth + 17; @@ -2942,27 +2950,27 @@ static bool8 sub_811C30C(void) ecWord++; } - var2 = 8 * (gUnknown_08597C30[var0].unk0_5 + cursorRow * 2); + var2 = 8 * (sPhraseFrameDimensions[frameId].top + cursorRow * 2); sub_811DF60(var1, var2 + 8); return FALSE; } static bool8 sub_811C3E4(void) { - u8 var0 = sub_811E920(sub_811BAB8()); - sub_811DF60(var0, 96); + u8 xOffset = GetFooterOptionXOffset(GetMainCursorColumn()); + sub_811DF60(xOffset, 96); return FALSE; } static bool8 sub_811C404(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(2); sub_811D214(1); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -2973,13 +2981,13 @@ static bool8 sub_811C404(void) static bool8 sub_811C448(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(3); sub_811D214(0); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -2990,13 +2998,13 @@ static bool8 sub_811C448(void) static bool8 sub_811C48C(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(1); sub_811D214(1); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3007,14 +3015,14 @@ static bool8 sub_811C48C(void) static bool8 sub_811C4D0(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DFB0(); sub_811D104(0); sub_811D2C8(); ShowBg(0); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3025,13 +3033,13 @@ static bool8 sub_811C4D0(void) static bool8 sub_811C518(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DFB0(); sub_811D104(0); sub_811D2C8(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; // Fall through case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3042,31 +3050,31 @@ static bool8 sub_811C518(void) static bool8 sub_811C554(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); HideBg(0); sub_811DE5C(0, 0, 0, 0); sub_811D6D4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811D9CC(0); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: if (!IsDma3ManagerBusyWithBgCopy() && !sub_811DAA4()) - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811E3AC(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 4: @@ -3075,7 +3083,7 @@ static bool8 sub_811C554(void) sub_811DFC8(); sub_811E6E0(0); sub_811E64C(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3088,31 +3096,31 @@ static bool8 sub_811C554(void) static bool8 sub_811C620(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811E050(); sub_811E4AC(); sub_811E6B0(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (sub_811E4D0() == TRUE) break; sub_811D9CC(1); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; // Fall through case 2: if (!sub_811DAA4()) - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811DFB0(); ShowBg(0); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 4: @@ -3124,20 +3132,20 @@ static bool8 sub_811C620(void) static bool8 sub_811C6C0(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811E050(); sub_811E6B0(); sub_811E55C(); sub_811D9CC(5); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!sub_811DAA4() && !sub_811E5B8()) { sub_811D6D4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: @@ -3145,7 +3153,7 @@ static bool8 sub_811C6C0(void) { sub_811D9CC(6); sub_811E578(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 3: @@ -3153,7 +3161,7 @@ static bool8 sub_811C6C0(void) { sub_811E64C(); sub_811DFC8(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3172,11 +3180,11 @@ static bool8 sub_811C780(void) static bool8 sub_811C78C(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DDAC(1, 4); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; // Fall through case 1: if (!sub_811DE10()) @@ -3193,17 +3201,17 @@ static bool8 sub_811C78C(void) static bool8 sub_811C7D4(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DDAC(-1, 4); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; // Fall through case 1: if (!sub_811DE10()) { sub_811E64C(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3216,33 +3224,33 @@ static bool8 sub_811C7D4(void) static bool8 sub_811C830(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811E050(); sub_811E4AC(); sub_811E6B0(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!sub_811E4D0()) { sub_811D9B4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811D9CC(2); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 3: if (!sub_811DAA4()) { sub_811D698(2); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 4: @@ -3252,7 +3260,7 @@ static bool8 sub_811C830(void) sub_811E6E0(1); sub_811E64C(); sub_811E794(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3265,38 +3273,38 @@ static bool8 sub_811C830(void) static bool8 sub_811C8F0(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D2C8(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: sub_811E380(); sub_811E6B0(); sub_811E7F8(); sub_811D9B4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811D9CC(3); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 3: if (!sub_811DAA4()) { ShowBg(0); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 4: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811DFB0(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3309,45 +3317,45 @@ static bool8 sub_811C8F0(void) static bool8 sub_811C99C(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D2C8(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: sub_811E380(); sub_811E6B0(); sub_811E7F8(); sub_811D9B4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 2: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811D9CC(3); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 3: if (!sub_811DAA4()) { sub_811D104(3); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 4: if (!IsDma3ManagerBusyWithBgCopy()) { ShowBg(0); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 5: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811DFB0(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3360,34 +3368,34 @@ static bool8 sub_811C99C(void) static bool8 sub_811CA5C(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811E380(); sub_811E6B0(); sub_811E7F8(); sub_811D9B4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811D9CC(4); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: if (!sub_811DAA4()) { sub_811D6D4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 3: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811E3AC(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 4: @@ -3396,7 +3404,7 @@ static bool8 sub_811CA5C(void) sub_811DFC8(); sub_811E6E0(0); sub_811E64C(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3413,17 +3421,17 @@ static bool8 sub_811CB18(void) static bool8 sub_811CB24(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D7A4(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811DDAC(1, 4); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: @@ -3432,7 +3440,7 @@ static bool8 sub_811CB24(void) sub_811E30C(); sub_811E64C(); sub_811E794(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3445,17 +3453,17 @@ static bool8 sub_811CB24(void) static bool8 sub_811CB98(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D7C8(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { sub_811DDAC(-1, 4); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: @@ -3463,7 +3471,7 @@ static bool8 sub_811CB98(void) { sub_811E64C(); sub_811E794(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3476,18 +3484,18 @@ static bool8 sub_811CB98(void) static bool8 sub_811CC08(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D7EC(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { s16 var0 = sub_811BBDC() - sub_811DE48(); sub_811DDAC(var0, 8); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: @@ -3496,7 +3504,7 @@ static bool8 sub_811CC08(void) sub_811E30C(); sub_811E64C(); sub_811E794(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3509,18 +3517,18 @@ static bool8 sub_811CC08(void) static bool8 sub_811CC90(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811D830(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) { s16 var0 = sub_811BBDC() - sub_811DE48(); sub_811DDAC(var0, 8); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; } break; case 2: @@ -3528,7 +3536,7 @@ static bool8 sub_811CC90(void) { sub_811E64C(); sub_811E794(); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; return FALSE; } break; @@ -3541,12 +3549,12 @@ static bool8 sub_811CC90(void) static bool8 sub_811CD14(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(4); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3557,12 +3565,12 @@ static bool8 sub_811CD14(void) static bool8 sub_811CD54(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(5); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3573,12 +3581,12 @@ static bool8 sub_811CD54(void) static bool8 sub_811CD94(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(6); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3589,12 +3597,12 @@ static bool8 sub_811CD94(void) static bool8 sub_811CDD4(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(7); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3605,12 +3613,12 @@ static bool8 sub_811CDD4(void) static bool8 sub_811CE14(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(8); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3621,12 +3629,12 @@ static bool8 sub_811CE14(void) static bool8 sub_811CE54(void) { - switch (gUnknown_0203A11C->unk0) + switch (sUnknown_0203A11C->unk0) { case 0: sub_811DF90(); sub_811D104(9); - gUnknown_0203A11C->unk0++; + sUnknown_0203A11C->unk0++; break; case 1: return IsDma3ManagerBusyWithBgCopy(); @@ -3637,22 +3645,22 @@ static bool8 sub_811CE54(void) static bool8 sub_811CE94(void) { - gUnknown_0203A11C = Alloc(sizeof(*gUnknown_0203A11C)); - if (!gUnknown_0203A11C) + sUnknown_0203A11C = Alloc(sizeof(*sUnknown_0203A11C)); + if (!sUnknown_0203A11C) return FALSE; - gUnknown_0203A11C->unk0 = 0; - gUnknown_0203A11C->unk2D8 = NULL; - gUnknown_0203A11C->unk2DC = NULL; - gUnknown_0203A11C->unk2E0 = NULL; - gUnknown_0203A11C->unk2E4 = NULL; - gUnknown_0203A11C->unk2E8 = NULL; - gUnknown_0203A11C->unk2EC = NULL; - gUnknown_0203A11C->unk2F0 = NULL; - gUnknown_0203A11C->unk2F4 = NULL; - gUnknown_0203A11C->unk2F8 = NULL; - gUnknown_0203A11C->unk2FC = NULL; - gUnknown_0203A11C->unkA = sub_811BC70(); + sUnknown_0203A11C->unk0 = 0; + sUnknown_0203A11C->unk2D8 = NULL; + sUnknown_0203A11C->unk2DC = NULL; + sUnknown_0203A11C->unk2E0 = NULL; + sUnknown_0203A11C->unk2E4 = NULL; + sUnknown_0203A11C->unk2E8 = NULL; + sUnknown_0203A11C->unk2EC = NULL; + sUnknown_0203A11C->unk2F0 = NULL; + sUnknown_0203A11C->unk2F4 = NULL; + sUnknown_0203A11C->unk2F8 = NULL; + sUnknown_0203A11C->unk2FC = NULL; + sUnknown_0203A11C->unkA = FooterHasFourOptions_(); return TRUE; } @@ -3684,7 +3692,7 @@ static void sub_811CF64(void) static void sub_811CFCC(void) { int xOffset; - const u8 *titleText = sub_811BA88(); + const u8 *titleText = GetTitleText(); if (!titleText) return; @@ -3776,19 +3784,19 @@ static void sub_811D214(u8 initialCursorPos) static void sub_811D230(void) { - u8 var0; + u8 frameId; struct WindowTemplate template; - var0 = sub_811BA68(); + frameId = GetEasyChatScreenFrameId(); template.bg = 3; - template.tilemapLeft = gUnknown_08597C30[var0].unk0_0; - template.tilemapTop = gUnknown_08597C30[var0].unk0_5; - template.width = gUnknown_08597C30[var0].unk1; - template.height = gUnknown_08597C30[var0].unk2; + template.tilemapLeft = sPhraseFrameDimensions[frameId].left; + template.tilemapTop = sPhraseFrameDimensions[frameId].top; + template.width = sPhraseFrameDimensions[frameId].width; + template.height = sPhraseFrameDimensions[frameId].height; template.paletteNum = 11; template.baseBlock = 0x6C; - gUnknown_0203A11C->windowId = AddWindow(&template); - PutWindowTilemap(gUnknown_0203A11C->windowId); + sUnknown_0203A11C->windowId = AddWindow(&template); + PutWindowTilemap(sUnknown_0203A11C->windowId); } static void sub_811D2C8(void) @@ -3797,27 +3805,27 @@ static void sub_811D2C8(void) u16 *ecWord; u8 numColumns, numRows; u8 *str; - int var0; + int frameId; int var1; int i, j, k; - ecWord = sub_811BA94(); - numColumns = sub_811BAAC(); - numRows = sub_811BAA0(); - var0 = sub_811BA68(); + ecWord = GetEasyChatWordBuffer(); + numColumns = GetNumColumns(); + numRows = GetNumRows(); + frameId = GetEasyChatScreenFrameId(); var1 = 0; - if (var0 == 7) + if (frameId == 7) var1 = 1; - FillWindowPixelBuffer(gUnknown_0203A11C->windowId, 0x11); + FillWindowPixelBuffer(sUnknown_0203A11C->windowId, 0x11); for (i = 0; i < numRows; i++) { memcpy(spC, sText_Clear17, sizeof(sText_Clear17)); if (var1) spC[2] = 6; - str = gUnknown_0203A11C->unkB; - gUnknown_0203A11C->unkB[0] = EOS; + str = sUnknown_0203A11C->unkB; + sUnknown_0203A11C->unkB[0] = EOS; str = StringAppend(str, spC); for (j = 0; j < numColumns; j++) { @@ -3846,7 +3854,7 @@ static void sub_811D2C8(void) spC[2] = 3; str = StringAppend(str, spC); - if (var0 == 2 || var0 == 7 || var0 == 8) + if (frameId == 2 || frameId == 7 || frameId == 8) { if (j == 0 && i == 4) break; @@ -3854,27 +3862,27 @@ static void sub_811D2C8(void) } *str = EOS; - sub_811D028(gUnknown_0203A11C->windowId, 1, gUnknown_0203A11C->unkB, 0, i * 16 + 1, 0xFF, 0); + sub_811D028(sUnknown_0203A11C->windowId, 1, sUnknown_0203A11C->unkB, 0, i * 16 + 1, 0xFF, 0); } - CopyWindowToVram(gUnknown_0203A11C->windowId, 3); + CopyWindowToVram(sUnknown_0203A11C->windowId, 3); } static void sub_811D424(u16 *tilemap) { - u8 var0; + u8 frameId; int right, bottom; int x, y; - var0 = sub_811BA68(); + frameId = GetEasyChatScreenFrameId(); CpuFastFill(0, tilemap, BG_SCREEN_SIZE); - if (var0 == 2 || var0 == 8) + if (frameId == 2 || frameId == 8) { - right = gUnknown_08597C30[var0].unk0_0 + gUnknown_08597C30[var0].unk1; - bottom = gUnknown_08597C30[var0].unk0_5 + gUnknown_08597C30[var0].unk2; - for (y = gUnknown_08597C30[var0].unk0_5; y < bottom; y++) + right = sPhraseFrameDimensions[frameId].left + sPhraseFrameDimensions[frameId].width; + bottom = sPhraseFrameDimensions[frameId].top + sPhraseFrameDimensions[frameId].height; + for (y = sPhraseFrameDimensions[frameId].top; y < bottom; y++) { - x = gUnknown_08597C30[var0].unk0_0 - 1; + x = sPhraseFrameDimensions[frameId].left - 1; tilemap[y * 32 + x] = 0x1005; x++; for (; x < right; x++) @@ -3885,10 +3893,10 @@ static void sub_811D424(u16 *tilemap) } else { - y = gUnknown_08597C30[var0].unk0_5 - 1; - x = gUnknown_08597C30[var0].unk0_0 - 1; - right = gUnknown_08597C30[var0].unk0_0 + gUnknown_08597C30[var0].unk1; - bottom = gUnknown_08597C30[var0].unk0_5 + gUnknown_08597C30[var0].unk2; + y = sPhraseFrameDimensions[frameId].top - 1; + x = sPhraseFrameDimensions[frameId].left - 1; + right = sPhraseFrameDimensions[frameId].left + sPhraseFrameDimensions[frameId].width; + bottom = sPhraseFrameDimensions[frameId].top + sPhraseFrameDimensions[frameId].height; tilemap[y * 32 + x] = 0x1001; x++; for (; x < right; x++) @@ -3898,7 +3906,7 @@ static void sub_811D424(u16 *tilemap) y++; for (; y < bottom; y++) { - x = gUnknown_08597C30[var0].unk0_0 - 1; + x = sPhraseFrameDimensions[frameId].left - 1; tilemap[y * 32 + x] = 0x1005; x++; for (; x < right; x++) @@ -3907,7 +3915,7 @@ static void sub_811D424(u16 *tilemap) tilemap[y* 32 + x] = 0x1007; } - x = gUnknown_08597C30[var0].unk0_0 - 1; + x = sPhraseFrameDimensions[frameId].left - 1; tilemap[y * 32 + x] = 0x1009; x++; for (; x < right; x++) @@ -3919,12 +3927,12 @@ static void sub_811D424(u16 *tilemap) static void sub_811D60C(void) { - u8 var0; + u8 frameId; u16 *tilemap; tilemap = GetBgTilemapBuffer(3); - var0 = sub_811BA68(); - switch (gUnknown_08597C30[var0].unk3) + frameId = GetEasyChatScreenFrameId(); + switch (sPhraseFrameDimensions[frameId].footerId) { case 2: tilemap += 0x2A0; @@ -4072,11 +4080,11 @@ static void sub_811D864(u8 arg0, u8 arg1) easyChatWord = sub_811F578(var0++); if (easyChatWord != 0xFFFF) { - CopyEasyChatWordPadded(gUnknown_0203A11C->unkCC, easyChatWord, 0); + CopyEasyChatWordPadded(sUnknown_0203A11C->unkCC, easyChatWord, 0); if (!sub_811BF88(easyChatWord)) - sub_811D028(2, 1, gUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, NULL); + sub_811D028(2, 1, sUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, NULL); else - sub_811D058(2, 1, gUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, 1, 5, 3); + sub_811D058(2, 1, sUnknown_0203A11C->unkCC, (j * 13 + 3) * 8, y, 0xFF, 1, 5, 3); } } @@ -4122,48 +4130,48 @@ static void sub_811D9CC(int arg0) switch (arg0) { case 0: - gUnknown_0203A11C->unk6 = 0; - gUnknown_0203A11C->unk7 = 10; + sUnknown_0203A11C->unk6 = 0; + sUnknown_0203A11C->unk7 = 10; break; case 1: - gUnknown_0203A11C->unk6 = 9; - gUnknown_0203A11C->unk7 = 0; + sUnknown_0203A11C->unk6 = 9; + sUnknown_0203A11C->unk7 = 0; break; case 2: - gUnknown_0203A11C->unk6 = 11; - gUnknown_0203A11C->unk7 = 17; + sUnknown_0203A11C->unk6 = 11; + sUnknown_0203A11C->unk7 = 17; break; case 3: - gUnknown_0203A11C->unk6 = 17; - gUnknown_0203A11C->unk7 = 0; + sUnknown_0203A11C->unk6 = 17; + sUnknown_0203A11C->unk7 = 0; break; case 4: - gUnknown_0203A11C->unk6 = 17; - gUnknown_0203A11C->unk7 = 10; + sUnknown_0203A11C->unk6 = 17; + sUnknown_0203A11C->unk7 = 10; break; case 5: - gUnknown_0203A11C->unk6 = 18; - gUnknown_0203A11C->unk7 = 22; + sUnknown_0203A11C->unk6 = 18; + sUnknown_0203A11C->unk7 = 22; break; case 6: - gUnknown_0203A11C->unk6 = 22; - gUnknown_0203A11C->unk7 = 18; + sUnknown_0203A11C->unk6 = 22; + sUnknown_0203A11C->unk7 = 18; break; } - gUnknown_0203A11C->unk8 = gUnknown_0203A11C->unk6 < gUnknown_0203A11C->unk7 ? 1 : -1; + sUnknown_0203A11C->unk8 = sUnknown_0203A11C->unk6 < sUnknown_0203A11C->unk7 ? 1 : -1; } static bool8 sub_811DAA4(void) { u8 var0, var1; - if (gUnknown_0203A11C->unk6 == gUnknown_0203A11C->unk7) + if (sUnknown_0203A11C->unk6 == sUnknown_0203A11C->unk7) return FALSE; - gUnknown_0203A11C->unk6 += gUnknown_0203A11C->unk8; - sub_811DADC(gUnknown_0203A11C->unk6); - var0 = gUnknown_0203A11C->unk6; - var1 = gUnknown_0203A11C->unk7; + sUnknown_0203A11C->unk6 += sUnknown_0203A11C->unk8; + sub_811DADC(sUnknown_0203A11C->unk6); + var0 = sUnknown_0203A11C->unk6; + var1 = sUnknown_0203A11C->unk7; return (var0 ^ var1) > 0; } @@ -4244,7 +4252,7 @@ static void sub_811DC28(int left, int top, int width, int height) int bottom; int x, y; - tilemap = gUnknown_0203A11C->unk300; + tilemap = sUnknown_0203A11C->unk300; right = left + width - 1; bottom = top + height - 1; x = left; @@ -4278,7 +4286,7 @@ static void sub_811DC28(int left, int top, int width, int height) static void sub_811DD84(void) { ChangeBgY(2, 0x800, 0); - gUnknown_0203A11C->unk2CE = 0; + sUnknown_0203A11C->unk2CE = 0; } static void sub_811DDAC(s16 arg0, u8 arg1) @@ -4287,15 +4295,15 @@ static void sub_811DDAC(s16 arg0, u8 arg1) s16 var0; bgY = GetBgY(2); - gUnknown_0203A11C->unk2CE += arg0; + sUnknown_0203A11C->unk2CE += arg0; var0 = arg0 * 16; bgY += var0 << 8; if (arg1) { - gUnknown_0203A11C->unk2D0 = bgY; - gUnknown_0203A11C->unk2D4 = arg1 * 256; + sUnknown_0203A11C->unk2D0 = bgY; + sUnknown_0203A11C->unk2D4 = arg1 * 256; if (var0 < 0) - gUnknown_0203A11C->unk2D4 = -gUnknown_0203A11C->unk2D4; + sUnknown_0203A11C->unk2D4 = -sUnknown_0203A11C->unk2D4; } else { @@ -4308,20 +4316,20 @@ static bool8 sub_811DE10(void) int bgY; bgY = GetBgY(2); - if (bgY == gUnknown_0203A11C->unk2D0) + if (bgY == sUnknown_0203A11C->unk2D0) { return FALSE; } else { - ChangeBgY(2, gUnknown_0203A11C->unk2D4, 1); + ChangeBgY(2, sUnknown_0203A11C->unk2D4, 1); return TRUE; } } static int sub_811DE48(void) { - return gUnknown_0203A11C->unk2CE; + return sUnknown_0203A11C->unk2CE; } static void sub_811DE5C(u8 left, u8 top, u8 width, u8 height) @@ -4336,19 +4344,19 @@ static void sub_811DE90(void) { u32 i; - LoadSpriteSheets(sUnknown_08597CA0); - LoadSpritePalettes(sUnknown_08597CC0); + LoadSpriteSheets(sEasyChatSpriteSheets); + LoadSpritePalettes(sEasyChatSpritePalettes); for (i = 0; i < ARRAY_COUNT(sUnknown_08597CE8); i++) LoadCompressedSpriteSheet(&sUnknown_08597CE8[i]); } static void sub_811DEC4(void) { - u8 var0 = sub_811BA68(); - int x = gUnknown_08597C30[var0].unk0_0 * 8 + 13; - int y = gUnknown_08597C30[var0].unk0_5 * 8 + 8; + u8 frameId = GetEasyChatScreenFrameId(); + int x = sPhraseFrameDimensions[frameId].left * 8 + 13; + int y = sPhraseFrameDimensions[frameId].top * 8 + 8; u8 spriteId = CreateSprite(&sUnknown_08597D18, x, y, 2); - gUnknown_0203A11C->unk2D8 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2D8 = &gSprites[spriteId]; gSprites[spriteId].data[1] = 1; } @@ -4367,44 +4375,44 @@ static void sub_811DF28(struct Sprite *sprite) static void sub_811DF60(u8 x, u8 y) { - gUnknown_0203A11C->unk2D8->pos1.x = x; - gUnknown_0203A11C->unk2D8->pos1.y = y; - gUnknown_0203A11C->unk2D8->pos2.x = 0; - gUnknown_0203A11C->unk2D8->data[0] = 0; + sUnknown_0203A11C->unk2D8->pos1.x = x; + sUnknown_0203A11C->unk2D8->pos1.y = y; + sUnknown_0203A11C->unk2D8->pos2.x = 0; + sUnknown_0203A11C->unk2D8->data[0] = 0; } static void sub_811DF90(void) { - gUnknown_0203A11C->unk2D8->data[0] = 0; - gUnknown_0203A11C->unk2D8->data[1] = 0; - gUnknown_0203A11C->unk2D8->pos2.x = 0; + sUnknown_0203A11C->unk2D8->data[0] = 0; + sUnknown_0203A11C->unk2D8->data[1] = 0; + sUnknown_0203A11C->unk2D8->pos2.x = 0; } static void sub_811DFB0(void) { - gUnknown_0203A11C->unk2D8->data[1] = 1; + sUnknown_0203A11C->unk2D8->data[1] = 1; } static void sub_811DFC8(void) { u8 spriteId = CreateSprite(&sUnknown_08597D68, 0, 0, 3); - gUnknown_0203A11C->unk2DC = &gSprites[spriteId]; - gUnknown_0203A11C->unk2DC->pos2.x = 32; + sUnknown_0203A11C->unk2DC = &gSprites[spriteId]; + sUnknown_0203A11C->unk2DC->pos2.x = 32; spriteId = CreateSprite(&sUnknown_08597D68, 0, 0, 3); - gUnknown_0203A11C->unk2E0 = &gSprites[spriteId]; - gUnknown_0203A11C->unk2E0->pos2.x = -32; + sUnknown_0203A11C->unk2E0 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2E0->pos2.x = -32; - gUnknown_0203A11C->unk2DC->hFlip = 1; + sUnknown_0203A11C->unk2DC->hFlip = 1; sub_811E088(); } static void sub_811E050(void) { - DestroySprite(gUnknown_0203A11C->unk2DC); - gUnknown_0203A11C->unk2DC = NULL; - DestroySprite(gUnknown_0203A11C->unk2E0); - gUnknown_0203A11C->unk2E0 = NULL; + DestroySprite(sUnknown_0203A11C->unk2DC); + sUnknown_0203A11C->unk2DC = NULL; + DestroySprite(sUnknown_0203A11C->unk2E0); + sUnknown_0203A11C->unk2E0 = NULL; } static void sub_811E088(void) @@ -4412,7 +4420,7 @@ static void sub_811E088(void) u8 var0; u8 var1; - if (gUnknown_0203A11C->unk2DC && gUnknown_0203A11C->unk2E0) + if (sUnknown_0203A11C->unk2DC && sUnknown_0203A11C->unk2E0) { sub_811BB9C(&var0, &var1); if (!sub_811BBB0()) @@ -4426,23 +4434,23 @@ static void sub_811E0EC(s8 arg0, s8 arg1) { if (arg0 != -1) { - StartSpriteAnim(gUnknown_0203A11C->unk2DC, 0); - gUnknown_0203A11C->unk2DC->pos1.x = arg0 * 84 + 58; - gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 96; + StartSpriteAnim(sUnknown_0203A11C->unk2DC, 0); + sUnknown_0203A11C->unk2DC->pos1.x = arg0 * 84 + 58; + sUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 96; - StartSpriteAnim(gUnknown_0203A11C->unk2E0, 0); - gUnknown_0203A11C->unk2E0->pos1.x = arg0 * 84 + 58; - gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 96; + StartSpriteAnim(sUnknown_0203A11C->unk2E0, 0); + sUnknown_0203A11C->unk2E0->pos1.x = arg0 * 84 + 58; + sUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 96; } else { - StartSpriteAnim(gUnknown_0203A11C->unk2DC, 1); - gUnknown_0203A11C->unk2DC->pos1.x = 216; - gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; + StartSpriteAnim(sUnknown_0203A11C->unk2DC, 1); + sUnknown_0203A11C->unk2DC->pos1.x = 216; + sUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; - StartSpriteAnim(gUnknown_0203A11C->unk2E0, 1); - gUnknown_0203A11C->unk2E0->pos1.x = 216; - gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; + StartSpriteAnim(sUnknown_0203A11C->unk2E0, 1); + sUnknown_0203A11C->unk2E0->pos1.x = 216; + sUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; } } @@ -4466,32 +4474,32 @@ static void sub_811E1A4(s8 arg0, s8 arg1) anim = 3; } - StartSpriteAnim(gUnknown_0203A11C->unk2DC, anim); - gUnknown_0203A11C->unk2DC->pos1.x = x; - gUnknown_0203A11C->unk2DC->pos1.y = y; + StartSpriteAnim(sUnknown_0203A11C->unk2DC, anim); + sUnknown_0203A11C->unk2DC->pos1.x = x; + sUnknown_0203A11C->unk2DC->pos1.y = y; - StartSpriteAnim(gUnknown_0203A11C->unk2E0, anim); - gUnknown_0203A11C->unk2E0->pos1.x = x; - gUnknown_0203A11C->unk2E0->pos1.y = y; + StartSpriteAnim(sUnknown_0203A11C->unk2E0, anim); + sUnknown_0203A11C->unk2E0->pos1.x = x; + sUnknown_0203A11C->unk2E0->pos1.y = y; } else { - StartSpriteAnim(gUnknown_0203A11C->unk2DC, 1); - gUnknown_0203A11C->unk2DC->pos1.x = 216; - gUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; + StartSpriteAnim(sUnknown_0203A11C->unk2DC, 1); + sUnknown_0203A11C->unk2DC->pos1.x = 216; + sUnknown_0203A11C->unk2DC->pos1.y = arg1 * 16 + 112; - StartSpriteAnim(gUnknown_0203A11C->unk2E0, 1); - gUnknown_0203A11C->unk2E0->pos1.x = 216; - gUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; + StartSpriteAnim(sUnknown_0203A11C->unk2E0, 1); + sUnknown_0203A11C->unk2E0->pos1.x = 216; + sUnknown_0203A11C->unk2E0->pos1.y = arg1 * 16 + 112; } } static void sub_811E288(void) { u8 spriteId = CreateSprite(&sUnknown_08597D18, 0, 0, 4); - gUnknown_0203A11C->unk2E4 = &gSprites[spriteId]; - gUnknown_0203A11C->unk2E4->callback = sub_811E2DC; - gUnknown_0203A11C->unk2E4->oam.priority = 2; + sUnknown_0203A11C->unk2E4 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2E4->callback = sub_811E2DC; + sUnknown_0203A11C->unk2E4->oam.priority = 2; sub_811E30C(); } @@ -4518,58 +4526,58 @@ static void sub_811E30C(void) static void sub_811E34C(u8 x, u8 y) { - if (gUnknown_0203A11C->unk2E4) + if (sUnknown_0203A11C->unk2E4) { - gUnknown_0203A11C->unk2E4->pos1.x = x; - gUnknown_0203A11C->unk2E4->pos1.y = y; - gUnknown_0203A11C->unk2E4->pos2.x = 0; - gUnknown_0203A11C->unk2E4->data[0] = 0; + sUnknown_0203A11C->unk2E4->pos1.x = x; + sUnknown_0203A11C->unk2E4->pos1.y = y; + sUnknown_0203A11C->unk2E4->pos2.x = 0; + sUnknown_0203A11C->unk2E4->data[0] = 0; } } static void sub_811E380(void) { - if (gUnknown_0203A11C->unk2E4) + if (sUnknown_0203A11C->unk2E4) { - DestroySprite(gUnknown_0203A11C->unk2E4); - gUnknown_0203A11C->unk2E4 = NULL; + DestroySprite(sUnknown_0203A11C->unk2E4); + sUnknown_0203A11C->unk2E4 = NULL; } } static void sub_811E3AC(void) { u8 spriteId = CreateSprite(&sUnknown_08597DF0, 208, 128, 6); - gUnknown_0203A11C->unk2E8 = &gSprites[spriteId]; - gUnknown_0203A11C->unk2E8->pos2.x = -64; + sUnknown_0203A11C->unk2E8 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2E8->pos2.x = -64; spriteId = CreateSprite(&sUnknown_08597DD0, 208, 80, 5); - gUnknown_0203A11C->unk2EC = &gSprites[spriteId]; - gUnknown_0203A11C->unk9 = 0; + sUnknown_0203A11C->unk2EC = &gSprites[spriteId]; + sUnknown_0203A11C->unk9 = 0; } static bool8 sub_811E418(void) { - switch (gUnknown_0203A11C->unk9) + switch (sUnknown_0203A11C->unk9) { default: return FALSE; case 0: - gUnknown_0203A11C->unk2E8->pos2.x += 8; - if (gUnknown_0203A11C->unk2E8->pos2.x >= 0) + sUnknown_0203A11C->unk2E8->pos2.x += 8; + if (sUnknown_0203A11C->unk2E8->pos2.x >= 0) { - gUnknown_0203A11C->unk2E8->pos2.x = 0; + sUnknown_0203A11C->unk2E8->pos2.x = 0; if (!sub_811BBB0()) - StartSpriteAnim(gUnknown_0203A11C->unk2EC, 1); + StartSpriteAnim(sUnknown_0203A11C->unk2EC, 1); else - StartSpriteAnim(gUnknown_0203A11C->unk2EC, 2); + StartSpriteAnim(sUnknown_0203A11C->unk2EC, 2); - gUnknown_0203A11C->unk9++; + sUnknown_0203A11C->unk9++; } break; case 1: - if (gUnknown_0203A11C->unk2EC->animEnded) + if (sUnknown_0203A11C->unk2EC->animEnded) { - gUnknown_0203A11C->unk9 = 2; + sUnknown_0203A11C->unk9 = 2; return FALSE; } } @@ -4579,29 +4587,29 @@ static bool8 sub_811E418(void) static void sub_811E4AC(void) { - gUnknown_0203A11C->unk9 = 0; - StartSpriteAnim(gUnknown_0203A11C->unk2EC, 3); + sUnknown_0203A11C->unk9 = 0; + StartSpriteAnim(sUnknown_0203A11C->unk2EC, 3); } static bool8 sub_811E4D0(void) { - switch (gUnknown_0203A11C->unk9) + switch (sUnknown_0203A11C->unk9) { default: return FALSE; case 0: - if (gUnknown_0203A11C->unk2EC->animEnded) - gUnknown_0203A11C->unk9 = 1; + if (sUnknown_0203A11C->unk2EC->animEnded) + sUnknown_0203A11C->unk9 = 1; break; case 1: - gUnknown_0203A11C->unk2E8->pos2.x -= 8; - if (gUnknown_0203A11C->unk2E8->pos2.x <= -64) + sUnknown_0203A11C->unk2E8->pos2.x -= 8; + if (sUnknown_0203A11C->unk2E8->pos2.x <= -64) { - DestroySprite(gUnknown_0203A11C->unk2EC); - DestroySprite(gUnknown_0203A11C->unk2E8); - gUnknown_0203A11C->unk2EC = NULL; - gUnknown_0203A11C->unk2E8 = NULL; - gUnknown_0203A11C->unk9++; + DestroySprite(sUnknown_0203A11C->unk2EC); + DestroySprite(sUnknown_0203A11C->unk2E8); + sUnknown_0203A11C->unk2EC = NULL; + sUnknown_0203A11C->unk2E8 = NULL; + sUnknown_0203A11C->unk9++; return FALSE; } } @@ -4611,33 +4619,33 @@ static bool8 sub_811E4D0(void) static void sub_811E55C(void) { - StartSpriteAnim(gUnknown_0203A11C->unk2EC, 4); + StartSpriteAnim(sUnknown_0203A11C->unk2EC, 4); } static void sub_811E578(void) { if (!sub_811BBB0()) - StartSpriteAnim(gUnknown_0203A11C->unk2EC, 1); + StartSpriteAnim(sUnknown_0203A11C->unk2EC, 1); else - StartSpriteAnim(gUnknown_0203A11C->unk2EC, 2); + StartSpriteAnim(sUnknown_0203A11C->unk2EC, 2); } static bool8 sub_811E5B8(void) { - return !gUnknown_0203A11C->unk2EC->animEnded; + return !sUnknown_0203A11C->unk2EC->animEnded; } static void sub_811E5D4(void) { u8 spriteId = CreateSprite(&sUnknown_08597E48, 96, 80, 0); if (spriteId != MAX_SPRITES) - gUnknown_0203A11C->unk2F0 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2F0 = &gSprites[spriteId]; spriteId = CreateSprite(&sUnknown_08597E48, 96, 156, 0); if (spriteId != MAX_SPRITES) { - gUnknown_0203A11C->unk2F4 = &gSprites[spriteId]; - gUnknown_0203A11C->unk2F4->vFlip = 1; + sUnknown_0203A11C->unk2F4 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2F4->vFlip = 1; } sub_811E6B0(); @@ -4645,27 +4653,27 @@ static void sub_811E5D4(void) static void sub_811E64C(void) { - gUnknown_0203A11C->unk2F0->invisible = !sub_811BBF8(); - gUnknown_0203A11C->unk2F4->invisible = !sub_811BC2C(); + sUnknown_0203A11C->unk2F0->invisible = !sub_811BBF8(); + sUnknown_0203A11C->unk2F4->invisible = !sub_811BC2C(); } static void sub_811E6B0(void) { - gUnknown_0203A11C->unk2F0->invisible = 1; - gUnknown_0203A11C->unk2F4->invisible = 1; + sUnknown_0203A11C->unk2F0->invisible = 1; + sUnknown_0203A11C->unk2F4->invisible = 1; } static void sub_811E6E0(int arg0) { if (!arg0) { - gUnknown_0203A11C->unk2F0->pos1.x = 96; - gUnknown_0203A11C->unk2F4->pos1.x = 96; + sUnknown_0203A11C->unk2F0->pos1.x = 96; + sUnknown_0203A11C->unk2F4->pos1.x = 96; } else { - gUnknown_0203A11C->unk2F0->pos1.x = 120; - gUnknown_0203A11C->unk2F4->pos1.x = 120; + sUnknown_0203A11C->unk2F0->pos1.x = 120; + sUnknown_0203A11C->unk2F4->pos1.x = 120; } } @@ -4673,13 +4681,13 @@ static void sub_811E720(void) { u8 spriteId = CreateSprite(&sUnknown_08597E30, 220, 84, 1); if (spriteId != MAX_SPRITES) - gUnknown_0203A11C->unk2F8 = &gSprites[spriteId]; + sUnknown_0203A11C->unk2F8 = &gSprites[spriteId]; spriteId = CreateSprite(&sUnknown_08597E30, 220, 156, 1); if (spriteId != MAX_SPRITES) { - gUnknown_0203A11C->unk2FC = &gSprites[spriteId]; - StartSpriteAnim(gUnknown_0203A11C->unk2FC, 1); + sUnknown_0203A11C->unk2FC = &gSprites[spriteId]; + StartSpriteAnim(sUnknown_0203A11C->unk2FC, 1); } sub_811E7F8(); @@ -4687,14 +4695,14 @@ static void sub_811E720(void) static void sub_811E794(void) { - gUnknown_0203A11C->unk2F8->invisible = !sub_811BBF8(); - gUnknown_0203A11C->unk2FC->invisible = !sub_811BC2C(); + sUnknown_0203A11C->unk2F8->invisible = !sub_811BBF8(); + sUnknown_0203A11C->unk2FC->invisible = !sub_811BC2C(); } static void sub_811E7F8(void) { - gUnknown_0203A11C->unk2F8->invisible = 1; - gUnknown_0203A11C->unk2FC->invisible = 1; + sUnknown_0203A11C->unk2F8->invisible = 1; + sUnknown_0203A11C->unk2FC->invisible = 1; } static void sub_811E828(void) @@ -4702,22 +4710,22 @@ static void sub_811E828(void) int graphicsId; u8 spriteId; - switch (sub_811BCBC()) + switch (GetDisplayedPersonType()) { - case 0: + case EASY_CHAT_PERSON_REPORTER_MALE: graphicsId = EVENT_OBJ_GFX_REPORTER_M; break; - case 1: + case EASY_CHAT_PERSON_REPORTER_FEMALE: graphicsId = EVENT_OBJ_GFX_REPORTER_F; break; - case 2: + case EASY_CHAT_PERSON_BOY: graphicsId = EVENT_OBJ_GFX_BOY_1; break; default: return; } - if (sub_811BA68() != 4) + if (GetEasyChatScreenFrameId() != 4) return; spriteId = AddPseudoEventObject(graphicsId, SpriteCallbackDummy, 76, 40, 0); @@ -4741,10 +4749,10 @@ static void sub_811E828(void) } } -int sub_811E8E4(void) +int GetFooterIndex(void) { - u8 var0 = sub_811BA68(); - switch (gUnknown_08597C30[var0].unk3) + u8 frameId = GetEasyChatScreenFrameId(); + switch (sPhraseFrameDimensions[frameId].footerId) { case 1: return 1; @@ -4757,11 +4765,11 @@ int sub_811E8E4(void) } } -static int sub_811E920(int arg0) +static int GetFooterOptionXOffset(int option) { - int var0 = sub_811E8E4(); - if (var0 < 3) - return sUnknown_08597E60[var0][arg0] + 4; + int footerIndex = GetFooterIndex(); + if (footerIndex < 3) + return sFooterOptionXOffsets[footerIndex][option] + 4; else return 0; } @@ -4771,8 +4779,8 @@ static void sub_811E948(void) int i; u16 windowId; struct WindowTemplate template; - int var0 = sub_811E8E4(); - if (var0 == 3) + int footerId = GetFooterIndex(); + if (footerId == 3) return; template.bg = 3; @@ -4786,10 +4794,10 @@ static void sub_811E948(void) FillWindowPixelBuffer(windowId, 0x11); for (i = 0; i < 4; i++) { - const u8 *str = sFooterTextOptions[var0][i]; + const u8 *str = sFooterTextOptions[footerId][i]; if (str) { - int x = sUnknown_08597E60[var0][i]; + int x = sFooterOptionXOffsets[footerId][i]; sub_811D028(windowId, 1, str, x, 1, 0, NULL); } } @@ -5075,13 +5083,13 @@ void sub_811EECC(void) switch (gSpecialVar_0x8004) { case 0: - easyChatWords = gSaveBlock1Ptr->unk2BB0; + easyChatWords = gSaveBlock1Ptr->easyChatProfile; columns = 2; rows = 2; break; case 1: - easyChatWords = gSaveBlock1Ptr->unk2BBC; - if (sub_811EDC4(gSaveBlock1Ptr->unk2BBC, 3, 2, 18)) + easyChatWords = gSaveBlock1Ptr->easyChatBattleStart; + if (sub_811EDC4(gSaveBlock1Ptr->easyChatBattleStart, 3, 2, 18)) { columns = 2; rows = 3; @@ -5093,12 +5101,12 @@ void sub_811EECC(void) } break; case 2: - easyChatWords = gSaveBlock1Ptr->unk2BC8; + easyChatWords = gSaveBlock1Ptr->easyChatBattleWon; columns = 3; rows = 2; break; case 3: - easyChatWords = gSaveBlock1Ptr->unk2BD4; + easyChatWords = gSaveBlock1Ptr->easyChatBattleLost; columns = 3; rows = 2; break; @@ -5237,16 +5245,16 @@ void InitEasyChatPhrases(void) u16 i, j; for (i = 0; i < 4; i++) - gSaveBlock1Ptr->unk2BB0[i] = sUnknown_0859E62C[i]; + gSaveBlock1Ptr->easyChatProfile[i] = sDefaultProfileWords[i]; for (i = 0; i < 6; i++) - gSaveBlock1Ptr->unk2BBC[i] = sUnknown_0859E634[i]; + gSaveBlock1Ptr->easyChatBattleStart[i] = sDefaultBattleStartWords[i]; for (i = 0; i < 6; i++) - gSaveBlock1Ptr->unk2BC8[i] = sUnknown_0859E640[i]; + gSaveBlock1Ptr->easyChatBattleWon[i] = sUnknown_0859E640[i]; for (i = 0; i < 6; i++) - gSaveBlock1Ptr->unk2BD4[i] = sUnknown_0859E64C[i]; + gSaveBlock1Ptr->easyChatBattleLost[i] = sUnknown_0859E64C[i]; for (i = 0; i < MAIL_COUNT; i++) { @@ -5264,8 +5272,8 @@ void InitEasyChatPhrases(void) static bool8 sub_811F28C(void) { - gUnknown_0203A120 = Alloc(sizeof(*gUnknown_0203A120)); - if (!gUnknown_0203A120) + sUnknown_0203A120 = Alloc(sizeof(*sUnknown_0203A120)); + if (!sUnknown_0203A120) return FALSE; sub_811F2D4(); @@ -5275,46 +5283,46 @@ static bool8 sub_811F28C(void) static void sub_811F2B8(void) { - if (gUnknown_0203A120) - FREE_AND_SET_NULL(gUnknown_0203A120); + if (sUnknown_0203A120) + FREE_AND_SET_NULL(sUnknown_0203A120); } static void sub_811F2D4(void) { int i; - gUnknown_0203A120->unk0 = 0; + sUnknown_0203A120->unk0 = 0; if (GetNationalPokedexCount(FLAG_GET_SEEN)) - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_POKEMON; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_POKEMON; for (i = EC_GROUP_TRAINER; i <= EC_GROUP_ADJECTIVES; i++) - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = i; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = i; if (FlagGet(FLAG_SYS_GAME_CLEAR)) { - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_EVENTS; - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_MOVE_1; - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_MOVE_2; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_EVENTS; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_MOVE_1; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_MOVE_2; } if (FlagGet(FLAG_SYS_HIPSTER_MEET)) - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_TRENDY_SAYING; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_TRENDY_SAYING; if (IsNationalPokedexEnabled()) - gUnknown_0203A120->unk2[gUnknown_0203A120->unk0++] = EC_GROUP_POKEMON_2; + sUnknown_0203A120->unk2[sUnknown_0203A120->unk0++] = EC_GROUP_POKEMON_2; } static u8 sub_811F3AC(void) { - return gUnknown_0203A120->unk0; + return sUnknown_0203A120->unk0; } static u8 sub_811F3B8(u8 index) { - if (index >= gUnknown_0203A120->unk0) + if (index >= sUnknown_0203A120->unk0) return EC_NUM_GROUPS; else - return gUnknown_0203A120->unk2[index]; + return sUnknown_0203A120->unk2[index]; } u8 *unref_sub_811F3E0(u8 *dest, u8 groupId, u16 totalChars) @@ -5362,7 +5370,7 @@ static void sub_811F46C(void) { numWords = gEasyChatWordsByLetterPointers[i].numWords; words = gEasyChatWordsByLetterPointers[i].words; - gUnknown_0203A120->unk2E[i] = 0; + sUnknown_0203A120->unk2E[i] = 0; index = 0; for (j = 0; j < numWords; j++) { @@ -5382,8 +5390,8 @@ static void sub_811F46C(void) { if (sub_811F860(words[k])) { - gUnknown_0203A120->unk64[i][index++] = words[k]; - gUnknown_0203A120->unk2E[i]++; + sUnknown_0203A120->unk64[i][index++] = words[k]; + sUnknown_0203A120->unk2E[i]++; break; } } @@ -5396,22 +5404,22 @@ static void sub_811F46C(void) static void sub_811F548(int arg0, u16 groupId) { if (!arg0) - gUnknown_0203A120->unk3BA0 = sub_811F5C4(groupId); + sUnknown_0203A120->unk3BA0 = sub_811F5C4(groupId); else - gUnknown_0203A120->unk3BA0 = sub_811F6B8(groupId); + sUnknown_0203A120->unk3BA0 = sub_811F6B8(groupId); } static u16 sub_811F578(u16 arg0) { - if (arg0 >= gUnknown_0203A120->unk3BA0) + if (arg0 >= sUnknown_0203A120->unk3BA0) return 0xFFFF; else - return gUnknown_0203A120->unk3984[arg0]; + return sUnknown_0203A120->unk3984[arg0]; } static u16 sub_811F5B0(void) { - return gUnknown_0203A120->unk3BA0; + return sUnknown_0203A120->unk3BA0; } static u16 sub_811F5C4(u16 groupId) @@ -5429,7 +5437,7 @@ static u16 sub_811F5C4(u16 groupId) for (i = 0, totalWords = 0; i < numWords; i++) { if (sub_811F764(list[i], groupId)) - gUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, list[i]); + sUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, list[i]); } return totalWords; @@ -5441,7 +5449,7 @@ static u16 sub_811F5C4(u16 groupId) { u16 alphabeticalOrder = wordInfo[i].alphabeticalOrder; if (sub_811F764(alphabeticalOrder, groupId)) - gUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, alphabeticalOrder); + sUnknown_0203A120->unk3984[totalWords++] = EC_WORD(groupId, alphabeticalOrder); } return totalWords; @@ -5453,8 +5461,8 @@ static u16 sub_811F6B8(u16 alphabeticalGroup) u16 i; u16 totalWords; - for (i = 0, totalWords = 0; i < gUnknown_0203A120->unk2E[alphabeticalGroup]; i++) - gUnknown_0203A120->unk3984[totalWords++] = gUnknown_0203A120->unk64[alphabeticalGroup][i]; + for (i = 0, totalWords = 0; i < sUnknown_0203A120->unk2E[alphabeticalGroup]; i++) + sUnknown_0203A120->unk3984[totalWords++] = sUnknown_0203A120->unk64[alphabeticalGroup][i]; return totalWords; } @@ -5462,9 +5470,9 @@ static u16 sub_811F6B8(u16 alphabeticalGroup) static bool8 sub_811F72C(u8 arg0) { int i; - for (i = 0; i < gUnknown_0203A120->unk0; i++) + for (i = 0; i < sUnknown_0203A120->unk0; i++) { - if (gUnknown_0203A120->unk2[i] == arg0) + if (sUnknown_0203A120->unk2[i] == arg0) return TRUE; } diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 3d4f8a90d..dc38d8848 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -695,7 +695,7 @@ u8 sub_818E2D8(void) void sub_818E2FC(void) { - easy_chat_input_maybe(); + ShowEasyChatScreen(); } bool8 sub_818E308(void) @@ -763,8 +763,8 @@ void sub_818E430(void) void sub_818E47C(void) { - gSpecialVar_0x8004 = 0x11; - easy_chat_input_maybe(); + gSpecialVar_0x8004 = EASY_CHAT_TYPE_QUIZ_SET_QUESTION; + ShowEasyChatScreen(); } void sub_818E490(void) diff --git a/src/party_menu.c b/src/party_menu.c index 645390aff..4103c212c 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -63,6 +63,7 @@ #include "window.h" #include "constants/battle.h" #include "constants/battle_frontier.h" +#include "constants/easy_chat.h" #include "constants/field_effects.h" #include "constants/flags.h" #include "constants/items.h" @@ -4211,7 +4212,11 @@ static void sub_81B452C(void) { u8 mail = GetMonData(&gPlayerParty[gUnknown_0203CEC8.unk9], MON_DATA_MAIL); - sub_811A20C(4, gSaveBlock1Ptr->mail[mail].words, sub_81B4578, 3); + DoEasyChatScreen( + EASY_CHAT_TYPE_MAIL, + gSaveBlock1Ptr->mail[mail].words, + sub_81B4578, + EASY_CHAT_PERSON_DISPLAY_NONE); } static void sub_81B4578(void) @@ -6385,7 +6390,11 @@ static void sub_81B814C(void) sub_81B1DB8(&gPlayerParty[gUnknown_0203CEC8.unk9], gUnknown_0203CEC8.unkC); mail = GetMonData(&gPlayerParty[gUnknown_0203CEC8.unk9], MON_DATA_MAIL); - sub_811A20C(4, gSaveBlock1Ptr->mail[mail].words, sub_81B81A8, 3); + DoEasyChatScreen( + EASY_CHAT_TYPE_MAIL, + gSaveBlock1Ptr->mail[mail].words, + sub_81B81A8, + EASY_CHAT_PERSON_DISPLAY_NONE); } static void sub_81B81A8(void) diff --git a/src/trainer_card.c b/src/trainer_card.c index 49a62284f..4019ef0bd 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -695,7 +695,7 @@ static void SetPlayerCardData(struct TrainerCard *trainerCard, u8 cardType) trainerCard->money = GetMoney(&gSaveBlock1Ptr->money); for (i = 0; i < 4; i++) - trainerCard->var_28[i] = gSaveBlock1Ptr->unk2BB0[i]; + trainerCard->var_28[i] = gSaveBlock1Ptr->easyChatProfile[i]; StringCopy(trainerCard->playerName, gSaveBlock2Ptr->playerName); diff --git a/src/tv.c b/src/tv.c index 248721083..f282b09f0 100644 --- a/src/tv.c +++ b/src/tv.c @@ -2448,8 +2448,8 @@ void sub_80EE72C(void) show->trainerFanClub.kind = TVSHOW_TRAINER_FAN_CLUB; show->trainerFanClub.active = FALSE; StringCopy(show->trainerFanClub.playerName, gSaveBlock2Ptr->playerName); - show->trainerFanClub.words[0] = gSaveBlock1Ptr->unk2BB0[0]; - show->trainerFanClub.words[1] = gSaveBlock1Ptr->unk2BB0[1]; + show->trainerFanClub.words[0] = gSaveBlock1Ptr->easyChatProfile[0]; + show->trainerFanClub.words[1] = gSaveBlock1Ptr->easyChatProfile[1]; tv_store_id_3x(show); show->trainerFanClub.language = gGameLanguage; } -- cgit v1.2.3 From 4137dd7b0bd6dd661831856e4ca30b958d4beac9 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 27 Feb 2019 14:42:32 -0500 Subject: Identify unused, never read, and never written vars --- data/event_scripts.s | 2 +- data/maps/FarawayIsland_Interior/scripts.inc | 2 +- data/maps/MarineCave_End/scripts.inc | 4 +- data/maps/PetalburgCity_Gym/scripts.inc | 2 +- data/maps/Route105/scripts.inc | 4 +- data/maps/Route114/scripts.inc | 4 +- data/maps/Route115/scripts.inc | 4 +- data/maps/Route116/scripts.inc | 4 +- data/maps/Route118/scripts.inc | 4 +- data/maps/Route125/scripts.inc | 4 +- data/maps/Route127/scripts.inc | 4 +- data/maps/Route129/scripts.inc | 4 +- data/maps/TerraCave_End/scripts.inc | 4 +- include/constants/vars.h | 136 +++++++++++++-------------- include/field_specials.h | 2 +- src/event_data.c | 14 +-- src/field_control_avatar.c | 2 +- src/field_specials.c | 16 ++-- src/overworld.c | 6 +- 19 files changed, 112 insertions(+), 110 deletions(-) diff --git a/data/event_scripts.s b/data/event_scripts.s index 19b4949eb..abc60dd18 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -3193,7 +3193,7 @@ UnusualWeather_EventScript_EndEventAndCleanup_2:: @ 8273D31 call UnusualWeather_EventScript_CleanupMapTiles special DrawWholeMapView setvar VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_NONE - setvar VAR_0x4039, 0 + setvar VAR_SHOULD_END_UNUSUAL_WEATHER, 0 clearflag FLAG_SPECIAL_FLAG_0x4000 fadescreenswapbuffers 0 releaseall diff --git a/data/maps/FarawayIsland_Interior/scripts.inc b/data/maps/FarawayIsland_Interior/scripts.inc index 7051d376c..bee33ae07 100644 --- a/data/maps/FarawayIsland_Interior/scripts.inc +++ b/data/maps/FarawayIsland_Interior/scripts.inc @@ -38,7 +38,7 @@ FarawayIsland_Interior_EventScript_267D5E:: @ 8267D5E return FarawayIsland_Interior_MapScript1_267D72: @ 8267D72 - setvar VAR_0x403A, 0 + setvar VAR_NEVER_READ_0x403A, 0 setvar VAR_TEMP_1, 1 call_if_unset FLAG_CAUGHT_MEW, FarawayIsland_Interior_EventScript_267D86 end diff --git a/data/maps/MarineCave_End/scripts.inc b/data/maps/MarineCave_End/scripts.inc index 036fa7724..028075648 100644 --- a/data/maps/MarineCave_End/scripts.inc +++ b/data/maps/MarineCave_End/scripts.inc @@ -47,13 +47,13 @@ MarineCave_End_EventScript_23B01B:: @ 823B01B goto_if_eq MarineCave_End_EventScript_23B092 compare VAR_RESULT, 5 goto_if_eq MarineCave_End_EventScript_23B092 - setvar VAR_0x4039, 1 + setvar VAR_SHOULD_END_UNUSUAL_WEATHER, 1 setflag FLAG_DEFEATED_KYOGRE releaseall end MarineCave_End_EventScript_23B084:: @ 823B084 - setvar VAR_0x4039, 1 + setvar VAR_SHOULD_END_UNUSUAL_WEATHER, 1 setflag FLAG_DEFEATED_KYOGRE goto MarineCave_End_EventScript_27376D end diff --git a/data/maps/PetalburgCity_Gym/scripts.inc b/data/maps/PetalburgCity_Gym/scripts.inc index 1f0fdd91c..fef5c4048 100644 --- a/data/maps/PetalburgCity_Gym/scripts.inc +++ b/data/maps/PetalburgCity_Gym/scripts.inc @@ -60,7 +60,7 @@ PetalburgCity_Gym_EventScript_204955:: @ 8204955 return PetalburgCity_Gym_EventScript_20495D:: @ 820495D - setorcopyvar VAR_0x8015, 269 + setorcopyvar VAR_NEVER_READ_0x8015, 269 specialvar VAR_RESULT, IsTrainerReadyForRematch compare VAR_RESULT, 1 goto_if_eq PetalburgCity_Gym_EventScript_204985 diff --git a/data/maps/Route105/scripts.inc b/data/maps/Route105/scripts.inc index 1f4202ec4..2b8ebe305 100644 --- a/data/maps/Route105/scripts.inc +++ b/data/maps/Route105/scripts.inc @@ -18,7 +18,7 @@ Route105_EventScript_1EE20B:: @ 81EE20B return Route105_MapScript1_1EE21E: @ 81EE21E - compare VAR_0x4039, 1 + compare VAR_SHOULD_END_UNUSUAL_WEATHER, 1 call_if_eq Route105_EventScript_273D13 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_105_NORTH call_if_eq UnusualWeather_StartKyogreWeather @@ -27,7 +27,7 @@ Route105_MapScript1_1EE21E: @ 81EE21E end Route105_MapScript2_1EE240: @ 81EE240 - map_script_2 VAR_0x4039, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 + map_script_2 VAR_SHOULD_END_UNUSUAL_WEATHER, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 .2byte 0 Route105_EventScript_1EE24A:: @ 81EE24A diff --git a/data/maps/Route114/scripts.inc b/data/maps/Route114/scripts.inc index 6a2f8b174..b03a2f228 100644 --- a/data/maps/Route114/scripts.inc +++ b/data/maps/Route114/scripts.inc @@ -5,7 +5,7 @@ Route114_MapScripts:: @ 81F252F .byte 0 Route114_MapScript1_1F253F: @ 81F253F - compare VAR_0x4039, 1 + compare VAR_SHOULD_END_UNUSUAL_WEATHER, 1 call_if_eq Route114_EventScript_273D13 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_114_NORTH call_if_eq UnusualWeather_StartGroudonWeather @@ -21,7 +21,7 @@ Route114_MapScript1_1F2561: @ 81F2561 end Route114_MapScript2_1F2578: @ 81F2578 - map_script_2 VAR_0x4039, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 + map_script_2 VAR_SHOULD_END_UNUSUAL_WEATHER, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 .2byte 0 Route114_EventScript_1F2582:: @ 81F2582 diff --git a/data/maps/Route115/scripts.inc b/data/maps/Route115/scripts.inc index be3a98f42..259cd5904 100644 --- a/data/maps/Route115/scripts.inc +++ b/data/maps/Route115/scripts.inc @@ -12,7 +12,7 @@ Route115_MapScript1_1F2930: @ 81F2930 end Route115_MapScript1_1F2947: @ 81F2947 - compare VAR_0x4039, 1 + compare VAR_SHOULD_END_UNUSUAL_WEATHER, 1 call_if_eq Route115_EventScript_273D13 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_115_WEST call_if_eq UnusualWeather_StartGroudonWeather @@ -21,7 +21,7 @@ Route115_MapScript1_1F2947: @ 81F2947 end Route115_MapScript2_1F2969: @ 81F2969 - map_script_2 VAR_0x4039, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 + map_script_2 VAR_SHOULD_END_UNUSUAL_WEATHER, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 .2byte 0 Route115_EventScript_1F2973:: @ 81F2973 diff --git a/data/maps/Route116/scripts.inc b/data/maps/Route116/scripts.inc index 193b70157..454201307 100644 --- a/data/maps/Route116/scripts.inc +++ b/data/maps/Route116/scripts.inc @@ -6,7 +6,7 @@ Route116_MapScripts:: @ 81F2C0C Route116_MapScript1_1F2C1C: @ 81F2C1C call_if_set FLAG_RECOVERED_DEVON_GOODS, Route116_EventScript_1F2C47 - compare VAR_0x4039, 1 + compare VAR_SHOULD_END_UNUSUAL_WEATHER, 1 call_if_eq Route116_EventScript_273D13 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_116_NORTH call_if_eq UnusualWeather_StartGroudonWeather @@ -26,7 +26,7 @@ Route116_MapScript1_1F2C4F: @ 81F2C4F end Route116_MapScript2_1F2C66: @ 81F2C66 - map_script_2 VAR_0x4039, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 + map_script_2 VAR_SHOULD_END_UNUSUAL_WEATHER, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 .2byte 0 Route116_EventScript_1F2C70:: @ 81F2C70 diff --git a/data/maps/Route118/scripts.inc b/data/maps/Route118/scripts.inc index a2784b298..9c1ec46ca 100644 --- a/data/maps/Route118/scripts.inc +++ b/data/maps/Route118/scripts.inc @@ -6,7 +6,7 @@ Route118_MapScripts:: @ 81F3DBC Route118_MapScript1_1F3DCC: @ 81F3DCC call Route118_EventScript_28CCC7 - compare VAR_0x4039, 1 + compare VAR_SHOULD_END_UNUSUAL_WEATHER, 1 call_if_eq Route118_EventScript_273D13 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_118_EAST call_if_eq UnusualWeather_StartGroudonWeather @@ -22,7 +22,7 @@ Route118_MapScript1_1F3DF3: @ 81F3DF3 end Route118_MapScript2_1F3E0A: @ 81F3E0A - map_script_2 VAR_0x4039, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 + map_script_2 VAR_SHOULD_END_UNUSUAL_WEATHER, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 .2byte 0 Route118_EventScript_1F3E14:: @ 81F3E14 diff --git a/data/maps/Route125/scripts.inc b/data/maps/Route125/scripts.inc index a2e9f1d40..8abcbe787 100644 --- a/data/maps/Route125/scripts.inc +++ b/data/maps/Route125/scripts.inc @@ -6,7 +6,7 @@ Route125_MapScripts:: @ 81F6748 Route125_MapScript1_1F6758: @ 81F6758 call_if_set FLAG_SYS_WEATHER_CTRL, Common_EventScript_SetWeather15 - compare VAR_0x4039, 1 + compare VAR_SHOULD_END_UNUSUAL_WEATHER, 1 call_if_eq Route125_EventScript_273D13 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_125_WEST call_if_eq UnusualWeather_StartKyogreWeather @@ -22,7 +22,7 @@ Route125_MapScript1_1F6783: @ 81F6783 end Route125_MapScript2_1F679A: @ 81F679A - map_script_2 VAR_0x4039, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 + map_script_2 VAR_SHOULD_END_UNUSUAL_WEATHER, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 .2byte 0 Route125_EventScript_1F67A4:: @ 81F67A4 diff --git a/data/maps/Route127/scripts.inc b/data/maps/Route127/scripts.inc index 27b17d340..91fab2b61 100644 --- a/data/maps/Route127/scripts.inc +++ b/data/maps/Route127/scripts.inc @@ -6,7 +6,7 @@ Route127_MapScripts:: @ 81F69D9 Route127_MapScript1_1F69E9: @ 81F69E9 call_if_set FLAG_SYS_WEATHER_CTRL, Common_EventScript_SetWeather15 - compare VAR_0x4039, 1 + compare VAR_SHOULD_END_UNUSUAL_WEATHER, 1 call_if_eq Route127_EventScript_273D13 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_127_NORTH call_if_eq UnusualWeather_StartKyogreWeather @@ -22,7 +22,7 @@ Route127_MapScript1_1F6A14: @ 81F6A14 end Route127_MapScript2_1F6A2B: @ 81F6A2B - map_script_2 VAR_0x4039, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 + map_script_2 VAR_SHOULD_END_UNUSUAL_WEATHER, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 .2byte 0 Route127_EventScript_1F6A35:: @ 81F6A35 diff --git a/data/maps/Route129/scripts.inc b/data/maps/Route129/scripts.inc index 3fc30cf91..0cd5f838a 100644 --- a/data/maps/Route129/scripts.inc +++ b/data/maps/Route129/scripts.inc @@ -12,7 +12,7 @@ Route129_MapScript1_1F7294: @ 81F7294 end Route129_MapScript1_1F72AB: @ 81F72AB - compare VAR_0x4039, 1 + compare VAR_SHOULD_END_UNUSUAL_WEATHER, 1 call_if_eq Route129_EventScript_273D13 compare VAR_0x405E, 4 call_if_ge Route129_EventScript_1F72D8 @@ -27,7 +27,7 @@ Route129_EventScript_1F72D8:: @ 81F72D8 return Route129_MapScript2_1F72E2: @ 81F72E2 - map_script_2 VAR_0x4039, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 + map_script_2 VAR_SHOULD_END_UNUSUAL_WEATHER, 1, UnusualWeather_EventScript_EndEventAndCleanup_1 .2byte 0 Route129_EventScript_1F72EC:: @ 81F72EC diff --git a/data/maps/TerraCave_End/scripts.inc b/data/maps/TerraCave_End/scripts.inc index 3f892315d..b5a664a76 100644 --- a/data/maps/TerraCave_End/scripts.inc +++ b/data/maps/TerraCave_End/scripts.inc @@ -47,13 +47,13 @@ TerraCave_End_EventScript_23B0EC:: @ 823B0EC goto_if_eq TerraCave_End_EventScript_23B163 compare VAR_RESULT, 5 goto_if_eq TerraCave_End_EventScript_23B163 - setvar VAR_0x4039, 1 + setvar VAR_SHOULD_END_UNUSUAL_WEATHER, 1 setflag FLAG_DEFEATED_GROUDON releaseall end TerraCave_End_EventScript_23B155:: @ 823B155 - setvar VAR_0x4039, 1 + setvar VAR_SHOULD_END_UNUSUAL_WEATHER, 1 setflag FLAG_DEFEATED_GROUDON goto TerraCave_End_EventScript_27376D end diff --git a/include/constants/vars.h b/include/constants/vars.h index 9f364416c..1ca36b8ad 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -71,10 +71,10 @@ #define VAR_DEOXYS_ROCK_STEP_COUNT 0x4034 #define VAR_DEOXYS_ROCK_LEVEL 0x4035 #define VAR_STORAGE_UNKNOWN 0x4036 -#define VAR_UNUSUAL_WEATHER_LOCATION 0x4037 -#define VAR_0x4038 0x4038 -#define VAR_0x4039 0x4039 -#define VAR_0x403A 0x403A +#define VAR_UNUSUAL_WEATHER_LOCATION 0x4037 +#define VAR_UNUSUAL_WEATHER_STEP_COUNTER 0x4038 +#define VAR_SHOULD_END_UNUSUAL_WEATHER 0x4039 +#define VAR_NEVER_READ_0x403A 0x403A // Var is written to, but never checked #define VAR_REGICE_STEPS_1 0x403B #define VAR_REGICE_STEPS_2 0x403C #define VAR_REGICE_STEPS_3 0x403D @@ -94,60 +94,60 @@ #define VAR_POKELOT_RND1 0x404B #define VAR_POKELOT_RND2 0x404C #define VAR_0x404D 0x404D -#define VAR_0x404E 0x404E +#define VAR_UNUSED_0x404E 0x404E // Unused Var #define VAR_LOTAD_SIZE_RECORD 0x404F #define VAR_0x4050 0x4050 #define VAR_ROUTE102_ACCESSIBLE 0x4051 -#define VAR_0x4052 0x4052 +#define VAR_UNUSED_0x4052 0x4052 // Unused Var #define VAR_LAVARIDGE_RIVAL_STATE 0x4053 #define VAR_CURRENT_SECRET_BASE 0x4054 -#define VAR_0x4055 0x4055 -#define VAR_0x4056 0x4056 +#define VAR_UNUSED_0x4055 0x4055 // Unused Var +#define VAR_UNUSED_0x4056 0x4056 // Unused Var #define VAR_PETALBURG_STATE 0x4057 #define VAR_SLATEPORT_STATE 0x4058 -#define VAR_0x4059 0x4059 +#define VAR_UNUSED_0x4059 0x4059 // Unused Var #define VAR_RUSTBORO_STATE 0x405A -#define VAR_0x405B 0x405B -#define VAR_0x405C 0x405C +#define VAR_UNUSED_0x405B 0x405B // Unused Var +#define VAR_UNUSED_0x405C 0x405C // Unused Var #define VAR_0x405D 0x405D #define VAR_0x405E 0x405E -#define VAR_0x405F 0x405F +#define VAR_UNUSED_0x405F 0x405F // Unused Var #define VAR_ROUTE101_STATE 0x4060 -#define VAR_0x4061 0x4061 -#define VAR_0x4062 0x4062 +#define VAR_UNUSED_0x4061 0x4061 // Unused Var +#define VAR_UNUSED_0x4062 0x4062 // Unused Var #define VAR_0x4063 0x4063 -#define VAR_0x4064 0x4064 -#define VAR_0x4065 0x4065 -#define VAR_0x4066 0x4066 -#define VAR_0x4067 0x4067 -#define VAR_0x4068 0x4068 +#define VAR_UNUSED_0x4064 0x4064 // Unused Var +#define VAR_UNUSED_0x4065 0x4065 // Unused Var +#define VAR_UNUSED_0x4066 0x4066 // Unused Var +#define VAR_UNUSED_0x4067 0x4067 // Unused Var +#define VAR_UNUSED_0x4068 0x4068 // Unused Var #define VAR_ROUTE110_STATE 0x4069 -#define VAR_0x406A 0x406A -#define VAR_0x406B 0x406B -#define VAR_0x406C 0x406C -#define VAR_0x406D 0x406D -#define VAR_0x406E 0x406E +#define VAR_UNUSED_0x406A 0x406A // Unused Var +#define VAR_UNUSED_0x406B 0x406B // Unused Var +#define VAR_UNUSED_0x406C 0x406C // Unused Var +#define VAR_UNUSED_0x406D 0x406D // Unused Var +#define VAR_UNUSED_0x406E 0x406E // Unused Var #define VAR_ROUTE116_STATE 0x406F -#define VAR_0x4070 0x4070 +#define VAR_UNUSED_0x4070 0x4070 // Unused Var #define VAR_ROUTE118_STATE 0x4071 #define VAR_ROUTE119_STATE 0x4072 -#define VAR_0x4073 0x4073 +#define VAR_UNUSED_0x4073 0x4073 // Unused Var #define VAR_ROUTE121_STATE 0x4074 -#define VAR_0x4075 0x4075 -#define VAR_0x4076 0x4076 -#define VAR_0x4077 0x4077 -#define VAR_0x4078 0x4078 -#define VAR_0x4079 0x4079 -#define VAR_0x407A 0x407A +#define VAR_UNUSED_0x4075 0x4075 // Unused Var +#define VAR_UNUSED_0x4076 0x4076 // Unused Var +#define VAR_UNUSED_0x4077 0x4077 // Unused Var +#define VAR_UNUSED_0x4078 0x4078 // Unused Var +#define VAR_UNUSED_0x4079 0x4079 // Unused Var +#define VAR_UNUSED_0x407A 0x407A // Unused Var #define VAR_ROUTE128_STATE 0x407B -#define VAR_0x407C 0x407C -#define VAR_0x407D 0x407D -#define VAR_0x407E 0x407E -#define VAR_0x407F 0x407F -#define VAR_0x4080 0x4080 -#define VAR_0x4081 0x4081 +#define VAR_UNUSED_0x407C 0x407C // Unused Var +#define VAR_UNUSED_0x407D 0x407D // Unused Var +#define VAR_UNUSED_0x407E 0x407E // Unused Var +#define VAR_UNUSED_0x407F 0x407F // Unused Var +#define VAR_UNUSED_0x4080 0x4080 // Unused Var +#define VAR_UNUSED_0x4081 0x4081 // Unused Var #define VAR_LITTLEROOT_HOUSES_STATE 0x4082 -#define VAR_0x4083 0x4083 +#define VAR_UNUSED_0x4083 0x4083 // Unused Var #define VAR_BIRCH_LAB_STATE 0x4084 #define VAR_PETALBURG_GYM_STATE 0x4085 #define VAR_LINK_CONTEST_ROOM_STATE 0x4086 @@ -155,13 +155,13 @@ #define VAR_CONTEST_LOCATION 0x4088 #define VAR_0x4089 0x4089 #define VAR_CONTEST_PRIZE_PICKUP 0x408A -#define VAR_0x408B 0x408B +#define VAR_UNUSED_0x408B 0x408B // Unused Var #define VAR_LITTLEROOT_HOUSES_STATE_2 0x408C #define VAR_LITTLEROOT_RIVAL_STATE 0x408D #define VAR_BOARD_BRINEY_BOAT_ROUTE104_STATE 0x408E #define VAR_DEVON_CORP_3F_STATE 0x408F #define VAR_BRINEY_HOUSE_STATE 0x4090 -#define VAR_0x4091 0x4091 +#define VAR_UNUSED_0x4091 0x4091 // Unused Var #define VAR_LITTLEROOT_INTRO_STATE 0x4092 #define VAR_MAUVILLE_GYM_STATE 0x4093 #define VAR_LILYCOVE_MUSEUM_2F_STATE 0x4094 @@ -171,20 +171,20 @@ #define VAR_PETALBURG_WOODS_STATE 0x4098 #define VAR_LILYCOVE_CONTEST_LOBBY_STATE 0x4099 #define VAR_RUSTURF_TUNNEL_STATE 0x409A -#define VAR_0x409B 0x409B +#define VAR_UNUSED_0x409B 0x409B // Unused Var #define VAR_ELITE_4_STATE 0x409C -#define VAR_0x409D 0x409D +#define VAR_UNUSED_0x409D 0x409D // Unused Var #define VAR_0x409E 0x409E #define VAR_0x409F 0x409F #define VAR_SLATEPORT_HARBOR_STATE 0x40A0 -#define VAR_0x40A1 0x40A1 +#define VAR_UNUSED_0x40A1 0x40A1 // Unused var #define VAR_SEAFLOOR_CAVERN_STATE 0x40A2 #define VAR_CABLE_CAR_STATION_STATE 0x40A3 #define VAR_SAFARI_ZONE_STATE 0x40A4 #define VAR_TRICK_HOUSE_ENTRANCE_STATE_1 0x40A5 #define VAR_TRICK_HOUSE_ENTRANCE_STATE_2 0x40A6 #define VAR_TRICK_HOUSE_ENTRANCE_STATE_3 0x40A7 -#define VAR_0x40A8 0x40A8 +#define VAR_UNUSED_0x40A8 0x40A8 // Unused Var #define VAR_CYCLING_CHALLENGE_STATE 0x40A9 #define VAR_SLATEPORT_MUSEUM_1F_STATE 0x40AA #define VAR_TRICK_HOUSE_PUZZLE_1_STATE 0x40AB @@ -197,13 +197,13 @@ #define VAR_TRICK_HOUSE_PUZZLE_8_STATE 0x40B2 #define VAR_WEATHER_INSTITUTE_STATE 0x40B3 #define VAR_PORTHOLE_STATE 0x40B4 -#define VAR_TRICK_HOUSE_STATE 0x40B5 // TODO: needs some further investigation +#define VAR_TRICK_HOUSE_STATE 0x40B5 // TODO: needs some further investigation #define VAR_TRICK_HOUSE_PUZZLE_7_STATE_2 0x40B6 #define VAR_SLATEPORT_FAN_CLUB_STATE 0x40B7 -#define VAR_0x40B8 0x40B8 +#define VAR_UNUSED_0x40B8 0x40B8 // Unused Var #define VAR_MT_PYRE_STATE 0x40B9 #define VAR_NEW_MAUVILLE_STATE 0x40BA -#define VAR_0x40BB 0x40BB +#define VAR_UNUSED_0x40BB 0x40BB // Unused Var #define VAR_BRAVO_TRAINER_BATTLE_TOWER_ON 0x40BC #define VAR_JAGGED_PASS_ASH_WEATHER 0x40BD #define VAR_GLASS_WORKSHOP_STATE 0x40BE @@ -235,17 +235,17 @@ #define VAR_0x40D8 0x40D8 #define VAR_0x40D9 0x40D9 #define VAR_0x40DA 0x40DA -#define VAR_0x40DB 0x40DB -#define VAR_0x40DC 0x40DC +#define VAR_UNUSED_0x40DB 0x40DB // Unused Var +#define VAR_UNUSED_0x40DC 0x40DC // Unused Var #define VAR_EVENT_PICHU_SLOT 0x40DD -#define VAR_0x40DE 0x40DE -#define VAR_0x40DF 0x40DF -#define VAR_0x40E0 0x40E0 -#define VAR_0x40E1 0x40E1 -#define VAR_0x40E2 0x40E2 -#define VAR_0x40E3 0x40E3 -#define VAR_0x40E4 0x40E4 -#define VAR_0x40E5 0x40E5 +#define VAR_NEVER_READ_0x40DE 0x40DE // Var is written to, but never read +#define VAR_NEVER_READ_0x40DF 0x40DF // Var is written to, but never read +#define VAR_NEVER_READ_0x40E0 0x40E0 // Var is written to, but never read +#define VAR_NEVER_READ_0x40E1 0x40E1 // Var is written to, but never read +#define VAR_NEVER_READ_0x40E2 0x40E2 // Var is written to, but never read +#define VAR_NEVER_READ_0x40E3 0x40E3 // Var is written to, but never read +#define VAR_NEVER_READ_0x40E4 0x40E4 // var is written to, but never read +#define VAR_UNUSED_0x40E5 0x40E5 // Unused Var #define VAR_DAILY_SLOTS 0x40E6 #define VAR_DAILY_WILDS 0x40E7 #define VAR_DAILY_BLENDER 0x40E8 @@ -263,15 +263,15 @@ #define VAR_0x40F4 0x40F4 #define VAR_0x40F5 0x40F5 #define VAR_0x40F6 0x40F6 -#define VAR_0x40F7 0x40F7 -#define VAR_0x40F8 0x40F8 -#define VAR_0x40F9 0x40F9 -#define VAR_0x40FA 0x40FA -#define VAR_0x40FB 0x40FB -#define VAR_0x40FC 0x40FC -#define VAR_0x40FD 0x40FD -#define VAR_0x40FE 0x40FE -#define VAR_0x40FF 0x40FF +#define VAR_UNUSED_0x40F7 0x40F7 // Unused Var +#define VAR_UNUSED_0x40F8 0x40F8 // Unused Var +#define VAR_UNUSED_0x40F9 0x40F9 // Unused Var +#define VAR_UNUSED_0x40FA 0x40FA // Unused Var +#define VAR_UNUSED_0x40FB 0x40FB // Unused Var +#define VAR_UNUSED_0x40FC 0x40FC // Unused Var +#define VAR_UNUSED_0x40FD 0x40FD // Unused Var +#define VAR_UNUSED_0x40FE 0x40FE // Unused Var +#define VAR_UNUSED_0x40FF 0x40FF // Unused Var #define SPECIAL_VARS_START 0x8000 // special vars @@ -297,6 +297,6 @@ #define VAR_MON_BOX_ID 0x8012 #define VAR_MON_BOX_POS 0x8013 #define VAR_0x8014 0x8014 -#define VAR_0x8015 0x8015 +#define VAR_NEVER_READ_0x8015 0x8015 // Written to, but never read #endif // GUARD_CONSTANTS_VARS_H diff --git a/include/field_specials.h b/include/field_specials.h index bff04a739..1ab2b7eb4 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -7,7 +7,7 @@ u16 get_unknown_box_id(void); bool8 InMultiBattleRoom(void); void sub_813BF10(void); void IncrementBirthIslandRockStepCount(void); -bool8 sub_813B3B0(void); +bool8 UnusualWeatherHasExpired(void); bool8 ShouldDoBrailleRegicePuzzle(void); bool32 is_tile_that_overrides_player_control(void); bool32 sub_8138120(void); diff --git a/src/event_data.c b/src/event_data.c index e75c37773..5ca288e7b 100644 --- a/src/event_data.c +++ b/src/event_data.c @@ -131,13 +131,13 @@ void sub_809D4D8(void) void sub_809D570(void) { VarSet(VAR_EVENT_PICHU_SLOT, 0); - VarSet(VAR_0x40DE, 0); - VarSet(VAR_0x40DF, 0); - VarSet(VAR_0x40E0, 0); - VarSet(VAR_0x40E1, 0); - VarSet(VAR_0x40E2, 0); - VarSet(VAR_0x40E3, 0); - VarSet(VAR_0x40E4, 0); + VarSet(VAR_NEVER_READ_0x40DE, 0); + VarSet(VAR_NEVER_READ_0x40DF, 0); + VarSet(VAR_NEVER_READ_0x40E0, 0); + VarSet(VAR_NEVER_READ_0x40E1, 0); + VarSet(VAR_NEVER_READ_0x40E2, 0); + VarSet(VAR_NEVER_READ_0x40E3, 0); + VarSet(VAR_NEVER_READ_0x40E4, 0); } void DisableResetRTC(void) diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 90f7f4d5e..7bb2b257d 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -557,7 +557,7 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior) ScriptContext1_SetupScript(EventScript_EggHatch); return TRUE; } - if (sub_813B3B0() == TRUE) + if (UnusualWeatherHasExpired() == TRUE) { ScriptContext1_SetupScript(UnusualWeather_EventScript_EndEventAndCleanup_1); return TRUE; diff --git a/src/field_specials.c b/src/field_specials.c index a5edb0122..7bfce8dd9 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3424,7 +3424,7 @@ bool8 sub_813B260(void) void CreateUnusualWeatherEvent(void) { u16 randomValue = Random(); - VarSet(VAR_0x4038, 0); + VarSet(VAR_UNUSUAL_WEATHER_STEP_COUNTER, 0); if (FlagGet(FLAG_DEFEATED_KYOGRE) == TRUE) { @@ -3466,12 +3466,12 @@ bool32 GetUnusualWeatherMapNameAndType(void) } } -bool8 sub_813B3B0(void) +bool8 UnusualWeatherHasExpired(void) { // Duplicate array. static const u8 sUnusualWeatherMapNumbers_2[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; - u16 var1 = VarGet(VAR_0x4038); + u16 steps = VarGet(VAR_UNUSUAL_WEATHER_STEP_COUNTER); u16 unusualWeather = VarGet(VAR_UNUSUAL_WEATHER_LOCATION); if (unusualWeather == UNUSUAL_WEATHER_NONE) @@ -3479,9 +3479,9 @@ bool8 sub_813B3B0(void) return FALSE; } - if (++var1 > 999) + if (++steps > 999) { - VarSet(VAR_0x4038, 0); + VarSet(VAR_UNUSUAL_WEATHER_STEP_COUNTER, 0); if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNDERWATER_MARINE_CAVE)) { switch (gSaveBlock1Ptr->location.mapNum) @@ -3491,7 +3491,7 @@ bool8 sub_813B3B0(void) case MAP_NUM(MARINE_CAVE_END): case MAP_NUM(TERRA_CAVE_ENTRANCE): case MAP_NUM(TERRA_CAVE_END): - VarSet(VAR_0x4039, 1); + VarSet(VAR_SHOULD_END_UNUSUAL_WEATHER, 1); return FALSE; default: break; @@ -3506,7 +3506,7 @@ bool8 sub_813B3B0(void) case MAP_NUM(UNDERWATER5): case MAP_NUM(UNDERWATER6): case MAP_NUM(UNDERWATER7): - VarSet(VAR_0x4039, 1); + VarSet(VAR_SHOULD_END_UNUSUAL_WEATHER, 1); return FALSE; default: break; @@ -3526,7 +3526,7 @@ bool8 sub_813B3B0(void) } else { - VarSet(VAR_0x4038, var1); + VarSet(VAR_UNUSUAL_WEATHER_STEP_COUNTER, steps); return FALSE; } } diff --git a/src/overworld.c b/src/overworld.c index edc4d402c..4206be448 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -408,9 +408,11 @@ static void Overworld_ResetStateAfterWhiteOut(void) FlagClear(FLAG_SYS_SAFARI_MODE); FlagClear(FLAG_SYS_USE_STRENGTH); FlagClear(FLAG_SYS_USE_FLASH); - if (VarGet(VAR_0x4039) == 1) + // If you were defeated by Kyogre/Groudon and the step counter has + // maxed out, end the unusual weather. + if (VarGet(VAR_SHOULD_END_UNUSUAL_WEATHER) == 1) { - VarSet(VAR_0x4039, 0); + VarSet(VAR_SHOULD_END_UNUSUAL_WEATHER, 0); VarSet(VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_NONE); } } -- cgit v1.2.3 From 648fc3d4f33b0df553b0fd3737843a1495351993 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 27 Feb 2019 15:18:56 -0500 Subject: Name more unknown vars --- data/maps/CaveOfOrigin_B1F/scripts.inc | 2 +- .../LilycoveCity_DepartmentStore_1F/scripts.inc | 16 ++-- .../LilycoveCity_DepartmentStore_5F/scripts.inc | 10 +- .../LittlerootTown_BrendansHouse_2F/scripts.inc | 4 +- data/maps/LittlerootTown_MaysHouse_2F/scripts.inc | 4 +- data/maps/MossdeepCity/map.json | 12 +-- data/maps/MossdeepCity/scripts.inc | 2 +- data/maps/MossdeepCity_Gym/scripts.inc | 4 +- data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc | 30 +++--- data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc | 24 ++--- data/maps/Route129/scripts.inc | 2 +- data/maps/Route130/scripts.inc | 2 +- data/maps/Route131/scripts.inc | 2 +- data/maps/SeafloorCavern_Room9/scripts.inc | 2 +- data/maps/SecretBase_YellowCave4/scripts.inc | 4 +- data/maps/SkyPillar_Outside/scripts.inc | 8 +- data/maps/SkyPillar_Top/scripts.inc | 2 +- data/maps/SootopolisCity/scripts.inc | 102 ++++++++++----------- data/maps/SootopolisCity_Gym_1F/scripts.inc | 2 +- data/scripts/cable_club.inc | 2 +- data/scripts/secret_base.inc | 14 +-- include/constants/vars.h | 18 ++-- src/field_specials.c | 2 +- src/lottery_corner.c | 2 +- src/overworld.c | 6 +- src/secret_base.c | 4 +- 26 files changed, 141 insertions(+), 141 deletions(-) diff --git a/data/maps/CaveOfOrigin_B1F/scripts.inc b/data/maps/CaveOfOrigin_B1F/scripts.inc index c36b60111..0e554a945 100644 --- a/data/maps/CaveOfOrigin_B1F/scripts.inc +++ b/data/maps/CaveOfOrigin_B1F/scripts.inc @@ -52,7 +52,7 @@ CaveOfOrigin_B1F_EventScript_23584D:: @ 823584D playse SE_KAIDAN fadescreenspeed 1, 4 setflag FLAG_WALLACE_GOES_TO_SKY_PILLAR - setvar VAR_0x405E, 3 + setvar VAR_RAYQUAZA_STATE, 3 removeobject 1 clearflag FLAG_HIDE_SKY_PILLAR_WALLACE fadescreen 0 diff --git a/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc b/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc index ec1d89b66..1e01fc168 100644 --- a/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStore_1F/scripts.inc @@ -9,7 +9,7 @@ LilycoveCity_DepartmentStore_1F_EventScript_21F69C:: @ 821F69C lock faceplayer dotimebasedevents - compare VAR_POKELOT_PRIZE, 0 + compare VAR_POKELOT_PRIZE_ITEM, 0 goto_if_ne LilycoveCity_DepartmentStore_1F_EventScript_21F7F7 goto_if_set FLAG_DAILY_PICKED_LOTO_TICKET, LilycoveCity_DepartmentStore_1F_EventScript_21F78D msgbox LilycoveCity_DepartmentStore_1F_Text_2A6390, MSGBOX_YESNO @@ -100,8 +100,8 @@ LilycoveCity_DepartmentStore_1F_EventScript_21F7D4:: @ 821F7D4 return LilycoveCity_DepartmentStore_1F_EventScript_21F7DD:: @ 821F7DD - copyvar VAR_0x404D, VAR_0x8004 - copyvar VAR_POKELOT_PRIZE, VAR_0x8005 + copyvar VAR_POKELOT_PRIZE_PLACE, VAR_0x8004 + copyvar VAR_POKELOT_PRIZE_ITEM, VAR_0x8005 goto LilycoveCity_DepartmentStore_1F_EventScript_21F7ED end @@ -112,14 +112,14 @@ LilycoveCity_DepartmentStore_1F_EventScript_21F7ED:: @ 821F7ED LilycoveCity_DepartmentStore_1F_EventScript_21F7F7:: @ 821F7F7 msgbox LilycoveCity_DepartmentStore_1F_Text_2A67E1, MSGBOX_DEFAULT - giveitem_std VAR_POKELOT_PRIZE + giveitem_std VAR_POKELOT_PRIZE_ITEM compare VAR_RESULT, 0 goto_if_eq LilycoveCity_DepartmentStore_1F_EventScript_21F7ED - copyvar VAR_0x8004, VAR_0x404D - copyvar VAR_0x8005, VAR_POKELOT_PRIZE + copyvar VAR_0x8004, VAR_POKELOT_PRIZE_PLACE + copyvar VAR_0x8005, VAR_POKELOT_PRIZE_ITEM special sub_80EE2CC - setvar VAR_POKELOT_PRIZE, 0 - setvar VAR_0x404D, 0 + setvar VAR_POKELOT_PRIZE_ITEM, 0 + setvar VAR_POKELOT_PRIZE_PLACE, 0 release end diff --git a/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc b/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc index e62537422..7cab0f1fa 100644 --- a/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc @@ -3,9 +3,9 @@ LilycoveCity_DepartmentStore_5F_MapScripts:: @ 821FF7A .byte 0 LilycoveCity_DepartmentStore_5F_MapScript2_21FF80: @ 821FF80 - map_script_2 VAR_0x405E, 1, LilycoveCity_DepartmentStore_5F_EventScript_21FF9A - map_script_2 VAR_0x405E, 2, LilycoveCity_DepartmentStore_5F_EventScript_21FF9A - map_script_2 VAR_0x405E, 3, LilycoveCity_DepartmentStore_5F_EventScript_21FF9A + map_script_2 VAR_RAYQUAZA_STATE, 1, LilycoveCity_DepartmentStore_5F_EventScript_21FF9A + map_script_2 VAR_RAYQUAZA_STATE, 2, LilycoveCity_DepartmentStore_5F_EventScript_21FF9A + map_script_2 VAR_RAYQUAZA_STATE, 3, LilycoveCity_DepartmentStore_5F_EventScript_21FF9A .2byte 0 LilycoveCity_DepartmentStore_5F_EventScript_21FF9A:: @ 821FF9A @@ -125,9 +125,9 @@ LilycoveCity_DepartmentStore_5F_EventScript_220075:: @ 8220075 lockall applymovement 7, Common_Movement_FacePlayer waitmovement 0 - compare VAR_0x405E, 0 + compare VAR_RAYQUAZA_STATE, 0 goto_if_eq LilycoveCity_DepartmentStore_5F_EventScript_22009C - compare VAR_0x405E, 4 + compare VAR_RAYQUAZA_STATE, 4 goto_if_ge LilycoveCity_DepartmentStore_5F_EventScript_22009C goto LilycoveCity_DepartmentStore_5F_EventScript_2200A7 end diff --git a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc index 87e0e58cc..b553cf65b 100644 --- a/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc +++ b/data/maps/LittlerootTown_BrendansHouse_2F/scripts.inc @@ -11,7 +11,7 @@ LittlerootTown_BrendansHouse_2F_MapScript1_1F83EE: @ 81F83EE compare VAR_LITTLEROOT_INTRO_STATE, 4 call_if_eq LittlerootTown_BrendansHouse_2F_EventScript_2926FE call LittlerootTown_BrendansHouse_2F_EventScript_275CE1 - setvar VAR_0x4089, 0 + setvar VAR_SECRET_BASE_INITIALIZED, 0 end LittlerootTown_BrendansHouse_2F_EventScript_1F841A:: @ 81F841A @@ -44,7 +44,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_1F8464:: @ 81F8464 return LittlerootTown_BrendansHouse_2F_MapScript2_1F846A: @ 81F846A - map_script_2 VAR_0x4089, 0, LittlerootTown_BrendansHouse_2F_EventScript_1F8474 + map_script_2 VAR_SECRET_BASE_INITIALIZED, 0, LittlerootTown_BrendansHouse_2F_EventScript_1F8474 .2byte 0 LittlerootTown_BrendansHouse_2F_EventScript_1F8474:: @ 81F8474 diff --git a/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc b/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc index e11d2a991..49a9523e0 100644 --- a/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc +++ b/data/maps/LittlerootTown_MaysHouse_2F/scripts.inc @@ -11,7 +11,7 @@ LittlerootTown_MaysHouse_2F_MapScript1_1F92A1: @ 81F92A1 compare VAR_LITTLEROOT_INTRO_STATE, 4 call_if_eq LittlerootTown_MaysHouse_2F_EventScript_2926FE call LittlerootTown_MaysHouse_2F_EventScript_275CE1 - setvar VAR_0x4089, 0 + setvar VAR_SECRET_BASE_INITIALIZED, 0 end LittlerootTown_MaysHouse_2F_EventScript_1F92CD:: @ 81F92CD @@ -45,7 +45,7 @@ LittlerootTown_MaysHouse_2F_EventScript_1F9317:: @ 81F9317 return LittlerootTown_MaysHouse_2F_MapScript2_1F931D: @ 81F931D - map_script_2 VAR_0x4089, 0, LittlerootTown_MaysHouse_2F_EventScript_1F9327 + map_script_2 VAR_SECRET_BASE_INITIALIZED, 0, LittlerootTown_MaysHouse_2F_EventScript_1F9327 .2byte 0 LittlerootTown_MaysHouse_2F_EventScript_1F9327:: @ 81F9327 diff --git a/data/maps/MossdeepCity/map.json b/data/maps/MossdeepCity/map.json index 952ff253c..99d7ae01c 100644 --- a/data/maps/MossdeepCity/map.json +++ b/data/maps/MossdeepCity/map.json @@ -366,7 +366,7 @@ "x": 42, "y": 21, "elevation": 5, - "var": "VAR_0x405D", + "var": "VAR_MOSSDEEP_STATE", "var_value": "1", "script": "MossdeepCity_EventScript_1E4B41" }, @@ -375,7 +375,7 @@ "x": 41, "y": 22, "elevation": 5, - "var": "VAR_0x405D", + "var": "VAR_MOSSDEEP_STATE", "var_value": "1", "script": "MossdeepCity_EventScript_1E4B41" }, @@ -384,7 +384,7 @@ "x": 41, "y": 23, "elevation": 5, - "var": "VAR_0x405D", + "var": "VAR_MOSSDEEP_STATE", "var_value": "1", "script": "MossdeepCity_EventScript_1E4B41" }, @@ -393,7 +393,7 @@ "x": 41, "y": 24, "elevation": 5, - "var": "VAR_0x405D", + "var": "VAR_MOSSDEEP_STATE", "var_value": "1", "script": "MossdeepCity_EventScript_1E4B41" }, @@ -402,7 +402,7 @@ "x": 40, "y": 25, "elevation": 5, - "var": "VAR_0x405D", + "var": "VAR_MOSSDEEP_STATE", "var_value": "1", "script": "MossdeepCity_EventScript_1E4B41" }, @@ -411,7 +411,7 @@ "x": 40, "y": 26, "elevation": 5, - "var": "VAR_0x405D", + "var": "VAR_MOSSDEEP_STATE", "var_value": "1", "script": "MossdeepCity_EventScript_1E4B41" } diff --git a/data/maps/MossdeepCity/scripts.inc b/data/maps/MossdeepCity/scripts.inc index b01e9cae8..31995542d 100644 --- a/data/maps/MossdeepCity/scripts.inc +++ b/data/maps/MossdeepCity/scripts.inc @@ -94,7 +94,7 @@ MossdeepCity_EventScript_1E4B41:: @ 81E4B41 removeobject 12 removeobject 13 delay 30 - setvar VAR_0x405D, 2 + setvar VAR_MOSSDEEP_STATE, 2 setflag FLAG_HIDE_MOSSDEEP_CITY_TEAM_MAGMA releaseall end diff --git a/data/maps/MossdeepCity_Gym/scripts.inc b/data/maps/MossdeepCity_Gym/scripts.inc index 7638f6119..7fc98dc54 100644 --- a/data/maps/MossdeepCity_Gym/scripts.inc +++ b/data/maps/MossdeepCity_Gym/scripts.inc @@ -71,9 +71,9 @@ MossdeepCity_Gym_EventScript_2208D1:: @ 82208D1 clearflag FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_1F_TEAM_MAGMA clearflag FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_2F_TEAM_MAGMA clearflag FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_2F_STEVEN - setvar VAR_0x405D, 1 + setvar VAR_MOSSDEEP_STATE, 1 setflag FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_1F_STEVEN - setvar VAR_0x409F, 1 + setvar VAR_MOSSDEEP_SPACE_CENTER_STATE_2, 1 call MossdeepCity_Gym_EventScript_22095B closemessage delay 30 diff --git a/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc index 43bd56d3a..13bf111ba 100644 --- a/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc @@ -4,7 +4,7 @@ MossdeepCity_SpaceCenter_1F_MapScripts:: @ 8222F41 .byte 0 MossdeepCity_SpaceCenter_1F_MapScript1_222F4C: @ 8222F4C - compare VAR_0x405D, 2 + compare VAR_MOSSDEEP_STATE, 2 goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_222F58 end @@ -18,11 +18,11 @@ MossdeepCity_SpaceCenter_1F_EventScript_222F58:: @ 8222F58 setobjectxyperm 1, 3, 4 setobjectmovementtype 1, MOVEMENT_TYPE_FACE_RIGHT setobjectmovementtype 2, MOVEMENT_TYPE_FACE_RIGHT - compare VAR_0x409E, 1 + compare VAR_MOSSDEEP_SPACE_CENTER_STATE_1, 1 goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_222FAA - compare VAR_0x409E, 2 + compare VAR_MOSSDEEP_SPACE_CENTER_STATE_1, 2 goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_222FB2 - compare VAR_0x409E, 3 + compare VAR_MOSSDEEP_SPACE_CENTER_STATE_1, 3 goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_222FBA end @@ -39,7 +39,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_222FBA:: @ 8222FBA end MossdeepCity_SpaceCenter_1F_MapScript1_222FC2: @ 8222FC2 - compare VAR_0x405D, 2 + compare VAR_MOSSDEEP_STATE, 2 goto_if_le MossdeepCity_SpaceCenter_1F_EventScript_222FCE end @@ -50,7 +50,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_222FCE:: @ 8222FCE MossdeepCity_SpaceCenter_1F_EventScript_222FD8:: @ 8222FD8 lock faceplayer - compare VAR_0x405D, 2 + compare VAR_MOSSDEEP_STATE, 2 goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_223024 dotimebasedevents specialvar VAR_RESULT, GetWeekCount @@ -98,7 +98,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_22305A:: @ 822305A MossdeepCity_SpaceCenter_1F_EventScript_223063:: @ 8223063 lock faceplayer - compare VAR_0x405D, 2 + compare VAR_MOSSDEEP_STATE, 2 goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_22307A msgbox MossdeepCity_SpaceCenter_1F_Text_2233D3, MSGBOX_DEFAULT release @@ -114,7 +114,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_22307A:: @ 822307A MossdeepCity_SpaceCenter_1F_EventScript_22308E:: @ 822308E lock faceplayer - compare VAR_0x405D, 2 + compare VAR_MOSSDEEP_STATE, 2 goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_2230DA goto_if_set FLAG_RECEIVED_SUN_STONE_MOSSDEEP, MossdeepCity_SpaceCenter_1F_EventScript_2230D0 msgbox MossdeepCity_SpaceCenter_1F_Text_223540, MSGBOX_DEFAULT @@ -155,9 +155,9 @@ MossdeepCity_SpaceCenter_1F_EventScript_22312D:: @ 822312D lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_1F_EventScript_223154 - compare VAR_0x405D, 2 + compare VAR_MOSSDEEP_STATE, 2 goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_22315E - compare VAR_0x405D, 2 + compare VAR_MOSSDEEP_STATE, 2 goto_if_lt MossdeepCity_SpaceCenter_1F_EventScript_223154 goto MossdeepCity_SpaceCenter_1F_EventScript_22315E end @@ -176,9 +176,9 @@ MossdeepCity_SpaceCenter_1F_EventScript_223168:: @ 8223168 lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_1F_EventScript_22318F - compare VAR_0x405D, 2 + compare VAR_MOSSDEEP_STATE, 2 goto_if_eq MossdeepCity_SpaceCenter_1F_EventScript_2231A4 - compare VAR_0x405D, 2 + compare VAR_MOSSDEEP_STATE, 2 goto_if_lt MossdeepCity_SpaceCenter_1F_EventScript_22318F goto MossdeepCity_SpaceCenter_1F_EventScript_2231A4 end @@ -242,7 +242,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_22321F:: @ 822321F case 3, MossdeepCity_SpaceCenter_1F_EventScript_223289 applymovement 9, MossdeepCity_SpaceCenter_1F_Movement_2232A2 waitmovement 0 - setvar VAR_0x409E, 2 + setvar VAR_MOSSDEEP_SPACE_CENTER_STATE_1, 2 release end @@ -254,14 +254,14 @@ MossdeepCity_SpaceCenter_1F_EventScript_22326E:: @ 822326E MossdeepCity_SpaceCenter_1F_EventScript_223278:: @ 8223278 applymovement 9, MossdeepCity_SpaceCenter_1F_Movement_22329A waitmovement 0 - setvar VAR_0x409E, 1 + setvar VAR_MOSSDEEP_SPACE_CENTER_STATE_1, 1 release end MossdeepCity_SpaceCenter_1F_EventScript_223289:: @ 8223289 applymovement 9, MossdeepCity_SpaceCenter_1F_Movement_22329E waitmovement 0 - setvar VAR_0x409E, 3 + setvar VAR_MOSSDEEP_SPACE_CENTER_STATE_1, 3 release end diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc index d9727235f..aa570010e 100644 --- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc @@ -4,9 +4,9 @@ MossdeepCity_SpaceCenter_2F_MapScripts:: @ 8223D58 .byte 0 MossdeepCity_SpaceCenter_2F_MapScript1_223D63: @ 8223D63 - compare VAR_0x405D, 2 + compare VAR_MOSSDEEP_STATE, 2 call_if_eq MossdeepCity_SpaceCenter_2F_EventScript_223D7A - compare VAR_0x409F, 2 + compare VAR_MOSSDEEP_SPACE_CENTER_STATE_2, 2 call_if_eq MossdeepCity_SpaceCenter_2F_EventScript_223D9F end @@ -27,7 +27,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_223D9F:: @ 8223D9F return MossdeepCity_SpaceCenter_2F_MapScript2_223DB5: @ 8223DB5 - map_script_2 VAR_0x409F, 1, MossdeepCity_SpaceCenter_2F_EventScript_223DBF + map_script_2 VAR_MOSSDEEP_SPACE_CENTER_STATE_2, 1, MossdeepCity_SpaceCenter_2F_EventScript_223DBF .2byte 0 MossdeepCity_SpaceCenter_2F_EventScript_223DBF:: @ 8223DBF @@ -69,7 +69,7 @@ MossdeepCity_SpaceCenter_2F_EventScript_223E09:: @ 8223E09 trainerbattle_no_intro TRAINER_GRUNT_36, MossdeepCity_SpaceCenter_2F_Text_2244F1 applymovement 7, MossdeepCity_SpaceCenter_2F_Movement_223E89 waitmovement 0 - setvar VAR_0x409F, 2 + setvar VAR_MOSSDEEP_SPACE_CENTER_STATE_2, 2 moveobjectoffscreen 5 moveobjectoffscreen 7 moveobjectoffscreen 6 @@ -98,9 +98,9 @@ MossdeepCity_SpaceCenter_2F_EventScript_223E8D:: @ 8223E8D lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_2F_EventScript_223EB4 - compare VAR_0x405D, 2 + compare VAR_MOSSDEEP_STATE, 2 goto_if_eq MossdeepCity_SpaceCenter_2F_EventScript_223EBE - compare VAR_0x405D, 2 + compare VAR_MOSSDEEP_STATE, 2 goto_if_lt MossdeepCity_SpaceCenter_2F_EventScript_223EB4 goto MossdeepCity_SpaceCenter_2F_EventScript_223EBE end @@ -119,9 +119,9 @@ MossdeepCity_SpaceCenter_2F_EventScript_223EC8:: @ 8223EC8 lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_2F_EventScript_223EEF - compare VAR_0x405D, 2 + compare VAR_MOSSDEEP_STATE, 2 goto_if_eq MossdeepCity_SpaceCenter_2F_EventScript_223EF9 - compare VAR_0x405D, 2 + compare VAR_MOSSDEEP_STATE, 2 goto_if_lt MossdeepCity_SpaceCenter_2F_EventScript_223EEF goto MossdeepCity_SpaceCenter_2F_EventScript_223EF9 end @@ -140,9 +140,9 @@ MossdeepCity_SpaceCenter_2F_EventScript_223F03:: @ 8223F03 lock faceplayer goto_if_set FLAG_SYS_GAME_CLEAR, MossdeepCity_SpaceCenter_2F_EventScript_223F2A - compare VAR_0x405D, 2 + compare VAR_MOSSDEEP_STATE, 2 goto_if_eq MossdeepCity_SpaceCenter_2F_EventScript_223F34 - compare VAR_0x405D, 2 + compare VAR_MOSSDEEP_STATE, 2 goto_if_lt MossdeepCity_SpaceCenter_2F_EventScript_223F2A goto MossdeepCity_SpaceCenter_2F_EventScript_223F34 end @@ -287,10 +287,10 @@ MossdeepCity_SpaceCenter_2F_EventScript_224071:: @ 8224071 delay 20 msgbox MossdeepCity_SpaceCenter_2F_Text_2249DC, MSGBOX_DEFAULT closemessage - setvar VAR_0x405D, 3 + setvar VAR_MOSSDEEP_STATE, 3 fadedefaultbgm fadescreen 1 - setvar VAR_0x409F, 3 + setvar VAR_MOSSDEEP_SPACE_CENTER_STATE_2, 3 setflag FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_1F_TEAM_MAGMA setflag FLAG_HIDE_MOSSDEEP_CITY_SPACE_CENTER_2F_TEAM_MAGMA setflag FLAG_HIDE_MOSSDEEP_CITY_TEAM_MAGMA diff --git a/data/maps/Route129/scripts.inc b/data/maps/Route129/scripts.inc index 0cd5f838a..25aa675a6 100644 --- a/data/maps/Route129/scripts.inc +++ b/data/maps/Route129/scripts.inc @@ -14,7 +14,7 @@ Route129_MapScript1_1F7294: @ 81F7294 Route129_MapScript1_1F72AB: @ 81F72AB compare VAR_SHOULD_END_UNUSUAL_WEATHER, 1 call_if_eq Route129_EventScript_273D13 - compare VAR_0x405E, 4 + compare VAR_RAYQUAZA_STATE, 4 call_if_ge Route129_EventScript_1F72D8 compare VAR_UNUSUAL_WEATHER_LOCATION, UNUSUAL_WEATHER_ROUTE_129_WEST call_if_eq UnusualWeather_StartKyogreWeather diff --git a/data/maps/Route130/scripts.inc b/data/maps/Route130/scripts.inc index 18dce324d..cdcc61550 100644 --- a/data/maps/Route130/scripts.inc +++ b/data/maps/Route130/scripts.inc @@ -3,7 +3,7 @@ Route130_MapScripts:: @ 81F735F .byte 0 Route130_MapScript1_1F7365: @ 81F7365 - compare VAR_0x405E, 4 + compare VAR_RAYQUAZA_STATE, 4 call_if_ge Route130_EventScript_1F73B5 specialvar VAR_RESULT, IsMirageIslandPresent compare VAR_RESULT, 1 diff --git a/data/maps/Route131/scripts.inc b/data/maps/Route131/scripts.inc index 7f50b2273..0d178e969 100644 --- a/data/maps/Route131/scripts.inc +++ b/data/maps/Route131/scripts.inc @@ -3,7 +3,7 @@ Route131_MapScripts:: @ 81F7404 .byte 0 Route131_MapScript1_1F740A: @ 81F740A - compare VAR_0x405E, 4 + compare VAR_RAYQUAZA_STATE, 4 call_if_ge Route131_EventScript_1F741F call Route131_EventScript_1F741B end diff --git a/data/maps/SeafloorCavern_Room9/scripts.inc b/data/maps/SeafloorCavern_Room9/scripts.inc index 7fe6386c3..38a10a004 100644 --- a/data/maps/SeafloorCavern_Room9/scripts.inc +++ b/data/maps/SeafloorCavern_Room9/scripts.inc @@ -119,7 +119,7 @@ SeafloorCavern_Room9_EventScript_234DC9:: @ 8234DC9 waitmovement 0 msgbox SeafloorCavern_Room9_Text_235723, MSGBOX_DEFAULT setvar VAR_ROUTE128_STATE, 1 - setvar VAR_0x405E, 1 + setvar VAR_RAYQUAZA_STATE, 1 clearflag FLAG_HIDE_SOOTOPOLIS_CITY_STEVEN clearflag FLAG_HIDE_SOOTOPOLIS_CITY_ARCHIE clearflag FLAG_HIDE_SOOTOPOLIS_CITY_MAXIE diff --git a/data/maps/SecretBase_YellowCave4/scripts.inc b/data/maps/SecretBase_YellowCave4/scripts.inc index cb26f924e..40f1e5a15 100644 --- a/data/maps/SecretBase_YellowCave4/scripts.inc +++ b/data/maps/SecretBase_YellowCave4/scripts.inc @@ -6,7 +6,7 @@ SecretBase_YellowCave4_MapScripts:: @ 823B483 .byte 0 SecretBase_RedCave1_MapScript2_23B498: @ 823B498 - map_script_2 VAR_0x4089, 0, EventScript_275D0C + map_script_2 VAR_SECRET_BASE_INITIALIZED, 0, EventScript_275D0C .2byte 0 SecretBase_RedCave1_MapScript1_23B4A2: @ 823B4A2 @@ -16,7 +16,7 @@ SecretBase_RedCave1_MapScript1_23B4A2: @ 823B4A2 end SecretBase_RedCave1_MapScript2_23B4AE: @ 823B4AE - map_script_2 VAR_0x4097, 0, SecretBase_RedCave1_EventScript_275B81 + map_script_2 VAR_SECRET_BASE_SHOULD_BE_INIT, 0, SecretBase_RedCave1_EventScript_275B81 .2byte 0 SecretBase_RedCave1_MapScript1_23B4B8: @ 823B4B8 diff --git a/data/maps/SkyPillar_Outside/scripts.inc b/data/maps/SkyPillar_Outside/scripts.inc index c68dc03e3..93d4e42c3 100644 --- a/data/maps/SkyPillar_Outside/scripts.inc +++ b/data/maps/SkyPillar_Outside/scripts.inc @@ -5,9 +5,9 @@ SkyPillar_Outside_MapScripts:: @ 82392A8 .byte 0 SkyPillar_Outside_MapScript1_2392B8: @ 82392B8 - compare VAR_0x405E, 3 + compare VAR_RAYQUAZA_STATE, 3 call_if_eq SkyPillar_Outside_EventScript_2392CF - compare VAR_0x405E, 4 + compare VAR_RAYQUAZA_STATE, 4 call_if_ge SkyPillar_Outside_EventScript_2392D3 end @@ -29,7 +29,7 @@ SkyPillar_Outside_EventScript_2392E7:: @ 82392E7 return SkyPillar_Outside_MapScript2_2392FA: @ 82392FA - map_script_2 VAR_0x405E, 3, SkyPillar_Outside_EventScript_239304 + map_script_2 VAR_RAYQUAZA_STATE, 3, SkyPillar_Outside_EventScript_239304 .2byte 0 SkyPillar_Outside_EventScript_239304:: @ 8239304 @@ -82,7 +82,7 @@ SkyPillar_Outside_EventScript_239304:: @ 8239304 playse SE_KAIDAN fadescreenswapbuffers 1 clearflag FLAG_SPECIAL_FLAG_0x4000 - setvar VAR_0x405E, 4 + setvar VAR_RAYQUAZA_STATE, 4 removeobject 1 clearflag FLAG_HIDE_SOOTOPOLIS_CITY_WALLACE fadescreenswapbuffers 0 diff --git a/data/maps/SkyPillar_Top/scripts.inc b/data/maps/SkyPillar_Top/scripts.inc index 3d031293d..df2b2118e 100644 --- a/data/maps/SkyPillar_Top/scripts.inc +++ b/data/maps/SkyPillar_Top/scripts.inc @@ -130,7 +130,7 @@ SkyPillar_Top_EventScript_23979A:: @ 823979A applymovement EVENT_OBJ_ID_CAMERA, SkyPillar_Top_Movement_23985C waitmovement 0 special RemoveCameraObject - setvar VAR_0x405E, 5 + setvar VAR_RAYQUAZA_STATE, 5 setvar VAR_0x40CA, 1 setvar VAR_0x40D7, 1 releaseall diff --git a/data/maps/SootopolisCity/scripts.inc b/data/maps/SootopolisCity/scripts.inc index 98c9af1ee..cad6d7db8 100644 --- a/data/maps/SootopolisCity/scripts.inc +++ b/data/maps/SootopolisCity/scripts.inc @@ -33,31 +33,31 @@ SootopolisCity_EventScript_1E56E5:: @ 81E56E5 SootopolisCity_MapScript1_1E56EF: @ 81E56EF setflag FLAG_VISITED_SOOTOPOLIS_CITY - compare VAR_0x405E, 1 + compare VAR_RAYQUAZA_STATE, 1 call_if_eq SootopolisCity_EventScript_1E5781 compare VAR_0x40CA, 1 call_if_eq SootopolisCity_EventScript_1E5781 call SootopolisCity_EventScript_1E5805 call SootopolisCity_EventScript_1E57B2 - compare VAR_0x405E, 1 + compare VAR_RAYQUAZA_STATE, 1 call_if_eq SootopolisCity_EventScript_1E5785 - compare VAR_0x405E, 2 + compare VAR_RAYQUAZA_STATE, 2 call_if_eq SootopolisCity_EventScript_1E5785 - compare VAR_0x405E, 3 + compare VAR_RAYQUAZA_STATE, 3 call_if_eq SootopolisCity_EventScript_1E5785 - compare VAR_0x405E, 4 + compare VAR_RAYQUAZA_STATE, 4 call_if_eq SootopolisCity_EventScript_1E5785 - compare VAR_0x405E, 5 + compare VAR_RAYQUAZA_STATE, 5 call_if_eq SootopolisCity_EventScript_1E5785 - compare VAR_0x405E, 2 + compare VAR_RAYQUAZA_STATE, 2 call_if_eq SootopolisCity_EventScript_1E5842 - compare VAR_0x405E, 3 + compare VAR_RAYQUAZA_STATE, 3 call_if_eq SootopolisCity_EventScript_1E5842 - compare VAR_0x405E, 4 + compare VAR_RAYQUAZA_STATE, 4 call_if_eq SootopolisCity_EventScript_1E585B - compare VAR_0x405E, 5 + compare VAR_RAYQUAZA_STATE, 5 call_if_eq SootopolisCity_EventScript_1E5871 - compare VAR_0x405E, 6 + compare VAR_RAYQUAZA_STATE, 6 call_if_eq SootopolisCity_EventScript_1E58D3 end @@ -77,17 +77,17 @@ SootopolisCity_EventScript_1E5785:: @ 81E5785 return SootopolisCity_EventScript_1E57B2:: @ 81E57B2 - compare VAR_0x405E, 0 + compare VAR_RAYQUAZA_STATE, 0 goto_if_eq SootopolisCity_EventScript_1E5800 - compare VAR_0x405E, 6 + compare VAR_RAYQUAZA_STATE, 6 goto_if_ge SootopolisCity_EventScript_1E5800 - compare VAR_0x405E, 1 + compare VAR_RAYQUAZA_STATE, 1 goto_if_eq SootopolisCity_EventScript_1E5801 - compare VAR_0x405E, 2 + compare VAR_RAYQUAZA_STATE, 2 goto_if_eq SootopolisCity_EventScript_1E5801 - compare VAR_0x405E, 3 + compare VAR_RAYQUAZA_STATE, 3 goto_if_eq SootopolisCity_EventScript_1E5801 - compare VAR_0x405E, 4 + compare VAR_RAYQUAZA_STATE, 4 goto_if_eq SootopolisCity_EventScript_1E5801 compare VAR_0x40CA, 1 goto_if_le SootopolisCity_EventScript_1E5801 @@ -101,11 +101,11 @@ SootopolisCity_EventScript_1E5801:: @ 81E5801 return SootopolisCity_EventScript_1E5805:: @ 81E5805 - compare VAR_0x405E, 0 + compare VAR_RAYQUAZA_STATE, 0 goto_if_eq SootopolisCity_EventScript_1E583D - compare VAR_0x405E, 6 + compare VAR_RAYQUAZA_STATE, 6 goto_if_ge SootopolisCity_EventScript_1E583D - compare VAR_0x405E, 1 + compare VAR_RAYQUAZA_STATE, 1 goto_if_eq SootopolisCity_EventScript_1E583E compare VAR_0x40CA, 1 goto_if_eq SootopolisCity_EventScript_1E583E @@ -168,7 +168,7 @@ SootopolisCity_EventScript_1E58D3:: @ 81E58D3 return SootopolisCity_MapScript2_1E58DB: @ 81E58DB - map_script_2 VAR_0x405E, 5, SootopolisCity_EventScript_1E58E5 + map_script_2 VAR_RAYQUAZA_STATE, 5, SootopolisCity_EventScript_1E58E5 .2byte 0 SootopolisCity_EventScript_1E58E5:: @ 81E58E5 @@ -192,7 +192,7 @@ SootopolisCity_MapScript1_1E590B: @ 81E590B end SootopolisCity_MapScript2_1E5914: @ 81E5914 - map_script_2 VAR_0x405E, 1, SootopolisCity_EventScript_1E5926 + map_script_2 VAR_RAYQUAZA_STATE, 1, SootopolisCity_EventScript_1E5926 map_script_2 VAR_0x40CA, 1, SootopolisCity_EventScript_1E5BFE .2byte 0 @@ -271,7 +271,7 @@ SootopolisCity_EventScript_1E5946:: @ 81E5946 applymovement EVENT_OBJ_ID_CAMERA, SootopolisCity_Movement_1E5A75 waitmovement 0 special RemoveCameraObject - setvar VAR_0x405E, 2 + setvar VAR_RAYQUAZA_STATE, 2 clearflag FLAG_SPECIAL_FLAG_0x4000 releaseall end @@ -371,7 +371,7 @@ SootopolisCity_EventScript_1E5A82:: @ 81E5A82 applymovement EVENT_OBJ_ID_CAMERA, SootopolisCity_Movement_1E5BAE waitmovement 0 special RemoveCameraObject - setvar VAR_0x405E, 2 + setvar VAR_RAYQUAZA_STATE, 2 clearflag FLAG_SPECIAL_FLAG_0x4000 releaseall end @@ -694,11 +694,11 @@ SootopolisCity_Movement_1E5E7F: @ 81E5E7F SootopolisCity_EventScript_1E5E8D:: @ 81E5E8D lock faceplayer - compare VAR_0x405E, 6 + compare VAR_RAYQUAZA_STATE, 6 goto_if_ge SootopolisCity_EventScript_1E5EC4 - compare VAR_0x405E, 5 + compare VAR_RAYQUAZA_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E5ECE - compare VAR_0x405E, 2 + compare VAR_RAYQUAZA_STATE, 2 goto_if_ge SootopolisCity_EventScript_1E5EBA msgbox SootopolisCity_Text_1E6D77, MSGBOX_DEFAULT release @@ -722,11 +722,11 @@ SootopolisCity_EventScript_1E5ECE:: @ 81E5ECE SootopolisCity_EventScript_1E5ED8:: @ 81E5ED8 lock faceplayer - compare VAR_0x405E, 1 + compare VAR_RAYQUAZA_STATE, 1 goto_if_le SootopolisCity_EventScript_1E5F1B - compare VAR_0x405E, 6 + compare VAR_RAYQUAZA_STATE, 6 goto_if_ge SootopolisCity_EventScript_1E5F1B - compare VAR_0x405E, 5 + compare VAR_RAYQUAZA_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E5F10 msgbox SootopolisCity_Text_1E6BFF, MSGBOX_DEFAULT closemessage @@ -794,7 +794,7 @@ SootopolisCity_EventScript_1E5FE2:: @ 81E5FE2 lockall applymovement 2, Common_Movement_FacePlayer waitmovement 0 - compare VAR_0x405E, 5 + compare VAR_RAYQUAZA_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E600D msgbox SootopolisCity_Text_1E71A1, MSGBOX_DEFAULT closemessage @@ -811,7 +811,7 @@ SootopolisCity_EventScript_1E600D:: @ 81E600D SootopolisCity_EventScript_1E6017:: @ 81E6017 lock faceplayer - compare VAR_0x405E, 6 + compare VAR_RAYQUAZA_STATE, 6 goto_if_ge SootopolisCity_EventScript_1E602E msgbox SootopolisCity_Text_1E6CCA, MSGBOX_DEFAULT release @@ -825,11 +825,11 @@ SootopolisCity_EventScript_1E602E:: @ 81E602E SootopolisCity_EventScript_1E6038:: @ 81E6038 lock faceplayer - compare VAR_0x405E, 6 + compare VAR_RAYQUAZA_STATE, 6 goto_if_ge SootopolisCity_EventScript_1E607A - compare VAR_0x405E, 5 + compare VAR_RAYQUAZA_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E6084 - compare VAR_0x405E, 2 + compare VAR_RAYQUAZA_STATE, 2 goto_if_ge SootopolisCity_EventScript_1E6065 msgbox SootopolisCity_Text_1E6F90, MSGBOX_DEFAULT release @@ -857,11 +857,11 @@ SootopolisCity_EventScript_1E608E:: @ 81E608E lockall applymovement 4, Common_Movement_FacePlayer waitmovement 0 - compare VAR_0x405E, 5 + compare VAR_RAYQUAZA_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E60D9 - compare VAR_0x405E, 6 + compare VAR_RAYQUAZA_STATE, 6 goto_if_ge SootopolisCity_EventScript_1E60CF - compare VAR_0x405E, 1 + compare VAR_RAYQUAZA_STATE, 1 goto_if_le SootopolisCity_EventScript_1E60CF msgbox SootopolisCity_Text_1E690B, MSGBOX_DEFAULT closemessage @@ -884,12 +884,12 @@ SootopolisCity_EventScript_1E60E3:: @ 81E60E3 lockall applymovement 5, Common_Movement_FacePlayer waitmovement 0 - compare VAR_0x405E, 5 + compare VAR_RAYQUAZA_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E612D goto_if_set FLAG_SYS_GAME_CLEAR, SootopolisCity_EventScript_1E6137 - compare VAR_0x405E, 6 + compare VAR_RAYQUAZA_STATE, 6 goto_if_ge SootopolisCity_EventScript_1E6141 - compare VAR_0x405E, 1 + compare VAR_RAYQUAZA_STATE, 1 goto_if_le SootopolisCity_EventScript_1E6141 msgbox SootopolisCity_Text_1E6692, MSGBOX_DEFAULT closemessage @@ -930,11 +930,11 @@ SootopolisCity_EventScript_1E6166:: @ 81E6166 applymovement 7, Common_Movement_FacePlayer waitmovement 0 call_if_unset FLAG_STEVEN_GUIDES_TO_CAVE_OF_ORIGIN, SootopolisCity_EventScript_1E61CC - compare VAR_0x405E, 2 + compare VAR_RAYQUAZA_STATE, 2 goto_if_eq SootopolisCity_EventScript_1E61AE - compare VAR_0x405E, 3 + compare VAR_RAYQUAZA_STATE, 3 goto_if_eq SootopolisCity_EventScript_1E61C2 - compare VAR_0x405E, 4 + compare VAR_RAYQUAZA_STATE, 4 goto_if_eq SootopolisCity_EventScript_1E61C2 goto_if_set FLAG_SOOTOPOLIS_ARCHIE_MAXIE_LEAVE, SootopolisCity_EventScript_1E61B8 msgbox SootopolisCity_Text_1E78E5, MSGBOX_DEFAULT @@ -1263,7 +1263,7 @@ SootopolisCity_EventScript_1E635D:: @ 81E635D lockall applymovement 15, Common_Movement_FacePlayer waitmovement 0 - compare VAR_0x405E, 5 + compare VAR_RAYQUAZA_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E6388 msgbox SootopolisCity_Text_1E67DC, MSGBOX_DEFAULT closemessage @@ -1280,7 +1280,7 @@ SootopolisCity_EventScript_1E6388:: @ 81E6388 SootopolisCity_EventScript_1E6393:: @ 81E6393 lockall - compare VAR_0x405E, 5 + compare VAR_RAYQUAZA_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E63C7 msgbox SootopolisCity_Text_1E6936, MSGBOX_DEFAULT closemessage @@ -1304,7 +1304,7 @@ SootopolisCity_EventScript_1E63DB:: @ 81E63DB lockall applymovement 13, Common_Movement_FacePlayer waitmovement 0 - compare VAR_0x405E, 5 + compare VAR_RAYQUAZA_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E6406 msgbox SootopolisCity_Text_1E6C7C, MSGBOX_DEFAULT closemessage @@ -1323,7 +1323,7 @@ SootopolisCity_EventScript_1E6411:: @ 81E6411 lockall applymovement 12, Common_Movement_FacePlayer waitmovement 0 - compare VAR_0x405E, 5 + compare VAR_RAYQUAZA_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E643C msgbox SootopolisCity_Text_1E6A50, MSGBOX_DEFAULT closemessage @@ -1340,7 +1340,7 @@ SootopolisCity_EventScript_1E643C:: @ 81E643C SootopolisCity_EventScript_1E6446:: @ 81E6446 lock faceplayer - compare VAR_0x405E, 4 + compare VAR_RAYQUAZA_STATE, 4 goto_if_eq SootopolisCity_EventScript_1E64D8 goto_if_set FLAG_RECEIVED_HM07, SootopolisCity_EventScript_1E64E2 goto_if_set FLAG_SOOTOPOLIS_ARCHIE_MAXIE_LEAVE, SootopolisCity_EventScript_1E646F @@ -1399,7 +1399,7 @@ SootopolisCity_Movement_1E64EF: @ 81E64EF SootopolisCity_EventScript_1E64F2:: @ 81E64F2 lockall - compare VAR_0x405E, 5 + compare VAR_RAYQUAZA_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E6509 msgbox SootopolisCity_Text_1E72DB, MSGBOX_DEFAULT closemessage @@ -1415,7 +1415,7 @@ SootopolisCity_EventScript_1E6509:: @ 81E6509 SootopolisCity_EventScript_1E651F:: @ 81E651F lockall - compare VAR_0x405E, 5 + compare VAR_RAYQUAZA_STATE, 5 goto_if_eq SootopolisCity_EventScript_1E6536 msgbox SootopolisCity_Text_1E7460, MSGBOX_DEFAULT closemessage diff --git a/data/maps/SootopolisCity_Gym_1F/scripts.inc b/data/maps/SootopolisCity_Gym_1F/scripts.inc index 06bc91f21..b9abdf656 100644 --- a/data/maps/SootopolisCity_Gym_1F/scripts.inc +++ b/data/maps/SootopolisCity_Gym_1F/scripts.inc @@ -106,7 +106,7 @@ SootopolisCity_Gym_1F_EventScript_224F82:: @ 8224F82 setflag FLAG_HIDE_SOOTOPOLIS_CITY_RESIDENTS setflag FLAG_HIDE_SOOTOPOLIS_CITY_STEVEN setflag FLAG_HIDE_SOOTOPOLIS_CITY_WALLACE - setvar VAR_0x405E, 6 + setvar VAR_RAYQUAZA_STATE, 6 clearflag FLAG_HIDE_SOOTOPOLIS_CITY_MAN_1 setvar VAR_0x8008, 8 call SootopolisCity_Gym_1F_EventScript_271F43 diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index 0858dfabb..7293cdad3 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -74,7 +74,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276B23:: @ 8276B23 msgbox gUnknown_08273594, MSGBOX_DEFAULT giveitem_std ITEM_EON_TICKET setflag FLAG_SYS_HAS_EON_TICKET - setvar VAR_0x403F, 0 + setvar VAR_ALWAYS_ZERO_0x403F, 0 msgbox gUnknown_082735F2, MSGBOX_DEFAULT release end diff --git a/data/scripts/secret_base.inc b/data/scripts/secret_base.inc index 770bc9a5b..95e9a2fc5 100644 --- a/data/scripts/secret_base.inc +++ b/data/scripts/secret_base.inc @@ -430,21 +430,21 @@ EventScript_275B4D:: @ 8275B4D EventScript_275B5B:: @ 8275B5B closemessage playse SE_KAIDAN - setvar VAR_0x4097, 0 + setvar VAR_SECRET_BASE_SHOULD_BE_INIT, 0 setflag FLAG_DECORATION_0 special sub_80E8E18 special sub_80E9068 setvar VAR_0x8004, 0 setvar VAR_0x8005, 0 special sub_80E933C - setvar VAR_0x4089, 1 + setvar VAR_SECRET_BASE_INITIALIZED, 1 waitstate end SecretBase_RedCave1_EventScript_275B81:: @ 8275B81 applymovement EVENT_OBJ_ID_PLAYER, SecretBase_RedCave1_Movement_275BB4 waitmovement 0 - setvar VAR_0x4097, 1 + setvar VAR_SECRET_BASE_SHOULD_BE_INIT, 1 msgbox SecretBase_RedCave1_Text_23B759, MSGBOX_YESNO compare VAR_RESULT, 1 goto_if_eq SecretBase_RedCave1_EventScript_275BAB @@ -467,21 +467,21 @@ SecretBase_RedCave1_Movement_275BB4: @ 8275BB4 EventScript_275BB7:: @ 8275BB7 lockall - setvar VAR_0x4097, 1 + setvar VAR_SECRET_BASE_SHOULD_BE_INIT, 1 playse SE_KAIDAN special sub_80E9744 compare VAR_RESULT, 0 goto_if_eq EventScript_275BDB clearflag FLAG_DECORATION_0 special sub_80E9068 - setvar VAR_0x4089, 0 + setvar VAR_SECRET_BASE_INITIALIZED, 0 waitstate end EventScript_275BDB:: @ 8275BDB setflag FLAG_DECORATION_0 special sub_80E9068 - setvar VAR_0x4089, 0 + setvar VAR_SECRET_BASE_INITIALIZED, 0 waitstate end @@ -570,7 +570,7 @@ EventScript_275D0C:: @ 8275D0C setvar VAR_0x8004, 0 setvar VAR_0x8005, 0 special sub_80E933C - setvar VAR_0x4089, 1 + setvar VAR_SECRET_BASE_INITIALIZED, 1 end EventScript_275D1F:: @ 8275D1F diff --git a/include/constants/vars.h b/include/constants/vars.h index 1ca36b8ad..1aacf8b75 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -79,13 +79,13 @@ #define VAR_REGICE_STEPS_2 0x403C #define VAR_REGICE_STEPS_3 0x403D #define VAR_ALTERING_CAVE_WILD_SET 0x403E -#define VAR_0x403F 0x403F +#define VAR_ALWAYS_ZERO_0x403F 0x403F // This var is read and written, but is always zero. #define VAR_DAYS 0x4040 #define VAR_FANCLUB_UNKNOWN_1 0x4041 #define VAR_FANCLUB_UNKNOWN_2 0x4042 #define VAR_DEPT_STORE_FLOOR 0x4043 #define VAR_0x4044 0x4044 -#define VAR_POKELOT_PRIZE 0x4045 +#define VAR_POKELOT_PRIZE_ITEM 0x4045 #define VAR_NATIONAL_DEX 0x4046 #define VAR_SEEDOT_SIZE_RECORD 0x4047 #define VAR_ASH_GATHER_COUNT 0x4048 @@ -93,7 +93,7 @@ #define VAR_CRUISE_STEP_COUNT 0x404A #define VAR_POKELOT_RND1 0x404B #define VAR_POKELOT_RND2 0x404C -#define VAR_0x404D 0x404D +#define VAR_POKELOT_PRIZE_PLACE 0x404D #define VAR_UNUSED_0x404E 0x404E // Unused Var #define VAR_LOTAD_SIZE_RECORD 0x404F #define VAR_0x4050 0x4050 @@ -109,8 +109,8 @@ #define VAR_RUSTBORO_STATE 0x405A #define VAR_UNUSED_0x405B 0x405B // Unused Var #define VAR_UNUSED_0x405C 0x405C // Unused Var -#define VAR_0x405D 0x405D -#define VAR_0x405E 0x405E +#define VAR_MOSSDEEP_STATE 0x405D +#define VAR_RAYQUAZA_STATE 0x405E #define VAR_UNUSED_0x405F 0x405F // Unused Var #define VAR_ROUTE101_STATE 0x4060 #define VAR_UNUSED_0x4061 0x4061 // Unused Var @@ -153,7 +153,7 @@ #define VAR_LINK_CONTEST_ROOM_STATE 0x4086 #define VAR_CABLE_CLUB_STATE 0x4087 #define VAR_CONTEST_LOCATION 0x4088 -#define VAR_0x4089 0x4089 +#define VAR_SECRET_BASE_INITIALIZED 0x4089 #define VAR_CONTEST_PRIZE_PICKUP 0x408A #define VAR_UNUSED_0x408B 0x408B // Unused Var #define VAR_LITTLEROOT_HOUSES_STATE_2 0x408C @@ -167,15 +167,15 @@ #define VAR_LILYCOVE_MUSEUM_2F_STATE 0x4094 #define VAR_LILYCOVE_FAN_CLUB_STATE 0x4095 #define VAR_BRINEY_LOCATION 0x4096 -#define VAR_0x4097 0x4097 +#define VAR_SECRET_BASE_SHOULD_BE_INIT 0x4097 #define VAR_PETALBURG_WOODS_STATE 0x4098 #define VAR_LILYCOVE_CONTEST_LOBBY_STATE 0x4099 #define VAR_RUSTURF_TUNNEL_STATE 0x409A #define VAR_UNUSED_0x409B 0x409B // Unused Var #define VAR_ELITE_4_STATE 0x409C #define VAR_UNUSED_0x409D 0x409D // Unused Var -#define VAR_0x409E 0x409E -#define VAR_0x409F 0x409F +#define VAR_MOSSDEEP_SPACE_CENTER_STATE_1 0x409E +#define VAR_MOSSDEEP_SPACE_CENTER_STATE_2 0x409F #define VAR_SLATEPORT_HARBOR_STATE 0x40A0 #define VAR_UNUSED_0x40A1 0x40A1 // Unused var #define VAR_SEAFLOOR_CAVERN_STATE 0x40A2 diff --git a/src/field_specials.c b/src/field_specials.c index 7bfce8dd9..a07e987eb 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3580,7 +3580,7 @@ bool32 sub_813B4E0(void) bool32 sub_813B514(void) { - if (!VarGet(VAR_0x403F)) + if (!VarGet(VAR_ALWAYS_ZERO_0x403F)) { return FALSE; } diff --git a/src/lottery_corner.c b/src/lottery_corner.c index bd7d17ef7..bb3bb7a5c 100644 --- a/src/lottery_corner.c +++ b/src/lottery_corner.c @@ -27,7 +27,7 @@ void ResetLotteryCorner(void) u16 rand = Random(); SetLotteryNumber((Random() << 16) | rand); - VarSet(VAR_POKELOT_PRIZE, 0); + VarSet(VAR_POKELOT_PRIZE_ITEM, 0); } void SetRandomLotteryNumber(u16 i) diff --git a/src/overworld.c b/src/overworld.c index 4206be448..8ca10a33b 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -1018,7 +1018,7 @@ static bool16 ShouldLegendaryMusicPlayAtLocation(struct WarpData *warp) case MAP_NUM(ROUTE128): return TRUE; default: - if (VarGet(VAR_0x405E) < 4) + if (VarGet(VAR_RAYQUAZA_STATE) < 4) return FALSE; switch (warp->mapNum) { @@ -1059,9 +1059,9 @@ static bool16 IsInfiltratedWeatherInstitute(struct WarpData *warp) static bool16 IsInflitratedSpaceCenter(struct WarpData *warp) { - if (VarGet(VAR_0x405D) == 0) + if (VarGet(VAR_MOSSDEEP_STATE) == 0) return FALSE; - else if (VarGet(VAR_0x405D) > 2) + else if (VarGet(VAR_MOSSDEEP_STATE) > 2) return FALSE; else if (warp->mapGroup != MAP_GROUP(MOSSDEEP_CITY_SPACE_CENTER_1F)) return FALSE; diff --git a/src/secret_base.c b/src/secret_base.c index adcab9cbc..7ff83dec8 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -407,7 +407,7 @@ void sub_80E9068(void) bool8 sub_80E909C(void) { - if (gMapHeader.mapType == MAP_TYPE_SECRET_BASE && VarGet(VAR_0x4097) == 0) + if (gMapHeader.mapType == MAP_TYPE_SECRET_BASE && VarGet(VAR_SECRET_BASE_SHOULD_BE_INIT) == 0) { return FALSE; } @@ -494,7 +494,7 @@ void sub_80E9238(u8 flagIn) sub_80E8CB0(&x, &y, 0x220); MapGridSetMetatileIdAt(x + 7, y + 7, 0x221 | 0xc00); } - else if (flagIn == 1 && VarGet(VAR_0x4089) == 1) + else if (flagIn == 1 && VarGet(VAR_SECRET_BASE_INITIALIZED) == 1) { sub_80E8CB0(&x, &y, 0x220); MapGridSetMetatileIdAt(x + 7, y + 7, 0x20a | 0xc00); -- cgit v1.2.3 From e77e7844ea6b6cdba1a6386f144aa712aea1807b Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 27 Feb 2019 20:25:09 -0500 Subject: Name several vars, document some related events --- asm/macros/event.inc | 6 +++--- data/event_scripts.s | 4 ++-- data/maps/BattleFrontier_ReceptionGate/scripts.inc | 4 ++-- data/maps/BattleFrontier_ScottsHouse/scripts.inc | 6 +++--- .../maps/EverGrandeCity_PokemonCenter_1F/scripts.inc | 2 +- data/maps/FallarborTown_BattleTentLobby/scripts.inc | 2 +- data/maps/JaggedPass/map.json | 10 +++++----- data/maps/JaggedPass/scripts.inc | 8 ++++---- data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc | 2 +- .../LittlerootTown_ProfessorBirchsLab/scripts.inc | 2 +- data/maps/MauvilleCity/scripts.inc | 2 +- data/maps/MauvilleCity_Gym/scripts.inc | 2 +- data/maps/MirageTower_4F/scripts.inc | 2 +- data/maps/MossdeepCity/scripts.inc | 2 +- data/maps/PetalburgCity/scripts.inc | 2 +- data/maps/Route111/scripts.inc | 18 +++++++++--------- data/maps/Route114_FossilManiacsTunnel/map.json | 4 ++-- data/maps/Route114_FossilManiacsTunnel/scripts.inc | 2 +- data/maps/Route119/scripts.inc | 4 ++-- data/maps/RustboroCity_PokemonSchool/scripts.inc | 4 ++-- data/maps/SSTidalCorridor/scripts.inc | 4 ++-- data/maps/SkyPillar_1F/scripts.inc | 2 +- data/maps/SkyPillar_2F/scripts.inc | 2 +- data/maps/SkyPillar_3F/scripts.inc | 2 +- data/maps/SkyPillar_4F/scripts.inc | 2 +- data/maps/SkyPillar_5F/scripts.inc | 2 +- data/maps/SkyPillar_Top/scripts.inc | 8 ++++---- data/maps/SlateportCity/map.json | 2 +- data/maps/SlateportCity/scripts.inc | 12 ++++++------ data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc | 2 +- data/maps/SootopolisCity/scripts.inc | 20 ++++++++++---------- data/maps/SootopolisCity_Mart/scripts.inc | 4 ++-- .../maps/SootopolisCity_PokemonCenter_1F/scripts.inc | 4 ++-- data/maps/SouthernIsland_Interior/scripts.inc | 8 ++++---- data/maps/TrainerHill_Entrance/scripts.inc | 1 + data/maps/VerdanturfTown_BattleTentLobby/scripts.inc | 2 +- data/scripts/cable_club.inc | 4 ++-- data/scripts/players_house.inc | 3 ++- data/scripts/tv.inc | 3 +++ include/constants/vars.h | 20 ++++++++++---------- src/mirage_tower.c | 2 +- src/overworld.c | 4 ++-- 42 files changed, 103 insertions(+), 98 deletions(-) diff --git a/asm/macros/event.inc b/asm/macros/event.inc index fa0b3fa06..d8251a358 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -824,7 +824,7 @@ .byte \y .endm - @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. + @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined (gMultichoiceLists) and the one to be used is specified with list. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. .macro multichoice x:req, y:req, list:req, b:req .byte 0x6f .byte \x @@ -833,7 +833,7 @@ .byte \b .endm - @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. + @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined (gMultichoiceLists) and the one to be used is specified with list. The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. .macro multichoicedefault x:req, y:req, list:req, default:req, b:req .byte 0x70 .byte \x @@ -843,7 +843,7 @@ .byte \b .endm - @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The per_row argument determines how many list items will be shown on a single row of the box. + @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined (gMultichoiceLists) and the one to be used is specified with list. The per_row argument determines how many list items will be shown on a single row of the box. .macro multichoicegrid x:req, y:req, list:req, per_row:req, B:req .byte 0x71 .byte \x diff --git a/data/event_scripts.s b/data/event_scripts.s index abc60dd18..8cbb3fd2e 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1093,7 +1093,7 @@ EverGrandeCity_HallOfFame_EventScript_2717C1:: @ 82717C1 special sub_81AFDD0 setflag FLAG_IS_CHAMPION call EverGrandeCity_HallOfFame_EventScript_271829 - compare VAR_0x40CC, 0 + compare VAR_FOSSIL_MANIAC_STATE, 0 call_if_eq EverGrandeCity_HallOfFame_EventScript_271839 clearflag FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS call EverGrandeCity_HallOfFame_EventScript_2718CC @@ -1126,7 +1126,7 @@ EverGrandeCity_HallOfFame_EventScript_271829:: @ 8271829 return EverGrandeCity_HallOfFame_EventScript_271839:: @ 8271839 - setvar VAR_0x40CC, 1 + setvar VAR_FOSSIL_MANIAC_STATE, 1 return EverGrandeCity_HallOfFame_EventScript_27183F:: @ 827183F diff --git a/data/maps/BattleFrontier_ReceptionGate/scripts.inc b/data/maps/BattleFrontier_ReceptionGate/scripts.inc index 574415c4c..8ce438d75 100644 --- a/data/maps/BattleFrontier_ReceptionGate/scripts.inc +++ b/data/maps/BattleFrontier_ReceptionGate/scripts.inc @@ -8,12 +8,12 @@ BattleFrontier_ReceptionGate_MapScript1_2661E5: @ 82661E5 end BattleFrontier_ReceptionGate_MapScript2_2661E9: @ 82661E9 - map_script_2 VAR_0x40D0, 0, BattleFrontier_ReceptionGate_EventScript_2661F3 + map_script_2 VAR_HAS_ENTERED_BATTLE_FRONTIER, 0, BattleFrontier_ReceptionGate_EventScript_2661F3 .2byte 0 BattleFrontier_ReceptionGate_EventScript_2661F3:: @ 82661F3 lockall - setvar VAR_0x40D0, 1 + setvar VAR_HAS_ENTERED_BATTLE_FRONTIER, 1 playse SE_PIN applymovement 1, Common_Movement_ExclamationMark waitmovement 0 diff --git a/data/maps/BattleFrontier_ScottsHouse/scripts.inc b/data/maps/BattleFrontier_ScottsHouse/scripts.inc index 9278252e6..52863d474 100644 --- a/data/maps/BattleFrontier_ScottsHouse/scripts.inc +++ b/data/maps/BattleFrontier_ScottsHouse/scripts.inc @@ -184,11 +184,11 @@ BattleFrontier_ScottsHouse_EventScript_263943:: @ 8263943 applymovement 1, Common_Movement_FacePlayer waitmovement 0 msgbox BattleFrontier_ScottsHouse_Text_263BD4, MSGBOX_DEFAULT - compare VAR_0x40D1, 13 + compare VAR_SCOTT_STATE, 13 goto_if_eq BattleFrontier_ScottsHouse_EventScript_2639BC - compare VAR_0x40D1, 9 + compare VAR_SCOTT_STATE, 9 goto_if_ge BattleFrontier_ScottsHouse_EventScript_2639CB - compare VAR_0x40D1, 6 + compare VAR_SCOTT_STATE, 6 goto_if_ge BattleFrontier_ScottsHouse_EventScript_2639DA goto BattleFrontier_ScottsHouse_EventScript_2639E9 end diff --git a/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc b/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc index 827c08e54..12c6bbb77 100644 --- a/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/EverGrandeCity_PokemonCenter_1F/scripts.inc @@ -40,7 +40,7 @@ EverGrandeCity_PokemonCenter_1F_EventScript_229A79:: @ 8229A79 call_if_eq EverGrandeCity_PokemonCenter_1F_EventScript_229AC1 compare VAR_FACING, 3 call_if_eq EverGrandeCity_PokemonCenter_1F_EventScript_229AC1 - addvar VAR_0x40D1, 1 + addvar VAR_SCOTT_STATE, 1 setflag FLAG_MET_SCOTT_IN_EVERGRANDE playse SE_KAIDAN waitse diff --git a/data/maps/FallarborTown_BattleTentLobby/scripts.inc b/data/maps/FallarborTown_BattleTentLobby/scripts.inc index 6d7ea6be5..f6b7e1097 100644 --- a/data/maps/FallarborTown_BattleTentLobby/scripts.inc +++ b/data/maps/FallarborTown_BattleTentLobby/scripts.inc @@ -296,7 +296,7 @@ FallarborTown_BattleTentLobby_EventScript_200228:: @ 8200228 faceplayer goto_if_set FLAG_MET_SCOTT_IN_FALLARBOR, FallarborTown_BattleTentLobby_EventScript_200245 msgbox FallarborTown_BattleTentLobby_Text_200501, MSGBOX_DEFAULT - addvar VAR_0x40D1, 1 + addvar VAR_SCOTT_STATE, 1 setflag FLAG_MET_SCOTT_IN_FALLARBOR release end diff --git a/data/maps/JaggedPass/map.json b/data/maps/JaggedPass/map.json index 1b9c5471d..3ec89fce6 100644 --- a/data/maps/JaggedPass/map.json +++ b/data/maps/JaggedPass/map.json @@ -184,7 +184,7 @@ "x": 21, "y": 15, "elevation": 3, - "var": "VAR_0x40C8", + "var": "VAR_JAGGED_PASS_STATE", "var_value": "1", "script": "JaggedPass_EventScript_2306BB" }, @@ -193,7 +193,7 @@ "x": 22, "y": 20, "elevation": 3, - "var": "VAR_0x40C8", + "var": "VAR_JAGGED_PASS_STATE", "var_value": "1", "script": "JaggedPass_EventScript_2306BB" }, @@ -202,7 +202,7 @@ "x": 21, "y": 20, "elevation": 3, - "var": "VAR_0x40C8", + "var": "VAR_JAGGED_PASS_STATE", "var_value": "1", "script": "JaggedPass_EventScript_2306BB" }, @@ -211,7 +211,7 @@ "x": 14, "y": 15, "elevation": 3, - "var": "VAR_0x40C8", + "var": "VAR_JAGGED_PASS_STATE", "var_value": "1", "script": "JaggedPass_EventScript_2306BB" }, @@ -220,7 +220,7 @@ "x": 13, "y": 15, "elevation": 3, - "var": "VAR_0x40C8", + "var": "VAR_JAGGED_PASS_STATE", "var_value": "1", "script": "JaggedPass_EventScript_2306BB" } diff --git a/data/maps/JaggedPass/scripts.inc b/data/maps/JaggedPass/scripts.inc index 3df62fc7d..c51a5ec26 100644 --- a/data/maps/JaggedPass/scripts.inc +++ b/data/maps/JaggedPass/scripts.inc @@ -6,7 +6,7 @@ JaggedPass_MapScripts:: @ 8230656 JaggedPass_MapScript1_230666: @ 8230666 setstepcallback 1 - compare VAR_0x40C8, 0 + compare VAR_JAGGED_PASS_STATE, 0 call_if_eq JaggedPass_EventScript_230674 end @@ -17,7 +17,7 @@ JaggedPass_EventScript_230674:: @ 8230674 return JaggedPass_EventScript_230685:: @ 8230685 - setvar VAR_0x40C8, 1 + setvar VAR_JAGGED_PASS_STATE, 1 return JaggedPass_MapScript1_23068B: @ 823068B @@ -31,7 +31,7 @@ JaggedPass_EventScript_230697:: @ 8230697 return JaggedPass_MapScript1_23069C: @ 823069C - compare VAR_0x40C8, 1 + compare VAR_JAGGED_PASS_STATE, 1 goto_if_le JaggedPass_EventScript_2306A8 end @@ -61,7 +61,7 @@ JaggedPass_EventScript_2306BB:: @ 82306BB setmetatile 16, 18, 606, 0 special DrawWholeMapView delay 30 - setvar VAR_0x40C8, 2 + setvar VAR_JAGGED_PASS_STATE, 2 waitse releaseall end diff --git a/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc b/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc index 4a761a706..fd6aa34bd 100644 --- a/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc +++ b/data/maps/LilycoveCity_CoveLilyMotel_2F/scripts.inc @@ -57,7 +57,7 @@ LilycoveCity_CoveLilyMotel_2F_EventScript_21874D:: @ 821874D faceplayer goto_if_set FLAG_MET_SCOTT_IN_LILYCOVE, LilycoveCity_CoveLilyMotel_2F_EventScript_21876A msgbox LilycoveCity_CoveLilyMotel_2F_Text_218ACF, MSGBOX_DEFAULT - addvar VAR_0x40D1, 1 + addvar VAR_SCOTT_STATE, 1 setflag FLAG_MET_SCOTT_IN_LILYCOVE release end diff --git a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc index 88b1c6929..51ace147d 100644 --- a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc +++ b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc @@ -570,7 +570,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA3AC:: @ 81FA3AC setflag FLAG_SYS_POKEDEX_GET special sub_81AFDA0 setflag FLAG_RECEIVED_POKEDEX_FROM_BIRCH - setvar VAR_0x40CD, 1 + setvar VAR_CABLE_CLUB_TUTORIAL_STATE, 1 return LittlerootTown_ProfessorBirchsLab_EventScript_1FA3C4:: @ 81FA3C4 diff --git a/data/maps/MauvilleCity/scripts.inc b/data/maps/MauvilleCity/scripts.inc index 120fc9f51..62c2219ea 100644 --- a/data/maps/MauvilleCity/scripts.inc +++ b/data/maps/MauvilleCity/scripts.inc @@ -168,7 +168,7 @@ MauvilleCity_EventScript_1DF593:: @ 81DF593 waitmovement 0 msgbox MauvilleCity_Text_1DFED5, MSGBOX_DEFAULT closemessage - addvar VAR_0x40D1, 1 + addvar VAR_SCOTT_STATE, 1 compare VAR_FACING, 2 call_if_eq MauvilleCity_EventScript_1DF616 compare VAR_FACING, 4 diff --git a/data/maps/MauvilleCity_Gym/scripts.inc b/data/maps/MauvilleCity_Gym/scripts.inc index de4bd0ddf..e23d48332 100644 --- a/data/maps/MauvilleCity_Gym/scripts.inc +++ b/data/maps/MauvilleCity_Gym/scripts.inc @@ -90,7 +90,7 @@ MauvilleCity_Gym_EventScript_20DF2B:: @ 820DF2B waitmessage call Common_EventScript_PlayGymBadgeFanfare msgbox MauvilleCity_Gym_Text_20E7AA, MSGBOX_DEFAULT - setvar VAR_0x40D2, 3 + setvar VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE, 3 clearflag FLAG_HIDE_VERDANTURF_TOWN_SCOTT setflag FLAG_DEFEATED_MAUVILLE_GYM setflag FLAG_BADGE03_GET diff --git a/data/maps/MirageTower_4F/scripts.inc b/data/maps/MirageTower_4F/scripts.inc index 312852586..3d8dd80d0 100644 --- a/data/maps/MirageTower_4F/scripts.inc +++ b/data/maps/MirageTower_4F/scripts.inc @@ -52,7 +52,7 @@ MirageTower_4F_EventScript_23ADCA:: @ 823ADCA waitstate special DoMirageTowerCeilingCrumble waitstate - setvar VAR_0x40CB, 1 + setvar VAR_ROUTE_111_STATE, 1 clearflag FLAG_LANDMARK_MIRAGE_TOWER warp MAP_ROUTE111, 255, 19, 59 waitstate diff --git a/data/maps/MossdeepCity/scripts.inc b/data/maps/MossdeepCity/scripts.inc index 31995542d..493cded0a 100644 --- a/data/maps/MossdeepCity/scripts.inc +++ b/data/maps/MossdeepCity/scripts.inc @@ -259,7 +259,7 @@ MossdeepCity_EventScript_1E4C85:: @ 81E4C85 call_if_eq MossdeepCity_EventScript_1E4CB0 compare VAR_FACING, 4 call_if_eq MossdeepCity_EventScript_1E4CC2 - addvar VAR_0x40D1, 1 + addvar VAR_SCOTT_STATE, 1 removeobject 16 release end diff --git a/data/maps/PetalburgCity/scripts.inc b/data/maps/PetalburgCity/scripts.inc index e2f5d2a86..0520fe044 100644 --- a/data/maps/PetalburgCity/scripts.inc +++ b/data/maps/PetalburgCity/scripts.inc @@ -551,7 +551,7 @@ PetalburgCity_EventScript_1DC6E9:: @ 81DC6E9 waitmovement 0 applymovement EVENT_OBJ_ID_PLAYER, Common_Movement_WalkInPlaceRight waitmovement 0 - setvar VAR_0x40D1, 1 + setvar VAR_SCOTT_STATE, 1 msgbox PetalburgCity_Text_1DCB31, MSGBOX_DEFAULT closemessage applymovement 9, Common_Movement_WalkInPlaceRight diff --git a/data/maps/Route111/scripts.inc b/data/maps/Route111/scripts.inc index 754369014..4c8fce8b6 100644 --- a/data/maps/Route111/scripts.inc +++ b/data/maps/Route111/scripts.inc @@ -7,7 +7,7 @@ Route111_MapScripts:: @ 81F0CA7 Route111_MapScript1_1F0CBC: @ 81F0CBC call_if_unset FLAG_REGI_DOORS_OPENED, Route111_EventScript_1F0CD1 - compare VAR_0x40CB, 1 + compare VAR_ROUTE_111_STATE, 1 call_if_eq Route111_EventScript_1F0CE4 end @@ -41,9 +41,9 @@ Route111_MapScript1_1F0D87: @ 81F0D87 setvar VAR_0x40D6, 0 special SetMirageTowerVisibility call_if_unset FLAG_MIRAGE_TOWER_VISIBLE, Route111_EventScript_1F0E3C - compare VAR_0x40CB, 1 + compare VAR_ROUTE_111_STATE, 1 call_if_eq Route111_EventScript_1F0DC2 - compare VAR_0x40CB, 2 + compare VAR_ROUTE_111_STATE, 2 call_if_eq Route111_EventScript_1F0E40 call Route111_EventScript_1F0DE6 call Route111_EventScript_28CCC7 @@ -101,11 +101,11 @@ Route111_EventScript_1F0E3C:: @ 81F0E3C return Route111_EventScript_1F0E40:: @ 81F0E40 - setvar VAR_0x40CB, 3 + setvar VAR_ROUTE_111_STATE, 3 return Route111_MapScript2_1F0E46: @ 81F0E46 - map_script_2 VAR_0x40CB, 1, Route111_EventScript_1F0E50 + map_script_2 VAR_ROUTE_111_STATE, 1, Route111_EventScript_1F0E50 .2byte 0 Route111_EventScript_1F0E50:: @ 81F0E50 @@ -113,7 +113,7 @@ Route111_EventScript_1F0E50:: @ 81F0E50 end Route111_MapScript2_1F0E56: @ 81F0E56 - map_script_2 VAR_0x40CB, 1, Route111_EventScript_1F0E60 + map_script_2 VAR_ROUTE_111_STATE, 1, Route111_EventScript_1F0E60 .2byte 0 Route111_EventScript_1F0E60:: @ 81F0E60 @@ -134,7 +134,7 @@ Route111_EventScript_1F0E60:: @ 81F0E60 waitstate special StartMirageTowerFossilFallAndSink waitstate - setvar VAR_0x40CB, 2 + setvar VAR_ROUTE_111_STATE, 2 clearflag FLAG_HIDE_DESERT_UNDERPASS_FOSSIL goto_if_set FLAG_CHOSE_ROOT_FOSSIL, Route111_EventScript_1F0EA7 msgbox Route111_Text_1F1C74, MSGBOX_DEFAULT @@ -411,9 +411,9 @@ Route111_EventScript_1F1192:: @ 81F1192 Route111_EventScript_1F119B:: @ 81F119B lock faceplayer - compare VAR_0x40CB, 3 + compare VAR_ROUTE_111_STATE, 3 goto_if_eq Route111_EventScript_1F11C6 - compare VAR_0x40CB, 2 + compare VAR_ROUTE_111_STATE, 2 goto_if_eq Route111_EventScript_1F11D0 goto_if_set FLAG_MIRAGE_TOWER_VISIBLE, Route111_EventScript_1F11DA msgbox Route111_Text_1F1A22, MSGBOX_DEFAULT diff --git a/data/maps/Route114_FossilManiacsTunnel/map.json b/data/maps/Route114_FossilManiacsTunnel/map.json index 0582198db..d0992f8fa 100644 --- a/data/maps/Route114_FossilManiacsTunnel/map.json +++ b/data/maps/Route114_FossilManiacsTunnel/map.json @@ -57,7 +57,7 @@ "x": 5, "y": 4, "elevation": 3, - "var": "VAR_0x40CC", + "var": "VAR_FOSSIL_MANIAC_STATE", "var_value": "1", "script": "Route114_FossilManiacsTunnel_EventScript_22AF66" }, @@ -66,7 +66,7 @@ "x": 6, "y": 4, "elevation": 3, - "var": "VAR_0x40CC", + "var": "VAR_FOSSIL_MANIAC_STATE", "var_value": "1", "script": "Route114_FossilManiacsTunnel_EventScript_22AF66" } diff --git a/data/maps/Route114_FossilManiacsTunnel/scripts.inc b/data/maps/Route114_FossilManiacsTunnel/scripts.inc index 1a84082ab..8ab83a441 100644 --- a/data/maps/Route114_FossilManiacsTunnel/scripts.inc +++ b/data/maps/Route114_FossilManiacsTunnel/scripts.inc @@ -27,7 +27,7 @@ Route114_FossilManiacsTunnel_EventScript_22AF66:: @ 822AF66 applymovement EVENT_OBJ_ID_PLAYER, Common_Movement_WalkInPlaceDown waitmovement 0 msgbox Route114_FossilManiacsTunnel_Text_22B1F7, MSGBOX_DEFAULT - setvar VAR_0x40CC, 2 + setvar VAR_FOSSIL_MANIAC_STATE, 2 releaseall end diff --git a/data/maps/Route119/scripts.inc b/data/maps/Route119/scripts.inc index 83ff4707f..22a73b74b 100644 --- a/data/maps/Route119/scripts.inc +++ b/data/maps/Route119/scripts.inc @@ -167,7 +167,7 @@ Route119_EventScript_1F460F:: @ 81F460F addobject 43 applymovement 43, Route119_Movement_1F4752 waitmovement 0 - addvar VAR_0x40D1, 1 + addvar VAR_SCOTT_STATE, 1 msgbox Route119_Text_1F4E60, MSGBOX_DEFAULT closemessage compare VAR_TEMP_1, 1 @@ -491,7 +491,7 @@ Route119_EventScript_1F49EC:: @ 81F49EC pokenavcall Route119_Text_1F4FBA waitmessage clearflag FLAG_REGISTER_WINONA_POKENAV - addvar VAR_0x40D1, 1 + addvar VAR_SCOTT_STATE, 1 releaseall end diff --git a/data/maps/RustboroCity_PokemonSchool/scripts.inc b/data/maps/RustboroCity_PokemonSchool/scripts.inc index 74394f9a5..ff52ee5ac 100644 --- a/data/maps/RustboroCity_PokemonSchool/scripts.inc +++ b/data/maps/RustboroCity_PokemonSchool/scripts.inc @@ -170,7 +170,7 @@ RustboroCity_PokemonSchool_EventScript_214040:: @ 8214040 goto_if_set FLAG_MET_SCOTT_RUSTBORO, RustboroCity_PokemonSchool_EventScript_21406F goto_if_set FLAG_BADGE01_GET, RustboroCity_PokemonSchool_EventScript_214082 msgbox RustboroCity_PokemonSchool_Text_2148C0, MSGBOX_DEFAULT - addvar VAR_0x40D1, 1 + addvar VAR_SCOTT_STATE, 1 setflag FLAG_MET_SCOTT_RUSTBORO release end @@ -192,7 +192,7 @@ RustboroCity_PokemonSchool_EventScript_214090:: @ 8214090 end RustboroCity_PokemonSchool_EventScript_21409E:: @ 821409E - addvar VAR_0x40D1, 1 + addvar VAR_SCOTT_STATE, 1 setflag FLAG_MET_SCOTT_AFTER_OBTAINING_STONE_BADGE release end diff --git a/data/maps/SSTidalCorridor/scripts.inc b/data/maps/SSTidalCorridor/scripts.inc index ededf1e5f..ec231ccdd 100644 --- a/data/maps/SSTidalCorridor/scripts.inc +++ b/data/maps/SSTidalCorridor/scripts.inc @@ -3,7 +3,7 @@ SSTidalCorridor_MapScripts:: @ 823BFCF .byte 0 SSTidalCorridor_MapScript2_23BFD5: @ 823BFD5 - map_script_2 VAR_0x40D4, 0, SSTidalCorridor_EventScript_23C219 + map_script_2 VAR_SS_TIDAL_SCOTT_STATE, 0, SSTidalCorridor_EventScript_23C219 map_script_2 VAR_PORTHOLE_STATE, 1, SSTidalCorridor_EventScript_23BFFF map_script_2 VAR_PORTHOLE_STATE, 5, SSTidalCorridor_EventScript_23C015 map_script_2 VAR_PORTHOLE_STATE, 9, SSTidalCorridor_EventScript_23C067 @@ -216,7 +216,7 @@ SSTidalCorridor_EventScript_23C219:: @ 823C219 waitmovement 0 delay 30 setflag FLAG_MET_SCOTT_ON_SS_TIDAL - setvar VAR_0x40D4, 1 + setvar VAR_SS_TIDAL_SCOTT_STATE, 1 releaseall end diff --git a/data/maps/SkyPillar_1F/scripts.inc b/data/maps/SkyPillar_1F/scripts.inc index b1ec3b74a..18ec43ad6 100644 --- a/data/maps/SkyPillar_1F/scripts.inc +++ b/data/maps/SkyPillar_1F/scripts.inc @@ -3,7 +3,7 @@ SkyPillar_1F_MapScripts:: @ 8239615 .byte 0 SkyPillar_1F_MapScript1_23961B: @ 823961B - compare VAR_0x40CA, 2 + compare VAR_SKY_PILLAR_STATE, 2 call_if_lt SkyPillar_1F_EventScript_239627 end diff --git a/data/maps/SkyPillar_2F/scripts.inc b/data/maps/SkyPillar_2F/scripts.inc index 8c1424fd9..9059bd246 100644 --- a/data/maps/SkyPillar_2F/scripts.inc +++ b/data/maps/SkyPillar_2F/scripts.inc @@ -5,7 +5,7 @@ SkyPillar_2F_MapScripts:: @ 823962B .byte 0 SkyPillar_2F_MapScript1_23963B: @ 823963B - compare VAR_0x40CA, 2 + compare VAR_SKY_PILLAR_STATE, 2 call_if_lt SkyPillar_2F_EventScript_23964C copyvar VAR_ICE_STEP_COUNT, 0x1 end diff --git a/data/maps/SkyPillar_3F/scripts.inc b/data/maps/SkyPillar_3F/scripts.inc index 9bc7eda27..ba6a5128d 100644 --- a/data/maps/SkyPillar_3F/scripts.inc +++ b/data/maps/SkyPillar_3F/scripts.inc @@ -3,7 +3,7 @@ SkyPillar_3F_MapScripts:: @ 823965B .byte 0 SkyPillar_3F_MapScript1_239661: @ 8239661 - compare VAR_0x40CA, 2 + compare VAR_SKY_PILLAR_STATE, 2 call_if_lt SkyPillar_3F_EventScript_23966D end diff --git a/data/maps/SkyPillar_4F/scripts.inc b/data/maps/SkyPillar_4F/scripts.inc index 254d61a59..355530fdc 100644 --- a/data/maps/SkyPillar_4F/scripts.inc +++ b/data/maps/SkyPillar_4F/scripts.inc @@ -5,7 +5,7 @@ SkyPillar_4F_MapScripts:: @ 8239671 .byte 0 SkyPillar_4F_MapScript1_239681: @ 8239681 - compare VAR_0x40CA, 2 + compare VAR_SKY_PILLAR_STATE, 2 call_if_lt SkyPillar_4F_EventScript_239692 copyvar VAR_ICE_STEP_COUNT, 0x1 end diff --git a/data/maps/SkyPillar_5F/scripts.inc b/data/maps/SkyPillar_5F/scripts.inc index af5a5ffe1..ba35e16f2 100644 --- a/data/maps/SkyPillar_5F/scripts.inc +++ b/data/maps/SkyPillar_5F/scripts.inc @@ -3,7 +3,7 @@ SkyPillar_5F_MapScripts:: @ 82396A2 .byte 0 SkyPillar_5F_MapScript1_2396A8: @ 82396A8 - compare VAR_0x40CA, 2 + compare VAR_SKY_PILLAR_STATE, 2 call_if_lt SkyPillar_5F_EventScript_2396B4 return diff --git a/data/maps/SkyPillar_Top/scripts.inc b/data/maps/SkyPillar_Top/scripts.inc index df2b2118e..5a69001a1 100644 --- a/data/maps/SkyPillar_Top/scripts.inc +++ b/data/maps/SkyPillar_Top/scripts.inc @@ -16,9 +16,9 @@ SkyPillar_Top_EventScript_2396D2:: @ 82396D2 return SkyPillar_Top_MapScript1_2396E6: @ 82396E6 - compare VAR_0x40CA, 2 + compare VAR_SKY_PILLAR_STATE, 2 call_if_lt SkyPillar_Top_EventScript_2396FD - compare VAR_0x40CA, 2 + compare VAR_SKY_PILLAR_STATE, 2 call_if_ge SkyPillar_Top_EventScript_239705 end @@ -36,7 +36,7 @@ SkyPillar_Top_EventScript_23970F:: @ 823970F return SkyPillar_Top_MapScript2_239713: @ 8239713 - map_script_2 VAR_0x40CA, 0, SkyPillar_Top_EventScript_23971D + map_script_2 VAR_SKY_PILLAR_STATE, 0, SkyPillar_Top_EventScript_23971D .2byte 0 SkyPillar_Top_EventScript_23971D:: @ 823971D @@ -131,7 +131,7 @@ SkyPillar_Top_EventScript_23979A:: @ 823979A waitmovement 0 special RemoveCameraObject setvar VAR_RAYQUAZA_STATE, 5 - setvar VAR_0x40CA, 1 + setvar VAR_SKY_PILLAR_STATE, 1 setvar VAR_0x40D7, 1 releaseall end diff --git a/data/maps/SlateportCity/map.json b/data/maps/SlateportCity/map.json index 126519096..f548b7349 100644 --- a/data/maps/SlateportCity/map.json +++ b/data/maps/SlateportCity/map.json @@ -571,7 +571,7 @@ "x": 10, "y": 13, "elevation": 3, - "var": "VAR_0x40D2", + "var": "VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE", "var_value": "2", "script": "SlateportCity_EventScript_1DD5DC" } diff --git a/data/maps/SlateportCity/scripts.inc b/data/maps/SlateportCity/scripts.inc index 9f4310c4a..acf66d2bd 100644 --- a/data/maps/SlateportCity/scripts.inc +++ b/data/maps/SlateportCity/scripts.inc @@ -8,7 +8,7 @@ SlateportCity_MapScript1_1DCC6C: @ 81DCC6C call SlateportCity_EventScript_1DCC8D compare VAR_SLATEPORT_STATE, 1 call_if_eq SlateportCity_EventScript_1DCC99 - compare VAR_0x40D2, 1 + compare VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE, 1 call_if_eq SlateportCity_EventScript_1DCCE7 end @@ -50,7 +50,7 @@ SlateportCity_EventScript_1DCD06:: @ 81DCD06 return SlateportCity_MapScript2_1DCD12: @ 81DCD12 - map_script_2 VAR_0x40D2, 1, SlateportCity_EventScript_1DCD1C + map_script_2 VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE, 1, SlateportCity_EventScript_1DCD1C .2byte 0 SlateportCity_EventScript_1DCD1C:: @ 81DCD1C @@ -84,8 +84,8 @@ SlateportCity_EventScript_1DCD1C:: @ 81DCD1C setobjectxyperm 35, 10, 12 setobjectmovementtype 35, MOVEMENT_TYPE_FACE_DOWN clearflag FLAG_SPECIAL_FLAG_0x4000 - setvar VAR_0x40D2, 2 - addvar VAR_0x40D1, 1 + setvar VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE, 2 + addvar VAR_SCOTT_STATE, 1 releaseall end @@ -901,8 +901,8 @@ SlateportCity_EventScript_1DD5DC:: @ 81DD5DC applymovement 35, SlateportCity_Movement_1DD63A waitmovement 0 removeobject 35 - addvar VAR_0x40D1, 1 - setvar VAR_0x40D2, 3 + addvar VAR_SCOTT_STATE, 1 + setvar VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE, 3 releaseall end diff --git a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc index 641c4dd86..96ae96685 100644 --- a/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc +++ b/data/maps/SlateportCity_OceanicMuseum_2F/scripts.inc @@ -86,7 +86,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_20BB00:: @ 820BB00 setflag FLAG_DELIVERED_DEVON_GOODS clearflag FLAG_HIDE_ROUTE_116_DEVON_EMPLOYEE setflag FLAG_HIDE_RUSTBORO_CITY_DEVON_CORP_3F_EMPLOYEE - setvar VAR_0x40D2, 1 + setvar VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE, 1 fadescreen 0 release end diff --git a/data/maps/SootopolisCity/scripts.inc b/data/maps/SootopolisCity/scripts.inc index cad6d7db8..9b5524a36 100644 --- a/data/maps/SootopolisCity/scripts.inc +++ b/data/maps/SootopolisCity/scripts.inc @@ -35,7 +35,7 @@ SootopolisCity_MapScript1_1E56EF: @ 81E56EF setflag FLAG_VISITED_SOOTOPOLIS_CITY compare VAR_RAYQUAZA_STATE, 1 call_if_eq SootopolisCity_EventScript_1E5781 - compare VAR_0x40CA, 1 + compare VAR_SKY_PILLAR_STATE, 1 call_if_eq SootopolisCity_EventScript_1E5781 call SootopolisCity_EventScript_1E5805 call SootopolisCity_EventScript_1E57B2 @@ -89,7 +89,7 @@ SootopolisCity_EventScript_1E57B2:: @ 81E57B2 goto_if_eq SootopolisCity_EventScript_1E5801 compare VAR_RAYQUAZA_STATE, 4 goto_if_eq SootopolisCity_EventScript_1E5801 - compare VAR_0x40CA, 1 + compare VAR_SKY_PILLAR_STATE, 1 goto_if_le SootopolisCity_EventScript_1E5801 return @@ -107,9 +107,9 @@ SootopolisCity_EventScript_1E5805:: @ 81E5805 goto_if_ge SootopolisCity_EventScript_1E583D compare VAR_RAYQUAZA_STATE, 1 goto_if_eq SootopolisCity_EventScript_1E583E - compare VAR_0x40CA, 1 + compare VAR_SKY_PILLAR_STATE, 1 goto_if_eq SootopolisCity_EventScript_1E583E - compare VAR_0x40CA, 1 + compare VAR_SKY_PILLAR_STATE, 1 goto_if_le Common_EventScript_SetWeather15 return @@ -172,9 +172,9 @@ SootopolisCity_MapScript2_1E58DB: @ 81E58DB .2byte 0 SootopolisCity_EventScript_1E58E5:: @ 81E58E5 - compare VAR_0x40CA, 1 + compare VAR_SKY_PILLAR_STATE, 1 call_if_eq SootopolisCity_EventScript_1E58FC - compare VAR_0x40CA, 2 + compare VAR_SKY_PILLAR_STATE, 2 call_if_eq SootopolisCity_EventScript_1E5901 end @@ -184,7 +184,7 @@ SootopolisCity_EventScript_1E58FC:: @ 81E58FC SootopolisCity_EventScript_1E5901:: @ 81E5901 turnobject EVENT_OBJ_ID_PLAYER, 2 - setvar VAR_0x40CA, 3 + setvar VAR_SKY_PILLAR_STATE, 3 return SootopolisCity_MapScript1_1E590B: @ 81E590B @@ -193,7 +193,7 @@ SootopolisCity_MapScript1_1E590B: @ 81E590B SootopolisCity_MapScript2_1E5914: @ 81E5914 map_script_2 VAR_RAYQUAZA_STATE, 1, SootopolisCity_EventScript_1E5926 - map_script_2 VAR_0x40CA, 1, SootopolisCity_EventScript_1E5BFE + map_script_2 VAR_SKY_PILLAR_STATE, 1, SootopolisCity_EventScript_1E5BFE .2byte 0 SootopolisCity_EventScript_1E5926:: @ 81E5926 @@ -540,7 +540,7 @@ SootopolisCity_EventScript_1E5C1E:: @ 81E5C1E special WaitWeather waitstate clearflag FLAG_SYS_WEATHER_CTRL - setvar VAR_0x40CA, 3 + setvar VAR_SKY_PILLAR_STATE, 3 clearflag FLAG_LEGENDARIES_IN_SOOTOPOLIS fadenewbgm MUS_RUNECITY delay 120 @@ -593,7 +593,7 @@ SootopolisCity_EventScript_1E5CCE:: @ 81E5CCE special WaitWeather waitstate clearflag FLAG_SYS_WEATHER_CTRL - setvar VAR_0x40CA, 2 + setvar VAR_SKY_PILLAR_STATE, 2 clearflag FLAG_LEGENDARIES_IN_SOOTOPOLIS fadenewbgm MUS_NAMINORI delay 120 diff --git a/data/maps/SootopolisCity_Mart/scripts.inc b/data/maps/SootopolisCity_Mart/scripts.inc index 4a152bcf0..fe0270d62 100644 --- a/data/maps/SootopolisCity_Mart/scripts.inc +++ b/data/maps/SootopolisCity_Mart/scripts.inc @@ -28,7 +28,7 @@ SootopolisCity_Mart_Pokemart_2267AC: @ 82267AC SootopolisCity_Mart_EventScript_2267C2:: @ 82267C2 lock faceplayer - compare VAR_0x40CA, 2 + compare VAR_SKY_PILLAR_STATE, 2 goto_if_ge SootopolisCity_Mart_EventScript_2267E2 goto_if_unset FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, SootopolisCity_Mart_EventScript_2267E2 msgbox SootopolisCity_Mart_Text_22685D, MSGBOX_DEFAULT @@ -43,7 +43,7 @@ SootopolisCity_Mart_EventScript_2267E2:: @ 82267E2 SootopolisCity_Mart_EventScript_2267EC:: @ 82267EC lock faceplayer - compare VAR_0x40CA, 2 + compare VAR_SKY_PILLAR_STATE, 2 goto_if_ge SootopolisCity_Mart_EventScript_22680C goto_if_unset FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, SootopolisCity_Mart_EventScript_22680C msgbox SootopolisCity_Mart_Text_226928, MSGBOX_DEFAULT diff --git a/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc b/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc index 96f766f7b..97cb2d4d7 100644 --- a/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/SootopolisCity_PokemonCenter_1F/scripts.inc @@ -18,7 +18,7 @@ SootopolisCity_PokemonCenter_1F_EventScript_226500:: @ 8226500 SootopolisCity_PokemonCenter_1F_EventScript_22650E:: @ 822650E lock faceplayer - compare VAR_0x40CA, 2 + compare VAR_SKY_PILLAR_STATE, 2 goto_if_ge SootopolisCity_PokemonCenter_1F_EventScript_22652E goto_if_unset FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, SootopolisCity_PokemonCenter_1F_EventScript_22652E msgbox SootopolisCity_PokemonCenter_1F_Text_22664B, MSGBOX_DEFAULT @@ -33,7 +33,7 @@ SootopolisCity_PokemonCenter_1F_EventScript_22652E:: @ 822652E SootopolisCity_PokemonCenter_1F_EventScript_226538:: @ 8226538 lock faceplayer - compare VAR_0x40CA, 2 + compare VAR_SKY_PILLAR_STATE, 2 goto_if_ge SootopolisCity_PokemonCenter_1F_EventScript_226558 goto_if_unset FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, SootopolisCity_PokemonCenter_1F_EventScript_226558 msgbox SootopolisCity_PokemonCenter_1F_Text_22672F, MSGBOX_DEFAULT diff --git a/data/maps/SouthernIsland_Interior/scripts.inc b/data/maps/SouthernIsland_Interior/scripts.inc index a24bc772f..958c5f546 100644 --- a/data/maps/SouthernIsland_Interior/scripts.inc +++ b/data/maps/SouthernIsland_Interior/scripts.inc @@ -15,9 +15,9 @@ SouthernIsland_Interior_EventScript_242A5A:: @ 8242A5A return SouthernIsland_Interior_MapScript1_242A6E: @ 8242A6E - compare VAR_0x40D5, 0 + compare VAR_ROAMER_POKEMON, 0 call_if_eq SouthernIsland_Interior_EventScript_242A8A - compare VAR_0x40D5, 0 + compare VAR_ROAMER_POKEMON, 0 call_if_ne SouthernIsland_Interior_EventScript_242A95 call SouthernIsland_Interior_EventScript_242AA0 end @@ -77,9 +77,9 @@ SouthernIsland_Interior_EventScript_242AD0:: @ 8242AD0 delay 50 special RemoveCameraObject setvar VAR_LAST_TALKED, 2 - compare VAR_0x40D5, 0 + compare VAR_ROAMER_POKEMON, 0 call_if_eq SouthernIsland_Interior_EventScript_242BA4 - compare VAR_0x40D5, 0 + compare VAR_ROAMER_POKEMON, 0 call_if_ne SouthernIsland_Interior_EventScript_242BB7 setflag FLAG_SYS_CTRL_OBJ_DELETE special BattleSetup_StartLatiBattle diff --git a/data/maps/TrainerHill_Entrance/scripts.inc b/data/maps/TrainerHill_Entrance/scripts.inc index 5339f49e3..a37a23395 100644 --- a/data/maps/TrainerHill_Entrance/scripts.inc +++ b/data/maps/TrainerHill_Entrance/scripts.inc @@ -91,6 +91,7 @@ TrainerHill_Entrance_EventScript_2681CA:: @ 82681CA lockall applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Entrance_Movement_26837F msgbox TrainerHill_Entrance_Text_268712, MSGBOX_DEFAULT + @ No "end" command; intentional fall-through to TrainerHill_Entrance_EventScript_2681DA. TrainerHill_Entrance_EventScript_2681DA:: @ 82681DA closemessage diff --git a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc index f6bb194a3..daaaaea1b 100644 --- a/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc +++ b/data/maps/VerdanturfTown_BattleTentLobby/scripts.inc @@ -307,7 +307,7 @@ VerdanturfTown_BattleTentLobby_EventScript_201AD0:: @ 8201AD0 faceplayer goto_if_set FLAG_MET_SCOTT_IN_VERDANTURF, VerdanturfTown_BattleTentLobby_EventScript_201AED msgbox VerdanturfTown_BattleTentLobby_Text_201F3F, MSGBOX_DEFAULT - addvar VAR_0x40D1, 1 + addvar VAR_SCOTT_STATE, 1 setflag FLAG_MET_SCOTT_IN_VERDANTURF release end diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index 7293cdad3..9cf435ade 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -197,7 +197,7 @@ RustboroCity_PokemonCenter_2F_MapScript2_276C3B: @ 8276C3B SlateportCity_PokemonCenter_2F_MapScript2_276C3B: @ 8276C3B SootopolisCity_PokemonCenter_2F_MapScript2_276C3B: @ 8276C3B VerdanturfTown_PokemonCenter_2F_MapScript2_276C3B: @ 8276C3B - map_script_2 VAR_0x40CD, 1, OldaleTown_PokemonCenter_2F_EventScript_276DE0 + map_script_2 VAR_CABLE_CLUB_TUTORIAL_STATE, 1, OldaleTown_PokemonCenter_2F_EventScript_276DE0 map_script_2 VAR_CABLE_CLUB_STATE, 1, OldaleTown_PokemonCenter_2F_EventScript_276C85 map_script_2 VAR_CABLE_CLUB_STATE, 2, OldaleTown_PokemonCenter_2F_EventScript_276C85 map_script_2 VAR_CABLE_CLUB_STATE, 5, OldaleTown_PokemonCenter_2F_EventScript_276C85 @@ -336,7 +336,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276DE0:: @ 8276DE0 waitmovement 0 delay 30 msgbox OldaleTown_PokemonCenter_2F_Text_279718, MSGBOX_DEFAULT - setvar VAR_0x40CD, 2 + setvar VAR_CABLE_CLUB_TUTORIAL_STATE, 2 releaseall end diff --git a/data/scripts/players_house.inc b/data/scripts/players_house.inc index 306157561..c4a5ffe86 100644 --- a/data/scripts/players_house.inc +++ b/data/scripts/players_house.inc @@ -510,7 +510,7 @@ LittlerootTown_MaysHouse_1F_EventScript_292AF2:: @ 8292AF2 multichoice 22, 8, 108, 1 copyvar VAR_0x8004, VAR_RESULT special InitRoamer - copyvar VAR_0x40D5, VAR_RESULT + copyvar VAR_ROAMER_POKEMON, VAR_RESULT msgbox LittlerootTown_BrendansHouse_1F_Text_1F83A1, MSGBOX_DEFAULT closemessage setvar VAR_LITTLEROOT_HOUSES_STATE, 4 @@ -518,6 +518,7 @@ LittlerootTown_MaysHouse_1F_EventScript_292AF2:: @ 8292AF2 releaseall end +@ Never called. LittlerootTown_BrendansHouse_1F_EventScript_292C72:: @ 8292C72 setflag FLAG_SYS_TV_LATIAS_LATIOS return diff --git a/data/scripts/tv.inc b/data/scripts/tv.inc index acc75f76a..9f197515d 100644 --- a/data/scripts/tv.inc +++ b/data/scripts/tv.inc @@ -42,6 +42,9 @@ EventScript_27EE9A:: @ 827EE9A EventScript_27EEA4:: @ 827EEA4 msgbox LittlerootTown_BrendansHouse_1F_Text_1F826F, MSGBOX_DEFAULT + @ This is a junk call. Its input var (VAR_0x8004) hasn't been set, and + @ It's called again when Mom actually asks for the color, overwriting + @ whatever it does here. special InitRoamer clearflag FLAG_SYS_TV_LATIAS_LATIOS setflag FLAG_LATIOS_OR_LATIAS_ROAMING diff --git a/include/constants/vars.h b/include/constants/vars.h index 1aacf8b75..199f714b1 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -216,20 +216,20 @@ #define VAR_WHICH_FOSSIL_REVIVED 0x40C5 #define VAR_STEVENS_HOUSE_STATE 0x40C6 #define VAR_OLDALE_STATE 0x40C7 -#define VAR_0x40C8 0x40C8 +#define VAR_JAGGED_PASS_STATE 0x40C8 #define VAR_0x40C9 0x40C9 -#define VAR_0x40CA 0x40CA -#define VAR_0x40CB 0x40CB -#define VAR_0x40CC 0x40CC -#define VAR_0x40CD 0x40CD +#define VAR_SKY_PILLAR_STATE 0x40CA +#define VAR_ROUTE_111_STATE 0x40CB +#define VAR_FOSSIL_MANIAC_STATE 0x40CC +#define VAR_CABLE_CLUB_TUTORIAL_STATE 0x40CD #define VAR_FRONTIER_BATTLE_MODE 0x40CE #define VAR_FRONTIER_FACILITY 0x40CF -#define VAR_0x40D0 0x40D0 -#define VAR_0x40D1 0x40D1 -#define VAR_0x40D2 0x40D2 +#define VAR_HAS_ENTERED_BATTLE_FRONTIER 0x40D0 // Var is used like a flag. +#define VAR_SCOTT_STATE 0x40D1 +#define VAR_SLATEPORT_OUTSIDE_MUSEUM_STATE 0x40D2 #define VAR_0x40D3 0x40D3 -#define VAR_0x40D4 0x40D4 -#define VAR_0x40D5 0x40D5 +#define VAR_SS_TIDAL_SCOTT_STATE 0x40D4 // Always equal to FLAG_MET_SCOTT_ON_SS_TIDAL +#define VAR_ROAMER_POKEMON 0x40D5 // 0 = Latias, 1 = Latios #define VAR_0x40D6 0x40D6 #define VAR_0x40D7 0x40D7 #define VAR_0x40D8 0x40D8 diff --git a/src/mirage_tower.c b/src/mirage_tower.c index a8dd5d9de..4f5834db1 100644 --- a/src/mirage_tower.c +++ b/src/mirage_tower.c @@ -317,7 +317,7 @@ void SetMirageTowerVisibility(void) u16 rand; bool8 visible; - if (VarGet(VAR_0x40CB)) + if (VarGet(VAR_ROUTE_111_STATE)) { FlagClear(FLAG_MIRAGE_TOWER_VISIBLE); return; diff --git a/src/overworld.c b/src/overworld.c index 8ca10a33b..6055c74bb 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -1034,7 +1034,7 @@ static bool16 ShouldLegendaryMusicPlayAtLocation(struct WarpData *warp) static bool16 NoMusicInSotopolisWithLegendaries(struct WarpData *warp) { - if (VarGet(VAR_0x40CA) != 1) + if (VarGet(VAR_SKY_PILLAR_STATE) != 1) return FALSE; else if (warp->mapGroup != MAP_GROUP(SOOTOPOLIS_CITY)) return FALSE; @@ -1212,7 +1212,7 @@ void TryFadeOutOldMapMusic(void) if (FlagGet(FLAG_SPECIAL_FLAG_0x4001) != TRUE && warpMusic != GetCurrentMapMusic()) { if (currentMusic == MUS_NAMINORI - && VarGet(VAR_0x40CA) == 2 + && VarGet(VAR_SKY_PILLAR_STATE) == 2 && gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SOOTOPOLIS_CITY) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SOOTOPOLIS_CITY) && sWarpDestination.mapGroup == MAP_GROUP(SOOTOPOLIS_CITY) -- cgit v1.2.3 From 66f0616a2d3fd3a8e09aabf9e3ee51cd88ae474f Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 27 Feb 2019 21:28:34 -0500 Subject: I guess I'm documenting Trainer Hill now --- data/event_scripts.s | 15 ++++----- data/map_events.s | 1 + data/maps.s | 2 +- data/maps/TrainerHill_Entrance/scripts.inc | 25 +++++++-------- data/maps/TrainerHill_Roof/scripts.inc | 8 ++--- include/constants/trainer_hill.h | 23 ++++++++++++++ include/global.h | 4 +-- include/main.h | 4 +-- include/trainer_hill.h | 2 +- src/load_save.c | 2 +- src/main.c | 14 ++++----- src/save.c | 6 ++-- src/trainer_hill.c | 50 +++++++++++++++--------------- 13 files changed, 90 insertions(+), 66 deletions(-) create mode 100644 include/constants/trainer_hill.h diff --git a/data/event_scripts.s b/data/event_scripts.s index 8cbb3fd2e..2744824ec 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -16,6 +16,7 @@ #include "constants/trainers.h" #include "constants/vars.h" #include "constants/weather.h" +#include "constants/trainer_hill.h" .include "asm/macros.inc" .include "asm/macros/event.inc" .include "constants/constants.inc" @@ -2758,7 +2759,7 @@ EventScript_2736F8:: @ 82736F8 goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_252B42 compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_252B42 - setvar VAR_0x8004, 10 + setvar VAR_0x8004, TRAINER_HILL_FUNC_10 special CallTrainerHillFunction compare VAR_RESULT, 1 goto_if_eq TrainerHill_1F_EventScript_2C83C9 @@ -6925,7 +6926,7 @@ TrainerHill_3F_MapScript1_2C8336: @ 82C8336 TrainerHill_4F_MapScript1_2C8336: @ 82C8336 TrainerHill_Roof_MapScript1_2C8336: @ 82C8336 setvar VAR_TEMP_2, 0 - setvar VAR_0x8004, 4 + setvar VAR_0x8004, TRAINER_HILL_FUNC_4 special CallTrainerHillFunction setvar VAR_0x8004, 1 setvar VAR_0x8005, 5 @@ -6958,7 +6959,7 @@ TrainerHill_Roof_MapScript2_2C8381: @ 82C8381 EventScript_TrainerHillTimer:: @ 82C8393 lockall - setvar VAR_0x8004, 7 + setvar VAR_0x8004, TRAINER_HILL_FUNC_7 special CallTrainerHillFunction msgbox TrainerHill_Entrance_Text_268D47, MSGBOX_DEFAULT releaseall @@ -6966,7 +6967,7 @@ EventScript_TrainerHillTimer:: @ 82C8393 TrainerHill_1F_EventScript_2C83A6:: @ 82C83A6 setvar VAR_TEMP_2, 1 - setvar VAR_0x8004, 9 + setvar VAR_0x8004, TRAINER_HILL_FUNC_9 special CallTrainerHillFunction compare VAR_RESULT, 1 goto_if_eq TrainerHill_1F_EventScript_2C83BF @@ -6978,9 +6979,9 @@ TrainerHill_1F_EventScript_2C83BF:: @ 82C83BF end TrainerHill_1F_EventScript_2C83C9:: @ 82C83C9 - setvar VAR_0x8004, 12 + setvar VAR_0x8004, TRAINER_HILL_FUNC_12 special CallTrainerHillFunction - setvar VAR_0x8004, 5 + setvar VAR_0x8004, TRAINER_HILL_FUNC_5 special CallTrainerHillFunction setvar VAR_TEMP_1, 1 end @@ -6998,7 +6999,7 @@ TrainerHill_1F_Movement_2C83EE:: @ 82C83EE EventScript_2C83F0:: @ 82C83F0 trainerbattle TRAINER_BATTLE_12, TRAINER_PHILLIP, 0, BattleFacility_TrainerBattle_PlaceholderText, BattleFacility_TrainerBattle_PlaceholderText - setvar VAR_0x8004, 11 + setvar VAR_0x8004, TRAINER_HILL_FUNC_11 special CallTrainerHillFunction waitmessage waitbuttonpress diff --git a/data/map_events.s b/data/map_events.s index cd42bfe75..ceaa72837 100644 --- a/data/map_events.s +++ b/data/map_events.s @@ -8,6 +8,7 @@ #include "constants/secret_bases.h" #include "constants/vars.h" #include "constants/weather.h" +#include "constants/trainer_hill.h" .include "asm/macros.inc" .include "constants/constants.inc" diff --git a/data/maps.s b/data/maps.s index 3334fd103..beb28ddec 100644 --- a/data/maps.s +++ b/data/maps.s @@ -4,7 +4,7 @@ #include "constants/weather.h" #include "constants/region_map_sections.h" #include "constants/songs.h" -#include "constants/weather.h" +#include "constants/trainer_hill.h" .include "asm/macros.inc" .include "constants/constants.inc" diff --git a/data/maps/TrainerHill_Entrance/scripts.inc b/data/maps/TrainerHill_Entrance/scripts.inc index a37a23395..a07c4069a 100644 --- a/data/maps/TrainerHill_Entrance/scripts.inc +++ b/data/maps/TrainerHill_Entrance/scripts.inc @@ -15,10 +15,10 @@ TrainerHill_Entrance_MapScript1_2680CF: @ 82680CF end TrainerHill_Entrance_MapScript1_2680D0: @ 82680D0 - setvar VAR_0x8004, 4 + setvar VAR_0x8004, TRAINER_HILL_FUNC_4 special CallTrainerHillFunction setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, 9 + setvar VAR_0x8004, TRAINER_HILL_FUNC_9 special CallTrainerHillFunction compare VAR_RESULT, 0 goto_if_eq TrainerHill_Entrance_EventScript_2680FF @@ -27,7 +27,7 @@ TrainerHill_Entrance_MapScript1_2680D0: @ 82680D0 end TrainerHill_Entrance_EventScript_2680FF:: @ 82680FF - setvar VAR_0x8004, 16 + setvar VAR_0x8004, TRAINER_HILL_FUNC_16 special CallTrainerHillFunction compare VAR_RESULT, 1 goto_if_eq TrainerHill_Entrance_EventScript_26811A @@ -74,7 +74,7 @@ TrainerHill_Entrance_EventScript_268160:: @ 8268160 TrainerHill_Entrance_EventScript_268182:: @ 8268182 setvar VAR_TEMP_0, 1 - setvar VAR_0x8004, 6 + setvar VAR_0x8004, TRAINER_HILL_FUNC_6 special CallTrainerHillFunction switch VAR_RESULT case 0, TrainerHill_Entrance_EventScript_2681B5 @@ -91,7 +91,6 @@ TrainerHill_Entrance_EventScript_2681CA:: @ 82681CA lockall applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Entrance_Movement_26837F msgbox TrainerHill_Entrance_Text_268712, MSGBOX_DEFAULT - @ No "end" command; intentional fall-through to TrainerHill_Entrance_EventScript_2681DA. TrainerHill_Entrance_EventScript_2681DA:: @ 82681DA closemessage @@ -115,7 +114,7 @@ TrainerHill_Entrance_EventScript_2681EF:: @ 82681EF TrainerHill_Entrance_EventScript_2681FD:: @ 82681FD lock faceplayer - setvar VAR_0x8004, 10 + setvar VAR_0x8004, TRAINER_HILL_FUNC_10 special CallTrainerHillFunction compare VAR_RESULT, 0 goto_if_eq TrainerHill_Entrance_EventScript_26821F @@ -134,11 +133,11 @@ TrainerHill_Entrance_EventScript_268229:: @ 8268229 applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Entrance_Movement_26837F goto_if_unset FLAG_SYS_GAME_CLEAR, TrainerHill_Entrance_EventScript_26836A msgbox TrainerHill_Entrance_Text_2684C6, MSGBOX_DEFAULT - setvar VAR_0x8004, 13 + setvar VAR_0x8004, TRAINER_HILL_FUNC_13 special CallTrainerHillFunction compare VAR_RESULT, 0 call_if_eq TrainerHill_Entrance_EventScript_26832E - setvar VAR_0x8004, 8 + setvar VAR_0x8004, TRAINER_HILL_FUNC_8 special CallTrainerHillFunction compare VAR_RESULT, 1 goto_if_eq TrainerHill_Entrance_EventScript_268275 @@ -169,14 +168,14 @@ TrainerHill_Entrance_EventScript_2682C8:: @ 82682C8 switch VAR_RESULT case 4, TrainerHill_Entrance_EventScript_268314 case 127, TrainerHill_Entrance_EventScript_268314 - setvar VAR_0x8004, 17 + setvar VAR_0x8004, TRAINER_HILL_FUNC_17 copyvar VAR_0x8005, VAR_RESULT special CallTrainerHillFunction setvar VAR_0x40D6, 1 setvar VAR_TEMP_5, 0 special HealPlayerParty msgbox TrainerHill_Entrance_Text_26862A, MSGBOX_DEFAULT - setvar VAR_0x8004, 0 + setvar VAR_0x8004, TRAINER_HILL_FUNC_0 special CallTrainerHillFunction releaseall end @@ -192,18 +191,18 @@ TrainerHill_Entrance_EventScript_268314:: @ 8268314 TrainerHill_Entrance_EventScript_26832E:: @ 826832E msgbox TrainerHill_Entrance_Text_26851C, MSGBOX_DEFAULT - setvar VAR_0x8004, 14 + setvar VAR_0x8004, TRAINER_HILL_FUNC_14 special CallTrainerHillFunction setvar VAR_TEMP_5, 1 call Common_EventScript_SaveGame compare VAR_RESULT, 0 goto_if_eq TrainerHill_Entrance_EventScript_26835C - setvar VAR_0x8004, 14 + setvar VAR_0x8004, TRAINER_HILL_FUNC_14 special CallTrainerHillFunction return TrainerHill_Entrance_EventScript_26835C:: @ 826835C - setvar VAR_0x8004, 15 + setvar VAR_0x8004, TRAINER_HILL_FUNC_15 special CallTrainerHillFunction goto TrainerHill_Entrance_EventScript_268314 end diff --git a/data/maps/TrainerHill_Roof/scripts.inc b/data/maps/TrainerHill_Roof/scripts.inc index fc1ca200f..bf467e100 100644 --- a/data/maps/TrainerHill_Roof/scripts.inc +++ b/data/maps/TrainerHill_Roof/scripts.inc @@ -4,11 +4,11 @@ TrainerHill_Roof_MapScripts:: @ 8268FA7 .byte 0 TrainerHill_Roof_EventScript_268FB2:: @ 8268FB2 - setvar VAR_0x8004, 12 + setvar VAR_0x8004, TRAINER_HILL_FUNC_12 special CallTrainerHillFunction lock faceplayer - setvar VAR_0x8004, 1 + setvar VAR_0x8004, TRAINER_HILL_FUNC_1 special CallTrainerHillFunction switch VAR_RESULT case 0, TrainerHill_Roof_EventScript_268FEA @@ -19,7 +19,7 @@ TrainerHill_Roof_EventScript_268FEA:: @ 8268FEA msgbox TrainerHill_Roof_Text_268986, MSGBOX_DEFAULT TrainerHill_Roof_EventScript_268FF2:: @ 8268FF2 - setvar VAR_0x8004, 2 + setvar VAR_0x8004, TRAINER_HILL_FUNC_2 special CallTrainerHillFunction switch VAR_RESULT case 0, TrainerHill_Roof_EventScript_269020 @@ -41,7 +41,7 @@ TrainerHill_Roof_EventScript_269037:: @ 8269037 goto TrainerHill_Roof_EventScript_269054 TrainerHill_Roof_EventScript_269054:: @ 8269054 - setvar VAR_0x8004, 3 + setvar VAR_0x8004, TRAINER_HILL_FUNC_3 special CallTrainerHillFunction switch VAR_RESULT case 0, TrainerHill_Roof_EventScript_269082 diff --git a/include/constants/trainer_hill.h b/include/constants/trainer_hill.h new file mode 100644 index 000000000..01bbd44a5 --- /dev/null +++ b/include/constants/trainer_hill.h @@ -0,0 +1,23 @@ +#ifndef GUARD_CONSTANTS_TRAINER_HILL_H +#define GUARD_CONSTANTS_TRAINER_HILL_H + +#define TRAINER_HILL_FUNC_0 0 +#define TRAINER_HILL_FUNC_1 1 +#define TRAINER_HILL_FUNC_2 2 +#define TRAINER_HILL_FUNC_3 3 +#define TRAINER_HILL_FUNC_4 4 +#define TRAINER_HILL_FUNC_5 5 +#define TRAINER_HILL_FUNC_6 6 +#define TRAINER_HILL_FUNC_7 7 +#define TRAINER_HILL_FUNC_8 8 +#define TRAINER_HILL_FUNC_9 9 +#define TRAINER_HILL_FUNC_10 10 +#define TRAINER_HILL_FUNC_11 11 +#define TRAINER_HILL_FUNC_12 12 +#define TRAINER_HILL_FUNC_13 13 +#define TRAINER_HILL_FUNC_14 14 +#define TRAINER_HILL_FUNC_15 15 +#define TRAINER_HILL_FUNC_16 16 +#define TRAINER_HILL_FUNC_17 17 + +#endif \ No newline at end of file diff --git a/include/global.h b/include/global.h index ee0ba6893..16f67339b 100644 --- a/include/global.h +++ b/include/global.h @@ -795,14 +795,14 @@ struct TrainerNameRecord struct SaveTrainerHill { - /*0x3D64*/ u32 field_3D64; + /*0x3D64*/ u32 timer; /*0x3D68*/ u32 field_3D68; /*0x3D6C*/ u8 field_3D6C; /*0x3D6D*/ u8 unused; /*0x3D6E*/ u16 field_3D6E_0a:1; // 1 /*0x3D6E*/ u16 field_3D6E_0b:1; // 2 /*0x3D6E*/ u16 field_3D6E_0c:1; // 4 - /*0x3D6E*/ u16 field_3D6E_0d:1; // 8 + /*0x3D6E*/ u16 hasLost:1; // 8 /*0x3D6E*/ u16 field_3D6E_0e:1; // x10 /*0x3D6E*/ u16 field_3D6E_0f:1; // x20 /*0x3D6E*/ u16 tag:2; // x40, x80 = xC0 diff --git a/include/main.h b/include/main.h index 728064288..014b4942e 100644 --- a/include/main.h +++ b/include/main.h @@ -61,8 +61,8 @@ void SetHBlankCallback(IntrCallback callback); void SetVCountCallback(IntrCallback callback); void SetSerialCallback(IntrCallback callback); void InitFlashTimer(void); -void sub_80008DC(u32 *var); -void sub_80008E8(void); +void SetVBlankCounterPointer(u32 *var); +void ClearVBlankCounterPointer(void); void DoSoftReset(void); void ClearPokemonCrySongs(void); void RestoreSerialTimer3IntrHandlers(void); diff --git a/include/trainer_hill.h b/include/trainer_hill.h index bbc4f45c5..35b0c5d6d 100644 --- a/include/trainer_hill.h +++ b/include/trainer_hill.h @@ -1,7 +1,7 @@ #ifndef GUARD_TRAINER_HILL_H #define GUARD_TRAINER_HILL_H -extern u32 *gUnknown_0203CF5C; +extern u32 *gVBlankCounterPointer; void CallTrainerHillFunction(void); void ResetTrainerHillResults(void); diff --git a/src/load_save.c b/src/load_save.c index 0d19c6dae..d71e72802 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -99,7 +99,7 @@ void MoveSaveBlocks_ResetHeap(void) hblankCB = gMain.hblankCallback; gMain.vblankCallback = NULL; gMain.hblankCallback = NULL; - gUnknown_0203CF5C = NULL; + gVBlankCounterPointer = NULL; saveBlock2Copy = (struct SaveBlock2 *)(gHeap); saveBlock1Copy = (struct SaveBlock1 *)(gHeap + sizeof(struct SaveBlock2)); diff --git a/src/main.c b/src/main.c index 61c5e3386..3e282775d 100644 --- a/src/main.c +++ b/src/main.c @@ -163,7 +163,7 @@ static void UpdateLinkAndCallCallbacks(void) static void InitMainCallbacks(void) { gMain.vblankCounter1 = 0; - gUnknown_0203CF5C = NULL; + gVBlankCounterPointer = NULL; gMain.vblankCounter2 = 0; gMain.callback1 = NULL; SetMainCallback2(CB2_InitCopyrightScreenAfterBootup); @@ -324,8 +324,8 @@ static void VBlankIntr(void) gMain.vblankCounter1++; - if (gUnknown_0203CF5C && *gUnknown_0203CF5C < 0xFFFFFFFF) - (*gUnknown_0203CF5C)++; + if (gVBlankCounterPointer && *gVBlankCounterPointer < 0xFFFFFFFF) + (*gVBlankCounterPointer)++; if (gMain.vblankCallback) gMain.vblankCallback(); @@ -393,14 +393,14 @@ static void WaitForVBlank(void) ; } -void sub_80008DC(u32 *var) +void SetVBlankCounterPointer(u32 *var) { - gUnknown_0203CF5C = var; + gVBlankCounterPointer = var; } -void sub_80008E8(void) +void ClearVBlankCounterPointer(void) { - gUnknown_0203CF5C = NULL; + gVBlankCounterPointer = NULL; } void DoSoftReset(void) diff --git a/src/save.c b/src/save.c index a22e20f0b..593ee8f2c 100644 --- a/src/save.c +++ b/src/save.c @@ -659,10 +659,10 @@ static void UpdateSaveAddresses(void) u8 HandleSavingData(u8 saveType) { u8 i; - u32 *backupVar = gUnknown_0203CF5C; + u32 *backupVar = gVBlankCounterPointer; u8 *tempAddr; - gUnknown_0203CF5C = NULL; + gVBlankCounterPointer = NULL; UpdateSaveAddresses(); switch (saveType) { @@ -705,7 +705,7 @@ u8 HandleSavingData(u8 saveType) save_write_to_flash(0xFFFF, gRamSaveSectionLocations); break; } - gUnknown_0203CF5C = backupVar; + gVBlankCounterPointer = backupVar; return 0; } diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 42b196abd..60f67c91d 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -92,15 +92,15 @@ struct TrHillStruct2 // EWRAM static EWRAM_DATA struct TrHillStruct2 *sHillData = NULL; static EWRAM_DATA struct TrHillRoomTrainers *sRoomTrainers = NULL; -EWRAM_DATA u32 *gUnknown_0203CF5C = NULL; +EWRAM_DATA u32 *gVBlankCounterPointer = NULL; // This file's functions. -static void sub_81D581C(void); +static void TrainerHillStartChallenge(void); static void sub_81D58D8(void); static void sub_81D5924(void); static void sub_81D59D0(void); -static void sub_81D5A70(void); -static void sub_81D5AB4(void); +static void TrainerHillResumeTimer(void); +static void TrainerHillSetPlayerLost(void); static void sub_81D5AD0(void); static void sub_81D5B2C(void); static void sub_81D5BBC(void); @@ -263,12 +263,12 @@ static const u8 *const sFloorStrings[] = static void (* const sHillFunctions[])(void) = { - sub_81D581C, + TrainerHillStartChallenge, sub_81D58D8, sub_81D5924, sub_81D59D0, - sub_81D5A70, - sub_81D5AB4, + TrainerHillResumeTimer, + TrainerHillSetPlayerLost, sub_81D5AD0, sub_81D5B2C, sub_81D5BBC, @@ -371,7 +371,7 @@ void InitTrainerHillBattleStruct(void) } sRoomTrainers->facilityClass[i] = sHillData->tag.floors[sHillData->floorId].trainers[i].facilityClass; } - sub_80008DC(&gSaveBlock1Ptr->trainerHill.field_3D64); + SetVBlankCounterPointer(&gSaveBlock1Ptr->trainerHill.timer); FreeDataStruct(); } @@ -425,7 +425,7 @@ void CopyTrainerHillTrainerText(u8 which, u16 trainerId) FreeDataStruct(); } -static void sub_81D581C(void) +static void TrainerHillStartChallenge(void) { nullsub_2(); if (!sub_81D3B34()) @@ -434,8 +434,8 @@ static void sub_81D581C(void) gSaveBlock1Ptr->trainerHill.field_3D6E_0f = 0; gSaveBlock1Ptr->trainerHill.field_3D6C = 0; - sub_80008DC(&gSaveBlock1Ptr->trainerHill.field_3D64); - gSaveBlock1Ptr->trainerHill.field_3D64 = 0; + SetVBlankCounterPointer(&gSaveBlock1Ptr->trainerHill.timer); + gSaveBlock1Ptr->trainerHill.timer = 0; gSaveBlock1Ptr->trainerHill.field_3D6E_0c = 0; gSaveBlock1Ptr->trainerHill.field_3D6E_0b = 0; gSaveBlock1Ptr->trainerHill.field_3D6E_0e = 0; @@ -446,7 +446,7 @@ static void sub_81D581C(void) static void sub_81D58D8(void) { - sub_80008E8(); + ClearVBlankCounterPointer(); gSpecialVar_Result = 0; if (gSaveBlock1Ptr->trainerHill.field_3D6E_0c) gSpecialVar_Result++; @@ -483,9 +483,9 @@ static void sub_81D59D0(void) { gSpecialVar_Result = 2; } - else if (GetTimerValue(&gSaveBlock1Ptr->trainerHill.field_3D68) > gSaveBlock1Ptr->trainerHill.field_3D64) + else if (GetTimerValue(&gSaveBlock1Ptr->trainerHill.field_3D68) > gSaveBlock1Ptr->trainerHill.timer) { - SetTimerValue(&gSaveBlock1Ptr->trainerHill.field_3D68, gSaveBlock1Ptr->trainerHill.field_3D64); + SetTimerValue(&gSaveBlock1Ptr->trainerHill.field_3D68, gSaveBlock1Ptr->trainerHill.timer); gSaveBlock1Ptr->trainerHillTimes[gSaveBlock1Ptr->trainerHill.tag] = gSaveBlock1Ptr->trainerHill.field_3D68; gSpecialVar_Result = 0; } @@ -497,27 +497,27 @@ static void sub_81D59D0(void) gSaveBlock1Ptr->trainerHill.field_3D6E_0b = 1; } -static void sub_81D5A70(void) +static void TrainerHillResumeTimer(void) { if (!gSaveBlock1Ptr->trainerHill.field_3D6E_0c) { - if (gSaveBlock1Ptr->trainerHill.field_3D64 >= HILL_MAX_TIME) - gSaveBlock1Ptr->trainerHill.field_3D64 = HILL_MAX_TIME; + if (gSaveBlock1Ptr->trainerHill.timer >= HILL_MAX_TIME) + gSaveBlock1Ptr->trainerHill.timer = HILL_MAX_TIME; else - sub_80008DC(&gSaveBlock1Ptr->trainerHill.field_3D64); + SetVBlankCounterPointer(&gSaveBlock1Ptr->trainerHill.timer); } } -static void sub_81D5AB4(void) +static void TrainerHillSetPlayerLost(void) { - gSaveBlock1Ptr->trainerHill.field_3D6E_0d = 1; + gSaveBlock1Ptr->trainerHill.hasLost = 1; } static void sub_81D5AD0(void) { - if (gSaveBlock1Ptr->trainerHill.field_3D6E_0d) + if (gSaveBlock1Ptr->trainerHill.hasLost) { - gSaveBlock1Ptr->trainerHill.field_3D6E_0d = 0; + gSaveBlock1Ptr->trainerHill.hasLost = 0; gSpecialVar_Result = 0; } else if (gSaveBlock1Ptr->trainerHill.field_3D6E_0e) @@ -535,7 +535,7 @@ static void sub_81D5B2C(void) { s32 total, minutes, secondsWhole, secondsFraction; - total = gSaveBlock1Ptr->trainerHill.field_3D64; + total = gSaveBlock1Ptr->trainerHill.timer; if (total >= HILL_MAX_TIME) total = HILL_MAX_TIME; @@ -1048,7 +1048,7 @@ bool32 sub_81D6534(void) static void sub_81D6568(void) { - if (gSaveBlock1Ptr->trainerHill.field_3D6E_0d) + if (gSaveBlock1Ptr->trainerHill.hasLost) gSpecialVar_Result = 0; else gSpecialVar_Result = 1; @@ -1103,7 +1103,7 @@ static u16 sub_81D6640(void) i = (i + 1) % 10; ptr = gUnknown_0862A5CC[var2][i]; - minutes = (signed)(gSaveBlock1Ptr->trainerHill.field_3D64) / (60 * 60); + minutes = (signed)(gSaveBlock1Ptr->trainerHill.timer) / (60 * 60); if (minutes < 12) id = 0; else if (minutes < 13) -- cgit v1.2.3 From 782979f1fc37c358a5c675a1c42afae9b0027805 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 27 Feb 2019 22:16:01 -0500 Subject: Finish documenting trainer hill Trainer hill isn't anywhere close to done, but I figured out enough to name the VAR. That's all this PR should do. --- data/event_scripts.s | 11 ++++---- data/maps/Route111/scripts.inc | 2 +- data/maps/TrainerHill_Entrance/map.json | 2 +- data/maps/TrainerHill_Entrance/scripts.inc | 18 +++++++------- include/constants/trainer_hill.h | 16 ++++++++---- include/constants/vars.h | 2 +- include/global.h | 4 +-- src/trainer_hill.c | 40 ++++++++++++++++-------------- 8 files changed, 53 insertions(+), 42 deletions(-) diff --git a/data/event_scripts.s b/data/event_scripts.s index 2744824ec..364aae31c 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -17,6 +17,7 @@ #include "constants/vars.h" #include "constants/weather.h" #include "constants/trainer_hill.h" +#include "constants/battle.h" .include "asm/macros.inc" .include "asm/macros/event.inc" .include "constants/constants.inc" @@ -6926,16 +6927,16 @@ TrainerHill_3F_MapScript1_2C8336: @ 82C8336 TrainerHill_4F_MapScript1_2C8336: @ 82C8336 TrainerHill_Roof_MapScript1_2C8336: @ 82C8336 setvar VAR_TEMP_2, 0 - setvar VAR_0x8004, TRAINER_HILL_FUNC_4 + setvar VAR_0x8004, TRAINER_HILL_FUNC_RESUME_TIMER special CallTrainerHillFunction setvar VAR_0x8004, 1 setvar VAR_0x8005, 5 special CallFrontierUtilFunc - compare VAR_RESULT, 2 + compare VAR_RESULT, B_OUTCOME_LOST goto_if_eq TrainerHill_1F_EventScript_2C83C9 - compare VAR_RESULT, 3 + compare VAR_RESULT, B_OUTCOME_DREW goto_if_eq TrainerHill_1F_EventScript_2C83C9 - compare VAR_RESULT, 9 + compare VAR_RESULT, B_OUTCOME_FORFEITED goto_if_eq TrainerHill_1F_EventScript_2C83C9 end @@ -6981,7 +6982,7 @@ TrainerHill_1F_EventScript_2C83BF:: @ 82C83BF TrainerHill_1F_EventScript_2C83C9:: @ 82C83C9 setvar VAR_0x8004, TRAINER_HILL_FUNC_12 special CallTrainerHillFunction - setvar VAR_0x8004, TRAINER_HILL_FUNC_5 + setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_LOST special CallTrainerHillFunction setvar VAR_TEMP_1, 1 end diff --git a/data/maps/Route111/scripts.inc b/data/maps/Route111/scripts.inc index 4c8fce8b6..3755ee5e4 100644 --- a/data/maps/Route111/scripts.inc +++ b/data/maps/Route111/scripts.inc @@ -38,7 +38,7 @@ Route111_EventScript_1F0CE4:: @ 81F0CE4 return Route111_MapScript1_1F0D87: @ 81F0D87 - setvar VAR_0x40D6, 0 + setvar VAR_TRAINER_HILL_IS_ACTIVE, 0 special SetMirageTowerVisibility call_if_unset FLAG_MIRAGE_TOWER_VISIBLE, Route111_EventScript_1F0E3C compare VAR_ROUTE_111_STATE, 1 diff --git a/data/maps/TrainerHill_Entrance/map.json b/data/maps/TrainerHill_Entrance/map.json index 4b12b1c80..42f1daa9d 100644 --- a/data/maps/TrainerHill_Entrance/map.json +++ b/data/maps/TrainerHill_Entrance/map.json @@ -109,7 +109,7 @@ "x": 9, "y": 6, "elevation": 3, - "var": "VAR_0x40D6", + "var": "VAR_TRAINER_HILL_IS_ACTIVE", "var_value": "0", "script": "TrainerHill_Entrance_EventScript_268229" } diff --git a/data/maps/TrainerHill_Entrance/scripts.inc b/data/maps/TrainerHill_Entrance/scripts.inc index a07c4069a..63e067a9a 100644 --- a/data/maps/TrainerHill_Entrance/scripts.inc +++ b/data/maps/TrainerHill_Entrance/scripts.inc @@ -15,7 +15,7 @@ TrainerHill_Entrance_MapScript1_2680CF: @ 82680CF end TrainerHill_Entrance_MapScript1_2680D0: @ 82680D0 - setvar VAR_0x8004, TRAINER_HILL_FUNC_4 + setvar VAR_0x8004, TRAINER_HILL_FUNC_RESUME_TIMER special CallTrainerHillFunction setvar VAR_TEMP_0, 0 setvar VAR_0x8004, TRAINER_HILL_FUNC_9 @@ -74,12 +74,12 @@ TrainerHill_Entrance_EventScript_268160:: @ 8268160 TrainerHill_Entrance_EventScript_268182:: @ 8268182 setvar VAR_TEMP_0, 1 - setvar VAR_0x8004, TRAINER_HILL_FUNC_6 + setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS special CallTrainerHillFunction switch VAR_RESULT - case 0, TrainerHill_Entrance_EventScript_2681B5 - case 1, TrainerHill_Entrance_EventScript_2681CA - case 2, TrainerHill_Entrance_EventScript_2681EE + case TRAINER_HILL_PLAYER_STATUS_LOST, TrainerHill_Entrance_EventScript_2681B5 + case TRAINER_HILL_PLAYER_STATUS_ECARD_SCANNED, TrainerHill_Entrance_EventScript_2681CA + case TRAINER_HILL_PLAYER_STATUS_NORMAL, TrainerHill_Entrance_EventScript_2681EE TrainerHill_Entrance_EventScript_2681B5:: @ 82681B5 lockall @@ -96,7 +96,7 @@ TrainerHill_Entrance_EventScript_2681DA:: @ 82681DA closemessage applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Entrance_Movement_268381 waitmovement 0 - setvar VAR_0x40D6, 0 + setvar VAR_TRAINER_HILL_IS_ACTIVE, 0 special HealPlayerParty releaseall @@ -168,14 +168,14 @@ TrainerHill_Entrance_EventScript_2682C8:: @ 82682C8 switch VAR_RESULT case 4, TrainerHill_Entrance_EventScript_268314 case 127, TrainerHill_Entrance_EventScript_268314 - setvar VAR_0x8004, TRAINER_HILL_FUNC_17 + setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_TAG copyvar VAR_0x8005, VAR_RESULT special CallTrainerHillFunction - setvar VAR_0x40D6, 1 + setvar VAR_TRAINER_HILL_IS_ACTIVE, 1 setvar VAR_TEMP_5, 0 special HealPlayerParty msgbox TrainerHill_Entrance_Text_26862A, MSGBOX_DEFAULT - setvar VAR_0x8004, TRAINER_HILL_FUNC_0 + setvar VAR_0x8004, TRAINER_HILL_FUNC_START special CallTrainerHillFunction releaseall end diff --git a/include/constants/trainer_hill.h b/include/constants/trainer_hill.h index 01bbd44a5..e231a6043 100644 --- a/include/constants/trainer_hill.h +++ b/include/constants/trainer_hill.h @@ -1,13 +1,13 @@ #ifndef GUARD_CONSTANTS_TRAINER_HILL_H #define GUARD_CONSTANTS_TRAINER_HILL_H -#define TRAINER_HILL_FUNC_0 0 +#define TRAINER_HILL_FUNC_START 0 #define TRAINER_HILL_FUNC_1 1 #define TRAINER_HILL_FUNC_2 2 #define TRAINER_HILL_FUNC_3 3 -#define TRAINER_HILL_FUNC_4 4 -#define TRAINER_HILL_FUNC_5 5 -#define TRAINER_HILL_FUNC_6 6 +#define TRAINER_HILL_FUNC_RESUME_TIMER 4 +#define TRAINER_HILL_FUNC_SET_LOST 5 +#define TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS 6 #define TRAINER_HILL_FUNC_7 7 #define TRAINER_HILL_FUNC_8 8 #define TRAINER_HILL_FUNC_9 9 @@ -18,6 +18,12 @@ #define TRAINER_HILL_FUNC_14 14 #define TRAINER_HILL_FUNC_15 15 #define TRAINER_HILL_FUNC_16 16 -#define TRAINER_HILL_FUNC_17 17 +#define TRAINER_HILL_FUNC_SET_TAG 17 + +// Values returned by the TrainerHillGetChallengeStatus +// function. +#define TRAINER_HILL_PLAYER_STATUS_LOST 0 +#define TRAINER_HILL_PLAYER_STATUS_ECARD_SCANNED 1 +#define TRAINER_HILL_PLAYER_STATUS_NORMAL 2 #endif \ No newline at end of file diff --git a/include/constants/vars.h b/include/constants/vars.h index 199f714b1..59489f051 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -230,7 +230,7 @@ #define VAR_0x40D3 0x40D3 #define VAR_SS_TIDAL_SCOTT_STATE 0x40D4 // Always equal to FLAG_MET_SCOTT_ON_SS_TIDAL #define VAR_ROAMER_POKEMON 0x40D5 // 0 = Latias, 1 = Latios -#define VAR_0x40D6 0x40D6 +#define VAR_TRAINER_HILL_IS_ACTIVE 0x40D6 #define VAR_0x40D7 0x40D7 #define VAR_0x40D8 0x40D8 #define VAR_0x40D9 0x40D9 diff --git a/include/global.h b/include/global.h index 16f67339b..17e91862f 100644 --- a/include/global.h +++ b/include/global.h @@ -796,14 +796,14 @@ struct TrainerNameRecord struct SaveTrainerHill { /*0x3D64*/ u32 timer; - /*0x3D68*/ u32 field_3D68; + /*0x3D68*/ u32 bestTime; /*0x3D6C*/ u8 field_3D6C; /*0x3D6D*/ u8 unused; /*0x3D6E*/ u16 field_3D6E_0a:1; // 1 /*0x3D6E*/ u16 field_3D6E_0b:1; // 2 /*0x3D6E*/ u16 field_3D6E_0c:1; // 4 /*0x3D6E*/ u16 hasLost:1; // 8 - /*0x3D6E*/ u16 field_3D6E_0e:1; // x10 + /*0x3D6E*/ u16 maybeECardScanDuringChallenge:1; // x10 /*0x3D6E*/ u16 field_3D6E_0f:1; // x20 /*0x3D6E*/ u16 tag:2; // x40, x80 = xC0 }; diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 60f67c91d..ee7e2287a 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -30,6 +30,7 @@ #include "constants/species.h" #include "constants/trainers.h" #include "constants/easy_chat.h" +#include "constants/trainer_hill.h" extern bool32 sub_81D3B34(void); @@ -101,7 +102,7 @@ static void sub_81D5924(void); static void sub_81D59D0(void); static void TrainerHillResumeTimer(void); static void TrainerHillSetPlayerLost(void); -static void sub_81D5AD0(void); +static void TrainerHillGetChallengeStatus(void); static void sub_81D5B2C(void); static void sub_81D5BBC(void); static void sub_81D5C00(void); @@ -112,7 +113,7 @@ static void sub_81D64DC(void); static void sub_81D64FC(void); static void sub_81D6518(void); static void sub_81D6568(void); -static void sub_81D65A0(void); +static void TrainerHillSetTag(void); static void SetUpDataStruct(void); static void FreeDataStruct(void); static void nullsub_2(void); @@ -269,7 +270,7 @@ static void (* const sHillFunctions[])(void) = sub_81D59D0, TrainerHillResumeTimer, TrainerHillSetPlayerLost, - sub_81D5AD0, + TrainerHillGetChallengeStatus, sub_81D5B2C, sub_81D5BBC, sub_81D5C00, @@ -280,7 +281,7 @@ static void (* const sHillFunctions[])(void) = sub_81D64FC, sub_81D6518, sub_81D6568, - sub_81D65A0, + TrainerHillSetTag, }; static const u8 *const sTagMatchStrings[] = @@ -318,7 +319,7 @@ void ResetTrainerHillResults(void) gSaveBlock2Ptr->frontier.field_EF9_1 = 0; gSaveBlock2Ptr->frontier.field_EF9_0 = 0; - gSaveBlock1Ptr->trainerHill.field_3D68 = 0; + gSaveBlock1Ptr->trainerHill.bestTime = 0; for (i = 0; i < 4; i++) SetTimerValue(&gSaveBlock1Ptr->trainerHillTimes[i], HILL_MAX_TIME); } @@ -438,7 +439,7 @@ static void TrainerHillStartChallenge(void) gSaveBlock1Ptr->trainerHill.timer = 0; gSaveBlock1Ptr->trainerHill.field_3D6E_0c = 0; gSaveBlock1Ptr->trainerHill.field_3D6E_0b = 0; - gSaveBlock1Ptr->trainerHill.field_3D6E_0e = 0; + gSaveBlock1Ptr->trainerHill.maybeECardScanDuringChallenge = 0; gSaveBlock2Ptr->frontier.field_EE0 = 0; gBattleOutcome = 0; gSaveBlock1Ptr->trainerHill.field_3D6E_0a = 0; @@ -483,10 +484,10 @@ static void sub_81D59D0(void) { gSpecialVar_Result = 2; } - else if (GetTimerValue(&gSaveBlock1Ptr->trainerHill.field_3D68) > gSaveBlock1Ptr->trainerHill.timer) + else if (GetTimerValue(&gSaveBlock1Ptr->trainerHill.bestTime) > gSaveBlock1Ptr->trainerHill.timer) { - SetTimerValue(&gSaveBlock1Ptr->trainerHill.field_3D68, gSaveBlock1Ptr->trainerHill.timer); - gSaveBlock1Ptr->trainerHillTimes[gSaveBlock1Ptr->trainerHill.tag] = gSaveBlock1Ptr->trainerHill.field_3D68; + SetTimerValue(&gSaveBlock1Ptr->trainerHill.bestTime, gSaveBlock1Ptr->trainerHill.timer); + gSaveBlock1Ptr->trainerHillTimes[gSaveBlock1Ptr->trainerHill.tag] = gSaveBlock1Ptr->trainerHill.bestTime; gSpecialVar_Result = 0; } else @@ -513,21 +514,24 @@ static void TrainerHillSetPlayerLost(void) gSaveBlock1Ptr->trainerHill.hasLost = 1; } -static void sub_81D5AD0(void) +static void TrainerHillGetChallengeStatus(void) { if (gSaveBlock1Ptr->trainerHill.hasLost) { + // The player lost their last match. gSaveBlock1Ptr->trainerHill.hasLost = 0; - gSpecialVar_Result = 0; + gSpecialVar_Result = TRAINER_HILL_PLAYER_STATUS_LOST; } - else if (gSaveBlock1Ptr->trainerHill.field_3D6E_0e) + else if (gSaveBlock1Ptr->trainerHill.maybeECardScanDuringChallenge) { - gSaveBlock1Ptr->trainerHill.field_3D6E_0e = 0; - gSpecialVar_Result = 1; + // Unreachable code. Something relating to eCards? + gSaveBlock1Ptr->trainerHill.maybeECardScanDuringChallenge = 0; + gSpecialVar_Result = TRAINER_HILL_PLAYER_STATUS_ECARD_SCANNED; } else { - gSpecialVar_Result = 2; + // Continue playing. + gSpecialVar_Result = TRAINER_HILL_PLAYER_STATUS_NORMAL; } } @@ -575,7 +579,7 @@ static void sub_81D5C00(void) bool8 sub_81D5C18(void) { - if (VarGet(VAR_0x40D6) == 0) + if (VarGet(VAR_TRAINER_HILL_IS_ACTIVE) == 0) return FALSE; else if (gSaveBlock1Ptr->trainerHill.field_3D6E_0c) return FALSE; @@ -1054,10 +1058,10 @@ static void sub_81D6568(void) gSpecialVar_Result = 1; } -static void sub_81D65A0(void) +static void TrainerHillSetTag(void) { gSaveBlock1Ptr->trainerHill.tag = gSpecialVar_0x8005; - gSaveBlock1Ptr->trainerHill.field_3D68 = gSaveBlock1Ptr->trainerHillTimes[gSpecialVar_0x8005]; + gSaveBlock1Ptr->trainerHill.bestTime = gSaveBlock1Ptr->trainerHillTimes[gSpecialVar_0x8005]; } static u8 sub_81D65E8(u8 arg0) -- cgit v1.2.3 From bf45b83c65026a84425e3bc1f99e269653ed8c8b Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Wed, 27 Feb 2019 23:54:51 -0500 Subject: Finish documenting event vars --- data/event_scripts.s | 2 +- data/maps/DewfordTown_Gym/scripts.inc | 2 +- data/maps/FortreeCity_Gym/scripts.inc | 2 +- .../LittlerootTown_ProfessorBirchsLab/scripts.inc | 2 +- data/maps/MauvilleCity/scripts.inc | 2 +- data/maps/Route124/map.json | 2 +- data/maps/Route125/map.json | 2 +- data/maps/Route126/map.json | 2 +- data/maps/Route127/map.json | 2 +- data/maps/Route128/map.json | 2 +- data/maps/Route129/map.json | 2 +- data/maps/Route130/map.json | 2 +- data/maps/Route131/map.json | 2 +- data/maps/Route132/map.json | 2 +- data/maps/Route133/map.json | 2 +- data/maps/Route134/map.json | 2 +- data/maps/SeafloorCavern_Entrance/scripts.inc | 4 +- data/maps/SkyPillar_Top/map.json | 2 +- data/maps/SkyPillar_Top/scripts.inc | 2 +- data/maps/SootopolisCity/scripts.inc | 10 +- include/constants/map_types.h | 6 +- include/constants/vars.h | 28 ++-- include/event_data.h | 2 +- include/field_specials.h | 10 +- include/overworld.h | 2 +- src/battle_setup.c | 2 +- src/event_data.c | 8 +- src/field_control_avatar.c | 10 +- src/field_effect.c | 2 +- src/field_specials.c | 34 ++--- src/fldeff_misc.c | 10 +- src/item.c | 4 +- src/overworld.c | 12 +- src/region_map.c | 4 +- src/secret_base.c | 144 ++++++++++----------- src/time_events.c | 2 +- src/tv.c | 26 ++-- 37 files changed, 178 insertions(+), 178 deletions(-) diff --git a/data/event_scripts.s b/data/event_scripts.s index 364aae31c..d2828d5ea 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -48,7 +48,7 @@ gSpecialVars:: @ 81DBA0C .4byte gSpecialVar_ContestCategory .4byte gSpecialVar_MonBoxId .4byte gSpecialVar_MonBoxPos - .4byte gSpecialVar_0x8014 + .4byte gSpecialVar_Unused_0x8014 .4byte gTrainerBattleOpponent_A .include "data/specials.inc" diff --git a/data/maps/DewfordTown_Gym/scripts.inc b/data/maps/DewfordTown_Gym/scripts.inc index 3b39fc5d0..eb8183585 100644 --- a/data/maps/DewfordTown_Gym/scripts.inc +++ b/data/maps/DewfordTown_Gym/scripts.inc @@ -187,7 +187,7 @@ DewfordTown_Gym_EventScript_1FC7F7:: @ 81FC7F7 closemessage delay 30 setflag FLAG_ENABLE_BRAWLY_MATCH_CALL - setvar VAR_0x40F4, 0 + setvar VAR_ROXANNE_CALL_STEP_COUNTER, 0 setflag FLAG_ENABLE_ROXANNE_FIRST_CALL release end diff --git a/data/maps/FortreeCity_Gym/scripts.inc b/data/maps/FortreeCity_Gym/scripts.inc index 30cf8736a..8192e2039 100644 --- a/data/maps/FortreeCity_Gym/scripts.inc +++ b/data/maps/FortreeCity_Gym/scripts.inc @@ -43,7 +43,7 @@ FortreeCity_Gym_EventScript_2165FD:: @ 82165FD closemessage delay 30 setflag FLAG_ENABLE_WINONA_MATCH_CALL - setvar VAR_0x40F3, 0 + setvar VAR_WINONA_CALL_STEP_COUNTER, 0 setflag FLAG_REGISTER_WINONA_POKENAV release end diff --git a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc index 51ace147d..c02381982 100644 --- a/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc +++ b/data/maps/LittlerootTown_ProfessorBirchsLab/scripts.inc @@ -195,7 +195,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1F9E80:: @ 81F9E80 setflag FLAG_HIDE_LITTLEROOT_TOWN_BIRCH setflag FLAG_HIDE_LITTLEROOT_TOWN_RIVAL setvar VAR_0x40D3, 2 - setvar VAR_0x40F5, 0 + setvar VAR_SCOTT_CALL_STEP_COUNTER, 0 setflag FLAG_SCOTT_CALL_NATIONAL_DEX releaseall end diff --git a/data/maps/MauvilleCity/scripts.inc b/data/maps/MauvilleCity/scripts.inc index 62c2219ea..61839d108 100644 --- a/data/maps/MauvilleCity/scripts.inc +++ b/data/maps/MauvilleCity/scripts.inc @@ -158,7 +158,7 @@ MauvilleCity_EventScript_1DF593:: @ 81DF593 clearflag FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WALLY clearflag FLAG_HIDE_VERDANTURF_TOWN_WANDAS_HOUSE_WALLYS_UNCLE setflag FLAG_DEFEATED_WALLY_MAUVILLE - setvar VAR_0x40F2, 0 + setvar VAR_WALLY_CALL_STEP_COUNTER, 0 setflag FLAG_ENABLE_FIRST_WALLY_POKENAV_CALL compare VAR_FACING, 2 call_if_eq MauvilleCity_EventScript_1DF5F3 diff --git a/data/maps/Route124/map.json b/data/maps/Route124/map.json index 7169a0299..c1a22a2d0 100644 --- a/data/maps/Route124/map.json +++ b/data/maps/Route124/map.json @@ -6,7 +6,7 @@ "region_map_section": "MAPSEC_ROUTE_124", "requires_flash": false, "weather": "WEATHER_SUNNY", - "map_type": "MAP_TYPE_6", + "map_type": "MAP_TYPE_OCEAN_ROUTE", "allow_bike": true, "allow_escape_rope": false, "allow_running": true, diff --git a/data/maps/Route125/map.json b/data/maps/Route125/map.json index 8071cf244..0ce520fdd 100644 --- a/data/maps/Route125/map.json +++ b/data/maps/Route125/map.json @@ -6,7 +6,7 @@ "region_map_section": "MAPSEC_ROUTE_125", "requires_flash": false, "weather": "WEATHER_SUNNY", - "map_type": "MAP_TYPE_6", + "map_type": "MAP_TYPE_OCEAN_ROUTE", "allow_bike": true, "allow_escape_rope": false, "allow_running": true, diff --git a/data/maps/Route126/map.json b/data/maps/Route126/map.json index 1e886a083..ea63eb80d 100644 --- a/data/maps/Route126/map.json +++ b/data/maps/Route126/map.json @@ -6,7 +6,7 @@ "region_map_section": "MAPSEC_ROUTE_126", "requires_flash": false, "weather": "WEATHER_SUNNY", - "map_type": "MAP_TYPE_6", + "map_type": "MAP_TYPE_OCEAN_ROUTE", "allow_bike": true, "allow_escape_rope": false, "allow_running": true, diff --git a/data/maps/Route127/map.json b/data/maps/Route127/map.json index 1b30f7d55..e4a68c3e1 100644 --- a/data/maps/Route127/map.json +++ b/data/maps/Route127/map.json @@ -6,7 +6,7 @@ "region_map_section": "MAPSEC_ROUTE_127", "requires_flash": false, "weather": "WEATHER_SUNNY", - "map_type": "MAP_TYPE_6", + "map_type": "MAP_TYPE_OCEAN_ROUTE", "allow_bike": true, "allow_escape_rope": false, "allow_running": true, diff --git a/data/maps/Route128/map.json b/data/maps/Route128/map.json index 826290ff3..58246c247 100644 --- a/data/maps/Route128/map.json +++ b/data/maps/Route128/map.json @@ -6,7 +6,7 @@ "region_map_section": "MAPSEC_ROUTE_128", "requires_flash": false, "weather": "WEATHER_SUNNY", - "map_type": "MAP_TYPE_6", + "map_type": "MAP_TYPE_OCEAN_ROUTE", "allow_bike": true, "allow_escape_rope": false, "allow_running": true, diff --git a/data/maps/Route129/map.json b/data/maps/Route129/map.json index b3e45b227..3183f9821 100644 --- a/data/maps/Route129/map.json +++ b/data/maps/Route129/map.json @@ -6,7 +6,7 @@ "region_map_section": "MAPSEC_ROUTE_129", "requires_flash": false, "weather": "WEATHER_SUNNY", - "map_type": "MAP_TYPE_6", + "map_type": "MAP_TYPE_OCEAN_ROUTE", "allow_bike": true, "allow_escape_rope": false, "allow_running": true, diff --git a/data/maps/Route130/map.json b/data/maps/Route130/map.json index 0a68d442c..18d168b17 100644 --- a/data/maps/Route130/map.json +++ b/data/maps/Route130/map.json @@ -6,7 +6,7 @@ "region_map_section": "MAPSEC_ROUTE_130", "requires_flash": false, "weather": "WEATHER_SUNNY", - "map_type": "MAP_TYPE_6", + "map_type": "MAP_TYPE_OCEAN_ROUTE", "allow_bike": true, "allow_escape_rope": false, "allow_running": true, diff --git a/data/maps/Route131/map.json b/data/maps/Route131/map.json index 3a48042f9..379b15b3d 100644 --- a/data/maps/Route131/map.json +++ b/data/maps/Route131/map.json @@ -6,7 +6,7 @@ "region_map_section": "MAPSEC_ROUTE_131", "requires_flash": false, "weather": "WEATHER_SUNNY", - "map_type": "MAP_TYPE_6", + "map_type": "MAP_TYPE_OCEAN_ROUTE", "allow_bike": true, "allow_escape_rope": false, "allow_running": true, diff --git a/data/maps/Route132/map.json b/data/maps/Route132/map.json index ae04ff62d..15c0de83d 100644 --- a/data/maps/Route132/map.json +++ b/data/maps/Route132/map.json @@ -6,7 +6,7 @@ "region_map_section": "MAPSEC_ROUTE_132", "requires_flash": false, "weather": "WEATHER_SUNNY", - "map_type": "MAP_TYPE_6", + "map_type": "MAP_TYPE_OCEAN_ROUTE", "allow_bike": true, "allow_escape_rope": false, "allow_running": true, diff --git a/data/maps/Route133/map.json b/data/maps/Route133/map.json index 2a8941e12..eed30d7ee 100644 --- a/data/maps/Route133/map.json +++ b/data/maps/Route133/map.json @@ -6,7 +6,7 @@ "region_map_section": "MAPSEC_ROUTE_133", "requires_flash": false, "weather": "WEATHER_SUNNY", - "map_type": "MAP_TYPE_6", + "map_type": "MAP_TYPE_OCEAN_ROUTE", "allow_bike": true, "allow_escape_rope": false, "allow_running": true, diff --git a/data/maps/Route134/map.json b/data/maps/Route134/map.json index 1e9123efe..8b3a9518e 100644 --- a/data/maps/Route134/map.json +++ b/data/maps/Route134/map.json @@ -6,7 +6,7 @@ "region_map_section": "MAPSEC_ROUTE_134", "requires_flash": false, "weather": "WEATHER_SUNNY", - "map_type": "MAP_TYPE_6", + "map_type": "MAP_TYPE_OCEAN_ROUTE", "allow_bike": true, "allow_escape_rope": false, "allow_running": true, diff --git a/data/maps/SeafloorCavern_Entrance/scripts.inc b/data/maps/SeafloorCavern_Entrance/scripts.inc index 045c0e065..1bf570549 100644 --- a/data/maps/SeafloorCavern_Entrance/scripts.inc +++ b/data/maps/SeafloorCavern_Entrance/scripts.inc @@ -9,7 +9,7 @@ SeafloorCavern_Entrance_MapScript1_234474: @ 8234474 SeafloorCavern_Entrance_EventScript_234485:: @ 8234485 lockall - compare VAR_0x40D9, 1 + compare VAR_HAS_TALKED_TO_SEAFLOOR_CAVERN_ENTRANCE_GRUNT, 1 goto_if_eq SeafloorCavern_Entrance_EventScript_2344ED waitse playse SE_PIN @@ -25,7 +25,7 @@ SeafloorCavern_Entrance_EventScript_234485:: @ 8234485 compare VAR_FACING, 2 call_if_eq SeafloorCavern_Entrance_EventScript_234539 delay 30 - setvar VAR_0x40D9, 1 + setvar VAR_HAS_TALKED_TO_SEAFLOOR_CAVERN_ENTRANCE_GRUNT, 1 moveobjectoffscreen 1 msgbox SeafloorCavern_Entrance_Text_234544, MSGBOX_DEFAULT closemessage diff --git a/data/maps/SkyPillar_Top/map.json b/data/maps/SkyPillar_Top/map.json index 5cb6a1a69..2d1a6fa1a 100644 --- a/data/maps/SkyPillar_Top/map.json +++ b/data/maps/SkyPillar_Top/map.json @@ -56,7 +56,7 @@ "x": 14, "y": 9, "elevation": 3, - "var": "VAR_0x40D7", + "var": "VAR_SKY_PILLAR_RAQUAZA_CRY_DONE", "var_value": "0", "script": "SkyPillar_Top_EventScript_23979A" } diff --git a/data/maps/SkyPillar_Top/scripts.inc b/data/maps/SkyPillar_Top/scripts.inc index 5a69001a1..d08b0b554 100644 --- a/data/maps/SkyPillar_Top/scripts.inc +++ b/data/maps/SkyPillar_Top/scripts.inc @@ -132,7 +132,7 @@ SkyPillar_Top_EventScript_23979A:: @ 823979A special RemoveCameraObject setvar VAR_RAYQUAZA_STATE, 5 setvar VAR_SKY_PILLAR_STATE, 1 - setvar VAR_0x40D7, 1 + setvar VAR_SKY_PILLAR_RAQUAZA_CRY_DONE, 1 releaseall end diff --git a/data/maps/SootopolisCity/scripts.inc b/data/maps/SootopolisCity/scripts.inc index 9b5524a36..dbfe923f0 100644 --- a/data/maps/SootopolisCity/scripts.inc +++ b/data/maps/SootopolisCity/scripts.inc @@ -140,11 +140,11 @@ SootopolisCity_EventScript_1E5871:: @ 81E5871 setobjectxyperm 7, 29, 33 setobjectxyperm 16, 33, 35 setobjectxyperm 17, 34, 35 - compare VAR_0x40D8, 0 + compare VAR_SOOTOPOLIS_STATE, 0 call_if_eq SootopolisCity_EventScript_1E58AF - compare VAR_0x40D8, 1 + compare VAR_SOOTOPOLIS_STATE, 1 call_if_eq SootopolisCity_EventScript_1E58BB - compare VAR_0x40D8, 2 + compare VAR_SOOTOPOLIS_STATE, 2 call_if_eq SootopolisCity_EventScript_1E58C7 return @@ -1367,14 +1367,14 @@ SootopolisCity_EventScript_1E64B2:: @ 81E64B2 applymovement 18, SootopolisCity_Movement_1E64EC waitmovement 0 moveobjectoffscreen 18 - setvar VAR_0x40D8, 1 + setvar VAR_SOOTOPOLIS_STATE, 1 return SootopolisCity_EventScript_1E64C5:: @ 81E64C5 applymovement 18, SootopolisCity_Movement_1E64EF waitmovement 0 moveobjectoffscreen 18 - setvar VAR_0x40D8, 2 + setvar VAR_SOOTOPOLIS_STATE, 2 return SootopolisCity_EventScript_1E64D8:: @ 81E64D8 diff --git a/include/constants/map_types.h b/include/constants/map_types.h index 504575859..8d071fd41 100755 --- a/include/constants/map_types.h +++ b/include/constants/map_types.h @@ -1,14 +1,14 @@ #ifndef GUARD_CONSTANTS_MAP_TYPES_H #define GUARD_CONSTANTS_MAP_TYPES_H -#define MAP_TYPE_0 0 +#define MAP_TYPE_UNUSED_1 0 #define MAP_TYPE_TOWN 1 #define MAP_TYPE_CITY 2 #define MAP_TYPE_ROUTE 3 #define MAP_TYPE_UNDERGROUND 4 #define MAP_TYPE_UNDERWATER 5 -#define MAP_TYPE_6 6 -#define MAP_TYPE_7 7 +#define MAP_TYPE_OCEAN_ROUTE 6 +#define MAP_TYPE_UNUSED_2 7 #define MAP_TYPE_INDOOR 8 #define MAP_TYPE_SECRET_BASE 9 diff --git a/include/constants/vars.h b/include/constants/vars.h index 59489f051..99d1813da 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -231,9 +231,9 @@ #define VAR_SS_TIDAL_SCOTT_STATE 0x40D4 // Always equal to FLAG_MET_SCOTT_ON_SS_TIDAL #define VAR_ROAMER_POKEMON 0x40D5 // 0 = Latias, 1 = Latios #define VAR_TRAINER_HILL_IS_ACTIVE 0x40D6 -#define VAR_0x40D7 0x40D7 -#define VAR_0x40D8 0x40D8 -#define VAR_0x40D9 0x40D9 +#define VAR_SKY_PILLAR_RAQUAZA_CRY_DONE 0x40D7 +#define VAR_SOOTOPOLIS_STATE 0x40D8 +#define VAR_HAS_TALKED_TO_SEAFLOOR_CAVERN_ENTRANCE_GRUNT 0x40D9 #define VAR_0x40DA 0x40DA #define VAR_UNUSED_0x40DB 0x40DB // Unused Var #define VAR_UNUSED_0x40DC 0x40DC // Unused Var @@ -252,17 +252,17 @@ #define VAR_DAILY_PLANTED_BERRIES 0x40E9 #define VAR_DAILY_PICKED_BERRIES 0x40EA #define VAR_DAILY_ROULETTE 0x40EB -#define VAR_0x40EC 0x40EC -#define VAR_0x40ED 0x40ED -#define VAR_0x40EE 0x40EE -#define VAR_0x40EF 0x40EF -#define VAR_0x40F0 0x40F0 +#define VAR_SECRET_BASE_STEP_COUNTER 0x40EC // Used by Secret Base TV programs +#define VAR_SECRET_BASE_LAST_ITEM_USED 0x40ED // Used by Secret Base TV programs +#define VAR_SECRET_BASE_LOW_TV_FLAGS 0x40EE // Used by Secret Base TV programs +#define VAR_SECRET_BASE_HIGH_TV_FLAGS 0x40EF // Used by Secret Base TV programs +#define VAR_SECRET_BASE_IS_NOT_LOCAL 0x40F0 // Set to TRUE while in another player's secret base. #define VAR_DAILY_BP 0x40F1 -#define VAR_0x40F2 0x40F2 -#define VAR_0x40F3 0x40F3 -#define VAR_0x40F4 0x40F4 -#define VAR_0x40F5 0x40F5 -#define VAR_0x40F6 0x40F6 +#define VAR_WALLY_CALL_STEP_COUNTER 0x40F2 +#define VAR_WINONA_CALL_STEP_COUNTER 0x40F3 +#define VAR_ROXANNE_CALL_STEP_COUNTER 0x40F4 +#define VAR_SCOTT_CALL_STEP_COUNTER 0x40F5 +#define VAR_RIVAL_RAYQUAZA_CALL_STEP_COUNTER 0x40F6 #define VAR_UNUSED_0x40F7 0x40F7 // Unused Var #define VAR_UNUSED_0x40F8 0x40F8 // Unused Var #define VAR_UNUSED_0x40F9 0x40F9 // Unused Var @@ -296,7 +296,7 @@ #define VAR_CONTEST_CATEGORY 0x8011 #define VAR_MON_BOX_ID 0x8012 #define VAR_MON_BOX_POS 0x8013 -#define VAR_0x8014 0x8014 +#define VAR_UNUSED_0x8014 0x8014 #define VAR_NEVER_READ_0x8015 0x8015 // Written to, but never read #endif // GUARD_CONSTANTS_VARS_H diff --git a/include/event_data.h b/include/event_data.h index 3b8e2701f..11289c1ab 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -47,6 +47,6 @@ extern u16 gSpecialVar_LastTalked; extern u16 gSpecialVar_Facing; extern u16 gSpecialVar_MonBoxId; extern u16 gSpecialVar_MonBoxPos; -extern u16 gSpecialVar_0x8014; +extern u16 gSpecialVar_Unused_0x8014; #endif // GUARD_EVENT_DATA_H diff --git a/include/field_specials.h b/include/field_specials.h index 1ab2b7eb4..28e47fead 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -9,11 +9,11 @@ void sub_813BF10(void); void IncrementBirthIslandRockStepCount(void); bool8 UnusualWeatherHasExpired(void); bool8 ShouldDoBrailleRegicePuzzle(void); -bool32 is_tile_that_overrides_player_control(void); -bool32 sub_8138120(void); -bool32 sub_8138168(void); -bool32 sub_81381B0(void); -bool32 sub_81381F8(void); +bool32 ShouldDoWallyCall(void); +bool32 ShouldDoWinonaCall(void); +bool32 ShouldDoScottCall(void); +bool32 ShouldDoRoxanneCall(void); +bool32 ShouldDoRivalRayquazaCall(void); bool32 CountSSTidalStep(u16 delta); u8 GetSSTidalLocation(s8 *mapGroup, s8 *mapNum, s16 *x, s16 *y); void sub_813A128(void); diff --git a/include/overworld.h b/include/overworld.h index 8caba0673..54715ecc0 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -96,7 +96,7 @@ u8 GetMapTypeByGroupAndId(s8 mapGroup, s8 mapNum); u8 GetMapTypeByWarpData(struct WarpData *warp); u8 GetCurrentMapType(void); u8 GetLastUsedWarpMapType(void); -bool8 is_map_type_1_2_3_5_or_6(u8 mapType); +bool8 IsMapTypeOutside(u8 mapType); bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType); bool8 Overworld_MapTypeIsIndoors(u8 mapType); u8 GetSavedWarpRegionMapSectionId(void); diff --git a/src/battle_setup.c b/src/battle_setup.c index 7626420e9..40423697e 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -641,7 +641,7 @@ u8 BattleSetup_GetTerrainId(void) return BATTLE_TERRAIN_BUILDING; case MAP_TYPE_UNDERWATER: return BATTLE_TERRAIN_UNDERWATER; - case MAP_TYPE_6: + case MAP_TYPE_OCEAN_ROUTE: if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior)) return BATTLE_TERRAIN_WATER; return BATTLE_TERRAIN_PLAIN; diff --git a/src/event_data.c b/src/event_data.c index 5ca288e7b..50628f984 100644 --- a/src/event_data.c +++ b/src/event_data.c @@ -23,8 +23,8 @@ EWRAM_DATA u16 gSpecialVar_LastTalked = 0; EWRAM_DATA u16 gSpecialVar_Facing = 0; EWRAM_DATA u16 gSpecialVar_MonBoxId = 0; EWRAM_DATA u16 gSpecialVar_MonBoxPos = 0; -EWRAM_DATA u16 gSpecialVar_0x8014 = 0; -EWRAM_DATA static u8 gUnknown_020375FC[16] = {0}; +EWRAM_DATA u16 gSpecialVar_Unused_0x8014 = 0; +EWRAM_DATA static u8 gSpecialFlags[16] = {0}; extern u16 *const gSpecialVars[]; @@ -32,7 +32,7 @@ void InitEventData(void) { memset(gSaveBlock1Ptr->flags, 0, sizeof(gSaveBlock1Ptr->flags)); memset(gSaveBlock1Ptr->vars, 0, sizeof(gSaveBlock1Ptr->vars)); - memset(gUnknown_020375FC, 0, sizeof(gUnknown_020375FC)); + memset(gSpecialFlags, 0, sizeof(gSpecialFlags)); } void ClearTempFieldEventData(void) @@ -199,7 +199,7 @@ u8 *GetFlagPointer(u16 id) else if (id < SPECIAL_FLAGS_START) return &gSaveBlock1Ptr->flags[id / 8]; else - return &gUnknown_020375FC[(id - SPECIAL_FLAGS_START) / 8]; + return &gSpecialFlags[(id - SPECIAL_FLAGS_START) / 8]; } u8 FlagSet(u16 id) diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 7bb2b257d..8a7076591 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -567,27 +567,27 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior) ScriptContext1_SetupScript(IslandCave_EventScript_238EAF); return TRUE; } - if (is_tile_that_overrides_player_control() == TRUE) + if (ShouldDoWallyCall() == TRUE) { ScriptContext1_SetupScript(MauvilleCity_EventScript_1DF7BA); return TRUE; } - if (sub_8138120() == TRUE) + if (ShouldDoWinonaCall() == TRUE) { ScriptContext1_SetupScript(Route119_EventScript_1F49EC); return TRUE; } - if (sub_8138168() == TRUE) + if (ShouldDoScottCall() == TRUE) { ScriptContext1_SetupScript(LittlerootTown_ProfessorBirchsLab_EventScript_1FA4D6); return TRUE; } - if (sub_81381B0() == TRUE) + if (ShouldDoRoxanneCall() == TRUE) { ScriptContext1_SetupScript(RustboroCity_Gym_EventScript_21307B); return TRUE; } - if (sub_81381F8() == TRUE) + if (ShouldDoRivalRayquazaCall() == TRUE) { ScriptContext1_SetupScript(MossdeepCity_SpaceCenter_2F_EventScript_224175); return TRUE; diff --git a/src/field_effect.c b/src/field_effect.c index e7c0b39b9..74f7801bd 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -2443,7 +2443,7 @@ static void sub_80B8410(struct Task *task) bool8 FldEff_FieldMoveShowMon(void) { u8 taskId; - if (is_map_type_1_2_3_5_or_6(GetCurrentMapType()) == TRUE) + if (IsMapTypeOutside(GetCurrentMapType()) == TRUE) { taskId = CreateTask(sub_80B8554, 0xff); } else diff --git a/src/field_specials.c b/src/field_specials.c index a07e987eb..e603c3ebf 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -360,17 +360,17 @@ u8 GetSSTidalLocation(s8 *mapGroup, s8 *mapNum, s16 *x, s16 *y) return 0; } -bool32 is_tile_that_overrides_player_control(void) +bool32 ShouldDoWallyCall(void) { if (FlagGet(FLAG_ENABLE_FIRST_WALLY_POKENAV_CALL)) { switch (gMapHeader.mapType) { - case 1: - case 2: - case 3: - case 6: - if (++(*GetVarPointer(VAR_0x40F2)) < 0xFA) + case MAP_TYPE_TOWN: + case MAP_TYPE_CITY: + case MAP_TYPE_ROUTE: + case MAP_TYPE_OCEAN_ROUTE: + if (++(*GetVarPointer(VAR_WALLY_CALL_STEP_COUNTER)) < 0xFA) { return FALSE; } @@ -387,7 +387,7 @@ bool32 is_tile_that_overrides_player_control(void) return TRUE; } -bool32 sub_8138120(void) +bool32 ShouldDoWinonaCall(void) { if (FlagGet(FLAG_REGISTER_WINONA_POKENAV)) { @@ -396,8 +396,8 @@ bool32 sub_8138120(void) case MAP_TYPE_TOWN: case MAP_TYPE_CITY: case MAP_TYPE_ROUTE: - case MAP_TYPE_6: - if (++(*GetVarPointer(VAR_0x40F3)) < 10) + case MAP_TYPE_OCEAN_ROUTE: + if (++(*GetVarPointer(VAR_WINONA_CALL_STEP_COUNTER)) < 10) { return FALSE; } @@ -414,7 +414,7 @@ bool32 sub_8138120(void) return TRUE; } -bool32 sub_8138168(void) +bool32 ShouldDoScottCall(void) { if (FlagGet(FLAG_SCOTT_CALL_NATIONAL_DEX)) { @@ -424,7 +424,7 @@ bool32 sub_8138168(void) case 2: case 3: case 6: - if (++(*GetVarPointer(VAR_0x40F5)) < 0xA) + if (++(*GetVarPointer(VAR_SCOTT_CALL_STEP_COUNTER)) < 10) { return FALSE; } @@ -441,7 +441,7 @@ bool32 sub_8138168(void) return TRUE; } -bool32 sub_81381B0(void) +bool32 ShouldDoRoxanneCall(void) { if (FlagGet(FLAG_ENABLE_ROXANNE_FIRST_CALL)) { @@ -451,7 +451,7 @@ bool32 sub_81381B0(void) case 2: case 3: case 6: - if (++(*GetVarPointer(VAR_0x40F4)) < 0xFA) + if (++(*GetVarPointer(VAR_ROXANNE_CALL_STEP_COUNTER)) < 0xFA) { return FALSE; } @@ -468,7 +468,7 @@ bool32 sub_81381B0(void) return TRUE; } -bool32 sub_81381F8(void) +bool32 ShouldDoRivalRayquazaCall(void) { if (FlagGet(FLAG_DEFEATED_MAGMA_SPACE_CENTER)) { @@ -478,7 +478,7 @@ bool32 sub_81381F8(void) case 2: case 3: case 6: - if (++(*GetVarPointer(VAR_0x40F6)) < 0xFA) + if (++(*GetVarPointer(VAR_RIVAL_RAYQUAZA_CALL_STEP_COUNTER)) < 0xFA) { return FALSE; } @@ -1516,7 +1516,7 @@ bool8 FoundBlackGlasses(void) void SetRoute119Weather(void) { - if (is_map_type_1_2_3_5_or_6(GetLastUsedWarpMapType()) != TRUE) + if (IsMapTypeOutside(GetLastUsedWarpMapType()) != TRUE) { SetSav1Weather(20); } @@ -1524,7 +1524,7 @@ void SetRoute119Weather(void) void SetRoute123Weather(void) { - if (is_map_type_1_2_3_5_or_6(GetLastUsedWarpMapType()) != TRUE) + if (IsMapTypeOutside(GetLastUsedWarpMapType()) != TRUE) { SetSav1Weather(21); } diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c index df4576a7f..d4d6075f3 100644 --- a/src/fldeff_misc.c +++ b/src/fldeff_misc.c @@ -1126,7 +1126,7 @@ void GetShieldToyTVDecorationInfo(void) if (!VarGet(VAR_CURRENT_SECRET_BASE)) return; - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x10); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x10); break; case 734: ConvertIntToDecimalStringN(gStringVar1, 50, STR_CONV_MODE_LEFT_ALIGN, 2); @@ -1137,7 +1137,7 @@ void GetShieldToyTVDecorationInfo(void) if (!VarGet(VAR_CURRENT_SECRET_BASE)) return; - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x20); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x20); break; case 756: gSpecialVar_Result = 1; @@ -1145,7 +1145,7 @@ void GetShieldToyTVDecorationInfo(void) if (!VarGet(VAR_CURRENT_SECRET_BASE)) return; - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x80); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x80); break; case 757: gSpecialVar_Result = 2; @@ -1153,7 +1153,7 @@ void GetShieldToyTVDecorationInfo(void) if (!VarGet(VAR_CURRENT_SECRET_BASE)) return; - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x80); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x80); break; case 758: gSpecialVar_Result = 3; @@ -1161,7 +1161,7 @@ void GetShieldToyTVDecorationInfo(void) if (!VarGet(VAR_CURRENT_SECRET_BASE)) return; - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x80); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x80); break; } } diff --git a/src/item.c b/src/item.c index 71c2dc0f7..0e13ddf4c 100644 --- a/src/item.c +++ b/src/item.c @@ -539,8 +539,8 @@ bool8 RemoveBagItem(u16 itemId, u16 count) if (CurrentMapIsSecretBase() == TRUE) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x200); - VarSet(VAR_0x40ED, itemId); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x200); + VarSet(VAR_SECRET_BASE_LAST_ITEM_USED, itemId); } var = GetItemListPosition(pocket); diff --git a/src/overworld.c b/src/overworld.c index 6055c74bb..84eb80a06 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -678,7 +678,7 @@ void UpdateEscapeWarp(s16 x, s16 y) { u8 currMapType = GetCurrentMapType(); u8 destMapType = GetMapTypeByGroupAndId(sWarpDestination.mapGroup, sWarpDestination.mapNum); - if (is_map_type_1_2_3_5_or_6(currMapType) && is_map_type_1_2_3_5_or_6(destMapType) != TRUE) + if (IsMapTypeOutside(currMapType) && IsMapTypeOutside(destMapType) != TRUE) SetEscapeWarp(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x - 7, y - 6); } @@ -837,7 +837,7 @@ static void mli0_load_map(u32 a1) LoadEventObjTemplatesFromHeader(); } - v2 = is_map_type_1_2_3_5_or_6(gMapHeader.mapType); + v2 = IsMapTypeOutside(gMapHeader.mapType); indoors = Overworld_MapTypeIsIndoors(gMapHeader.mapType); sub_80EB218(); @@ -925,7 +925,7 @@ static u8 GetAdjustedInitialTransitionFlags(struct InitialPlayerAvatarState *pla static u8 GetAdjustedInitialDirection(struct InitialPlayerAvatarState *playerStruct, u8 transitionFlags, u16 metatileBehavior, u8 mapType) { - if (FlagGet(FLAG_SYS_CRUISE_MODE) && mapType == MAP_TYPE_6) + if (FlagGet(FLAG_SYS_CRUISE_MODE) && mapType == MAP_TYPE_OCEAN_ROUTE) return DIR_EAST; else if (MetatileBehavior_IsDeepSouthWarp(metatileBehavior) == TRUE) return DIR_NORTH; @@ -1330,13 +1330,13 @@ u8 GetLastUsedWarpMapType(void) return GetMapTypeByWarpData(&gLastUsedWarp); } -bool8 is_map_type_1_2_3_5_or_6(u8 mapType) +bool8 IsMapTypeOutside(u8 mapType) { if (mapType == MAP_TYPE_ROUTE || mapType == MAP_TYPE_TOWN || mapType == MAP_TYPE_UNDERWATER || mapType == MAP_TYPE_CITY - || mapType == MAP_TYPE_6) + || mapType == MAP_TYPE_OCEAN_ROUTE) return TRUE; else return FALSE; @@ -1346,7 +1346,7 @@ bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType) { if (mapType == MAP_TYPE_ROUTE || mapType == MAP_TYPE_TOWN - || mapType == MAP_TYPE_6 + || mapType == MAP_TYPE_OCEAN_ROUTE || mapType == MAP_TYPE_CITY) return TRUE; else diff --git a/src/region_map.c b/src/region_map.c index 5c85606a8..814849bfd 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -883,7 +883,7 @@ static void RegionMap_InitializeStateBasedOnPlayerLocation(void) case MAP_TYPE_CITY: case MAP_TYPE_ROUTE: case MAP_TYPE_UNDERWATER: - case MAP_TYPE_6: + case MAP_TYPE_OCEAN_ROUTE: gRegionMap->mapSecId = gMapHeader.regionMapSectionId; gRegionMap->playerIsInCave = FALSE; mapWidth = gMapHeader.mapLayout->width; @@ -896,7 +896,7 @@ static void RegionMap_InitializeStateBasedOnPlayerLocation(void) } break; case MAP_TYPE_UNDERGROUND: - case MAP_TYPE_7: + case MAP_TYPE_UNUSED_2: if (gMapHeader.flags & 0x02) { mapHeader = Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->escapeWarp.mapGroup, gSaveBlock1Ptr->escapeWarp.mapNum); diff --git a/src/secret_base.c b/src/secret_base.c index 7ff83dec8..02d627722 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -60,7 +60,7 @@ struct SecretBaseRecordMixer { // Static RAM declarations EWRAM_DATA u8 sCurSecretBaseId = 0; -EWRAM_DATA u8 gUnknown_0203A01D = 0; +EWRAM_DATA bool8 gIsInSecretBase = FALSE; EWRAM_DATA struct SecretBaseListMenuBuffer *gUnknown_0203A020 = NULL; // Static ROM declarations @@ -1186,11 +1186,11 @@ void SecretBasePerStepCallback(u8 taskId) case 0: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - gUnknown_0203A01D = TRUE; + gIsInSecretBase = TRUE; } else { - gUnknown_0203A01D = FALSE; + gIsInSecretBase = FALSE; } PlayerGetDestCoords(&data[2], &data[3]); data[1] = 1; @@ -1201,103 +1201,103 @@ void SecretBasePerStepCallback(u8 taskId) { data[2] = x; data[3] = y; - VarSet(VAR_0x40EC, VarGet(VAR_0x40EC) + 1); + VarSet(VAR_SECRET_BASE_STEP_COUNTER, VarGet(VAR_SECRET_BASE_STEP_COUNTER) + 1); behavior = MapGridGetMetatileBehaviorAt(x, y); tileId = MapGridGetMetatileIdAt(x, y); if (tileId == 0x234 || tileId == 0x23C) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x20); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x20); } } else if (tileId == 0x2b8 || tileId == 0x2b9 || tileId == 0x2ba || tileId == 0x2c0 || tileId == 0x2c1 || tileId == 0x2c2 || tileId == 0x2c8 || tileId == 0x2c9 || tileId == 0x2ca) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x01); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x01); } } else if (tileId == 0x239 || tileId == 0x241 || tileId == 0x251 || tileId == 0x259) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x04); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x04); } } else if ((behavior == 0x34 && tileId == 0x26d) || (behavior == 0x35 && MapGridGetMetatileIdAt(x, y) == 0x26a)) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x200); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x200); } } else if (behavior == 0xc1 && tileId == 0x23d) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) ^ 0x1000); - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x2000); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ 0x1000); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x2000); } } else if (behavior == 0x47 && tileId == 0x23e) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x1000); - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) ^ 0x2000); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x1000); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ 0x2000); } } else if (MetatileBehavior_IsSecretBaseGlitterMat(behavior) == TRUE) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x80); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x80); } } else if (MetatileBehavior_IsSecretBaseBalloon(behavior) == TRUE) { PopSecretBaseBalloon(MapGridGetMetatileIdAt(x, y), x, y); - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { switch ((int)MapGridGetMetatileIdAt(x, y)) { case 0x338: case 0x33c: case 0x340: - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x02); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x02); break; case 0x228: - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x100); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x100); break; } } } else if (MetatileBehavior_IsSecretBaseBreakableDoor(behavior) == TRUE) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x400); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x400); } ShatterSecretBaseBreakableDoor(x, y); } else if (MetatileBehavior_IsSecretBaseSoundMat(behavior) == TRUE){ - if (gUnknown_0203A01D == TRUE) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x8000); + if (gIsInSecretBase == TRUE) { + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x8000); } } else if (MetatileBehavior_IsSecretBaseJumpMat(behavior) == TRUE) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x4000); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x4000); } } else if (MetatileBehavior_IsSecretBaseSpinMat(behavior) == TRUE) { - if (gUnknown_0203A01D == TRUE) + if (gIsInSecretBase == TRUE) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x02); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x02); } } } @@ -1780,33 +1780,33 @@ void sub_80EB18C(struct SecretBaseRecord *bases) void sub_80EB1AC(void) { - VarSet(VAR_0x40EC, 0); - VarSet(VAR_0x40ED, 0); - VarSet(VAR_0x40EE, 0); - VarSet(VAR_0x40EF, 0); + VarSet(VAR_SECRET_BASE_STEP_COUNTER, 0); + VarSet(VAR_SECRET_BASE_LAST_ITEM_USED, 0); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, 0); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, 0); if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40F0, TRUE); + VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, TRUE); } else { - VarSet(VAR_0x40F0, FALSE); + VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, FALSE); } - gUnknown_0203A01D = FALSE; + gIsInSecretBase = FALSE; } void sub_80EB218(void) { - if (VarGet(VAR_0x40F0) && gUnknown_0203A01D == TRUE && !CurrentMapIsSecretBase()) + if (VarGet(VAR_SECRET_BASE_IS_NOT_LOCAL) && gIsInSecretBase == TRUE && !CurrentMapIsSecretBase()) { - VarSet(VAR_0x40F0, FALSE); - gUnknown_0203A01D = FALSE; + VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, FALSE); + gIsInSecretBase = FALSE; sub_80EEA70(); - VarSet(VAR_0x40EC, 0); - VarSet(VAR_0x40ED, 0); - VarSet(VAR_0x40EE, 0); - VarSet(VAR_0x40EF, 0); - VarSet(VAR_0x40F0, FALSE); + VarSet(VAR_SECRET_BASE_STEP_COUNTER, 0); + VarSet(VAR_SECRET_BASE_LAST_ITEM_USED, 0); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, 0); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, 0); + VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, FALSE); } } @@ -1814,7 +1814,7 @@ void sub_80EB290(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x800); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x800); } } @@ -1822,7 +1822,7 @@ void sub_80EB2C8(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x400); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x400); } } @@ -1830,9 +1830,9 @@ void sub_80EB300(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) & ~0x3800); - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) & ~0x001); - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x2000); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x2000); } } @@ -1840,9 +1840,9 @@ void sub_80EB368(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) & ~0x3800); - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) & ~0x001); - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x800); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x800); } } @@ -1850,9 +1850,9 @@ void sub_80EB3D0(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) & ~0x3800); - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) & ~0x001); - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x1000); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x1000); } } @@ -1860,9 +1860,9 @@ void sub_80EB438(void) { if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) & ~0x3800); - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) & ~0x001); - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x001); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) & ~0x3800); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) & ~0x001); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x001); } } @@ -1891,7 +1891,7 @@ void sub_80EB498(void) case 0x334: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x4000); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x4000); } break; } @@ -1909,7 +1909,7 @@ void sub_80EB56C(void) case 0x28b: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x40); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x40); } break; case 0x2d8: @@ -1932,21 +1932,21 @@ void sub_80EB56C(void) case 0x2fb: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EE, VarGet(VAR_0x40EE) | 0x8); + VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x8); } break; case 0x22c: case 0x233: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x40); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x40); } break; case 0x288: case 0x289: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x100); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x100); } break; case 0x22d: @@ -1954,7 +1954,7 @@ void sub_80EB56C(void) case 0x22f: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x10); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x10); } break; case 0x287: @@ -1982,7 +1982,7 @@ void sub_80EB56C(void) case 0x2cf: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x8); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x8); } break; } @@ -2009,7 +2009,7 @@ void sub_80EB9E0(void) case 0x2c6: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x8); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x8); } break; } @@ -2047,14 +2047,14 @@ void sub_80EBB28(void) case 0x2c7: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x8); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x8); } break; case 0x280: case 0x281: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x100); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x100); } break; case 0x225: @@ -2062,7 +2062,7 @@ void sub_80EBB28(void) case 0x227: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x10); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x10); } break; } @@ -2080,7 +2080,7 @@ void sub_80EBE7C(void) case 0x28e: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - VarSet(VAR_0x40EF, VarGet(VAR_0x40EF) | 0x4); + VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x4); } break; } diff --git a/src/time_events.c b/src/time_events.c index 9702d321f..9263bffac 100644 --- a/src/time_events.c +++ b/src/time_events.c @@ -81,7 +81,7 @@ void UpdateShoalTideFlag(void) 1, // 23 }; - if (is_map_type_1_2_3_5_or_6(GetLastUsedWarpMapType())) + if (IsMapTypeOutside(GetLastUsedWarpMapType())) { RtcCalcLocalTime(); if (tide[gLocalTime.hours]) diff --git a/src/tv.c b/src/tv.c index 248721083..d53cec8b2 100644 --- a/src/tv.c +++ b/src/tv.c @@ -2565,13 +2565,13 @@ void sub_80EEA70(void) show->secretBaseSecrets.kind = TVSHOW_SECRET_BASE_SECRETS; show->secretBaseSecrets.active = FALSE; StringCopy(show->secretBaseSecrets.playerName, gSaveBlock2Ptr->playerName); - show->secretBaseSecrets.stepsInBase = VarGet(VAR_0x40EC); + show->secretBaseSecrets.stepsInBase = VarGet(VAR_SECRET_BASE_STEP_COUNTER); sub_80E980C(); StringCopy(strbuf, gStringVar1); StripExtCtrlCodes(strbuf); StringCopy(show->secretBaseSecrets.baseOwnersName, strbuf); - show->secretBaseSecrets.item = VarGet(VAR_0x40ED); - show->secretBaseSecrets.flags = VarGet(VAR_0x40EE) + (VarGet(VAR_0x40EF) << 16); + show->secretBaseSecrets.item = VarGet(VAR_SECRET_BASE_LAST_ITEM_USED); + show->secretBaseSecrets.flags = VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) + (VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) << 16); tv_store_id_3x(show); show->secretBaseSecrets.language = gGameLanguage; if (show->secretBaseSecrets.language == LANGUAGE_JAPANESE || gSaveBlock1Ptr->secretBases[VarGet(VAR_CURRENT_SECRET_BASE)].language == LANGUAGE_JAPANESE) @@ -7350,7 +7350,7 @@ static void DoTVShowWhatsNo1InHoennToday(void) ShowFieldMessage(sTVWhatsNo1InHoennTodayTextGroup[state]); } -u8 sub_80F5180(TVShow *show) +u8 TVShowGetFlagCount(TVShow *show) { u8 i; u8 tot; @@ -7365,7 +7365,7 @@ u8 sub_80F5180(TVShow *show) return tot; } -u8 sub_80F51AC(TVShow *show, u8 a1) +u8 TVShowGetStateForFlagNumber(TVShow *show, u8 a1) { u8 i; u8 tot; @@ -7399,7 +7399,7 @@ static void DoTVShowSecretBaseSecrets(void) case 0: TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); - bitCount = sub_80F5180(show); + bitCount = TVShowGetFlagCount(show); if (bitCount == 0) { sTVShowState = 8; @@ -7408,12 +7408,12 @@ static void DoTVShowSecretBaseSecrets(void) { show->secretBaseSecrets.savedState = 1; sTVSecretBaseSecretsRandomValues[0] = Random() % bitCount; - sTVShowState = sub_80F51AC(show, sTVSecretBaseSecretsRandomValues[0]); + sTVShowState = TVShowGetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[0]); } break; case 1: TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); - bitCount = sub_80F5180(show); + bitCount = TVShowGetFlagCount(show); switch (bitCount) { case 1: @@ -7423,11 +7423,11 @@ static void DoTVShowSecretBaseSecrets(void) show->secretBaseSecrets.savedState = 2; if (sTVSecretBaseSecretsRandomValues[0] == 0) { - sTVShowState = sub_80F51AC(show, 1); + sTVShowState = TVShowGetStateForFlagNumber(show, 1); } else { - sTVShowState = sub_80F51AC(show, 0); + sTVShowState = TVShowGetStateForFlagNumber(show, 0); } break; default: @@ -7440,13 +7440,13 @@ static void DoTVShowSecretBaseSecrets(void) } } show->secretBaseSecrets.savedState = 2; - sTVShowState = sub_80F51AC(show, sTVSecretBaseSecretsRandomValues[1]); + sTVShowState = TVShowGetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[1]); break; } break; case 2: TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); - bitCount = sub_80F5180(show); + bitCount = TVShowGetFlagCount(show); if (bitCount == 2) { sTVShowState = 9; @@ -7462,7 +7462,7 @@ static void DoTVShowSecretBaseSecrets(void) } } show->secretBaseSecrets.savedState = 3; - sTVShowState = sub_80F51AC(show, sTVSecretBaseSecretsRandomValues[2]); + sTVShowState = TVShowGetStateForFlagNumber(show, sTVSecretBaseSecretsRandomValues[2]); } break; case 3: -- cgit v1.2.3 From 373d73eb3b8d28aa217bc6043a29cc44fcf0e45b Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Thu, 28 Feb 2019 00:06:27 -0500 Subject: Fix last special var --- data/maps/PetalburgCity/map.json | 8 +++--- data/maps/PetalburgCity/scripts.inc | 2 +- data/maps/PetalburgCity_Gym/scripts.inc | 2 +- include/constants/vars.h | 46 ++++++++++++++++----------------- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/data/maps/PetalburgCity/map.json b/data/maps/PetalburgCity/map.json index 3d09ae706..6a9a6b33d 100644 --- a/data/maps/PetalburgCity/map.json +++ b/data/maps/PetalburgCity/map.json @@ -229,7 +229,7 @@ "x": 4, "y": 10, "elevation": 3, - "var": "VAR_0x40C9", + "var": "VAR_SCOTT_PETALBURG_ENCOUNTER", "var_value": "0", "script": "PetalburgCity_EventScript_1DC691" }, @@ -238,7 +238,7 @@ "x": 4, "y": 11, "elevation": 3, - "var": "VAR_0x40C9", + "var": "VAR_SCOTT_PETALBURG_ENCOUNTER", "var_value": "0", "script": "PetalburgCity_EventScript_1DC6A7" }, @@ -247,7 +247,7 @@ "x": 4, "y": 12, "elevation": 3, - "var": "VAR_0x40C9", + "var": "VAR_SCOTT_PETALBURG_ENCOUNTER", "var_value": "0", "script": "PetalburgCity_EventScript_1DC6BD" }, @@ -256,7 +256,7 @@ "x": 4, "y": 13, "elevation": 3, - "var": "VAR_0x40C9", + "var": "VAR_SCOTT_PETALBURG_ENCOUNTER", "var_value": "0", "script": "PetalburgCity_EventScript_1DC6D3" } diff --git a/data/maps/PetalburgCity/scripts.inc b/data/maps/PetalburgCity/scripts.inc index 0520fe044..5a652ab15 100644 --- a/data/maps/PetalburgCity/scripts.inc +++ b/data/maps/PetalburgCity/scripts.inc @@ -572,7 +572,7 @@ PetalburgCity_EventScript_1DC6E9:: @ 81DC6E9 call_if_eq PetalburgCity_EventScript_1DC7B2 compare VAR_0x8008, 3 call_if_eq PetalburgCity_EventScript_1DC7C4 - setvar VAR_0x40C9, 1 + setvar VAR_SCOTT_PETALBURG_ENCOUNTER, 1 removeobject 9 releaseall end diff --git a/data/maps/PetalburgCity_Gym/scripts.inc b/data/maps/PetalburgCity_Gym/scripts.inc index fef5c4048..a256a6547 100644 --- a/data/maps/PetalburgCity_Gym/scripts.inc +++ b/data/maps/PetalburgCity_Gym/scripts.inc @@ -60,7 +60,7 @@ PetalburgCity_Gym_EventScript_204955:: @ 8204955 return PetalburgCity_Gym_EventScript_20495D:: @ 820495D - setorcopyvar VAR_NEVER_READ_0x8015, 269 + setorcopyvar VAR_TRAINER_BATTLE_OPPONENT_A, 269 specialvar VAR_RESULT, IsTrainerReadyForRematch compare VAR_RESULT, 1 goto_if_eq PetalburgCity_Gym_EventScript_204985 diff --git a/include/constants/vars.h b/include/constants/vars.h index 99d1813da..3bd5d8efe 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -217,7 +217,7 @@ #define VAR_STEVENS_HOUSE_STATE 0x40C6 #define VAR_OLDALE_STATE 0x40C7 #define VAR_JAGGED_PASS_STATE 0x40C8 -#define VAR_0x40C9 0x40C9 +#define VAR_SCOTT_PETALBURG_ENCOUNTER 0x40C9 #define VAR_SKY_PILLAR_STATE 0x40CA #define VAR_ROUTE_111_STATE 0x40CB #define VAR_FOSSIL_MANIAC_STATE 0x40CC @@ -276,27 +276,27 @@ #define SPECIAL_VARS_START 0x8000 // special vars // They are commonly used as parameters to commands, or return values from commands. -#define VAR_0x8000 0x8000 -#define VAR_0x8001 0x8001 -#define VAR_0x8002 0x8002 -#define VAR_0x8003 0x8003 -#define VAR_0x8004 0x8004 -#define VAR_0x8005 0x8005 -#define VAR_0x8006 0x8006 -#define VAR_0x8007 0x8007 -#define VAR_0x8008 0x8008 -#define VAR_0x8009 0x8009 -#define VAR_0x800A 0x800A -#define VAR_0x800B 0x800B -#define VAR_FACING 0x800C -#define VAR_RESULT 0x800D -#define VAR_ITEM_ID 0x800E -#define VAR_LAST_TALKED 0x800F -#define VAR_CONTEST_RANK 0x8010 -#define VAR_CONTEST_CATEGORY 0x8011 -#define VAR_MON_BOX_ID 0x8012 -#define VAR_MON_BOX_POS 0x8013 -#define VAR_UNUSED_0x8014 0x8014 -#define VAR_NEVER_READ_0x8015 0x8015 // Written to, but never read +#define VAR_0x8000 0x8000 +#define VAR_0x8001 0x8001 +#define VAR_0x8002 0x8002 +#define VAR_0x8003 0x8003 +#define VAR_0x8004 0x8004 +#define VAR_0x8005 0x8005 +#define VAR_0x8006 0x8006 +#define VAR_0x8007 0x8007 +#define VAR_0x8008 0x8008 +#define VAR_0x8009 0x8009 +#define VAR_0x800A 0x800A +#define VAR_0x800B 0x800B +#define VAR_FACING 0x800C +#define VAR_RESULT 0x800D +#define VAR_ITEM_ID 0x800E +#define VAR_LAST_TALKED 0x800F +#define VAR_CONTEST_RANK 0x8010 +#define VAR_CONTEST_CATEGORY 0x8011 +#define VAR_MON_BOX_ID 0x8012 +#define VAR_MON_BOX_POS 0x8013 +#define VAR_UNUSED_0x8014 0x8014 +#define VAR_TRAINER_BATTLE_OPPONENT_A 0x8015 // Alias of gTrainerBattleOpponent_A #endif // GUARD_CONSTANTS_VARS_H -- cgit v1.2.3 From 99bfd8c80fcfcafa55166ff65f5264c727b16ed0 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Thu, 28 Feb 2019 00:10:44 -0500 Subject: VAR_0x3F20 is not a var --- include/constants/vars.h | 2 +- src/decoration.c | 2 +- src/secret_base.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/constants/vars.h b/include/constants/vars.h index 3bd5d8efe..72b02ee8f 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -1,7 +1,7 @@ #ifndef GUARD_CONSTANTS_VARS_H #define GUARD_CONSTANTS_VARS_H -#define VAR_0x3F20 0x3F20 +#define UNKNOWN_VAR_OFFSET_3F20 0x3F20 #define VARS_START 0x4000 diff --git a/src/decoration.c b/src/decoration.c index 2ac49b98c..1635528d9 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -1254,7 +1254,7 @@ void sub_8127E18(void) break; } } - VarSet(VAR_0x3F20 + gMapHeader.events->eventObjects[j].graphicsId, sPlaceDecorationGraphicsDataBuffer.decoration->tiles[0]); + VarSet(UNKNOWN_VAR_OFFSET_3F20 + gMapHeader.events->eventObjects[j].graphicsId, sPlaceDecorationGraphicsDataBuffer.decoration->tiles[0]); gSpecialVar_0x8005 = gMapHeader.events->eventObjects[j].localId; gSpecialVar_0x8006 = sCurDecorMapX; gSpecialVar_0x8007 = sCurDecorMapY; diff --git a/src/secret_base.c b/src/secret_base.c index 02d627722..cf35deb07 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -552,7 +552,7 @@ void sub_80E933C(void) metatile = MapGridGetMetatileBehaviorAt(gSpecialVar_0x8006 + 7, gSpecialVar_0x8007 + 7); if (MetatileBehavior_IsSecretBaseLargeMatEdge(metatile) == TRUE || MetatileBehavior_IsLargeMatCenter(metatile) == TRUE) { - gSpecialVar_Result = gMapHeader.events->eventObjects[objIdx].graphicsId + VAR_0x3F20; + gSpecialVar_Result = gMapHeader.events->eventObjects[objIdx].graphicsId + UNKNOWN_VAR_OFFSET_3F20; VarSet(gSpecialVar_Result, gDecorations[roomDecor[decorIdx]].tiles[0]); gSpecialVar_Result = gMapHeader.events->eventObjects[objIdx].localId; FlagClear(gSpecialVar_0x8004 + 0xAE); -- cgit v1.2.3 From baf95a8e7ab5bf295f10c4e30d043c9629f2d2a3 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 1 Mar 2019 00:08:37 +0100 Subject: get rid of ugly cast --- src/battle_anim_effects_2.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 0c6f2ef11..ee6676e64 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -1417,7 +1417,7 @@ static void AnimTask_WithdrawStep(u8 taskId) } } -// Animates a "zap of energy" used in KINESIS. +// Animates a "zap of energy" used in KINESIS. // arg 0: x pixel offset // arg 1: y pixel offset // arg 2: vertical flip @@ -1592,7 +1592,7 @@ void sub_8103AA4(struct Sprite *sprite) sprite->data[3] = sub_8151534(sub_8151534(b, a), sub_8151624(0x1C0)); sprite->data[4] = sub_8151534(sub_8151534(c, a), sub_8151624(0x1C0)); sprite->callback = sub_8103A00; - } + } } static void sub_8103BE4(u8 taskId) @@ -3470,7 +3470,7 @@ void AnimOrbitFast(struct Sprite *sprite) static void AnimOrbitFastStep(struct Sprite *sprite) { - if ((u16)(sprite->data[1] - 64) < 128) + if (sprite->data[1] >= 64 && sprite->data[1] <= 191) sprite->subpriority = sprite->data[7] + 1; else sprite->subpriority = sprite->data[7] - 1; -- cgit v1.2.3 From 5c8cc5225ff7c11533f8421039e6e9e75adcee90 Mon Sep 17 00:00:00 2001 From: hondew Date: Thu, 7 Feb 2019 11:24:09 -0500 Subject: document slot machine --- data/slot_machine.s | 1144 ++++++++++++++--------------- include/slot_machine.h | 3 + include/task.h | 3 + include/tv.h | 9 +- src/roulette.c | 4 +- src/slot_machine.c | 1872 +++++++++++++++++++++++++----------------------- src/task.c | 3 - src/tv.c | 16 +- 8 files changed, 1580 insertions(+), 1474 deletions(-) diff --git a/data/slot_machine.s b/data/slot_machine.s index 4a354d71c..adc65feec 100644 --- a/data/slot_machine.s +++ b/data/slot_machine.s @@ -1,841 +1,841 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" +.include "asm/macros.inc" +.include "constants/constants.inc" - .section .rodata +.section .rodata .align 2 gUnknown_085A7A3C:: @ 85A7A3C - .2byte 0 - .2byte 0 - .2byte 0 - .2byte 0 - +.2byte 0 +.2byte 0 +.2byte 0 +.2byte 0 + gUnknown_085A7A44:: @ 85A7A44 - .2byte 0x8000 - .2byte 0 - .2byte 0 - .2byte 0 +.2byte 0x8000 +.2byte 0 +.2byte 0 +.2byte 0 gUnknown_085A7A4C:: @ 85A7A4C - .2byte 0 - .2byte 0x4000 - .2byte 0 - .2byte 0 - +.2byte 0 +.2byte 0x4000 +.2byte 0 +.2byte 0 + gUnknown_085A7A54:: @ 85A7A54 - .2byte 0x8000 - .2byte 0x8000 - .2byte 0 - .2byte 0 - +.2byte 0x8000 +.2byte 0x8000 +.2byte 0 +.2byte 0 + gUnknown_085A7A5C:: @ 85A7A5C - .2byte 0 - .2byte 0x8000 - .2byte 0 - .2byte 0 +.2byte 0 +.2byte 0x8000 +.2byte 0 +.2byte 0 gUnknown_085A7A64:: @ 85A7A64 - .2byte 0x8000 - .2byte 0xC000 - .2byte 0 - .2byte 0 - +.2byte 0x8000 +.2byte 0xC000 +.2byte 0 +.2byte 0 + gUnknown_085A7A6C:: @ 85A7A6C - .2byte 0x4000 - .2byte 0xC000 - .2byte 0 - .2byte 0 +.2byte 0x4000 +.2byte 0xC000 +.2byte 0 +.2byte 0 gUnknown_085A7A74:: @ 85A7A74 - .2byte 0 - .2byte 0xC000 - .2byte 0 - .2byte 0 +.2byte 0 +.2byte 0xC000 +.2byte 0 +.2byte 0 gUnknown_085A7A7C:: @ 85A7A7C - .4byte gSlotMachineReelTimeNumber0 - .2byte 0x80 - .2byte 0 - .4byte gSlotMachineReelTimeNumber1 - .2byte 0x80 - .2byte 0 - .4byte gSlotMachineReelTimeNumber2 - .2byte 0x80 - .2byte 0 - .4byte gSlotMachineReelTimeNumber3 - .2byte 0x80 - .2byte 0 - .4byte gSlotMachineReelTimeNumber4 - .2byte 0x80 - .2byte 0 - .4byte gSlotMachineReelTimeNumber5 - .2byte 0x80 - .2byte 0 +.4byte gSlotMachineReelTimeNumber0 +.2byte 0x80 +.2byte 0 +.4byte gSlotMachineReelTimeNumber1 +.2byte 0x80 +.2byte 0 +.4byte gSlotMachineReelTimeNumber2 +.2byte 0x80 +.2byte 0 +.4byte gSlotMachineReelTimeNumber3 +.2byte 0x80 +.2byte 0 +.4byte gSlotMachineReelTimeNumber4 +.2byte 0x80 +.2byte 0 +.4byte gSlotMachineReelTimeNumber5 +.2byte 0x80 +.2byte 0 gUnknown_085A7AAC:: @ 85A7AAC - .4byte gSlotMachineReelTimeShadow - .2byte 0x200 - .2byte 0 +.4byte gSlotMachineReelTimeShadow +.2byte 0x200 +.2byte 0 gUnknown_085A7AB4:: @ 85A7AB4 - .4byte gUnknown_08DD1A18 - .2byte 0x40 - .2byte 0 +.4byte gUnknown_08DD1A18 +.2byte 0x40 +.2byte 0 gUnknown_085A7ABC:: @ 85A7ABC - .4byte gSlotMachineReelTimeLargeBolt0 - .2byte 0x100 - .2byte 0 - .4byte gSlotMachineReelTimeLargeBolt1 - .2byte 0x100 - .2byte 0 +.4byte gSlotMachineReelTimeLargeBolt0 +.2byte 0x100 +.2byte 0 +.4byte gSlotMachineReelTimeLargeBolt1 +.2byte 0x100 +.2byte 0 gUnknown_085A7ACC:: @ 85A7ACC - .4byte gSlotMachineReelTimePikaAura - .2byte 0x400 - .2byte 0 - +.4byte gSlotMachineReelTimePikaAura +.2byte 0x400 +.2byte 0 + gUnknown_085A7AD4:: @ 85A7CD4 - .4byte gSlotMachineReelTimeExplosion0 - .2byte 0x200 - .2byte 0 - .4byte gSlotMachineReelTimeExplosion1 - .2byte 0x200 - .2byte 0 +.4byte gSlotMachineReelTimeExplosion0 +.2byte 0x200 +.2byte 0 +.4byte gSlotMachineReelTimeExplosion1 +.2byte 0x200 +.2byte 0 gUnknown_085A7AE4:: @ 85A7AE4 - .4byte gSlotMachineReelTimeDuck - .4byte 32 +.4byte gSlotMachineReelTimeDuck +.4byte 32 gUnknown_085A7AEC:: @ 85A7AEC - .4byte gSlotMachineReelTimeSmoke - .4byte 0x80 - +.4byte gSlotMachineReelTimeSmoke +.4byte 0x80 + gUnknown_085A7AF4:: @ 85A7AF4 - .4byte gSlotMachineReelTimeBolt - .4byte 32 +.4byte gSlotMachineReelTimeBolt +.4byte 32 gUnknown_085A7AFC:: @ 85A7AFC - obj_image_anim_frame 0, 1 - obj_image_anim_end +obj_image_anim_frame 0, 1 +obj_image_anim_end gUnknown_085A7B04:: @ 85A7B04 - obj_image_anim_frame 0, 1 - obj_image_anim_jump 0 - +obj_image_anim_frame 0, 1 +obj_image_anim_jump 0 + gUnknown_085A7B0C:: @ 85A7B0C - obj_image_anim_frame 0, 16 - obj_image_anim_end +obj_image_anim_frame 0, 16 +obj_image_anim_end gUnknown_085A7B14:: @ 85A7B14 - obj_image_anim_frame 1, 16 - obj_image_anim_frame 0, 16 - obj_image_anim_jump 0 +obj_image_anim_frame 1, 16 +obj_image_anim_frame 0, 16 +obj_image_anim_jump 0 gUnknown_085A7B20:: @ 85A7B20 - obj_image_anim_frame 1, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_jump 0 +obj_image_anim_frame 1, 8 +obj_image_anim_frame 0, 8 +obj_image_anim_jump 0 gUnknown_085A7B2C:: @ 85A7B2C - obj_image_anim_frame 1, 4 - obj_image_anim_frame 0, 4 - obj_image_anim_jump 0 +obj_image_anim_frame 1, 4 +obj_image_anim_frame 0, 4 +obj_image_anim_jump 0 gUnknown_085A7B38:: @ 85A7B38 - obj_image_anim_frame 2, 32 - obj_image_anim_frame 3, 32 - obj_image_anim_jump 0 +obj_image_anim_frame 2, 32 +obj_image_anim_frame 3, 32 +obj_image_anim_jump 0 gUnknown_085A7B44:: @ 85A7B44 - obj_image_anim_frame 4, 1 - obj_image_anim_end +obj_image_anim_frame 4, 1 +obj_image_anim_end gUnknown_085A7B4C:: @ 85A7B4C - obj_image_anim_frame 0, 1 - obj_image_anim_end +obj_image_anim_frame 0, 1 +obj_image_anim_end gUnknown_085A7B54:: @ 85A7B54 - obj_image_anim_frame 1, 1 - obj_image_anim_end +obj_image_anim_frame 1, 1 +obj_image_anim_end gUnknown_085A7B5C:: @ 85A7B5C - obj_image_anim_frame 2, 1 - obj_image_anim_end +obj_image_anim_frame 2, 1 +obj_image_anim_end gUnknown_085A7B64:: @ 85A7B64 - obj_image_anim_frame 3, 1 - obj_image_anim_end +obj_image_anim_frame 3, 1 +obj_image_anim_end gUnknown_085A7B6C:: @ 85A7B6C - obj_image_anim_frame 4, 1 - obj_image_anim_end +obj_image_anim_frame 4, 1 +obj_image_anim_end gUnknown_085A7B74:: @ 85A7B74 - obj_image_anim_frame 5, 1 - obj_image_anim_end +obj_image_anim_frame 5, 1 +obj_image_anim_end gUnknown_085A7B7C:: @ 85A7B7C - obj_image_anim_frame 0, 4 - obj_image_anim_frame 1, 4 - obj_image_anim_jump 0 +obj_image_anim_frame 0, 4 +obj_image_anim_frame 1, 4 +obj_image_anim_jump 0 gUnknown_085A7B88:: @ 85A7B88 - obj_image_anim_frame 0, 16 - obj_image_anim_frame 1, 16 - obj_image_anim_jump 0 +obj_image_anim_frame 0, 16 +obj_image_anim_frame 1, 16 +obj_image_anim_jump 0 gUnknown_085A7B94:: @ 85A7B94 - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_jump 0 +obj_image_anim_frame 0, 30 +obj_image_anim_frame 1, 30 +obj_image_anim_jump 0 gUnknown_085A7BA0:: @ 85A7BA0 - obj_image_anim_frame 1, 1 - obj_image_anim_end +obj_image_anim_frame 1, 1 +obj_image_anim_end gUnknown_085A7BA8:: @ 85A7BA8 - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_jump 0 +obj_image_anim_frame 0, 30 +obj_image_anim_frame 1, 30 +obj_image_anim_jump 0 gUnknown_085A7BB4:: @ 85A7BB4 - obj_image_anim_frame 0, 16 - obj_image_anim_frame 1, 16 - obj_image_anim_frame 0, 16 - obj_image_anim_frame 1, 80 - obj_image_anim_jump 0 +obj_image_anim_frame 0, 16 +obj_image_anim_frame 1, 16 +obj_image_anim_frame 0, 16 +obj_image_anim_frame 1, 80 +obj_image_anim_jump 0 gUnknown_085A7BC8:: @ 85A7BC8 - obj_image_anim_frame 0, 1 - obj_image_anim_end +obj_image_anim_frame 0, 1 +obj_image_anim_end gUnknown_085A7BD0:: @ 85A7BD0 - obj_image_anim_frame 0, 1 - obj_image_anim_end +obj_image_anim_frame 0, 1 +obj_image_anim_end gUnknown_085A7BD8:: @ 85A7BD8 - obj_image_anim_frame 1, 1 - obj_image_anim_end +obj_image_anim_frame 1, 1 +obj_image_anim_end gUnknown_085A7BE0:: @ 85A7BE0 - obj_image_anim_frame 2, 1 - obj_image_anim_end +obj_image_anim_frame 2, 1 +obj_image_anim_end gUnknown_085A7BE8:: @ 85A7BE8 - obj_image_anim_frame 3, 1 - obj_image_anim_end +obj_image_anim_frame 3, 1 +obj_image_anim_end gUnknown_085A7BF0:: @ 85A7BF0 - obj_image_anim_frame 4, 1 - obj_image_anim_end +obj_image_anim_frame 4, 1 +obj_image_anim_end gUnknown_085A7BF8:: @ 85A7BF8 - .4byte gUnknown_085A7AFC +.4byte gUnknown_085A7AFC gUnknown_085A7BFC:: @ 85A7BFC - .4byte gUnknown_085A7B04 +.4byte gUnknown_085A7B04 gUnknown_085A7C00:: @ 85A7C00 - .4byte gUnknown_085A7B0C - .4byte gUnknown_085A7B14 - .4byte gUnknown_085A7B20 - .4byte gUnknown_085A7B2C - .4byte gUnknown_085A7B38 - .4byte gUnknown_085A7B44 +.4byte gUnknown_085A7B0C +.4byte gUnknown_085A7B14 +.4byte gUnknown_085A7B20 +.4byte gUnknown_085A7B2C +.4byte gUnknown_085A7B38 +.4byte gUnknown_085A7B44 gUnknown_085A7C18:: @ 85A7C18 - .4byte gUnknown_085A7B4C - .4byte gUnknown_085A7B54 - .4byte gUnknown_085A7B5C - .4byte gUnknown_085A7B64 - .4byte gUnknown_085A7B6C - .4byte gUnknown_085A7B74 +.4byte gUnknown_085A7B4C +.4byte gUnknown_085A7B54 +.4byte gUnknown_085A7B5C +.4byte gUnknown_085A7B64 +.4byte gUnknown_085A7B6C +.4byte gUnknown_085A7B74 gUnknown_085A7C30:: @ 85A7C30 - .4byte gUnknown_085A7B7C +.4byte gUnknown_085A7B7C gUnknown_085A7C34:: @ 85A7C34 - .4byte gUnknown_085A7B88 - +.4byte gUnknown_085A7B88 + gUnknown_085A7C38:: @ 85A7C38 - .4byte gUnknown_085A7B94 - .4byte gUnknown_085A7BA0 - +.4byte gUnknown_085A7B94 +.4byte gUnknown_085A7BA0 + gUnknown_085A7C40:: @ 85A7C40 - .4byte gUnknown_085A7BA8 - +.4byte gUnknown_085A7BA8 + gUnknown_085A7C44:: @ 85A7C44 - .4byte gUnknown_085A7BB4 - .4byte gUnknown_085A7BC8 - +.4byte gUnknown_085A7BB4 +.4byte gUnknown_085A7BC8 + gUnknown_085A7C4C:: @ 85A7C4C - .4byte gUnknown_085A7BD0 - .4byte gUnknown_085A7BD8 - .4byte gUnknown_085A7BE0 - .4byte gUnknown_085A7BE8 - .4byte gUnknown_085A7BF0 +.4byte gUnknown_085A7BD0 +.4byte gUnknown_085A7BD8 +.4byte gUnknown_085A7BE0 +.4byte gUnknown_085A7BE8 +.4byte gUnknown_085A7BF0 gUnknown_085A7C60:: @ 85A7C60 - obj_rot_scal_anim_frame 16, 16, 0, 0 - obj_rot_scal_anim_loop 0 - obj_rot_scal_anim_frame 1, 1, 0, 1 - obj_rot_scal_anim_loop 0xFF - obj_rot_scal_anim_end - +obj_rot_scal_anim_frame 16, 16, 0, 0 +obj_rot_scal_anim_loop 0 +obj_rot_scal_anim_frame 1, 1, 0, 1 +obj_rot_scal_anim_loop 0xFF +obj_rot_scal_anim_end + gUnknown_085A7C88:: @ 85A7C88 - .4byte gUnknown_085A7C60 +.4byte gUnknown_085A7C60 gUnknown_085A7C8C:: @ 85A7C8C - obj_rot_scal_anim_frame 0, 0, 8, 32 - obj_rot_scal_anim_frame 0, 0, 6, 32 - obj_rot_scal_anim_frame 0, 0, 4, 16 - obj_rot_scal_anim_frame 0, 0, 12, 2 - obj_rot_scal_anim_frame 0, 0, -12, 4 - obj_rot_scal_anim_frame 0, 0, 12, 2 - obj_rot_scal_anim_frame 0, 0, 12, 2 - obj_rot_scal_anim_frame 0, 0, -12, 4 - obj_rot_scal_anim_frame 0, 0, 12, 2 - obj_rot_scal_anim_end +obj_rot_scal_anim_frame 0, 0, 8, 32 +obj_rot_scal_anim_frame 0, 0, 6, 32 +obj_rot_scal_anim_frame 0, 0, 4, 16 +obj_rot_scal_anim_frame 0, 0, 12, 2 +obj_rot_scal_anim_frame 0, 0, -12, 4 +obj_rot_scal_anim_frame 0, 0, 12, 2 +obj_rot_scal_anim_frame 0, 0, 12, 2 +obj_rot_scal_anim_frame 0, 0, -12, 4 +obj_rot_scal_anim_frame 0, 0, 12, 2 +obj_rot_scal_anim_end gUnknown_085A7CDC:: @ 85A7CDC - .4byte gUnknown_085A7C8C - +.4byte gUnknown_085A7C8C + gSpriteTemplate_83ED414:: @ 85A7CE0 - spr_template 0, 0, gUnknown_085A7A5C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, sub_8104F18 +spr_template 0, 0, gUnknown_085A7A5C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, sub_8104F18 gSpriteTemplate_83ED42C:: @ 85A7CF8 - spr_template 7, 4, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, sub_810506C +spr_template 7, 4, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, sub_810506C gSpriteTemplate_83ED444:: @ 85A7D10 - spr_template 17, 0, gUnknown_085A7A74, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +spr_template 17, 0, gUnknown_085A7A74, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gSpriteTemplate_83ED45C:: @ 85A7D28 - spr_template 0xFFFF, 1, gUnknown_085A7A74, gUnknown_085A7C00, NULL, gDummySpriteAffineAnimTable, sub_8105170 +spr_template 0xFFFF, 1, gUnknown_085A7A74, gUnknown_085A7C00, NULL, gDummySpriteAffineAnimTable, sub_8105170 gSpriteTemplate_83ED474:: @ 85A7D40 - spr_template 0xFFFF, 2, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +spr_template 0xFFFF, 2, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gSpriteTemplate_83ED48C:: @ 85A7D58 - spr_template 0xFFFF, 3, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +spr_template 0xFFFF, 3, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gSpriteTemplate_83ED4A4:: @ 85A7D70 - spr_template 0xFFFF, 3, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +spr_template 0xFFFF, 3, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gSpriteTemplate_83ED4BC:: @ 85A7D88 - spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7C18, gUnknown_085A7A7C, gDummySpriteAffineAnimTable, sub_810535C +spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7C18, gUnknown_085A7A7C, gDummySpriteAffineAnimTable, sub_810535C gSpriteTemplate_83ED4D4:: @ 85A7DA0 - spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7BF8, gUnknown_085A7AAC, gDummySpriteAffineAnimTable, SpriteCallbackDummy +spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7BF8, gUnknown_085A7AAC, gDummySpriteAffineAnimTable, SpriteCallbackDummy gSpriteTemplate_83ED4EC:: @ 85A7DB8 - spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7BF8, gUnknown_085A7AB4, gDummySpriteAffineAnimTable, SpriteCallbackDummy +spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7BF8, gUnknown_085A7AB4, gDummySpriteAffineAnimTable, SpriteCallbackDummy gSpriteTemplate_83ED504:: @ 85A7DD0 - spr_template 0xFFFF, 4, gUnknown_085A7A54, gUnknown_085A7C30, gUnknown_085A7ABC, gDummySpriteAffineAnimTable, sub_810562C +spr_template 0xFFFF, 4, gUnknown_085A7A54, gUnknown_085A7C30, gUnknown_085A7ABC, gDummySpriteAffineAnimTable, sub_810562C gSpriteTemplate_83ED51C:: @ 85A7DE8 - spr_template 0xFFFF, 7, gUnknown_085A7A64, gUnknown_085A7BF8, gUnknown_085A7ACC, gDummySpriteAffineAnimTable, sub_8105784 +spr_template 0xFFFF, 7, gUnknown_085A7A64, gUnknown_085A7BF8, gUnknown_085A7ACC, gDummySpriteAffineAnimTable, sub_8105784 gSpriteTemplate_83ED534:: @ 85A7E00 - spr_template 0xFFFF, 5, gUnknown_085A7A5C, gUnknown_085A7C34, gUnknown_085A7AD4, gDummySpriteAffineAnimTable, sub_8105894 +spr_template 0xFFFF, 5, gUnknown_085A7A5C, gUnknown_085A7C34, gUnknown_085A7AD4, gDummySpriteAffineAnimTable, sub_8105894 gSpriteTemplate_83ED54C:: @ 85A7E18 - spr_template 0xFFFF, 4, gUnknown_085A7A3C, gUnknown_085A7BFC, gUnknown_085A7AE4, gDummySpriteAffineAnimTable, sub_810594C +spr_template 0xFFFF, 4, gUnknown_085A7A3C, gUnknown_085A7BFC, gUnknown_085A7AE4, gDummySpriteAffineAnimTable, sub_810594C gSpriteTemplate_83ED564:: @ 85A7E30 - spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7BF8, gUnknown_085A7AEC, gUnknown_085A7C88, sub_8105A38 - +spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7BF8, gUnknown_085A7AEC, gUnknown_085A7C88, sub_8105A38 + gUnknown_085A7E48:: @ 85A7E48 - spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - +spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + gUnknown_085A7E60:: @ 85A7E60 - spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - +spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + gUnknown_085A7E78:: @ 85A7E78 - spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - +spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + gUnknown_085A7E90:: @ 85A7E90 - spr_template 18, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - +spr_template 18, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + gUnknown_085A7EA8:: @ 85A7EA8 - spr_template 0xFFFF, 6, gUnknown_085A7A6C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - +spr_template 0xFFFF, 6, gUnknown_085A7A6C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + gUnknown_085A7EC0:: @ 85A7EC0 - spr_template 0xFFFF, 6, gUnknown_085A7A6C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy +spr_template 0xFFFF, 6, gUnknown_085A7A6C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_085A7ED8:: @ 85A7ED8 - spr_template 19, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - +spr_template 19, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + gUnknown_085A7EF0:: @ 85A7EF0 - spr_template 20, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - +spr_template 20, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + gUnknown_085A7F08:: @ 85A7F08 - spr_template 21, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - +spr_template 21, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + gUnknown_085A7F20:: @ 85A7F20 - spr_template 0xFFFF, 6, gUnknown_085A7A5C, gUnknown_085A7C38, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - +spr_template 0xFFFF, 6, gUnknown_085A7A5C, gUnknown_085A7C38, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + gUnknown_085A7F38:: @ 85A7F38 - spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - +spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + gUnknown_085A7F50:: @ 85A7F50 - spr_template 0xFFFF, 6, gUnknown_085A7A4C, gUnknown_085A7C4C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - +spr_template 0xFFFF, 6, gUnknown_085A7A4C, gUnknown_085A7C4C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + gUnknown_085A7F68:: @ 85A7F68 - spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7C44, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - +spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7C44, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + gUnknown_085A7F80:: @ 85A7F80 - spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7C40, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - +spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7C40, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + gSpriteTemplate_83ED6CC:: @ 85A7F98 - spr_template 0xFFFF, 4, gUnknown_085A7A3C, gUnknown_085A7BF8, gUnknown_085A7AF4, gUnknown_085A7CDC, sub_8105B70 - +spr_template 0xFFFF, 4, gUnknown_085A7A3C, gUnknown_085A7BF8, gUnknown_085A7AF4, gUnknown_085A7CDC, sub_8105B70 + gUnknown_085A7FB0:: @ 85A7FB0 - subsprite -64, -64, 3, 0, 64x64 - subsprite 0, -64, 3, 0, 64x64 - subsprite -64, 0, 3, 0, 64x64 - subsprite 0, 0, 3, 0, 64x64 +subsprite -64, -64, 3, 0, 64x64 +subsprite 0, -64, 3, 0, 64x64 +subsprite -64, 0, 3, 0, 64x64 +subsprite 0, 0, 3, 0, 64x64 gSubspriteTables_83ED704:: @ 85A7FC0 - .4byte 4, gUnknown_085A7FB0 - +.4byte 4, gUnknown_085A7FB0 + gUnknown_085A7FC8:: @ 85A7FC8 - subsprite -32, -12, 1, 0, 32x8 - subsprite 0, -12, 1, 4, 32x8 - subsprite -32, -4, 1, 8, 32x8 - subsprite 0, -4, 1, 12, 32x8 - subsprite -32, 4, 1, 16, 32x8 - subsprite 0, 4, 1, 20, 32x8 +subsprite -32, -12, 1, 0, 32x8 +subsprite 0, -12, 1, 4, 32x8 +subsprite -32, -4, 1, 8, 32x8 +subsprite 0, -4, 1, 12, 32x8 +subsprite -32, 4, 1, 16, 32x8 +subsprite 0, 4, 1, 20, 32x8 gSubspriteTables_83ED73C:: @ 85A7FE0 - .4byte 6, gUnknown_085A7FC8 +.4byte 6, gUnknown_085A7FC8 gUnknown_085A7FE8:: @ 85A7FE8 - subsprite -32, -20, 1, 0, 64x32 - subsprite -32, 12, 1, 32, 32x8 - subsprite 0, 12, 1, 36, 32x8 - +subsprite -32, -20, 1, 0, 64x32 +subsprite -32, 12, 1, 32, 32x8 +subsprite 0, 12, 1, 36, 32x8 + gSubspriteTables_83ED75C:: @ 85A7FF4 - .4byte 3, gUnknown_085A7FE8 +.4byte 3, gUnknown_085A7FE8 gUnknown_085A7FFC:: @ 85A7FFC - subsprite -32, -24, 1, 0, 64x32 - subsprite -32, 8, 1, 32, 32x8 - subsprite 0, 8, 1, 36, 32x8 - subsprite -32, 16, 1, 40, 32x8 - subsprite 0, 16, 1, 44, 32x8 - +subsprite -32, -24, 1, 0, 64x32 +subsprite -32, 8, 1, 32, 32x8 +subsprite 0, 8, 1, 36, 32x8 +subsprite -32, 16, 1, 40, 32x8 +subsprite 0, 16, 1, 44, 32x8 + gSubspriteTables_83ED78C:: @ 85A8010 - .4byte 5, gUnknown_085A7FFC - +.4byte 5, gUnknown_085A7FFC + gUnknown_085A8018:: @ 85A8018 - subsprite -32, -8, 1, 0, 32x8 - subsprite 0, -8, 1, 4, 32x8 - subsprite -32, 0, 1, 8, 32x8 - subsprite 0, 0, 1, 12, 32x8 +subsprite -32, -8, 1, 0, 32x8 +subsprite 0, -8, 1, 4, 32x8 +subsprite -32, 0, 1, 8, 32x8 +subsprite 0, 0, 1, 12, 32x8 gSubspriteTables_83ED7B4:: @ 85A8028 - .4byte 4, gUnknown_085A8018 - +.4byte 4, gUnknown_085A8018 + gUnknown_085A8030:: @ 85A8030 - subsprite -8, -12, 1, 0, 16x8 - subsprite -8, -4, 1, 0, 16x8 - subsprite -8, 4, 1, 0, 16x8 +subsprite -8, -12, 1, 0, 16x8 +subsprite -8, -4, 1, 0, 16x8 +subsprite -8, 4, 1, 0, 16x8 gSubspriteTables_83ED7D4:: @ 85A803C - .4byte 3, gUnknown_085A8030 +.4byte 3, gUnknown_085A8030 gUnknown_085A8044:: @ 85A8044 - subsprite -32, -24, 3, 0, 64x32 - subsprite -32, 8, 3, 32, 32x8 - subsprite 0, 8, 3, 36, 32x8 - subsprite -32, 16, 3, 40, 32x8 - subsprite 0, 16, 3, 44, 32x8 +subsprite -32, -24, 3, 0, 64x32 +subsprite -32, 8, 3, 32, 32x8 +subsprite 0, 8, 3, 36, 32x8 +subsprite -32, 16, 3, 40, 32x8 +subsprite 0, 16, 3, 44, 32x8 gUnknown_085A8058:: @ 85A8058 - .4byte 5, gUnknown_085A8044 +.4byte 5, gUnknown_085A8044 gUnknown_085A8060:: @ 85A8060 - subsprite -32, -8, 3, 0, 32x8 - subsprite 0, -8, 3, 4, 32x8 - subsprite -32, 0, 3, 8, 32x8 - subsprite 0, 0, 3, 12, 32x8 +subsprite -32, -8, 3, 0, 32x8 +subsprite 0, -8, 3, 4, 32x8 +subsprite -32, 0, 3, 8, 32x8 +subsprite 0, 0, 3, 12, 32x8 gUnknown_085A8070:: @ 85A8070 - .4byte 4, gUnknown_085A8060 +.4byte 4, gUnknown_085A8060 gUnknown_085A8078:: @ 85A8078 - subsprite -32, -8, 3, 0, 32x8 - subsprite 0, -8, 3, 4, 32x8 - subsprite -32, 0, 3, 8, 32x8 - subsprite 0, 0, 3, 12, 32x8 +subsprite -32, -8, 3, 0, 32x8 +subsprite 0, -8, 3, 4, 32x8 +subsprite -32, 0, 3, 8, 32x8 +subsprite 0, 0, 3, 12, 32x8 gUnknown_085A8088:: @ 85A8088 - .4byte 4, gUnknown_085A8078 - +.4byte 4, gUnknown_085A8078 + gUnknown_085A8090:: @ 85A8090 - subsprite -32, -8, 3, 0, 32x8 - subsprite 0, -8, 3, 4, 32x8 - subsprite -32, 0, 3, 8, 32x8 - subsprite 0, 0, 3, 12, 32x8 +subsprite -32, -8, 3, 0, 32x8 +subsprite 0, -8, 3, 4, 32x8 +subsprite -32, 0, 3, 8, 32x8 +subsprite 0, 0, 3, 12, 32x8 gUnknown_085A80A0:: @ 85A80A0 - .4byte 4, gUnknown_085A8090 - +.4byte 4, gUnknown_085A8090 + gUnknown_085A80A8:: @ 85A80A8 - subsprite -32, -12, 3, 0, 32x8 - subsprite 0, -12, 3, 4, 32x8 - subsprite -32, -4, 3, 8, 32x8 - subsprite 0, -4, 3, 12, 32x8 - subsprite -32, 4, 3, 16, 32x8 - subsprite 0, 4, 3, 20, 32x8 +subsprite -32, -12, 3, 0, 32x8 +subsprite 0, -12, 3, 4, 32x8 +subsprite -32, -4, 3, 8, 32x8 +subsprite 0, -4, 3, 12, 32x8 +subsprite -32, 4, 3, 16, 32x8 +subsprite 0, 4, 3, 20, 32x8 gUnknown_085A80C0:: @ 85A80C0 - .4byte 6, gUnknown_085A80A8 - +.4byte 6, gUnknown_085A80A8 + gUnknown_085A80C8:: @ 85A80C8 - subsprite -16, -16, 3, 0, 32x32 - +subsprite -16, -16, 3, 0, 32x32 + gUnknown_085A80CC:: @ 85A80CC - subsprite -8, -8, 3, 16, 16x16 +subsprite -8, -8, 3, 16, 16x16 gUnknown_085A80D0:: @ 85A80D0 - .4byte 1, gUnknown_085A80C8 - +.4byte 1, gUnknown_085A80C8 + gUnknown_085A80D8:: @ 85A80D8 - .4byte 1, gUnknown_085A80CC - +.4byte 1, gUnknown_085A80CC + gUnknown_085A80E0:: @ 85A80E0 - subsprite -24, -24, 3, 0, 32x8 - subsprite 8, -24, 3, 4, 16x8 - subsprite -24, -16, 3, 6, 32x8 - subsprite 8, -16, 3, 10, 16x8 - subsprite -24, -8, 3, 12, 32x8 - subsprite 8, -8, 3, 16, 16x8 - subsprite -24, 0, 3, 18, 32x8 - subsprite 8, 0, 3, 22, 16x8 - subsprite -24, 8, 3, 24, 32x8 - subsprite 8, 8, 3, 28, 16x8 - subsprite -24, 16, 3, 30, 32x8 - subsprite 8, 16, 3, 34, 16x8 +subsprite -24, -24, 3, 0, 32x8 +subsprite 8, -24, 3, 4, 16x8 +subsprite -24, -16, 3, 6, 32x8 +subsprite 8, -16, 3, 10, 16x8 +subsprite -24, -8, 3, 12, 32x8 +subsprite 8, -8, 3, 16, 16x8 +subsprite -24, 0, 3, 18, 32x8 +subsprite 8, 0, 3, 22, 16x8 +subsprite -24, 8, 3, 24, 32x8 +subsprite 8, 8, 3, 28, 16x8 +subsprite -24, 16, 3, 30, 32x8 +subsprite 8, 16, 3, 34, 16x8 gUnknown_085A8110:: @ 85A8110 - .4byte 12, gUnknown_085A80E0 - +.4byte 12, gUnknown_085A80E0 + gUnknown_085A8118:: @ 85A8118 - subsprite -16, -12, 3, 0, 32x16 - subsprite -16, 4, 3, 8, 16x8 - subsprite 0, 4, 3, 10, 16x8 - +subsprite -16, -12, 3, 0, 32x16 +subsprite -16, 4, 3, 8, 16x8 +subsprite 0, 4, 3, 10, 16x8 + gUnknown_085A8124:: @ 85A8124 - .4byte 3, gUnknown_085A8118 - +.4byte 3, gUnknown_085A8118 + gUnknown_085A812C:: @ 85A812C - subsprite -8, -8, 3, 0, 16x8 - subsprite -8, 0, 3, 8, 16x8 - +subsprite -8, -8, 3, 0, 16x8 +subsprite -8, 0, 3, 8, 16x8 + gUnknown_085A8134:: @ 85A8134 - .4byte 2, gUnknown_085A812C - +.4byte 2, gUnknown_085A812C + gUnknown_085A813C:: @ 85A813C - subsprite -8, -8, 3, 2, 16x8 - subsprite -8, 0, 3, 10, 16x8 - +subsprite -8, -8, 3, 2, 16x8 +subsprite -8, 0, 3, 10, 16x8 + gUnknown_085A8144:: @ 85A8144 - .4byte 2, gUnknown_085A813C - +.4byte 2, gUnknown_085A813C + gUnknown_085A814C:: @ 85A814C - subsprite -8, -8, 3, 4, 16x8 - subsprite -8, 0, 3, 12, 16x8 - +subsprite -8, -8, 3, 4, 16x8 +subsprite -8, 0, 3, 12, 16x8 + gUnknown_085A8154:: @ 85A8154 - .4byte 2, gUnknown_085A814C - +.4byte 2, gUnknown_085A814C + gUnknown_085A815C:: @ 85A815C - subsprite -8, -8, 3, 6, 16x8 - subsprite -8, 0, 3, 14, 16x8 - +subsprite -8, -8, 3, 6, 16x8 +subsprite -8, 0, 3, 14, 16x8 + gUnknown_085A8164:: @ 85A8164 - .4byte 2, gUnknown_085A815C - +.4byte 2, gUnknown_085A815C + gUnknown_085A816C:: @ 85A816C - subsprite -8, -8, 3, 0, 16x8 - subsprite -8, 0, 3, 8, 16x8 - +subsprite -8, -8, 3, 0, 16x8 +subsprite -8, 0, 3, 8, 16x8 + gUnknown_085A8174:: @ 85A8174 - .4byte 2, gUnknown_085A816C - +.4byte 2, gUnknown_085A816C + gUnknown_085A817C:: @ 85A817C - subsprite -4, -8, 3, 2, 8x8 - subsprite -4, 0, 3, 10, 8x8 - +subsprite -4, -8, 3, 2, 8x8 +subsprite -4, 0, 3, 10, 8x8 + gUnknown_085A8184:: @ 85A8184 - .4byte 2, gUnknown_085A817C - +.4byte 2, gUnknown_085A817C + gUnknown_085A818C:: @ 85A818C - subsprite -8, -8, 3, 3, 16x8 - subsprite -8, 0, 3, 11, 16x8 - +subsprite -8, -8, 3, 3, 16x8 +subsprite -8, 0, 3, 11, 16x8 + gUnknown_085A8194:: @ 85A8194 - .4byte 2, gUnknown_085A818C - +.4byte 2, gUnknown_085A818C + gUnknown_085A819C:: @ 85A819C - subsprite -4, -8, 3, 5, 8x8 - subsprite -4, 0, 3, 13, 8x8 - +subsprite -4, -8, 3, 5, 8x8 +subsprite -4, 0, 3, 13, 8x8 + gUnknown_085A81A4:: @ 85A81A4 - .4byte 2, gUnknown_085A819C - +.4byte 2, gUnknown_085A819C + gUnknown_085A81AC:: @ 85A81AC - subsprite -8, -8, 3, 6, 16x8 - subsprite -8, 0, 3, 14, 16x8 - +subsprite -8, -8, 3, 6, 16x8 +subsprite -8, 0, 3, 14, 16x8 + gUnknown_085A81B4:: @ 85A81B4 - .4byte 2, gUnknown_085A81AC - +.4byte 2, gUnknown_085A81AC + gUnknown_085A81BC:: @ 85A81BC - subsprite -12, -12, 3, 0, 16x8 - subsprite 4, -12, 3, 2, 8x8 - subsprite -12, -4, 3, 8, 16x8 - subsprite 4, -4, 3, 10, 8x8 - subsprite -12, 4, 3, 16, 16x8 - subsprite 4, 4, 3, 18, 8x8 - +subsprite -12, -12, 3, 0, 16x8 +subsprite 4, -12, 3, 2, 8x8 +subsprite -12, -4, 3, 8, 16x8 +subsprite 4, -4, 3, 10, 8x8 +subsprite -12, 4, 3, 16, 16x8 +subsprite 4, 4, 3, 18, 8x8 + gUnknown_085A81D4:: @ 85A81D4 - .4byte 6, gUnknown_085A81BC - +.4byte 6, gUnknown_085A81BC + gUnknown_085A81DC:: @ 85A81DC - subsprite -8, -12, 3, 3, 16x8 - subsprite -8, -4, 3, 11, 16x8 - subsprite -8, 4, 3, 19, 16x8 - +subsprite -8, -12, 3, 3, 16x8 +subsprite -8, -4, 3, 11, 16x8 +subsprite -8, 4, 3, 19, 16x8 + gUnknown_085A81E8:: @ 85A81E8 - .4byte 3, gUnknown_085A81DC - +.4byte 3, gUnknown_085A81DC + gUnknown_085A81F0:: @ 85A81F0 - subsprite -12, -12, 3, 5, 16x8 - subsprite 4, -12, 3, 7, 8x8 - subsprite -12, -4, 3, 13, 16x8 - subsprite 4, -4, 3, 15, 8x8 - subsprite -12, 4, 3, 21, 16x8 - subsprite 4, 4, 3, 0x17, 8x8 - +subsprite -12, -12, 3, 5, 16x8 +subsprite 4, -12, 3, 7, 8x8 +subsprite -12, -4, 3, 13, 16x8 +subsprite 4, -4, 3, 15, 8x8 +subsprite -12, 4, 3, 21, 16x8 +subsprite 4, 4, 3, 0x17, 8x8 + gUnknown_085A8208:: @ 85A8208 - .4byte 6, gUnknown_085A81F0 - +.4byte 6, gUnknown_085A81F0 + gUnknown_085A8210:: @ 85A8210 - subsprite -12, -12, 3, 0, 16x8 - subsprite 4, -12, 3, 2, 8x8 - subsprite -12, -4, 3, 8, 16x8 - subsprite 4, -4, 3, 10, 8x8 - subsprite -12, 4, 3, 16, 16x8 - subsprite 4, 4, 3, 18, 8x8 - +subsprite -12, -12, 3, 0, 16x8 +subsprite 4, -12, 3, 2, 8x8 +subsprite -12, -4, 3, 8, 16x8 +subsprite 4, -4, 3, 10, 8x8 +subsprite -12, 4, 3, 16, 16x8 +subsprite 4, 4, 3, 18, 8x8 + gUnknown_085A8228:: @ 85A8228 - .4byte 6, gUnknown_085A8210 - +.4byte 6, gUnknown_085A8210 + gUnknown_085A822C:: @ 85A822C - subsprite -8, -12, 3, 3, 16x8 - subsprite -8, -4, 3, 11, 16x8 - subsprite -8, 4, 3, 19, 16x8 - +subsprite -8, -12, 3, 3, 16x8 +subsprite -8, -4, 3, 11, 16x8 +subsprite -8, 4, 3, 19, 16x8 + gUnknown_085A823C:: @ 85A823C - .4byte 3, gUnknown_085A822C - +.4byte 3, gUnknown_085A822C + gUnknown_085A8244:: @ 85A8244 - subsprite -12, -12, 3, 5, 16x8 - subsprite 4, -12, 3, 7, 8x8 - subsprite -12, -4, 3, 13, 16x8 - subsprite 4, -4, 3, 15, 8x8 - subsprite -12, 4, 3, 21, 16x8 - subsprite 4, 4, 3, 23, 8x8 - +subsprite -12, -12, 3, 5, 16x8 +subsprite 4, -12, 3, 7, 8x8 +subsprite -12, -4, 3, 13, 16x8 +subsprite 4, -4, 3, 15, 8x8 +subsprite -12, 4, 3, 21, 16x8 +subsprite 4, 4, 3, 23, 8x8 + gUnknown_085A825C:: @ 85A825C - .4byte 6, gUnknown_085A8244 +.4byte 6, gUnknown_085A8244 gUnknown_083EDB5C:: @ 85A8264 - .4byte gUnknown_085A7E48 - .4byte gUnknown_085A7E60 - .4byte gUnknown_085A7E78 - .4byte gUnknown_085A7EA8 - .4byte gUnknown_085A7EC0 - .4byte gUnknown_085A7F20 - .4byte gUnknown_085A7F38 - .4byte gUnknown_085A7F50 - .4byte gUnknown_085A7F68 - .4byte gUnknown_085A7F80 - .4byte gUnknown_085A7E90 - .4byte gUnknown_085A7E90 - .4byte gUnknown_085A7E90 - .4byte gUnknown_085A7E90 - .4byte gUnknown_085A7ED8 - .4byte gUnknown_085A7ED8 - .4byte gUnknown_085A7ED8 - .4byte gUnknown_085A7ED8 - .4byte gUnknown_085A7ED8 - .4byte gUnknown_085A7EF0 - .4byte gUnknown_085A7EF0 - .4byte gUnknown_085A7EF0 - .4byte gUnknown_085A7F08 - .4byte gUnknown_085A7F08 - .4byte gUnknown_085A7F08 - .4byte gDummySpriteTemplate +.4byte gUnknown_085A7E48 +.4byte gUnknown_085A7E60 +.4byte gUnknown_085A7E78 +.4byte gUnknown_085A7EA8 +.4byte gUnknown_085A7EC0 +.4byte gUnknown_085A7F20 +.4byte gUnknown_085A7F38 +.4byte gUnknown_085A7F50 +.4byte gUnknown_085A7F68 +.4byte gUnknown_085A7F80 +.4byte gUnknown_085A7E90 +.4byte gUnknown_085A7E90 +.4byte gUnknown_085A7E90 +.4byte gUnknown_085A7E90 +.4byte gUnknown_085A7ED8 +.4byte gUnknown_085A7ED8 +.4byte gUnknown_085A7ED8 +.4byte gUnknown_085A7ED8 +.4byte gUnknown_085A7ED8 +.4byte gUnknown_085A7EF0 +.4byte gUnknown_085A7EF0 +.4byte gUnknown_085A7EF0 +.4byte gUnknown_085A7F08 +.4byte gUnknown_085A7F08 +.4byte gUnknown_085A7F08 +.4byte gDummySpriteTemplate gUnknown_083EDBC4:: @ 85A82CC - .4byte gUnknown_085A8058 - .4byte gUnknown_085A8070 - .4byte gUnknown_085A8088 - .4byte gUnknown_085A80C0 - .4byte NULL - .4byte NULL - .4byte gUnknown_085A80D0 - .4byte NULL - .4byte gUnknown_085A8110 - .4byte gUnknown_085A8124 - .4byte gUnknown_085A8134 - .4byte gUnknown_085A8144 - .4byte gUnknown_085A8154 - .4byte gUnknown_085A8164 - .4byte gUnknown_085A8174 - .4byte gUnknown_085A8184 - .4byte gUnknown_085A8194 - .4byte gUnknown_085A81A4 - .4byte gUnknown_085A81B4 - .4byte gUnknown_085A81D4 - .4byte gUnknown_085A81E8 - .4byte gUnknown_085A8208 - .4byte gUnknown_085A8228 - .4byte gUnknown_085A823C - .4byte gUnknown_085A825C - .4byte NULL - - .align 2 +.4byte gUnknown_085A8058 +.4byte gUnknown_085A8070 +.4byte gUnknown_085A8088 +.4byte gUnknown_085A80C0 +.4byte NULL +.4byte NULL +.4byte gUnknown_085A80D0 +.4byte NULL +.4byte gUnknown_085A8110 +.4byte gUnknown_085A8124 +.4byte gUnknown_085A8134 +.4byte gUnknown_085A8144 +.4byte gUnknown_085A8154 +.4byte gUnknown_085A8164 +.4byte gUnknown_085A8174 +.4byte gUnknown_085A8184 +.4byte gUnknown_085A8194 +.4byte gUnknown_085A81A4 +.4byte gUnknown_085A81B4 +.4byte gUnknown_085A81D4 +.4byte gUnknown_085A81E8 +.4byte gUnknown_085A8208 +.4byte gUnknown_085A8228 +.4byte gUnknown_085A823C +.4byte gUnknown_085A825C +.4byte NULL + +.align 2 sSlotMachineSpriteSheets:: @ 85A8334 - obj_tiles gSlotMachineReelSymbol1Tiles, 0x0200, 0x0000 - obj_tiles gSlotMachineReelSymbol2Tiles, 0x0200, 0x0001 - obj_tiles gSlotMachineReelSymbol3Tiles, 0x0200, 0x0002 - obj_tiles gSlotMachineReelSymbol4Tiles, 0x0200, 0x0003 - obj_tiles gSlotMachineReelSymbol5Tiles, 0x0200, 0x0004 - obj_tiles gSlotMachineReelSymbol6Tiles, 0x0200, 0x0005 - obj_tiles gSlotMachineReelSymbol7Tiles, 0x0200, 0x0006 - obj_tiles gSlotMachineNumber0Tiles, 0x0040, 0x0007 - obj_tiles gSlotMachineNumber1Tiles, 0x0040, 0x0008 - obj_tiles gSlotMachineNumber2Tiles, 0x0040, 0x0009 - obj_tiles gSlotMachineNumber3Tiles, 0x0040, 0x000A - obj_tiles gSlotMachineNumber4Tiles, 0x0040, 0x000B - obj_tiles gSlotMachineNumber5Tiles, 0x0040, 0x000C - obj_tiles gSlotMachineNumber6Tiles, 0x0040, 0x000D - obj_tiles gSlotMachineNumber7Tiles, 0x0040, 0x000E - obj_tiles gSlotMachineNumber8Tiles, 0x0040, 0x000F - obj_tiles gSlotMachineNumber9Tiles, 0x0040, 0x0010 - - .align 2 - .byte 0, 0, 0, 0, 0, 2, 0x12, 0, 0, 0, 0, 0, 0, 2, 0x13, 0, 0, 0, 0, 0, 0, 3, 0x14, 0, 0, 0, 0, 0, 0, 3, 0x15, 0, 0, 0, 0, 0, 0, 0, 0, 0 +obj_tiles gSlotMachineReelSymbol1Tiles, 0x0200, 0x0000 +obj_tiles gSlotMachineReelSymbol2Tiles, 0x0200, 0x0001 +obj_tiles gSlotMachineReelSymbol3Tiles, 0x0200, 0x0002 +obj_tiles gSlotMachineReelSymbol4Tiles, 0x0200, 0x0003 +obj_tiles gSlotMachineReelSymbol5Tiles, 0x0200, 0x0004 +obj_tiles gSlotMachineReelSymbol6Tiles, 0x0200, 0x0005 +obj_tiles gSlotMachineReelSymbol7Tiles, 0x0200, 0x0006 +obj_tiles gSlotMachineNumber0Tiles, 0x0040, 0x0007 +obj_tiles gSlotMachineNumber1Tiles, 0x0040, 0x0008 +obj_tiles gSlotMachineNumber2Tiles, 0x0040, 0x0009 +obj_tiles gSlotMachineNumber3Tiles, 0x0040, 0x000A +obj_tiles gSlotMachineNumber4Tiles, 0x0040, 0x000B +obj_tiles gSlotMachineNumber5Tiles, 0x0040, 0x000C +obj_tiles gSlotMachineNumber6Tiles, 0x0040, 0x000D +obj_tiles gSlotMachineNumber7Tiles, 0x0040, 0x000E +obj_tiles gSlotMachineNumber8Tiles, 0x0040, 0x000F +obj_tiles gSlotMachineNumber9Tiles, 0x0040, 0x0010 + +.align 2 +.byte 0, 0, 0, 0, 0, 2, 0x12, 0, 0, 0, 0, 0, 0, 2, 0x13, 0, 0, 0, 0, 0, 0, 3, 0x14, 0, 0, 0, 0, 0, 0, 3, 0x15, 0, 0, 0, 0, 0, 0, 0, 0, 0 gUnknown_083EDCDC:: @ 85A83E4 - .4byte gUnknown_08DD19F8 - @ might be a palette idk - .byte 0x7B, 0x6F, 0x68, 0x69, 0xAB, 0x36, 0xFF, 0x7F, 0x50, 0x57, 0xC0, 0x7E, 0xBA, 2, 0xBA, 2, 0xFD, 1, 0xFD, 1 - -gUnknown_085A83FC:: @ 85A83FC - .byte 0x91, 0x7F - -gUnknown_085A83FE:: @ 85A83FE - .byte 0xBF, 0x43 +.4byte gUnknown_08DD19F8 +@ might be a palette idk +.byte 0x7B, 0x6F, 0x68, 0x69, 0xAB, 0x36, 0xFF, 0x7F, 0x50, 0x57, 0xC0, 0x7E, 0xBA, 2, 0xBA, 2, 0xFD, 1, 0xFD, 1 + +gUnknown_085A83FC:: @ 85A83FC +.byte 0x91, 0x7F + +gUnknown_085A83FE:: @ 85A83FE +.byte 0xBF, 0x43 gUnknown_085A8400:: @ 85A8400 - .byte 0xBF, 0x43 - +.byte 0xBF, 0x43 + gUnknown_085A8402:: @ 85A8402 - .byte 0xBF, 0x4A - +.byte 0xBF, 0x4A + gUnknown_085A8404:: @ 85A8404 - .byte 0xBF, 0x4A, 0, 0 +.byte 0xBF, 0x4A, 0, 0 gUnknown_083EDD08:: @ 85A8408 - .4byte gUnknown_085A83FC - .4byte gUnknown_085A83FE - .4byte gUnknown_085A8400 - .4byte gUnknown_085A8402 - .4byte gUnknown_085A8404 +.4byte gUnknown_085A83FC +.4byte gUnknown_085A83FE +.4byte gUnknown_085A8400 +.4byte gUnknown_085A8402 +.4byte gUnknown_085A8404 gUnknown_083EDD1C:: @ 85A841C - .4byte gSlotMachineMenu_Pal + 0x94 - .4byte gSlotMachineMenu_Pal + 0x96 - .4byte gSlotMachineMenu_Pal + 0x98 - .4byte gSlotMachineMenu_Pal + 0x9A - .4byte gSlotMachineMenu_Pal + 0x9C +.4byte gSlotMachineMenu_Pal + 0x94 +.4byte gSlotMachineMenu_Pal + 0x96 +.4byte gSlotMachineMenu_Pal + 0x98 +.4byte gSlotMachineMenu_Pal + 0x9A +.4byte gSlotMachineMenu_Pal + 0x9C gUnknown_083EDD30:: @ 85A8430 - .byte 0x4A, 0x4B, 0x4C, 0x4E, 0x4D +.byte 0x4A, 0x4B, 0x4C, 0x4E, 0x4D + +gBettingTilesId:: @ 85A8435 +.byte 0, 0 +.byte 1, 2 +.byte 3, 4 -gUnknown_083EDD35:: @ 85A8435 - .byte 0, 0 - .byte 1, 2 - .byte 3, 4 +gNumberBettingTiles:: @ 85A843B +.byte 1, 2, 2 -gUnknown_083EDD3B:: @ 85A843B - .byte 1, 2, 2 - gUnknown_085A843E:: @ 85A843E - .incbin "graphics/slot_machine/85A843E.gbapal" - +.incbin "graphics/slot_machine/85A843E.gbapal" + gUnknown_085A845E:: @ 85A845E - .incbin "graphics/slot_machine/85A845E.gbapal" - +.incbin "graphics/slot_machine/85A845E.gbapal" + gUnknown_085A847E:: @ 85A847E - .incbin "graphics/slot_machine/85A847E.gbapal" +.incbin "graphics/slot_machine/85A847E.gbapal" - .align 2 +.align 2 gUnknown_083EDDA0:: @ 85A84A0 - .4byte gUnknown_085A843E - .4byte gUnknown_085A845E - .4byte gUnknown_085A847E +.4byte gUnknown_085A843E +.4byte gUnknown_085A845E +.4byte gUnknown_085A847E gUnknown_083EDDAC:: @ 85A84AC - .4byte gSlotMachineMenu_Pal + 0x20 - +.4byte gSlotMachineMenu_Pal + 0x20 + gUnknown_085A84B0:: @ 85A84B0 - .incbin "graphics/slot_machine/85A84B0.gbapal" - +.incbin "graphics/slot_machine/85A84B0.gbapal" + gUnknown_085A84D0:: @ 85A84D0 - .incbin "graphics/slot_machine/85A84D0.gbapal" - +.incbin "graphics/slot_machine/85A84D0.gbapal" + gUnknown_085A84F0:: @ 85A84F0 - .incbin "graphics/slot_machine/85A84F0.gbapal" +.incbin "graphics/slot_machine/85A84F0.gbapal" gUnknown_083EDE10:: @ 85A8510 - .4byte gUnknown_085A84B0 - .4byte gUnknown_085A84D0 - .4byte gUnknown_085A84F0 - .4byte gUnknown_08DCF230 +.4byte gUnknown_085A84B0 +.4byte gUnknown_085A84D0 +.4byte gUnknown_085A84F0 +.4byte gUnknown_08DCF230 gUnknown_083EDE20:: @ 85A8520 - .4byte gUnknown_08DCF230 +.4byte gUnknown_08DCF230 gPalette_83EDE24:: @ 85A8524 - .incbin "graphics/slot_machine/85A8524.bin" +.incbin "graphics/slot_machine/85A8524.bin" - .align 2 +.align 2 gSlotMachineSpritePalettes:: @ 85A8544 - obj_pal gUnknown_08DCF170, 0 - obj_pal gUnknown_08DCF190, 1 - obj_pal gUnknown_08DCF1B0, 2 - obj_pal gSlotMachineReelTime_Pal, 3 - obj_pal gUnknown_08DCF1F0, 4 - obj_pal gUnknown_08DCF210, 5 - obj_pal gUnknown_08DCF230, 6 - obj_pal gUnknown_08DCF1F0, 7 - null_obj_pal +obj_pal gUnknown_08DCF170, 0 +obj_pal gUnknown_08DCF190, 1 +obj_pal gUnknown_08DCF1B0, 2 +obj_pal gSlotMachineReelTime_Pal, 3 +obj_pal gUnknown_08DCF1F0, 4 +obj_pal gUnknown_08DCF210, 5 +obj_pal gUnknown_08DCF230, 6 +obj_pal gUnknown_08DCF1F0, 7 +null_obj_pal sReelTimeGfx:: @ 85A858C - .incbin "graphics/slot_machine/reel_time_gfx.4bpp.lz" +.incbin "graphics/slot_machine/reel_time_gfx.4bpp.lz" sReelTimeWindowTilemap:: @ 85A96E0 - @if anyone knows what this tilemap is please do share - .incbin "graphics/slot_machine/85A96E0.bin" +@if anyone knows what this tilemap is please do share +.incbin "graphics/slot_machine/85A96E0.bin" gUnknown_085A9898:: @ 85A9898 - .4byte NULL +.4byte NULL diff --git a/include/slot_machine.h b/include/slot_machine.h index 88bbbd91b..fae937834 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -1,6 +1,9 @@ #ifndef GUARD_SLOT_MACHINE_H #define GUARD_SLOT_MACHINE_H +#define REEL_NUM_TAGS 21 + + void PlaySlotMachine(u8, void (callback)(void)); #endif // GUARD_SLOT_MACHINE_H diff --git a/include/task.h b/include/task.h index a199ba128..4852571b4 100644 --- a/include/task.h +++ b/include/task.h @@ -1,6 +1,9 @@ #ifndef GUARD_TASK_H #define GUARD_TASK_H +#define HEAD_SENTINEL 0xFE +#define TAIL_SENTINEL 0xFF + #define NUM_TASKS 16 typedef void (*TaskFunc)(u8 taskId); diff --git a/include/tv.h b/include/tv.h index a7ef3daa8..0f50f2327 100644 --- a/include/tv.h +++ b/include/tv.h @@ -1,6 +1,9 @@ #ifndef GUARD_TV_H #define GUARD_TV_H +#define SLOT_MACHINE 0 +#define ROULETTE 1 + extern u8 *const gTVStringVarPtrs[3]; void ClearTVShowData(void); @@ -23,9 +26,9 @@ bool8 GetPriceReduction(u8 newsKind); void sub_80F14F8(TVShow *shows); size_t CountDigits(int value); u8 GetRibbonCount(struct Pokemon *pokemon); -void sub_80EDE70(u16 nCoinsSpent); -void sub_80EDE84(u16 nCoinsSpent); -void sub_80EDD78(u16 nCoinsPaidOut); +void reportPlayedSlotMachine(u16 nCoinsSpent); +void reportPlayedRoulette(u16 nCoinsSpent); +void reportNewCoinTotal(u16 nCoinsPaidOut); void sub_80EEA70(void); void sub_80EDB44(void); void sub_80EDC60(const u16 *words); diff --git a/src/roulette.c b/src/roulette.c index a6a020f39..b19750f2a 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -996,7 +996,7 @@ static void sub_81405CC(void) taskId = gUnknown_0203AB88->varA4 = CreateTask(sub_81408A8, 0); gTasks[taskId].data[6] = 6; gTasks[taskId].data[13] = GetCoins(); - sub_80EDE84(GetCoins()); + reportPlayedRoulette(GetCoins()); gUnknown_0203AB88->varA5 = CreateTask(sub_8140814, 1); SetMainCallback2(sub_8140238); return; @@ -1964,7 +1964,7 @@ static void sub_8141DE4(u8 taskId) gSpecialVar_0x8004 = TRUE; else gSpecialVar_0x8004 = FALSE; - sub_80EDD78(GetCoins()); + reportNewCoinTotal(GetCoins()); BeginHardwarePaletteFade(0xFF, 0, 0, 16, 0); gTasks[taskId].func = sub_8141E7C; } diff --git a/src/slot_machine.c b/src/slot_machine.c index 0871506cd..7552e755c 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -59,34 +59,34 @@ enum struct SlotMachineEwramStruct { - /*0x00*/ u8 state; - /*0x01*/ u8 unk01; + /*0x00*/ u8 slotActionPtr; + /*0x01*/ u8 machineId; /*0x02*/ u8 pikaPower; - /*0x03*/ u8 unk03; - /*0x04*/ u8 unk04; - /*0x05*/ u8 unk05; - /*0x06*/ u8 unk06; - /*0x07*/ u8 unk07; + /*0x03*/ u8 luckyGame; + /*0x04*/ u8 luckyFlags; + /*0x05*/ u8 reelTimeDraw; + /*0x06*/ u8 isBiasTagMatchPossible; // tentative + /*0x07*/ u8 biasTag; /*0x08*/ u16 matchedSymbols; - /*0x0A*/ u8 unk0A; - /*0x0B*/ u8 unk0B; + /*0x0A*/ u8 fairRollsLeft; + /*0x0B*/ u8 fairRollsUsed; /*0x0C*/ s16 coins; /*0x0E*/ s16 payout; - /*0x10*/ s16 unk10; + /*0x10*/ s16 netCoinLoss; // coins lost to machine (but never goes below 0) /*0x12*/ s16 bet; - /*0x14*/ s16 unk14; - /*0x16*/ s16 unk16; - /*0x18*/ s16 unk18; - /*0x1A*/ s16 unk1A; - /*0x1C*/ s16 unk1C[3]; - /*0x22*/ u16 unk22[3]; + /*0x14*/ s16 reelTimePixelOffset; + /*0x16*/ s16 reelTimePosition; + /*0x18*/ s16 currReel; + /*0x1A*/ s16 reelIncrement; + /*0x1C*/ s16 reelPixelOffsets[3]; + /*0x22*/ u16 stopReelPixelOffset[3]; /*0x28*/ s16 reelPositions[3]; - /*0x2E*/ s16 unk2E[3]; - /*0x34*/ s16 unk34[3]; + /*0x2E*/ s16 reelExtraTurns[3]; + /*0x34*/ s16 biasTagFinalPositions[3]; /*0x3A*/ u8 reelTasks[3]; - /*0x3D*/ u8 unk3D; - /*0x3E*/ u8 unk3E; - /*0x3F*/ u8 unk3F; + /*0x3D*/ u8 unkTaskPointer3D; + /*0x3E*/ u8 unkTaskPointer; + /*0x3F*/ u8 reelTimeSprite3F; /*0x40*/ u8 unk40; /*0x41*/ u8 unk41; /*0x42*/ u8 unk42; @@ -95,8 +95,8 @@ struct SlotMachineEwramStruct /*0x49*/ u8 unk49[2]; /*0x49*/ u8 unk4B[3]; /*0x4E*/ u8 unk4E[2]; - /*0x50*/ u8 unk50[2]; - /*0x52*/ u8 unk52[2]; + /*0x50*/ u8 reelTimeSprites1[2]; + /*0x52*/ u8 reelTimeSprites2[2]; /*0x54*/ u8 unk54[4]; /*0x58*/ u16 win0h; /*0x5a*/ u16 win0v; @@ -117,7 +117,7 @@ struct UnkStruct1 /*static */void CB2_SlotMachineSetup(void); /*static */void CB2_SlotMachineLoop(void); -/*static */void PlaySlotMachine_Internal(u8 arg0, MainCallback cb); +/*static */void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinueScriptPlayMapMusic); /*static */void SlotMachineDummyTask(u8 taskId); /*static */void SlotMachineSetup_0_0(void); /*static */void SlotMachineSetup_6_2(void); @@ -133,88 +133,88 @@ struct UnkStruct1 /*static */void SlotMachineSetup_8_0(void); /*static */void SlotMachineSetup_9_0(void); /*static */void SlotMachineSetup_10_0(void); -/*static */void SlotMachineSetup_10_1(void); -/*static */void sub_8101D04(void); +/*static */void SlotMachineSetupGameplayTasks(void); +/*static */void GameplayTasks_Slot(void); /*static */void sub_8104DA4(void); -/*static */void sub_8101D24(u8 taskId); -/*static */bool8 sub_8101D5C(struct Task *task); -/*static */bool8 sub_8101D8C(struct Task *task); -/*static */bool8 sub_8101DB0(struct Task *task); -/*static */bool8 sub_8101DF4(struct Task *task); -/*static */bool8 sub_8101E10(struct Task *task); -/*static */bool8 sub_8101E3C(struct Task *task); -/*static */bool8 sub_8101F44(struct Task *task); -/*static */bool8 sub_8101F60(struct Task *task); -/*static */bool8 sub_8101F88(struct Task *task); -/*static */bool8 sub_8101FA4(struct Task *task); -/*static */bool8 sub_8102008(struct Task *task); -/*static */bool8 sub_8102034(struct Task *task); -/*static */bool8 sub_8102058(struct Task *task); -/*static */bool8 sub_8102090(struct Task *task); -/*static */bool8 sub_81020C8(struct Task *task); -/*static */bool8 sub_81021E0(struct Task *task); -/*static */bool8 sub_81021FC(struct Task *task); -/*static */bool8 sub_8102264(struct Task *task); -/*static */bool8 sub_81022A0(struct Task *task); -/*static */bool8 sub_81022CC(struct Task *task); -/*static */bool8 sub_81022F0(struct Task *task); -/*static */bool8 sub_8102318(struct Task *task); -/*static */bool8 sub_8102344(struct Task *task); -/*static */bool8 sub_810239C(struct Task *task); -/*static */bool8 sub_81023B8(struct Task *task); -/*static */bool8 sub_81023E0_(struct Task *task); -/*static */bool8 sub_81023FC(struct Task *task); -/*static */bool8 sub_8102424(struct Task *task); -/*static */bool8 sub_8102460(struct Task *task); -/*static */void sub_8102484(void); -/*static */void sub_81024F0(void); -/*static */bool8 sub_8102540_(void); -/*static */u8 sub_8102578(void); -/*static */u16 dp15_jump_random_unknown(void); -/*static */u8 sub_81025BC(void); +/*static */void RunSlotActions(u8 taskId); +/*static */bool8 SlotAction_UnfadeScreen(struct Task *task); +/*static */bool8 SlotAction_WaitForUnfade(struct Task *task); +/*static */bool8 SlotAction_SetSlotMachineVars(struct Task *task); +/*static */bool8 SlotAction3(struct Task *task); +/*static */bool8 SlotAction4(struct Task *task); +/*static */bool8 SlotAction_AwaitPlayerInput(struct Task *task); +/*static */bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task); +/*static */bool8 SlotAction_PlayerAcceptsNotHavingThreeCoins(struct Task *task); +/*static */bool8 SlotAction_GivingInformation(struct Task *task); +/*static */bool8 SlotAction9(struct Task *task); +/*static */bool8 SlotAction10(struct Task *task); +/*static */bool8 SlotAction11(struct Task *task); +/*static */bool8 SlotAction_AwaitReelStop(struct Task *task); +/*static */bool8 SlotAction_WaitForAllReelsToStop(struct Task *task); +/*static */bool8 SlotAction_CheckMatches(struct Task *task); +/*static */bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task); +/*static */bool8 SlotAction_EndOfRoll(struct Task *task); +/*static */bool8 SlotAction17(struct Task *task); +/*static */bool8 SlotAction18(struct Task *task); +/*static */bool8 SlotAction_Loop(struct Task *task); +/*static */bool8 SlotAction_NoMatches(struct Task *task); +/*static */bool8 SlotAction_PrintQuitTheGame(struct Task *task); +/*static */bool8 SlotAction_SeeIfPlayerQuits(struct Task *task); +/*static */bool8 SlotAction_Print9999CoinMessage(struct Task *task); +/*static */bool8 SlotAction_Escape9999CoinMessage(struct Task *task); +/*static */bool8 SlotAction_PrintNoMoreCoins(struct Task *task); +/*static */bool8 SlotAction_EscapeNoMoreCoins(struct Task *task); +/*static */bool8 SlotAction_EndGame(struct Task *task); +/*static */bool8 SlotAction_FreeDataStructures(struct Task *task); +/*static */void DrawForLuckyFlags(void); +/*static */void AnyLuckyFlagsSet(void); +/*static */bool8 IsLuckyRound(void); +/*static */u8 AttemptsAtLuckiness1(void); +/*static */u16 DrawNewReelIncrement(void); +/*static */u8 AttemptsAtLuckiness2(void); /*static */void CheckMatch(void); /*static */void CheckMatch_CenterRow(void); /*static */void CheckMatch_TopAndBottom(void); /*static */void CheckMatch_Diagonals(void); /*static */u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3); -/*static */void sub_8102A24(void); -/*static */void sub_8102A64(u8 taskId); -/*static */bool8 sub_8102A44(void); -/*static */bool8 sub_8102A9C(struct Task *task); -/*static */bool8 sub_8102AD0(struct Task *task); -/*static */bool8 sub_8102B80(struct Task *task); -/*static */u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y); -/*static */void sub_8102DA8(void); -/*static */void sub_8102DEC(u8 a0); +/*static */void AwardPayout(void); +/*static */void RunAwardPayoutActions(u8 taskId); +/*static */bool8 IsFinalTask_RunAwardPayoutActions(void); +/*static */bool8 AwardPayoutAction1(struct Task *task); +/*static */bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task); +/*static */bool8 AwardPayoutAction_FreeTask(struct Task *task); +/*static */u8 GetNearbyTag(u8 x, s16 y); +/*static */void GameplayTask_StopReel(void); +/*static */void ReelTasks_8102DEC(u8 a0); /*static */void sub_8102E1C(u8 a0); -/*static */bool8 sub_8102E40(u8 a0); -/*static */void sub_8102E68(u8 taskId); -/*static */bool8 sub_8102EA0(struct Task *task); -/*static */bool8 sub_8102EA4(struct Task *task); -/*static */bool8 sub_8102EC0(struct Task *task); -/*static */bool8 sub_8102F4C(struct Task *task); -/*static */bool8 sub_8103008(struct Task *task); -/*static */bool8 sub_810305C(void); -/*static */bool8 sub_8103154(u8 a0, u8 a1); -/*static */bool8 sub_81031B4(u8 a0, u8 a1); -/*static */bool8 sub_81032C0(void); -/*static */bool8 sub_81032E8(void); -/*static */bool8 sub_810333C(void); -/*static */bool8 sub_81033DC(void); -/*static */bool8 sub_810341C(u8 a0); -/*static */bool8 sub_810347C(u8 a0); -/*static */void sub_81034F4(void); -/*static */void sub_8103540(void); -/*static */void sub_8103564(void); -/*static */void j5_08111E84(void); -/*static */void sub_8103668(void); -/*static */void sub_810380C(void); +/*static */bool8 IsReelMoving(u8 a0); +/*static */void RunReelActions(u8 taskId); +/*static */bool8 ReelAction_StayStill(struct Task *task); +/*static */bool8 ReelAction_Spin(struct Task *task); +/*static */bool8 ReelAction_DecideWhereToStop(struct Task *task); +/*static */bool8 ReelAction_TurnToSelectedTag(struct Task *task); +/*static */bool8 ReelAction_OscillatingStop(struct Task *task); +/*static */bool8 DecideReelTurns_BiasTag_Reel1(void); +/*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8 a0, u8 a1); +/*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 a0, u8 a1); +/*static */bool8 DecideReelTurns_BiasTag_Reel2(void); +/*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void); +/*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void); +/*static */bool8 DecideReelTurns_BiasTag_Reel3(void); +/*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 a0); +/*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet3(u8 a0); +/*static */void DecideReelTurns_NoBiasTag_Reel1(void); +/*static */void DecideReelTurns_NoBiasTag_Reel2(void); +/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet1(void); +/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet2(void); +/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet3(void); +/*static */void DecideReelTurns_NoBiasTag_Reel3(void); /*static */void sub_8103830(void); /*static */void sub_8103910(void); /*static */void sub_8103A78(void); /*static */void sub_8103C14(u8 a0); /*static */void sub_8103C48(u8 taskId); -/*static */void sub_8103D50(u8 a0); +/*static */void LoadBetTiles(u8 a0); /*static */void sub_8103C78(struct Task *task, u8 taskId); /*static */void sub_8103CAC(struct Task *task, u8 taskId); /*static */void sub_8103CC8(struct Task *task, u8 taskId); @@ -229,50 +229,50 @@ struct UnkStruct1 /*static */bool8 sub_8103FA0(void); /*static */void sub_8103FE8_(u8 taskId); /*static */void sub_8104048(void); -/*static */void sub_8104064(u8 pikaPower); +/*static */void DisplayPikaPower(u8 pikaPower); /*static */bool8 sub_81040C8(void); /*static */void sub_81040E8(u8 taskId); /*static */void nullsub_68(struct Task *task); /*static */void sub_810411C(struct Task *task); /*static */void sub_8104144(struct Task *task); /*static */void sub_81041AC(struct Task *task); -/*static */void sub_812D394(struct Task *task); +/*static */void ClearTaskDataFields_2orHigher(struct Task *task); /*static */void sub_810423C(u8 pikaPower); -/*static */void sub_810430C(void); -/*static */bool8 sub_810432C(void); -/*static */void sub_810434C(u8 taskId); -/*static */void sub_810437C(struct Task *task); -/*static */void sub_81043EC(struct Task *task); -/*static */void sub_8104468(struct Task *task); -/*static */void sub_8104498(struct Task *task); -/*static */void sub_8104548(struct Task *task); -/*static */void sub_8104598(struct Task *task); -/*static */void sub_81045CC(struct Task *task); -/*static */void sub_810463C(struct Task *task); -/*static */void sub_81046C0(struct Task *task); -/*static */void sub_8104764(struct Task *task); -/*static */void sub_8104794(struct Task *task); -/*static */void sub_81047EC(struct Task *task); -/*static */void sub_8104860(struct Task *task); -/*static */void sub_81048A8(struct Task *task); -/*static */void sub_81048CC(struct Task *task); -/*static */void sub_8104940(struct Task *task); -/*static */void sub_81049C8(struct Task *task); -/*static */void sub_81049F8(struct Task *task); +/*static */void BeginReelTime(void); +/*static */bool8 IsFinalTask_RunReelTimeActions(void); +/*static */void RunReelTimeActions(u8 taskId); +/*static */void ReelTimeAction1(struct Task *task); +/*static */void ReelTimeAction2(struct Task *task); +/*static */void ReelTimeAction3(struct Task *task); +/*static */void ReelTimeAction4(struct Task *task); +/*static */void ReelTimeAction5(struct Task *task); +/*static */void ReelTimeAction6(struct Task *task); +/*static */void ReelTimeAction7(struct Task *task); +/*static */void ReelTimeAction_LandOnOutcome(struct Task *task); +/*static */void ReelTimeAction9(struct Task *task); +/*static */void ReelTimeAction10(struct Task *task); +/*static */void ReelTimeAction11(struct Task *task); +/*static */void ReelTimeAction12(struct Task *task); +/*static */void ReelTimeAction13(struct Task *task); +/*static */void ReelTimeAction14(struct Task *task); +/*static */void ReelTimeAction15(struct Task *task); +/*static */void ReelTimeAction16(struct Task *task); +/*static */void ReelTimeAction17(struct Task *task); +/*static */void ReelTimeAction18(struct Task *task); /*static */void sub_8104A40(s16 a0, s16 a1); /*static */void sub_8104A88(s16 a0); -/*static */void sub_8104AB8(u8 a0); -/*static */bool8 sub_8104AEC(void); -/*static */void sub_8104B0C(u8 taskId); -/*static */void sub_8104B3C(struct Task *task); -/*static */void sub_8104B60(struct Task *task); -/*static */void sub_8104B80(struct Task *task); -/*static */void sub_8104BC8(struct Task *task); -/*static */void sub_812DD78(struct Task *task); -/*static */void sub_8104BFC(struct Task *task); -/*static */void sub_812DE14(struct Task *task); -/*static */void sub_812DE30(struct Task *task); -/*static */void sub_8104C44(struct Task *task); +/*static */void OpenInfoBox(u8 a0); +/*static */bool8 ClosedInfoBox(void); +/*static */void RunInfoBoxActions(u8 taskId); +/*static */void InfoBox_FadeIn(struct Task *task); +/*static */void InfoBox_WaitForFade(struct Task *task); +/*static */void InfoBox_8104B80(struct Task *task); +/*static */void InfoBox_AwaitPlayerInput(struct Task *task); +/*static */void InfoBox_AddText(struct Task *task); +/*static */void InfoBox_8104BFC(struct Task *task); +/*static */void InfoBox_812DE14(struct Task *task); +/*static */void InfoBox_812DE30(struct Task *task); +/*static */void InfoBox_FreeTask(struct Task *task); /*static */void sub_8104C5C(void); /*static */void sub_8104CAC(u8 arg0); /*static */bool8 sub_8104E18(void); @@ -292,10 +292,10 @@ struct UnkStruct1 /*static */void sub_81054B8(void); /*static */void sub_8105524(void); /*static */void sub_8105554(void); -/*static */void sub_8105578(void); +/*static */void CreateReelTimeSprites1(void); /*static */void sub_8105688(s16 a0); /*static */void sub_81056C0(void); -/*static */void sub_81056F0(void); +/*static */void CreateReelTimeSprite2(void); /*static */void sub_81057E8(s16 a0); /*static */void sub_8105804(void); /*static */void sub_8105854(void); @@ -321,7 +321,7 @@ struct UnkStruct1 // Ewram variables static EWRAM_DATA u16 *gUnknown_0203AAC8 = NULL; -static EWRAM_DATA u16 *gUnknown_0203AACC = NULL; +static EWRAM_DATA u16 *selectedPikaPowerTile = NULL; static EWRAM_DATA u16 *gUnknown_0203AAD0 = NULL; static EWRAM_DATA u8 *gUnknown_0203AAD4 = NULL; static EWRAM_DATA u8 *gUnknown_0203AAD8 = NULL; @@ -355,10 +355,10 @@ static IWRAM_DATA struct SpriteFrameImage *gUnknown_03001188[26]; // Const rom data. extern const struct UnkStruct1 *const gUnknown_083ED048[]; extern const u16 gPalette_83EDE24[]; -extern const u8 gUnknown_083ECD04[][3]; -extern const u8 gUnknown_083ECE3A[]; -extern const u16 gUnknown_083ECE42[]; -extern const u16 gUnknown_083ECE48[]; +extern const u8 sSlotLuckinessTable1[][3]; +extern const u8 LuckyFlagTagOutput[]; +extern const u16 FlagsAttemptAtLuckiness1[]; +extern const u16 FlagsAttemptAtLuckiness2[]; extern const s16 gUnknown_083ECE7E[][2]; extern const SpriteCallback gUnknown_083ECF0C[]; extern const struct SpriteTemplate *const gUnknown_083EDB5C[]; @@ -369,10 +369,10 @@ extern const struct SpriteTemplate gSpriteTemplate_83ED54C; extern const struct SpriteTemplate gSpriteTemplate_83ED534; extern const u8 gUnknown_083ECC58[2]; extern const struct SpriteTemplate gSpriteTemplate_83ED51C; -extern const u16 gUnknown_083ECE12[]; +extern const u16 ProbabilityTable_SkipToReelTimeAction14[]; extern const u16 *const gUnknown_083EDE10[]; -extern const u16 gUnknown_083ECE1C[][2]; -extern const u16 gUnknown_083ECE30[]; +extern const u16 ReelIncrementTable[][2]; +extern const u16 ReelTimeBonusIncrementTable[]; extern const u16 sSlotMatchFlags[]; extern const u16 sSlotPayouts[]; extern const u8 *const gUnknown_083EDCE4; @@ -381,21 +381,21 @@ extern const u32 sReelTimeGfx[]; extern const struct SpriteSheet sSlotMachineSpriteSheets[]; extern const struct SpritePalette gSlotMachineSpritePalettes[]; extern const u16 *const gUnknown_083EDE20; -extern const s16 gUnknown_083ECCF8[][2]; +extern const s16 sInitialReelPositions[][2]; extern const struct BgTemplate gUnknown_085A7424[4]; extern const struct WindowTemplate gUnknown_085A7434[]; -extern const u8 gUnknown_083ECD16[][6]; -extern const u8 gUnknown_083ECD28[][6]; -extern const u8 gUnknown_083ECD46[][17]; -extern const u8 gUnknown_083ECDAC[][17]; +extern const u8 sSlotLuckinessTable2[][6]; +extern const u8 sSlotLuckinessTable3[][6]; +extern const u8 ReelTimeProbabilityTable0[][17]; +extern const u8 ReelTimeProbabilityTable1[][17]; extern const u8 sSym2Match[]; extern const u8 gUnknown_083ECCF1[]; -extern const u8 sReelSymbols[][21]; +extern const u8 sReelSymbols[][REEL_NUM_TAGS]; extern const u16 *const gUnknown_083EDD08[]; extern const u16 *const gUnknown_083EDD1C[]; extern const u8 gUnknown_083EDD30[]; -extern const u8 gUnknown_083EDD35[][2]; -extern const u8 gUnknown_083EDD3B[]; +extern const u8 gBettingTilesId[][2]; +extern const u8 gNumberBettingTiles[]; extern const u16 *const gUnknown_083EDDA0[]; extern const u16 *const gUnknown_083EDDAC; extern const u16 sReelTimeWindowTilemap[]; @@ -453,99 +453,101 @@ const struct WindowTemplate gUnknown_085A7444 = 0, 1, 3, 20, 13, 13, 1 }; -const u8 gUnknown_085A744C[] = {3, 1, 2, 0}; - -bool8 (*const gUnknown_083ECAAC[])(struct Task *task) = -{ - sub_8101D5C, - sub_8101D8C, - sub_8101DB0, - sub_8101DF4, - sub_8101E10, - sub_8101E3C, - sub_8101F44, - sub_8101F60, - sub_8101F88, - sub_8101FA4, - sub_8102008, - sub_8102034, - sub_8102058, - sub_8102090, - sub_81020C8, - sub_81021E0, - sub_81021FC, - sub_8102264, - sub_81022A0, - sub_81022CC, - sub_81022F0, - sub_8102318, - sub_8102344, - sub_810239C, - sub_81023B8, - sub_81023E0_, - sub_81023FC, - sub_8102424, - sub_8102460, +const u8 gColors_ReelTimeHelp[] = {3, 1, 2, 0}; + +bool8 (*const SlotActions[])(struct Task *task) = +{ + SlotAction_UnfadeScreen, + SlotAction_WaitForUnfade, + SlotAction_SetSlotMachineVars, + SlotAction3, + SlotAction4, + SlotAction_AwaitPlayerInput, + SlotAction_PrintYouDontHaveThreeCoins, + SlotAction_PlayerAcceptsNotHavingThreeCoins, + SlotAction_GivingInformation, + SlotAction9, + SlotAction10, + SlotAction11, + SlotAction_AwaitReelStop, + SlotAction_WaitForAllReelsToStop, + SlotAction_CheckMatches, + SlotAction_WaitForPayoutToBeAwarded, + SlotAction_EndOfRoll, + SlotAction17, + SlotAction18, + SlotAction_Loop, + SlotAction_NoMatches, + SlotAction_PrintQuitTheGame, + SlotAction_SeeIfPlayerQuits, + SlotAction_Print9999CoinMessage, + SlotAction_Escape9999CoinMessage, + SlotAction_PrintNoMoreCoins, + SlotAction_EscapeNoMoreCoins, + SlotAction_EndGame, + SlotAction_FreeDataStructures, }; -bool8 (*const gUnknown_083ECB20[])(struct Task *task) = +bool8 (*const AwardPayoutActions[])(struct Task *task) = { - sub_8102A9C, - sub_8102AD0, - sub_8102B80 + AwardPayoutAction1, + AwardPayoutAction_GivePayoutToPlayer, + AwardPayoutAction_FreeTask }; -bool8 (*const gUnknown_083ECB2C[])(struct Task *task) = +bool8 (*const ReelActions[])(struct Task *task) = { - sub_8102EA0, - sub_8102EA4, - sub_8102EC0, - sub_8102F4C, - sub_8103008 + ReelAction_StayStill, + ReelAction_Spin, + ReelAction_DecideWhereToStop, + ReelAction_TurnToSelectedTag, + ReelAction_OscillatingStop }; -bool8 (*const gUnknown_083ECB40[])(void) = +// returns True if a match with the biasTag is possible in that reel +// also modifies data in sSlotMachine reel arrays to indicate how to get to the matching state +bool8 (*const DecideReelTurns_BiasTag[])(void) = { - sub_810305C, - sub_81032C0, - sub_81033DC + DecideReelTurns_BiasTag_Reel1, + DecideReelTurns_BiasTag_Reel2, + DecideReelTurns_BiasTag_Reel3 }; -void (*const gUnknown_083ECB4C[])(void) = +void (*const DecideReelTurns_NoBiasTag[])(void) = { - sub_81034F4, - sub_8103540, - sub_810380C + DecideReelTurns_NoBiasTag_Reel1, + DecideReelTurns_NoBiasTag_Reel2, + DecideReelTurns_NoBiasTag_Reel3 }; -const u16 gUnknown_085A74FC[] = {2, 4, 4, 4, 8}; +const u16 ReelStopShocks[] = {2, 4, 4, 4, 8}; -bool8 (*const gUnknown_083ECB64[])(u8 a0, u8 a1) = +bool8 (*const DecideReelTurns_BiasTag_Reel1_Bets[])(u8 tag1, u8 tag2) = { - sub_8103154, - sub_81031B4, - sub_81031B4 + DecideReelTurns_BiasTag_Reel1_Bet1, + DecideReelTurns_BiasTag_Reel1_Bet2or3, + DecideReelTurns_BiasTag_Reel1_Bet2or3 }; -bool8 (*const gUnknown_083ECB70[])(void) = +bool8 (*const DecideReelTurns_BiasTag_Reel2_Bets[])(void) = { - sub_81032E8, - sub_81032E8, - sub_810333C + DecideReelTurns_BiasTag_Reel2_Bet1or2, + DecideReelTurns_BiasTag_Reel2_Bet1or2, + DecideReelTurns_BiasTag_Reel2_Bet3 }; -bool8 (*const gUnknown_083ECB7C[])(u8 a0) = +bool8 (*const DecideReelTurns_BiasTag_Reel3_Bets[])(u8 biasTag) = { - sub_810341C, - sub_810341C, - sub_810347C + DecideReelTurns_BiasTag_Reel3_Bet1or2, + DecideReelTurns_BiasTag_Reel3_Bet1or2, + DecideReelTurns_BiasTag_Reel3_Bet3 }; -void (*const gUnknown_083ECB88[])(void) = +void (*const DecideReelTurns_NoBiasTag_Reel2_Bets[])(void) = { - sub_8103564, - j5_08111E84, - sub_8103668 + DecideReelTurns_NoBiasTag_Reel2_Bet1, + DecideReelTurns_NoBiasTag_Reel2_Bet2, + DecideReelTurns_NoBiasTag_Reel2_Bet3 }; void (*const gUnknown_083ECB94[])(void) = @@ -572,57 +574,57 @@ void (*const gUnknown_083ECBB4[])(struct Task *task) = sub_81041AC }; -const u16 gUnknown_083ECBC4[][2] = +const u16 pikaPowerTileTable[][2] = { - {0x9e, 0x6e}, - {0x9f, 0x6f}, - {0xaf, 0x7f}, + {0x9e, 0x6e}, // {0b10011110, 0b1101110} + {0x9f, 0x6f}, // {0b10011111, 0b1101111} + {0xaf, 0x7f}, // {0b10101111, 0b1111111} }; -void (*const gUnknown_083ECBD0[])(struct Task *task) = -{ - sub_810437C, - sub_81043EC, - sub_8104468, - sub_8104498, - sub_8104548, - sub_8104598, - sub_81045CC, - sub_810463C, - sub_81046C0, - sub_8104764, - sub_8104794, - sub_81047EC, - sub_8104860, - sub_81048A8, - sub_81048CC, - sub_8104940, - sub_81049C8, - sub_8104794, - sub_81049F8 +void (*const ReelTimeActions[])(struct Task *task) = +{ + ReelTimeAction1, + ReelTimeAction2, + ReelTimeAction3, + ReelTimeAction4, + ReelTimeAction5, + ReelTimeAction6, + ReelTimeAction7, // does stuff with reel time data + ReelTimeAction_LandOnOutcome, + ReelTimeAction9, + ReelTimeAction10, + ReelTimeAction11, + ReelTimeAction12, + ReelTimeAction13, + ReelTimeAction14, + ReelTimeAction15, + ReelTimeAction16, + ReelTimeAction17, + ReelTimeAction11, + ReelTimeAction18 }; const u8 gUnknown_085A75C0[] = {1, 1, 2, 2}; const s16 gUnknown_085A75C4[] = {0x40, 0x30, 0x18, 0x08}; const s16 gUnknown_085A75CC[] = {10, 8, 6, 4}; -void (*const gUnknown_083ECC30[])(struct Task *task) = -{ - sub_8104B3C, - sub_8104B60, - sub_8104B80, - sub_8104B60, - sub_812DD78, - sub_8104B60, - sub_8104BC8, - sub_8104B60, - sub_812DE14, - sub_8104B60, - sub_812DE30, - sub_8104B60, - sub_8104BFC, - sub_8104B60, - sub_8104C44, +void (*const InfoBoxActions[])(struct Task *task) = +{ + InfoBox_FadeIn, + InfoBox_WaitForFade, + InfoBox_8104B80, + InfoBox_WaitForFade, + InfoBox_AddText, + InfoBox_WaitForFade, + InfoBox_AwaitPlayerInput, + InfoBox_WaitForFade, + InfoBox_812DE14, + InfoBox_WaitForFade, + InfoBox_812DE30, + InfoBox_WaitForFade, + InfoBox_8104BFC, + InfoBox_WaitForFade, + InfoBox_FreeTask, }; void (*const gUnknown_083ECC54[])(struct Task *task) = @@ -669,12 +671,12 @@ extern const struct SpriteTemplate gSpriteTemplate_83ED45C; } } -void PlaySlotMachine(u8 arg0, MainCallback cb) +void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinueScriptPlayMapMusic) { u8 taskId; sSlotMachine = AllocZeroed(sizeof(*sSlotMachine)); - PlaySlotMachine_Internal(arg0, cb); + PlaySlotMachine_Internal(slotMachineIndex, CB2_ReturnToFieldContinueScriptPlayMapMusic); taskId = CreateTask(Task_FadeToSlotMachine, 0); gTasks[taskId].tState = 0; } @@ -733,7 +735,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) break; case 10: SlotMachineSetup_10_0(); - SlotMachineSetup_10_1(); + SlotMachineSetupGameplayTasks(); gMain.state++; break; case 11: @@ -761,17 +763,18 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) SetGpuReg(REG_OFFSET_WINOUT, sSlotMachine->winOut); } -/*static */void PlaySlotMachine_Internal(u8 arg0, MainCallback cb) +/*static */void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinueScriptPlayMapMusic) { struct Task *task = gTasks + CreateTask(SlotMachineDummyTask, 0xFF); - task->data[0] = arg0; - StoreWordInTwoHalfwords(task->data + 1, (intptr_t)cb); + task->data[0] = slotMachineIndex; + StoreWordInTwoHalfwords(task->data + 1, (intptr_t)CB2_ReturnToFieldContinueScriptPlayMapMusic); } + /*static */void sub_81019EC(void) { struct Task *task = gTasks + FindTaskIdByFunc(SlotMachineDummyTask); - sSlotMachine->unk01 = task->data[0]; + sSlotMachine->machineId = task->data[0]; LoadWordFromTwoHalfwords((u16 *)(task->data + 1), (u32 *)&sSlotMachine->prevMainCb); } @@ -827,37 +830,40 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(9, 8)); } +// set up initial state of slot machine /*static */void SlotMachineSetup_0_1(void) { u8 i; - sub_81019EC(); - sSlotMachine->state = 0; + sub_81019EC(); // assigns sSlotMachine->machineId and other stuff + sSlotMachine->slotActionPtr = 0; sSlotMachine->pikaPower = 0; - sSlotMachine->unk03 = Random() & 1; - sSlotMachine->unk04 = 0; + sSlotMachine->luckyGame = Random() & 1; + sSlotMachine->luckyFlags = 0; sSlotMachine->matchedSymbols = 0; - sSlotMachine->unk0A = 0; - sSlotMachine->unk0B = 0; + sSlotMachine->fairRollsLeft = 0; + sSlotMachine->fairRollsUsed = 0; sSlotMachine->coins = GetCoins(); sSlotMachine->payout = 0; - sSlotMachine->unk10 = 0; + sSlotMachine->netCoinLoss = 0; sSlotMachine->bet = 0; - sSlotMachine->unk18 = 0; - sSlotMachine->unk1A = 8; + sSlotMachine->currReel = 0; + sSlotMachine->reelIncrement = 8; sSlotMachine->win0h = 0xf0; sSlotMachine->win0v = 0xa0; sSlotMachine->winIn = 0x3f; sSlotMachine->winOut = 0x3f; sSlotMachine->backupMapMusic = GetCurrentMapMusic(); + + // for each reel... for (i = 0; i < 3; i++) { - sSlotMachine->unk22[i] = 0; - sSlotMachine->reelPositions[i] = gUnknown_083ECCF8[i][sSlotMachine->unk03] % 21; - sSlotMachine->unk1C[i] = 0x1f8 - sSlotMachine->reelPositions[i] * 24; - sSlotMachine->unk1C[i] %= 0x1f8; + sSlotMachine->stopReelPixelOffset[i] = 0; + sSlotMachine->reelPositions[i] = sInitialReelPositions[i][sSlotMachine->luckyGame] % REEL_NUM_TAGS; + sSlotMachine->reelPixelOffsets[i] = 0x1f8 - sSlotMachine->reelPositions[i] * 24; + sSlotMachine->reelPixelOffsets[i] %= 0x1f8; // 0x1f8 is 540 } - sub_80EDE70(GetCoins()); + reportPlayedSlotMachine(GetCoins()); } /*static */void SlotMachineSetup_3_0(void) @@ -871,10 +877,11 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) /*static */void SlotMachineSetup_4_0(void) { - gUnknown_0203AACC = Alloc(8); + selectedPikaPowerTile = Alloc(8); gUnknown_0203AAD0 = AllocZeroed(0xE); gUnknown_0203AADC = AllocZeroed(8); + // several of these are 1 bit off from each other gUnknown_0203AAD0[0] = 0x2051; gUnknown_0203AAD0[1] = 0x2851; gUnknown_0203AAD0[2] = 0x2061; @@ -884,6 +891,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) gUnknown_0203AAD0[6] = 0x20BF; } +// machine wheel stuff /*static */void SlotMachineSetup_5_0(void) { sub_8106448(); @@ -902,98 +910,100 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) sub_81050C4(); } -/*static */void SlotMachineSetup_10_1(void) +// create next gameplay task +/*static */void SlotMachineSetupGameplayTasks(void) { sub_8104048(); - sub_8102DA8(); + GameplayTask_StopReel(); sub_8104C5C(); - sub_8101D04(); + GameplayTasks_Slot(); } -/*static */void sub_8101D04(void) +/*static */void GameplayTasks_Slot(void) { - sub_8101D24(CreateTask(sub_8101D24, 0)); + RunSlotActions(CreateTask(RunSlotActions, 0)); } -/*static */void sub_8101D24(u8 taskId) +// task->data[0] is a timer +/*static */void RunSlotActions(u8 taskId) { - while (gUnknown_083ECAAC[sSlotMachine->state](gTasks + taskId)) + while (SlotActions[sSlotMachine->slotActionPtr](gTasks + taskId)) ; } -/*static */bool8 sub_8101D5C(struct Task *task) +/*static */bool8 SlotAction_UnfadeScreen(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); sub_810423C(sSlotMachine->pikaPower); - sSlotMachine->state++; + sSlotMachine->slotActionPtr++; return FALSE; } -/*static */bool8 sub_8101D8C(struct Task *task) +/*static */bool8 SlotAction_WaitForUnfade(struct Task *task) { if (!gPaletteFade.active) - sSlotMachine->state++; + sSlotMachine->slotActionPtr++; return FALSE; } -/*static */bool8 sub_8101DB0(struct Task *task) +/*static */bool8 SlotAction_SetSlotMachineVars(struct Task *task) { sSlotMachine->payout = 0; sSlotMachine->bet = 0; - sSlotMachine->unk18 = 0; - sSlotMachine->unk04 &= 0xc0; - sSlotMachine->state = 4; + sSlotMachine->currReel = 0; + sSlotMachine->luckyFlags &= 0xc0; // discard all but top 2 flags + sSlotMachine->slotActionPtr = 4; if (sSlotMachine->coins <= 0) { - sSlotMachine->state = 25; + sSlotMachine->slotActionPtr = 25; } - else if (sSlotMachine->unk0A) + else if (sSlotMachine->fairRollsLeft) { - sSlotMachine->state = 3; + sSlotMachine->slotActionPtr = 3; sub_8104CAC(4); } return TRUE; } -/*static */bool8 sub_8101DF4(struct Task *task) +/*static */bool8 SlotAction3(struct Task *task) { if (sub_8104E18()) - sSlotMachine->state = 4; + sSlotMachine->slotActionPtr = 4; return FALSE; } -/*static */bool8 sub_8101E10(struct Task *task) +/*static */bool8 SlotAction4(struct Task *task) { sub_8104CAC(0); - sSlotMachine->state = 5; + sSlotMachine->slotActionPtr = 5; if (sSlotMachine->coins >= 9999) - sSlotMachine->state = 23; + sSlotMachine->slotActionPtr = 23; return TRUE; } -/*static */bool8 sub_8101E3C(struct Task *task) +/*static */bool8 SlotAction_AwaitPlayerInput(struct Task *task) { s16 i; if (gMain.newKeys & SELECT_BUTTON) { - sub_8104AB8(0); - sSlotMachine->state = 8; + OpenInfoBox(0); + sSlotMachine->slotActionPtr = 8; } - else if (gMain.newKeys & R_BUTTON) + else if (gMain.newKeys & R_BUTTON) // bet the max amount { if (sSlotMachine->coins - (3 - sSlotMachine->bet) >= 0) { for (i = sSlotMachine->bet; i < 3; i++) - sub_8103D50(i); + LoadBetTiles(i); sSlotMachine->coins -= (3 - sSlotMachine->bet); sSlotMachine->bet = 3; - sSlotMachine->state = 9; + sSlotMachine->slotActionPtr = 9; PlaySE(SE_REGI); } - else + else // you didn't have enough coins to bet the max { - sSlotMachine->state = 6; + sSlotMachine->slotActionPtr = 6; } } else @@ -1001,135 +1011,145 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) if (gMain.newKeys & DPAD_DOWN && sSlotMachine->coins != 0) { PlaySE(SE_REGI); - sub_8103D50(sSlotMachine->bet); + LoadBetTiles(sSlotMachine->bet); sSlotMachine->coins--; sSlotMachine->bet++; } + // if player maxed out or finished betting if (sSlotMachine->bet >= 3 || (sSlotMachine->bet != 0 && gMain.newKeys & A_BUTTON)) - sSlotMachine->state = 9; + sSlotMachine->slotActionPtr = 9; + // if player wants to quit if (gMain.newKeys & B_BUTTON) - sSlotMachine->state = 21; + sSlotMachine->slotActionPtr = 21; } return FALSE; } -/*static */bool8 sub_8101F44(struct Task *task) +/*static */bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouDontHaveThreeCoins, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sSlotMachine->state = 7; + sSlotMachine->slotActionPtr = 7; return FALSE; } -/*static */bool8 sub_8101F60(struct Task *task) +/*static */bool8 SlotAction_PlayerAcceptsNotHavingThreeCoins(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { sub_8197434(0, TRUE); - sSlotMachine->state = 5; + sSlotMachine->slotActionPtr = 5; } return FALSE; } -/*static */bool8 sub_8101F88(struct Task *task) +/*static */bool8 SlotAction_GivingInformation(struct Task *task) { - if (sub_8104AEC()) - sSlotMachine->state = 5; + if (ClosedInfoBox()) + sSlotMachine->slotActionPtr = 5; return FALSE; } -/*static */bool8 sub_8101FA4(struct Task *task) +// probably make all the slots roll +/*static */bool8 SlotAction9(struct Task *task) { - sub_8102484(); + DrawForLuckyFlags(); sub_8104DA4(); - sub_8102DEC(0); - sub_8102DEC(1); - sub_8102DEC(2); - sub_80EEC80(); + // for each reel... + //...do a reel task + ReelTasks_8102DEC(0); + ReelTasks_8102DEC(1); + ReelTasks_8102DEC(2); + sub_80EEC80(); // something with daily slot variable task->data[0] = 0; - if (sSlotMachine->unk04 & 0x20) + if (sSlotMachine->luckyFlags & 0x20) // bit 5 of luckyFlag set { - sub_810430C(); - sSlotMachine->state = 10; + // enter into reel time + BeginReelTime(); + sSlotMachine->slotActionPtr = 10; } else { sub_8104CAC(1); - sSlotMachine->state = 11; + sSlotMachine->slotActionPtr = 11; } - sSlotMachine->unk1A = 8; - if (sSlotMachine->unk0A) - sSlotMachine->unk1A = dp15_jump_random_unknown(); + sSlotMachine->reelIncrement = 8; + if (sSlotMachine->fairRollsLeft) + // slow down the reel speed if you're really losing + sSlotMachine->reelIncrement = DrawNewReelIncrement(); return FALSE; } -/*static */bool8 sub_8102008(struct Task *task) +/*static */bool8 SlotAction10(struct Task *task) { - if (sub_810432C()) + if (IsFinalTask_RunReelTimeActions()) { sub_8104CAC(1); - sSlotMachine->unk04 &= 0xDF; - sSlotMachine->state = 11; + // unset enter reel time flag + sSlotMachine->luckyFlags &= 0xDF; + sSlotMachine->slotActionPtr = 11; } return FALSE; } -/*static */bool8 sub_8102034(struct Task *task) +/*static */bool8 SlotAction11(struct Task *task) { if (++task->data[0] >= 30) { - sub_81024F0(); - sSlotMachine->state = 12; + AnyLuckyFlagsSet(); + sSlotMachine->slotActionPtr = 12; } return FALSE; } -/*static */bool8 sub_8102058(struct Task *task) +/*static */bool8 SlotAction_AwaitReelStop(struct Task *task) { if (gMain.newKeys & A_BUTTON) { PlaySE(SE_JYUNI); - sub_8102E1C(sSlotMachine->unk18); - sub_8103C14(sSlotMachine->unk18); - sSlotMachine->state = 13; + sub_8102E1C(sSlotMachine->currReel); + sub_8103C14(sSlotMachine->currReel); + sSlotMachine->slotActionPtr = 13; } return FALSE; } -/*static */bool8 sub_8102090(struct Task *task) +/*static */bool8 SlotAction_WaitForAllReelsToStop(struct Task *task) { - if (!sub_8102E40(sSlotMachine->unk18)) + if (!IsReelMoving(sSlotMachine->currReel)) { - sSlotMachine->unk18++; - sSlotMachine->state = 12; - if (sSlotMachine->unk18 > 2) + sSlotMachine->currReel++; + sSlotMachine->slotActionPtr = 12; + if (sSlotMachine->currReel > 2) { - sSlotMachine->state = 14; + sSlotMachine->slotActionPtr = 14; } return TRUE; } return FALSE; } -/*static */bool8 sub_81020C8(struct Task *task) +// once all reels have stopped +/*static */bool8 SlotAction_CheckMatches(struct Task *task) { - sSlotMachine->unk04 &= 0xc0; + // keep top 2 bits of luckyFlags + sSlotMachine->luckyFlags &= 0xc0; CheckMatch(); - if (sSlotMachine->unk0A) + if (sSlotMachine->fairRollsLeft) { - sSlotMachine->unk0A--; - sSlotMachine->unk0B++; + sSlotMachine->fairRollsLeft--; + sSlotMachine->fairRollsUsed++; } if (sSlotMachine->matchedSymbols) { - sSlotMachine->state = 15; - sub_8102A24(); + sSlotMachine->slotActionPtr = 15; + AwardPayout(); sub_8103F70(); - if ((sSlotMachine->unk10 -= sSlotMachine->payout) < 0) + if ((sSlotMachine->netCoinLoss -= sSlotMachine->payout) < 0) { - sSlotMachine->unk10 = 0; + sSlotMachine->netCoinLoss = 0; } if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) { @@ -1148,190 +1168,193 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) } if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_MIXED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) { - sSlotMachine->unk04 &= 0x3f; + // clear top bits 6 and 7 + sSlotMachine->luckyFlags &= 0x3f; if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) { - sSlotMachine->unk0A = 0; - sSlotMachine->unk0B = 0; - sSlotMachine->unk03 = 0; + sSlotMachine->fairRollsLeft = 0; + sSlotMachine->fairRollsUsed = 0; + sSlotMachine->luckyGame = 0; if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_BLUE)) - sSlotMachine->unk03 = 1; + // this may be a bug, but if you get blue 777, the game becomes lucky + sSlotMachine->luckyGame = 1; } } if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER) && sSlotMachine->pikaPower < 16) { sSlotMachine->pikaPower++; - sub_8104064(sSlotMachine->pikaPower); + DisplayPikaPower(sSlotMachine->pikaPower); } } else { sub_8104CAC(3); - sSlotMachine->state = 20; - if ((sSlotMachine->unk10 += sSlotMachine->bet) > 9999) - sSlotMachine->unk10 = 9999; + sSlotMachine->slotActionPtr = 20; + if ((sSlotMachine->netCoinLoss += sSlotMachine->bet) > 9999) + sSlotMachine->netCoinLoss = 9999; } return FALSE; } -/*static */bool8 sub_81021E0(struct Task *task) +/*static */bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task) { - if (sub_8102A44()) - sSlotMachine->state = 16; + if (IsFinalTask_RunAwardPayoutActions()) + sSlotMachine->slotActionPtr = 16; return FALSE; } -/*static */bool8 sub_81021FC(struct Task *task) +/*static */bool8 SlotAction_EndOfRoll(struct Task *task) { if (sub_8103FA0()) { - sSlotMachine->state = 19; + sSlotMachine->slotActionPtr = 19; if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_RED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE))) IncrementGameStat(GAME_STAT_SLOT_JACKPOTS); if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { - sSlotMachine->unk18 = 0; - sSlotMachine->state = 9; + sSlotMachine->currReel = 0; + sSlotMachine->slotActionPtr = 9; } if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER)) - sSlotMachine->state = 17; - if (sSlotMachine->unk0A && sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) + sSlotMachine->slotActionPtr = 17; + if (sSlotMachine->fairRollsLeft && sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { sub_8104CAC(4); - sSlotMachine->state = 18; + sSlotMachine->slotActionPtr = 18; } } return FALSE; } -/*static */bool8 sub_8102264(struct Task *task) +/*static */bool8 SlotAction17(struct Task *task) { if (!sub_81040C8()) { - sSlotMachine->state = 19; + sSlotMachine->slotActionPtr = 19; if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { - sSlotMachine->state = 9; - if (sSlotMachine->unk0A) + sSlotMachine->slotActionPtr = 9; + if (sSlotMachine->fairRollsLeft) { sub_8104CAC(4); - sSlotMachine->state = 18; + sSlotMachine->slotActionPtr = 18; } } } return FALSE; } -/*static */bool8 sub_81022A0(struct Task *task) +/*static */bool8 SlotAction18(struct Task *task) { if (sub_8104E18()) { - sSlotMachine->state = 19; + sSlotMachine->slotActionPtr = 19; if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { - sSlotMachine->state = 9; + sSlotMachine->slotActionPtr = 9; } } return FALSE; } -/*static */bool8 sub_81022CC(struct Task *task) +/*static */bool8 SlotAction_Loop(struct Task *task) { sub_8103D8C(0); sub_8103D8C(1); sub_8103D8C(2); - sSlotMachine->state = 2; + sSlotMachine->slotActionPtr = 2; return FALSE; } -/*static */bool8 sub_81022F0(struct Task *task) +/*static */bool8 SlotAction_NoMatches(struct Task *task) { if (++task->data[1] > 64) { task->data[1] = 0; - sSlotMachine->state = 19; + sSlotMachine->slotActionPtr = 19; } return FALSE; } -/*static */bool8 sub_8102318(struct Task *task) +/*static */bool8 SlotAction_PrintQuitTheGame(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_QuitTheGame, 0, 1, 0, 0); CopyWindowToVram(0, 3); CreateYesNoMenuParameterized(0x15, 7, 0x214, 0x180, 0xE, 0xF); - sSlotMachine->state = 22; + sSlotMachine->slotActionPtr = 22; return FALSE; } -/*static */bool8 sub_8102344(struct Task *task) +/*static */bool8 SlotAction_SeeIfPlayerQuits(struct Task *task) { s8 input = Menu_ProcessInputNoWrapClearOnChoose(); - if (input == 0) + if (input == 0) // player chooses to quit { sub_8197434(0, TRUE); sub_8103D8C(0); sub_8103D8C(1); sub_8103D8C(2); sSlotMachine->coins += sSlotMachine->bet; - sSlotMachine->state = 27; + sSlotMachine->slotActionPtr = 27; } - else if (input == 1 || input == -1) + else if (input == 1 || input == -1) // player chooses not to quit { sub_8197434(0, TRUE); - sSlotMachine->state = 5; + sSlotMachine->slotActionPtr = 5; } return FALSE; } -/*static */bool8 sub_810239C(struct Task *task) +/*static */bool8 SlotAction_Print9999CoinMessage(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveGot9999Coins, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sSlotMachine->state = 24; + sSlotMachine->slotActionPtr = 24; return FALSE; } -/*static */bool8 sub_81023B8(struct Task *task) +/*static */bool8 SlotAction_Escape9999CoinMessage(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { sub_8197434(0, TRUE); - sSlotMachine->state = 5; + sSlotMachine->slotActionPtr = 5; } return FALSE; } -/*static */bool8 sub_81023E0_(struct Task *task) +/*static */bool8 SlotAction_PrintNoMoreCoins(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveRunOutOfCoins, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sSlotMachine->state = 26; + sSlotMachine->slotActionPtr = 26; return FALSE; } -/*static */bool8 sub_81023FC(struct Task *task) +/*static */bool8 SlotAction_EscapeNoMoreCoins(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { sub_8197434(0, TRUE); - sSlotMachine->state = 27; + sSlotMachine->slotActionPtr = 27; } return FALSE; } -/*static */bool8 sub_8102424(struct Task *task) +// possibly end game +/*static */bool8 SlotAction_EndGame(struct Task *task) { SetCoins(sSlotMachine->coins); - sub_80EDD78(GetCoins()); + reportNewCoinTotal(GetCoins()); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); - sSlotMachine->state++; + sSlotMachine->slotActionPtr++; return FALSE; } -/*static */bool8 sub_8102460(struct Task *task) +/*static */bool8 SlotAction_FreeDataStructures(struct Task *task) { if (!gPaletteFade.active) { @@ -1359,7 +1382,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) if (gUnknown_0203AAF0 != NULL) FREE_AND_SET_NULL(gUnknown_0203AAF0); FREE_AND_SET_NULL(gUnknown_0203AAC8); - FREE_AND_SET_NULL(gUnknown_0203AACC); + FREE_AND_SET_NULL(selectedPikaPowerTile); FREE_AND_SET_NULL(gUnknown_0203AAD0); FREE_AND_SET_NULL(gUnknown_0203AAD4); FREE_AND_SET_NULL(gUnknown_0203AAD8); @@ -1373,157 +1396,161 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) return FALSE; } -/*static */void sub_8102484(void) +/*static */void DrawForLuckyFlags(void) { - u8 r3; + u8 luckyAttempts; - if (sSlotMachine->unk0A == 0) + if (sSlotMachine->fairRollsLeft == 0) { - if (!(sSlotMachine->unk04 & 0xc0)) + if (!(sSlotMachine->luckyFlags & 0xc0)) // top 2 flags set to 0 { - if (sub_8102540_()) + if (IsLuckyRound()) { - r3 = sub_8102578(); - if (r3 != 3) + luckyAttempts = AttemptsAtLuckiness1(); + if (luckyAttempts != 3) // if you found a lucky number { - sSlotMachine->unk04 |= gUnknown_083ECE42[r3]; - if (r3 != 1) + // luckyAttempts == 1: reelTime flag set + sSlotMachine->luckyFlags |= FlagsAttemptAtLuckiness1[luckyAttempts]; + if (luckyAttempts != 1) { return; } } } - r3 = sub_81025BC(); - if (r3 != 5) + // if you got it your first try, you get to try again for the lower lucky flags + luckyAttempts = AttemptsAtLuckiness2(); + if (luckyAttempts != 5) // if you found a lucky number { - sSlotMachine->unk04 |= gUnknown_083ECE48[r3]; + sSlotMachine->luckyFlags |= FlagsAttemptAtLuckiness2[luckyAttempts]; } } } } -/*static */void sub_81024F0(void) +/*static */void AnyLuckyFlagsSet(void) { - sSlotMachine->unk06 = 0; - if (sSlotMachine->unk04) - sSlotMachine->unk06 = 1; + sSlotMachine->isBiasTagMatchPossible = 0; + if (sSlotMachine->luckyFlags) + sSlotMachine->isBiasTagMatchPossible = 1; } -/*static */u8 sub_810250C(u8 a0) +/*static */u8 GetLuckyFlagTagOutput(u8 luckyFlags) { u8 i; for (i = 0; i < 8; i++) { - if (a0 & 1) - return gUnknown_083ECE3A[i]; - a0 >>= 1; + if (luckyFlags & 1) + return LuckyFlagTagOutput[i]; + luckyFlags >>= 1; } return 0; } -/*static */bool8 sub_8102540_(void) +/*static */bool8 IsLuckyRound(void) { u8 rval = Random(); - if (gUnknown_083ECD04[sSlotMachine->unk01][sSlotMachine->bet - 1] > rval) + if (sSlotLuckinessTable1[sSlotMachine->machineId][sSlotMachine->bet - 1] > rval) return TRUE; return FALSE; } -/*static */u8 sub_8102578(void) +/*static */u8 AttemptsAtLuckiness1(void) { - s16 i; + s16 countAttempts; - for (i = 0; i < 3; i++) + for (countAttempts = 0; countAttempts < 3; countAttempts++) { s16 rval = Random() & 0xff; - s16 value = gUnknown_083ECD16[i][sSlotMachine->unk01]; + s16 value = sSlotLuckinessTable2[countAttempts][sSlotMachine->machineId]; if (value > rval) break; } - return i; + return countAttempts; } -/*static */u8 sub_81025BC(void) +/*static */u8 AttemptsAtLuckiness2(void) { - s16 i; + s16 countAttempts; - for (i = 0; i < 5; i++) + for (countAttempts = 0; countAttempts < 5; countAttempts++) { - s16 rval = Random() & 0xff; - s16 r3 = gUnknown_083ECD28[i][sSlotMachine->unk01]; - if (i == 0 && sSlotMachine->unk03 == 1) + s16 rval = Random() & 0xff; // random byte + s16 value = sSlotLuckinessTable3[countAttempts][sSlotMachine->machineId]; + // make first attempt easier if it's a lucky game + if (countAttempts == 0 && sSlotMachine->luckyGame == 1) { - r3 += 10; - if (r3 > 0x100) - r3 = 0x100; + value += 10; + if (value > 0x100) + value = 0x100; } - else if (i == 4 && sSlotMachine->unk03 == 1) + // make last attempt harder if it's a lucky game + else if (countAttempts == 4 && sSlotMachine->luckyGame == 1) { - r3 -= 10; - if (r3 < 0) - r3 = 0; + value -= 10; + if (value < 0) + value = 0; } - if (r3 > rval) + if (value > rval) break; } - return i; + return countAttempts; } -/*static */u8 sub_810264C(u8 a0) +/*static */u8 GetReelTimeProbability(u8 reelTimeDraw) { - if (sSlotMachine->unk03 == 0) - return gUnknown_083ECD46[a0][sSlotMachine->pikaPower]; + if (sSlotMachine->luckyGame == 0) + return ReelTimeProbabilityTable0[reelTimeDraw][sSlotMachine->pikaPower]; else - return gUnknown_083ECDAC[a0][sSlotMachine->pikaPower]; + return ReelTimeProbabilityTable1[reelTimeDraw][sSlotMachine->pikaPower]; } -/*static */void sub_8102680(void) +/*static */void DrawReelTimeOutcome(void) { u8 rval; - s16 i; + s16 reelTimeDraw; - sSlotMachine->unk05 = 0; + sSlotMachine->reelTimeDraw = 0; rval = Random(); - if (rval < sub_810264C(0)) + if (rval < GetReelTimeProbability(0)) return; - for (i = 5; i > 0; i--) + for (reelTimeDraw = 5; reelTimeDraw > 0; reelTimeDraw--) { rval = Random(); - if (rval < sub_810264C(i)) + if (rval < GetReelTimeProbability(reelTimeDraw)) break; } - sSlotMachine->unk05 = i; + sSlotMachine->reelTimeDraw = reelTimeDraw; } -/*static */bool8 sub_81026DC(u16 a0) +/*static */bool8 SkipToReelTimeAction14(u16 i) { u16 rval = Random() & 0xff; - if (rval < gUnknown_083ECE12[a0]) + if (rval < ProbabilityTable_SkipToReelTimeAction14[i]) return TRUE; else return FALSE; } -/*static */u16 dp15_jump_random_unknown(void) +/*static */u16 DrawNewReelIncrement(void) { - u8 r4 = 0; + u8 i = 0; u8 rval; u8 value; - if (sSlotMachine->unk10 >= 300) - r4 = 4; - else if (sSlotMachine->unk10 >= 250) - r4 = 3; - else if (sSlotMachine->unk10 >= 200) - r4 = 2; - else if (sSlotMachine->unk10 >= 150) - r4 = 1; + if (sSlotMachine->netCoinLoss >= 300) + i = 4; + else if (sSlotMachine->netCoinLoss >= 250) + i = 3; + else if (sSlotMachine->netCoinLoss >= 200) + i = 2; + else if (sSlotMachine->netCoinLoss >= 150) + i = 1; rval = Random() % 100; - value = gUnknown_083ECE1C[r4][0]; + value = ReelIncrementTable[i][0]; if (rval < value) return 4; rval = Random() % 100; - value = gUnknown_083ECE1C[r4][1] + gUnknown_083ECE30[sSlotMachine->unk0B]; + value = ReelIncrementTable[i][1] + ReelTimeBonusIncrementTable[sSlotMachine->fairRollsUsed]; if (rval < value) return 2; return 8; @@ -1543,9 +1570,9 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) { u8 c1, c2, c3, match; - c1 = GetTagOfReelSymbolOnScreenAtPos(0, 2); - c2 = GetTagOfReelSymbolOnScreenAtPos(1, 2); - c3 = GetTagOfReelSymbolOnScreenAtPos(2, 2); + c1 = GetNearbyTag(0, 2); + c2 = GetNearbyTag(1, 2); + c3 = GetNearbyTag(2, 2); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1559,9 +1586,9 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) { u8 c1, c2, c3, match; - c1 = GetTagOfReelSymbolOnScreenAtPos(0, 1); - c2 = GetTagOfReelSymbolOnScreenAtPos(1, 1); - c3 = GetTagOfReelSymbolOnScreenAtPos(2, 1); + c1 = GetNearbyTag(0, 1); + c2 = GetNearbyTag(1, 1); + c3 = GetNearbyTag(2, 1); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1571,9 +1598,9 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; sub_8103E04(1); } - c1 = GetTagOfReelSymbolOnScreenAtPos(0, 3); - c2 = GetTagOfReelSymbolOnScreenAtPos(1, 3); - c3 = GetTagOfReelSymbolOnScreenAtPos(2, 3); + c1 = GetNearbyTag(0, 3); + c2 = GetNearbyTag(1, 3); + c3 = GetNearbyTag(2, 3); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1589,9 +1616,9 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) { u8 c1, c2, c3, match; - c1 = GetTagOfReelSymbolOnScreenAtPos(0, 1); - c2 = GetTagOfReelSymbolOnScreenAtPos(1, 2); - c3 = GetTagOfReelSymbolOnScreenAtPos(2, 3); + c1 = GetNearbyTag(0, 1); + c2 = GetNearbyTag(1, 2); + c3 = GetNearbyTag(2, 3); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1602,9 +1629,9 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) } sub_8103E04(3); } - c1 = GetTagOfReelSymbolOnScreenAtPos(0, 3); - c2 = GetTagOfReelSymbolOnScreenAtPos(1, 2); - c3 = GetTagOfReelSymbolOnScreenAtPos(2, 1); + c1 = GetNearbyTag(0, 3); + c2 = GetNearbyTag(1, 2); + c3 = GetNearbyTag(2, 1); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1630,26 +1657,26 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) return SLOT_MACHINE_MATCHED_NONE; } -/*static */void sub_8102A24(void) +/*static */void AwardPayout(void) { - sub_8102A64(CreateTask(sub_8102A64, 4)); + RunAwardPayoutActions(CreateTask(RunAwardPayoutActions, 4)); } -/*static */bool8 sub_8102A44(void) +/*static */bool8 IsFinalTask_RunAwardPayoutActions(void) { - if (FindTaskIdByFunc(sub_8102A64) == 0xFF) + if (FindTaskIdByFunc(RunAwardPayoutActions) == TAIL_SENTINEL) return TRUE; else return FALSE; } -/*static */void sub_8102A64(u8 taskId) +/*static */void RunAwardPayoutActions(u8 taskId) { - while (gUnknown_083ECB20[gTasks[taskId].data[0]](gTasks + taskId)) + while (AwardPayoutActions[gTasks[taskId].data[0]](gTasks + taskId)) ; } -/*static */bool8 sub_8102A9C(struct Task *task) +/*static */bool8 AwardPayoutAction1(struct Task *task) { if (sub_8103E38()) { @@ -1662,8 +1689,8 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) } return FALSE; } - -/*static */bool8 sub_8102AD0(struct Task *task) +// task->data[1]: timer +/*static */bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task) { if (!task->data[1]--) { @@ -1689,165 +1716,177 @@ void PlaySlotMachine(u8 arg0, MainCallback cb) return FALSE; } -/*static */bool8 sub_8102B80(struct Task *task) +/*static */bool8 AwardPayoutAction_FreeTask(struct Task *task) { if (sub_8103E7C()) - DestroyTask(FindTaskIdByFunc(sub_8102A64)); + DestroyTask(FindTaskIdByFunc(RunAwardPayoutActions)); return FALSE; } -/*static */u8 GetTagOfReelSymbolOnScreenAtPos(u8 x, s16 y) +/*static */u8 GetNearbyTag(u8 reelIndex, s16 posOffset) { - s16 offset = (sSlotMachine->reelPositions[x] + y) % 21; - if (offset < 0) - offset += 21; - return sReelSymbols[x][offset]; + /* + Returns the tag that is posOffset below the tag at the top of reelIndex's tape + */ + s16 tagIndex = (sSlotMachine->reelPositions[reelIndex] + posOffset) % REEL_NUM_TAGS; + if (tagIndex < 0) + tagIndex += REEL_NUM_TAGS; + return sReelSymbols[reelIndex][tagIndex]; } -/*static */u8 GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(u8 x, s16 y) +// TODO: find out how rounding works +/*static */u8 GetNearbyTag_PixelOffset(u8 reelIndex, s16 posOffset) { - s16 r6 = 0; - s16 result = sSlotMachine->unk1C[x] % 24; + s16 tagOffset = 0; + s16 result = sSlotMachine->reelPixelOffsets[reelIndex] % 24; if (result != 0) - r6 = -1; - return GetTagOfReelSymbolOnScreenAtPos(x, y + r6); + tagOffset = -1; // tag will be posOffset - 1 + return GetNearbyTag(reelIndex, posOffset + tagOffset); } -/*static */u8 sub_8102C48(s16 a0) +// TODO: make sure this is actually what's happening +/*static */u8 GetNthNextReelTimePosition(s16 n) { - s16 r1 = (sSlotMachine->unk16 + a0) % 6; - if (r1 < 0) - r1 += 6; - return gUnknown_083ECCF1[r1]; + s16 newPosition = (sSlotMachine->reelTimePosition + n) % 6; + if (newPosition < 0) + newPosition += 6; + return gUnknown_083ECCF1[newPosition]; } -/*static */void sub_8102C84(u8 a0, s16 a1) +/*static */void IncrementReelPixelOffset(u8 reelIndex, s16 value) { - sSlotMachine->unk1C[a0] += a1; - sSlotMachine->unk1C[a0] %= 504; - sSlotMachine->reelPositions[a0] = 21 - sSlotMachine->unk1C[a0] / 24; + sSlotMachine->reelPixelOffsets[reelIndex] += value; + sSlotMachine->reelPixelOffsets[reelIndex] %= 504; + sSlotMachine->reelPositions[reelIndex] = REEL_NUM_TAGS - sSlotMachine->reelPixelOffsets[reelIndex] / 24; } -s16 sub_8102CCC(u8 a0, s16 a1) +// TODO: make sure that's actually what's happening +s16 AdvanceReelNextTag(u8 reelIndex, s16 reelIncrement) { - s16 r1 = sSlotMachine->unk1C[a0] % 24; - if (r1 != 0) + s16 value = sSlotMachine->reelPixelOffsets[reelIndex] % 24; + if (value != 0) { - if (r1 < a1) - a1 = r1; - sub_8102C84(a0, a1); - r1 = sSlotMachine->unk1C[a0] % 24; + if (value < reelIncrement) + reelIncrement = value; + IncrementReelPixelOffset(reelIndex, reelIncrement); + value = sSlotMachine->reelPixelOffsets[reelIndex] % 24; } - return r1; + return value; } -/*static */void sub_8102D28(s16 a0) +/*static */void IncrementReelTimePixelOffset(s16 value) { - sSlotMachine->unk14 += a0; - sSlotMachine->unk14 %= 120; - sSlotMachine->unk16 = 6 - sSlotMachine->unk14 / 20; + sSlotMachine->reelTimePixelOffset += value; + sSlotMachine->reelTimePixelOffset %= 120; + sSlotMachine->reelTimePosition = 6 - sSlotMachine->reelTimePixelOffset / 20; } -s16 sub_8102D5C(s16 a0) +s16 AdvanceReelTimeNextNumber(s16 reelIncrement) { - s16 r1 = sSlotMachine->unk14 % 20; - if (r1 != 0) + s16 value = sSlotMachine->reelTimePixelOffset % 20; + if (value != 0) { - if (r1 < a0) - a0 = r1; - sub_8102D28(a0); - r1 = sSlotMachine->unk14 % 20; + if (value < reelIncrement) + reelIncrement = value; + IncrementReelTimePixelOffset(reelIncrement); + value = sSlotMachine->reelTimePixelOffset % 20; } - return r1; + return value; } -/*static */void sub_8102DA8(void) +/*static */void GameplayTask_StopReel(void) { u8 i; for (i = 0; i < 3; i++) { - u8 taskId = CreateTask(sub_8102E68, 2); + u8 taskId = CreateTask(RunReelActions, 2); gTasks[taskId].data[15] = i; sSlotMachine->reelTasks[i] = taskId; - sub_8102E68(taskId); + RunReelActions(taskId); } } -/*static */void sub_8102DEC(u8 a0) +/*static */void ReelTasks_8102DEC(u8 reelIndex) { - gTasks[sSlotMachine->reelTasks[a0]].data[0] = 1; - gTasks[sSlotMachine->reelTasks[a0]].data[14] = 1; + gTasks[sSlotMachine->reelTasks[reelIndex]].data[0] = 1; + gTasks[sSlotMachine->reelTasks[reelIndex]].data[14] = 1; } -/*static */void sub_8102E1C(u8 a0) +/*static */void sub_8102E1C(u8 reelIndex) { - gTasks[sSlotMachine->reelTasks[a0]].data[0] = 2; + gTasks[sSlotMachine->reelTasks[reelIndex]].data[0] = 2; } -/*static */bool8 sub_8102E40(u8 a0) +/*static */bool8 IsReelMoving(u8 reelIndex) { - return gTasks[sSlotMachine->reelTasks[a0]].data[14]; + return gTasks[sSlotMachine->reelTasks[reelIndex]].data[14]; } -/*static */void sub_8102E68(u8 taskId) +/*static */void RunReelActions(u8 taskId) { - while (gUnknown_083ECB2C[gTasks[taskId].data[0]](gTasks + taskId)) + while (ReelActions[gTasks[taskId].data[0]](gTasks + taskId)) ; } -/*static */bool8 sub_8102EA0(struct Task *task) +// task->data[1] reel turns +// task->data[15] reelIndex +/*static */bool8 ReelAction_StayStill(struct Task *task) { return FALSE; } -/*static */bool8 sub_8102EA4(struct Task *task) +/*static */bool8 ReelAction_Spin(struct Task *task) { - sub_8102C84(task->data[15], sSlotMachine->unk1A); + IncrementReelPixelOffset(task->data[15], sSlotMachine->reelIncrement); return FALSE; } -/*static */bool8 sub_8102EC0(struct Task *task) +/*static */bool8 ReelAction_DecideWhereToStop(struct Task *task) { task->data[0]++; - sSlotMachine->unk34[task->data[15]] = 0; - sSlotMachine->unk2E[task->data[15]] = 0; - if (sSlotMachine->unk0A == 0 && (sSlotMachine->unk04 == 0 || sSlotMachine->unk06 == 0 || !gUnknown_083ECB40[task->data[15]]())) + // initialize data for that reel --> these will be manipulated if biasTags can be lined up + sSlotMachine->biasTagFinalPositions[task->data[15]] = 0; + sSlotMachine->reelExtraTurns[task->data[15]] = 0; + + if (sSlotMachine->fairRollsLeft == 0 && (sSlotMachine->luckyFlags == 0 || sSlotMachine->isBiasTagMatchPossible == 0 || !DecideReelTurns_BiasTag[task->data[15]]())) { - sSlotMachine->unk06 = 0; - gUnknown_083ECB4C[task->data[15]](); + sSlotMachine->isBiasTagMatchPossible = 0; + DecideReelTurns_NoBiasTag[task->data[15]](); } - task->data[1] = sSlotMachine->unk2E[task->data[15]]; + task->data[1] = sSlotMachine->reelExtraTurns[task->data[15]]; return TRUE; } -/*static */bool8 sub_8102F4C(struct Task *task) +// go to next tag and then do any additional turns +/*static */bool8 ReelAction_TurnToSelectedTag(struct Task *task) { - u16 sp[ARRAY_COUNT(gUnknown_085A74FC)]; - s16 r2; + u16 reelStopShocks[ARRAY_COUNT(ReelStopShocks)]; + s16 reelPixelPos; - memcpy(sp, gUnknown_085A74FC, sizeof(gUnknown_085A74FC)); - r2 = sSlotMachine->unk1C[task->data[15]] % 24; - if (r2 != 0) - r2 = sub_8102CCC(task->data[15], sSlotMachine->unk1A); - else if (sSlotMachine->unk2E[task->data[15]]) + memcpy(reelStopShocks, ReelStopShocks, sizeof(ReelStopShocks)); + reelPixelPos = sSlotMachine->reelPixelOffsets[task->data[15]] % 24; + if (reelPixelPos != 0) + reelPixelPos = AdvanceReelNextTag(task->data[15], sSlotMachine->reelIncrement); + else if (sSlotMachine->reelExtraTurns[task->data[15]]) { - sSlotMachine->unk2E[task->data[15]]--; - sub_8102C84(task->data[15], sSlotMachine->unk1A); - r2 = sSlotMachine->unk1C[task->data[15]] % 24; + sSlotMachine->reelExtraTurns[task->data[15]]--; + IncrementReelPixelOffset(task->data[15], sSlotMachine->reelIncrement); + reelPixelPos = sSlotMachine->reelPixelOffsets[task->data[15]] % 24; } - if (r2 == 0 && sSlotMachine->unk2E[task->data[15]] == 0) + if (reelPixelPos == 0 && sSlotMachine->reelExtraTurns[task->data[15]] == 0) { task->data[0]++; - task->data[1] = sp[task->data[1]]; + task->data[1] = reelStopShocks[task->data[1]]; task->data[2] = 0; } return FALSE; } -/*static */bool8 sub_8103008(struct Task *task) +// make selected tag oscillate before it becomes still +/*static */bool8 ReelAction_OscillatingStop(struct Task *task) { - sSlotMachine->unk22[task->data[15]] = task->data[1]; + sSlotMachine->stopReelPixelOffset[task->data[15]] = task->data[1]; task->data[1] = -task->data[1]; task->data[2]++; if ((task->data[2] & 0x3) == 0) @@ -1856,103 +1895,111 @@ s16 sub_8102D5C(s16 a0) { task->data[0] = 0; task->data[14] = 0; - sSlotMachine->unk22[task->data[15]] = 0; + sSlotMachine->stopReelPixelOffset[task->data[15]] = 0; } return FALSE; } -/*static */bool8 sub_810305C(void) +/*static */bool8 DecideReelTurns_BiasTag_Reel1(void) { - u8 r3 = sub_810250C(sSlotMachine->unk04); - u8 r5 = r3; - if (sSlotMachine->unk04 & 0xc0) + u8 tag2 = GetLuckyFlagTagOutput(sSlotMachine->luckyFlags); + u8 tag1 = tag2; + if (sSlotMachine->luckyFlags & 0xc0) // if either of top 2 bits are set { - r5 = 0; - r3 = 1; + tag1 = SLOT_MACHINE_TAG_7_RED; + tag2 = SLOT_MACHINE_TAG_7_BLUE; } - return gUnknown_083ECB64[sSlotMachine->bet - 1](r5, r3); + return DecideReelTurns_BiasTag_Reel1_Bets[sSlotMachine->bet - 1](tag1, tag2); } -/*static */bool8 sub_81030A4(s16 y, u8 tag1, u8 tag2) +/*static */bool8 IsTag1orTag2AtPosInReel1(s16 pos, u8 tag1, u8 tag2) { - u8 tag = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, y); + u8 tag = GetNearbyTag_PixelOffset(0, pos); if (tag == tag1 || tag == tag2) { - sSlotMachine->unk07 = tag; + sSlotMachine->biasTag = tag; return TRUE; } return FALSE; } -/*static */bool8 sub_81030E0(s16 y) +/*static */bool8 AreCherriesOnScreen_Reel1(s16 offsetFromCenter) { - if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 1 - y) == 4 || GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - y) == 4 || GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 3 - y) == 4) + if (GetNearbyTag_PixelOffset(0, 1 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetNearbyTag_PixelOffset(0, 2 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetNearbyTag_PixelOffset(0, 3 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY) return TRUE; else return FALSE; } -/*static */bool8 sub_8103134(void) +/*static */bool8 LuckyFlags_BiasCherryOr7s(void) { - if (sSlotMachine->unk04 & 0xc2) + if (sSlotMachine->luckyFlags & 0xc2) // if any of bits 6, 7, or 1 are set return TRUE; else return FALSE; } -/*static */bool8 sub_8103154(u8 a0, u8 a1) +/*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8 tag1, u8 tag2) { s16 i; for (i = 0; i < 5; i++) { - if (sub_81030A4(2 - i, a0, a1)) + // if a lucky tag appears in the center row within the next 5 turns + if (IsTag1orTag2AtPosInReel1(2 - i, tag1, tag2)) { - sSlotMachine->unk34[0] = 2; - sSlotMachine->unk2E[0] = i; + sSlotMachine->biasTagFinalPositions[0] = 2; + sSlotMachine->reelExtraTurns[0] = i; return TRUE; } } return FALSE; } -/*static */bool8 sub_81031B4(u8 tag1, u8 tag2) +/*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 tag1, u8 tag2) { s16 i; - bool8 r6 = sub_8103134(); - if (r6 || !sub_81030E0(0)) + bool8 areLuckyBitsSet = LuckyFlags_BiasCherryOr7s(); + // if lucky numbers or no cherries are currently on screen in reel 1... + if (areLuckyBitsSet || !AreCherriesOnScreen_Reel1(0)) { for (i = 1; i < 4; i++) { - if (sub_81030A4(i, tag1, tag2)) + //...and if a bias tag is currently on the screen + if (IsTag1orTag2AtPosInReel1(i, tag1, tag2)) { - sSlotMachine->unk34[0] = i; - sSlotMachine->unk2E[0] = 0; + sSlotMachine->biasTagFinalPositions[0] = i; + sSlotMachine->reelExtraTurns[0] = 0; return TRUE; } } } for (i = 1; i < 5; i++) { - bool8 r7 = r6; - if (r7 || !sub_81030E0(i)) + bool8 areLuckyBitsSetCopy = areLuckyBitsSet; // redundant + // if lucky numbers or if in the next 4 turns there is a screen with no cherries... + if (areLuckyBitsSetCopy || !AreCherriesOnScreen_Reel1(i)) { - if (sub_81030A4(1 - i, tag1, tag2)) + //...and if a bias tag is in top row of that screen + if (IsTag1orTag2AtPosInReel1(1 - i, tag1, tag2)) { - if (i == 1 && (r7 || !sub_81030E0(3))) + //...and if it only took 1 turn and the lucky tag could also be the bottom row of a screen with no cherries... + if (i == 1 && (areLuckyBitsSetCopy || !AreCherriesOnScreen_Reel1(3))) { - sSlotMachine->unk34[0] = 3; - sSlotMachine->unk2E[0] = 3; + sSlotMachine->biasTagFinalPositions[0] = 3; // maybe how many paths to check + sSlotMachine->reelExtraTurns[0] = 3; // maybe upper limit of turns to advance return TRUE; } - if (i < 4 && (r7 || !sub_81030E0(i + 1))) + //...or if it isn't the last turn and the lucky tag could be in the center row of a screen with no cherries... + if (i < 4 && (areLuckyBitsSetCopy || !AreCherriesOnScreen_Reel1(i + 1))) { - sSlotMachine->unk34[0] = 2; - sSlotMachine->unk2E[0] = i + 1; + sSlotMachine->biasTagFinalPositions[0] = 2; + sSlotMachine->reelExtraTurns[0] = i + 1; return TRUE; } - sSlotMachine->unk34[0] = 1; - sSlotMachine->unk2E[0] = i; + //...else + sSlotMachine->biasTagFinalPositions[0] = 1; + sSlotMachine->reelExtraTurns[0] = i; return TRUE; } } @@ -1960,55 +2007,61 @@ s16 sub_8102D5C(s16 a0) return FALSE; } -/*static */bool8 sub_81032C0(void) +/*static */bool8 DecideReelTurns_BiasTag_Reel2(void) { - return gUnknown_083ECB70[sSlotMachine->bet - 1](); + return DecideReelTurns_BiasTag_Reel2_Bets[sSlotMachine->bet - 1](); } -/*static */bool8 sub_81032E8(void) +/*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void) { s16 i; - s16 unk34_0 = sSlotMachine->unk34[0]; + s16 reel1BiasTagFinalPos = sSlotMachine->biasTagFinalPositions[0]; for (i = 0; i < 5; i++) { - if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, unk34_0 - i) == sSlotMachine->unk07) + // if biasTag appears in the same row within 5 turns + if (GetNearbyTag_PixelOffset(1, reel1BiasTagFinalPos - i) == sSlotMachine->biasTag) { - sSlotMachine->unk34[1] = unk34_0; - sSlotMachine->unk2E[1] = i; + sSlotMachine->biasTagFinalPositions[1] = reel1BiasTagFinalPos; + sSlotMachine->reelExtraTurns[1] = i; return TRUE; } } return FALSE; } -/*static */bool8 sub_810333C(void) +/*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void) { s16 i; - if (sub_81032E8()) + // if biasTag appears in the same row within 5 turns... + if (DecideReelTurns_BiasTag_Reel2_Bet1or2()) { - if (sSlotMachine->unk34[0] != 2 && sSlotMachine->unk2E[1] > 1 && sSlotMachine->unk2E[1] != 4) + //...and if the biasTag is not in row 2 of reel 1 and if it requires between either 2 or 3 turns to line up the biasTag in row 2... + if (sSlotMachine->biasTagFinalPositions[0] != 2 && sSlotMachine->reelExtraTurns[1] > 1 && sSlotMachine->reelExtraTurns[1] != 4) { for (i = 0; i < 5; i++) { - if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - i) == sSlotMachine->unk07) + //...and if the bias tag will appear in the center row within 5 turns + if (GetNearbyTag_PixelOffset(1, 2 - i) == sSlotMachine->biasTag) { - sSlotMachine->unk34[1] = 2; - sSlotMachine->unk2E[1] = i; + sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->reelExtraTurns[1] = i; break; } } } return TRUE; } - if (sSlotMachine->unk34[0] != 2) + // else if the biasTag is not in row 2 of reel 1... + if (sSlotMachine->biasTagFinalPositions[0] != 2) { for (i = 0; i < 5; i++) { - if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - i) == sSlotMachine->unk07) + //...and if the biasTag will appear in the center row of reel 2 within 5 turns + if (GetNearbyTag_PixelOffset(1, 2 - i) == sSlotMachine->biasTag) { - sSlotMachine->unk34[1] = 2; - sSlotMachine->unk2E[1] = i; + sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->reelExtraTurns[1] = i; return TRUE; } } @@ -2016,102 +2069,117 @@ s16 sub_8102D5C(s16 a0) return FALSE; } -/*static */bool8 sub_81033DC(void) +/*static */bool8 DecideReelTurns_BiasTag_Reel3(void) { - u8 r3 = sSlotMachine->unk07; - if (sSlotMachine->unk04 & 0x40) + u8 biasTag = sSlotMachine->biasTag; + // if bit 6 of luckyFlags is set... + if (sSlotMachine->luckyFlags & 0x40) { - r3 = 0; - if (sSlotMachine->unk07 == 0) + // make biasTag the opposite color of the 7 in sSlotMachine->biasTag + biasTag = 0; + if (sSlotMachine->biasTag == 0) { - r3 = 1; + biasTag = 1; } } - return gUnknown_083ECB7C[sSlotMachine->bet - 1](r3); + return DecideReelTurns_BiasTag_Reel3_Bets[sSlotMachine->bet - 1](biasTag); } -/*static */bool8 sub_810341C(u8 a0) +/*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 biasTag) { s16 i; - s16 unk34_1 = sSlotMachine->unk34[1]; + s16 reel2BiasTagPos = sSlotMachine->biasTagFinalPositions[1]; for (i = 0; i < 5; i++) { - if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, unk34_1 - i) == a0) + // if the biasTag appears in the same row as in reel 2 within 5 turns + if (GetNearbyTag_PixelOffset(2, reel2BiasTagPos - i) == biasTag) { - sSlotMachine->unk34[2] = unk34_1; - sSlotMachine->unk2E[2] = i; + sSlotMachine->biasTagFinalPositions[2] = reel2BiasTagPos; + sSlotMachine->reelExtraTurns[2] = i; return TRUE; } } return FALSE; } -/*static */bool8 sub_810347C(u8 a0) +/*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet3(u8 biasTag) { s16 i; - s16 r8; - if (sSlotMachine->unk34[0] == sSlotMachine->unk34[1]) - return sub_810341C(a0); - if (sSlotMachine->unk34[0] == 1) - r8 = 3; + s16 biasTagFinalPos; + // if the final position of the biasTag matches in reel 1 and reel 2... + if (sSlotMachine->biasTagFinalPositions[0] == sSlotMachine->biasTagFinalPositions[1]) + //...then try to line it up in reel 3 + return DecideReelTurns_BiasTag_Reel3_Bet1or2(biasTag); + // else place it in the row opposite reel 1's + if (sSlotMachine->biasTagFinalPositions[0] == 1) + biasTagFinalPos = 3; else - r8 = 1; + biasTagFinalPos = 1; for (i = 0; i < 5; i++) { - if (GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, r8 - i) == a0) + // if in the biasTag lands in that position within the next 5 turns + if (GetNearbyTag_PixelOffset(2, biasTagFinalPos - i) == biasTag) { - sSlotMachine->unk2E[2] = i; - sSlotMachine->unk34[2] = r8; + sSlotMachine->reelExtraTurns[2] = i; + sSlotMachine->biasTagFinalPositions[2] = biasTagFinalPos; return TRUE; } } return FALSE; } -/*static */void sub_81034F4(void) +/* +Advance until there are no cherries on screen in reel 1 +*/ +/*static */void DecideReelTurns_NoBiasTag_Reel1(void) { s16 i = 0; - while (sub_81030E0(i) != 0) + while (AreCherriesOnScreen_Reel1(i) != 0) i++; - sSlotMachine->unk2E[0] = i; + sSlotMachine->reelExtraTurns[0] = i; } -/*static */bool8 sub_8103520(u8 *a0) +/*static */bool8 IsBiasTag7AndIfSoChangeColor(u8 *biasTagPtr) { - if (*a0 == 0) + if (*biasTagPtr == SLOT_MACHINE_TAG_7_RED) { - *a0 = 1; + *biasTagPtr = SLOT_MACHINE_TAG_7_BLUE; return TRUE; } - if (*a0 == 1) + if (*biasTagPtr == SLOT_MACHINE_TAG_7_BLUE) { - *a0 = 0; + *biasTagPtr = SLOT_MACHINE_TAG_7_RED; return TRUE; } return FALSE; } -/*static */void sub_8103540(void) +/*static */void DecideReelTurns_NoBiasTag_Reel2(void) { - gUnknown_083ECB88[sSlotMachine->bet - 1](); + DecideReelTurns_NoBiasTag_Reel2_Bets[sSlotMachine->bet - 1](); } -/*static */void sub_8103564(void) +// only does stuff if the biasTag is one of the 7's, plus other conditions +/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet1(void) { - if (sSlotMachine->unk34[0] != 0 && sSlotMachine->unk04 & 0x80) + // if reel 1 has a biasTag and bit 7 is set in luckyFlags... + if (sSlotMachine->biasTagFinalPositions[0] != 0 && sSlotMachine->luckyFlags & 0x80) { - u8 sp0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - sSlotMachine->unk2E[0]); - if (sub_8103520(&sp0)) + u8 biasTag = GetNearbyTag_PixelOffset(0, 2 - sSlotMachine->reelExtraTurns[0]); + //...and if biasTag is one of the 7's... + if (IsBiasTag7AndIfSoChangeColor(&biasTag)) + //...swap the color of the 7... { s16 i; for (i = 0; i < 5; i++) { - if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - i)) + //...and if the biasTag appears in the next 5 turns + if (biasTag == GetNearbyTag_PixelOffset(1, 2 - i)) { - sSlotMachine->unk34[1] = 2; - sSlotMachine->unk2E[1] = i; + sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->reelExtraTurns[1] = i; break; } } @@ -2119,20 +2187,24 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void j5_08111E84(void) +/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet2(void) { - if (sSlotMachine->unk34[0] != 0 && sSlotMachine->unk04 & 0x80) + // if reel 1 has a biasTag and bit 7 is set in luckyFlags... + if (sSlotMachine->biasTagFinalPositions[0] != 0 && sSlotMachine->luckyFlags & 0x80) { - u8 sp0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, sSlotMachine->unk34[0] - sSlotMachine->unk2E[0]); - if (sub_8103520(&sp0)) + u8 biasTag = GetNearbyTag_PixelOffset(0, sSlotMachine->biasTagFinalPositions[0] - sSlotMachine->reelExtraTurns[0]); + //...and if biasTag is one of the 7's... + if (IsBiasTag7AndIfSoChangeColor(&biasTag)) + //...swap the color of the 7... { s16 i; for (i = 0; i < 5; i++) { - if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, sSlotMachine->unk34[0] - i)) + //...and if in the next 5 turns the biasTag appears in reel 2 + if (biasTag == GetNearbyTag_PixelOffset(1, sSlotMachine->biasTagFinalPositions[0] - i)) { - sSlotMachine->unk34[1] = sSlotMachine->unk34[0]; - sSlotMachine->unk2E[1] = i; + sSlotMachine->biasTagFinalPositions[1] = sSlotMachine->biasTagFinalPositions[0]; + sSlotMachine->reelExtraTurns[1] = i; break; } } @@ -2140,61 +2212,65 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_8103668(void) +/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet3(void) { s16 i; s16 j; - if (sSlotMachine->unk34[0] != 0 && sSlotMachine->unk04 & 0x80) + // if reel 1 has a biasTag and bit 7 is set in luckyFlags... + if (sSlotMachine->biasTagFinalPositions[0] != 0 && sSlotMachine->luckyFlags & 0x80) { - if (sSlotMachine->unk34[0] == 2) + //...and if biasTag appeared in the center row of reel 1 + if (sSlotMachine->biasTagFinalPositions[0] == 2) { - j5_08111E84(); + DecideReelTurns_NoBiasTag_Reel2_Bet2(); } else { - u8 sp0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, sSlotMachine->unk34[0] - sSlotMachine->unk2E[0]); - if (sub_8103520(&sp0)) + u8 biasTag = GetNearbyTag_PixelOffset(0, sSlotMachine->biasTagFinalPositions[0] - sSlotMachine->reelExtraTurns[0]); + //...and if biasTag is one of the 7's... + if (IsBiasTag7AndIfSoChangeColor(&biasTag)) + //...swap the color of the 7... { j = 2; - if (sSlotMachine->unk34[0] == 3) + if (sSlotMachine->biasTagFinalPositions[0] == 3) j = 3; for (i = 0; i < 2; i++, j--) { - if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, j)) + if (biasTag == GetNearbyTag_PixelOffset(1, j)) { - sSlotMachine->unk34[1] = j; - sSlotMachine->unk2E[1] = 0; + sSlotMachine->biasTagFinalPositions[1] = j; + sSlotMachine->reelExtraTurns[1] = 0; return; } } for (j = 1; j < 5; j++) { - if (sp0 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, sSlotMachine->unk34[0] - j)) + if (biasTag == GetNearbyTag_PixelOffset(1, sSlotMachine->biasTagFinalPositions[0] - j)) { - if (sSlotMachine->unk34[0] == 1) + if (sSlotMachine->biasTagFinalPositions[0] == 1) { if (j < 3) { - sSlotMachine->unk34[1] = 2; - sSlotMachine->unk2E[1] = j + 1; + sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->reelExtraTurns[1] = j + 1; } else { - sSlotMachine->unk34[1] = 1; - sSlotMachine->unk2E[1] = j; + sSlotMachine->biasTagFinalPositions[1] = 1; + sSlotMachine->reelExtraTurns[1] = j; } } else { if (j < 3) { - sSlotMachine->unk34[1] = 3; - sSlotMachine->unk2E[1] = j; + sSlotMachine->biasTagFinalPositions[1] = 3; + sSlotMachine->reelExtraTurns[1] = j; } else { - sSlotMachine->unk34[1] = 2; - sSlotMachine->unk2E[1] = j - 1; + sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->reelExtraTurns[1] = j - 1; } } return; @@ -2234,7 +2310,7 @@ s16 sub_8102D5C(s16 a0) return TRUE; } -/*static */void sub_810380C(void) +/*static */void DecideReelTurns_NoBiasTag_Reel3(void) { gUnknown_083ECB94[sSlotMachine->bet - 1](); } @@ -2242,27 +2318,27 @@ s16 sub_8102D5C(s16 a0) /*static */void sub_8103830(void) { s16 i = 0; - u8 r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 2 - sSlotMachine->unk2E[0]); - u8 r1 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - sSlotMachine->unk2E[1]); + u8 r5 = GetNearbyTag_PixelOffset(0, 2 - sSlotMachine->reelExtraTurns[0]); + u8 r1 = GetNearbyTag_PixelOffset(1, 2 - sSlotMachine->reelExtraTurns[1]); if (r5 == r1) { while (1) { u8 r0; - if (!(r5 == (r0 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i)) || (r5 == 0 && r0 == 1) || (r5 == 1 && r0 == 0))) + if (!(r5 == (r0 = GetNearbyTag_PixelOffset(2, 2 - i)) || (r5 == 0 && r0 == 1) || (r5 == 1 && r0 == 0))) break; i++; } } else if (sub_8103764(r5, r1)) { - if (sSlotMachine->unk04 & 0x80) + if (sSlotMachine->luckyFlags & 0x80) { for (i = 0; i < 5; i++) { - if (r5 == GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i)) + if (r5 == GetNearbyTag_PixelOffset(2, 2 - i)) { - sSlotMachine->unk2E[2] = i; + sSlotMachine->reelExtraTurns[2] = i; return; } } @@ -2270,12 +2346,12 @@ s16 sub_8102D5C(s16 a0) i = 0; while (1) { - if (r5 != GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 2 - i)) + if (r5 != GetNearbyTag_PixelOffset(2, 2 - i)) break; i++; } } - sSlotMachine->unk2E[2] = i; + sSlotMachine->reelExtraTurns[2] = i; } /*static */void sub_8103910(void) @@ -2286,15 +2362,15 @@ s16 sub_8102D5C(s16 a0) u8 r6; u8 r4; - if (sSlotMachine->unk34[1] != 0 && sSlotMachine->unk34[0] == sSlotMachine->unk34[1] && sSlotMachine->unk04 & 0x80) + if (sSlotMachine->biasTagFinalPositions[1] != 0 && sSlotMachine->biasTagFinalPositions[0] == sSlotMachine->biasTagFinalPositions[1] && sSlotMachine->luckyFlags & 0x80) { - r7 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, sSlotMachine->unk34[0] - sSlotMachine->unk2E[0]); - r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, sSlotMachine->unk34[1] - sSlotMachine->unk2E[1]); + r7 = GetNearbyTag_PixelOffset(0, sSlotMachine->biasTagFinalPositions[0] - sSlotMachine->reelExtraTurns[0]); + r6 = GetNearbyTag_PixelOffset(1, sSlotMachine->biasTagFinalPositions[1] - sSlotMachine->reelExtraTurns[1]); if (sub_8103764(r7, r6)) { for (i = 0; i < 5; i++) { - r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, sSlotMachine->unk34[1] - i); + r4 = GetNearbyTag_PixelOffset(2, sSlotMachine->biasTagFinalPositions[1] - i); if (r7 == r4) { sp0 = i; @@ -2308,10 +2384,10 @@ s16 sub_8102D5C(s16 a0) s16 r8; for (i = 1, r8 = 0; i < 4; i++) { - r7 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, i - sSlotMachine->unk2E[0]); - r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, i - sSlotMachine->unk2E[1]); - r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, i - sp0); - if (!sub_81037BC(r7, r6, r4) && (!sub_810378C(r7, r6, r4) || !(sSlotMachine->unk04 & 0x80))) + r7 = GetNearbyTag_PixelOffset(0, i - sSlotMachine->reelExtraTurns[0]); + r6 = GetNearbyTag_PixelOffset(1, i - sSlotMachine->reelExtraTurns[1]); + r4 = GetNearbyTag_PixelOffset(2, i - sp0); + if (!sub_81037BC(r7, r6, r4) && (!sub_810378C(r7, r6, r4) || !(sSlotMachine->luckyFlags & 0x80))) { r8++; break; @@ -2321,7 +2397,7 @@ s16 sub_8102D5C(s16 a0) break; sp0++; } - sSlotMachine->unk2E[2] = sp0; + sSlotMachine->reelExtraTurns[2] = sp0; } /*static */void sub_8103A78(void) @@ -2333,21 +2409,21 @@ s16 sub_8102D5C(s16 a0) s16 i; sub_8103910(); - if (sSlotMachine->unk34[1] != 0 && sSlotMachine->unk34[0] != sSlotMachine->unk34[1] && sSlotMachine->unk04 & 0x80) + if (sSlotMachine->biasTagFinalPositions[1] != 0 && sSlotMachine->biasTagFinalPositions[0] != sSlotMachine->biasTagFinalPositions[1] && sSlotMachine->luckyFlags & 0x80) { - r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, sSlotMachine->unk34[0] - sSlotMachine->unk2E[0]); - r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, sSlotMachine->unk34[1] - sSlotMachine->unk2E[1]); + r6 = GetNearbyTag_PixelOffset(0, sSlotMachine->biasTagFinalPositions[0] - sSlotMachine->reelExtraTurns[0]); + r5 = GetNearbyTag_PixelOffset(1, sSlotMachine->biasTagFinalPositions[1] - sSlotMachine->reelExtraTurns[1]); if (sub_8103764(r6, r5)) { r8 = 1; - if (sSlotMachine->unk34[0] == 1) + if (sSlotMachine->biasTagFinalPositions[0] == 1) r8 = 3; for (i = 0; i < 5; i++) { - r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, r8 - (sSlotMachine->unk2E[2] + i)); + r4 = GetNearbyTag_PixelOffset(2, r8 - (sSlotMachine->reelExtraTurns[2] + i)); if (r6 == r4) { - sSlotMachine->unk2E[2] += i; + sSlotMachine->reelExtraTurns[2] += i; break; } } @@ -2355,21 +2431,21 @@ s16 sub_8102D5C(s16 a0) } while (1) { - r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 1 - sSlotMachine->unk2E[0]); - r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - sSlotMachine->unk2E[1]); - r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 3 - sSlotMachine->unk2E[2]); - if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->unk04 & 0x80)) + r6 = GetNearbyTag_PixelOffset(0, 1 - sSlotMachine->reelExtraTurns[0]); + r5 = GetNearbyTag_PixelOffset(1, 2 - sSlotMachine->reelExtraTurns[1]); + r4 = GetNearbyTag_PixelOffset(2, 3 - sSlotMachine->reelExtraTurns[2]); + if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->luckyFlags & 0x80)) break; - sSlotMachine->unk2E[2]++; + sSlotMachine->reelExtraTurns[2]++; } while (1) { - r6 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(0, 3 - sSlotMachine->unk2E[0]); - r5 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(1, 2 - sSlotMachine->unk2E[1]); - r4 = GetTagOfReelSymbolOnScreenAtPos_AdjustForPixelOffset(2, 1 - sSlotMachine->unk2E[2]); - if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->unk04 & 0x80)) + r6 = GetNearbyTag_PixelOffset(0, 3 - sSlotMachine->reelExtraTurns[0]); + r5 = GetNearbyTag_PixelOffset(1, 2 - sSlotMachine->reelExtraTurns[1]); + r4 = GetNearbyTag_PixelOffset(2, 1 - sSlotMachine->reelExtraTurns[2]); + if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->luckyFlags & 0x80)) break; - sSlotMachine->unk2E[2]++; + sSlotMachine->reelExtraTurns[2]++; } } @@ -2403,9 +2479,9 @@ s16 sub_8102D5C(s16 a0) DestroyTask(taskId); } -/*static */void sub_8103D00(u8 a0) +/*static */void LoadLightedTile(u8 tileId) { - LoadPalette(gUnknown_083EDD08[a0], gUnknown_083EDD30[a0], 2); + LoadPalette(gUnknown_083EDD08[tileId], gUnknown_083EDD30[tileId], 2); } /*static */void sub_8103D28(u8 a0) @@ -2413,18 +2489,19 @@ s16 sub_8102D5C(s16 a0) LoadPalette(gUnknown_083EDD1C[a0], gUnknown_083EDD30[a0], 2); } -/*static */void sub_8103D50(u8 a0) +// probably light the bet number +/*static */void LoadBetTiles(u8 betVal) { u8 i; - for (i = 0; i < gUnknown_083EDD3B[a0]; i++) - sub_8103D00(gUnknown_083EDD35[a0][i]); + for (i = 0; i < gNumberBettingTiles[betVal]; i++) + LoadLightedTile(gBettingTilesId[betVal][i]); } /*static */void sub_8103D8C(u8 a0) { u8 i; - for (i = 0; i < gUnknown_083EDD3B[a0]; i++) - sub_8103D28(gUnknown_083EDD35[a0][i]); + for (i = 0; i < gNumberBettingTiles[a0]; i++) + sub_8103D28(gBettingTilesId[a0][i]); } /*static */void sub_8103DC8(void) @@ -2449,6 +2526,7 @@ s16 sub_8102D5C(s16 a0) sprite->data[7] = 0; } +// something with payout digits /*static */bool8 sub_8103E38(void) { u8 i; @@ -2545,32 +2623,33 @@ s16 sub_8102D5C(s16 a0) /*static */void sub_8104048(void) { - sSlotMachine->unk3E = CreateTask(sub_81040E8, 8); + sSlotMachine->unkTaskPointer = CreateTask(sub_81040E8, 8); } -/*static */void sub_8104064(u8 pikaPower) +// possibly clear pikaPower +/*static */void DisplayPikaPower(u8 pikaPower) { - struct Task *task = gTasks + sSlotMachine->unk3E; - sub_812D394(task); + struct Task *task = gTasks + sSlotMachine->unkTaskPointer; + ClearTaskDataFields_2orHigher(task); task->data[0] = 1; task->data[1]++; - task->data[15] = 1; + task->data[15] = 1; // points to a reelIndex } /*static */void sub_8104098(void) { - struct Task *task = gTasks + sSlotMachine->unk3E; - sub_812D394(task); + struct Task *task = gTasks + sSlotMachine->unkTaskPointer; + ClearTaskDataFields_2orHigher(task); task->data[0] = 3; - task->data[15] = 1; + task->data[15] = 1; // points to a reelIndex } /*static */bool8 sub_81040C8(void) { - return gTasks[sSlotMachine->unk3E].data[15]; + return gTasks[sSlotMachine->unkTaskPointer].data[15]; } -/*static */void sub_81040E8(u8 taskId) +/*static */void sub_81040E8(u8 taskId) // debug to see if taskId is machineId { gUnknown_083ECBB4[gTasks[taskId].data[0]](gTasks + taskId); } @@ -2596,11 +2675,11 @@ s16 sub_8102D5C(s16 a0) r3 = 1, r2 = 1; else if (task->data[1] == 16) r3 = 2, r2 = 2; - gUnknown_0203AACC[r2] = gUnknown_083ECBC4[r3][0]; - LoadBgTilemap(2, &gUnknown_0203AACC[r2], 2, r5 + 0x40); + selectedPikaPowerTile[r2] = pikaPowerTileTable[r3][0]; + LoadBgTilemap(2, &selectedPikaPowerTile[r2], 2, r5 + 0x40); sub_8105B88(task->data[2]); task->data[0] = 0; - task->data[15] = 0; + task->data[15] = 0; // points to a reelIndex } } @@ -2615,8 +2694,8 @@ s16 sub_8102D5C(s16 a0) r3 = 2, r2 = 2; if (task->data[2] == 0) { - gUnknown_0203AACC[r2] = gUnknown_083ECBC4[r3][1]; - LoadBgTilemap(2, &gUnknown_0203AACC[r2], 2, r5 + 0x40); + selectedPikaPowerTile[r2] = pikaPowerTileTable[r3][1]; + LoadBgTilemap(2, &selectedPikaPowerTile[r2], 2, r5 + 0x40); task->data[1]--; } if (++task->data[2] >= 20) @@ -2628,7 +2707,7 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_812D394(struct Task *task) +/*static */void ClearTaskDataFields_2orHigher(struct Task *task) { u8 i; @@ -2636,6 +2715,7 @@ s16 sub_8102D5C(s16 a0) task->data[i] = 0; } +// possibly load tiles for pika power meter /*static */void sub_810423C(u8 pikaPower) { s16 i; @@ -2646,10 +2726,10 @@ s16 sub_8102D5C(s16 a0) r3 = 0, r1 = 0; if (i == 0) r3 = 1, r1 = 1; - else if (i == 15) + else if (i == 15) // pikaPower meter is full r3 = 2, r1 = 2; - gUnknown_0203AACC[r1] = gUnknown_083ECBC4[r3][0]; - LoadBgTilemap(2, &gUnknown_0203AACC[r1], 2, r4 + 0x40); + selectedPikaPowerTile[r1] = pikaPowerTileTable[r3][0]; + LoadBgTilemap(2, &selectedPikaPowerTile[r1], 2, r4 + 0x40); } for (; i < 16; i++, r4++) { @@ -2658,35 +2738,39 @@ s16 sub_8102D5C(s16 a0) r3 = 1, r1 = 1; else if (i == 15) r3 = 2, r1 = 2; - gUnknown_0203AACC[r1] = gUnknown_083ECBC4[r3][1]; - LoadBgTilemap(2, &gUnknown_0203AACC[r1], 2, r4 + 0x40); + selectedPikaPowerTile[r1] = pikaPowerTileTable[r3][1]; + LoadBgTilemap(2, &selectedPikaPowerTile[r1], 2, r4 + 0x40); } - gTasks[sSlotMachine->unk3E].data[1] = pikaPower; + gTasks[sSlotMachine->unkTaskPointer].data[1] = pikaPower; } -/*static */void sub_810430C(void) +/*static */void BeginReelTime(void) { - u8 taskId = CreateTask(sub_810434C, 7); - sub_810434C(taskId); + u8 taskId = CreateTask(RunReelTimeActions, 7); + RunReelTimeActions(taskId); } -/*static */bool8 sub_810432C(void) +/*static */bool8 IsFinalTask_RunReelTimeActions(void) { - if (FindTaskIdByFunc(sub_810434C) == 0xFF) + if (FindTaskIdByFunc(RunReelTimeActions) == TAIL_SENTINEL) return TRUE; return FALSE; } -/*static */void sub_810434C(u8 taskId) +/*static */void RunReelTimeActions(u8 taskId) { - gUnknown_083ECBD0[gTasks[taskId].data[0]](gTasks + taskId); + // task.data[0] points to which ReelTimeAction to do, and starts at 0 + // task.data[1] has something to do with the threshold + // task.data[4] says how many pixels to advance the reel + // task.data[5] is a timer + ReelTimeActions[gTasks[taskId].data[0]](gTasks + taskId); } -/*static */void sub_810437C(struct Task *task) +/*static */void ReelTimeAction1(struct Task *task) { - sSlotMachine->unk0A = 0; - sSlotMachine->unk14 = 0; - sSlotMachine->unk16 = 0; + sSlotMachine->fairRollsLeft = 0; + sSlotMachine->reelTimePixelOffset = 0; + sSlotMachine->reelTimePosition = 0; task->data[0]++; task->data[1] = 0; task->data[2] = 30; @@ -2701,16 +2785,18 @@ s16 sub_8102D5C(s16 a0) sub_81052EC(); sub_81053A0(); sub_810545C(); - sub_8102680(); + DrawReelTimeOutcome(); StopMapMusic(); PlayNewMapMusic(MUS_BD_TIME); } -/*static */void sub_81043EC(struct Task *task) +/*static */void ReelTimeAction2(struct Task *task) { s16 r3; gSpriteCoordOffsetX -= 8; + // boost threshold by 8 task->data[1] += 8; + // only consider lower 8 bits, and then shift them right 3 r3 = ((task->data[1] + 240) & 0xff) >> 3; SetGpuReg(REG_OFFSET_BG1HOFS, task->data[1] & 0x1ff); if (r3 != task->data[2] && task->data[3] <= 18) @@ -2724,21 +2810,22 @@ s16 sub_8102D5C(s16 a0) task->data[0]++; task->data[3] = 0; } - sub_8102D28(task->data[4] >> 8); + // move ReelTime reel by the value in the upper 8 bits of task->data[4] + IncrementReelTimePixelOffset(task->data[4] >> 8); } -/*static */void sub_8104468(struct Task *task) +/*static */void ReelTimeAction3(struct Task *task) { - sub_8102D28(task->data[4] >> 8); + IncrementReelTimePixelOffset(task->data[4] >> 8); if (++task->data[5] >= 60) { task->data[0]++; - sub_8105578(); - sub_81056F0(); + CreateReelTimeSprites1(); + CreateReelTimeSprite2(); } } -/*static */void sub_8104498(struct Task *task) +/*static */void ReelTimeAction4(struct Task *task) { int r5; u8 sp0[ARRAY_COUNT(gUnknown_085A75C0)]; @@ -2749,12 +2836,14 @@ s16 sub_8102D5C(s16 a0) memcpy(sp4, gUnknown_085A75C4, sizeof(gUnknown_085A75C4)); memcpy(spC, gUnknown_085A75CC, sizeof(gUnknown_085A75CC)); - sub_8102D28(task->data[4] >> 8); + IncrementReelTimePixelOffset(task->data[4] >> 8); + // gradually slow down the reel task->data[4] -= 4; r5 = 4 - (task->data[4] >> 8); sub_8105688(sp4[r5]); sub_81057E8(spC[r5]); - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, sp0[r5]); + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, sp0[r5]); + // once speed goes below 256, go to next ReelTimeAction and keep the speed level if (task->data[4] <= 0x100) { task->data[0]++; @@ -2763,21 +2852,21 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_8104548(struct Task *task) +/*static */void ReelTimeAction5(struct Task *task) { - sub_8102D28(task->data[4] >> 8); + IncrementReelTimePixelOffset(task->data[4] >> 8); if (++task->data[5] >= 80) { task->data[0]++; task->data[5] = 0; sub_81057E8(2); - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, 3); + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, 3); } } -/*static */void sub_8104598(struct Task *task) +/*static */void ReelTimeAction6(struct Task *task) { - sub_8102D28(task->data[4] >> 8); + IncrementReelTimePixelOffset(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x80; if (++task->data[5] >= 80) { @@ -2786,23 +2875,23 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_81045CC(struct Task *task) +/*static */void ReelTimeAction7(struct Task *task) { - sub_8102D28(task->data[4] >> 8); + IncrementReelTimePixelOffset(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x40; if (++task->data[5] >= 40) { task->data[5] = 0; - if (sSlotMachine->unk05) - { - if (sSlotMachine->unk0A <= task->data[6]) + if (sSlotMachine->reelTimeDraw) + { // TODO: check if fairRollsLeft differs from reelTimeDraw + if (sSlotMachine->fairRollsLeft <= task->data[6]) task->data[0]++; } else if (task->data[6] > 3) { task->data[0]++; } - else if (sub_81026DC(task->data[6])) + else if (SkipToReelTimeAction14(task->data[6])) { task->data[0] = 14; } @@ -2810,28 +2899,28 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_810463C(struct Task *task) +/*static */void ReelTimeAction_LandOnOutcome(struct Task *task) { - s16 r5 = sSlotMachine->unk14 % 20; - if (r5) + s16 reelTimePixelOffset = sSlotMachine->reelTimePixelOffset % 20; + if (reelTimePixelOffset) { - r5 = sub_8102D5C(task->data[4] >> 8); + reelTimePixelOffset = AdvanceReelTimeNextNumber(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x40; } - else if (sub_8102C48(1) != sSlotMachine->unk05) + else if (GetNthNextReelTimePosition(1) != sSlotMachine->reelTimeDraw) { - sub_8102D28(task->data[4] >> 8); - r5 = sSlotMachine->unk14 % 20; + IncrementReelTimePixelOffset(task->data[4] >> 8); + reelTimePixelOffset = sSlotMachine->reelTimePixelOffset % 20; task->data[4] = (u8)task->data[4] + 0x40; } - if (r5 == 0 && sub_8102C48(1) == sSlotMachine->unk05) + if (reelTimePixelOffset == 0 && GetNthNextReelTimePosition(1) == sSlotMachine->reelTimeDraw) { - task->data[4] = 0; + task->data[4] = 0; // stop moving task->data[0]++; } } -/*static */void sub_81046C0(struct Task *task) +/*static */void ReelTimeAction9(struct Task *task) { if (++task->data[4] >= 60) { @@ -2839,17 +2928,17 @@ s16 sub_8102D5C(s16 a0) sub_81056C0(); sub_8105804(); task->data[0]++; - if(sSlotMachine->unk05 == 0) + if(sSlotMachine->reelTimeDraw == 0) { task->data[4] = 0xa0; - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, 5); + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, 5); PlayFanfare(MUS_ME_ZANNEN); } else { task->data[4] = 0xc0; - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, 4); - gSprites[sSlotMachine->unk3F].animCmdIndex = 0; + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, 4); + gSprites[sSlotMachine->reelTimeSprite3F].animCmdIndex = 0; if (sSlotMachine->pikaPower) { sub_8104098(); @@ -2860,13 +2949,13 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_8104764(struct Task *task) +/*static */void ReelTimeAction10(struct Task *task) { if ((task->data[4] == 0 || --task->data[4] == 0) && !sub_81040C8()) task->data[0]++; } -/*static */void sub_8104794(struct Task *task) +/*static */void ReelTimeAction11(struct Task *task) { s16 r4; gSpriteCoordOffsetX -= 8; @@ -2880,53 +2969,53 @@ s16 sub_8102D5C(s16 a0) task->data[0]++; } -/*static */void sub_81047EC(struct Task *task) +/*static */void ReelTimeAction12(struct Task *task) { - sSlotMachine->unk0B = 0; - sSlotMachine->unk0A = sSlotMachine->unk05; + sSlotMachine->fairRollsUsed = 0; + sSlotMachine->fairRollsLeft = sSlotMachine->reelTimeDraw; gSpriteCoordOffsetX = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); - sSlotMachine->unk1A = 8; + sSlotMachine->reelIncrement = 8; sub_810514C(); sub_81054B8(); sub_8105524(); PlayNewMapMusic(sSlotMachine->backupMapMusic); - if (sSlotMachine->unk0A == 0) + if (sSlotMachine->fairRollsLeft == 0) { - DestroyTask(FindTaskIdByFunc(sub_810434C)); + DestroyTask(FindTaskIdByFunc(RunReelTimeActions)); } else { sub_8104CAC(4); - task->data[1] = dp15_jump_random_unknown(); + task->data[1] = DrawNewReelIncrement(); task->data[2] = 0; task->data[3] = 0; task->data[0]++; } } -/*static */void sub_8104860(struct Task *task) +/*static */void ReelTimeAction13(struct Task *task) { - if (sSlotMachine->unk1A == task->data[1]) + if (sSlotMachine->reelIncrement == task->data[1]) task->data[0]++; - else if (sSlotMachine->unk1C[0] % 24 == 0 && (++task->data[2]& 0x07) == 0) - sSlotMachine->unk1A >>= 1; + else if (sSlotMachine->reelPixelOffsets[0] % 24 == 0 && (++task->data[2]& 0x07) == 0) + sSlotMachine->reelIncrement >>= 1; } -/*static */void sub_81048A8(struct Task *task) +/*static */void ReelTimeAction14(struct Task *task) { if (sub_8104E18()) - DestroyTask(FindTaskIdByFunc(sub_810434C)); + DestroyTask(FindTaskIdByFunc(RunReelTimeActions)); } -/*static */void sub_81048CC(struct Task *task) +/*static */void ReelTimeAction15(struct Task *task) { sub_81054B8(); sub_81056C0(); sub_8105804(); sub_8105854(); gSprites[sSlotMachine->unk4E[0]].invisible = TRUE; - StartSpriteAnimIfDifferent(gSprites + sSlotMachine->unk3F, 5); + StartSpriteAnimIfDifferent(gSprites + sSlotMachine->reelTimeSprite3F, 5); task->data[0]++; task->data[4] = 4; task->data[5] = 0; @@ -2935,7 +3024,7 @@ s16 sub_8102D5C(s16 a0) PlaySE(SE_W153); } -/*static */void sub_8104940(struct Task *task) +/*static */void ReelTimeAction16(struct Task *task) { gSpriteCoordOffsetY = task->data[4]; SetGpuReg(REG_OFFSET_BG1VOFS, task->data[4]); @@ -2955,7 +3044,7 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_81049C8(struct Task *task) +/*static */void ReelTimeAction17(struct Task *task) { gSpriteCoordOffsetY = 0; SetGpuReg(REG_OFFSET_BG1VOFS, 0); @@ -2966,7 +3055,7 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_81049F8(struct Task *task) +/*static */void ReelTimeAction18(struct Task *task) { gSpriteCoordOffsetX = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); @@ -2975,7 +3064,7 @@ s16 sub_8102D5C(s16 a0) sub_8105554(); sub_8105524(); sub_81059B8(); - DestroyTask(FindTaskIdByFunc(sub_810434C)); + DestroyTask(FindTaskIdByFunc(RunReelTimeActions)); } /*static */void sub_8104A40(s16 a0, s16 a1) @@ -2998,39 +3087,39 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_8104AB8(u8 a0) +/*static */void OpenInfoBox(u8 seemsUnused) { - u8 taskId = CreateTask(sub_8104B0C, 1); - gTasks[taskId].data[1] = a0; - sub_8104B0C(taskId); + u8 taskId = CreateTask(RunInfoBoxActions, 1); + gTasks[taskId].data[1] = seemsUnused; + RunInfoBoxActions(taskId); } -/*static */bool8 sub_8104AEC(void) +/*static */bool8 ClosedInfoBox(void) { - if (FindTaskIdByFunc(sub_8104B0C) == 0xFF) + if (FindTaskIdByFunc(RunInfoBoxActions) == 0xFF) return TRUE; else return FALSE; } -/*static */void sub_8104B0C(u8 taskId) +/*static */void RunInfoBoxActions(u8 taskId) { - gUnknown_083ECC30[gTasks[taskId].data[0]](gTasks + taskId); + InfoBoxActions[gTasks[taskId].data[0]](gTasks + taskId); } -/*static */void sub_8104B3C(struct Task *task) +/*static */void InfoBox_FadeIn(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); task->data[0]++; } -/*static */void sub_8104B60(struct Task *task) +/*static */void InfoBox_WaitForFade(struct Task *task) { if (!gPaletteFade.active) task->data[0]++; } -/*static */void sub_8104B80(struct Task *task) +/*static */void InfoBox_8104B80(struct Task *task) { sub_8104DA4(); sub_81065DC(); @@ -3040,15 +3129,15 @@ s16 sub_8102D5C(s16 a0) task->data[0]++; } -/*static */void sub_812DD78(struct Task *task) +/*static */void InfoBox_AddText(struct Task *task) { - AddTextPrinterParameterized3(1, 1, 2, 5, gUnknown_085A744C, 0, gText_ReelTimeHelp); + AddTextPrinterParameterized3(1, 1, 2, 5, gColors_ReelTimeHelp, 0, gText_ReelTimeHelp); CopyWindowToVram(1, 3); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); task->data[0]++; } -/*static */void sub_8104BC8(struct Task *task) +/*static */void InfoBox_AwaitPlayerInput(struct Task *task) { if (gMain.newKeys & (B_BUTTON | SELECT_BUTTON)) { @@ -3061,29 +3150,29 @@ s16 sub_8102D5C(s16 a0) } } -/*static */void sub_812DE14(struct Task *task) +/*static */void InfoBox_812DE14(struct Task *task) { sub_812F968(); ShowBg(3); task->data[0]++; } -/*static */void sub_812DE30(struct Task *task) +/*static */void InfoBox_812DE30(struct Task *task) { sub_8104CAC(task->data[1]); task->data[0]++; } -/*static */void sub_8104BFC(struct Task *task) +/*static */void InfoBox_8104BFC(struct Task *task) { sub_810423C(sSlotMachine->pikaPower); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); task->data[0]++; } -/*static */void sub_8104C44(struct Task *task) +/*static */void InfoBox_FreeTask(struct Task *task) { - DestroyTask(FindTaskIdByFunc(sub_8104B0C)); + DestroyTask(FindTaskIdByFunc(RunInfoBoxActions)); } /*static */void sub_8104C5C(void) @@ -3091,13 +3180,14 @@ s16 sub_8102D5C(s16 a0) u8 i; struct Task *task; i = CreateTask(sub_8104E74_, 3); - sSlotMachine->unk3D = i; + sSlotMachine->unkTaskPointer3D = i; task = gTasks + i; task->data[1] = -1; for (i = 4; i < 16; i++) task->data[i] = MAX_SPRITES; } +// possibly initialize each wheel /*static */void sub_8104CAC(u8 arg0) { u8 i; @@ -3105,7 +3195,7 @@ s16 sub_8102D5C(s16 a0) sub_8104DA4(); - task = gTasks + sSlotMachine->unk3D; + task = gTasks + sSlotMachine->unkTaskPointer3D; task->data[1] = arg0; for (i = 0; gUnknown_083ED048[arg0][i].unk00 != 0xFF; i++) @@ -3123,7 +3213,7 @@ s16 sub_8102D5C(s16 a0) /*static */void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) { u8 i; - struct Task *task = gTasks + sSlotMachine->unk3D; + struct Task *task = gTasks + sSlotMachine->unkTaskPointer3D; for (i = 4; i < 16; i++) { if (task->data[i] == MAX_SPRITES) @@ -3137,7 +3227,7 @@ s16 sub_8102D5C(s16 a0) /*static */void sub_8104DA4(void) { u8 i; - struct Task *task = gTasks + sSlotMachine->unk3D; + struct Task *task = gTasks + sSlotMachine->unkTaskPointer3D; if ((u16)task->data[1] != 0xFFFF) gUnknown_083ED064[task->data[1]](); for (i = 4; i < 16; i++) @@ -3153,7 +3243,7 @@ s16 sub_8102D5C(s16 a0) /*static */bool8 sub_8104E18(void) { u8 i; - struct Task *task = gTasks + sSlotMachine->unk3D; + struct Task *task = gTasks + sSlotMachine->unkTaskPointer3D; for (i = 4; i < 16; i++) { if (task->data[i] != MAX_SPRITES) @@ -3192,12 +3282,14 @@ s16 sub_8102D5C(s16 a0) } } +// debug this to find out what sprite->data[0] and sprite->data[2] are holding +// I would guess this updates the sprite location in the reel /*static */void sub_8104F18(struct Sprite *sprite) { - sprite->data[2] = sSlotMachine->unk1C[sprite->data[0]] + sprite->data[1]; + sprite->data[2] = sSlotMachine->reelPixelOffsets[sprite->data[0]] + sprite->data[1]; sprite->data[2] %= 120; - sprite->pos1.y = sSlotMachine->unk22[sprite->data[0]] + 28 + sprite->data[2]; - sprite->sheetTileStart = GetSpriteTileStartByTag(GetTagOfReelSymbolOnScreenAtPos(sprite->data[0], sprite->data[2] / 24)); + sprite->pos1.y = sSlotMachine->stopReelPixelOffset[sprite->data[0]] + 28 + sprite->data[2]; + sprite->sheetTileStart = GetSpriteTileStartByTag(GetNearbyTag(sprite->data[0], sprite->data[2] / 24)); SetSpriteSheetFrameTileNum(sprite); } @@ -3268,12 +3360,12 @@ s16 sub_8102D5C(s16 a0) spriteId = CreateSprite(&spriteTemplate, 280, 80, 1); gSprites[spriteId].oam.priority = 1; gSprites[spriteId].coordOffsetEnabled = TRUE; - sSlotMachine->unk3F = spriteId; + sSlotMachine->reelTimeSprite3F = spriteId; } /*static */void sub_810514C(void) { - DestroySprite(gSprites + sSlotMachine->unk3F); + DestroySprite(gSprites + sSlotMachine->reelTimeSprite3F); if (gUnknown_0203AAE4 != NULL) FREE_AND_SET_NULL(gUnknown_0203AAE4); } @@ -3362,10 +3454,10 @@ s16 sub_8102D5C(s16 a0) /*static */void sub_810535C(struct Sprite *sprite) { - s16 r0 = (u16)(sSlotMachine->unk14 + sprite->data[7]); + s16 r0 = (u16)(sSlotMachine->reelTimePixelOffset + sprite->data[7]); r0 %= 40; sprite->pos1.y = r0 + 59; - StartSpriteAnimIfDifferent(sprite, sub_8102C48(r0 / 20)); + StartSpriteAnimIfDifferent(sprite, GetNthNextReelTimePosition(r0 / 20)); } /*static */void sub_81053A0(void) @@ -3427,13 +3519,14 @@ s16 sub_8102D5C(s16 a0) FREE_AND_SET_NULL(gUnknown_0203AAF0); } -/*static */void sub_8105578(void) +// TODO: check if this is true +/*static */void CreateReelTimeSprites1(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0x98, 0x20, 5); struct Sprite *sprite = &gSprites[spriteId]; sprite->oam.priority = 1; sprite->hFlip = TRUE; - sSlotMachine->unk50[0] = spriteId; + sSlotMachine->reelTimeSprites1[0] = spriteId; sprite->data[0] = 8; sprite->data[1] = -1; sprite->data[2] = -1; @@ -3442,7 +3535,7 @@ s16 sub_8102D5C(s16 a0) spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0xb8, 0x20, 5); sprite = &gSprites[spriteId]; sprite->oam.priority = 1; - sSlotMachine->unk50[1] = spriteId; + sSlotMachine->reelTimeSprites1[1] = spriteId; sprite->data[1] = 1; sprite->data[2] = -1; sprite->data[7] = 0x20; @@ -3472,8 +3565,8 @@ s16 sub_8102D5C(s16 a0) /*static */void sub_8105688(s16 a0) { - gSprites[sSlotMachine->unk50[0]].data[7] = a0; - gSprites[sSlotMachine->unk50[1]].data[7] = a0; + gSprites[sSlotMachine->reelTimeSprites1[0]].data[7] = a0; + gSprites[sSlotMachine->reelTimeSprites1[1]].data[7] = a0; } /*static */void sub_81056C0(void) @@ -3481,10 +3574,10 @@ s16 sub_8102D5C(s16 a0) u8 i; for (i = 0; i < 2; i++) - DestroySprite(&gSprites[sSlotMachine->unk50[i]]); + DestroySprite(&gSprites[sSlotMachine->reelTimeSprites1[i]]); } -/*static */void sub_81056F0(void) +/*static */void CreateReelTimeSprite2(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x48, 0x50, 3); gSprites[spriteId].oam.priority = 1; @@ -3492,12 +3585,12 @@ s16 sub_8102D5C(s16 a0) gSprites[spriteId].data[5] = 0; gSprites[spriteId].data[6] = 16; gSprites[spriteId].data[7] = 8; - sSlotMachine->unk52[0] = spriteId; + sSlotMachine->reelTimeSprites2[0] = spriteId; spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x68, 0x50, 3); gSprites[spriteId].oam.priority = 1; gSprites[spriteId].hFlip = TRUE; - sSlotMachine->unk52[1] = spriteId; + sSlotMachine->reelTimeSprites2[1] = spriteId; } /*static */void sub_8105784(struct Sprite *sprite) @@ -3514,7 +3607,7 @@ s16 sub_8102D5C(s16 a0) /*static */void sub_81057E8(s16 a0) { - gSprites[sSlotMachine->unk52[0]].data[7] = a0; + gSprites[sSlotMachine->reelTimeSprites2[0]].data[7] = a0; } /*static */void sub_8105804(void) @@ -3522,7 +3615,7 @@ s16 sub_8102D5C(s16 a0) u8 i; MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, 0, 0, 0); for (i = 0; i < 2; i++) - DestroySprite(&gSprites[sSlotMachine->unk52[i]]); + DestroySprite(&gSprites[sSlotMachine->reelTimeSprites2[i]]); } /*static */void sub_8105854(void) @@ -3782,7 +3875,7 @@ s16 sub_8102D5C(s16 a0) switch (sprite->data[0]) { case 0: - StartSpriteAnim(sprite, sSlotMachine->unk0A - 1); + StartSpriteAnim(sprite, sSlotMachine->fairRollsLeft - 1); sprite->data[0]++; // fallthrough case 1: @@ -4271,7 +4364,7 @@ extern const u16 gSlotMachineMenu_Pal[]; gUnknown_0203AB28[1].size = 0x180; } -const u8 sReelSymbols[][21] = +const u8 sReelSymbols[][REEL_NUM_TAGS] = { { SLOT_MACHINE_TAG_7_RED, @@ -4348,13 +4441,13 @@ const u8 gUnknown_083ECCF1[] = { 1, 0, 5, 4, 3, 2 }; -const s16 gUnknown_083ECCF8[][2] = { +const s16 sInitialReelPositions[][2] = { {0, 6}, {0, 10}, {0, 2} }; -const u8 gUnknown_083ECD04[][3] = { +const u8 sSlotLuckinessTable1[][3] = { {1, 1, 12}, {1, 1, 14}, {2, 2, 14}, @@ -4363,13 +4456,13 @@ const u8 gUnknown_083ECD04[][3] = { {3, 3, 16} }; -const u8 gUnknown_083ECD16[][6] = { +const u8 sSlotLuckinessTable2[][6] = { {25, 25, 30, 40, 40, 50}, {25, 25, 30, 30, 35, 35}, {25, 25, 30, 25, 25, 30} }; -const u8 gUnknown_083ECD28[][6] = { +const u8 sSlotLuckinessTable3[][6] = { {20, 25, 25, 20, 25, 25}, {12, 15, 15, 18, 19, 22}, {25, 25, 25, 30, 30, 40}, @@ -4377,7 +4470,7 @@ const u8 gUnknown_083ECD28[][6] = { {40, 40, 35, 35, 40, 40} }; -const u8 gUnknown_083ECD46[][17] = { +const u8 ReelTimeProbabilityTable0[][17] = { {243, 243, 243, 80, 80, 80, 80, 40, 40, 40, 40, 40, 40, 5, 5, 5, 5}, { 5, 5, 5, 150, 150, 150, 150, 130, 130, 130, 130, 130, 130, 100, 100, 100, 5}, { 4, 4, 4, 20, 20, 20, 20, 80, 80, 80, 80, 80, 80, 100, 100, 100, 40}, @@ -4386,7 +4479,7 @@ const u8 gUnknown_083ECD46[][17] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6} }; -const u8 gUnknown_083ECDAC[][17] = { +const u8 ReelTimeProbabilityTable1[][17] = { { 243, 243, 243, 200, 200, 200, 200, 160, 160, 160, 160, 160, 160, 70, 70, 70, 5}, { 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 2, 2, 2, 6}, { 4, 4, 4, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 40, 40, 40, 35}, @@ -4395,11 +4488,11 @@ const u8 gUnknown_083ECDAC[][17] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 60} }; -const u16 gUnknown_083ECE12[] = { - 0x80, 0xaf, 0xc8, 0xe1, 0x100 +const u16 ProbabilityTable_SkipToReelTimeAction14[] = { + 128, 175, 200, 225, 256 }; -const u16 gUnknown_083ECE1C[][2] = { +const u16 ReelIncrementTable[][2] = { {10, 5}, {10, 10}, {10, 15}, @@ -4407,19 +4500,26 @@ const u16 gUnknown_083ECE1C[][2] = { {10, 35} }; -const u16 gUnknown_083ECE30[] = { +const u16 ReelTimeBonusIncrementTable[] = { 0, 5, 10, 15, 20 }; -const u8 gUnknown_083ECE3A[] = { - 6, 4, 3, 2, 5, 0, 0, 0 +// tentative name +const u8 LuckyFlagTagOutput[] = { + SLOT_MACHINE_TAG_REPLAY, SLOT_MACHINE_TAG_CHERRY, SLOT_MACHINE_TAG_LOTAD, SLOT_MACHINE_TAG_AZURILL, SLOT_MACHINE_TAG_POWER, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED }; -const u16 gUnknown_083ECE42[] = { +/* +sSlotMachine->luckyFlags: 7, 6, 5, 4, 3, 2, 1, 0 +If you got Lucky2 in 1 attempt, flag 7 gets set. +If you got Lucky2 in 2 attempts, flag 5 gets set. +If you got Lucky2 in 3 attempts, flag 6 gets set. +*/ +const u16 FlagsAttemptAtLuckiness1[] = { // order seems buggy 0x80, 0x20, 0x40 }; -const u16 gUnknown_083ECE48[] = { +const u16 FlagsAttemptAtLuckiness2[] = { 0x10, 0x08, 0x04, 0x02, 0x01 }; diff --git a/src/task.c b/src/task.c index 14b97a361..a2df66de8 100644 --- a/src/task.c +++ b/src/task.c @@ -1,9 +1,6 @@ #include "global.h" #include "task.h" -#define HEAD_SENTINEL 0xFE -#define TAIL_SENTINEL 0xFF - struct Task gTasks[NUM_TASKS]; static void InsertTask(u8 newTaskId); diff --git a/src/tv.c b/src/tv.c index f282b09f0..cbeb189a8 100644 --- a/src/tv.c +++ b/src/tv.c @@ -62,7 +62,7 @@ IWRAM_DATA s8 sTVShowMixingCurSlot; EWRAM_DATA u16 sPokemonAnglerSpecies = 0; EWRAM_DATA u16 sPokemonAnglerAttemptCounters = 0; EWRAM_DATA u16 sFindThatGamerCoinsSpent = 0; -EWRAM_DATA bool8 sFindThatGamerWhichGame = FALSE; +EWRAM_DATA bool8 sFindThatGamerWhichGame = SLOT_MACHINE; EWRAM_DATA ALIGNED(4) u8 sRecordMixingPartnersWithoutShowsToShare = 0; EWRAM_DATA ALIGNED(4) u8 sTVShowState = 0; EWRAM_DATA u8 sTVSecretBaseSecretsRandomValues[3] = {}; @@ -2019,7 +2019,7 @@ void sub_80EDCE8(void) } } -void sub_80EDD78(u16 nCoinsPaidOut) +void reportNewCoinTotal(u16 nCoinsPaidOut) { TVShow *show; bool8 flag; @@ -2031,7 +2031,7 @@ void sub_80EDD78(u16 nCoinsPaidOut) flag = FALSE; switch (sFindThatGamerWhichGame) { - case FALSE: + case SLOT_MACHINE: if (nCoinsPaidOut >= sFindThatGamerCoinsSpent + 200) { flag = TRUE; @@ -2044,7 +2044,7 @@ void sub_80EDD78(u16 nCoinsPaidOut) break; } return; - case TRUE: + case ROULETTE: if (nCoinsPaidOut >= sFindThatGamerCoinsSpent + 50) { flag = TRUE; @@ -2072,15 +2072,15 @@ void sub_80EDD78(u16 nCoinsPaidOut) } } -void sub_80EDE70(u16 nCoinsSpent) +void reportPlayedSlotMachine(u16 nCoinsSpent) { - sFindThatGamerWhichGame = FALSE; + sFindThatGamerWhichGame = SLOT_MACHINE; sFindThatGamerCoinsSpent = nCoinsSpent; } -void sub_80EDE84(u16 nCoinsSpent) +void reportPlayedRoulette(u16 nCoinsSpent) { - sFindThatGamerWhichGame = TRUE; + sFindThatGamerWhichGame = ROULETTE; sFindThatGamerCoinsSpent = nCoinsSpent; } -- cgit v1.2.3 From 67fe781ed2fd5f09fdf47a9c8026177e740f3208 Mon Sep 17 00:00:00 2001 From: hondew Date: Thu, 7 Feb 2019 13:39:18 -0500 Subject: clean up slot machine until AwardPayout --- include/tv.h | 4 +- src/roulette.c | 2 +- src/slot_machine.c | 214 ++++++++++++++++++++++++++--------------------------- src/tv.c | 4 +- 4 files changed, 112 insertions(+), 112 deletions(-) diff --git a/include/tv.h b/include/tv.h index 0f50f2327..a5c26af0c 100644 --- a/include/tv.h +++ b/include/tv.h @@ -26,8 +26,8 @@ bool8 GetPriceReduction(u8 newsKind); void sub_80F14F8(TVShow *shows); size_t CountDigits(int value); u8 GetRibbonCount(struct Pokemon *pokemon); -void reportPlayedSlotMachine(u16 nCoinsSpent); -void reportPlayedRoulette(u16 nCoinsSpent); +void AlertTVThatYouPlayedSlotMachine(u16 nCoinsSpent); +void AlertTVThatYouPlayedRoulette(u16 nCoinsSpent); void reportNewCoinTotal(u16 nCoinsPaidOut); void sub_80EEA70(void); void sub_80EDB44(void); diff --git a/src/roulette.c b/src/roulette.c index b19750f2a..fa2b6c579 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -996,7 +996,7 @@ static void sub_81405CC(void) taskId = gUnknown_0203AB88->varA4 = CreateTask(sub_81408A8, 0); gTasks[taskId].data[6] = 6; gTasks[taskId].data[13] = GetCoins(); - reportPlayedRoulette(GetCoins()); + AlertTVThatYouPlayedRoulette(GetCoins()); gUnknown_0203AB88->varA5 = CreateTask(sub_8140814, 1); SetMainCallback2(sub_8140238); return; diff --git a/src/slot_machine.c b/src/slot_machine.c index 7552e755c..9bb12df81 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -65,7 +65,7 @@ struct SlotMachineEwramStruct /*0x03*/ u8 luckyGame; /*0x04*/ u8 luckyFlags; /*0x05*/ u8 reelTimeDraw; - /*0x06*/ u8 isBiasTagMatchPossible; // tentative + /*0x06*/ u8 luckySpinsLeft; // tentative /*0x07*/ u8 biasTag; /*0x08*/ u16 matchedSymbols; /*0x0A*/ u8 fairRollsLeft; @@ -77,15 +77,15 @@ struct SlotMachineEwramStruct /*0x14*/ s16 reelTimePixelOffset; /*0x16*/ s16 reelTimePosition; /*0x18*/ s16 currReel; - /*0x1A*/ s16 reelIncrement; + /*0x1A*/ s16 reelIncrement; // speed of reel /*0x1C*/ s16 reelPixelOffsets[3]; /*0x22*/ u16 stopReelPixelOffset[3]; /*0x28*/ s16 reelPositions[3]; /*0x2E*/ s16 reelExtraTurns[3]; - /*0x34*/ s16 biasTagFinalPositions[3]; + /*0x34*/ s16 biasTagFinalPositions[3]; /*0x3A*/ u8 reelTasks[3]; /*0x3D*/ u8 unkTaskPointer3D; - /*0x3E*/ u8 unkTaskPointer; + /*0x3E*/ u8 unkTaskPointer3E; /*0x3F*/ u8 reelTimeSprite3F; /*0x40*/ u8 unk40; /*0x41*/ u8 unk41; @@ -134,7 +134,7 @@ struct UnkStruct1 /*static */void SlotMachineSetup_9_0(void); /*static */void SlotMachineSetup_10_0(void); /*static */void SlotMachineSetupGameplayTasks(void); -/*static */void GameplayTasks_Slot(void); +/*static */void GameplayTasks_Slots(void); /*static */void sub_8104DA4(void); /*static */void RunSlotActions(u8 taskId); /*static */bool8 SlotAction_UnfadeScreen(struct Task *task); @@ -144,34 +144,34 @@ struct UnkStruct1 /*static */bool8 SlotAction4(struct Task *task); /*static */bool8 SlotAction_AwaitPlayerInput(struct Task *task); /*static */bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task); -/*static */bool8 SlotAction_PlayerAcceptsNotHavingThreeCoins(struct Task *task); +/*static */bool8 SlotAction_ExitYouDontHaveThreeCoinsDialogue(struct Task *task); /*static */bool8 SlotAction_GivingInformation(struct Task *task); /*static */bool8 SlotAction9(struct Task *task); /*static */bool8 SlotAction10(struct Task *task); -/*static */bool8 SlotAction11(struct Task *task); +/*static */bool8 SlotAction_SetLuckySpins(struct Task *task); /*static */bool8 SlotAction_AwaitReelStop(struct Task *task); /*static */bool8 SlotAction_WaitForAllReelsToStop(struct Task *task); /*static */bool8 SlotAction_CheckMatches(struct Task *task); /*static */bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task); /*static */bool8 SlotAction_EndOfRoll(struct Task *task); -/*static */bool8 SlotAction17(struct Task *task); +/*static */bool8 SlotAction_MatchedPower(struct Task *task); /*static */bool8 SlotAction18(struct Task *task); /*static */bool8 SlotAction_Loop(struct Task *task); /*static */bool8 SlotAction_NoMatches(struct Task *task); /*static */bool8 SlotAction_PrintQuitTheGame(struct Task *task); /*static */bool8 SlotAction_SeeIfPlayerQuits(struct Task *task); /*static */bool8 SlotAction_Print9999CoinMessage(struct Task *task); -/*static */bool8 SlotAction_Escape9999CoinMessage(struct Task *task); +/*static */bool8 SlotAction_Exit9999CoinMessage(struct Task *task); /*static */bool8 SlotAction_PrintNoMoreCoins(struct Task *task); -/*static */bool8 SlotAction_EscapeNoMoreCoins(struct Task *task); +/*static */bool8 SlotAction_ExitNoMoreCoinsMessage(struct Task *task); /*static */bool8 SlotAction_EndGame(struct Task *task); /*static */bool8 SlotAction_FreeDataStructures(struct Task *task); -/*static */void DrawForLuckyFlags(void); -/*static */void AnyLuckyFlagsSet(void); -/*static */bool8 IsLuckyRound(void); -/*static */u8 AttemptsAtLuckiness1(void); +/*static */void DrawLuckyFlags(void); +/*static */void SetLuckySpins(void); +/*static */bool8 IsThisRoundLucky(void); +/*static */u8 AttemptsAtLuckyflags_Top3(void); /*static */u16 DrawNewReelIncrement(void); -/*static */u8 AttemptsAtLuckiness2(void); +/*static */u8 AttemptsAtLuckyflags_NotTop3(void); /*static */void CheckMatch(void); /*static */void CheckMatch_CenterRow(void); /*static */void CheckMatch_TopAndBottom(void); @@ -185,7 +185,7 @@ struct UnkStruct1 /*static */bool8 AwardPayoutAction_FreeTask(struct Task *task); /*static */u8 GetNearbyTag(u8 x, s16 y); /*static */void GameplayTask_StopReel(void); -/*static */void ReelTasks_8102DEC(u8 a0); +/*static */void ReelTasks_SetUnkTaskData(u8 a0); /*static */void sub_8102E1C(u8 a0); /*static */bool8 IsReelMoving(u8 a0); /*static */void RunReelActions(u8 taskId); @@ -228,7 +228,7 @@ struct UnkStruct1 /*static */void sub_8103F70(void); /*static */bool8 sub_8103FA0(void); /*static */void sub_8103FE8_(u8 taskId); -/*static */void sub_8104048(void); +/*static */void GameplayTasks_PikaPower(void); /*static */void DisplayPikaPower(u8 pikaPower); /*static */bool8 sub_81040C8(void); /*static */void sub_81040E8(u8 taskId); @@ -262,7 +262,7 @@ struct UnkStruct1 /*static */void sub_8104A40(s16 a0, s16 a1); /*static */void sub_8104A88(s16 a0); /*static */void OpenInfoBox(u8 a0); -/*static */bool8 ClosedInfoBox(void); +/*static */bool8 IsInfoBoxClosed(void); /*static */void RunInfoBoxActions(u8 taskId); /*static */void InfoBox_FadeIn(struct Task *task); /*static */void InfoBox_WaitForFade(struct Task *task); @@ -355,10 +355,10 @@ static IWRAM_DATA struct SpriteFrameImage *gUnknown_03001188[26]; // Const rom data. extern const struct UnkStruct1 *const gUnknown_083ED048[]; extern const u16 gPalette_83EDE24[]; -extern const u8 sSlotLuckinessTable1[][3]; -extern const u8 LuckyFlagTagOutput[]; -extern const u16 FlagsAttemptAtLuckiness1[]; -extern const u16 FlagsAttemptAtLuckiness2[]; +extern const u8 LuckyRoundTable[][3]; +extern const u8 LuckyTags[]; +extern const u16 LuckyFlagSettings_Top3[]; +extern const u16 LuckyFlagSettings_NotTop3[]; extern const s16 gUnknown_083ECE7E[][2]; extern const SpriteCallback gUnknown_083ECF0C[]; extern const struct SpriteTemplate *const gUnknown_083EDB5C[]; @@ -384,10 +384,10 @@ extern const u16 *const gUnknown_083EDE20; extern const s16 sInitialReelPositions[][2]; extern const struct BgTemplate gUnknown_085A7424[4]; extern const struct WindowTemplate gUnknown_085A7434[]; -extern const u8 sSlotLuckinessTable2[][6]; -extern const u8 sSlotLuckinessTable3[][6]; -extern const u8 ReelTimeProbabilityTable0[][17]; -extern const u8 ReelTimeProbabilityTable1[][17]; +extern const u8 LuckyFlagsTable_Top3[][6]; +extern const u8 LuckyFlagsTable_NotTop3[][6]; +extern const u8 ReelTimeProbabilityTable_UnluckyGame[][17]; +extern const u8 ReelTimeProbabilityTable_LuckyGame[][17]; extern const u8 sSym2Match[]; extern const u8 gUnknown_083ECCF1[]; extern const u8 sReelSymbols[][REEL_NUM_TAGS]; @@ -464,26 +464,26 @@ bool8 (*const SlotActions[])(struct Task *task) = SlotAction4, SlotAction_AwaitPlayerInput, SlotAction_PrintYouDontHaveThreeCoins, - SlotAction_PlayerAcceptsNotHavingThreeCoins, + SlotAction_ExitYouDontHaveThreeCoinsDialogue, SlotAction_GivingInformation, SlotAction9, SlotAction10, - SlotAction11, + SlotAction_SetLuckySpins, SlotAction_AwaitReelStop, SlotAction_WaitForAllReelsToStop, SlotAction_CheckMatches, SlotAction_WaitForPayoutToBeAwarded, SlotAction_EndOfRoll, - SlotAction17, + SlotAction_MatchedPower, SlotAction18, SlotAction_Loop, SlotAction_NoMatches, SlotAction_PrintQuitTheGame, SlotAction_SeeIfPlayerQuits, SlotAction_Print9999CoinMessage, - SlotAction_Escape9999CoinMessage, + SlotAction_Exit9999CoinMessage, SlotAction_PrintNoMoreCoins, - SlotAction_EscapeNoMoreCoins, + SlotAction_ExitNoMoreCoinsMessage, SlotAction_EndGame, SlotAction_FreeDataStructures, }; @@ -863,7 +863,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sSlotMachine->reelPixelOffsets[i] = 0x1f8 - sSlotMachine->reelPositions[i] * 24; sSlotMachine->reelPixelOffsets[i] %= 0x1f8; // 0x1f8 is 540 } - reportPlayedSlotMachine(GetCoins()); + AlertTVThatYouPlayedSlotMachine(GetCoins()); } /*static */void SlotMachineSetup_3_0(void) @@ -891,7 +891,6 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue gUnknown_0203AAD0[6] = 0x20BF; } -// machine wheel stuff /*static */void SlotMachineSetup_5_0(void) { sub_8106448(); @@ -910,16 +909,16 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sub_81050C4(); } -// create next gameplay task +// create gameplay tasks /*static */void SlotMachineSetupGameplayTasks(void) { - sub_8104048(); + GameplayTasks_PikaPower(); GameplayTask_StopReel(); sub_8104C5C(); - GameplayTasks_Slot(); + GameplayTasks_Slots(); } -/*static */void GameplayTasks_Slot(void) +/*static */void GameplayTasks_Slots(void) { RunSlotActions(CreateTask(RunSlotActions, 0)); } @@ -1015,10 +1014,10 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sSlotMachine->coins--; sSlotMachine->bet++; } - // if player maxed out or finished betting + // player maxed out or finished betting if (sSlotMachine->bet >= 3 || (sSlotMachine->bet != 0 && gMain.newKeys & A_BUTTON)) sSlotMachine->slotActionPtr = 9; - // if player wants to quit + // player wants to quit if (gMain.newKeys & B_BUTTON) sSlotMachine->slotActionPtr = 21; } @@ -1034,7 +1033,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */bool8 SlotAction_PlayerAcceptsNotHavingThreeCoins(struct Task *task) +/*static */bool8 SlotAction_ExitYouDontHaveThreeCoinsDialogue(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -1046,7 +1045,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue /*static */bool8 SlotAction_GivingInformation(struct Task *task) { - if (ClosedInfoBox()) + if (IsInfoBoxClosed()) sSlotMachine->slotActionPtr = 5; return FALSE; } @@ -1054,14 +1053,16 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue // probably make all the slots roll /*static */bool8 SlotAction9(struct Task *task) { - DrawForLuckyFlags(); + DrawLuckyFlags(); sub_8104DA4(); + // for each reel... - //...do a reel task - ReelTasks_8102DEC(0); - ReelTasks_8102DEC(1); - ReelTasks_8102DEC(2); + ReelTasks_SetUnkTaskData(0); + ReelTasks_SetUnkTaskData(1); + ReelTasks_SetUnkTaskData(2); + sub_80EEC80(); // something with daily slot variable + task->data[0] = 0; if (sSlotMachine->luckyFlags & 0x20) // bit 5 of luckyFlag set { @@ -1093,11 +1094,11 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */bool8 SlotAction11(struct Task *task) +/*static */bool8 SlotAction_SetLuckySpins(struct Task *task) { if (++task->data[0] >= 30) { - AnyLuckyFlagsSet(); + SetLuckySpins(); sSlotMachine->slotActionPtr = 12; } return FALSE; @@ -1166,6 +1167,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue PlayFanfare(MUS_ME_B_SMALL); sub_8104CAC(2); } + // if you matched 777... if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_MIXED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) { // clear top bits 6 and 7 @@ -1226,7 +1228,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */bool8 SlotAction17(struct Task *task) +/*static */bool8 SlotAction_MatchedPower(struct Task *task) { if (!sub_81040C8()) { @@ -1315,7 +1317,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */bool8 SlotAction_Escape9999CoinMessage(struct Task *task) +/*static */bool8 SlotAction_Exit9999CoinMessage(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -1334,7 +1336,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */bool8 SlotAction_EscapeNoMoreCoins(struct Task *task) +/*static */bool8 SlotAction_ExitNoMoreCoinsMessage(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -1344,7 +1346,6 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -// possibly end game /*static */bool8 SlotAction_EndGame(struct Task *task) { SetCoins(sSlotMachine->coins); @@ -1396,96 +1397,96 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */void DrawForLuckyFlags(void) +/*static */void DrawLuckyFlags(void) { - u8 luckyAttempts; + u8 attempts; if (sSlotMachine->fairRollsLeft == 0) { if (!(sSlotMachine->luckyFlags & 0xc0)) // top 2 flags set to 0 { - if (IsLuckyRound()) + if (IsThisRoundLucky()) { - luckyAttempts = AttemptsAtLuckiness1(); - if (luckyAttempts != 3) // if you found a lucky number + attempts = AttemptsAtLuckyflags_Top3(); + if (attempts != 3) // if you found a lucky number { - // luckyAttempts == 1: reelTime flag set - sSlotMachine->luckyFlags |= FlagsAttemptAtLuckiness1[luckyAttempts]; - if (luckyAttempts != 1) + // attempts == 1: reelTime flag set + sSlotMachine->luckyFlags |= LuckyFlagSettings_Top3[attempts]; + if (attempts != 1) { return; } } } // if you got it your first try, you get to try again for the lower lucky flags - luckyAttempts = AttemptsAtLuckiness2(); - if (luckyAttempts != 5) // if you found a lucky number + attempts = AttemptsAtLuckyflags_NotTop3(); + if (attempts != 5) // if you found a lucky number { - sSlotMachine->luckyFlags |= FlagsAttemptAtLuckiness2[luckyAttempts]; + sSlotMachine->luckyFlags |= LuckyFlagSettings_NotTop3[attempts]; } } } } -/*static */void AnyLuckyFlagsSet(void) +/*static */void SetLuckySpins(void) { - sSlotMachine->isBiasTagMatchPossible = 0; + sSlotMachine->luckySpinsLeft = 0; if (sSlotMachine->luckyFlags) - sSlotMachine->isBiasTagMatchPossible = 1; + sSlotMachine->luckySpinsLeft = 1; } -/*static */u8 GetLuckyFlagTagOutput(u8 luckyFlags) +/*static */u8 GetLuckyTag(u8 luckyFlags) { u8 i; for (i = 0; i < 8; i++) { if (luckyFlags & 1) - return LuckyFlagTagOutput[i]; + return LuckyTags[i]; luckyFlags >>= 1; } return 0; } -/*static */bool8 IsLuckyRound(void) +/*static */bool8 IsThisRoundLucky(void) { u8 rval = Random(); - if (sSlotLuckinessTable1[sSlotMachine->machineId][sSlotMachine->bet - 1] > rval) + if (LuckyRoundTable[sSlotMachine->machineId][sSlotMachine->bet - 1] > rval) return TRUE; return FALSE; } -/*static */u8 AttemptsAtLuckiness1(void) +/*static */u8 AttemptsAtLuckyflags_Top3(void) { - s16 countAttempts; + s16 count; - for (countAttempts = 0; countAttempts < 3; countAttempts++) + for (count = 0; count < 3; count++) { s16 rval = Random() & 0xff; - s16 value = sSlotLuckinessTable2[countAttempts][sSlotMachine->machineId]; + s16 value = LuckyFlagsTable_Top3[count][sSlotMachine->machineId]; if (value > rval) break; } - return countAttempts; + return count; } -/*static */u8 AttemptsAtLuckiness2(void) +/*static */u8 AttemptsAtLuckyflags_NotTop3(void) { - s16 countAttempts; + s16 count; - for (countAttempts = 0; countAttempts < 5; countAttempts++) + for (count = 0; count < 5; count++) { s16 rval = Random() & 0xff; // random byte - s16 value = sSlotLuckinessTable3[countAttempts][sSlotMachine->machineId]; + s16 value = LuckyFlagsTable_NotTop3[count][sSlotMachine->machineId]; // make first attempt easier if it's a lucky game - if (countAttempts == 0 && sSlotMachine->luckyGame == 1) + if (count == 0 && sSlotMachine->luckyGame == 1) { value += 10; if (value > 0x100) value = 0x100; } // make last attempt harder if it's a lucky game - else if (countAttempts == 4 && sSlotMachine->luckyGame == 1) + else if (count == 4 && sSlotMachine->luckyGame == 1) { value -= 10; if (value < 0) @@ -1494,15 +1495,15 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue if (value > rval) break; } - return countAttempts; + return count; } /*static */u8 GetReelTimeProbability(u8 reelTimeDraw) { if (sSlotMachine->luckyGame == 0) - return ReelTimeProbabilityTable0[reelTimeDraw][sSlotMachine->pikaPower]; + return ReelTimeProbabilityTable_UnluckyGame[reelTimeDraw][sSlotMachine->pikaPower]; else - return ReelTimeProbabilityTable1[reelTimeDraw][sSlotMachine->pikaPower]; + return ReelTimeProbabilityTable_LuckyGame[reelTimeDraw][sSlotMachine->pikaPower]; } /*static */void DrawReelTimeOutcome(void) @@ -1806,7 +1807,7 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) } } -/*static */void ReelTasks_8102DEC(u8 reelIndex) +/*static */void ReelTasks_SetUnkTaskData(u8 reelIndex) { gTasks[sSlotMachine->reelTasks[reelIndex]].data[0] = 1; gTasks[sSlotMachine->reelTasks[reelIndex]].data[14] = 1; @@ -1845,13 +1846,13 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) /*static */bool8 ReelAction_DecideWhereToStop(struct Task *task) { task->data[0]++; - // initialize data for that reel --> these will be manipulated if biasTags can be lined up + // initialize data for that reel --> these will be changed if biasTags can be lined up sSlotMachine->biasTagFinalPositions[task->data[15]] = 0; sSlotMachine->reelExtraTurns[task->data[15]] = 0; - if (sSlotMachine->fairRollsLeft == 0 && (sSlotMachine->luckyFlags == 0 || sSlotMachine->isBiasTagMatchPossible == 0 || !DecideReelTurns_BiasTag[task->data[15]]())) + if (sSlotMachine->fairRollsLeft == 0 && (sSlotMachine->luckyFlags == 0 || sSlotMachine->luckySpinsLeft == 0 || !DecideReelTurns_BiasTag[task->data[15]]())) { - sSlotMachine->isBiasTagMatchPossible = 0; + sSlotMachine->luckySpinsLeft = 0; DecideReelTurns_NoBiasTag[task->data[15]](); } task->data[1] = sSlotMachine->reelExtraTurns[task->data[15]]; @@ -1902,7 +1903,7 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) /*static */bool8 DecideReelTurns_BiasTag_Reel1(void) { - u8 tag2 = GetLuckyFlagTagOutput(sSlotMachine->luckyFlags); + u8 tag2 = GetLuckyTag(sSlotMachine->luckyFlags); u8 tag1 = tag2; if (sSlotMachine->luckyFlags & 0xc0) // if either of top 2 bits are set { @@ -2489,7 +2490,7 @@ Advance until there are no cherries on screen in reel 1 LoadPalette(gUnknown_083EDD1C[a0], gUnknown_083EDD30[a0], 2); } -// probably light the bet number +// light up the value bet by the player /*static */void LoadBetTiles(u8 betVal) { u8 i; @@ -2621,15 +2622,14 @@ Advance until there are no cherries on screen in reel 1 LoadPalette(gUnknown_083EDDA0[task->data[2]], 0x10, 0x20); } -/*static */void sub_8104048(void) +/*static */void GameplayTasks_PikaPower(void) { - sSlotMachine->unkTaskPointer = CreateTask(sub_81040E8, 8); + sSlotMachine->unkTaskPointer3E = CreateTask(sub_81040E8, 8); } -// possibly clear pikaPower /*static */void DisplayPikaPower(u8 pikaPower) { - struct Task *task = gTasks + sSlotMachine->unkTaskPointer; + struct Task *task = gTasks + sSlotMachine->unkTaskPointer3E; ClearTaskDataFields_2orHigher(task); task->data[0] = 1; task->data[1]++; @@ -2638,7 +2638,7 @@ Advance until there are no cherries on screen in reel 1 /*static */void sub_8104098(void) { - struct Task *task = gTasks + sSlotMachine->unkTaskPointer; + struct Task *task = gTasks + sSlotMachine->unkTaskPointer3E; ClearTaskDataFields_2orHigher(task); task->data[0] = 3; task->data[15] = 1; // points to a reelIndex @@ -2646,10 +2646,10 @@ Advance until there are no cherries on screen in reel 1 /*static */bool8 sub_81040C8(void) { - return gTasks[sSlotMachine->unkTaskPointer].data[15]; + return gTasks[sSlotMachine->unkTaskPointer3E].data[15]; } -/*static */void sub_81040E8(u8 taskId) // debug to see if taskId is machineId +/*static */void sub_81040E8(u8 taskId) { gUnknown_083ECBB4[gTasks[taskId].data[0]](gTasks + taskId); } @@ -2741,7 +2741,7 @@ Advance until there are no cherries on screen in reel 1 selectedPikaPowerTile[r1] = pikaPowerTileTable[r3][1]; LoadBgTilemap(2, &selectedPikaPowerTile[r1], 2, r4 + 0x40); } - gTasks[sSlotMachine->unkTaskPointer].data[1] = pikaPower; + gTasks[sSlotMachine->unkTaskPointer3E].data[1] = pikaPower; } /*static */void BeginReelTime(void) @@ -3094,7 +3094,7 @@ Advance until there are no cherries on screen in reel 1 RunInfoBoxActions(taskId); } -/*static */bool8 ClosedInfoBox(void) +/*static */bool8 IsInfoBoxClosed(void) { if (FindTaskIdByFunc(RunInfoBoxActions) == 0xFF) return TRUE; @@ -4447,7 +4447,7 @@ const s16 sInitialReelPositions[][2] = { {0, 2} }; -const u8 sSlotLuckinessTable1[][3] = { +const u8 LuckyRoundTable[][3] = { {1, 1, 12}, {1, 1, 14}, {2, 2, 14}, @@ -4456,13 +4456,13 @@ const u8 sSlotLuckinessTable1[][3] = { {3, 3, 16} }; -const u8 sSlotLuckinessTable2[][6] = { +const u8 LuckyFlagsTable_Top3[][6] = { {25, 25, 30, 40, 40, 50}, {25, 25, 30, 30, 35, 35}, {25, 25, 30, 25, 25, 30} }; -const u8 sSlotLuckinessTable3[][6] = { +const u8 LuckyFlagsTable_NotTop3[][6] = { {20, 25, 25, 20, 25, 25}, {12, 15, 15, 18, 19, 22}, {25, 25, 25, 30, 30, 40}, @@ -4470,7 +4470,7 @@ const u8 sSlotLuckinessTable3[][6] = { {40, 40, 35, 35, 40, 40} }; -const u8 ReelTimeProbabilityTable0[][17] = { +const u8 ReelTimeProbabilityTable_UnluckyGame[][17] = { {243, 243, 243, 80, 80, 80, 80, 40, 40, 40, 40, 40, 40, 5, 5, 5, 5}, { 5, 5, 5, 150, 150, 150, 150, 130, 130, 130, 130, 130, 130, 100, 100, 100, 5}, { 4, 4, 4, 20, 20, 20, 20, 80, 80, 80, 80, 80, 80, 100, 100, 100, 40}, @@ -4479,7 +4479,7 @@ const u8 ReelTimeProbabilityTable0[][17] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6} }; -const u8 ReelTimeProbabilityTable1[][17] = { +const u8 ReelTimeProbabilityTable_LuckyGame[][17] = { { 243, 243, 243, 200, 200, 200, 200, 160, 160, 160, 160, 160, 160, 70, 70, 70, 5}, { 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 2, 2, 2, 6}, { 4, 4, 4, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 40, 40, 40, 35}, @@ -4505,7 +4505,7 @@ const u16 ReelTimeBonusIncrementTable[] = { }; // tentative name -const u8 LuckyFlagTagOutput[] = { +const u8 LuckyTags[] = { SLOT_MACHINE_TAG_REPLAY, SLOT_MACHINE_TAG_CHERRY, SLOT_MACHINE_TAG_LOTAD, SLOT_MACHINE_TAG_AZURILL, SLOT_MACHINE_TAG_POWER, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED }; @@ -4515,11 +4515,11 @@ If you got Lucky2 in 1 attempt, flag 7 gets set. If you got Lucky2 in 2 attempts, flag 5 gets set. If you got Lucky2 in 3 attempts, flag 6 gets set. */ -const u16 FlagsAttemptAtLuckiness1[] = { // order seems buggy +const u16 LuckyFlagSettings_Top3[] = { // order seems buggy 0x80, 0x20, 0x40 }; -const u16 FlagsAttemptAtLuckiness2[] = { +const u16 LuckyFlagSettings_NotTop3[] = { 0x10, 0x08, 0x04, 0x02, 0x01 }; diff --git a/src/tv.c b/src/tv.c index cbeb189a8..27f779c2d 100644 --- a/src/tv.c +++ b/src/tv.c @@ -2072,13 +2072,13 @@ void reportNewCoinTotal(u16 nCoinsPaidOut) } } -void reportPlayedSlotMachine(u16 nCoinsSpent) +void AlertTVThatYouPlayedSlotMachine(u16 nCoinsSpent) { sFindThatGamerWhichGame = SLOT_MACHINE; sFindThatGamerCoinsSpent = nCoinsSpent; } -void reportPlayedRoulette(u16 nCoinsSpent) +void AlertTVThatYouPlayedRoulette(u16 nCoinsSpent) { sFindThatGamerWhichGame = ROULETTE; sFindThatGamerCoinsSpent = nCoinsSpent; -- cgit v1.2.3 From f8f046c850697a86dae1d244fc80911497bd2d1c Mon Sep 17 00:00:00 2001 From: hondew Date: Thu, 7 Feb 2019 19:13:23 -0500 Subject: clean up slot machine more --- src/slot_machine.c | 423 ++++++++++++++++++++++++++--------------------------- 1 file changed, 210 insertions(+), 213 deletions(-) diff --git a/src/slot_machine.c b/src/slot_machine.c index 9bb12df81..bb6925bd8 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -79,11 +79,11 @@ struct SlotMachineEwramStruct /*0x18*/ s16 currReel; /*0x1A*/ s16 reelIncrement; // speed of reel /*0x1C*/ s16 reelPixelOffsets[3]; - /*0x22*/ u16 stopReelPixelOffset[3]; - /*0x28*/ s16 reelPositions[3]; + /*0x22*/ u16 reelPixelOffsetsWhileStopping[3]; + /*0x28*/ s16 reelTagOffsets[3]; /*0x2E*/ s16 reelExtraTurns[3]; - /*0x34*/ s16 biasTagFinalPositions[3]; - /*0x3A*/ u8 reelTasks[3]; + /*0x34*/ s16 biasTagLocation[3]; + /*0x3A*/ u8 slotReelTasks[3]; /*0x3D*/ u8 unkTaskPointer3D; /*0x3E*/ u8 unkTaskPointer3E; /*0x3F*/ u8 reelTimeSprite3F; @@ -180,20 +180,20 @@ struct UnkStruct1 /*static */void AwardPayout(void); /*static */void RunAwardPayoutActions(u8 taskId); /*static */bool8 IsFinalTask_RunAwardPayoutActions(void); -/*static */bool8 AwardPayoutAction1(struct Task *task); +/*static */bool8 AwardPayoutAction0(struct Task *task); /*static */bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task); /*static */bool8 AwardPayoutAction_FreeTask(struct Task *task); -/*static */u8 GetNearbyTag(u8 x, s16 y); -/*static */void GameplayTask_StopReel(void); +/*static */u8 GetNearbyTag_Quantized(u8 x, s16 y); +/*static */void GameplayTask_StopSlotReel(void); /*static */void ReelTasks_SetUnkTaskData(u8 a0); /*static */void sub_8102E1C(u8 a0); -/*static */bool8 IsReelMoving(u8 a0); -/*static */void RunReelActions(u8 taskId); -/*static */bool8 ReelAction_StayStill(struct Task *task); -/*static */bool8 ReelAction_Spin(struct Task *task); -/*static */bool8 ReelAction_DecideWhereToStop(struct Task *task); -/*static */bool8 ReelAction_TurnToSelectedTag(struct Task *task); -/*static */bool8 ReelAction_OscillatingStop(struct Task *task); +/*static */bool8 IsSlotReelMoving(u8 a0); +/*static */void RunSlotReelActions(u8 taskId); +/*static */bool8 SlotReelAction_StayStill(struct Task *task); +/*static */bool8 SlotReelAction_Spin(struct Task *task); +/*static */bool8 SlotReelAction_DecideWhereToStop(struct Task *task); +/*static */bool8 SlotReelAction_MoveToStop(struct Task *task); +/*static */bool8 SlotReelAction_OscillatingStop(struct Task *task); /*static */bool8 DecideReelTurns_BiasTag_Reel1(void); /*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8 a0, u8 a1); /*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 a0, u8 a1); @@ -389,7 +389,7 @@ extern const u8 LuckyFlagsTable_NotTop3[][6]; extern const u8 ReelTimeProbabilityTable_UnluckyGame[][17]; extern const u8 ReelTimeProbabilityTable_LuckyGame[][17]; extern const u8 sSym2Match[]; -extern const u8 gUnknown_083ECCF1[]; +extern const u8 ReelTimeTags[]; extern const u8 sReelSymbols[][REEL_NUM_TAGS]; extern const u16 *const gUnknown_083EDD08[]; extern const u16 *const gUnknown_083EDD1C[]; @@ -490,18 +490,18 @@ bool8 (*const SlotActions[])(struct Task *task) = bool8 (*const AwardPayoutActions[])(struct Task *task) = { - AwardPayoutAction1, + AwardPayoutAction0, AwardPayoutAction_GivePayoutToPlayer, AwardPayoutAction_FreeTask }; -bool8 (*const ReelActions[])(struct Task *task) = +bool8 (*const SlotReelActions[])(struct Task *task) = { - ReelAction_StayStill, - ReelAction_Spin, - ReelAction_DecideWhereToStop, - ReelAction_TurnToSelectedTag, - ReelAction_OscillatingStop + SlotReelAction_StayStill, + SlotReelAction_Spin, + SlotReelAction_DecideWhereToStop, + SlotReelAction_MoveToStop, + SlotReelAction_OscillatingStop }; // returns True if a match with the biasTag is possible in that reel @@ -858,9 +858,9 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue // for each reel... for (i = 0; i < 3; i++) { - sSlotMachine->stopReelPixelOffset[i] = 0; - sSlotMachine->reelPositions[i] = sInitialReelPositions[i][sSlotMachine->luckyGame] % REEL_NUM_TAGS; - sSlotMachine->reelPixelOffsets[i] = 0x1f8 - sSlotMachine->reelPositions[i] * 24; + sSlotMachine->reelPixelOffsetsWhileStopping[i] = 0; + sSlotMachine->reelTagOffsets[i] = sInitialReelPositions[i][sSlotMachine->luckyGame] % REEL_NUM_TAGS; + sSlotMachine->reelPixelOffsets[i] = 0x1f8 - sSlotMachine->reelTagOffsets[i] * 24; sSlotMachine->reelPixelOffsets[i] %= 0x1f8; // 0x1f8 is 540 } AlertTVThatYouPlayedSlotMachine(GetCoins()); @@ -913,7 +913,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue /*static */void SlotMachineSetupGameplayTasks(void) { GameplayTasks_PikaPower(); - GameplayTask_StopReel(); + GameplayTask_StopSlotReel(); sub_8104C5C(); GameplayTasks_Slots(); } @@ -1118,7 +1118,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue /*static */bool8 SlotAction_WaitForAllReelsToStop(struct Task *task) { - if (!IsReelMoving(sSlotMachine->currReel)) + if (!IsSlotReelMoving(sSlotMachine->currReel)) { sSlotMachine->currReel++; sSlotMachine->slotActionPtr = 12; @@ -1571,9 +1571,9 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue { u8 c1, c2, c3, match; - c1 = GetNearbyTag(0, 2); - c2 = GetNearbyTag(1, 2); - c3 = GetNearbyTag(2, 2); + c1 = GetNearbyTag_Quantized(0, 2); + c2 = GetNearbyTag_Quantized(1, 2); + c3 = GetNearbyTag_Quantized(2, 2); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1587,9 +1587,9 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue { u8 c1, c2, c3, match; - c1 = GetNearbyTag(0, 1); - c2 = GetNearbyTag(1, 1); - c3 = GetNearbyTag(2, 1); + c1 = GetNearbyTag_Quantized(0, 1); + c2 = GetNearbyTag_Quantized(1, 1); + c3 = GetNearbyTag_Quantized(2, 1); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1599,9 +1599,9 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; sub_8103E04(1); } - c1 = GetNearbyTag(0, 3); - c2 = GetNearbyTag(1, 3); - c3 = GetNearbyTag(2, 3); + c1 = GetNearbyTag_Quantized(0, 3); + c2 = GetNearbyTag_Quantized(1, 3); + c3 = GetNearbyTag_Quantized(2, 3); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1617,9 +1617,9 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue { u8 c1, c2, c3, match; - c1 = GetNearbyTag(0, 1); - c2 = GetNearbyTag(1, 2); - c3 = GetNearbyTag(2, 3); + c1 = GetNearbyTag_Quantized(0, 1); + c2 = GetNearbyTag_Quantized(1, 2); + c3 = GetNearbyTag_Quantized(2, 3); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1630,9 +1630,9 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } sub_8103E04(3); } - c1 = GetNearbyTag(0, 3); - c2 = GetNearbyTag(1, 2); - c3 = GetNearbyTag(2, 1); + c1 = GetNearbyTag_Quantized(0, 3); + c2 = GetNearbyTag_Quantized(1, 2); + c3 = GetNearbyTag_Quantized(2, 1); match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { @@ -1677,7 +1677,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue ; } -/*static */bool8 AwardPayoutAction1(struct Task *task) +/*static */bool8 AwardPayoutAction0(struct Task *task) { if (sub_8103E38()) { @@ -1724,130 +1724,130 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */u8 GetNearbyTag(u8 reelIndex, s16 posOffset) +/* +Returns the tag that is posOffset below the tag at the top of reelIndex's tape +*/ +/*static */u8 GetNearbyTag_Quantized(u8 reelIndex, s16 posOffset) { - /* - Returns the tag that is posOffset below the tag at the top of reelIndex's tape - */ - s16 tagIndex = (sSlotMachine->reelPositions[reelIndex] + posOffset) % REEL_NUM_TAGS; + s16 tagIndex = (sSlotMachine->reelTagOffsets[reelIndex] + posOffset) % REEL_NUM_TAGS; if (tagIndex < 0) tagIndex += REEL_NUM_TAGS; return sReelSymbols[reelIndex][tagIndex]; } -// TODO: find out how rounding works -/*static */u8 GetNearbyTag_PixelOffset(u8 reelIndex, s16 posOffset) +/* +Calculates GetNearbyTag_Quantized as if the reel was snapped downwards into place +/* +/*static */u8 GetNearbyTag(u8 reelIndex, s16 posOffset) { s16 tagOffset = 0; s16 result = sSlotMachine->reelPixelOffsets[reelIndex] % 24; if (result != 0) - tagOffset = -1; // tag will be posOffset - 1 - return GetNearbyTag(reelIndex, posOffset + tagOffset); + tagOffset = -1; + return GetNearbyTag_Quantized(reelIndex, posOffset + tagOffset); } -// TODO: make sure this is actually what's happening -/*static */u8 GetNthNextReelTimePosition(s16 n) +/*static */u8 GetNearbyReelTimeTag(s16 n) { s16 newPosition = (sSlotMachine->reelTimePosition + n) % 6; if (newPosition < 0) newPosition += 6; - return gUnknown_083ECCF1[newPosition]; + return ReelTimeTags[newPosition]; } -/*static */void IncrementReelPixelOffset(u8 reelIndex, s16 value) +/*static */void AdvanceSlotReel(u8 reelIndex, s16 value) { sSlotMachine->reelPixelOffsets[reelIndex] += value; sSlotMachine->reelPixelOffsets[reelIndex] %= 504; - sSlotMachine->reelPositions[reelIndex] = REEL_NUM_TAGS - sSlotMachine->reelPixelOffsets[reelIndex] / 24; + sSlotMachine->reelTagOffsets[reelIndex] = REEL_NUM_TAGS - sSlotMachine->reelPixelOffsets[reelIndex] / 24; } -// TODO: make sure that's actually what's happening -s16 AdvanceReelNextTag(u8 reelIndex, s16 reelIncrement) +s16 AdvanceSlotReelToNextTag(u8 reelIndex, s16 value) { - s16 value = sSlotMachine->reelPixelOffsets[reelIndex] % 24; - if (value != 0) + s16 offset = sSlotMachine->reelPixelOffsets[reelIndex] % 24; + if (offset != 0) { - if (value < reelIncrement) - reelIncrement = value; - IncrementReelPixelOffset(reelIndex, reelIncrement); - value = sSlotMachine->reelPixelOffsets[reelIndex] % 24; + if (offset < value) + value = offset; + AdvanceSlotReel(reelIndex, value); + offset = sSlotMachine->reelPixelOffsets[reelIndex] % 24; } - return value; + return offset; } -/*static */void IncrementReelTimePixelOffset(s16 value) +/*static */void AdvanceReeltimeReel(s16 value) { sSlotMachine->reelTimePixelOffset += value; sSlotMachine->reelTimePixelOffset %= 120; sSlotMachine->reelTimePosition = 6 - sSlotMachine->reelTimePixelOffset / 20; } -s16 AdvanceReelTimeNextNumber(s16 reelIncrement) +s16 AdvanceReeltimeReelToNextTag(s16 value) { - s16 value = sSlotMachine->reelTimePixelOffset % 20; - if (value != 0) + s16 offset = sSlotMachine->reelTimePixelOffset % 20; + if (offset != 0) { - if (value < reelIncrement) - reelIncrement = value; - IncrementReelTimePixelOffset(reelIncrement); - value = sSlotMachine->reelTimePixelOffset % 20; + if (offset < value) + value = offset; + AdvanceReeltimeReel(value); + offset = sSlotMachine->reelTimePixelOffset % 20; } - return value; + return offset; } -/*static */void GameplayTask_StopReel(void) +/*static */void GameplayTask_StopSlotReel(void) { u8 i; for (i = 0; i < 3; i++) { - u8 taskId = CreateTask(RunReelActions, 2); + u8 taskId = CreateTask(RunSlotReelActions, 2); gTasks[taskId].data[15] = i; - sSlotMachine->reelTasks[i] = taskId; - RunReelActions(taskId); + sSlotMachine->slotReelTasks[i] = taskId; + RunSlotReelActions(taskId); } } /*static */void ReelTasks_SetUnkTaskData(u8 reelIndex) { - gTasks[sSlotMachine->reelTasks[reelIndex]].data[0] = 1; - gTasks[sSlotMachine->reelTasks[reelIndex]].data[14] = 1; + gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[0] = 1; + gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[14] = 1; } /*static */void sub_8102E1C(u8 reelIndex) { - gTasks[sSlotMachine->reelTasks[reelIndex]].data[0] = 2; + gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[0] = 2; } -/*static */bool8 IsReelMoving(u8 reelIndex) +/*static */bool8 IsSlotReelMoving(u8 reelIndex) { - return gTasks[sSlotMachine->reelTasks[reelIndex]].data[14]; + return gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[14]; } -/*static */void RunReelActions(u8 taskId) +/*static */void RunSlotReelActions(u8 taskId) { - while (ReelActions[gTasks[taskId].data[0]](gTasks + taskId)) + while (SlotReelActions[gTasks[taskId].data[0]](gTasks + taskId)) ; } // task->data[1] reel turns // task->data[15] reelIndex -/*static */bool8 ReelAction_StayStill(struct Task *task) +/*static */bool8 SlotReelAction_StayStill(struct Task *task) { return FALSE; } -/*static */bool8 ReelAction_Spin(struct Task *task) +/*static */bool8 SlotReelAction_Spin(struct Task *task) { - IncrementReelPixelOffset(task->data[15], sSlotMachine->reelIncrement); + AdvanceSlotReel(task->data[15], sSlotMachine->reelIncrement); return FALSE; } - -/*static */bool8 ReelAction_DecideWhereToStop(struct Task *task) +// As in previous generations, the slot machine often doesn't stop exactly when you press stop +/*static */bool8 SlotReelAction_DecideWhereToStop(struct Task *task) { task->data[0]++; // initialize data for that reel --> these will be changed if biasTags can be lined up - sSlotMachine->biasTagFinalPositions[task->data[15]] = 0; + sSlotMachine->biasTagLocation[task->data[15]] = 0; sSlotMachine->reelExtraTurns[task->data[15]] = 0; if (sSlotMachine->fairRollsLeft == 0 && (sSlotMachine->luckyFlags == 0 || sSlotMachine->luckySpinsLeft == 0 || !DecideReelTurns_BiasTag[task->data[15]]())) @@ -1860,7 +1860,7 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) } // go to next tag and then do any additional turns -/*static */bool8 ReelAction_TurnToSelectedTag(struct Task *task) +/*static */bool8 SlotReelAction_MoveToStop(struct Task *task) { u16 reelStopShocks[ARRAY_COUNT(ReelStopShocks)]; s16 reelPixelPos; @@ -1868,11 +1868,11 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) memcpy(reelStopShocks, ReelStopShocks, sizeof(ReelStopShocks)); reelPixelPos = sSlotMachine->reelPixelOffsets[task->data[15]] % 24; if (reelPixelPos != 0) - reelPixelPos = AdvanceReelNextTag(task->data[15], sSlotMachine->reelIncrement); + reelPixelPos = AdvanceSlotReelToNextTag(task->data[15], sSlotMachine->reelIncrement); else if (sSlotMachine->reelExtraTurns[task->data[15]]) { sSlotMachine->reelExtraTurns[task->data[15]]--; - IncrementReelPixelOffset(task->data[15], sSlotMachine->reelIncrement); + AdvanceSlotReel(task->data[15], sSlotMachine->reelIncrement); reelPixelPos = sSlotMachine->reelPixelOffsets[task->data[15]] % 24; } if (reelPixelPos == 0 && sSlotMachine->reelExtraTurns[task->data[15]] == 0) @@ -1885,9 +1885,9 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) } // make selected tag oscillate before it becomes still -/*static */bool8 ReelAction_OscillatingStop(struct Task *task) +/*static */bool8 SlotReelAction_OscillatingStop(struct Task *task) { - sSlotMachine->stopReelPixelOffset[task->data[15]] = task->data[1]; + sSlotMachine->reelPixelOffsetsWhileStopping[task->data[15]] = task->data[1]; task->data[1] = -task->data[1]; task->data[2]++; if ((task->data[2] & 0x3) == 0) @@ -1896,7 +1896,7 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) { task->data[0] = 0; task->data[14] = 0; - sSlotMachine->stopReelPixelOffset[task->data[15]] = 0; + sSlotMachine->reelPixelOffsetsWhileStopping[task->data[15]] = 0; } return FALSE; } @@ -1913,9 +1913,9 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) return DecideReelTurns_BiasTag_Reel1_Bets[sSlotMachine->bet - 1](tag1, tag2); } -/*static */bool8 IsTag1orTag2AtPosInReel1(s16 pos, u8 tag1, u8 tag2) +/*static */bool8 AreTagsAtPosition_Reel1(s16 pos, u8 tag1, u8 tag2) { - u8 tag = GetNearbyTag_PixelOffset(0, pos); + u8 tag = GetNearbyTag(0, pos); if (tag == tag1 || tag == tag2) { sSlotMachine->biasTag = tag; @@ -1926,13 +1926,13 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) /*static */bool8 AreCherriesOnScreen_Reel1(s16 offsetFromCenter) { - if (GetNearbyTag_PixelOffset(0, 1 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetNearbyTag_PixelOffset(0, 2 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetNearbyTag_PixelOffset(0, 3 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY) + if (GetNearbyTag(0, 1 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetNearbyTag(0, 2 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetNearbyTag(0, 3 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY) return TRUE; else return FALSE; } -/*static */bool8 LuckyFlags_BiasCherryOr7s(void) +/*static */bool8 IsBiasTowardsCherryOr7s(void) { if (sSlotMachine->luckyFlags & 0xc2) // if any of bits 6, 7, or 1 are set return TRUE; @@ -1946,10 +1946,10 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) for (i = 0; i < 5; i++) { - // if a lucky tag appears in the center row within the next 5 turns - if (IsTag1orTag2AtPosInReel1(2 - i, tag1, tag2)) + // if a lucky tag appears in the center row within 4 turns + if (AreTagsAtPosition_Reel1(2 - i, tag1, tag2)) { - sSlotMachine->biasTagFinalPositions[0] = 2; + sSlotMachine->biasTagLocation[0] = 2; sSlotMachine->reelExtraTurns[0] = i; return TRUE; } @@ -1960,16 +1960,15 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) /*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 tag1, u8 tag2) { s16 i; - bool8 areLuckyBitsSet = LuckyFlags_BiasCherryOr7s(); - // if lucky numbers or no cherries are currently on screen in reel 1... - if (areLuckyBitsSet || !AreCherriesOnScreen_Reel1(0)) + bool8 biased = IsBiasTowardsCherryOr7s(); + if (biased || !AreCherriesOnScreen_Reel1(0)) { for (i = 1; i < 4; i++) { - //...and if a bias tag is currently on the screen - if (IsTag1orTag2AtPosInReel1(i, tag1, tag2)) + // if a bias tag is currently on the screen + if (AreTagsAtPosition_Reel1(i, tag1, tag2)) { - sSlotMachine->biasTagFinalPositions[0] = i; + sSlotMachine->biasTagLocation[0] = i; sSlotMachine->reelExtraTurns[0] = 0; return TRUE; } @@ -1977,29 +1976,29 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) } for (i = 1; i < 5; i++) { - bool8 areLuckyBitsSetCopy = areLuckyBitsSet; // redundant - // if lucky numbers or if in the next 4 turns there is a screen with no cherries... - if (areLuckyBitsSetCopy || !AreCherriesOnScreen_Reel1(i)) + bool8 biasedCopy = biased; // redundant + // if biased or if in the next 4 turns there is a screen with no cherries... + if (biasedCopy || !AreCherriesOnScreen_Reel1(i)) { //...and if a bias tag is in top row of that screen - if (IsTag1orTag2AtPosInReel1(1 - i, tag1, tag2)) + if (AreTagsAtPosition_Reel1(1 - i, tag1, tag2)) { //...and if it only took 1 turn and the lucky tag could also be the bottom row of a screen with no cherries... - if (i == 1 && (areLuckyBitsSetCopy || !AreCherriesOnScreen_Reel1(3))) + if (i == 1 && (biasedCopy || !AreCherriesOnScreen_Reel1(3))) { - sSlotMachine->biasTagFinalPositions[0] = 3; // maybe how many paths to check - sSlotMachine->reelExtraTurns[0] = 3; // maybe upper limit of turns to advance + sSlotMachine->biasTagLocation[0] = 3; + sSlotMachine->reelExtraTurns[0] = 3; return TRUE; } //...or if it isn't the last turn and the lucky tag could be in the center row of a screen with no cherries... - if (i < 4 && (areLuckyBitsSetCopy || !AreCherriesOnScreen_Reel1(i + 1))) + if (i < 4 && (biasedCopy || !AreCherriesOnScreen_Reel1(i + 1))) { - sSlotMachine->biasTagFinalPositions[0] = 2; + sSlotMachine->biasTagLocation[0] = 2; sSlotMachine->reelExtraTurns[0] = i + 1; return TRUE; } //...else - sSlotMachine->biasTagFinalPositions[0] = 1; + sSlotMachine->biasTagLocation[0] = 1; sSlotMachine->reelExtraTurns[0] = i; return TRUE; } @@ -2016,14 +2015,14 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) /*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void) { s16 i; - s16 reel1BiasTagFinalPos = sSlotMachine->biasTagFinalPositions[0]; + s16 biasTagLocation_Reel1 = sSlotMachine->biasTagLocation[0]; for (i = 0; i < 5; i++) { - // if biasTag appears in the same row within 5 turns - if (GetNearbyTag_PixelOffset(1, reel1BiasTagFinalPos - i) == sSlotMachine->biasTag) + // if biasTag appears in the same row within 4 turns + if (GetNearbyTag(1, biasTagLocation_Reel1 - i) == sSlotMachine->biasTag) { - sSlotMachine->biasTagFinalPositions[1] = reel1BiasTagFinalPos; + sSlotMachine->biasTagLocation[1] = biasTagLocation_Reel1; sSlotMachine->reelExtraTurns[1] = i; return TRUE; } @@ -2034,18 +2033,18 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) /*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void) { s16 i; - // if biasTag appears in the same row within 5 turns... + // if biasTag appears in the same row within 4 turns... if (DecideReelTurns_BiasTag_Reel2_Bet1or2()) { - //...and if the biasTag is not in row 2 of reel 1 and if it requires between either 2 or 3 turns to line up the biasTag in row 2... - if (sSlotMachine->biasTagFinalPositions[0] != 2 && sSlotMachine->reelExtraTurns[1] > 1 && sSlotMachine->reelExtraTurns[1] != 4) + //...and if the biasTag is not in middle row of reel 1 and if biasTag appears in middle row of reel 2 in 2 or 3 turns... + if (sSlotMachine->biasTagLocation[0] != 2 && sSlotMachine->reelExtraTurns[1] > 1 && sSlotMachine->reelExtraTurns[1] != 4) { for (i = 0; i < 5; i++) { - //...and if the bias tag will appear in the center row within 5 turns - if (GetNearbyTag_PixelOffset(1, 2 - i) == sSlotMachine->biasTag) + //...and if the bias tag will appear in the middle row within 4 turns + if (GetNearbyTag(1, 2 - i) == sSlotMachine->biasTag) { - sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->biasTagLocation[1] = 2; sSlotMachine->reelExtraTurns[1] = i; break; } @@ -2053,15 +2052,15 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) } return TRUE; } - // else if the biasTag is not in row 2 of reel 1... - if (sSlotMachine->biasTagFinalPositions[0] != 2) + // else if the biasTag is not in middle row of reel 1... + if (sSlotMachine->biasTagLocation[0] != 2) { for (i = 0; i < 5; i++) { - //...and if the biasTag will appear in the center row of reel 2 within 5 turns - if (GetNearbyTag_PixelOffset(1, 2 - i) == sSlotMachine->biasTag) + //...and if the biasTag will appear in the center row of reel 2 within 4 turns + if (GetNearbyTag(1, 2 - i) == sSlotMachine->biasTag) { - sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->biasTagLocation[1] = 2; sSlotMachine->reelExtraTurns[1] = i; return TRUE; } @@ -2089,14 +2088,14 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) /*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 biasTag) { s16 i; - s16 reel2BiasTagPos = sSlotMachine->biasTagFinalPositions[1]; + s16 biasTagLocation_Reel2 = sSlotMachine->biasTagLocation[1]; for (i = 0; i < 5; i++) { - // if the biasTag appears in the same row as in reel 2 within 5 turns - if (GetNearbyTag_PixelOffset(2, reel2BiasTagPos - i) == biasTag) + // if the biasTag appears in the same row as in reel 2 within 4 turns + if (GetNearbyTag(2, biasTagLocation_Reel2 - i) == biasTag) { - sSlotMachine->biasTagFinalPositions[2] = reel2BiasTagPos; + sSlotMachine->biasTagLocation[2] = biasTagLocation_Reel2; sSlotMachine->reelExtraTurns[2] = i; return TRUE; } @@ -2109,21 +2108,21 @@ s16 AdvanceReelTimeNextNumber(s16 reelIncrement) s16 i; s16 biasTagFinalPos; // if the final position of the biasTag matches in reel 1 and reel 2... - if (sSlotMachine->biasTagFinalPositions[0] == sSlotMachine->biasTagFinalPositions[1]) + if (sSlotMachine->biasTagLocation[0] == sSlotMachine->biasTagLocation[1]) //...then try to line it up in reel 3 return DecideReelTurns_BiasTag_Reel3_Bet1or2(biasTag); // else place it in the row opposite reel 1's - if (sSlotMachine->biasTagFinalPositions[0] == 1) + if (sSlotMachine->biasTagLocation[0] == 1) biasTagFinalPos = 3; else biasTagFinalPos = 1; for (i = 0; i < 5; i++) { - // if in the biasTag lands in that position within the next 5 turns - if (GetNearbyTag_PixelOffset(2, biasTagFinalPos - i) == biasTag) + // if the biasTag lands in that position within 4 turns + if (GetNearbyTag(2, biasTagFinalPos - i) == biasTag) { sSlotMachine->reelExtraTurns[2] = i; - sSlotMachine->biasTagFinalPositions[2] = biasTagFinalPos; + sSlotMachine->biasTagLocation[2] = biasTagFinalPos; return TRUE; } } @@ -2142,7 +2141,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->reelExtraTurns[0] = i; } -/*static */bool8 IsBiasTag7AndIfSoChangeColor(u8 *biasTagPtr) +/*static */bool8 IsBiasTag7AndIfSoSColor(u8 *biasTagPtr) { if (*biasTagPtr == SLOT_MACHINE_TAG_7_RED) { @@ -2165,21 +2164,21 @@ Advance until there are no cherries on screen in reel 1 // only does stuff if the biasTag is one of the 7's, plus other conditions /*static */void DecideReelTurns_NoBiasTag_Reel2_Bet1(void) { - // if reel 1 has a biasTag and bit 7 is set in luckyFlags... - if (sSlotMachine->biasTagFinalPositions[0] != 0 && sSlotMachine->luckyFlags & 0x80) + // if biasTag is in reel 1 and bit 7 is set in luckyFlags... + if (sSlotMachine->biasTagLocation[0] != 0 && sSlotMachine->luckyFlags & 0x80) { - u8 biasTag = GetNearbyTag_PixelOffset(0, 2 - sSlotMachine->reelExtraTurns[0]); + u8 biasTag = GetNearbyTag(0, 2 - sSlotMachine->reelExtraTurns[0]); //...and if biasTag is one of the 7's... - if (IsBiasTag7AndIfSoChangeColor(&biasTag)) - //...swap the color of the 7... + if (IsBiasTag7AndIfSoSColor(&biasTag)) + //...swap color of biasTag... { s16 i; for (i = 0; i < 5; i++) { - //...and if the biasTag appears in the next 5 turns - if (biasTag == GetNearbyTag_PixelOffset(1, 2 - i)) + //...and if the biasTag appears within 4 turns + if (biasTag == GetNearbyTag(1, 2 - i)) { - sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->biasTagLocation[1] = 2; sSlotMachine->reelExtraTurns[1] = i; break; } @@ -2191,20 +2190,20 @@ Advance until there are no cherries on screen in reel 1 /*static */void DecideReelTurns_NoBiasTag_Reel2_Bet2(void) { // if reel 1 has a biasTag and bit 7 is set in luckyFlags... - if (sSlotMachine->biasTagFinalPositions[0] != 0 && sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->biasTagLocation[0] != 0 && sSlotMachine->luckyFlags & 0x80) { - u8 biasTag = GetNearbyTag_PixelOffset(0, sSlotMachine->biasTagFinalPositions[0] - sSlotMachine->reelExtraTurns[0]); + u8 biasTag = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); //...and if biasTag is one of the 7's... - if (IsBiasTag7AndIfSoChangeColor(&biasTag)) - //...swap the color of the 7... + if (IsBiasTag7AndIfSoSColor(&biasTag)) + //...swap color of biasTag... { s16 i; for (i = 0; i < 5; i++) { - //...and if in the next 5 turns the biasTag appears in reel 2 - if (biasTag == GetNearbyTag_PixelOffset(1, sSlotMachine->biasTagFinalPositions[0] - i)) + //...and if the biasTag appears in same row in reel 2 within 4 turns + if (biasTag == GetNearbyTag(1, sSlotMachine->biasTagLocation[0] - i)) { - sSlotMachine->biasTagFinalPositions[1] = sSlotMachine->biasTagFinalPositions[0]; + sSlotMachine->biasTagLocation[1] = sSlotMachine->biasTagLocation[0]; sSlotMachine->reelExtraTurns[1] = i; break; } @@ -2218,46 +2217,46 @@ Advance until there are no cherries on screen in reel 1 s16 i; s16 j; // if reel 1 has a biasTag and bit 7 is set in luckyFlags... - if (sSlotMachine->biasTagFinalPositions[0] != 0 && sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->biasTagLocation[0] != 0 && sSlotMachine->luckyFlags & 0x80) { //...and if biasTag appeared in the center row of reel 1 - if (sSlotMachine->biasTagFinalPositions[0] == 2) + if (sSlotMachine->biasTagLocation[0] == 2) { DecideReelTurns_NoBiasTag_Reel2_Bet2(); } else { - u8 biasTag = GetNearbyTag_PixelOffset(0, sSlotMachine->biasTagFinalPositions[0] - sSlotMachine->reelExtraTurns[0]); + u8 biasTag = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); //...and if biasTag is one of the 7's... - if (IsBiasTag7AndIfSoChangeColor(&biasTag)) + if (IsBiasTag7AndIfSoSColor(&biasTag)) //...swap the color of the 7... { j = 2; - if (sSlotMachine->biasTagFinalPositions[0] == 3) + if (sSlotMachine->biasTagLocation[0] == 3) j = 3; for (i = 0; i < 2; i++, j--) { - if (biasTag == GetNearbyTag_PixelOffset(1, j)) + if (biasTag == GetNearbyTag(1, j)) { - sSlotMachine->biasTagFinalPositions[1] = j; + sSlotMachine->biasTagLocation[1] = j; sSlotMachine->reelExtraTurns[1] = 0; return; } } for (j = 1; j < 5; j++) { - if (biasTag == GetNearbyTag_PixelOffset(1, sSlotMachine->biasTagFinalPositions[0] - j)) + if (biasTag == GetNearbyTag(1, sSlotMachine->biasTagLocation[0] - j)) { - if (sSlotMachine->biasTagFinalPositions[0] == 1) + if (sSlotMachine->biasTagLocation[0] == 1) { if (j < 3) { - sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->biasTagLocation[1] = 2; sSlotMachine->reelExtraTurns[1] = j + 1; } else { - sSlotMachine->biasTagFinalPositions[1] = 1; + sSlotMachine->biasTagLocation[1] = 1; sSlotMachine->reelExtraTurns[1] = j; } } @@ -2265,12 +2264,12 @@ Advance until there are no cherries on screen in reel 1 { if (j < 3) { - sSlotMachine->biasTagFinalPositions[1] = 3; + sSlotMachine->biasTagLocation[1] = 3; sSlotMachine->reelExtraTurns[1] = j; } else { - sSlotMachine->biasTagFinalPositions[1] = 2; + sSlotMachine->biasTagLocation[1] = 2; sSlotMachine->reelExtraTurns[1] = j - 1; } } @@ -2319,14 +2318,14 @@ Advance until there are no cherries on screen in reel 1 /*static */void sub_8103830(void) { s16 i = 0; - u8 r5 = GetNearbyTag_PixelOffset(0, 2 - sSlotMachine->reelExtraTurns[0]); - u8 r1 = GetNearbyTag_PixelOffset(1, 2 - sSlotMachine->reelExtraTurns[1]); + u8 r5 = GetNearbyTag(0, 2 - sSlotMachine->reelExtraTurns[0]); + u8 r1 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); if (r5 == r1) { while (1) { u8 r0; - if (!(r5 == (r0 = GetNearbyTag_PixelOffset(2, 2 - i)) || (r5 == 0 && r0 == 1) || (r5 == 1 && r0 == 0))) + if (!(r5 == (r0 = GetNearbyTag(2, 2 - i)) || (r5 == 0 && r0 == 1) || (r5 == 1 && r0 == 0))) break; i++; } @@ -2337,7 +2336,7 @@ Advance until there are no cherries on screen in reel 1 { for (i = 0; i < 5; i++) { - if (r5 == GetNearbyTag_PixelOffset(2, 2 - i)) + if (r5 == GetNearbyTag(2, 2 - i)) { sSlotMachine->reelExtraTurns[2] = i; return; @@ -2347,7 +2346,7 @@ Advance until there are no cherries on screen in reel 1 i = 0; while (1) { - if (r5 != GetNearbyTag_PixelOffset(2, 2 - i)) + if (r5 != GetNearbyTag(2, 2 - i)) break; i++; } @@ -2363,15 +2362,15 @@ Advance until there are no cherries on screen in reel 1 u8 r6; u8 r4; - if (sSlotMachine->biasTagFinalPositions[1] != 0 && sSlotMachine->biasTagFinalPositions[0] == sSlotMachine->biasTagFinalPositions[1] && sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->biasTagLocation[1] != 0 && sSlotMachine->biasTagLocation[0] == sSlotMachine->biasTagLocation[1] && sSlotMachine->luckyFlags & 0x80) { - r7 = GetNearbyTag_PixelOffset(0, sSlotMachine->biasTagFinalPositions[0] - sSlotMachine->reelExtraTurns[0]); - r6 = GetNearbyTag_PixelOffset(1, sSlotMachine->biasTagFinalPositions[1] - sSlotMachine->reelExtraTurns[1]); + r7 = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); + r6 = GetNearbyTag(1, sSlotMachine->biasTagLocation[1] - sSlotMachine->reelExtraTurns[1]); if (sub_8103764(r7, r6)) { for (i = 0; i < 5; i++) { - r4 = GetNearbyTag_PixelOffset(2, sSlotMachine->biasTagFinalPositions[1] - i); + r4 = GetNearbyTag(2, sSlotMachine->biasTagLocation[1] - i); if (r7 == r4) { sp0 = i; @@ -2385,9 +2384,9 @@ Advance until there are no cherries on screen in reel 1 s16 r8; for (i = 1, r8 = 0; i < 4; i++) { - r7 = GetNearbyTag_PixelOffset(0, i - sSlotMachine->reelExtraTurns[0]); - r6 = GetNearbyTag_PixelOffset(1, i - sSlotMachine->reelExtraTurns[1]); - r4 = GetNearbyTag_PixelOffset(2, i - sp0); + r7 = GetNearbyTag(0, i - sSlotMachine->reelExtraTurns[0]); + r6 = GetNearbyTag(1, i - sSlotMachine->reelExtraTurns[1]); + r4 = GetNearbyTag(2, i - sp0); if (!sub_81037BC(r7, r6, r4) && (!sub_810378C(r7, r6, r4) || !(sSlotMachine->luckyFlags & 0x80))) { r8++; @@ -2410,18 +2409,18 @@ Advance until there are no cherries on screen in reel 1 s16 i; sub_8103910(); - if (sSlotMachine->biasTagFinalPositions[1] != 0 && sSlotMachine->biasTagFinalPositions[0] != sSlotMachine->biasTagFinalPositions[1] && sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->biasTagLocation[1] != 0 && sSlotMachine->biasTagLocation[0] != sSlotMachine->biasTagLocation[1] && sSlotMachine->luckyFlags & 0x80) { - r6 = GetNearbyTag_PixelOffset(0, sSlotMachine->biasTagFinalPositions[0] - sSlotMachine->reelExtraTurns[0]); - r5 = GetNearbyTag_PixelOffset(1, sSlotMachine->biasTagFinalPositions[1] - sSlotMachine->reelExtraTurns[1]); + r6 = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); + r5 = GetNearbyTag(1, sSlotMachine->biasTagLocation[1] - sSlotMachine->reelExtraTurns[1]); if (sub_8103764(r6, r5)) { r8 = 1; - if (sSlotMachine->biasTagFinalPositions[0] == 1) + if (sSlotMachine->biasTagLocation[0] == 1) r8 = 3; for (i = 0; i < 5; i++) { - r4 = GetNearbyTag_PixelOffset(2, r8 - (sSlotMachine->reelExtraTurns[2] + i)); + r4 = GetNearbyTag(2, r8 - (sSlotMachine->reelExtraTurns[2] + i)); if (r6 == r4) { sSlotMachine->reelExtraTurns[2] += i; @@ -2432,18 +2431,18 @@ Advance until there are no cherries on screen in reel 1 } while (1) { - r6 = GetNearbyTag_PixelOffset(0, 1 - sSlotMachine->reelExtraTurns[0]); - r5 = GetNearbyTag_PixelOffset(1, 2 - sSlotMachine->reelExtraTurns[1]); - r4 = GetNearbyTag_PixelOffset(2, 3 - sSlotMachine->reelExtraTurns[2]); + r6 = GetNearbyTag(0, 1 - sSlotMachine->reelExtraTurns[0]); + r5 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); + r4 = GetNearbyTag(2, 3 - sSlotMachine->reelExtraTurns[2]); if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->luckyFlags & 0x80)) break; sSlotMachine->reelExtraTurns[2]++; } while (1) { - r6 = GetNearbyTag_PixelOffset(0, 3 - sSlotMachine->reelExtraTurns[0]); - r5 = GetNearbyTag_PixelOffset(1, 2 - sSlotMachine->reelExtraTurns[1]); - r4 = GetNearbyTag_PixelOffset(2, 1 - sSlotMachine->reelExtraTurns[2]); + r6 = GetNearbyTag(0, 3 - sSlotMachine->reelExtraTurns[0]); + r5 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); + r4 = GetNearbyTag(2, 1 - sSlotMachine->reelExtraTurns[2]); if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->luckyFlags & 0x80)) break; sSlotMachine->reelExtraTurns[2]++; @@ -2811,12 +2810,12 @@ Advance until there are no cherries on screen in reel 1 task->data[3] = 0; } // move ReelTime reel by the value in the upper 8 bits of task->data[4] - IncrementReelTimePixelOffset(task->data[4] >> 8); + AdvanceReeltimeReel(task->data[4] >> 8); } /*static */void ReelTimeAction3(struct Task *task) { - IncrementReelTimePixelOffset(task->data[4] >> 8); + AdvanceReeltimeReel(task->data[4] >> 8); if (++task->data[5] >= 60) { task->data[0]++; @@ -2836,7 +2835,7 @@ Advance until there are no cherries on screen in reel 1 memcpy(sp4, gUnknown_085A75C4, sizeof(gUnknown_085A75C4)); memcpy(spC, gUnknown_085A75CC, sizeof(gUnknown_085A75CC)); - IncrementReelTimePixelOffset(task->data[4] >> 8); + AdvanceReeltimeReel(task->data[4] >> 8); // gradually slow down the reel task->data[4] -= 4; r5 = 4 - (task->data[4] >> 8); @@ -2854,7 +2853,7 @@ Advance until there are no cherries on screen in reel 1 /*static */void ReelTimeAction5(struct Task *task) { - IncrementReelTimePixelOffset(task->data[4] >> 8); + AdvanceReeltimeReel(task->data[4] >> 8); if (++task->data[5] >= 80) { task->data[0]++; @@ -2866,7 +2865,7 @@ Advance until there are no cherries on screen in reel 1 /*static */void ReelTimeAction6(struct Task *task) { - IncrementReelTimePixelOffset(task->data[4] >> 8); + AdvanceReeltimeReel(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x80; if (++task->data[5] >= 80) { @@ -2877,7 +2876,7 @@ Advance until there are no cherries on screen in reel 1 /*static */void ReelTimeAction7(struct Task *task) { - IncrementReelTimePixelOffset(task->data[4] >> 8); + AdvanceReeltimeReel(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x40; if (++task->data[5] >= 40) { @@ -2904,16 +2903,16 @@ Advance until there are no cherries on screen in reel 1 s16 reelTimePixelOffset = sSlotMachine->reelTimePixelOffset % 20; if (reelTimePixelOffset) { - reelTimePixelOffset = AdvanceReelTimeNextNumber(task->data[4] >> 8); + reelTimePixelOffset = AdvanceReeltimeReelToNextTag(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x40; } - else if (GetNthNextReelTimePosition(1) != sSlotMachine->reelTimeDraw) + else if (GetNearbyReelTimeTag(1) != sSlotMachine->reelTimeDraw) { - IncrementReelTimePixelOffset(task->data[4] >> 8); + AdvanceReeltimeReel(task->data[4] >> 8); reelTimePixelOffset = sSlotMachine->reelTimePixelOffset % 20; task->data[4] = (u8)task->data[4] + 0x40; } - if (reelTimePixelOffset == 0 && GetNthNextReelTimePosition(1) == sSlotMachine->reelTimeDraw) + if (reelTimePixelOffset == 0 && GetNearbyReelTimeTag(1) == sSlotMachine->reelTimeDraw) { task->data[4] = 0; // stop moving task->data[0]++; @@ -3282,14 +3281,12 @@ Advance until there are no cherries on screen in reel 1 } } -// debug this to find out what sprite->data[0] and sprite->data[2] are holding -// I would guess this updates the sprite location in the reel /*static */void sub_8104F18(struct Sprite *sprite) { sprite->data[2] = sSlotMachine->reelPixelOffsets[sprite->data[0]] + sprite->data[1]; sprite->data[2] %= 120; - sprite->pos1.y = sSlotMachine->stopReelPixelOffset[sprite->data[0]] + 28 + sprite->data[2]; - sprite->sheetTileStart = GetSpriteTileStartByTag(GetNearbyTag(sprite->data[0], sprite->data[2] / 24)); + sprite->pos1.y = sSlotMachine->reelPixelOffsetsWhileStopping[sprite->data[0]] + 28 + sprite->data[2]; + sprite->sheetTileStart = GetSpriteTileStartByTag(GetNearbyTag_Quantized(sprite->data[0], sprite->data[2] / 24)); SetSpriteSheetFrameTileNum(sprite); } @@ -3457,7 +3454,7 @@ Advance until there are no cherries on screen in reel 1 s16 r0 = (u16)(sSlotMachine->reelTimePixelOffset + sprite->data[7]); r0 %= 40; sprite->pos1.y = r0 + 59; - StartSpriteAnimIfDifferent(sprite, GetNthNextReelTimePosition(r0 / 20)); + StartSpriteAnimIfDifferent(sprite, GetNearbyReelTimeTag(r0 / 20)); } /*static */void sub_81053A0(void) @@ -4437,7 +4434,7 @@ const u8 sReelSymbols[][REEL_NUM_TAGS] = }, }; -const u8 gUnknown_083ECCF1[] = { +const u8 ReelTimeTags[] = { 1, 0, 5, 4, 3, 2 }; -- cgit v1.2.3 From 47a3477ab103e7f25115ead0a8c1ab63578076c1 Mon Sep 17 00:00:00 2001 From: hondew Date: Thu, 14 Feb 2019 17:46:44 -0500 Subject: finish DecideReelTurns --- src/slot_machine.c | 162 +++++++++++++++++++++++++++++------------------------ 1 file changed, 88 insertions(+), 74 deletions(-) diff --git a/src/slot_machine.c b/src/slot_machine.c index bb6925bd8..96c9692b3 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -68,7 +68,7 @@ struct SlotMachineEwramStruct /*0x06*/ u8 luckySpinsLeft; // tentative /*0x07*/ u8 biasTag; /*0x08*/ u16 matchedSymbols; - /*0x0A*/ u8 fairRollsLeft; + /*0x0A*/ u8 fairRollsLeft; // only happens if you win reeltime /*0x0B*/ u8 fairRollsUsed; /*0x0C*/ s16 coins; /*0x0E*/ s16 payout; @@ -144,7 +144,7 @@ struct UnkStruct1 /*static */bool8 SlotAction4(struct Task *task); /*static */bool8 SlotAction_AwaitPlayerInput(struct Task *task); /*static */bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task); -/*static */bool8 SlotAction_ExitYouDontHaveThreeCoinsDialogue(struct Task *task); +/*static */bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task); /*static */bool8 SlotAction_GivingInformation(struct Task *task); /*static */bool8 SlotAction9(struct Task *task); /*static */bool8 SlotAction10(struct Task *task); @@ -209,9 +209,9 @@ struct UnkStruct1 /*static */void DecideReelTurns_NoBiasTag_Reel2_Bet2(void); /*static */void DecideReelTurns_NoBiasTag_Reel2_Bet3(void); /*static */void DecideReelTurns_NoBiasTag_Reel3(void); -/*static */void sub_8103830(void); -/*static */void sub_8103910(void); -/*static */void sub_8103A78(void); +/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet1(void); +/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet2(void); +/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet3(void); /*static */void sub_8103C14(u8 a0); /*static */void sub_8103C48(u8 taskId); /*static */void LoadBetTiles(u8 a0); @@ -464,7 +464,7 @@ bool8 (*const SlotActions[])(struct Task *task) = SlotAction4, SlotAction_AwaitPlayerInput, SlotAction_PrintYouDontHaveThreeCoins, - SlotAction_ExitYouDontHaveThreeCoinsDialogue, + SlotAction_ExitYouDontHaveThreeCoinsMessage, SlotAction_GivingInformation, SlotAction9, SlotAction10, @@ -550,11 +550,11 @@ void (*const DecideReelTurns_NoBiasTag_Reel2_Bets[])(void) = DecideReelTurns_NoBiasTag_Reel2_Bet3 }; -void (*const gUnknown_083ECB94[])(void) = +void (*const DecideReelTurns_NoBiasTag_Reel3_Bets[])(void) = { - sub_8103830, - sub_8103910, - sub_8103A78 + DecideReelTurns_NoBiasTag_Reel3_Bet1, + DecideReelTurns_NoBiasTag_Reel3_Bet2, + DecideReelTurns_NoBiasTag_Reel3_Bet3 }; void (*const gUnknown_083ECBA0[])(struct Task *task, u8 taskId) = @@ -1033,7 +1033,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */bool8 SlotAction_ExitYouDontHaveThreeCoinsDialogue(struct Task *task) +/*static */bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { @@ -1961,6 +1961,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) { s16 i; bool8 biased = IsBiasTowardsCherryOr7s(); + // if lucky numbers or no cherries are currently on screen in reel 1... if (biased || !AreCherriesOnScreen_Reel1(0)) { for (i = 1; i < 4; i++) @@ -2281,29 +2282,30 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */bool8 sub_8103764(u8 a0, u8 a1) +/*static */bool8 AreTagsMixed7s_2Tags(u8 tag1, u8 tag2) { - if ((a0 == 0 && a1 == 1) || (a0 == 1 && a1 == 0)) + if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED)) return TRUE; else return FALSE; } -/*static */bool8 sub_810378C(u8 a0, u8 a1, u8 a2) +/*static */bool8 AreTagsMixed7s_3Tags(u8 tag1, u8 tag2, u8 tag3) { - if ((a0 == 0 && a1 == 1 && a2 == 0) || (a0 == 1 && a1 == 0 && a2 == 1)) + if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || + (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE)) return TRUE; else return FALSE; } -/*static */bool8 sub_81037BC(u8 a0, u8 a1, u8 a2) +/*static */bool8 DoTagsNotMatchOrHaveAny7s(u8 tag1, u8 tag2, u8 tag3) { - if ((a0 == 0 && a1 == 1 && a2 == 0) || - (a0 == 1 && a1 == 0 && a2 == 1) || - (a0 == 0 && a1 == 0 && a2 == 1) || - (a0 == 1 && a1 == 1 && a2 == 0) || - (a0 == a1 && a0 == a2)) + if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || + (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE) || + (tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE) || + (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || + (tag1 == tag2 && tag1 == tag3)) { return FALSE; } @@ -2312,41 +2314,46 @@ Advance until there are no cherries on screen in reel 1 /*static */void DecideReelTurns_NoBiasTag_Reel3(void) { - gUnknown_083ECB94[sSlotMachine->bet - 1](); + DecideReelTurns_NoBiasTag_Reel3_Bets[sSlotMachine->bet - 1](); } -/*static */void sub_8103830(void) +/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet1(void) { s16 i = 0; - u8 r5 = GetNearbyTag(0, 2 - sSlotMachine->reelExtraTurns[0]); - u8 r1 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); - if (r5 == r1) + u8 tag1 = GetNearbyTag(0, 2 - sSlotMachine->reelExtraTurns[0]); + u8 tag2 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); + // if tags match in first 2 reels... + if (tag1 == tag2) { + //...spin until you get non-matching tag while (1) { - u8 r0; - if (!(r5 == (r0 = GetNearbyTag(2, 2 - i)) || (r5 == 0 && r0 == 1) || (r5 == 1 && r0 == 0))) + u8 tag3; + if (!(tag1 == (tag3 = GetNearbyTag(2, 2 - i)) || (tag1 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED))) break; i++; } } - else if (sub_8103764(r5, r1)) + else if (AreTagsMixed7s_2Tags(tag1, tag2)) { + // if bit 7 of luckyFlags is set... if (sSlotMachine->luckyFlags & 0x80) { + //...see if you can match with reel 1 within 4 turns for (i = 0; i < 5; i++) { - if (r5 == GetNearbyTag(2, 2 - i)) + if (tag1 == GetNearbyTag(2, 2 - i)) { sSlotMachine->reelExtraTurns[2] = i; return; } } } + // turn until you aren't matching with reel 1 i = 0; while (1) { - if (r5 != GetNearbyTag(2, 2 - i)) + if (tag1 != GetNearbyTag(2, 2 - i)) break; i++; } @@ -2354,74 +2361,81 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->reelExtraTurns[2] = i; } -/*static */void sub_8103910(void) +/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet2(void) { - s16 sp0 = 0; + s16 extraTurns = 0; s16 i; - u8 r7; - u8 r6; - u8 r4; - + u8 tag1; + u8 tag2; + u8 tag3; + // if tags match in first 2 reels and bit 7 of luckyFlags is set... if (sSlotMachine->biasTagLocation[1] != 0 && sSlotMachine->biasTagLocation[0] == sSlotMachine->biasTagLocation[1] && sSlotMachine->luckyFlags & 0x80) { - r7 = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); - r6 = GetNearbyTag(1, sSlotMachine->biasTagLocation[1] - sSlotMachine->reelExtraTurns[1]); - if (sub_8103764(r7, r6)) + tag1 = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); + tag2 = GetNearbyTag(1, sSlotMachine->biasTagLocation[1] - sSlotMachine->reelExtraTurns[1]); + //...and if tags are mixed 7s... + if (AreTagsMixed7s_2Tags(tag1, tag2)) { + //...try to match with reel 1 within 4 turns for (i = 0; i < 5; i++) { - r4 = GetNearbyTag(2, sSlotMachine->biasTagLocation[1] - i); - if (r7 == r4) + tag3 = GetNearbyTag(2, sSlotMachine->biasTagLocation[1] - i); + if (tag1 == tag3) { - sp0 = i; + extraTurns = i; break; } } } } + // GUESS: spin until there's no possible match within 4 turns of you stopping while (1) { - s16 r8; - for (i = 1, r8 = 0; i < 4; i++) + s16 loopExit; + for (i = 1, loopExit = 0; i < 4; i++) { - r7 = GetNearbyTag(0, i - sSlotMachine->reelExtraTurns[0]); - r6 = GetNearbyTag(1, i - sSlotMachine->reelExtraTurns[1]); - r4 = GetNearbyTag(2, i - sp0); - if (!sub_81037BC(r7, r6, r4) && (!sub_810378C(r7, r6, r4) || !(sSlotMachine->luckyFlags & 0x80))) + tag1 = GetNearbyTag(0, i - sSlotMachine->reelExtraTurns[0]); // why does this update with i + tag2 = GetNearbyTag(1, i - sSlotMachine->reelExtraTurns[1]); + tag3 = GetNearbyTag(2, i - extraTurns); + // if bit 7 of luckyFlags is unset... + //...and if all 3 tags match and they're not mixed 7s + if (!DoTagsNotMatchOrHaveAny7s(tag1, tag2, tag3) && (!AreTagsMixed7s_3Tags(tag1, tag2, tag3) || !(sSlotMachine->luckyFlags & 0x80))) { - r8++; + loopExit++; break; } } - if (r8 == 0) + if (loopExit == 0) break; - sp0++; + extraTurns++; } - sSlotMachine->reelExtraTurns[2] = sp0; + sSlotMachine->reelExtraTurns[2] = extraTurns; } -/*static */void sub_8103A78(void) +/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet3(void) { - u8 r6; - u8 r5; - u8 r4; - s16 r8; + u8 tag1; + u8 tag2; + u8 tag3; + s16 j; s16 i; - sub_8103910(); + DecideReelTurns_NoBiasTag_Reel3_Bet2(); + // if tags don't match in first 2 reels and bit 7 of luckyFlags is set... if (sSlotMachine->biasTagLocation[1] != 0 && sSlotMachine->biasTagLocation[0] != sSlotMachine->biasTagLocation[1] && sSlotMachine->luckyFlags & 0x80) { - r6 = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); - r5 = GetNearbyTag(1, sSlotMachine->biasTagLocation[1] - sSlotMachine->reelExtraTurns[1]); - if (sub_8103764(r6, r5)) + tag1 = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); + tag2 = GetNearbyTag(1, sSlotMachine->biasTagLocation[1] - sSlotMachine->reelExtraTurns[1]); + //..and if tags are mixed 7s... + if (AreTagsMixed7s_2Tags(tag1, tag2)) { - r8 = 1; + j = 1; if (sSlotMachine->biasTagLocation[0] == 1) - r8 = 3; + j = 3; for (i = 0; i < 5; i++) { - r4 = GetNearbyTag(2, r8 - (sSlotMachine->reelExtraTurns[2] + i)); - if (r6 == r4) + tag3 = GetNearbyTag(2, j - (sSlotMachine->reelExtraTurns[2] + i)); + if (tag1 == tag3) { sSlotMachine->reelExtraTurns[2] += i; break; @@ -2431,19 +2445,19 @@ Advance until there are no cherries on screen in reel 1 } while (1) { - r6 = GetNearbyTag(0, 1 - sSlotMachine->reelExtraTurns[0]); - r5 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); - r4 = GetNearbyTag(2, 3 - sSlotMachine->reelExtraTurns[2]); - if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->luckyFlags & 0x80)) + tag1 = GetNearbyTag(0, 1 - sSlotMachine->reelExtraTurns[0]); + tag2 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); + tag3 = GetNearbyTag(2, 3 - sSlotMachine->reelExtraTurns[2]); + if (DoTagsNotMatchOrHaveAny7s(tag1, tag2, tag3) || (AreTagsMixed7s_3Tags(tag1, tag2, tag3) && sSlotMachine->luckyFlags & 0x80)) break; sSlotMachine->reelExtraTurns[2]++; } while (1) { - r6 = GetNearbyTag(0, 3 - sSlotMachine->reelExtraTurns[0]); - r5 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); - r4 = GetNearbyTag(2, 1 - sSlotMachine->reelExtraTurns[2]); - if (sub_81037BC(r6, r5, r4) || (sub_810378C(r6, r5, r4) && sSlotMachine->luckyFlags & 0x80)) + tag1 = GetNearbyTag(0, 3 - sSlotMachine->reelExtraTurns[0]); + tag2 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); + tag3 = GetNearbyTag(2, 1 - sSlotMachine->reelExtraTurns[2]); + if (DoTagsNotMatchOrHaveAny7s(tag1, tag2, tag3) || (AreTagsMixed7s_3Tags(tag1, tag2, tag3) && sSlotMachine->luckyFlags & 0x80)) break; sSlotMachine->reelExtraTurns[2]++; } -- cgit v1.2.3 From a6eb879267ebad7510b91749e3bbb8b94cdf24d9 Mon Sep 17 00:00:00 2001 From: hondew Date: Thu, 14 Feb 2019 18:06:21 -0500 Subject: minor reeltime changes --- src/slot_machine.c | 183 ++++++++++++++++++++++++++--------------------------- 1 file changed, 90 insertions(+), 93 deletions(-) diff --git a/src/slot_machine.c b/src/slot_machine.c index 96c9692b3..1d86c94c5 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -74,8 +74,8 @@ struct SlotMachineEwramStruct /*0x0E*/ s16 payout; /*0x10*/ s16 netCoinLoss; // coins lost to machine (but never goes below 0) /*0x12*/ s16 bet; - /*0x14*/ s16 reelTimePixelOffset; - /*0x16*/ s16 reelTimePosition; + /*0x14*/ s16 reeltimePixelOffset; + /*0x16*/ s16 reeltimePosition; /*0x18*/ s16 currReel; /*0x1A*/ s16 reelIncrement; // speed of reel /*0x1C*/ s16 reelPixelOffsets[3]; @@ -238,27 +238,27 @@ struct UnkStruct1 /*static */void sub_81041AC(struct Task *task); /*static */void ClearTaskDataFields_2orHigher(struct Task *task); /*static */void sub_810423C(u8 pikaPower); -/*static */void BeginReelTime(void); +/*static */void BeginReeltime(void); /*static */bool8 IsFinalTask_RunReelTimeActions(void); -/*static */void RunReelTimeActions(u8 taskId); -/*static */void ReelTimeAction1(struct Task *task); -/*static */void ReelTimeAction2(struct Task *task); -/*static */void ReelTimeAction3(struct Task *task); -/*static */void ReelTimeAction4(struct Task *task); -/*static */void ReelTimeAction5(struct Task *task); -/*static */void ReelTimeAction6(struct Task *task); -/*static */void ReelTimeAction7(struct Task *task); +/*static */void RunReeltimeActions(u8 taskId); +/*static */void ReeltimeAction0(struct Task *task); +/*static */void ReeltimeAction1(struct Task *task); +/*static */void ReeltimeAction2(struct Task *task); +/*static */void ReeltimeAction3(struct Task *task); +/*static */void ReeltimeAction4(struct Task *task); +/*static */void ReeltimeAction5(struct Task *task); +/*static */void ReeltimeAction6(struct Task *task); /*static */void ReelTimeAction_LandOnOutcome(struct Task *task); -/*static */void ReelTimeAction9(struct Task *task); -/*static */void ReelTimeAction10(struct Task *task); -/*static */void ReelTimeAction11(struct Task *task); -/*static */void ReelTimeAction12(struct Task *task); -/*static */void ReelTimeAction13(struct Task *task); -/*static */void ReelTimeAction14(struct Task *task); -/*static */void ReelTimeAction15(struct Task *task); -/*static */void ReelTimeAction16(struct Task *task); -/*static */void ReelTimeAction17(struct Task *task); -/*static */void ReelTimeAction18(struct Task *task); +/*static */void ReeltimeAction8(struct Task *task); +/*static */void ReeltimeAction9(struct Task *task); +/*static */void ReeltimeAction10(struct Task *task); +/*static */void ReeltimeAction11(struct Task *task); +/*static */void ReeltimeAction12(struct Task *task); +/*static */void ReeltimeAction13(struct Task *task); +/*static */void ReeltimeAction14(struct Task *task); +/*static */void ReeltimeAction15(struct Task *task); +/*static */void ReeltimeAction16(struct Task *task); +/*static */void ReeltimeAction17(struct Task *task); /*static */void sub_8104A40(s16 a0, s16 a1); /*static */void sub_8104A88(s16 a0); /*static */void OpenInfoBox(u8 a0); @@ -369,7 +369,7 @@ extern const struct SpriteTemplate gSpriteTemplate_83ED54C; extern const struct SpriteTemplate gSpriteTemplate_83ED534; extern const u8 gUnknown_083ECC58[2]; extern const struct SpriteTemplate gSpriteTemplate_83ED51C; -extern const u16 ProbabilityTable_SkipToReelTimeAction14[]; +extern const u16 ProbabilityTable_SkipToReeltimeAction14[]; extern const u16 *const gUnknown_083EDE10[]; extern const u16 ReelIncrementTable[][2]; extern const u16 ReelTimeBonusIncrementTable[]; @@ -581,27 +581,27 @@ const u16 pikaPowerTileTable[][2] = {0xaf, 0x7f}, // {0b10101111, 0b1111111} }; -void (*const ReelTimeActions[])(struct Task *task) = +void (*const ReeltimeActions[])(struct Task *task) = { - ReelTimeAction1, - ReelTimeAction2, - ReelTimeAction3, - ReelTimeAction4, - ReelTimeAction5, - ReelTimeAction6, - ReelTimeAction7, // does stuff with reel time data + ReeltimeAction0, + ReeltimeAction1, + ReeltimeAction2, + ReeltimeAction3, + ReeltimeAction4, + ReeltimeAction5, + ReeltimeAction6, // does stuff with reel time data ReelTimeAction_LandOnOutcome, - ReelTimeAction9, - ReelTimeAction10, - ReelTimeAction11, - ReelTimeAction12, - ReelTimeAction13, - ReelTimeAction14, - ReelTimeAction15, - ReelTimeAction16, - ReelTimeAction17, - ReelTimeAction11, - ReelTimeAction18 + ReeltimeAction8, + ReeltimeAction9, + ReeltimeAction10, + ReeltimeAction11, + ReeltimeAction12, + ReeltimeAction13, + ReeltimeAction14, + ReeltimeAction15, + ReeltimeAction16, + ReeltimeAction10, + ReeltimeAction17 }; const u8 gUnknown_085A75C0[] = {1, 1, 2, 2}; @@ -1067,7 +1067,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue if (sSlotMachine->luckyFlags & 0x20) // bit 5 of luckyFlag set { // enter into reel time - BeginReelTime(); + BeginReeltime(); sSlotMachine->slotActionPtr = 10; } else @@ -1506,7 +1506,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return ReelTimeProbabilityTable_LuckyGame[reelTimeDraw][sSlotMachine->pikaPower]; } -/*static */void DrawReelTimeOutcome(void) +/*static */void GetReeltimeDraw(void) { u8 rval; s16 reelTimeDraw; @@ -1524,10 +1524,10 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sSlotMachine->reelTimeDraw = reelTimeDraw; } -/*static */bool8 SkipToReelTimeAction14(u16 i) +/*static */bool8 SkipToReeltimeAction14(u16 i) { u16 rval = Random() & 0xff; - if (rval < ProbabilityTable_SkipToReelTimeAction14[i]) + if (rval < ProbabilityTable_SkipToReeltimeAction14[i]) return TRUE; else return FALSE; @@ -1749,7 +1749,7 @@ Calculates GetNearbyTag_Quantized as if the reel was snapped downwards into plac /*static */u8 GetNearbyReelTimeTag(s16 n) { - s16 newPosition = (sSlotMachine->reelTimePosition + n) % 6; + s16 newPosition = (sSlotMachine->reeltimePosition + n) % 6; if (newPosition < 0) newPosition += 6; return ReelTimeTags[newPosition]; @@ -1777,20 +1777,20 @@ s16 AdvanceSlotReelToNextTag(u8 reelIndex, s16 value) /*static */void AdvanceReeltimeReel(s16 value) { - sSlotMachine->reelTimePixelOffset += value; - sSlotMachine->reelTimePixelOffset %= 120; - sSlotMachine->reelTimePosition = 6 - sSlotMachine->reelTimePixelOffset / 20; + sSlotMachine->reeltimePixelOffset += value; + sSlotMachine->reeltimePixelOffset %= 120; + sSlotMachine->reeltimePosition = 6 - sSlotMachine->reeltimePixelOffset / 20; } s16 AdvanceReeltimeReelToNextTag(s16 value) { - s16 offset = sSlotMachine->reelTimePixelOffset % 20; + s16 offset = sSlotMachine->reeltimePixelOffset % 20; if (offset != 0) { if (offset < value) value = offset; AdvanceReeltimeReel(value); - offset = sSlotMachine->reelTimePixelOffset % 20; + offset = sSlotMachine->reeltimePixelOffset % 20; } return offset; } @@ -2757,37 +2757,37 @@ Advance until there are no cherries on screen in reel 1 gTasks[sSlotMachine->unkTaskPointer3E].data[1] = pikaPower; } -/*static */void BeginReelTime(void) +/*static */void BeginReeltime(void) { - u8 taskId = CreateTask(RunReelTimeActions, 7); - RunReelTimeActions(taskId); + u8 taskId = CreateTask(RunReeltimeActions, 7); + RunReeltimeActions(taskId); } /*static */bool8 IsFinalTask_RunReelTimeActions(void) { - if (FindTaskIdByFunc(RunReelTimeActions) == TAIL_SENTINEL) + if (FindTaskIdByFunc(RunReeltimeActions) == TAIL_SENTINEL) return TRUE; return FALSE; } -/*static */void RunReelTimeActions(u8 taskId) +/*static */void RunReeltimeActions(u8 taskId) { // task.data[0] points to which ReelTimeAction to do, and starts at 0 // task.data[1] has something to do with the threshold // task.data[4] says how many pixels to advance the reel // task.data[5] is a timer - ReelTimeActions[gTasks[taskId].data[0]](gTasks + taskId); + ReeltimeActions[gTasks[taskId].data[0]](gTasks + taskId); } -/*static */void ReelTimeAction1(struct Task *task) +/*static */void ReeltimeAction0(struct Task *task) { sSlotMachine->fairRollsLeft = 0; - sSlotMachine->reelTimePixelOffset = 0; - sSlotMachine->reelTimePosition = 0; + sSlotMachine->reeltimePixelOffset = 0; + sSlotMachine->reeltimePosition = 0; task->data[0]++; task->data[1] = 0; task->data[2] = 30; - task->data[4] = 1280; + task->data[4] = 1280; // reel speed gSpriteCoordOffsetX = 0; gSpriteCoordOffsetY = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); @@ -2798,18 +2798,16 @@ Advance until there are no cherries on screen in reel 1 sub_81052EC(); sub_81053A0(); sub_810545C(); - DrawReelTimeOutcome(); + GetReeltimeDraw(); StopMapMusic(); PlayNewMapMusic(MUS_BD_TIME); } -/*static */void ReelTimeAction2(struct Task *task) +/*static */void ReeltimeAction1(struct Task *task) { s16 r3; gSpriteCoordOffsetX -= 8; - // boost threshold by 8 task->data[1] += 8; - // only consider lower 8 bits, and then shift them right 3 r3 = ((task->data[1] + 240) & 0xff) >> 3; SetGpuReg(REG_OFFSET_BG1HOFS, task->data[1] & 0x1ff); if (r3 != task->data[2] && task->data[3] <= 18) @@ -2823,11 +2821,10 @@ Advance until there are no cherries on screen in reel 1 task->data[0]++; task->data[3] = 0; } - // move ReelTime reel by the value in the upper 8 bits of task->data[4] AdvanceReeltimeReel(task->data[4] >> 8); } -/*static */void ReelTimeAction3(struct Task *task) +/*static */void ReeltimeAction2(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); if (++task->data[5] >= 60) @@ -2838,7 +2835,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReelTimeAction4(struct Task *task) +/*static */void ReeltimeAction3(struct Task *task) { int r5; u8 sp0[ARRAY_COUNT(gUnknown_085A75C0)]; @@ -2865,7 +2862,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReelTimeAction5(struct Task *task) +/*static */void ReeltimeAction4(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); if (++task->data[5] >= 80) @@ -2877,7 +2874,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReelTimeAction6(struct Task *task) +/*static */void ReeltimeAction5(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x80; @@ -2888,7 +2885,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReelTimeAction7(struct Task *task) +/*static */void ReeltimeAction6(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x40; @@ -2896,7 +2893,7 @@ Advance until there are no cherries on screen in reel 1 { task->data[5] = 0; if (sSlotMachine->reelTimeDraw) - { // TODO: check if fairRollsLeft differs from reelTimeDraw + { if (sSlotMachine->fairRollsLeft <= task->data[6]) task->data[0]++; } @@ -2904,7 +2901,7 @@ Advance until there are no cherries on screen in reel 1 { task->data[0]++; } - else if (SkipToReelTimeAction14(task->data[6])) + else if (SkipToReeltimeAction14(task->data[6])) { task->data[0] = 14; } @@ -2914,26 +2911,26 @@ Advance until there are no cherries on screen in reel 1 /*static */void ReelTimeAction_LandOnOutcome(struct Task *task) { - s16 reelTimePixelOffset = sSlotMachine->reelTimePixelOffset % 20; - if (reelTimePixelOffset) + s16 reeltimePixelOffset = sSlotMachine->reeltimePixelOffset % 20; + if (reeltimePixelOffset) { - reelTimePixelOffset = AdvanceReeltimeReelToNextTag(task->data[4] >> 8); + reeltimePixelOffset = AdvanceReeltimeReelToNextTag(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x40; } else if (GetNearbyReelTimeTag(1) != sSlotMachine->reelTimeDraw) { AdvanceReeltimeReel(task->data[4] >> 8); - reelTimePixelOffset = sSlotMachine->reelTimePixelOffset % 20; + reeltimePixelOffset = sSlotMachine->reeltimePixelOffset % 20; task->data[4] = (u8)task->data[4] + 0x40; } - if (reelTimePixelOffset == 0 && GetNearbyReelTimeTag(1) == sSlotMachine->reelTimeDraw) + if (reeltimePixelOffset == 0 && GetNearbyReelTimeTag(1) == sSlotMachine->reelTimeDraw) { task->data[4] = 0; // stop moving task->data[0]++; } } -/*static */void ReelTimeAction9(struct Task *task) +/*static */void ReeltimeAction8(struct Task *task) { if (++task->data[4] >= 60) { @@ -2962,13 +2959,13 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReelTimeAction10(struct Task *task) +/*static */void ReeltimeAction9(struct Task *task) { if ((task->data[4] == 0 || --task->data[4] == 0) && !sub_81040C8()) task->data[0]++; } -/*static */void ReelTimeAction11(struct Task *task) +/*static */void ReeltimeAction10(struct Task *task) { s16 r4; gSpriteCoordOffsetX -= 8; @@ -2982,7 +2979,7 @@ Advance until there are no cherries on screen in reel 1 task->data[0]++; } -/*static */void ReelTimeAction12(struct Task *task) +/*static */void ReeltimeAction11(struct Task *task) { sSlotMachine->fairRollsUsed = 0; sSlotMachine->fairRollsLeft = sSlotMachine->reelTimeDraw; @@ -2995,7 +2992,7 @@ Advance until there are no cherries on screen in reel 1 PlayNewMapMusic(sSlotMachine->backupMapMusic); if (sSlotMachine->fairRollsLeft == 0) { - DestroyTask(FindTaskIdByFunc(RunReelTimeActions)); + DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); } else { @@ -3007,7 +3004,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReelTimeAction13(struct Task *task) +/*static */void ReeltimeAction12(struct Task *task) { if (sSlotMachine->reelIncrement == task->data[1]) task->data[0]++; @@ -3015,13 +3012,13 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->reelIncrement >>= 1; } -/*static */void ReelTimeAction14(struct Task *task) +/*static */void ReeltimeAction13(struct Task *task) { if (sub_8104E18()) - DestroyTask(FindTaskIdByFunc(RunReelTimeActions)); + DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); } -/*static */void ReelTimeAction15(struct Task *task) +/*static */void ReeltimeAction14(struct Task *task) { sub_81054B8(); sub_81056C0(); @@ -3037,7 +3034,7 @@ Advance until there are no cherries on screen in reel 1 PlaySE(SE_W153); } -/*static */void ReelTimeAction16(struct Task *task) +/*static */void ReeltimeAction15(struct Task *task) { gSpriteCoordOffsetY = task->data[4]; SetGpuReg(REG_OFFSET_BG1VOFS, task->data[4]); @@ -3057,7 +3054,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReelTimeAction17(struct Task *task) +/*static */void ReeltimeAction16(struct Task *task) { gSpriteCoordOffsetY = 0; SetGpuReg(REG_OFFSET_BG1VOFS, 0); @@ -3068,7 +3065,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReelTimeAction18(struct Task *task) +/*static */void ReeltimeAction17(struct Task *task) { gSpriteCoordOffsetX = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); @@ -3077,7 +3074,7 @@ Advance until there are no cherries on screen in reel 1 sub_8105554(); sub_8105524(); sub_81059B8(); - DestroyTask(FindTaskIdByFunc(RunReelTimeActions)); + DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); } /*static */void sub_8104A40(s16 a0, s16 a1) @@ -3465,7 +3462,7 @@ Advance until there are no cherries on screen in reel 1 /*static */void sub_810535C(struct Sprite *sprite) { - s16 r0 = (u16)(sSlotMachine->reelTimePixelOffset + sprite->data[7]); + s16 r0 = (u16)(sSlotMachine->reeltimePixelOffset + sprite->data[7]); r0 %= 40; sprite->pos1.y = r0 + 59; StartSpriteAnimIfDifferent(sprite, GetNearbyReelTimeTag(r0 / 20)); @@ -4499,7 +4496,7 @@ const u8 ReelTimeProbabilityTable_LuckyGame[][17] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 60} }; -const u16 ProbabilityTable_SkipToReelTimeAction14[] = { +const u16 ProbabilityTable_SkipToReeltimeAction14[] = { 128, 175, 200, 225, 256 }; -- cgit v1.2.3 From f965f1b13dd30293b99307c869ef5f6f382a374f Mon Sep 17 00:00:00 2001 From: hondew Date: Thu, 14 Feb 2019 23:44:18 -0500 Subject: label luckyFlags --- include/slot_machine.h | 16 +++++ src/slot_machine.c | 160 ++++++++++++++++++++++--------------------------- 2 files changed, 88 insertions(+), 88 deletions(-) diff --git a/include/slot_machine.h b/include/slot_machine.h index fae937834..2eb00d92b 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -3,6 +3,22 @@ #define REEL_NUM_TAGS 21 +// Lucky Flags +#define LUCKY_BIAS_REPLAY 0x0001 +#define LUCKY_BIAS_CHERRY 0x0002 +#define LUCKY_BIAS_LOTAD 0x0004 +#define LUCKY_BIAS_AZURRILL 0x0008 +#define LUCKY_BIAS_POWER 0x0010 +#define LUCKY_BIAS_REELTIME 0x0020 +#define LUCKY_BIAS_MIXED_777 0x0040 +#define LUCKY_BIAS_777 0x0080 + +// Rows +#define SLOT_TOP_ROW 0x0001 +#define SLOT_MIDDLE_ROW 0x0002 +#define SLOT_BOTTOM_ROW 0x0003 + + void PlaySlotMachine(u8, void (callback)(void)); diff --git a/src/slot_machine.c b/src/slot_machine.c index 1d86c94c5..af162b264 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -82,7 +82,7 @@ struct SlotMachineEwramStruct /*0x22*/ u16 reelPixelOffsetsWhileStopping[3]; /*0x28*/ s16 reelTagOffsets[3]; /*0x2E*/ s16 reelExtraTurns[3]; - /*0x34*/ s16 biasTagLocation[3]; + /*0x34*/ s16 winnerRows[3]; /*0x3A*/ u8 slotReelTasks[3]; /*0x3D*/ u8 unkTaskPointer3D; /*0x3E*/ u8 unkTaskPointer3E; @@ -950,7 +950,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sSlotMachine->payout = 0; sSlotMachine->bet = 0; sSlotMachine->currReel = 0; - sSlotMachine->luckyFlags &= 0xc0; // discard all but top 2 flags + sSlotMachine->luckyFlags &= (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); sSlotMachine->slotActionPtr = 4; if (sSlotMachine->coins <= 0) { @@ -1064,7 +1064,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sub_80EEC80(); // something with daily slot variable task->data[0] = 0; - if (sSlotMachine->luckyFlags & 0x20) // bit 5 of luckyFlag set + if (sSlotMachine->luckyFlags & LUCKY_BIAS_REELTIME) { // enter into reel time BeginReeltime(); @@ -1087,8 +1087,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue if (IsFinalTask_RunReelTimeActions()) { sub_8104CAC(1); - // unset enter reel time flag - sSlotMachine->luckyFlags &= 0xDF; + sSlotMachine->luckyFlags &= ~LUCKY_BIAS_REELTIME; sSlotMachine->slotActionPtr = 11; } return FALSE; @@ -1134,8 +1133,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue // once all reels have stopped /*static */bool8 SlotAction_CheckMatches(struct Task *task) { - // keep top 2 bits of luckyFlags - sSlotMachine->luckyFlags &= 0xc0; + sSlotMachine->luckyFlags &= (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); CheckMatch(); if (sSlotMachine->fairRollsLeft) { @@ -1170,8 +1168,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue // if you matched 777... if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_MIXED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) { - // clear top bits 6 and 7 - sSlotMachine->luckyFlags &= 0x3f; + sSlotMachine->luckyFlags &= ~(LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_BLUE) | (1 << SLOT_MACHINE_MATCHED_777_RED))) { sSlotMachine->fairRollsLeft = 0; @@ -1403,7 +1400,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue if (sSlotMachine->fairRollsLeft == 0) { - if (!(sSlotMachine->luckyFlags & 0xc0)) // top 2 flags set to 0 + if (!(sSlotMachine->luckyFlags & (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777))) { if (IsThisRoundLucky()) { @@ -1847,7 +1844,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) { task->data[0]++; // initialize data for that reel --> these will be changed if biasTags can be lined up - sSlotMachine->biasTagLocation[task->data[15]] = 0; + sSlotMachine->winnerRows[task->data[15]] = 0; sSlotMachine->reelExtraTurns[task->data[15]] = 0; if (sSlotMachine->fairRollsLeft == 0 && (sSlotMachine->luckyFlags == 0 || sSlotMachine->luckySpinsLeft == 0 || !DecideReelTurns_BiasTag[task->data[15]]())) @@ -1905,7 +1902,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) { u8 tag2 = GetLuckyTag(sSlotMachine->luckyFlags); u8 tag1 = tag2; - if (sSlotMachine->luckyFlags & 0xc0) // if either of top 2 bits are set + if (sSlotMachine->luckyFlags & (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777)) { tag1 = SLOT_MACHINE_TAG_7_RED; tag2 = SLOT_MACHINE_TAG_7_BLUE; @@ -1934,7 +1931,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) /*static */bool8 IsBiasTowardsCherryOr7s(void) { - if (sSlotMachine->luckyFlags & 0xc2) // if any of bits 6, 7, or 1 are set + if (sSlotMachine->luckyFlags & (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777 | LUCKY_BIAS_CHERRY)) return TRUE; else return FALSE; @@ -1949,7 +1946,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) // if a lucky tag appears in the center row within 4 turns if (AreTagsAtPosition_Reel1(2 - i, tag1, tag2)) { - sSlotMachine->biasTagLocation[0] = 2; + sSlotMachine->winnerRows[0] = 2; sSlotMachine->reelExtraTurns[0] = i; return TRUE; } @@ -1969,7 +1966,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) // if a bias tag is currently on the screen if (AreTagsAtPosition_Reel1(i, tag1, tag2)) { - sSlotMachine->biasTagLocation[0] = i; + sSlotMachine->winnerRows[0] = i; sSlotMachine->reelExtraTurns[0] = 0; return TRUE; } @@ -1987,19 +1984,19 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) //...and if it only took 1 turn and the lucky tag could also be the bottom row of a screen with no cherries... if (i == 1 && (biasedCopy || !AreCherriesOnScreen_Reel1(3))) { - sSlotMachine->biasTagLocation[0] = 3; + sSlotMachine->winnerRows[0] = 3; sSlotMachine->reelExtraTurns[0] = 3; return TRUE; } //...or if it isn't the last turn and the lucky tag could be in the center row of a screen with no cherries... if (i < 4 && (biasedCopy || !AreCherriesOnScreen_Reel1(i + 1))) { - sSlotMachine->biasTagLocation[0] = 2; + sSlotMachine->winnerRows[0] = 2; sSlotMachine->reelExtraTurns[0] = i + 1; return TRUE; } //...else - sSlotMachine->biasTagLocation[0] = 1; + sSlotMachine->winnerRows[0] = 1; sSlotMachine->reelExtraTurns[0] = i; return TRUE; } @@ -2016,14 +2013,14 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) /*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void) { s16 i; - s16 biasTagLocation_Reel1 = sSlotMachine->biasTagLocation[0]; + s16 biasTagLocation_Reel1 = sSlotMachine->winnerRows[0]; for (i = 0; i < 5; i++) { // if biasTag appears in the same row within 4 turns if (GetNearbyTag(1, biasTagLocation_Reel1 - i) == sSlotMachine->biasTag) { - sSlotMachine->biasTagLocation[1] = biasTagLocation_Reel1; + sSlotMachine->winnerRows[1] = biasTagLocation_Reel1; sSlotMachine->reelExtraTurns[1] = i; return TRUE; } @@ -2038,14 +2035,14 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) if (DecideReelTurns_BiasTag_Reel2_Bet1or2()) { //...and if the biasTag is not in middle row of reel 1 and if biasTag appears in middle row of reel 2 in 2 or 3 turns... - if (sSlotMachine->biasTagLocation[0] != 2 && sSlotMachine->reelExtraTurns[1] > 1 && sSlotMachine->reelExtraTurns[1] != 4) + if (sSlotMachine->winnerRows[0] != 2 && sSlotMachine->reelExtraTurns[1] > 1 && sSlotMachine->reelExtraTurns[1] != 4) { for (i = 0; i < 5; i++) { //...and if the bias tag will appear in the middle row within 4 turns if (GetNearbyTag(1, 2 - i) == sSlotMachine->biasTag) { - sSlotMachine->biasTagLocation[1] = 2; + sSlotMachine->winnerRows[1] = 2; sSlotMachine->reelExtraTurns[1] = i; break; } @@ -2054,14 +2051,14 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return TRUE; } // else if the biasTag is not in middle row of reel 1... - if (sSlotMachine->biasTagLocation[0] != 2) + if (sSlotMachine->winnerRows[0] != 2) { for (i = 0; i < 5; i++) { //...and if the biasTag will appear in the center row of reel 2 within 4 turns if (GetNearbyTag(1, 2 - i) == sSlotMachine->biasTag) { - sSlotMachine->biasTagLocation[1] = 2; + sSlotMachine->winnerRows[1] = 2; sSlotMachine->reelExtraTurns[1] = i; return TRUE; } @@ -2073,14 +2070,12 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) /*static */bool8 DecideReelTurns_BiasTag_Reel3(void) { u8 biasTag = sSlotMachine->biasTag; - // if bit 6 of luckyFlags is set... - if (sSlotMachine->luckyFlags & 0x40) + if (sSlotMachine->luckyFlags & LUCKY_BIAS_MIXED_777) { - // make biasTag the opposite color of the 7 in sSlotMachine->biasTag - biasTag = 0; - if (sSlotMachine->biasTag == 0) + biasTag = SLOT_MACHINE_TAG_7_RED; + if (sSlotMachine->biasTag == SLOT_MACHINE_TAG_7_RED) { - biasTag = 1; + biasTag = SLOT_MACHINE_TAG_7_BLUE; } } return DecideReelTurns_BiasTag_Reel3_Bets[sSlotMachine->bet - 1](biasTag); @@ -2089,14 +2084,14 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) /*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 biasTag) { s16 i; - s16 biasTagLocation_Reel2 = sSlotMachine->biasTagLocation[1]; + s16 biasTagLocation_Reel2 = sSlotMachine->winnerRows[1]; for (i = 0; i < 5; i++) { // if the biasTag appears in the same row as in reel 2 within 4 turns if (GetNearbyTag(2, biasTagLocation_Reel2 - i) == biasTag) { - sSlotMachine->biasTagLocation[2] = biasTagLocation_Reel2; + sSlotMachine->winnerRows[2] = biasTagLocation_Reel2; sSlotMachine->reelExtraTurns[2] = i; return TRUE; } @@ -2109,11 +2104,11 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) s16 i; s16 biasTagFinalPos; // if the final position of the biasTag matches in reel 1 and reel 2... - if (sSlotMachine->biasTagLocation[0] == sSlotMachine->biasTagLocation[1]) + if (sSlotMachine->winnerRows[0] == sSlotMachine->winnerRows[1]) //...then try to line it up in reel 3 return DecideReelTurns_BiasTag_Reel3_Bet1or2(biasTag); // else place it in the row opposite reel 1's - if (sSlotMachine->biasTagLocation[0] == 1) + if (sSlotMachine->winnerRows[0] == 1) biasTagFinalPos = 3; else biasTagFinalPos = 1; @@ -2123,7 +2118,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) if (GetNearbyTag(2, biasTagFinalPos - i) == biasTag) { sSlotMachine->reelExtraTurns[2] = i; - sSlotMachine->biasTagLocation[2] = biasTagFinalPos; + sSlotMachine->winnerRows[2] = biasTagFinalPos; return TRUE; } } @@ -2142,7 +2137,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->reelExtraTurns[0] = i; } -/*static */bool8 IsBiasTag7AndIfSoSColor(u8 *biasTagPtr) +/*static */bool8 IsBiasTag777_SwitchColor(u8 *biasTagPtr) { if (*biasTagPtr == SLOT_MACHINE_TAG_7_RED) { @@ -2165,12 +2160,11 @@ Advance until there are no cherries on screen in reel 1 // only does stuff if the biasTag is one of the 7's, plus other conditions /*static */void DecideReelTurns_NoBiasTag_Reel2_Bet1(void) { - // if biasTag is in reel 1 and bit 7 is set in luckyFlags... - if (sSlotMachine->biasTagLocation[0] != 0 && sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->winnerRows[0] != 0 && sSlotMachine->luckyFlags & LUCKY_BIAS_777) { u8 biasTag = GetNearbyTag(0, 2 - sSlotMachine->reelExtraTurns[0]); //...and if biasTag is one of the 7's... - if (IsBiasTag7AndIfSoSColor(&biasTag)) + if (IsBiasTag777_SwitchColor(&biasTag)) //...swap color of biasTag... { s16 i; @@ -2179,7 +2173,7 @@ Advance until there are no cherries on screen in reel 1 //...and if the biasTag appears within 4 turns if (biasTag == GetNearbyTag(1, 2 - i)) { - sSlotMachine->biasTagLocation[1] = 2; + sSlotMachine->winnerRows[1] = 2; sSlotMachine->reelExtraTurns[1] = i; break; } @@ -2190,21 +2184,20 @@ Advance until there are no cherries on screen in reel 1 /*static */void DecideReelTurns_NoBiasTag_Reel2_Bet2(void) { - // if reel 1 has a biasTag and bit 7 is set in luckyFlags... - if (sSlotMachine->biasTagLocation[0] != 0 && sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->winnerRows[0] != 0 && sSlotMachine->luckyFlags & LUCKY_BIAS_777) { - u8 biasTag = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); + u8 biasTag = GetNearbyTag(0, sSlotMachine->winnerRows[0] - sSlotMachine->reelExtraTurns[0]); //...and if biasTag is one of the 7's... - if (IsBiasTag7AndIfSoSColor(&biasTag)) + if (IsBiasTag777_SwitchColor(&biasTag)) //...swap color of biasTag... { s16 i; for (i = 0; i < 5; i++) { //...and if the biasTag appears in same row in reel 2 within 4 turns - if (biasTag == GetNearbyTag(1, sSlotMachine->biasTagLocation[0] - i)) + if (biasTag == GetNearbyTag(1, sSlotMachine->winnerRows[0] - i)) { - sSlotMachine->biasTagLocation[1] = sSlotMachine->biasTagLocation[0]; + sSlotMachine->winnerRows[1] = sSlotMachine->winnerRows[0]; sSlotMachine->reelExtraTurns[1] = i; break; } @@ -2218,46 +2211,46 @@ Advance until there are no cherries on screen in reel 1 s16 i; s16 j; // if reel 1 has a biasTag and bit 7 is set in luckyFlags... - if (sSlotMachine->biasTagLocation[0] != 0 && sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->winnerRows[0] != 0 && sSlotMachine->luckyFlags & LUCKY_BIAS_777) { //...and if biasTag appeared in the center row of reel 1 - if (sSlotMachine->biasTagLocation[0] == 2) + if (sSlotMachine->winnerRows[0] == 2) { DecideReelTurns_NoBiasTag_Reel2_Bet2(); } else { - u8 biasTag = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); + u8 biasTag = GetNearbyTag(0, sSlotMachine->winnerRows[0] - sSlotMachine->reelExtraTurns[0]); //...and if biasTag is one of the 7's... - if (IsBiasTag7AndIfSoSColor(&biasTag)) + if (IsBiasTag777_SwitchColor(&biasTag)) //...swap the color of the 7... { j = 2; - if (sSlotMachine->biasTagLocation[0] == 3) + if (sSlotMachine->winnerRows[0] == 3) j = 3; for (i = 0; i < 2; i++, j--) { if (biasTag == GetNearbyTag(1, j)) { - sSlotMachine->biasTagLocation[1] = j; + sSlotMachine->winnerRows[1] = j; sSlotMachine->reelExtraTurns[1] = 0; return; } } for (j = 1; j < 5; j++) { - if (biasTag == GetNearbyTag(1, sSlotMachine->biasTagLocation[0] - j)) + if (biasTag == GetNearbyTag(1, sSlotMachine->winnerRows[0] - j)) { - if (sSlotMachine->biasTagLocation[0] == 1) + if (sSlotMachine->winnerRows[0] == 1) { if (j < 3) { - sSlotMachine->biasTagLocation[1] = 2; + sSlotMachine->winnerRows[1] = 2; sSlotMachine->reelExtraTurns[1] = j + 1; } else { - sSlotMachine->biasTagLocation[1] = 1; + sSlotMachine->winnerRows[1] = 1; sSlotMachine->reelExtraTurns[1] = j; } } @@ -2265,12 +2258,12 @@ Advance until there are no cherries on screen in reel 1 { if (j < 3) { - sSlotMachine->biasTagLocation[1] = 3; + sSlotMachine->winnerRows[1] = 3; sSlotMachine->reelExtraTurns[1] = j; } else { - sSlotMachine->biasTagLocation[1] = 2; + sSlotMachine->winnerRows[1] = 2; sSlotMachine->reelExtraTurns[1] = j - 1; } } @@ -2282,7 +2275,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */bool8 AreTagsMixed7s_2Tags(u8 tag1, u8 tag2) +/*static */bool8 AreTagsMixed77(u8 tag1, u8 tag2) { if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED)) return TRUE; @@ -2290,7 +2283,7 @@ Advance until there are no cherries on screen in reel 1 return FALSE; } -/*static */bool8 AreTagsMixed7s_3Tags(u8 tag1, u8 tag2, u8 tag3) +/*static */bool8 AreTagsMixed777(u8 tag1, u8 tag2, u8 tag3) { if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE)) @@ -2299,7 +2292,7 @@ Advance until there are no cherries on screen in reel 1 return FALSE; } -/*static */bool8 DoTagsNotMatchOrHaveAny7s(u8 tag1, u8 tag2, u8 tag3) +/*static */bool8 TagsDontMatchOrHaveAny7s(u8 tag1, u8 tag2, u8 tag3) { if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE) || @@ -2334,10 +2327,9 @@ Advance until there are no cherries on screen in reel 1 i++; } } - else if (AreTagsMixed7s_2Tags(tag1, tag2)) + else if (AreTagsMixed77(tag1, tag2)) { - // if bit 7 of luckyFlags is set... - if (sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->luckyFlags & LUCKY_BIAS_777) { //...see if you can match with reel 1 within 4 turns for (i = 0; i < 5; i++) @@ -2368,18 +2360,17 @@ Advance until there are no cherries on screen in reel 1 u8 tag1; u8 tag2; u8 tag3; - // if tags match in first 2 reels and bit 7 of luckyFlags is set... - if (sSlotMachine->biasTagLocation[1] != 0 && sSlotMachine->biasTagLocation[0] == sSlotMachine->biasTagLocation[1] && sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->winnerRows[1] != 0 && sSlotMachine->winnerRows[0] == sSlotMachine->winnerRows[1] && sSlotMachine->luckyFlags & LUCKY_BIAS_777) { - tag1 = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); - tag2 = GetNearbyTag(1, sSlotMachine->biasTagLocation[1] - sSlotMachine->reelExtraTurns[1]); + tag1 = GetNearbyTag(0, sSlotMachine->winnerRows[0] - sSlotMachine->reelExtraTurns[0]); + tag2 = GetNearbyTag(1, sSlotMachine->winnerRows[1] - sSlotMachine->reelExtraTurns[1]); //...and if tags are mixed 7s... - if (AreTagsMixed7s_2Tags(tag1, tag2)) + if (AreTagsMixed77(tag1, tag2)) { //...try to match with reel 1 within 4 turns for (i = 0; i < 5; i++) { - tag3 = GetNearbyTag(2, sSlotMachine->biasTagLocation[1] - i); + tag3 = GetNearbyTag(2, sSlotMachine->winnerRows[1] - i); if (tag1 == tag3) { extraTurns = i; @@ -2399,7 +2390,7 @@ Advance until there are no cherries on screen in reel 1 tag3 = GetNearbyTag(2, i - extraTurns); // if bit 7 of luckyFlags is unset... //...and if all 3 tags match and they're not mixed 7s - if (!DoTagsNotMatchOrHaveAny7s(tag1, tag2, tag3) && (!AreTagsMixed7s_3Tags(tag1, tag2, tag3) || !(sSlotMachine->luckyFlags & 0x80))) + if (!TagsDontMatchOrHaveAny7s(tag1, tag2, tag3) && (!AreTagsMixed777(tag1, tag2, tag3) || !(sSlotMachine->luckyFlags & LUCKY_BIAS_777))) { loopExit++; break; @@ -2421,16 +2412,15 @@ Advance until there are no cherries on screen in reel 1 s16 i; DecideReelTurns_NoBiasTag_Reel3_Bet2(); - // if tags don't match in first 2 reels and bit 7 of luckyFlags is set... - if (sSlotMachine->biasTagLocation[1] != 0 && sSlotMachine->biasTagLocation[0] != sSlotMachine->biasTagLocation[1] && sSlotMachine->luckyFlags & 0x80) + if (sSlotMachine->winnerRows[1] != 0 && sSlotMachine->winnerRows[0] != sSlotMachine->winnerRows[1] && sSlotMachine->luckyFlags & LUCKY_BIAS_777) { - tag1 = GetNearbyTag(0, sSlotMachine->biasTagLocation[0] - sSlotMachine->reelExtraTurns[0]); - tag2 = GetNearbyTag(1, sSlotMachine->biasTagLocation[1] - sSlotMachine->reelExtraTurns[1]); + tag1 = GetNearbyTag(0, sSlotMachine->winnerRows[0] - sSlotMachine->reelExtraTurns[0]); + tag2 = GetNearbyTag(1, sSlotMachine->winnerRows[1] - sSlotMachine->reelExtraTurns[1]); //..and if tags are mixed 7s... - if (AreTagsMixed7s_2Tags(tag1, tag2)) + if (AreTagsMixed77(tag1, tag2)) { j = 1; - if (sSlotMachine->biasTagLocation[0] == 1) + if (sSlotMachine->winnerRows[0] == 1) j = 3; for (i = 0; i < 5; i++) { @@ -2448,7 +2438,7 @@ Advance until there are no cherries on screen in reel 1 tag1 = GetNearbyTag(0, 1 - sSlotMachine->reelExtraTurns[0]); tag2 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); tag3 = GetNearbyTag(2, 3 - sSlotMachine->reelExtraTurns[2]); - if (DoTagsNotMatchOrHaveAny7s(tag1, tag2, tag3) || (AreTagsMixed7s_3Tags(tag1, tag2, tag3) && sSlotMachine->luckyFlags & 0x80)) + if (TagsDontMatchOrHaveAny7s(tag1, tag2, tag3) || (AreTagsMixed777(tag1, tag2, tag3) && sSlotMachine->luckyFlags & LUCKY_BIAS_777)) break; sSlotMachine->reelExtraTurns[2]++; } @@ -2457,7 +2447,7 @@ Advance until there are no cherries on screen in reel 1 tag1 = GetNearbyTag(0, 3 - sSlotMachine->reelExtraTurns[0]); tag2 = GetNearbyTag(1, 2 - sSlotMachine->reelExtraTurns[1]); tag3 = GetNearbyTag(2, 1 - sSlotMachine->reelExtraTurns[2]); - if (DoTagsNotMatchOrHaveAny7s(tag1, tag2, tag3) || (AreTagsMixed7s_3Tags(tag1, tag2, tag3) && sSlotMachine->luckyFlags & 0x80)) + if (TagsDontMatchOrHaveAny7s(tag1, tag2, tag3) || (AreTagsMixed777(tag1, tag2, tag3) && sSlotMachine->luckyFlags & LUCKY_BIAS_777)) break; sSlotMachine->reelExtraTurns[2]++; } @@ -4517,18 +4507,12 @@ const u8 LuckyTags[] = { SLOT_MACHINE_TAG_REPLAY, SLOT_MACHINE_TAG_CHERRY, SLOT_MACHINE_TAG_LOTAD, SLOT_MACHINE_TAG_AZURILL, SLOT_MACHINE_TAG_POWER, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED }; -/* -sSlotMachine->luckyFlags: 7, 6, 5, 4, 3, 2, 1, 0 -If you got Lucky2 in 1 attempt, flag 7 gets set. -If you got Lucky2 in 2 attempts, flag 5 gets set. -If you got Lucky2 in 3 attempts, flag 6 gets set. -*/ -const u16 LuckyFlagSettings_Top3[] = { // order seems buggy - 0x80, 0x20, 0x40 +const u16 LuckyFlagSettings_Top3[] = { + LUCKY_BIAS_777, LUCKY_BIAS_REELTIME, LUCKY_BIAS_MIXED_777 }; const u16 LuckyFlagSettings_NotTop3[] = { - 0x10, 0x08, 0x04, 0x02, 0x01 + LUCKY_BIAS_POWER, LUCKY_BIAS_AZURRILL, LUCKY_BIAS_LOTAD, LUCKY_BIAS_CHERRY, LUCKY_BIAS_REPLAY }; const u8 sSym2Match[] = { -- cgit v1.2.3 From dd8ecabe26e5e525306047507d33bc1640040871 Mon Sep 17 00:00:00 2001 From: hondew Date: Fri, 22 Feb 2019 16:03:35 -0500 Subject: fix mistakes and bad formatting --- include/slot_machine.h | 8 +- include/tv.h | 6 +- src/roulette.c | 4 +- src/slot_machine.c | 1144 ++++++++++++++++++++++++------------------------ src/tv.c | 8 +- 5 files changed, 582 insertions(+), 588 deletions(-) diff --git a/include/slot_machine.h b/include/slot_machine.h index 2eb00d92b..bd0af49af 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -1,13 +1,15 @@ #ifndef GUARD_SLOT_MACHINE_H #define GUARD_SLOT_MACHINE_H -#define REEL_NUM_TAGS 21 +#define NUM_REELS 3 +#define REEL_NUM_TAGS 21 +#define REEL_TAG_HEIGHT 24 // Lucky Flags #define LUCKY_BIAS_REPLAY 0x0001 #define LUCKY_BIAS_CHERRY 0x0002 #define LUCKY_BIAS_LOTAD 0x0004 -#define LUCKY_BIAS_AZURRILL 0x0008 +#define LUCKY_BIAS_AZURILL 0x0008 #define LUCKY_BIAS_POWER 0x0010 #define LUCKY_BIAS_REELTIME 0x0020 #define LUCKY_BIAS_MIXED_777 0x0040 @@ -18,8 +20,6 @@ #define SLOT_MIDDLE_ROW 0x0002 #define SLOT_BOTTOM_ROW 0x0003 - - void PlaySlotMachine(u8, void (callback)(void)); #endif // GUARD_SLOT_MACHINE_H diff --git a/include/tv.h b/include/tv.h index a5c26af0c..ec01717e2 100644 --- a/include/tv.h +++ b/include/tv.h @@ -26,9 +26,9 @@ bool8 GetPriceReduction(u8 newsKind); void sub_80F14F8(TVShow *shows); size_t CountDigits(int value); u8 GetRibbonCount(struct Pokemon *pokemon); -void AlertTVThatYouPlayedSlotMachine(u16 nCoinsSpent); -void AlertTVThatYouPlayedRoulette(u16 nCoinsSpent); -void reportNewCoinTotal(u16 nCoinsPaidOut); +void AlertTVThatPlayerPlayedSlotMachine(u16 nCoinsSpent); +void AlertTVThatPlayerPlayedRoulette(u16 nCoinsSpent); +void AlertTVOfNewCointTotal(u16 nCoinsPaidOut); void sub_80EEA70(void); void sub_80EDB44(void); void sub_80EDC60(const u16 *words); diff --git a/src/roulette.c b/src/roulette.c index fa2b6c579..93678fa1c 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -996,7 +996,7 @@ static void sub_81405CC(void) taskId = gUnknown_0203AB88->varA4 = CreateTask(sub_81408A8, 0); gTasks[taskId].data[6] = 6; gTasks[taskId].data[13] = GetCoins(); - AlertTVThatYouPlayedRoulette(GetCoins()); + AlertTVThatPlayerPlayedRoulette(GetCoins()); gUnknown_0203AB88->varA5 = CreateTask(sub_8140814, 1); SetMainCallback2(sub_8140238); return; @@ -1964,7 +1964,7 @@ static void sub_8141DE4(u8 taskId) gSpecialVar_0x8004 = TRUE; else gSpecialVar_0x8004 = FALSE; - reportNewCoinTotal(GetCoins()); + AlertTVOfNewCointTotal(GetCoins()); BeginHardwarePaletteFade(0xFF, 0, 0, 16, 0); gTasks[taskId].func = sub_8141E7C; } diff --git a/src/slot_machine.c b/src/slot_machine.c index af162b264..9c07a96f2 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -59,7 +59,7 @@ enum struct SlotMachineEwramStruct { - /*0x00*/ u8 slotActionPtr; + /*0x00*/ u8 state; /*0x01*/ u8 machineId; /*0x02*/ u8 pikaPower; /*0x03*/ u8 luckyGame; @@ -115,209 +115,209 @@ struct UnkStruct1 #define SLOTMACHINE_GFX_TILES 233 -/*static */void CB2_SlotMachineSetup(void); -/*static */void CB2_SlotMachineLoop(void); -/*static */void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinueScriptPlayMapMusic); -/*static */void SlotMachineDummyTask(u8 taskId); -/*static */void SlotMachineSetup_0_0(void); -/*static */void SlotMachineSetup_6_2(void); -/*static */void SlotMachineSetup_1_0(void); -/*static */void SlotMachineSetup_2_0(void); -/*static */void SlotMachineSetup_2_1(void); -/*static */void SlotMachineSetup_0_1(void); -/*static */void SlotMachineSetup_3_0(void); -/*static */void SlotMachineSetup_4_0(void); -/*static */void SlotMachineSetup_5_0(void); -/*static */void SlotMachineSetup_6_0(void); -/*static */void SlotMachineSetup_6_1(void); -/*static */void SlotMachineSetup_8_0(void); -/*static */void SlotMachineSetup_9_0(void); -/*static */void SlotMachineSetup_10_0(void); -/*static */void SlotMachineSetupGameplayTasks(void); -/*static */void GameplayTasks_Slots(void); -/*static */void sub_8104DA4(void); -/*static */void RunSlotActions(u8 taskId); -/*static */bool8 SlotAction_UnfadeScreen(struct Task *task); -/*static */bool8 SlotAction_WaitForUnfade(struct Task *task); -/*static */bool8 SlotAction_SetSlotMachineVars(struct Task *task); -/*static */bool8 SlotAction3(struct Task *task); -/*static */bool8 SlotAction4(struct Task *task); -/*static */bool8 SlotAction_AwaitPlayerInput(struct Task *task); -/*static */bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task); -/*static */bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task); -/*static */bool8 SlotAction_GivingInformation(struct Task *task); -/*static */bool8 SlotAction9(struct Task *task); -/*static */bool8 SlotAction10(struct Task *task); -/*static */bool8 SlotAction_SetLuckySpins(struct Task *task); -/*static */bool8 SlotAction_AwaitReelStop(struct Task *task); -/*static */bool8 SlotAction_WaitForAllReelsToStop(struct Task *task); -/*static */bool8 SlotAction_CheckMatches(struct Task *task); -/*static */bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task); -/*static */bool8 SlotAction_EndOfRoll(struct Task *task); -/*static */bool8 SlotAction_MatchedPower(struct Task *task); -/*static */bool8 SlotAction18(struct Task *task); -/*static */bool8 SlotAction_Loop(struct Task *task); -/*static */bool8 SlotAction_NoMatches(struct Task *task); -/*static */bool8 SlotAction_PrintQuitTheGame(struct Task *task); -/*static */bool8 SlotAction_SeeIfPlayerQuits(struct Task *task); -/*static */bool8 SlotAction_Print9999CoinMessage(struct Task *task); -/*static */bool8 SlotAction_Exit9999CoinMessage(struct Task *task); -/*static */bool8 SlotAction_PrintNoMoreCoins(struct Task *task); -/*static */bool8 SlotAction_ExitNoMoreCoinsMessage(struct Task *task); -/*static */bool8 SlotAction_EndGame(struct Task *task); -/*static */bool8 SlotAction_FreeDataStructures(struct Task *task); -/*static */void DrawLuckyFlags(void); -/*static */void SetLuckySpins(void); -/*static */bool8 IsThisRoundLucky(void); -/*static */u8 AttemptsAtLuckyflags_Top3(void); -/*static */u16 DrawNewReelIncrement(void); -/*static */u8 AttemptsAtLuckyflags_NotTop3(void); -/*static */void CheckMatch(void); -/*static */void CheckMatch_CenterRow(void); -/*static */void CheckMatch_TopAndBottom(void); -/*static */void CheckMatch_Diagonals(void); -/*static */u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3); -/*static */void AwardPayout(void); -/*static */void RunAwardPayoutActions(u8 taskId); -/*static */bool8 IsFinalTask_RunAwardPayoutActions(void); -/*static */bool8 AwardPayoutAction0(struct Task *task); -/*static */bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task); -/*static */bool8 AwardPayoutAction_FreeTask(struct Task *task); -/*static */u8 GetNearbyTag_Quantized(u8 x, s16 y); -/*static */void GameplayTask_StopSlotReel(void); -/*static */void ReelTasks_SetUnkTaskData(u8 a0); -/*static */void sub_8102E1C(u8 a0); -/*static */bool8 IsSlotReelMoving(u8 a0); -/*static */void RunSlotReelActions(u8 taskId); -/*static */bool8 SlotReelAction_StayStill(struct Task *task); -/*static */bool8 SlotReelAction_Spin(struct Task *task); -/*static */bool8 SlotReelAction_DecideWhereToStop(struct Task *task); -/*static */bool8 SlotReelAction_MoveToStop(struct Task *task); -/*static */bool8 SlotReelAction_OscillatingStop(struct Task *task); -/*static */bool8 DecideReelTurns_BiasTag_Reel1(void); -/*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8 a0, u8 a1); -/*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 a0, u8 a1); -/*static */bool8 DecideReelTurns_BiasTag_Reel2(void); -/*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void); -/*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void); -/*static */bool8 DecideReelTurns_BiasTag_Reel3(void); -/*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 a0); -/*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet3(u8 a0); -/*static */void DecideReelTurns_NoBiasTag_Reel1(void); -/*static */void DecideReelTurns_NoBiasTag_Reel2(void); -/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet1(void); -/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet2(void); -/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet3(void); -/*static */void DecideReelTurns_NoBiasTag_Reel3(void); -/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet1(void); -/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet2(void); -/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet3(void); -/*static */void sub_8103C14(u8 a0); -/*static */void sub_8103C48(u8 taskId); -/*static */void LoadBetTiles(u8 a0); -/*static */void sub_8103C78(struct Task *task, u8 taskId); -/*static */void sub_8103CAC(struct Task *task, u8 taskId); -/*static */void sub_8103CC8(struct Task *task, u8 taskId); -/*static */void sub_8103D8C(u8 a0); -/*static */void sub_8103DC8(void); -/*static */void sub_8103E04(u8 a0); -/*static */bool8 sub_8103E38(void); -/*static */bool8 sub_8103E7C(void); -/*static */bool8 sub_8103EAC(u8 spriteId); -/*static */void sub_8103EE4(struct Sprite *sprite); -/*static */void sub_8103F70(void); -/*static */bool8 sub_8103FA0(void); -/*static */void sub_8103FE8_(u8 taskId); -/*static */void GameplayTasks_PikaPower(void); -/*static */void DisplayPikaPower(u8 pikaPower); -/*static */bool8 sub_81040C8(void); -/*static */void sub_81040E8(u8 taskId); -/*static */void nullsub_68(struct Task *task); -/*static */void sub_810411C(struct Task *task); -/*static */void sub_8104144(struct Task *task); -/*static */void sub_81041AC(struct Task *task); -/*static */void ClearTaskDataFields_2orHigher(struct Task *task); -/*static */void sub_810423C(u8 pikaPower); -/*static */void BeginReeltime(void); -/*static */bool8 IsFinalTask_RunReelTimeActions(void); -/*static */void RunReeltimeActions(u8 taskId); -/*static */void ReeltimeAction0(struct Task *task); -/*static */void ReeltimeAction1(struct Task *task); -/*static */void ReeltimeAction2(struct Task *task); -/*static */void ReeltimeAction3(struct Task *task); -/*static */void ReeltimeAction4(struct Task *task); -/*static */void ReeltimeAction5(struct Task *task); -/*static */void ReeltimeAction6(struct Task *task); -/*static */void ReelTimeAction_LandOnOutcome(struct Task *task); -/*static */void ReeltimeAction8(struct Task *task); -/*static */void ReeltimeAction9(struct Task *task); -/*static */void ReeltimeAction10(struct Task *task); -/*static */void ReeltimeAction11(struct Task *task); -/*static */void ReeltimeAction12(struct Task *task); -/*static */void ReeltimeAction13(struct Task *task); -/*static */void ReeltimeAction14(struct Task *task); -/*static */void ReeltimeAction15(struct Task *task); -/*static */void ReeltimeAction16(struct Task *task); -/*static */void ReeltimeAction17(struct Task *task); -/*static */void sub_8104A40(s16 a0, s16 a1); -/*static */void sub_8104A88(s16 a0); -/*static */void OpenInfoBox(u8 a0); -/*static */bool8 IsInfoBoxClosed(void); -/*static */void RunInfoBoxActions(u8 taskId); -/*static */void InfoBox_FadeIn(struct Task *task); -/*static */void InfoBox_WaitForFade(struct Task *task); -/*static */void InfoBox_8104B80(struct Task *task); -/*static */void InfoBox_AwaitPlayerInput(struct Task *task); -/*static */void InfoBox_AddText(struct Task *task); -/*static */void InfoBox_8104BFC(struct Task *task); -/*static */void InfoBox_812DE14(struct Task *task); -/*static */void InfoBox_812DE30(struct Task *task); -/*static */void InfoBox_FreeTask(struct Task *task); -/*static */void sub_8104C5C(void); -/*static */void sub_8104CAC(u8 arg0); -/*static */bool8 sub_8104E18(void); -/*static */void nullsub_69(struct Task *task); -/*static */void sub_8104E74_(u8 taskId); -/*static */void sub_8104EA8(void); -/*static */void sub_8104F8C(void); -/*static */void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3); -/*static */void sub_81050C4(void); -/*static */void sub_8105100(void); -/*static */void sub_810514C(void); -/*static */void sub_81051C0(void); -/*static */void sub_8105284_(void); -/*static */void sub_81052EC(void); -/*static */void sub_81053A0(void); -/*static */void sub_810545C(void); -/*static */void sub_81054B8(void); -/*static */void sub_8105524(void); -/*static */void sub_8105554(void); -/*static */void CreateReelTimeSprites1(void); -/*static */void sub_8105688(s16 a0); -/*static */void sub_81056C0(void); -/*static */void CreateReelTimeSprite2(void); -/*static */void sub_81057E8(s16 a0); -/*static */void sub_8105804(void); -/*static */void sub_8105854(void); -/*static */void sub_81058A0(void); -/*static */void sub_81058C4(void); -/*static */void sub_81059B8(void); -/*static */void sub_81059E8(void); -/*static */bool8 sub_8105ACC(void); -/*static */void sub_8105AEC(void); -/*static */u8 sub_8105B1C(s16 x, s16 y); -/*static */void sub_8105B88(u8 spriteId); -/*static */u8 sub_8105BF8(u8 templateIdx, void (*callback)(struct Sprite*), s16 x, s16 y, s16 a4); -/*static */void sub_81063C0(void); -/*static */void sub_8106404(void); -/*static */void sub_8106448(void); -/*static */void sub_81064B8(void); -/*static */void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); -/*static */void sub_81065DC(void); -/*static */void sub_812F958(void); -/*static */void sub_812F968(void); -/*static */void LoadSlotMachineWheelOverlay(void); -/*static */u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); +static void CB2_SlotMachineSetup(void); +static void CB2_SlotMachineLoop(void); +static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinueScriptPlayMapMusic); +static void SlotMachineDummyTask(u8 taskId); +static void SlotMachineSetup_0_0(void); +static void SlotMachineSetup_6_2(void); +static void SlotMachineSetup_1_0(void); +static void SlotMachineSetup_2_0(void); +static void SlotMachineSetup_2_1(void); +static void SlotMachineSetup_0_1(void); +static void SlotMachineSetup_3_0(void); +static void SlotMachineSetup_4_0(void); +static void SlotMachineSetup_5_0(void); +static void SlotMachineSetup_6_0(void); +static void SlotMachineSetup_6_1(void); +static void SlotMachineSetup_8_0(void); +static void SlotMachineSetup_9_0(void); +static void SlotMachineSetup_10_0(void); +static void SlotMachineSetupGameplayTasks(void); +static void GameplayTasks_Slots(void); +static void sub_8104DA4(void); +static void RunSlotActions(u8 taskId); +static bool8 SlotAction_UnfadeScreen(struct Task *task); +static bool8 SlotAction_WaitForUnfade(struct Task *task); +static bool8 SlotAction_SetSlotMachineVars(struct Task *task); +static bool8 SlotAction3(struct Task *task); +static bool8 SlotAction4(struct Task *task); +static bool8 SlotAction_AwaitPlayerInput(struct Task *task); +static bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task); +static bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task); +static bool8 SlotAction_GivingInformation(struct Task *task); +static bool8 SlotAction9(struct Task *task); +static bool8 SlotAction10(struct Task *task); +static bool8 SlotAction_SetLuckySpins(struct Task *task); +static bool8 SlotAction_AwaitReelStop(struct Task *task); +static bool8 SlotAction_WaitForAllReelsToStop(struct Task *task); +static bool8 SlotAction_CheckMatches(struct Task *task); +static bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task); +static bool8 SlotAction_EndOfRoll(struct Task *task); +static bool8 SlotAction_MatchedPower(struct Task *task); +static bool8 SlotAction18(struct Task *task); +static bool8 SlotAction_Loop(struct Task *task); +static bool8 SlotAction_NoMatches(struct Task *task); +static bool8 SlotAction_PrintQuitTheGame(struct Task *task); +static bool8 SlotAction_SeeIfPlayerQuits(struct Task *task); +static bool8 SlotAction_PrintMessage_9999Coins(struct Task *task); +static bool8 SlotAction_ExitMessage_9999Coins(struct Task *task); +static bool8 SlotAction_PrintMessage_NoMoreCoins(struct Task *task); +static bool8 SlotAction_ExitMessage_NoMoreCoins(struct Task *task); +static bool8 SlotAction_EndGame(struct Task *task); +static bool8 SlotAction_FreeDataStructures(struct Task *task); +static void DrawLuckyFlags(void); +static void SetLuckySpins(void); +static bool8 IsThisRoundLucky(void); +static u8 AttemptsAtLuckyflags_Top3(void); +static u16 SlowReelSpeed(void); +static u8 AttemptsAtLuckyflags_NotTop3(void); +static void CheckMatch(void); +static void CheckMatch_CenterRow(void); +static void CheckMatch_TopAndBottom(void); +static void CheckMatch_Diagonals(void); +static u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3); +static void AwardPayout(void); +static void RunAwardPayoutActions(u8 taskId); +static bool8 IsFinalTask_RunAwardPayoutActions(void); +static bool8 AwardPayoutAction0(struct Task *task); +static bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task); +static bool8 AwardPayoutAction_FreeTask(struct Task *task); +static u8 GetNearbyTag_Quantized(u8 x, s16 y); +static void GameplayTask_StopSlotReel(void); +static void ReelTasks_SetUnkTaskData(u8 a0); +static void sub_8102E1C(u8 a0); +static bool8 IsSlotReelMoving(u8 a0); +static void RunSlotReelActions(u8 taskId); +static bool8 SlotReelAction_StayStill(struct Task *task); +static bool8 SlotReelAction_Spin(struct Task *task); +static bool8 SlotReelAction_DecideWhereToStop(struct Task *task); +static bool8 SlotReelAction_MoveToStop(struct Task *task); +static bool8 SlotReelAction_OscillatingStop(struct Task *task); +static bool8 DecideReelTurns_BiasTag_Reel1(void); +static bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8 a0, u8 a1); +static bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 a0, u8 a1); +static bool8 DecideReelTurns_BiasTag_Reel2(void); +static bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void); +static bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void); +static bool8 DecideReelTurns_BiasTag_Reel3(void); +static bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 a0); +static bool8 DecideReelTurns_BiasTag_Reel3_Bet3(u8 a0); +static void DecideReelTurns_NoBiasTag_Reel1(void); +static void DecideReelTurns_NoBiasTag_Reel2(void); +static void DecideReelTurns_NoBiasTag_Reel2_Bet1(void); +static void DecideReelTurns_NoBiasTag_Reel2_Bet2(void); +static void DecideReelTurns_NoBiasTag_Reel2_Bet3(void); +static void DecideReelTurns_NoBiasTag_Reel3(void); +static void DecideReelTurns_NoBiasTag_Reel3_Bet1(void); +static void DecideReelTurns_NoBiasTag_Reel3_Bet2(void); +static void DecideReelTurns_NoBiasTag_Reel3_Bet3(void); +static void sub_8103C14(u8 a0); +static void sub_8103C48(u8 taskId); +static void LoadBetTiles(u8 a0); +static void sub_8103C78(struct Task *task, u8 taskId); +static void sub_8103CAC(struct Task *task, u8 taskId); +static void sub_8103CC8(struct Task *task, u8 taskId); +static void sub_8103D8C(u8 a0); +static void sub_8103DC8(void); +static void sub_8103E04(u8 a0); +static bool8 sub_8103E38(void); +static bool8 sub_8103E7C(void); +static bool8 sub_8103EAC(u8 spriteId); +static void sub_8103EE4(struct Sprite *sprite); +static void sub_8103F70(void); +static bool8 sub_8103FA0(void); +static void sub_8103FE8_(u8 taskId); +static void GameplayTask_PikaPower(void); +static void DisplayPikaPower(u8 pikaPower); +static bool8 sub_81040C8(void); +static void sub_81040E8(u8 taskId); +static void nullsub_68(struct Task *task); +static void sub_810411C(struct Task *task); +static void sub_8104144(struct Task *task); +static void sub_81041AC(struct Task *task); +static void ClearTaskDataFields_2orHigher(struct Task *task); +static void sub_810423C(u8 pikaPower); +static void BeginReeltime(void); +static bool8 IsFinalTask_RunReelTimeActions(void); +static void RunReeltimeActions(u8 taskId); +static void ReeltimeAction0(struct Task *task); +static void ReeltimeAction1(struct Task *task); +static void ReeltimeAction2(struct Task *task); +static void ReeltimeAction3(struct Task *task); +static void ReeltimeAction4(struct Task *task); +static void ReeltimeAction5(struct Task *task); +static void ReeltimeAction6(struct Task *task); +static void ReelTimeAction_LandOnOutcome(struct Task *task); +static void ReeltimeAction8(struct Task *task); +static void ReeltimeAction9(struct Task *task); +static void ReeltimeAction10(struct Task *task); +static void ReeltimeAction11(struct Task *task); +static void ReeltimeAction12(struct Task *task); +static void ReeltimeAction13(struct Task *task); +static void ReeltimeAction14(struct Task *task); +static void ReeltimeAction15(struct Task *task); +static void ReeltimeAction16(struct Task *task); +static void ReeltimeAction17(struct Task *task); +static void sub_8104A40(s16 a0, s16 a1); +static void sub_8104A88(s16 a0); +static void OpenInfoBox(u8 a0); +static bool8 IsInfoBoxClosed(void); +static void RunInfoBoxActions(u8 taskId); +static void InfoBox_FadeIn(struct Task *task); +static void InfoBox_WaitForFade(struct Task *task); +static void InfoBox_8104B80(struct Task *task); +static void InfoBox_AwaitPlayerInput(struct Task *task); +static void InfoBox_AddText(struct Task *task); +static void InfoBox_8104BFC(struct Task *task); +static void InfoBox_812DE14(struct Task *task); +static void InfoBox_812DE30(struct Task *task); +static void InfoBox_FreeTask(struct Task *task); +static void sub_8104C5C(void); +static void sub_8104CAC(u8 arg0); +static bool8 sub_8104E18(void); +static void nullsub_69(struct Task *task); +static void sub_8104E74_(u8 taskId); +static void sub_8104EA8(void); +static void sub_8104F8C(void); +static void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3); +static void sub_81050C4(void); +static void sub_8105100(void); +static void sub_810514C(void); +static void sub_81051C0(void); +static void sub_8105284_(void); +static void sub_81052EC(void); +static void sub_81053A0(void); +static void sub_810545C(void); +static void sub_81054B8(void); +static void sub_8105524(void); +static void sub_8105554(void); +static void CreateReelTimeSprites1(void); +static void sub_8105688(s16 a0); +static void sub_81056C0(void); +static void CreateReelTimeSprite2(void); +static void sub_81057E8(s16 a0); +static void sub_8105804(void); +static void sub_8105854(void); +static void sub_81058A0(void); +static void sub_81058C4(void); +static void sub_81059B8(void); +static void sub_81059E8(void); +static bool8 sub_8105ACC(void); +static void sub_8105AEC(void); +static u8 sub_8105B1C(s16 x, s16 y); +static void sub_8105B88(u8 spriteId); +static u8 sub_8105BF8(u8 templateIdx, void (*callback)(struct Sprite*), s16 x, s16 y, s16 a4); +static void sub_81063C0(void); +static void sub_8106404(void); +static void sub_8106448(void); +static void sub_81064B8(void); +static void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4); +static void sub_81065DC(void); +static void sub_812F958(void); +static void sub_812F968(void); +static void LoadSlotMachineWheelOverlay(void); +static u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); // Ewram variables static EWRAM_DATA u16 *gUnknown_0203AAC8 = NULL; @@ -356,7 +356,7 @@ static IWRAM_DATA struct SpriteFrameImage *gUnknown_03001188[26]; extern const struct UnkStruct1 *const gUnknown_083ED048[]; extern const u16 gPalette_83EDE24[]; extern const u8 LuckyRoundTable[][3]; -extern const u8 LuckyTags[]; +extern const u8 BiasTags[]; extern const u16 LuckyFlagSettings_Top3[]; extern const u16 LuckyFlagSettings_NotTop3[]; extern const s16 gUnknown_083ECE7E[][2]; @@ -453,39 +453,39 @@ const struct WindowTemplate gUnknown_085A7444 = 0, 1, 3, 20, 13, 13, 1 }; -const u8 gColors_ReelTimeHelp[] = {3, 1, 2, 0}; +const u8 gColors_ReeltimeHelp[] = {3, 1, 2, 0}; bool8 (*const SlotActions[])(struct Task *task) = { - SlotAction_UnfadeScreen, - SlotAction_WaitForUnfade, - SlotAction_SetSlotMachineVars, - SlotAction3, - SlotAction4, - SlotAction_AwaitPlayerInput, - SlotAction_PrintYouDontHaveThreeCoins, - SlotAction_ExitYouDontHaveThreeCoinsMessage, - SlotAction_GivingInformation, - SlotAction9, - SlotAction10, - SlotAction_SetLuckySpins, - SlotAction_AwaitReelStop, - SlotAction_WaitForAllReelsToStop, - SlotAction_CheckMatches, - SlotAction_WaitForPayoutToBeAwarded, - SlotAction_EndOfRoll, - SlotAction_MatchedPower, - SlotAction18, - SlotAction_Loop, - SlotAction_NoMatches, - SlotAction_PrintQuitTheGame, - SlotAction_SeeIfPlayerQuits, - SlotAction_Print9999CoinMessage, - SlotAction_Exit9999CoinMessage, - SlotAction_PrintNoMoreCoins, - SlotAction_ExitNoMoreCoinsMessage, - SlotAction_EndGame, - SlotAction_FreeDataStructures, + SlotAction_UnfadeScreen, // 0 + SlotAction_WaitForUnfade, // 1 + SlotAction_SetSlotMachineVars, // 2 + SlotAction3, // 3 + SlotAction4, // 4 + SlotAction_AwaitPlayerInput, // 5 + SlotAction_PrintYouDontHaveThreeCoins, // 6 + SlotAction_ExitYouDontHaveThreeCoinsMessage, // 7 + SlotAction_GivingInformation, // 8 + SlotAction9, // 9 + SlotAction10, // 10 + SlotAction_SetLuckySpins, // 11 + SlotAction_AwaitReelStop, // 12 + SlotAction_WaitForAllReelsToStop, // 13 + SlotAction_CheckMatches, // 14 + SlotAction_WaitForPayoutToBeAwarded, // 15 + SlotAction_EndOfRoll, // 16 + SlotAction_MatchedPower, // 17 + SlotAction18, // 18 + SlotAction_Loop, // 19 + SlotAction_NoMatches, // 20 + SlotAction_PrintQuitTheGame, // 21 + SlotAction_SeeIfPlayerQuits, // 22 + SlotAction_PrintMessage_9999Coins, // 23 + SlotAction_ExitMessage_9999Coins, // 24 + SlotAction_PrintMessage_NoMoreCoins, // 25 + SlotAction_ExitMessage_NoMoreCoins, // 26 + SlotAction_EndGame, // 27 + SlotAction_FreeDataStructures, // 28 }; bool8 (*const AwardPayoutActions[])(struct Task *task) = @@ -576,9 +576,9 @@ void (*const gUnknown_083ECBB4[])(struct Task *task) = const u16 pikaPowerTileTable[][2] = { - {0x9e, 0x6e}, // {0b10011110, 0b1101110} - {0x9f, 0x6f}, // {0b10011111, 0b1101111} - {0xaf, 0x7f}, // {0b10101111, 0b1111111} + {0x9e, 0x6e}, + {0x9f, 0x6f}, + {0xaf, 0x7f}, }; void (*const ReeltimeActions[])(struct Task *task) = @@ -589,7 +589,7 @@ void (*const ReeltimeActions[])(struct Task *task) = ReeltimeAction3, ReeltimeAction4, ReeltimeAction5, - ReeltimeAction6, // does stuff with reel time data + ReeltimeAction6, ReelTimeAction_LandOnOutcome, ReeltimeAction8, ReeltimeAction9, @@ -653,7 +653,7 @@ extern const struct SpriteTemplate gSpriteTemplate_83ED45C; // code #define tState data[0] -/*static */void Task_FadeToSlotMachine(u8 taskId) +static void Task_FadeToSlotMachine(u8 taskId) { switch (gTasks[taskId].tState) { @@ -671,19 +671,19 @@ extern const struct SpriteTemplate gSpriteTemplate_83ED45C; } } -void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinueScriptPlayMapMusic) +void PlaySlotMachine(u8 slotMachineIndex, MainCallback cb) { u8 taskId; sSlotMachine = AllocZeroed(sizeof(*sSlotMachine)); - PlaySlotMachine_Internal(slotMachineIndex, CB2_ReturnToFieldContinueScriptPlayMapMusic); + PlaySlotMachine_Internal(slotMachineIndex, cb); taskId = CreateTask(Task_FadeToSlotMachine, 0); gTasks[taskId].tState = 0; } #undef tState -/*static */void CB2_SlotMachineSetup(void) +static void CB2_SlotMachineSetup(void) { switch (gMain.state) { @@ -744,7 +744,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } } -/*static */void CB2_SlotMachineLoop(void) +static void CB2_SlotMachineLoop(void) { RunTasks(); AnimateSprites(); @@ -752,7 +752,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue UpdatePaletteFade(); } -/*static */void SlotMachine_VBlankCallback(void) +static void SlotMachine_VBlankCallback(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -763,26 +763,26 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue SetGpuReg(REG_OFFSET_WINOUT, sSlotMachine->winOut); } -/*static */void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinueScriptPlayMapMusic) +static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback cb) { - struct Task *task = gTasks + CreateTask(SlotMachineDummyTask, 0xFF); + struct Task *task = &gTasks[CreateTask(SlotMachineDummyTask, 0xFF)]; task->data[0] = slotMachineIndex; - StoreWordInTwoHalfwords(task->data + 1, (intptr_t)CB2_ReturnToFieldContinueScriptPlayMapMusic); + StoreWordInTwoHalfwords(task->data + 1, (intptr_t)cb); } -/*static */void sub_81019EC(void) +static void sub_81019EC(void) { - struct Task *task = gTasks + FindTaskIdByFunc(SlotMachineDummyTask); + struct Task *task = &gTasks[FindTaskIdByFunc(SlotMachineDummyTask)]; sSlotMachine->machineId = task->data[0]; LoadWordFromTwoHalfwords((u16 *)(task->data + 1), (u32 *)&sSlotMachine->prevMainCb); } -/*static */void SlotMachineDummyTask(u8 taskId) +static void SlotMachineDummyTask(u8 taskId) { } -/*static */void SlotMachineSetup_0_0(void) +static void SlotMachineSetup_0_0(void) { SetVBlankCallback(NULL); SetHBlankCallback(NULL); @@ -793,24 +793,24 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue DeactivateAllTextPrinters(); } -/*static */void SlotMachineSetup_6_0(void) +static void SlotMachineSetup_6_0(void) { SetVBlankCallback(SlotMachine_VBlankCallback); EnableInterrupts(INTR_FLAG_VBLANK); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON); } -/*static */void SlotMachineSetup_1_0(void) +static void SlotMachineSetup_1_0(void) { DmaClearLarge16(3, (u16 *)(BG_VRAM), BG_VRAM_SIZE, 0x1000); } -/*static */void SlotMachineSetup_2_0(void) +static void SlotMachineSetup_2_0(void) { DmaClear16(3, (u16 *)OAM, OAM_SIZE); } -/*static */void SlotMachineSetup_2_1(void) +static void SlotMachineSetup_2_1(void) { SetGpuReg(REG_OFFSET_BG0CNT, 0); SetGpuReg(REG_OFFSET_BG1CNT, 0); @@ -831,12 +831,12 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } // set up initial state of slot machine -/*static */void SlotMachineSetup_0_1(void) +static void SlotMachineSetup_0_1(void) { u8 i; - sub_81019EC(); // assigns sSlotMachine->machineId and other stuff - sSlotMachine->slotActionPtr = 0; + sub_81019EC(); // assigns sSlotMachine->machineId, etc. + sSlotMachine->state = 0; sSlotMachine->pikaPower = 0; sSlotMachine->luckyGame = Random() & 1; sSlotMachine->luckyFlags = 0; @@ -855,18 +855,17 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sSlotMachine->winOut = 0x3f; sSlotMachine->backupMapMusic = GetCurrentMapMusic(); - // for each reel... - for (i = 0; i < 3; i++) + for (i = 0; i < NUM_REELS; i++) { sSlotMachine->reelPixelOffsetsWhileStopping[i] = 0; sSlotMachine->reelTagOffsets[i] = sInitialReelPositions[i][sSlotMachine->luckyGame] % REEL_NUM_TAGS; - sSlotMachine->reelPixelOffsets[i] = 0x1f8 - sSlotMachine->reelTagOffsets[i] * 24; - sSlotMachine->reelPixelOffsets[i] %= 0x1f8; // 0x1f8 is 540 + sSlotMachine->reelPixelOffsets[i] = REEL_NUM_TAGS * REEL_TAG_HEIGHT - sSlotMachine->reelTagOffsets[i] * REEL_TAG_HEIGHT; + sSlotMachine->reelPixelOffsets[i] %= REEL_NUM_TAGS * REEL_TAG_HEIGHT; } - AlertTVThatYouPlayedSlotMachine(GetCoins()); + AlertTVThatPlayerPlayedSlotMachine(GetCoins()); } -/*static */void SlotMachineSetup_3_0(void) +static void SlotMachineSetup_3_0(void) { ResetPaletteFade(); ResetSpriteData(); @@ -875,7 +874,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue ResetTasks(); } -/*static */void SlotMachineSetup_4_0(void) +static void SlotMachineSetup_4_0(void) { selectedPikaPowerTile = Alloc(8); gUnknown_0203AAD0 = AllocZeroed(0xE); @@ -891,7 +890,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue gUnknown_0203AAD0[6] = 0x20BF; } -/*static */void SlotMachineSetup_5_0(void) +static void SlotMachineSetup_5_0(void) { sub_8106448(); sub_81064B8(); @@ -901,7 +900,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue PutWindowTilemap(0); } -/*static */void SlotMachineSetup_10_0(void) +static void SlotMachineSetup_10_0(void) { sub_8104EA8(); sub_8104F8C(); @@ -910,84 +909,84 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } // create gameplay tasks -/*static */void SlotMachineSetupGameplayTasks(void) +static void SlotMachineSetupGameplayTasks(void) { - GameplayTasks_PikaPower(); + GameplayTask_PikaPower(); GameplayTask_StopSlotReel(); sub_8104C5C(); GameplayTasks_Slots(); } -/*static */void GameplayTasks_Slots(void) +static void GameplayTasks_Slots(void) { RunSlotActions(CreateTask(RunSlotActions, 0)); } // task->data[0] is a timer -/*static */void RunSlotActions(u8 taskId) +static void RunSlotActions(u8 taskId) { - while (SlotActions[sSlotMachine->slotActionPtr](gTasks + taskId)) + while (SlotActions[sSlotMachine->state](&gTasks[taskId])) ; } -/*static */bool8 SlotAction_UnfadeScreen(struct Task *task) +static bool8 SlotAction_UnfadeScreen(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); sub_810423C(sSlotMachine->pikaPower); - sSlotMachine->slotActionPtr++; + sSlotMachine->state++; return FALSE; } -/*static */bool8 SlotAction_WaitForUnfade(struct Task *task) +static bool8 SlotAction_WaitForUnfade(struct Task *task) { if (!gPaletteFade.active) - sSlotMachine->slotActionPtr++; + sSlotMachine->state++; return FALSE; } -/*static */bool8 SlotAction_SetSlotMachineVars(struct Task *task) +static bool8 SlotAction_SetSlotMachineVars(struct Task *task) { sSlotMachine->payout = 0; sSlotMachine->bet = 0; sSlotMachine->currReel = 0; sSlotMachine->luckyFlags &= (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); - sSlotMachine->slotActionPtr = 4; + sSlotMachine->state = 4; if (sSlotMachine->coins <= 0) { - sSlotMachine->slotActionPtr = 25; + sSlotMachine->state = 25; } else if (sSlotMachine->fairRollsLeft) { - sSlotMachine->slotActionPtr = 3; + sSlotMachine->state = 3; sub_8104CAC(4); } return TRUE; } -/*static */bool8 SlotAction3(struct Task *task) +static bool8 SlotAction3(struct Task *task) { if (sub_8104E18()) - sSlotMachine->slotActionPtr = 4; + sSlotMachine->state = 4; return FALSE; } -/*static */bool8 SlotAction4(struct Task *task) +static bool8 SlotAction4(struct Task *task) { sub_8104CAC(0); - sSlotMachine->slotActionPtr = 5; + sSlotMachine->state = 5; if (sSlotMachine->coins >= 9999) - sSlotMachine->slotActionPtr = 23; + sSlotMachine->state = 23; return TRUE; } -/*static */bool8 SlotAction_AwaitPlayerInput(struct Task *task) +static bool8 SlotAction_AwaitPlayerInput(struct Task *task) { s16 i; if (gMain.newKeys & SELECT_BUTTON) { OpenInfoBox(0); - sSlotMachine->slotActionPtr = 8; + sSlotMachine->state = 8; } else if (gMain.newKeys & R_BUTTON) // bet the max amount { @@ -997,12 +996,12 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue LoadBetTiles(i); sSlotMachine->coins -= (3 - sSlotMachine->bet); sSlotMachine->bet = 3; - sSlotMachine->slotActionPtr = 9; + sSlotMachine->state = 9; PlaySE(SE_REGI); } else // you didn't have enough coins to bet the max { - sSlotMachine->slotActionPtr = 6; + sSlotMachine->state = 6; } } else @@ -1016,42 +1015,42 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } // player maxed out or finished betting if (sSlotMachine->bet >= 3 || (sSlotMachine->bet != 0 && gMain.newKeys & A_BUTTON)) - sSlotMachine->slotActionPtr = 9; + sSlotMachine->state = 9; // player wants to quit if (gMain.newKeys & B_BUTTON) - sSlotMachine->slotActionPtr = 21; + sSlotMachine->state = 21; } return FALSE; } -/*static */bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task) +static bool8 SlotAction_PrintYouDontHaveThreeCoins(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouDontHaveThreeCoins, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sSlotMachine->slotActionPtr = 7; + sSlotMachine->state = 7; return FALSE; } -/*static */bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task) +static bool8 SlotAction_ExitYouDontHaveThreeCoinsMessage(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { sub_8197434(0, TRUE); - sSlotMachine->slotActionPtr = 5; + sSlotMachine->state = 5; } return FALSE; } -/*static */bool8 SlotAction_GivingInformation(struct Task *task) +static bool8 SlotAction_GivingInformation(struct Task *task) { if (IsInfoBoxClosed()) - sSlotMachine->slotActionPtr = 5; + sSlotMachine->state = 5; return FALSE; } // probably make all the slots roll -/*static */bool8 SlotAction9(struct Task *task) +static bool8 SlotAction9(struct Task *task) { DrawLuckyFlags(); sub_8104DA4(); @@ -1066,64 +1065,62 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue task->data[0] = 0; if (sSlotMachine->luckyFlags & LUCKY_BIAS_REELTIME) { - // enter into reel time BeginReeltime(); - sSlotMachine->slotActionPtr = 10; + sSlotMachine->state = 10; } else { sub_8104CAC(1); - sSlotMachine->slotActionPtr = 11; + sSlotMachine->state = 11; } sSlotMachine->reelIncrement = 8; if (sSlotMachine->fairRollsLeft) - // slow down the reel speed if you're really losing - sSlotMachine->reelIncrement = DrawNewReelIncrement(); + sSlotMachine->reelIncrement = SlowReelSpeed(); return FALSE; } -/*static */bool8 SlotAction10(struct Task *task) +static bool8 SlotAction10(struct Task *task) { if (IsFinalTask_RunReelTimeActions()) { sub_8104CAC(1); sSlotMachine->luckyFlags &= ~LUCKY_BIAS_REELTIME; - sSlotMachine->slotActionPtr = 11; + sSlotMachine->state = 11; } return FALSE; } -/*static */bool8 SlotAction_SetLuckySpins(struct Task *task) +static bool8 SlotAction_SetLuckySpins(struct Task *task) { if (++task->data[0] >= 30) { SetLuckySpins(); - sSlotMachine->slotActionPtr = 12; + sSlotMachine->state = 12; } return FALSE; } -/*static */bool8 SlotAction_AwaitReelStop(struct Task *task) +static bool8 SlotAction_AwaitReelStop(struct Task *task) { if (gMain.newKeys & A_BUTTON) { PlaySE(SE_JYUNI); sub_8102E1C(sSlotMachine->currReel); sub_8103C14(sSlotMachine->currReel); - sSlotMachine->slotActionPtr = 13; + sSlotMachine->state = 13; } return FALSE; } -/*static */bool8 SlotAction_WaitForAllReelsToStop(struct Task *task) +static bool8 SlotAction_WaitForAllReelsToStop(struct Task *task) { if (!IsSlotReelMoving(sSlotMachine->currReel)) { sSlotMachine->currReel++; - sSlotMachine->slotActionPtr = 12; + sSlotMachine->state = 12; if (sSlotMachine->currReel > 2) { - sSlotMachine->slotActionPtr = 14; + sSlotMachine->state = 14; } return TRUE; } @@ -1131,7 +1128,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } // once all reels have stopped -/*static */bool8 SlotAction_CheckMatches(struct Task *task) +static bool8 SlotAction_CheckMatches(struct Task *task) { sSlotMachine->luckyFlags &= (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777); CheckMatch(); @@ -1143,7 +1140,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue if (sSlotMachine->matchedSymbols) { - sSlotMachine->slotActionPtr = 15; + sSlotMachine->state = 15; AwardPayout(); sub_8103F70(); if ((sSlotMachine->netCoinLoss -= sSlotMachine->payout) < 0) @@ -1175,7 +1172,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sSlotMachine->fairRollsUsed = 0; sSlotMachine->luckyGame = 0; if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_BLUE)) - // this may be a bug, but if you get blue 777, the game becomes lucky + // this may be an error, but if you get blue 777, the game becomes lucky sSlotMachine->luckyGame = 1; } } @@ -1188,104 +1185,104 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue else { sub_8104CAC(3); - sSlotMachine->slotActionPtr = 20; + sSlotMachine->state = 20; if ((sSlotMachine->netCoinLoss += sSlotMachine->bet) > 9999) sSlotMachine->netCoinLoss = 9999; } return FALSE; } -/*static */bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task) +static bool8 SlotAction_WaitForPayoutToBeAwarded(struct Task *task) { if (IsFinalTask_RunAwardPayoutActions()) - sSlotMachine->slotActionPtr = 16; + sSlotMachine->state = 16; return FALSE; } -/*static */bool8 SlotAction_EndOfRoll(struct Task *task) +static bool8 SlotAction_EndOfRoll(struct Task *task) { if (sub_8103FA0()) { - sSlotMachine->slotActionPtr = 19; + sSlotMachine->state = 19; if (sSlotMachine->matchedSymbols & ((1 << SLOT_MACHINE_MATCHED_777_RED) | (1 << SLOT_MACHINE_MATCHED_777_BLUE))) IncrementGameStat(GAME_STAT_SLOT_JACKPOTS); if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { sSlotMachine->currReel = 0; - sSlotMachine->slotActionPtr = 9; + sSlotMachine->state = 9; } if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER)) - sSlotMachine->slotActionPtr = 17; + sSlotMachine->state = 17; if (sSlotMachine->fairRollsLeft && sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { sub_8104CAC(4); - sSlotMachine->slotActionPtr = 18; + sSlotMachine->state = 18; } } return FALSE; } -/*static */bool8 SlotAction_MatchedPower(struct Task *task) +static bool8 SlotAction_MatchedPower(struct Task *task) { if (!sub_81040C8()) { - sSlotMachine->slotActionPtr = 19; + sSlotMachine->state = 19; if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { - sSlotMachine->slotActionPtr = 9; + sSlotMachine->state = 9; if (sSlotMachine->fairRollsLeft) { sub_8104CAC(4); - sSlotMachine->slotActionPtr = 18; + sSlotMachine->state = 18; } } } return FALSE; } -/*static */bool8 SlotAction18(struct Task *task) +static bool8 SlotAction18(struct Task *task) { if (sub_8104E18()) { - sSlotMachine->slotActionPtr = 19; + sSlotMachine->state = 19; if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_REPLAY)) { - sSlotMachine->slotActionPtr = 9; + sSlotMachine->state = 9; } } return FALSE; } -/*static */bool8 SlotAction_Loop(struct Task *task) +static bool8 SlotAction_Loop(struct Task *task) { sub_8103D8C(0); sub_8103D8C(1); sub_8103D8C(2); - sSlotMachine->slotActionPtr = 2; + sSlotMachine->state = 2; return FALSE; } -/*static */bool8 SlotAction_NoMatches(struct Task *task) +static bool8 SlotAction_NoMatches(struct Task *task) { if (++task->data[1] > 64) { task->data[1] = 0; - sSlotMachine->slotActionPtr = 19; + sSlotMachine->state = 19; } return FALSE; } -/*static */bool8 SlotAction_PrintQuitTheGame(struct Task *task) +static bool8 SlotAction_PrintQuitTheGame(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_QuitTheGame, 0, 1, 0, 0); CopyWindowToVram(0, 3); CreateYesNoMenuParameterized(0x15, 7, 0x214, 0x180, 0xE, 0xF); - sSlotMachine->slotActionPtr = 22; + sSlotMachine->state = 22; return FALSE; } -/*static */bool8 SlotAction_SeeIfPlayerQuits(struct Task *task) +static bool8 SlotAction_SeeIfPlayerQuits(struct Task *task) { s8 input = Menu_ProcessInputNoWrapClearOnChoose(); if (input == 0) // player chooses to quit @@ -1295,64 +1292,64 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sub_8103D8C(1); sub_8103D8C(2); sSlotMachine->coins += sSlotMachine->bet; - sSlotMachine->slotActionPtr = 27; + sSlotMachine->state = 27; } else if (input == 1 || input == -1) // player chooses not to quit { sub_8197434(0, TRUE); - sSlotMachine->slotActionPtr = 5; + sSlotMachine->state = 5; } return FALSE; } -/*static */bool8 SlotAction_Print9999CoinMessage(struct Task *task) +static bool8 SlotAction_PrintMessage_9999Coins(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveGot9999Coins, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sSlotMachine->slotActionPtr = 24; + sSlotMachine->state = 24; return FALSE; } -/*static */bool8 SlotAction_Exit9999CoinMessage(struct Task *task) +static bool8 SlotAction_ExitMessage_9999Coins(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { sub_8197434(0, TRUE); - sSlotMachine->slotActionPtr = 5; + sSlotMachine->state = 5; } return FALSE; } -/*static */bool8 SlotAction_PrintNoMoreCoins(struct Task *task) +static bool8 SlotAction_PrintMessage_NoMoreCoins(struct Task *task) { NewMenuHelpers_DrawDialogueFrame(0, 0); AddTextPrinterParameterized(0, 1, gText_YouveRunOutOfCoins, 0, 1, 0, 0); CopyWindowToVram(0, 3); - sSlotMachine->slotActionPtr = 26; + sSlotMachine->state = 26; return FALSE; } -/*static */bool8 SlotAction_ExitNoMoreCoinsMessage(struct Task *task) +static bool8 SlotAction_ExitMessage_NoMoreCoins(struct Task *task) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { sub_8197434(0, TRUE); - sSlotMachine->slotActionPtr = 27; + sSlotMachine->state = 27; } return FALSE; } -/*static */bool8 SlotAction_EndGame(struct Task *task) +static bool8 SlotAction_EndGame(struct Task *task) { SetCoins(sSlotMachine->coins); - reportNewCoinTotal(GetCoins()); + AlertTVOfNewCointTotal(GetCoins()); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); - sSlotMachine->slotActionPtr++; + sSlotMachine->state++; return FALSE; } -/*static */bool8 SlotAction_FreeDataStructures(struct Task *task) +static bool8 SlotAction_FreeDataStructures(struct Task *task) { if (!gPaletteFade.active) { @@ -1394,7 +1391,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */void DrawLuckyFlags(void) +static void DrawLuckyFlags(void) { u8 attempts; @@ -1425,27 +1422,27 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } } -/*static */void SetLuckySpins(void) +static void SetLuckySpins(void) { sSlotMachine->luckySpinsLeft = 0; if (sSlotMachine->luckyFlags) sSlotMachine->luckySpinsLeft = 1; } -/*static */u8 GetLuckyTag(u8 luckyFlags) +static u8 GetBiasTag(u8 luckyFlags) { u8 i; for (i = 0; i < 8; i++) { if (luckyFlags & 1) - return LuckyTags[i]; + return BiasTags[i]; luckyFlags >>= 1; } return 0; } -/*static */bool8 IsThisRoundLucky(void) +static bool8 IsThisRoundLucky(void) { u8 rval = Random(); if (LuckyRoundTable[sSlotMachine->machineId][sSlotMachine->bet - 1] > rval) @@ -1453,7 +1450,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */u8 AttemptsAtLuckyflags_Top3(void) +static u8 AttemptsAtLuckyflags_Top3(void) { s16 count; @@ -1467,7 +1464,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return count; } -/*static */u8 AttemptsAtLuckyflags_NotTop3(void) +static u8 AttemptsAtLuckyflags_NotTop3(void) { s16 count; @@ -1495,7 +1492,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return count; } -/*static */u8 GetReelTimeProbability(u8 reelTimeDraw) +static u8 GetReelTimeProbability(u8 reelTimeDraw) { if (sSlotMachine->luckyGame == 0) return ReelTimeProbabilityTable_UnluckyGame[reelTimeDraw][sSlotMachine->pikaPower]; @@ -1503,7 +1500,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return ReelTimeProbabilityTable_LuckyGame[reelTimeDraw][sSlotMachine->pikaPower]; } -/*static */void GetReeltimeDraw(void) +static void GetReeltimeDraw(void) { u8 rval; s16 reelTimeDraw; @@ -1521,7 +1518,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue sSlotMachine->reelTimeDraw = reelTimeDraw; } -/*static */bool8 SkipToReeltimeAction14(u16 i) +static bool8 SkipToReeltimeAction14(u16 i) { u16 rval = Random() & 0xff; if (rval < ProbabilityTable_SkipToReeltimeAction14[i]) @@ -1530,7 +1527,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */u16 DrawNewReelIncrement(void) +static u16 SlowReelSpeed(void) { u8 i = 0; u8 rval; @@ -1554,7 +1551,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return 8; } -/*static */void CheckMatch(void) +static void CheckMatch(void) { sSlotMachine->matchedSymbols = 0; CheckMatch_CenterRow(); @@ -1564,7 +1561,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue CheckMatch_Diagonals(); } -/*static */void CheckMatch_CenterRow(void) +static void CheckMatch_CenterRow(void) { u8 c1, c2, c3, match; @@ -1580,7 +1577,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } } -/*static */void CheckMatch_TopAndBottom(void) +static void CheckMatch_TopAndBottom(void) { u8 c1, c2, c3, match; @@ -1610,7 +1607,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } } -/*static */void CheckMatch_Diagonals(void) +static void CheckMatch_Diagonals(void) { u8 c1, c2, c3, match; @@ -1642,7 +1639,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue } } -/*static */u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) +static u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) { if (c1 == c2 && c1 == c3) return sSym2Match[c1]; @@ -1655,12 +1652,12 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return SLOT_MACHINE_MATCHED_NONE; } -/*static */void AwardPayout(void) +static void AwardPayout(void) { RunAwardPayoutActions(CreateTask(RunAwardPayoutActions, 4)); } -/*static */bool8 IsFinalTask_RunAwardPayoutActions(void) +static bool8 IsFinalTask_RunAwardPayoutActions(void) { if (FindTaskIdByFunc(RunAwardPayoutActions) == TAIL_SENTINEL) return TRUE; @@ -1668,13 +1665,13 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */void RunAwardPayoutActions(u8 taskId) +static void RunAwardPayoutActions(u8 taskId) { - while (AwardPayoutActions[gTasks[taskId].data[0]](gTasks + taskId)) + while (AwardPayoutActions[gTasks[taskId].data[0]](&gTasks[taskId])) ; } -/*static */bool8 AwardPayoutAction0(struct Task *task) +static bool8 AwardPayoutAction0(struct Task *task) { if (sub_8103E38()) { @@ -1688,7 +1685,7 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } // task->data[1]: timer -/*static */bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task) +static bool8 AwardPayoutAction_GivePayoutToPlayer(struct Task *task) { if (!task->data[1]--) { @@ -1714,17 +1711,16 @@ void PlaySlotMachine(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinue return FALSE; } -/*static */bool8 AwardPayoutAction_FreeTask(struct Task *task) +static bool8 AwardPayoutAction_FreeTask(struct Task *task) { if (sub_8103E7C()) DestroyTask(FindTaskIdByFunc(RunAwardPayoutActions)); return FALSE; } -/* -Returns the tag that is posOffset below the tag at the top of reelIndex's tape -*/ -/*static */u8 GetNearbyTag_Quantized(u8 reelIndex, s16 posOffset) + +// Returns the tag that is posOffset below the tag at the top of reelIndex's tape +static u8 GetNearbyTag_Quantized(u8 reelIndex, s16 posOffset) { s16 tagIndex = (sSlotMachine->reelTagOffsets[reelIndex] + posOffset) % REEL_NUM_TAGS; if (tagIndex < 0) @@ -1732,10 +1728,9 @@ Returns the tag that is posOffset below the tag at the top of reelIndex's tape return sReelSymbols[reelIndex][tagIndex]; } -/* -Calculates GetNearbyTag_Quantized as if the reel was snapped downwards into place -/* -/*static */u8 GetNearbyTag(u8 reelIndex, s16 posOffset) + +// Calculates GetNearbyTag_Quantized as if the reel was snapped downwards into place +static u8 GetNearbyTag(u8 reelIndex, s16 posOffset) { s16 tagOffset = 0; s16 result = sSlotMachine->reelPixelOffsets[reelIndex] % 24; @@ -1744,7 +1739,7 @@ Calculates GetNearbyTag_Quantized as if the reel was snapped downwards into plac return GetNearbyTag_Quantized(reelIndex, posOffset + tagOffset); } -/*static */u8 GetNearbyReelTimeTag(s16 n) +static u8 GetNearbyReelTimeTag(s16 n) { s16 newPosition = (sSlotMachine->reeltimePosition + n) % 6; if (newPosition < 0) @@ -1752,7 +1747,7 @@ Calculates GetNearbyTag_Quantized as if the reel was snapped downwards into plac return ReelTimeTags[newPosition]; } -/*static */void AdvanceSlotReel(u8 reelIndex, s16 value) +static void AdvanceSlotReel(u8 reelIndex, s16 value) { sSlotMachine->reelPixelOffsets[reelIndex] += value; sSlotMachine->reelPixelOffsets[reelIndex] %= 504; @@ -1772,7 +1767,7 @@ s16 AdvanceSlotReelToNextTag(u8 reelIndex, s16 value) return offset; } -/*static */void AdvanceReeltimeReel(s16 value) +static void AdvanceReeltimeReel(s16 value) { sSlotMachine->reeltimePixelOffset += value; sSlotMachine->reeltimePixelOffset %= 120; @@ -1792,7 +1787,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return offset; } -/*static */void GameplayTask_StopSlotReel(void) +static void GameplayTask_StopSlotReel(void) { u8 i; for (i = 0; i < 3; i++) @@ -1804,43 +1799,43 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) } } -/*static */void ReelTasks_SetUnkTaskData(u8 reelIndex) +static void ReelTasks_SetUnkTaskData(u8 reelIndex) { gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[0] = 1; gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[14] = 1; } -/*static */void sub_8102E1C(u8 reelIndex) +static void sub_8102E1C(u8 reelIndex) { gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[0] = 2; } -/*static */bool8 IsSlotReelMoving(u8 reelIndex) +static bool8 IsSlotReelMoving(u8 reelIndex) { return gTasks[sSlotMachine->slotReelTasks[reelIndex]].data[14]; } -/*static */void RunSlotReelActions(u8 taskId) +static void RunSlotReelActions(u8 taskId) { - while (SlotReelActions[gTasks[taskId].data[0]](gTasks + taskId)) + while (SlotReelActions[gTasks[taskId].data[0]](&gTasks[taskId])) ; } // task->data[1] reel turns // task->data[15] reelIndex -/*static */bool8 SlotReelAction_StayStill(struct Task *task) +static bool8 SlotReelAction_StayStill(struct Task *task) { return FALSE; } -/*static */bool8 SlotReelAction_Spin(struct Task *task) +static bool8 SlotReelAction_Spin(struct Task *task) { AdvanceSlotReel(task->data[15], sSlotMachine->reelIncrement); return FALSE; } // As in previous generations, the slot machine often doesn't stop exactly when you press stop -/*static */bool8 SlotReelAction_DecideWhereToStop(struct Task *task) +static bool8 SlotReelAction_DecideWhereToStop(struct Task *task) { task->data[0]++; // initialize data for that reel --> these will be changed if biasTags can be lined up @@ -1857,7 +1852,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) } // go to next tag and then do any additional turns -/*static */bool8 SlotReelAction_MoveToStop(struct Task *task) +static bool8 SlotReelAction_MoveToStop(struct Task *task) { u16 reelStopShocks[ARRAY_COUNT(ReelStopShocks)]; s16 reelPixelPos; @@ -1882,7 +1877,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) } // make selected tag oscillate before it becomes still -/*static */bool8 SlotReelAction_OscillatingStop(struct Task *task) +static bool8 SlotReelAction_OscillatingStop(struct Task *task) { sSlotMachine->reelPixelOffsetsWhileStopping[task->data[15]] = task->data[1]; task->data[1] = -task->data[1]; @@ -1898,9 +1893,9 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/*static */bool8 DecideReelTurns_BiasTag_Reel1(void) +static bool8 DecideReelTurns_BiasTag_Reel1(void) { - u8 tag2 = GetLuckyTag(sSlotMachine->luckyFlags); + u8 tag2 = GetBiasTag(sSlotMachine->luckyFlags); u8 tag1 = tag2; if (sSlotMachine->luckyFlags & (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777)) { @@ -1910,7 +1905,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return DecideReelTurns_BiasTag_Reel1_Bets[sSlotMachine->bet - 1](tag1, tag2); } -/*static */bool8 AreTagsAtPosition_Reel1(s16 pos, u8 tag1, u8 tag2) +static bool8 AreTagsAtPosition_Reel1(s16 pos, u8 tag1, u8 tag2) { u8 tag = GetNearbyTag(0, pos); if (tag == tag1 || tag == tag2) @@ -1921,7 +1916,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/*static */bool8 AreCherriesOnScreen_Reel1(s16 offsetFromCenter) +static bool8 AreCherriesOnScreen_Reel1(s16 offsetFromCenter) { if (GetNearbyTag(0, 1 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetNearbyTag(0, 2 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY || GetNearbyTag(0, 3 - offsetFromCenter) == SLOT_MACHINE_TAG_CHERRY) return TRUE; @@ -1929,7 +1924,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/*static */bool8 IsBiasTowardsCherryOr7s(void) +static bool8 IsBiasTowardsCherryOr7s(void) { if (sSlotMachine->luckyFlags & (LUCKY_BIAS_777 | LUCKY_BIAS_MIXED_777 | LUCKY_BIAS_CHERRY)) return TRUE; @@ -1937,7 +1932,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8 tag1, u8 tag2) +static bool8 DecideReelTurns_BiasTag_Reel1_Bet1(u8 tag1, u8 tag2) { s16 i; @@ -1954,7 +1949,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/*static */bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 tag1, u8 tag2) +static bool8 DecideReelTurns_BiasTag_Reel1_Bet2or3(u8 tag1, u8 tag2) { s16 i; bool8 biased = IsBiasTowardsCherryOr7s(); @@ -2005,12 +2000,12 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/*static */bool8 DecideReelTurns_BiasTag_Reel2(void) +static bool8 DecideReelTurns_BiasTag_Reel2(void) { return DecideReelTurns_BiasTag_Reel2_Bets[sSlotMachine->bet - 1](); } -/*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void) +static bool8 DecideReelTurns_BiasTag_Reel2_Bet1or2(void) { s16 i; s16 biasTagLocation_Reel1 = sSlotMachine->winnerRows[0]; @@ -2028,7 +2023,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/*static */bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void) +static bool8 DecideReelTurns_BiasTag_Reel2_Bet3(void) { s16 i; // if biasTag appears in the same row within 4 turns... @@ -2067,7 +2062,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/*static */bool8 DecideReelTurns_BiasTag_Reel3(void) +static bool8 DecideReelTurns_BiasTag_Reel3(void) { u8 biasTag = sSlotMachine->biasTag; if (sSlotMachine->luckyFlags & LUCKY_BIAS_MIXED_777) @@ -2081,7 +2076,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return DecideReelTurns_BiasTag_Reel3_Bets[sSlotMachine->bet - 1](biasTag); } -/*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 biasTag) +static bool8 DecideReelTurns_BiasTag_Reel3_Bet1or2(u8 biasTag) { s16 i; s16 biasTagLocation_Reel2 = sSlotMachine->winnerRows[1]; @@ -2099,7 +2094,7 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/*static */bool8 DecideReelTurns_BiasTag_Reel3_Bet3(u8 biasTag) +static bool8 DecideReelTurns_BiasTag_Reel3_Bet3(u8 biasTag) { s16 i; s16 biasTagFinalPos; @@ -2125,10 +2120,9 @@ s16 AdvanceReeltimeReelToNextTag(s16 value) return FALSE; } -/* -Advance until there are no cherries on screen in reel 1 -*/ -/*static */void DecideReelTurns_NoBiasTag_Reel1(void) +// Advance until there are no cherries on screen in reel 1 + +static void DecideReelTurns_NoBiasTag_Reel1(void) { s16 i = 0; @@ -2137,7 +2131,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->reelExtraTurns[0] = i; } -/*static */bool8 IsBiasTag777_SwitchColor(u8 *biasTagPtr) +static bool8 IsBiasTag777_SwitchColor(u8 *biasTagPtr) { if (*biasTagPtr == SLOT_MACHINE_TAG_7_RED) { @@ -2152,13 +2146,13 @@ Advance until there are no cherries on screen in reel 1 return FALSE; } -/*static */void DecideReelTurns_NoBiasTag_Reel2(void) +static void DecideReelTurns_NoBiasTag_Reel2(void) { DecideReelTurns_NoBiasTag_Reel2_Bets[sSlotMachine->bet - 1](); } // only does stuff if the biasTag is one of the 7's, plus other conditions -/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet1(void) +static void DecideReelTurns_NoBiasTag_Reel2_Bet1(void) { if (sSlotMachine->winnerRows[0] != 0 && sSlotMachine->luckyFlags & LUCKY_BIAS_777) { @@ -2182,7 +2176,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet2(void) +static void DecideReelTurns_NoBiasTag_Reel2_Bet2(void) { if (sSlotMachine->winnerRows[0] != 0 && sSlotMachine->luckyFlags & LUCKY_BIAS_777) { @@ -2206,7 +2200,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void DecideReelTurns_NoBiasTag_Reel2_Bet3(void) +static void DecideReelTurns_NoBiasTag_Reel2_Bet3(void) { s16 i; s16 j; @@ -2275,7 +2269,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */bool8 AreTagsMixed77(u8 tag1, u8 tag2) +static bool8 AreTagsMixed77(u8 tag1, u8 tag2) { if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED)) return TRUE; @@ -2283,7 +2277,7 @@ Advance until there are no cherries on screen in reel 1 return FALSE; } -/*static */bool8 AreTagsMixed777(u8 tag1, u8 tag2, u8 tag3) +static bool8 AreTagsMixed777(u8 tag1, u8 tag2, u8 tag3) { if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE)) @@ -2292,7 +2286,7 @@ Advance until there are no cherries on screen in reel 1 return FALSE; } -/*static */bool8 TagsDontMatchOrHaveAny7s(u8 tag1, u8 tag2, u8 tag3) +static bool8 TagsDontMatchOrHaveAny7s(u8 tag1, u8 tag2, u8 tag3) { if ((tag1 == SLOT_MACHINE_TAG_7_RED && tag2 == SLOT_MACHINE_TAG_7_BLUE && tag3 == SLOT_MACHINE_TAG_7_RED) || (tag1 == SLOT_MACHINE_TAG_7_BLUE && tag2 == SLOT_MACHINE_TAG_7_RED && tag3 == SLOT_MACHINE_TAG_7_BLUE) || @@ -2305,12 +2299,12 @@ Advance until there are no cherries on screen in reel 1 return TRUE; } -/*static */void DecideReelTurns_NoBiasTag_Reel3(void) +static void DecideReelTurns_NoBiasTag_Reel3(void) { DecideReelTurns_NoBiasTag_Reel3_Bets[sSlotMachine->bet - 1](); } -/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet1(void) +static void DecideReelTurns_NoBiasTag_Reel3_Bet1(void) { s16 i = 0; u8 tag1 = GetNearbyTag(0, 2 - sSlotMachine->reelExtraTurns[0]); @@ -2353,7 +2347,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->reelExtraTurns[2] = i; } -/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet2(void) +static void DecideReelTurns_NoBiasTag_Reel3_Bet2(void) { s16 extraTurns = 0; s16 i; @@ -2403,7 +2397,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->reelExtraTurns[2] = extraTurns; } -/*static */void DecideReelTurns_NoBiasTag_Reel3_Bet3(void) +static void DecideReelTurns_NoBiasTag_Reel3_Bet3(void) { u8 tag1; u8 tag2; @@ -2453,62 +2447,62 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8103C14(u8 a0) +static void sub_8103C14(u8 a0) { u8 taskId = CreateTask(sub_8103C48, 5); gTasks[taskId].data[15] = a0; sub_8103C48(taskId); } -/*static */void sub_8103C48(u8 taskId) +static void sub_8103C48(u8 taskId) { - gUnknown_083ECBA0[gTasks[taskId].data[0]](gTasks + taskId, taskId); + gUnknown_083ECBA0[gTasks[taskId].data[0]](&gTasks[taskId], taskId); } -/*static */void sub_8103C78(struct Task *task, u8 taskId) +static void sub_8103C78(struct Task *task, u8 taskId) { sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x62, 0x63, 0x72, 0x73); task->data[0]++; } -/*static */void sub_8103CAC(struct Task *task, u8 taskId) +static void sub_8103CAC(struct Task *task, u8 taskId) { if (++task->data[1] > 11) task->data[0]++; } -/*static */void sub_8103CC8(struct Task *task, u8 taskId) +static void sub_8103CC8(struct Task *task, u8 taskId) { sub_81065A8(gUnknown_083ECBAC[task->data[15]], 0x42, 0x43, 0x52, 0x53); DestroyTask(taskId); } -/*static */void LoadLightedTile(u8 tileId) +static void LoadLitTile(u8 tileId) { LoadPalette(gUnknown_083EDD08[tileId], gUnknown_083EDD30[tileId], 2); } -/*static */void sub_8103D28(u8 a0) +static void sub_8103D28(u8 a0) { LoadPalette(gUnknown_083EDD1C[a0], gUnknown_083EDD30[a0], 2); } // light up the value bet by the player -/*static */void LoadBetTiles(u8 betVal) +static void LoadBetTiles(u8 betVal) { u8 i; for (i = 0; i < gNumberBettingTiles[betVal]; i++) - LoadLightedTile(gBettingTilesId[betVal][i]); + LoadLitTile(gBettingTilesId[betVal][i]); } -/*static */void sub_8103D8C(u8 a0) +static void sub_8103D8C(u8 a0) { u8 i; for (i = 0; i < gNumberBettingTiles[a0]; i++) sub_8103D28(gBettingTilesId[a0][i]); } -/*static */void sub_8103DC8(void) +static void sub_8103DC8(void) { u8 i; for (i = 0; i < 5; i++) @@ -2519,7 +2513,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8103E04(u8 a0) +static void sub_8103E04(u8 a0) { struct Sprite *sprite = gSprites + sSlotMachine->unk44[a0]; sprite->data[1] = 1; @@ -2531,7 +2525,7 @@ Advance until there are no cherries on screen in reel 1 } // something with payout digits -/*static */bool8 sub_8103E38(void) +static bool8 sub_8103E38(void) { u8 i; for (i = 0; i < 5; i++) @@ -2543,7 +2537,7 @@ Advance until there are no cherries on screen in reel 1 return TRUE; } -/*static */bool8 sub_8103E7C(void) +static bool8 sub_8103E7C(void) { u8 i; for (i = 0; i < 5; i++) @@ -2554,7 +2548,7 @@ Advance until there are no cherries on screen in reel 1 return TRUE; } -/*static */bool8 sub_8103EAC(u8 spriteId) +static bool8 sub_8103EAC(u8 spriteId) { struct Sprite *sprite = gSprites + spriteId; if (!sprite->data[1]) @@ -2564,7 +2558,7 @@ Advance until there are no cherries on screen in reel 1 return sprite->data[7]; } -/*static */void sub_8103EE4(struct Sprite *sprite) +static void sub_8103EE4(struct Sprite *sprite) { s16 r4; if (sprite->data[1]) @@ -2593,14 +2587,14 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8103F70(void) +static void sub_8103F70(void) { u8 taskId = CreateTask(sub_8103FE8_, 6); gTasks[taskId].data[3] = 1; sub_8103FE8_(taskId); } -/*static */bool8 sub_8103FA0(void) +static bool8 sub_8103FA0(void) { u8 taskId = FindTaskIdByFunc(sub_8103FE8_); if (!gTasks[taskId].data[2]) @@ -2612,9 +2606,9 @@ Advance until there are no cherries on screen in reel 1 return FALSE; } -/*static */void sub_8103FE8_(u8 taskId) +static void sub_8103FE8_(u8 taskId) { - struct Task *task = gTasks + taskId; + struct Task *task = &gTasks[taskId]; if (!task->data[1]--) { task->data[1] = 4; @@ -2625,49 +2619,49 @@ Advance until there are no cherries on screen in reel 1 LoadPalette(gUnknown_083EDDA0[task->data[2]], 0x10, 0x20); } -/*static */void GameplayTasks_PikaPower(void) +static void GameplayTask_PikaPower(void) { sSlotMachine->unkTaskPointer3E = CreateTask(sub_81040E8, 8); } -/*static */void DisplayPikaPower(u8 pikaPower) +static void DisplayPikaPower(u8 pikaPower) { - struct Task *task = gTasks + sSlotMachine->unkTaskPointer3E; + struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3E]; ClearTaskDataFields_2orHigher(task); task->data[0] = 1; task->data[1]++; task->data[15] = 1; // points to a reelIndex } -/*static */void sub_8104098(void) +static void sub_8104098(void) { - struct Task *task = gTasks + sSlotMachine->unkTaskPointer3E; + struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3E]; ClearTaskDataFields_2orHigher(task); task->data[0] = 3; task->data[15] = 1; // points to a reelIndex } -/*static */bool8 sub_81040C8(void) +static bool8 sub_81040C8(void) { return gTasks[sSlotMachine->unkTaskPointer3E].data[15]; } -/*static */void sub_81040E8(u8 taskId) +static void sub_81040E8(u8 taskId) { - gUnknown_083ECBB4[gTasks[taskId].data[0]](gTasks + taskId); + gUnknown_083ECBB4[gTasks[taskId].data[0]](&gTasks[taskId]); } -/*static */void nullsub_68(struct Task *task) +static void nullsub_68(struct Task *task) { } -/*static */void sub_810411C(struct Task *task) +static void sub_810411C(struct Task *task) { task->data[2] = sub_8105B1C((task->data[1] << 3) + 20, 20); task->data[0]++; } -/*static */void sub_8104144(struct Task *task) +static void sub_8104144(struct Task *task) { if (gSprites[task->data[2]].data[7]) { @@ -2686,7 +2680,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_81041AC(struct Task *task) +static void sub_81041AC(struct Task *task) { s16 r5 = task->data[1] + 2; s16 r3 = 0; @@ -2710,7 +2704,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ClearTaskDataFields_2orHigher(struct Task *task) +static void ClearTaskDataFields_2orHigher(struct Task *task) { u8 i; @@ -2719,7 +2713,7 @@ Advance until there are no cherries on screen in reel 1 } // possibly load tiles for pika power meter -/*static */void sub_810423C(u8 pikaPower) +static void sub_810423C(u8 pikaPower) { s16 i; s16 r3 = 0, r1 = 0; @@ -2747,29 +2741,29 @@ Advance until there are no cherries on screen in reel 1 gTasks[sSlotMachine->unkTaskPointer3E].data[1] = pikaPower; } -/*static */void BeginReeltime(void) +static void BeginReeltime(void) { u8 taskId = CreateTask(RunReeltimeActions, 7); RunReeltimeActions(taskId); } -/*static */bool8 IsFinalTask_RunReelTimeActions(void) +static bool8 IsFinalTask_RunReelTimeActions(void) { if (FindTaskIdByFunc(RunReeltimeActions) == TAIL_SENTINEL) return TRUE; return FALSE; } -/*static */void RunReeltimeActions(u8 taskId) +static void RunReeltimeActions(u8 taskId) { // task.data[0] points to which ReelTimeAction to do, and starts at 0 // task.data[1] has something to do with the threshold // task.data[4] says how many pixels to advance the reel // task.data[5] is a timer - ReeltimeActions[gTasks[taskId].data[0]](gTasks + taskId); + ReeltimeActions[gTasks[taskId].data[0]](&gTasks[taskId]); } -/*static */void ReeltimeAction0(struct Task *task) +static void ReeltimeAction0(struct Task *task) { sSlotMachine->fairRollsLeft = 0; sSlotMachine->reeltimePixelOffset = 0; @@ -2793,7 +2787,7 @@ Advance until there are no cherries on screen in reel 1 PlayNewMapMusic(MUS_BD_TIME); } -/*static */void ReeltimeAction1(struct Task *task) +static void ReeltimeAction1(struct Task *task) { s16 r3; gSpriteCoordOffsetX -= 8; @@ -2814,7 +2808,7 @@ Advance until there are no cherries on screen in reel 1 AdvanceReeltimeReel(task->data[4] >> 8); } -/*static */void ReeltimeAction2(struct Task *task) +static void ReeltimeAction2(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); if (++task->data[5] >= 60) @@ -2825,7 +2819,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReeltimeAction3(struct Task *task) +static void ReeltimeAction3(struct Task *task) { int r5; u8 sp0[ARRAY_COUNT(gUnknown_085A75C0)]; @@ -2852,7 +2846,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReeltimeAction4(struct Task *task) +static void ReeltimeAction4(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); if (++task->data[5] >= 80) @@ -2864,7 +2858,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReeltimeAction5(struct Task *task) +static void ReeltimeAction5(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x80; @@ -2875,7 +2869,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReeltimeAction6(struct Task *task) +static void ReeltimeAction6(struct Task *task) { AdvanceReeltimeReel(task->data[4] >> 8); task->data[4] = (u8)task->data[4] + 0x40; @@ -2899,7 +2893,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReelTimeAction_LandOnOutcome(struct Task *task) +static void ReelTimeAction_LandOnOutcome(struct Task *task) { s16 reeltimePixelOffset = sSlotMachine->reeltimePixelOffset % 20; if (reeltimePixelOffset) @@ -2920,7 +2914,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReeltimeAction8(struct Task *task) +static void ReeltimeAction8(struct Task *task) { if (++task->data[4] >= 60) { @@ -2949,13 +2943,13 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReeltimeAction9(struct Task *task) +static void ReeltimeAction9(struct Task *task) { if ((task->data[4] == 0 || --task->data[4] == 0) && !sub_81040C8()) task->data[0]++; } -/*static */void ReeltimeAction10(struct Task *task) +static void ReeltimeAction10(struct Task *task) { s16 r4; gSpriteCoordOffsetX -= 8; @@ -2969,7 +2963,7 @@ Advance until there are no cherries on screen in reel 1 task->data[0]++; } -/*static */void ReeltimeAction11(struct Task *task) +static void ReeltimeAction11(struct Task *task) { sSlotMachine->fairRollsUsed = 0; sSlotMachine->fairRollsLeft = sSlotMachine->reelTimeDraw; @@ -2987,14 +2981,14 @@ Advance until there are no cherries on screen in reel 1 else { sub_8104CAC(4); - task->data[1] = DrawNewReelIncrement(); + task->data[1] = SlowReelSpeed(); task->data[2] = 0; task->data[3] = 0; task->data[0]++; } } -/*static */void ReeltimeAction12(struct Task *task) +static void ReeltimeAction12(struct Task *task) { if (sSlotMachine->reelIncrement == task->data[1]) task->data[0]++; @@ -3002,13 +2996,13 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->reelIncrement >>= 1; } -/*static */void ReeltimeAction13(struct Task *task) +static void ReeltimeAction13(struct Task *task) { if (sub_8104E18()) DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); } -/*static */void ReeltimeAction14(struct Task *task) +static void ReeltimeAction14(struct Task *task) { sub_81054B8(); sub_81056C0(); @@ -3024,7 +3018,7 @@ Advance until there are no cherries on screen in reel 1 PlaySE(SE_W153); } -/*static */void ReeltimeAction15(struct Task *task) +static void ReeltimeAction15(struct Task *task) { gSpriteCoordOffsetY = task->data[4]; SetGpuReg(REG_OFFSET_BG1VOFS, task->data[4]); @@ -3044,7 +3038,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReeltimeAction16(struct Task *task) +static void ReeltimeAction16(struct Task *task) { gSpriteCoordOffsetY = 0; SetGpuReg(REG_OFFSET_BG1VOFS, 0); @@ -3055,7 +3049,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void ReeltimeAction17(struct Task *task) +static void ReeltimeAction17(struct Task *task) { gSpriteCoordOffsetX = 0; SetGpuReg(REG_OFFSET_BG1HOFS, 0); @@ -3067,7 +3061,7 @@ Advance until there are no cherries on screen in reel 1 DestroyTask(FindTaskIdByFunc(RunReeltimeActions)); } -/*static */void sub_8104A40(s16 a0, s16 a1) +static void sub_8104A40(s16 a0, s16 a1) { s16 i; @@ -3077,7 +3071,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8104A88(s16 a0) +static void sub_8104A88(s16 a0) { u8 i; @@ -3087,14 +3081,14 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void OpenInfoBox(u8 seemsUnused) +static void OpenInfoBox(u8 seemsUnused) { u8 taskId = CreateTask(RunInfoBoxActions, 1); gTasks[taskId].data[1] = seemsUnused; RunInfoBoxActions(taskId); } -/*static */bool8 IsInfoBoxClosed(void) +static bool8 IsInfoBoxClosed(void) { if (FindTaskIdByFunc(RunInfoBoxActions) == 0xFF) return TRUE; @@ -3102,24 +3096,24 @@ Advance until there are no cherries on screen in reel 1 return FALSE; } -/*static */void RunInfoBoxActions(u8 taskId) +static void RunInfoBoxActions(u8 taskId) { - InfoBoxActions[gTasks[taskId].data[0]](gTasks + taskId); + InfoBoxActions[gTasks[taskId].data[0]](&gTasks[taskId]); } -/*static */void InfoBox_FadeIn(struct Task *task) +static void InfoBox_FadeIn(struct Task *task) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); task->data[0]++; } -/*static */void InfoBox_WaitForFade(struct Task *task) +static void InfoBox_WaitForFade(struct Task *task) { if (!gPaletteFade.active) task->data[0]++; } -/*static */void InfoBox_8104B80(struct Task *task) +static void InfoBox_8104B80(struct Task *task) { sub_8104DA4(); sub_81065DC(); @@ -3129,15 +3123,15 @@ Advance until there are no cherries on screen in reel 1 task->data[0]++; } -/*static */void InfoBox_AddText(struct Task *task) +static void InfoBox_AddText(struct Task *task) { - AddTextPrinterParameterized3(1, 1, 2, 5, gColors_ReelTimeHelp, 0, gText_ReelTimeHelp); + AddTextPrinterParameterized3(1, 1, 2, 5, gColors_ReeltimeHelp, 0, gText_ReelTimeHelp); CopyWindowToVram(1, 3); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); task->data[0]++; } -/*static */void InfoBox_AwaitPlayerInput(struct Task *task) +static void InfoBox_AwaitPlayerInput(struct Task *task) { if (gMain.newKeys & (B_BUTTON | SELECT_BUTTON)) { @@ -3150,52 +3144,52 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void InfoBox_812DE14(struct Task *task) +static void InfoBox_812DE14(struct Task *task) { sub_812F968(); ShowBg(3); task->data[0]++; } -/*static */void InfoBox_812DE30(struct Task *task) +static void InfoBox_812DE30(struct Task *task) { sub_8104CAC(task->data[1]); task->data[0]++; } -/*static */void InfoBox_8104BFC(struct Task *task) +static void InfoBox_8104BFC(struct Task *task) { sub_810423C(sSlotMachine->pikaPower); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); task->data[0]++; } -/*static */void InfoBox_FreeTask(struct Task *task) +static void InfoBox_FreeTask(struct Task *task) { DestroyTask(FindTaskIdByFunc(RunInfoBoxActions)); } -/*static */void sub_8104C5C(void) +static void sub_8104C5C(void) { u8 i; struct Task *task; i = CreateTask(sub_8104E74_, 3); sSlotMachine->unkTaskPointer3D = i; - task = gTasks + i; + task = &gTasks[i]; task->data[1] = -1; for (i = 4; i < 16; i++) task->data[i] = MAX_SPRITES; } // possibly initialize each wheel -/*static */void sub_8104CAC(u8 arg0) +static void sub_8104CAC(u8 arg0) { u8 i; struct Task *task; sub_8104DA4(); - task = gTasks + sSlotMachine->unkTaskPointer3D; + task = &gTasks[sSlotMachine->unkTaskPointer3D]; task->data[1] = arg0; for (i = 0; gUnknown_083ED048[arg0][i].unk00 != 0xFF; i++) @@ -3210,10 +3204,10 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) +static void sub_8104D30(u8 a0, SpriteCallback a1, s16 a2, s16 a3, s16 a4) { u8 i; - struct Task *task = gTasks + sSlotMachine->unkTaskPointer3D; + struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3D]; for (i = 4; i < 16; i++) { if (task->data[i] == MAX_SPRITES) @@ -3224,10 +3218,10 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8104DA4(void) +static void sub_8104DA4(void) { u8 i; - struct Task *task = gTasks + sSlotMachine->unkTaskPointer3D; + struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3D]; if ((u16)task->data[1] != 0xFFFF) gUnknown_083ED064[task->data[1]](); for (i = 4; i < 16; i++) @@ -3240,10 +3234,10 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */bool8 sub_8104E18(void) +static bool8 sub_8104E18(void) { u8 i; - struct Task *task = gTasks + sSlotMachine->unkTaskPointer3D; + struct Task *task = &gTasks[sSlotMachine->unkTaskPointer3D]; for (i = 4; i < 16; i++) { if (task->data[i] != MAX_SPRITES) @@ -3255,16 +3249,16 @@ Advance until there are no cherries on screen in reel 1 return TRUE; } -/*static */void sub_8104E74_(u8 taskId) +static void sub_8104E74_(u8 taskId) { - gUnknown_083ECC54[gTasks[taskId].data[0]](gTasks + taskId); + gUnknown_083ECC54[gTasks[taskId].data[0]](&gTasks[taskId]); } -/*static */void nullsub_69(struct Task *task) +static void nullsub_69(struct Task *task) { } -/*static */void sub_8104EA8(void) +static void sub_8104EA8(void) { s16 i; s16 j; @@ -3291,7 +3285,7 @@ Advance until there are no cherries on screen in reel 1 SetSpriteSheetFrameTileNum(sprite); } -/*static */void sub_8104F8C(void) +static void sub_8104F8C(void) { s16 i; s16 x; @@ -3302,7 +3296,7 @@ Advance until there are no cherries on screen in reel 1 sub_8104FF4(x, 23, 1, i); } -/*static */void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3) +static void sub_8104FF4(s16 x, s16 y, u8 a2, s16 a3) { struct Sprite *sprite = gSprites + CreateSprite(&gSpriteTemplate_83ED42C, x, y, 13); sprite->oam.priority = 2; @@ -3328,14 +3322,14 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_81050C4(void) +static void sub_81050C4(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED444, 0x58, 0x48, 15); gSprites[spriteId].oam.priority = 3; SetSubspriteTables(gSprites + spriteId, gSubspriteTables_83ED704); } -/*static */void sub_8105100(void) +static void sub_8105100(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; @@ -3361,7 +3355,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->reelTimeSprite3F = spriteId; } -/*static */void sub_810514C(void) +static void sub_810514C(void) { DestroySprite(gSprites + sSlotMachine->reelTimeSprite3F); if (gUnknown_0203AAE4 != NULL) @@ -3379,7 +3373,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_81051C0(void) +static void sub_81051C0(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; @@ -3414,7 +3408,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->unk49[1] = spriteId; } -/*static */void sub_8105284_(void) +static void sub_8105284_(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; @@ -3435,7 +3429,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->unk42 = spriteId; } -/*static */void sub_81052EC(void) +static void sub_81052EC(void) { u8 i; s16 r5; @@ -3458,7 +3452,7 @@ Advance until there are no cherries on screen in reel 1 StartSpriteAnimIfDifferent(sprite, GetNearbyReelTimeTag(r0 / 20)); } -/*static */void sub_81053A0(void) +static void sub_81053A0(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4D4, 0x170, 0x64, 9); struct Sprite *sprite = &gSprites[spriteId]; @@ -3475,7 +3469,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->unk4E[1] = spriteId; } -/*static */void sub_810545C(void) +static void sub_810545C(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED4EC, 0x170, 0x4c, 11); struct Sprite *sprite = &gSprites[spriteId]; @@ -3485,7 +3479,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->unk40 = spriteId; } -/*static */void sub_81054B8(void) +static void sub_81054B8(void) { u8 i; @@ -3502,7 +3496,7 @@ Advance until there are no cherries on screen in reel 1 DestroySprite(&gSprites[sSlotMachine->unk4B[i]]); } -/*static */void sub_8105524(void) +static void sub_8105524(void) { u8 i; @@ -3510,7 +3504,7 @@ Advance until there are no cherries on screen in reel 1 DestroySprite(&gSprites[sSlotMachine->unk4E[i]]); } -/*static */void sub_8105554(void) +static void sub_8105554(void) { DestroySprite(&gSprites[sSlotMachine->unk42]); if (gUnknown_0203AAF0 != NULL) @@ -3518,7 +3512,7 @@ Advance until there are no cherries on screen in reel 1 } // TODO: check if this is true -/*static */void CreateReelTimeSprites1(void) +static void CreateReelTimeSprites1(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED504, 0x98, 0x20, 5); struct Sprite *sprite = &gSprites[spriteId]; @@ -3561,13 +3555,13 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8105688(s16 a0) +static void sub_8105688(s16 a0) { gSprites[sSlotMachine->reelTimeSprites1[0]].data[7] = a0; gSprites[sSlotMachine->reelTimeSprites1[1]].data[7] = a0; } -/*static */void sub_81056C0(void) +static void sub_81056C0(void) { u8 i; @@ -3575,7 +3569,7 @@ Advance until there are no cherries on screen in reel 1 DestroySprite(&gSprites[sSlotMachine->reelTimeSprites1[i]]); } -/*static */void CreateReelTimeSprite2(void) +static void CreateReelTimeSprite2(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED51C, 0x48, 0x50, 3); gSprites[spriteId].oam.priority = 1; @@ -3603,12 +3597,12 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_81057E8(s16 a0) +static void sub_81057E8(s16 a0) { gSprites[sSlotMachine->reelTimeSprites2[0]].data[7] = a0; } -/*static */void sub_8105804(void) +static void sub_8105804(void) { u8 i; MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(7) << 4) + 0x103, 0, 0, 0); @@ -3616,7 +3610,7 @@ Advance until there are no cherries on screen in reel 1 DestroySprite(&gSprites[sSlotMachine->reelTimeSprites2[i]]); } -/*static */void sub_8105854(void) +static void sub_8105854(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED534, 0xa8, 0x50, 6); gSprites[spriteId].oam.priority = 1; @@ -3628,12 +3622,12 @@ Advance until there are no cherries on screen in reel 1 sprite->pos2.y = gSpriteCoordOffsetY; } -/*static */void sub_81058A0(void) +static void sub_81058A0(void) { DestroySprite(&gSprites[sSlotMachine->unk41]); } -/*static */void sub_81058C4(void) +static void sub_81058C4(void) { u8 i; u16 sp[] = {0x0, 0x40, 0x80, 0xC0}; @@ -3666,7 +3660,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_81059B8(void) +static void sub_81059B8(void) { u8 i; for (i = 0; i < 4; i++) @@ -3675,7 +3669,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_81059E8(void) +static void sub_81059E8(void) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED564, 0xa8, 0x3c, 8); struct Sprite *sprite = &gSprites[spriteId]; @@ -3712,19 +3706,19 @@ Advance until there are no cherries on screen in reel 1 sprite->pos2.y -= (sprite->data[1] >> 8); } -/*static */u8 sub_8105ACC(void) +static u8 sub_8105ACC(void) { return gSprites[sSlotMachine->unk43].data[7]; } -/*static */void sub_8105AEC(void) +static void sub_8105AEC(void) { struct Sprite *sprite = &gSprites[sSlotMachine->unk43]; FreeOamMatrix(sprite->oam.matrixNum); DestroySprite(sprite); } -/*static */u8 sub_8105B1C(s16 x, s16 y) +static u8 sub_8105B1C(s16 x, s16 y) { u8 spriteId = CreateSprite(&gSpriteTemplate_83ED6CC, x, y, 12); struct Sprite *sprite = &gSprites[spriteId]; @@ -3740,19 +3734,19 @@ Advance until there are no cherries on screen in reel 1 sprite->data[7] = 1; } -/*static */void sub_8105B88(u8 spriteId) +static void sub_8105B88(u8 spriteId) { struct Sprite *sprite = &gSprites[spriteId]; FreeOamMatrix(sprite->oam.matrixNum); DestroySprite(sprite); } -/*static */u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2) +static u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2) { return sub_8105BF8(templateIdx, gUnknown_083ECF0C[cbAndCoordsIdx], gUnknown_083ECE7E[cbAndCoordsIdx][0], gUnknown_083ECE7E[cbAndCoordsIdx][1], a2); } -/*static */u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) +static u8 sub_8105BF8(u8 templateIdx, SpriteCallback callback, s16 x, s16 y, s16 a4) { struct SpriteTemplate spriteTemplate; u8 spriteId; @@ -3771,12 +3765,12 @@ Advance until there are no cherries on screen in reel 1 return spriteId; } -/*static */void sub_8105C64(struct Sprite *sprite) +static void sub_8105C64(struct Sprite *sprite) { sprite->data[7] = 0; } -/*static */void sub_8105C6C(struct Sprite *sprite) +static void sub_8105C6C(struct Sprite *sprite) { s16 sp0[] = {4, -4, 4, -4}; s16 sp8[] = {4, 4, -4, -4}; @@ -3795,26 +3789,26 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8105CF0(struct Sprite *sprite) +static void sub_8105CF0(struct Sprite *sprite) { sprite->hFlip = TRUE; sub_8105C6C(sprite); } -/*static */void sub_8105D08(struct Sprite *sprite) +static void sub_8105D08(struct Sprite *sprite) { sprite->vFlip = TRUE; sub_8105C6C(sprite); } -/*static */void sub_8105D20(struct Sprite *sprite) +static void sub_8105D20(struct Sprite *sprite) { sprite->hFlip = TRUE; sprite->vFlip = TRUE; sub_8105C6C(sprite); } -/*static */void sub_8105D3C(struct Sprite *sprite) +static void sub_8105D3C(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3841,7 +3835,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8105DA4(struct Sprite *sprite) +static void sub_8105DA4(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3868,7 +3862,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8105E08(struct Sprite *sprite) +static void sub_8105E08(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3906,7 +3900,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8105EB4(struct Sprite *sprite) +static void sub_8105EB4(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3946,7 +3940,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8105F54(struct Sprite *sprite) +static void sub_8105F54(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -3966,7 +3960,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8105F9C(struct Sprite *sprite) +static void sub_8105F9C(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -4000,7 +3994,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_8106058(struct Sprite *sprite) +static void sub_8106058(struct Sprite *sprite) { if (sprite->data[1] < 3) { @@ -4024,7 +4018,7 @@ Advance until there are no cherries on screen in reel 1 sprite->data[7] = 0; } -/*static */void sub_81060FC(struct Sprite *sprite) +static void sub_81060FC(struct Sprite *sprite) { s16 sp00[] = {0, -40, 0, 0, 48, 0, 24, 0}; s16 sp10[] = {-32, 0, -32, -48, 0, -48, 0, -48}; @@ -4059,7 +4053,7 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void sub_81061C8(struct Sprite *sprite) +static void sub_81061C8(struct Sprite *sprite) { s16 sp0[] = {160, 192, 224, 104, 80, 64, 48, 24}; @@ -4074,7 +4068,7 @@ Advance until there are no cherries on screen in reel 1 sprite->data[1]--; } -/*static */void sub_8106230(struct Sprite *sprite) +static void sub_8106230(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -4128,21 +4122,21 @@ Advance until there are no cherries on screen in reel 1 } } -/*static */void nullsub_70(void) +static void nullsub_70(void) { } -/*static */void sub_8106364(void) +static void sub_8106364(void) { SetGpuReg(REG_OFFSET_MOSAIC, 0); } -/*static */void sub_8106370(void) +static void sub_8106370(void) { LoadPalette(gUnknown_083EDE20, (IndexOfSpritePaletteTag(6) << 4) + 0x100, 0x20); } -/*static */void sub_810639C(void) +static void sub_810639C(void) { sSlotMachine->win0h = 0xf0; sSlotMachine->win0v = 0xa0; @@ -4150,7 +4144,7 @@ Advance until there are no cherries on screen in reel 1 sSlotMachine->winOut = 0x3f; } -/*static */void sub_81063C0(void) +static void sub_81063C0(void) { u8 i; @@ -4174,7 +4168,7 @@ Advance until there are no cherries on screen in reel 1 LoadSpritePalettes(gSlotMachineSpritePalettes); } -/*static */void sub_8106404(void) +static void sub_8106404(void) { u8 *dest; u8 i, j; @@ -4198,7 +4192,7 @@ extern const u16 gSlotMachineMenu_Tilemap[]; extern const u16 gUnknown_08DCEC70[]; extern const u16 gSlotMachineMenu_Pal[]; -/*static */void sub_8106448(void) +static void sub_8106448(void) { gUnknown_0203AAC8 = Alloc(0x2200); LZDecompressWram(gSlotMachineMenu_Gfx, gUnknown_0203AAC8); @@ -4207,18 +4201,18 @@ extern const u16 gSlotMachineMenu_Pal[]; LoadPalette(gPalette_83EDE24, 208, 32); } -/*static */void sub_81064B8(void) +static void sub_81064B8(void) { sub_812F968(); LoadSlotMachineWheelOverlay(); } -/*static */void sub_812F968(void) +static void sub_812F968(void) { LoadBgTilemap(2, gSlotMachineMenu_Tilemap, 0x500, 0); } -/*static */void LoadSlotMachineWheelOverlay(void) +static void LoadSlotMachineWheelOverlay(void) { s16 x, y, dx; @@ -4240,7 +4234,7 @@ extern const u16 gSlotMachineMenu_Pal[]; } } -/*static */void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) +static void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) { gUnknown_0203AADC[0] = arg1; gUnknown_0203AADC[1] = arg2; @@ -4253,13 +4247,13 @@ extern const u16 gSlotMachineMenu_Pal[]; LoadBgTilemap(2, gUnknown_0203AADC + 3, 2, 16 * 32 + 1 + arg0); } -/*static */void sub_81065DC(void) +static void sub_81065DC(void) { LoadBgTilemap(2, gUnknown_08DCEC70, 0x500, 0); HideBg(3); } -/*static */void SlotMachineSetup_9_0(void) +static void SlotMachineSetup_9_0(void) { gUnknown_03001188[0] = gUnknown_0203AAF4; gUnknown_03001188[1] = gUnknown_0203AAF8; @@ -4289,7 +4283,7 @@ extern const u16 gSlotMachineMenu_Pal[]; gUnknown_03001188[25] = NULL; } -/*static */void SlotMachineSetup_8_0(void) +static void SlotMachineSetup_8_0(void) { gUnknown_0203AAF4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); gUnknown_0203AAF4[0].data = gUnknown_0203AAD4; @@ -4503,7 +4497,7 @@ const u16 ReelTimeBonusIncrementTable[] = { }; // tentative name -const u8 LuckyTags[] = { +const u8 BiasTags[] = { SLOT_MACHINE_TAG_REPLAY, SLOT_MACHINE_TAG_CHERRY, SLOT_MACHINE_TAG_LOTAD, SLOT_MACHINE_TAG_AZURILL, SLOT_MACHINE_TAG_POWER, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED }; @@ -4512,7 +4506,7 @@ const u16 LuckyFlagSettings_Top3[] = { }; const u16 LuckyFlagSettings_NotTop3[] = { - LUCKY_BIAS_POWER, LUCKY_BIAS_AZURRILL, LUCKY_BIAS_LOTAD, LUCKY_BIAS_CHERRY, LUCKY_BIAS_REPLAY + LUCKY_BIAS_POWER, LUCKY_BIAS_AZURILL, LUCKY_BIAS_LOTAD, LUCKY_BIAS_CHERRY, LUCKY_BIAS_REPLAY }; const u8 sSym2Match[] = { diff --git a/src/tv.c b/src/tv.c index 27f779c2d..4b8ff8664 100644 --- a/src/tv.c +++ b/src/tv.c @@ -62,7 +62,7 @@ IWRAM_DATA s8 sTVShowMixingCurSlot; EWRAM_DATA u16 sPokemonAnglerSpecies = 0; EWRAM_DATA u16 sPokemonAnglerAttemptCounters = 0; EWRAM_DATA u16 sFindThatGamerCoinsSpent = 0; -EWRAM_DATA bool8 sFindThatGamerWhichGame = SLOT_MACHINE; +EWRAM_DATA u8 sFindThatGamerWhichGame = SLOT_MACHINE; EWRAM_DATA ALIGNED(4) u8 sRecordMixingPartnersWithoutShowsToShare = 0; EWRAM_DATA ALIGNED(4) u8 sTVShowState = 0; EWRAM_DATA u8 sTVSecretBaseSecretsRandomValues[3] = {}; @@ -2019,7 +2019,7 @@ void sub_80EDCE8(void) } } -void reportNewCoinTotal(u16 nCoinsPaidOut) +void AlertTVOfNewCointTotal(u16 nCoinsPaidOut) { TVShow *show; bool8 flag; @@ -2072,13 +2072,13 @@ void reportNewCoinTotal(u16 nCoinsPaidOut) } } -void AlertTVThatYouPlayedSlotMachine(u16 nCoinsSpent) +void AlertTVThatPlayerPlayedSlotMachine(u16 nCoinsSpent) { sFindThatGamerWhichGame = SLOT_MACHINE; sFindThatGamerCoinsSpent = nCoinsSpent; } -void AlertTVThatYouPlayedRoulette(u16 nCoinsSpent) +void AlertTVThatPlayerPlayedRoulette(u16 nCoinsSpent) { sFindThatGamerWhichGame = ROULETTE; sFindThatGamerCoinsSpent = nCoinsSpent; -- cgit v1.2.3 From 1dc0d346d949f858e2aae602ebf60eb81bf6b7d7 Mon Sep 17 00:00:00 2001 From: hondew Date: Fri, 22 Feb 2019 16:12:37 -0500 Subject: fix spelling error --- include/tv.h | 2 +- src/roulette.c | 2 +- src/slot_machine.c | 2 +- src/tv.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/tv.h b/include/tv.h index ec01717e2..ec7ac1e89 100644 --- a/include/tv.h +++ b/include/tv.h @@ -28,7 +28,7 @@ size_t CountDigits(int value); u8 GetRibbonCount(struct Pokemon *pokemon); void AlertTVThatPlayerPlayedSlotMachine(u16 nCoinsSpent); void AlertTVThatPlayerPlayedRoulette(u16 nCoinsSpent); -void AlertTVOfNewCointTotal(u16 nCoinsPaidOut); +void AlertTVOfNewCoinTotal(u16 nCoinsPaidOut); void sub_80EEA70(void); void sub_80EDB44(void); void sub_80EDC60(const u16 *words); diff --git a/src/roulette.c b/src/roulette.c index 93678fa1c..4c20bd0fe 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -1964,7 +1964,7 @@ static void sub_8141DE4(u8 taskId) gSpecialVar_0x8004 = TRUE; else gSpecialVar_0x8004 = FALSE; - AlertTVOfNewCointTotal(GetCoins()); + AlertTVOfNewCoinTotal(GetCoins()); BeginHardwarePaletteFade(0xFF, 0, 0, 16, 0); gTasks[taskId].func = sub_8141E7C; } diff --git a/src/slot_machine.c b/src/slot_machine.c index 9c07a96f2..9b345af1e 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -1343,7 +1343,7 @@ static bool8 SlotAction_ExitMessage_NoMoreCoins(struct Task *task) static bool8 SlotAction_EndGame(struct Task *task) { SetCoins(sSlotMachine->coins); - AlertTVOfNewCointTotal(GetCoins()); + AlertTVOfNewCoinTotal(GetCoins()); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); sSlotMachine->state++; return FALSE; diff --git a/src/tv.c b/src/tv.c index 4b8ff8664..ee3614e83 100644 --- a/src/tv.c +++ b/src/tv.c @@ -2019,7 +2019,7 @@ void sub_80EDCE8(void) } } -void AlertTVOfNewCointTotal(u16 nCoinsPaidOut) +void AlertTVOfNewCoinTotal(u16 nCoinsPaidOut) { TVShow *show; bool8 flag; -- cgit v1.2.3 From 6a4202cdbd139a4c81609748fd2df522eff93e56 Mon Sep 17 00:00:00 2001 From: hondew Date: Fri, 22 Feb 2019 16:27:49 -0500 Subject: tidied lucky flags --- include/slot_machine.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/include/slot_machine.h b/include/slot_machine.h index bd0af49af..84622d914 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -6,14 +6,14 @@ #define REEL_TAG_HEIGHT 24 // Lucky Flags -#define LUCKY_BIAS_REPLAY 0x0001 -#define LUCKY_BIAS_CHERRY 0x0002 -#define LUCKY_BIAS_LOTAD 0x0004 -#define LUCKY_BIAS_AZURILL 0x0008 -#define LUCKY_BIAS_POWER 0x0010 -#define LUCKY_BIAS_REELTIME 0x0020 -#define LUCKY_BIAS_MIXED_777 0x0040 -#define LUCKY_BIAS_777 0x0080 +#define LUCKY_BIAS_REPLAY (1 << 0) +#define LUCKY_BIAS_CHERRY (1 << 1) +#define LUCKY_BIAS_LOTAD (1 << 2) +#define LUCKY_BIAS_AZURILL (1 << 3) +#define LUCKY_BIAS_POWER (1 << 4) +#define LUCKY_BIAS_REELTIME (1 << 5) +#define LUCKY_BIAS_MIXED_777 (1 << 6) +#define LUCKY_BIAS_777 (1 << 7) // Rows #define SLOT_TOP_ROW 0x0001 -- cgit v1.2.3 From 53d7e21332c24b253eea090cf9ba58968b56af8c Mon Sep 17 00:00:00 2001 From: hondew Date: Thu, 28 Feb 2019 18:56:07 -0500 Subject: fix formatting in slot_machine.c --- src/slot_machine.c | 621 +++++++++++++++++++++++++++-------------------------- 1 file changed, 311 insertions(+), 310 deletions(-) diff --git a/src/slot_machine.c b/src/slot_machine.c index 9b345af1e..fb1c88097 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -117,7 +117,7 @@ struct UnkStruct1 static void CB2_SlotMachineSetup(void); static void CB2_SlotMachineLoop(void); -static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback CB2_ReturnToFieldContinueScriptPlayMapMusic); +static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback cb); static void SlotMachineDummyTask(u8 taskId); static void SlotMachineSetup_0_0(void); static void SlotMachineSetup_6_2(void); @@ -169,9 +169,9 @@ static bool8 SlotAction_FreeDataStructures(struct Task *task); static void DrawLuckyFlags(void); static void SetLuckySpins(void); static bool8 IsThisRoundLucky(void); -static u8 AttemptsAtLuckyflags_Top3(void); +static u8 AttemptsAtLuckyFlags_Top3(void); static u16 SlowReelSpeed(void); -static u8 AttemptsAtLuckyflags_NotTop3(void); +static u8 AttemptsAtLuckyFlags_NotTop3(void); static void CheckMatch(void); static void CheckMatch_CenterRow(void); static void CheckMatch_TopAndBottom(void); @@ -320,33 +320,33 @@ static void LoadSlotMachineWheelOverlay(void); static u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2); // Ewram variables -static EWRAM_DATA u16 *gUnknown_0203AAC8 = NULL; -static EWRAM_DATA u16 *selectedPikaPowerTile = NULL; -static EWRAM_DATA u16 *gUnknown_0203AAD0 = NULL; -static EWRAM_DATA u8 *gUnknown_0203AAD4 = NULL; -static EWRAM_DATA u8 *gUnknown_0203AAD8 = NULL; -static EWRAM_DATA u16 *gUnknown_0203AADC = NULL; -static EWRAM_DATA u8 *gUnknown_0203AAE0 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAE4 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAE8 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAEC = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAF0 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAF4 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAF8 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AAFC = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB00 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB04 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB08 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB0C = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB10 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB14 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB18 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB1C = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB20 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB24 = NULL; -static EWRAM_DATA struct SpriteFrameImage *gUnknown_0203AB28 = NULL; -static EWRAM_DATA struct SpriteSheet *gUnknown_0203AB2C = NULL; -static EWRAM_DATA struct SpriteSheet *gUnknown_0203AB30 = NULL; +static EWRAM_DATA u16 *sUnknown_0203AAC8 = NULL; +static EWRAM_DATA u16 *sSelectedPikaPowerTile = NULL; +static EWRAM_DATA u16 *sUnknown_0203AAD0 = NULL; +static EWRAM_DATA u8 *sUnknown_0203AAD4 = NULL; +static EWRAM_DATA u8 *sUnknown_0203AAD8 = NULL; +static EWRAM_DATA u16 *sUnknown_0203AADC = NULL; +static EWRAM_DATA u8 *sUnknown_0203AAE0 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAE4 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAE8 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAEC = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAF0 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAF4 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAF8 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AAFC = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB00 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB04 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB08 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB0C = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB10 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB14 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB18 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB1C = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB20 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB24 = NULL; +static EWRAM_DATA struct SpriteFrameImage *sUnknown_0203AB28 = NULL; +static EWRAM_DATA struct SpriteSheet *sUnknown_0203AB2C = NULL; +static EWRAM_DATA struct SpriteSheet *sUnknown_0203AB30 = NULL; static EWRAM_DATA struct SlotMachineEwramStruct *sSlotMachine = NULL; // IWRAM bss @@ -355,10 +355,10 @@ static IWRAM_DATA struct SpriteFrameImage *gUnknown_03001188[26]; // Const rom data. extern const struct UnkStruct1 *const gUnknown_083ED048[]; extern const u16 gPalette_83EDE24[]; -extern const u8 LuckyRoundTable[][3]; -extern const u8 BiasTags[]; -extern const u16 LuckyFlagSettings_Top3[]; -extern const u16 LuckyFlagSettings_NotTop3[]; +extern const u8 gLuckyRoundProbabilities[][3]; +extern const u8 gBiasTags[]; +extern const u16 gLuckyFlagSettings_Top3[]; +extern const u16 gLuckyFlagSettings_NotTop3[]; extern const s16 gUnknown_083ECE7E[][2]; extern const SpriteCallback gUnknown_083ECF0C[]; extern const struct SpriteTemplate *const gUnknown_083EDB5C[]; @@ -369,28 +369,28 @@ extern const struct SpriteTemplate gSpriteTemplate_83ED54C; extern const struct SpriteTemplate gSpriteTemplate_83ED534; extern const u8 gUnknown_083ECC58[2]; extern const struct SpriteTemplate gSpriteTemplate_83ED51C; -extern const u16 ProbabilityTable_SkipToReeltimeAction14[]; +extern const u16 gProbabilityTable_SkipToReeltimeAction14[]; extern const u16 *const gUnknown_083EDE10[]; -extern const u16 ReelIncrementTable[][2]; -extern const u16 ReelTimeBonusIncrementTable[]; -extern const u16 sSlotMatchFlags[]; -extern const u16 sSlotPayouts[]; +extern const u16 gReelIncrementTable[][2]; +extern const u16 gReelTimeBonusIncrementTable[]; +extern const u16 gSlotMatchFlags[]; +extern const u16 gSlotPayouts[]; extern const u8 *const gUnknown_083EDCE4; extern const u8 *const gUnknown_083EDCDC; -extern const u32 sReelTimeGfx[]; -extern const struct SpriteSheet sSlotMachineSpriteSheets[]; +extern const u32 gReelTimeGfx[]; +extern const struct SpriteSheet gSlotMachineSpriteSheets[]; extern const struct SpritePalette gSlotMachineSpritePalettes[]; extern const u16 *const gUnknown_083EDE20; -extern const s16 sInitialReelPositions[][2]; +extern const s16 gInitialReelPositions[][2]; extern const struct BgTemplate gUnknown_085A7424[4]; extern const struct WindowTemplate gUnknown_085A7434[]; -extern const u8 LuckyFlagsTable_Top3[][6]; -extern const u8 LuckyFlagsTable_NotTop3[][6]; -extern const u8 ReelTimeProbabilityTable_UnluckyGame[][17]; -extern const u8 ReelTimeProbabilityTable_LuckyGame[][17]; -extern const u8 sSym2Match[]; -extern const u8 ReelTimeTags[]; -extern const u8 sReelSymbols[][REEL_NUM_TAGS]; +extern const u8 gLuckyFlagProbabilities_Top3[][6]; +extern const u8 gLuckyFlagProbabilities_NotTop3[][6]; +extern const u8 gReeltimeProbabilities_UnluckyGame[][17]; +extern const u8 gReelTimeProbabilities_LuckyGame[][17]; +extern const u8 gSym2Match[]; +extern const u8 gReelTimeTags[]; +extern const u8 gReelSymbols[][REEL_NUM_TAGS]; extern const u16 *const gUnknown_083EDD08[]; extern const u16 *const gUnknown_083EDD1C[]; extern const u8 gUnknown_083EDD30[]; @@ -398,7 +398,7 @@ extern const u8 gBettingTilesId[][2]; extern const u8 gNumberBettingTiles[]; extern const u16 *const gUnknown_083EDDA0[]; extern const u16 *const gUnknown_083EDDAC; -extern const u16 sReelTimeWindowTilemap[]; +extern const u16 gReelTimeWindowTilemap[]; extern const u16 gUnknown_085A9898[]; extern void (*const gUnknown_083ED064[])(void); @@ -858,7 +858,7 @@ static void SlotMachineSetup_0_1(void) for (i = 0; i < NUM_REELS; i++) { sSlotMachine->reelPixelOffsetsWhileStopping[i] = 0; - sSlotMachine->reelTagOffsets[i] = sInitialReelPositions[i][sSlotMachine->luckyGame] % REEL_NUM_TAGS; + sSlotMachine->reelTagOffsets[i] = gInitialReelPositions[i][sSlotMachine->luckyGame] % REEL_NUM_TAGS; sSlotMachine->reelPixelOffsets[i] = REEL_NUM_TAGS * REEL_TAG_HEIGHT - sSlotMachine->reelTagOffsets[i] * REEL_TAG_HEIGHT; sSlotMachine->reelPixelOffsets[i] %= REEL_NUM_TAGS * REEL_TAG_HEIGHT; } @@ -876,18 +876,18 @@ static void SlotMachineSetup_3_0(void) static void SlotMachineSetup_4_0(void) { - selectedPikaPowerTile = Alloc(8); - gUnknown_0203AAD0 = AllocZeroed(0xE); - gUnknown_0203AADC = AllocZeroed(8); + sSelectedPikaPowerTile = Alloc(8); + sUnknown_0203AAD0 = AllocZeroed(0xE); + sUnknown_0203AADC = AllocZeroed(8); // several of these are 1 bit off from each other - gUnknown_0203AAD0[0] = 0x2051; - gUnknown_0203AAD0[1] = 0x2851; - gUnknown_0203AAD0[2] = 0x2061; - gUnknown_0203AAD0[3] = 0x2861; - gUnknown_0203AAD0[4] = 0x20BE; - gUnknown_0203AAD0[5] = 0x28BE; - gUnknown_0203AAD0[6] = 0x20BF; + sUnknown_0203AAD0[0] = 0x2051; + sUnknown_0203AAD0[1] = 0x2851; + sUnknown_0203AAD0[2] = 0x2061; + sUnknown_0203AAD0[3] = 0x2861; + sUnknown_0203AAD0[4] = 0x20BE; + sUnknown_0203AAD0[5] = 0x28BE; + sUnknown_0203AAD0[6] = 0x20BF; } static void SlotMachineSetup_5_0(void) @@ -1170,10 +1170,10 @@ static bool8 SlotAction_CheckMatches(struct Task *task) { sSlotMachine->fairRollsLeft = 0; sSlotMachine->fairRollsUsed = 0; - sSlotMachine->luckyGame = 0; + sSlotMachine->luckyGame = FALSE; if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_777_BLUE)) // this may be an error, but if you get blue 777, the game becomes lucky - sSlotMachine->luckyGame = 1; + sSlotMachine->luckyGame = TRUE; } } if (sSlotMachine->matchedSymbols & (1 << SLOT_MACHINE_MATCHED_POWER) && sSlotMachine->pikaPower < 16) @@ -1354,37 +1354,37 @@ static bool8 SlotAction_FreeDataStructures(struct Task *task) if (!gPaletteFade.active) { SetMainCallback2(sSlotMachine->prevMainCb); - FREE_AND_SET_NULL(gUnknown_0203AAF4); - FREE_AND_SET_NULL(gUnknown_0203AAF8); - FREE_AND_SET_NULL(gUnknown_0203AAFC); - FREE_AND_SET_NULL(gUnknown_0203AB00); - FREE_AND_SET_NULL(gUnknown_0203AB04); - FREE_AND_SET_NULL(gUnknown_0203AB08); - FREE_AND_SET_NULL(gUnknown_0203AB0C); - FREE_AND_SET_NULL(gUnknown_0203AB10); - FREE_AND_SET_NULL(gUnknown_0203AB14); - FREE_AND_SET_NULL(gUnknown_0203AB18); - FREE_AND_SET_NULL(gUnknown_0203AB1C); - FREE_AND_SET_NULL(gUnknown_0203AB20); - FREE_AND_SET_NULL(gUnknown_0203AB24); - FREE_AND_SET_NULL(gUnknown_0203AB28); - if (gUnknown_0203AAE4 != NULL) - FREE_AND_SET_NULL(gUnknown_0203AAE4); - if (gUnknown_0203AAE8 != NULL) - FREE_AND_SET_NULL(gUnknown_0203AAE8); - if (gUnknown_0203AAEC != NULL) - FREE_AND_SET_NULL(gUnknown_0203AAEC); - if (gUnknown_0203AAF0 != NULL) - FREE_AND_SET_NULL(gUnknown_0203AAF0); - FREE_AND_SET_NULL(gUnknown_0203AAC8); - FREE_AND_SET_NULL(selectedPikaPowerTile); - FREE_AND_SET_NULL(gUnknown_0203AAD0); - FREE_AND_SET_NULL(gUnknown_0203AAD4); - FREE_AND_SET_NULL(gUnknown_0203AAD8); - FREE_AND_SET_NULL(gUnknown_0203AADC); - FREE_AND_SET_NULL(gUnknown_0203AAE0); - FREE_AND_SET_NULL(gUnknown_0203AB2C); - FREE_AND_SET_NULL(gUnknown_0203AB30); + FREE_AND_SET_NULL(sUnknown_0203AAF4); + FREE_AND_SET_NULL(sUnknown_0203AAF8); + FREE_AND_SET_NULL(sUnknown_0203AAFC); + FREE_AND_SET_NULL(sUnknown_0203AB00); + FREE_AND_SET_NULL(sUnknown_0203AB04); + FREE_AND_SET_NULL(sUnknown_0203AB08); + FREE_AND_SET_NULL(sUnknown_0203AB0C); + FREE_AND_SET_NULL(sUnknown_0203AB10); + FREE_AND_SET_NULL(sUnknown_0203AB14); + FREE_AND_SET_NULL(sUnknown_0203AB18); + FREE_AND_SET_NULL(sUnknown_0203AB1C); + FREE_AND_SET_NULL(sUnknown_0203AB20); + FREE_AND_SET_NULL(sUnknown_0203AB24); + FREE_AND_SET_NULL(sUnknown_0203AB28); + if (sUnknown_0203AAE4 != NULL) + FREE_AND_SET_NULL(sUnknown_0203AAE4); + if (sUnknown_0203AAE8 != NULL) + FREE_AND_SET_NULL(sUnknown_0203AAE8); + if (sUnknown_0203AAEC != NULL) + FREE_AND_SET_NULL(sUnknown_0203AAEC); + if (sUnknown_0203AAF0 != NULL) + FREE_AND_SET_NULL(sUnknown_0203AAF0); + FREE_AND_SET_NULL(sUnknown_0203AAC8); + FREE_AND_SET_NULL(sSelectedPikaPowerTile); + FREE_AND_SET_NULL(sUnknown_0203AAD0); + FREE_AND_SET_NULL(sUnknown_0203AAD4); + FREE_AND_SET_NULL(sUnknown_0203AAD8); + FREE_AND_SET_NULL(sUnknown_0203AADC); + FREE_AND_SET_NULL(sUnknown_0203AAE0); + FREE_AND_SET_NULL(sUnknown_0203AB2C); + FREE_AND_SET_NULL(sUnknown_0203AB30); FREE_AND_SET_NULL(sSlotMachine); } @@ -1401,22 +1401,22 @@ static void DrawLuckyFlags(void) { if (IsThisRoundLucky()) { - attempts = AttemptsAtLuckyflags_Top3(); + attempts = AttemptsAtLuckyFlags_Top3(); if (attempts != 3) // if you found a lucky number { // attempts == 1: reelTime flag set - sSlotMachine->luckyFlags |= LuckyFlagSettings_Top3[attempts]; + sSlotMachine->luckyFlags |= gLuckyFlagSettings_Top3[attempts]; if (attempts != 1) { return; } } } - // if you got it your first try, you get to try again for the lower lucky flags - attempts = AttemptsAtLuckyflags_NotTop3(); + // if it's not a lucky round or you got reel time, roll for the lower lucky flags + attempts = AttemptsAtLuckyFlags_NotTop3(); if (attempts != 5) // if you found a lucky number { - sSlotMachine->luckyFlags |= LuckyFlagSettings_NotTop3[attempts]; + sSlotMachine->luckyFlags |= gLuckyFlagSettings_NotTop3[attempts]; } } } @@ -1436,51 +1436,52 @@ static u8 GetBiasTag(u8 luckyFlags) for (i = 0; i < 8; i++) { if (luckyFlags & 1) - return BiasTags[i]; + return gBiasTags[i]; luckyFlags >>= 1; } return 0; } +// you have way more luck betting 3 coins than anything lower static bool8 IsThisRoundLucky(void) { u8 rval = Random(); - if (LuckyRoundTable[sSlotMachine->machineId][sSlotMachine->bet - 1] > rval) + if (gLuckyRoundProbabilities[sSlotMachine->machineId][sSlotMachine->bet - 1] > rval) return TRUE; return FALSE; } -static u8 AttemptsAtLuckyflags_Top3(void) +static u8 AttemptsAtLuckyFlags_Top3(void) { s16 count; for (count = 0; count < 3; count++) { s16 rval = Random() & 0xff; - s16 value = LuckyFlagsTable_Top3[count][sSlotMachine->machineId]; + s16 value = gLuckyFlagProbabilities_Top3[count][sSlotMachine->machineId]; if (value > rval) break; } return count; } -static u8 AttemptsAtLuckyflags_NotTop3(void) +static u8 AttemptsAtLuckyFlags_NotTop3(void) { s16 count; for (count = 0; count < 5; count++) { s16 rval = Random() & 0xff; // random byte - s16 value = LuckyFlagsTable_NotTop3[count][sSlotMachine->machineId]; + s16 value = gLuckyFlagProbabilities_NotTop3[count][sSlotMachine->machineId]; // make first attempt easier if it's a lucky game - if (count == 0 && sSlotMachine->luckyGame == 1) + if (count == 0 && sSlotMachine->luckyGame == TRUE) { value += 10; if (value > 0x100) value = 0x100; } // make last attempt harder if it's a lucky game - else if (count == 4 && sSlotMachine->luckyGame == 1) + else if (count == 4 && sSlotMachine->luckyGame == TRUE) { value -= 10; if (value < 0) @@ -1494,10 +1495,10 @@ static u8 AttemptsAtLuckyflags_NotTop3(void) static u8 GetReelTimeProbability(u8 reelTimeDraw) { - if (sSlotMachine->luckyGame == 0) - return ReelTimeProbabilityTable_UnluckyGame[reelTimeDraw][sSlotMachine->pikaPower]; + if (sSlotMachine->luckyGame == FALSE) + return gReeltimeProbabilities_UnluckyGame[reelTimeDraw][sSlotMachine->pikaPower]; else - return ReelTimeProbabilityTable_LuckyGame[reelTimeDraw][sSlotMachine->pikaPower]; + return gReelTimeProbabilities_LuckyGame[reelTimeDraw][sSlotMachine->pikaPower]; } static void GetReeltimeDraw(void) @@ -1521,7 +1522,7 @@ static void GetReeltimeDraw(void) static bool8 SkipToReeltimeAction14(u16 i) { u16 rval = Random() & 0xff; - if (rval < ProbabilityTable_SkipToReeltimeAction14[i]) + if (rval < gProbabilityTable_SkipToReeltimeAction14[i]) return TRUE; else return FALSE; @@ -1541,11 +1542,11 @@ static u16 SlowReelSpeed(void) else if (sSlotMachine->netCoinLoss >= 150) i = 1; rval = Random() % 100; - value = ReelIncrementTable[i][0]; + value = gReelIncrementTable[i][0]; if (rval < value) return 4; rval = Random() % 100; - value = ReelIncrementTable[i][1] + ReelTimeBonusIncrementTable[sSlotMachine->fairRollsUsed]; + value = gReelIncrementTable[i][1] + gReelTimeBonusIncrementTable[sSlotMachine->fairRollsUsed]; if (rval < value) return 2; return 8; @@ -1571,8 +1572,8 @@ static void CheckMatch_CenterRow(void) match = GetMatchFromSymbolsInRow(c1, c2, c3); if (match != SLOT_MACHINE_MATCHED_NONE) { - sSlotMachine->payout += sSlotPayouts[match]; - sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + sSlotMachine->payout += gSlotPayouts[match]; + sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; sub_8103E04(0); } } @@ -1589,8 +1590,8 @@ static void CheckMatch_TopAndBottom(void) { if (match == SLOT_MACHINE_MATCHED_1CHERRY) match = SLOT_MACHINE_MATCHED_2CHERRY; - sSlotMachine->payout += sSlotPayouts[match]; - sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + sSlotMachine->payout += gSlotPayouts[match]; + sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; sub_8103E04(1); } c1 = GetNearbyTag_Quantized(0, 3); @@ -1601,8 +1602,8 @@ static void CheckMatch_TopAndBottom(void) { if (match == SLOT_MACHINE_MATCHED_1CHERRY) match = SLOT_MACHINE_MATCHED_2CHERRY; - sSlotMachine->payout += sSlotPayouts[match]; - sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + sSlotMachine->payout += gSlotPayouts[match]; + sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; sub_8103E04(2); } } @@ -1619,8 +1620,8 @@ static void CheckMatch_Diagonals(void) { if (match != SLOT_MACHINE_MATCHED_1CHERRY) { - sSlotMachine->payout += sSlotPayouts[match]; - sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + sSlotMachine->payout += gSlotPayouts[match]; + sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; } sub_8103E04(3); } @@ -1632,8 +1633,8 @@ static void CheckMatch_Diagonals(void) { if (match != SLOT_MACHINE_MATCHED_1CHERRY) { - sSlotMachine->payout += sSlotPayouts[match]; - sSlotMachine->matchedSymbols |= sSlotMatchFlags[match]; + sSlotMachine->payout += gSlotPayouts[match]; + sSlotMachine->matchedSymbols |= gSlotMatchFlags[match]; } sub_8103E04(4); } @@ -1642,7 +1643,7 @@ static void CheckMatch_Diagonals(void) static u8 GetMatchFromSymbolsInRow(u8 c1, u8 c2, u8 c3) { if (c1 == c2 && c1 == c3) - return sSym2Match[c1]; + return gSym2Match[c1]; if (c1 == SLOT_MACHINE_TAG_7_RED && c2 == SLOT_MACHINE_TAG_7_RED && c3 == SLOT_MACHINE_TAG_7_BLUE) return SLOT_MACHINE_MATCHED_777_MIXED; if (c1 == SLOT_MACHINE_TAG_7_BLUE && c2 == SLOT_MACHINE_TAG_7_BLUE && c3 == SLOT_MACHINE_TAG_7_RED) @@ -1725,7 +1726,7 @@ static u8 GetNearbyTag_Quantized(u8 reelIndex, s16 posOffset) s16 tagIndex = (sSlotMachine->reelTagOffsets[reelIndex] + posOffset) % REEL_NUM_TAGS; if (tagIndex < 0) tagIndex += REEL_NUM_TAGS; - return sReelSymbols[reelIndex][tagIndex]; + return gReelSymbols[reelIndex][tagIndex]; } @@ -1744,7 +1745,7 @@ static u8 GetNearbyReelTimeTag(s16 n) s16 newPosition = (sSlotMachine->reeltimePosition + n) % 6; if (newPosition < 0) newPosition += 6; - return ReelTimeTags[newPosition]; + return gReelTimeTags[newPosition]; } static void AdvanceSlotReel(u8 reelIndex, s16 value) @@ -1838,7 +1839,7 @@ static bool8 SlotReelAction_Spin(struct Task *task) static bool8 SlotReelAction_DecideWhereToStop(struct Task *task) { task->data[0]++; - // initialize data for that reel --> these will be changed if biasTags can be lined up + // initialize data for that reel --> these will be changed if gBiasTags can be lined up sSlotMachine->winnerRows[task->data[15]] = 0; sSlotMachine->reelExtraTurns[task->data[15]] = 0; @@ -2672,8 +2673,8 @@ static void sub_8104144(struct Task *task) r3 = 1, r2 = 1; else if (task->data[1] == 16) r3 = 2, r2 = 2; - selectedPikaPowerTile[r2] = pikaPowerTileTable[r3][0]; - LoadBgTilemap(2, &selectedPikaPowerTile[r2], 2, r5 + 0x40); + sSelectedPikaPowerTile[r2] = pikaPowerTileTable[r3][0]; + LoadBgTilemap(2, &sSelectedPikaPowerTile[r2], 2, r5 + 0x40); sub_8105B88(task->data[2]); task->data[0] = 0; task->data[15] = 0; // points to a reelIndex @@ -2691,8 +2692,8 @@ static void sub_81041AC(struct Task *task) r3 = 2, r2 = 2; if (task->data[2] == 0) { - selectedPikaPowerTile[r2] = pikaPowerTileTable[r3][1]; - LoadBgTilemap(2, &selectedPikaPowerTile[r2], 2, r5 + 0x40); + sSelectedPikaPowerTile[r2] = pikaPowerTileTable[r3][1]; + LoadBgTilemap(2, &sSelectedPikaPowerTile[r2], 2, r5 + 0x40); task->data[1]--; } if (++task->data[2] >= 20) @@ -2725,8 +2726,8 @@ static void sub_810423C(u8 pikaPower) r3 = 1, r1 = 1; else if (i == 15) // pikaPower meter is full r3 = 2, r1 = 2; - selectedPikaPowerTile[r1] = pikaPowerTileTable[r3][0]; - LoadBgTilemap(2, &selectedPikaPowerTile[r1], 2, r4 + 0x40); + sSelectedPikaPowerTile[r1] = pikaPowerTileTable[r3][0]; + LoadBgTilemap(2, &sSelectedPikaPowerTile[r1], 2, r4 + 0x40); } for (; i < 16; i++, r4++) { @@ -2735,8 +2736,8 @@ static void sub_810423C(u8 pikaPower) r3 = 1, r1 = 1; else if (i == 15) r3 = 2, r1 = 2; - selectedPikaPowerTile[r1] = pikaPowerTileTable[r3][1]; - LoadBgTilemap(2, &selectedPikaPowerTile[r1], 2, r4 + 0x40); + sSelectedPikaPowerTile[r1] = pikaPowerTileTable[r3][1]; + LoadBgTilemap(2, &sSelectedPikaPowerTile[r1], 2, r4 + 0x40); } gTasks[sSlotMachine->unkTaskPointer3E].data[1] = pikaPower; } @@ -3067,7 +3068,7 @@ static void sub_8104A40(s16 a0, s16 a1) for (i = 4; i < 15; i++) { - LoadBgTilemap(1, &sReelTimeWindowTilemap[a1 + (i - 4) * 20], 2, 32 * i + a0); + LoadBgTilemap(1, &gReelTimeWindowTilemap[a1 + (i - 4) * 20], 2, 32 * i + a0); } } @@ -3228,7 +3229,7 @@ static void sub_8104DA4(void) { if (task->data[i] != MAX_SPRITES) { - DestroySprite(gSprites + task->data[i]); + DestroySprite(&gSprites[task->data[i]]); task->data[i] = MAX_SPRITES; } } @@ -3333,22 +3334,22 @@ static void sub_8105100(void) { struct SpriteTemplate spriteTemplate; u8 spriteId; - if (gUnknown_0203AAE4 == NULL) - gUnknown_0203AAE4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); - - gUnknown_0203AAE4[0].data = gUnknown_0203AAD8 + (0 * 0x800); - gUnknown_0203AAE4[0].size = 0x800; - gUnknown_0203AAE4[1].data = gUnknown_0203AAD8 + (1 * 0x800); - gUnknown_0203AAE4[1].size = 0x800; - gUnknown_0203AAE4[2].data = gUnknown_0203AAD8 + (2 * 0x800); - gUnknown_0203AAE4[2].size = 0x800; - gUnknown_0203AAE4[3].data = gUnknown_0203AAD8 + (3 * 0x800); - gUnknown_0203AAE4[3].size = 0x800; - gUnknown_0203AAE4[4].data = gUnknown_0203AAD8 + (4 * 0x800); - gUnknown_0203AAE4[4].size = 0x800; + if (sUnknown_0203AAE4 == NULL) + sUnknown_0203AAE4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); + + sUnknown_0203AAE4[0].data = sUnknown_0203AAD8 + (0 * 0x800); + sUnknown_0203AAE4[0].size = 0x800; + sUnknown_0203AAE4[1].data = sUnknown_0203AAD8 + (1 * 0x800); + sUnknown_0203AAE4[1].size = 0x800; + sUnknown_0203AAE4[2].data = sUnknown_0203AAD8 + (2 * 0x800); + sUnknown_0203AAE4[2].size = 0x800; + sUnknown_0203AAE4[3].data = sUnknown_0203AAD8 + (3 * 0x800); + sUnknown_0203AAE4[3].size = 0x800; + sUnknown_0203AAE4[4].data = sUnknown_0203AAD8 + (4 * 0x800); + sUnknown_0203AAE4[4].size = 0x800; spriteTemplate = gSpriteTemplate_83ED45C; - spriteTemplate.images = gUnknown_0203AAE4; + spriteTemplate.images = sUnknown_0203AAE4; spriteId = CreateSprite(&spriteTemplate, 280, 80, 1); gSprites[spriteId].oam.priority = 1; gSprites[spriteId].coordOffsetEnabled = TRUE; @@ -3358,8 +3359,8 @@ static void sub_8105100(void) static void sub_810514C(void) { DestroySprite(gSprites + sSlotMachine->reelTimeSprite3F); - if (gUnknown_0203AAE4 != NULL) - FREE_AND_SET_NULL(gUnknown_0203AAE4); + if (sUnknown_0203AAE4 != NULL) + FREE_AND_SET_NULL(sUnknown_0203AAE4); } /*static */void sub_8105170(struct Sprite *sprite) @@ -3379,13 +3380,13 @@ static void sub_81051C0(void) u8 spriteId; struct Sprite *sprite; - if (gUnknown_0203AAE8 == NULL) - gUnknown_0203AAE8 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + if (sUnknown_0203AAE8 == NULL) + sUnknown_0203AAE8 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AAE8[0].data = gUnknown_0203AAD8 + 0x2800; - gUnknown_0203AAE8[0].size = 0x300; + sUnknown_0203AAE8[0].data = sUnknown_0203AAD8 + 0x2800; + sUnknown_0203AAE8[0].size = 0x300; spriteTemplate = gSpriteTemplate_83ED474; - spriteTemplate.images = gUnknown_0203AAE8; + spriteTemplate.images = sUnknown_0203AAE8; spriteId = CreateSprite(&spriteTemplate, 368, 52, 7); sprite = &gSprites[spriteId]; sprite->oam.priority = 1; @@ -3393,13 +3394,13 @@ static void sub_81051C0(void) SetSubspriteTables(sprite, gSubspriteTables_83ED73C); sSlotMachine->unk49[0] = spriteId; - if (gUnknown_0203AAEC == NULL) - gUnknown_0203AAEC = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + if (sUnknown_0203AAEC == NULL) + sUnknown_0203AAEC = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AAEC[0].data = gUnknown_0203AAD8 + 0x2800 + 0x300; - gUnknown_0203AAEC[0].size = 0x500; + sUnknown_0203AAEC[0].data = sUnknown_0203AAD8 + 0x2800 + 0x300; + sUnknown_0203AAEC[0].size = 0x500; spriteTemplate = gSpriteTemplate_83ED48C; - spriteTemplate.images = gUnknown_0203AAEC; + spriteTemplate.images = sUnknown_0203AAEC; spriteId = CreateSprite(&spriteTemplate, 368, 84, 7); sprite = &gSprites[spriteId]; sprite->oam.priority = 1; @@ -3414,13 +3415,13 @@ static void sub_8105284_(void) u8 spriteId; struct Sprite *sprite; - if (gUnknown_0203AAF0 == NULL) - gUnknown_0203AAF0 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + if (sUnknown_0203AAF0 == NULL) + sUnknown_0203AAF0 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AAF0[0].data = gUnknown_0203AAD8 + 0x3000; - gUnknown_0203AAF0[0].size = 0x600; + sUnknown_0203AAF0[0].data = sUnknown_0203AAD8 + 0x3000; + sUnknown_0203AAF0[0].size = 0x600; spriteTemplate = gSpriteTemplate_83ED4A4; - spriteTemplate.images = gUnknown_0203AAF0; + spriteTemplate.images = sUnknown_0203AAF0; spriteId = CreateSprite(&spriteTemplate, 0xa8 - gSpriteCoordOffsetX, 0x50, 7); sprite = &gSprites[spriteId]; sprite->oam.priority = 1; @@ -3487,10 +3488,10 @@ static void sub_81054B8(void) for (i = 0; i < 2; i++) DestroySprite(&gSprites[sSlotMachine->unk49[i]]); - if (gUnknown_0203AAE8 != NULL) - FREE_AND_SET_NULL(gUnknown_0203AAE8); - if (gUnknown_0203AAEC != NULL) - FREE_AND_SET_NULL(gUnknown_0203AAEC); + if (sUnknown_0203AAE8 != NULL) + FREE_AND_SET_NULL(sUnknown_0203AAE8); + if (sUnknown_0203AAEC != NULL) + FREE_AND_SET_NULL(sUnknown_0203AAEC); for (i = 0; i < 3; i++) DestroySprite(&gSprites[sSlotMachine->unk4B[i]]); @@ -3507,8 +3508,8 @@ static void sub_8105524(void) static void sub_8105554(void) { DestroySprite(&gSprites[sSlotMachine->unk42]); - if (gUnknown_0203AAF0 != NULL) - FREE_AND_SET_NULL(gUnknown_0203AAF0); + if (sUnknown_0203AAF0 != NULL) + FREE_AND_SET_NULL(sUnknown_0203AAF0); } // TODO: check if this is true @@ -4149,22 +4150,22 @@ static void sub_81063C0(void) u8 i; sub_8106404(); - gUnknown_0203AAD4 = Alloc(0x3200); - LZDecompressWram(gSlotMachineReelTime_Gfx, gUnknown_0203AAD4); - gUnknown_0203AAD8 = Alloc(0x3600); - LZDecompressWram(sReelTimeGfx, gUnknown_0203AAD8); - gUnknown_0203AB30 = AllocZeroed(sizeof(struct SpriteSheet) * 22); + sUnknown_0203AAD4 = Alloc(0x3200); + LZDecompressWram(gSlotMachineReelTime_Gfx, sUnknown_0203AAD4); + sUnknown_0203AAD8 = Alloc(0x3600); + LZDecompressWram(gReelTimeGfx, sUnknown_0203AAD8); + sUnknown_0203AB30 = AllocZeroed(sizeof(struct SpriteSheet) * 22); for (i = 0; i < 22; i++) { - gUnknown_0203AB30[i].data = sSlotMachineSpriteSheets[i].data; - gUnknown_0203AB30[i].size = sSlotMachineSpriteSheets[i].size; - gUnknown_0203AB30[i].tag = sSlotMachineSpriteSheets[i].tag; + sUnknown_0203AB30[i].data = gSlotMachineSpriteSheets[i].data; + sUnknown_0203AB30[i].size = gSlotMachineSpriteSheets[i].size; + sUnknown_0203AB30[i].tag = gSlotMachineSpriteSheets[i].tag; } - gUnknown_0203AB30[17].data = gUnknown_0203AAD4 + 0xA00; - gUnknown_0203AB30[18].data = gUnknown_0203AAD4 + 0x1400; - gUnknown_0203AB30[19].data = gUnknown_0203AAD4 + 0x1600; - gUnknown_0203AB30[20].data = gUnknown_0203AAD4 + 0x1900; - LoadSpriteSheets(gUnknown_0203AB30); + sUnknown_0203AB30[17].data = sUnknown_0203AAD4 + 0xA00; + sUnknown_0203AB30[18].data = sUnknown_0203AAD4 + 0x1400; + sUnknown_0203AB30[19].data = sUnknown_0203AAD4 + 0x1600; + sUnknown_0203AB30[20].data = sUnknown_0203AAD4 + 0x1900; + LoadSpriteSheets(sUnknown_0203AB30); LoadSpritePalettes(gSlotMachineSpritePalettes); } @@ -4173,18 +4174,18 @@ static void sub_8106404(void) u8 *dest; u8 i, j; - gUnknown_0203AB2C = AllocZeroed(sizeof(struct SpriteSheet)); - gUnknown_0203AAE0 = AllocZeroed(0x2000); - dest = gUnknown_0203AAE0; + sUnknown_0203AB2C = AllocZeroed(sizeof(struct SpriteSheet)); + sUnknown_0203AAE0 = AllocZeroed(0x2000); + dest = sUnknown_0203AAE0; for (i = 0; i < 0x40; i++) { for (j = 0; j < 0x20; j++, dest++) *dest = gUnknown_083EDCDC[j]; } - gUnknown_0203AB2C->data = gUnknown_0203AAE0; - gUnknown_0203AB2C->size = 0x800; - gUnknown_0203AB2C->tag = 0x11; - LoadSpriteSheet(gUnknown_0203AB2C); + sUnknown_0203AB2C->data = sUnknown_0203AAE0; + sUnknown_0203AB2C->size = 0x800; + sUnknown_0203AB2C->tag = 0x11; + LoadSpriteSheet(sUnknown_0203AB2C); } extern const u32 gSlotMachineMenu_Gfx[]; @@ -4194,9 +4195,9 @@ extern const u16 gSlotMachineMenu_Pal[]; static void sub_8106448(void) { - gUnknown_0203AAC8 = Alloc(0x2200); - LZDecompressWram(gSlotMachineMenu_Gfx, gUnknown_0203AAC8); - LoadBgTiles(2, gUnknown_0203AAC8, 0x2200, 0); + sUnknown_0203AAC8 = Alloc(0x2200); + LZDecompressWram(gSlotMachineMenu_Gfx, sUnknown_0203AAC8); + LoadBgTiles(2, sUnknown_0203AAC8, 0x2200, 0); LoadPalette(gSlotMachineMenu_Pal, 0, 160); LoadPalette(gPalette_83EDE24, 208, 32); } @@ -4220,31 +4221,31 @@ static void LoadSlotMachineWheelOverlay(void) { for (dx = 0; dx < 4; dx++) { - LoadBgTilemap(3, gUnknown_0203AAD0, 2, x + dx + 5 * 32); - LoadBgTilemap(3, gUnknown_0203AAD0 + 1, 2, x + dx + 13 * 32); - LoadBgTilemap(3, gUnknown_0203AAD0 + 2, 2, x + dx + 6 * 32); - LoadBgTilemap(3, gUnknown_0203AAD0 + 3, 2, x + dx + 12 * 32); + LoadBgTilemap(3, sUnknown_0203AAD0, 2, x + dx + 5 * 32); + LoadBgTilemap(3, sUnknown_0203AAD0 + 1, 2, x + dx + 13 * 32); + LoadBgTilemap(3, sUnknown_0203AAD0 + 2, 2, x + dx + 6 * 32); + LoadBgTilemap(3, sUnknown_0203AAD0 + 3, 2, x + dx + 12 * 32); } - LoadBgTilemap(3, gUnknown_0203AAD0 + 4, 2, x + 6 * 32); - LoadBgTilemap(3, gUnknown_0203AAD0 + 5, 2, x + 12 * 32); + LoadBgTilemap(3, sUnknown_0203AAD0 + 4, 2, x + 6 * 32); + LoadBgTilemap(3, sUnknown_0203AAD0 + 5, 2, x + 12 * 32); for (y = 7; y <= 11; y++) - LoadBgTilemap(3, gUnknown_0203AAD0 + 6, 2, x + y * 32); + LoadBgTilemap(3, sUnknown_0203AAD0 + 6, 2, x + y * 32); } } static void sub_81065A8(s16 arg0, u16 arg1, u16 arg2, u16 arg3, u16 arg4) { - gUnknown_0203AADC[0] = arg1; - gUnknown_0203AADC[1] = arg2; - gUnknown_0203AADC[2] = arg3; - gUnknown_0203AADC[3] = arg4; + sUnknown_0203AADC[0] = arg1; + sUnknown_0203AADC[1] = arg2; + sUnknown_0203AADC[2] = arg3; + sUnknown_0203AADC[3] = arg4; - LoadBgTilemap(2, gUnknown_0203AADC, 2, 15 * 32 + arg0); - LoadBgTilemap(2, gUnknown_0203AADC + 1, 2, 15 * 32 + 1 + arg0); - LoadBgTilemap(2, gUnknown_0203AADC + 2, 2, 16 * 32 + arg0); - LoadBgTilemap(2, gUnknown_0203AADC + 3, 2, 16 * 32 + 1 + arg0); + LoadBgTilemap(2, sUnknown_0203AADC, 2, 15 * 32 + arg0); + LoadBgTilemap(2, sUnknown_0203AADC + 1, 2, 15 * 32 + 1 + arg0); + LoadBgTilemap(2, sUnknown_0203AADC + 2, 2, 16 * 32 + arg0); + LoadBgTilemap(2, sUnknown_0203AADC + 3, 2, 16 * 32 + 1 + arg0); } static void sub_81065DC(void) @@ -4255,108 +4256,108 @@ static void sub_81065DC(void) static void SlotMachineSetup_9_0(void) { - gUnknown_03001188[0] = gUnknown_0203AAF4; - gUnknown_03001188[1] = gUnknown_0203AAF8; - gUnknown_03001188[2] = gUnknown_0203AAFC; - gUnknown_03001188[3] = gUnknown_0203AB04; - gUnknown_03001188[4] = gUnknown_0203AB08; - gUnknown_03001188[5] = gUnknown_0203AB18; - gUnknown_03001188[6] = gUnknown_0203AB1C; - gUnknown_03001188[7] = gUnknown_0203AB20; - gUnknown_03001188[8] = gUnknown_0203AB24; - gUnknown_03001188[9] = gUnknown_0203AB28; - gUnknown_03001188[10] = gUnknown_0203AB00; - gUnknown_03001188[11] = gUnknown_0203AB00; - gUnknown_03001188[12] = gUnknown_0203AB00; - gUnknown_03001188[13] = gUnknown_0203AB00; - gUnknown_03001188[14] = gUnknown_0203AB0C; - gUnknown_03001188[15] = gUnknown_0203AB0C; - gUnknown_03001188[16] = gUnknown_0203AB0C; - gUnknown_03001188[17] = gUnknown_0203AB0C; - gUnknown_03001188[18] = gUnknown_0203AB0C; - gUnknown_03001188[19] = gUnknown_0203AB10; - gUnknown_03001188[20] = gUnknown_0203AB10; - gUnknown_03001188[21] = gUnknown_0203AB10; - gUnknown_03001188[22] = gUnknown_0203AB14; - gUnknown_03001188[23] = gUnknown_0203AB14; - gUnknown_03001188[24] = gUnknown_0203AB14; + gUnknown_03001188[0] = sUnknown_0203AAF4; + gUnknown_03001188[1] = sUnknown_0203AAF8; + gUnknown_03001188[2] = sUnknown_0203AAFC; + gUnknown_03001188[3] = sUnknown_0203AB04; + gUnknown_03001188[4] = sUnknown_0203AB08; + gUnknown_03001188[5] = sUnknown_0203AB18; + gUnknown_03001188[6] = sUnknown_0203AB1C; + gUnknown_03001188[7] = sUnknown_0203AB20; + gUnknown_03001188[8] = sUnknown_0203AB24; + gUnknown_03001188[9] = sUnknown_0203AB28; + gUnknown_03001188[10] = sUnknown_0203AB00; + gUnknown_03001188[11] = sUnknown_0203AB00; + gUnknown_03001188[12] = sUnknown_0203AB00; + gUnknown_03001188[13] = sUnknown_0203AB00; + gUnknown_03001188[14] = sUnknown_0203AB0C; + gUnknown_03001188[15] = sUnknown_0203AB0C; + gUnknown_03001188[16] = sUnknown_0203AB0C; + gUnknown_03001188[17] = sUnknown_0203AB0C; + gUnknown_03001188[18] = sUnknown_0203AB0C; + gUnknown_03001188[19] = sUnknown_0203AB10; + gUnknown_03001188[20] = sUnknown_0203AB10; + gUnknown_03001188[21] = sUnknown_0203AB10; + gUnknown_03001188[22] = sUnknown_0203AB14; + gUnknown_03001188[23] = sUnknown_0203AB14; + gUnknown_03001188[24] = sUnknown_0203AB14; gUnknown_03001188[25] = NULL; } static void SlotMachineSetup_8_0(void) { - gUnknown_0203AAF4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AAF4[0].data = gUnknown_0203AAD4; - gUnknown_0203AAF4[0].size = 0x600; + sUnknown_0203AAF4 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AAF4[0].data = sUnknown_0203AAD4; + sUnknown_0203AAF4[0].size = 0x600; - gUnknown_0203AAF8 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AAF8[0].data = gUnknown_0203AAD4 + 0x600; - gUnknown_0203AAF8[0].size = 0x200; + sUnknown_0203AAF8 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AAF8[0].data = sUnknown_0203AAD4 + 0x600; + sUnknown_0203AAF8[0].size = 0x200; - gUnknown_0203AAFC = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AAFC[0].data = gUnknown_0203AAD4 + 0x800; - gUnknown_0203AAFC[0].size = 0x200; + sUnknown_0203AAFC = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AAFC[0].data = sUnknown_0203AAD4 + 0x800; + sUnknown_0203AAFC[0].size = 0x200; - gUnknown_0203AB00 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB00[0].data = gUnknown_0203AAD4 + 0xA00; - gUnknown_0203AB00[0].size = 0x200; + sUnknown_0203AB00 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AB00[0].data = sUnknown_0203AAD4 + 0xA00; + sUnknown_0203AB00[0].size = 0x200; - gUnknown_0203AB04 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB04[0].data = gUnknown_0203AAD4 + 0xC00; - gUnknown_0203AB04[0].size = 0x300; + sUnknown_0203AB04 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AB04[0].data = sUnknown_0203AAD4 + 0xC00; + sUnknown_0203AB04[0].size = 0x300; - gUnknown_0203AB08 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB08[0].data = gUnknown_0203AAD4 + 0x1000; - gUnknown_0203AB08[0].size = 0x400; + sUnknown_0203AB08 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AB08[0].data = sUnknown_0203AAD4 + 0x1000; + sUnknown_0203AB08[0].size = 0x400; - gUnknown_0203AB0C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB0C[0].data = gUnknown_0203AAD4 + 0x1400; - gUnknown_0203AB0C[0].size = 0x200; + sUnknown_0203AB0C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AB0C[0].data = sUnknown_0203AAD4 + 0x1400; + sUnknown_0203AB0C[0].size = 0x200; - gUnknown_0203AB10 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB10[0].data = gUnknown_0203AAD4 + 0x1600; - gUnknown_0203AB10[0].size = 0x300; + sUnknown_0203AB10 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AB10[0].data = sUnknown_0203AAD4 + 0x1600; + sUnknown_0203AB10[0].size = 0x300; - gUnknown_0203AB14 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB14[0].data = gUnknown_0203AAD4 + 0x1900; - gUnknown_0203AB14[0].size = 0x300; + sUnknown_0203AB14 = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AB14[0].data = sUnknown_0203AAD4 + 0x1900; + sUnknown_0203AB14[0].size = 0x300; - gUnknown_0203AB18 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); - gUnknown_0203AB18[0].data = gUnknown_0203AAD4 + 0x1C00; - gUnknown_0203AB18[0].size = 0x200; - gUnknown_0203AB18[1].data = gUnknown_0203AAD4 + 0x1E00; - gUnknown_0203AB18[1].size = 0x200; + sUnknown_0203AB18 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + sUnknown_0203AB18[0].data = sUnknown_0203AAD4 + 0x1C00; + sUnknown_0203AB18[0].size = 0x200; + sUnknown_0203AB18[1].data = sUnknown_0203AAD4 + 0x1E00; + sUnknown_0203AB18[1].size = 0x200; - gUnknown_0203AB1C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); - gUnknown_0203AB1C[0].data = gUnknown_0203AAD4 + 0x2000; - gUnknown_0203AB1C[0].size = 640; + sUnknown_0203AB1C = AllocZeroed(sizeof(struct SpriteFrameImage) * 1); + sUnknown_0203AB1C[0].data = sUnknown_0203AAD4 + 0x2000; + sUnknown_0203AB1C[0].size = 640; - gUnknown_0203AB20 = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); - gUnknown_0203AB20[0].data = gUnknown_0203AAD4 + 0x2280; - gUnknown_0203AB20[0].size = 0x80; - gUnknown_0203AB20[1].data = gUnknown_0203AAD4 + 0x2300; - gUnknown_0203AB20[1].size = 0x80; - gUnknown_0203AB20[2].data = gUnknown_0203AAD4 + 0x2380; - gUnknown_0203AB20[2].size = 0x80; - gUnknown_0203AB20[3].data = gUnknown_0203AAD4 + 0x2400; - gUnknown_0203AB20[3].size = 0x80; - gUnknown_0203AB20[4].data = gUnknown_0203AAD4 + 0x2480; - gUnknown_0203AB20[4].size = 0x80; + sUnknown_0203AB20 = AllocZeroed(sizeof(struct SpriteFrameImage) * 5); + sUnknown_0203AB20[0].data = sUnknown_0203AAD4 + 0x2280; + sUnknown_0203AB20[0].size = 0x80; + sUnknown_0203AB20[1].data = sUnknown_0203AAD4 + 0x2300; + sUnknown_0203AB20[1].size = 0x80; + sUnknown_0203AB20[2].data = sUnknown_0203AAD4 + 0x2380; + sUnknown_0203AB20[2].size = 0x80; + sUnknown_0203AB20[3].data = sUnknown_0203AAD4 + 0x2400; + sUnknown_0203AB20[3].size = 0x80; + sUnknown_0203AB20[4].data = sUnknown_0203AAD4 + 0x2480; + sUnknown_0203AB20[4].size = 0x80; - gUnknown_0203AB24 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); - gUnknown_0203AB24[0].data = gUnknown_0203AAD4 + 0x2600; - gUnknown_0203AB24[0].size = 0x480; - gUnknown_0203AB24[1].data = gUnknown_0203AAD4 + 10880; - gUnknown_0203AB24[1].size = 0x480; + sUnknown_0203AB24 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + sUnknown_0203AB24[0].data = sUnknown_0203AAD4 + 0x2600; + sUnknown_0203AB24[0].size = 0x480; + sUnknown_0203AB24[1].data = sUnknown_0203AAD4 + 10880; + sUnknown_0203AB24[1].size = 0x480; - gUnknown_0203AB28 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); - gUnknown_0203AB28[0].data = gUnknown_0203AAD4 + 0x2F00; - gUnknown_0203AB28[0].size = 0x180; - gUnknown_0203AB28[1].data = gUnknown_0203AAD4 + 0x3080; - gUnknown_0203AB28[1].size = 0x180; + sUnknown_0203AB28 = AllocZeroed(sizeof(struct SpriteFrameImage) * 2); + sUnknown_0203AB28[0].data = sUnknown_0203AAD4 + 0x2F00; + sUnknown_0203AB28[0].size = 0x180; + sUnknown_0203AB28[1].data = sUnknown_0203AAD4 + 0x3080; + sUnknown_0203AB28[1].size = 0x180; } -const u8 sReelSymbols[][REEL_NUM_TAGS] = +const u8 gReelSymbols[][REEL_NUM_TAGS] = { { SLOT_MACHINE_TAG_7_RED, @@ -4429,17 +4430,17 @@ const u8 sReelSymbols[][REEL_NUM_TAGS] = }, }; -const u8 ReelTimeTags[] = { +const u8 gReelTimeTags[] = { 1, 0, 5, 4, 3, 2 }; -const s16 sInitialReelPositions[][2] = { +const s16 gInitialReelPositions[][2] = { {0, 6}, {0, 10}, {0, 2} }; -const u8 LuckyRoundTable[][3] = { +const u8 gLuckyRoundProbabilities[][3] = { {1, 1, 12}, {1, 1, 14}, {2, 2, 14}, @@ -4448,13 +4449,13 @@ const u8 LuckyRoundTable[][3] = { {3, 3, 16} }; -const u8 LuckyFlagsTable_Top3[][6] = { +const u8 gLuckyFlagProbabilities_Top3[][6] = { {25, 25, 30, 40, 40, 50}, {25, 25, 30, 30, 35, 35}, {25, 25, 30, 25, 25, 30} }; -const u8 LuckyFlagsTable_NotTop3[][6] = { +const u8 gLuckyFlagProbabilities_NotTop3[][6] = { {20, 25, 25, 20, 25, 25}, {12, 15, 15, 18, 19, 22}, {25, 25, 25, 30, 30, 40}, @@ -4462,7 +4463,7 @@ const u8 LuckyFlagsTable_NotTop3[][6] = { {40, 40, 35, 35, 40, 40} }; -const u8 ReelTimeProbabilityTable_UnluckyGame[][17] = { +const u8 gReeltimeProbabilities_UnluckyGame[][17] = { {243, 243, 243, 80, 80, 80, 80, 40, 40, 40, 40, 40, 40, 5, 5, 5, 5}, { 5, 5, 5, 150, 150, 150, 150, 130, 130, 130, 130, 130, 130, 100, 100, 100, 5}, { 4, 4, 4, 20, 20, 20, 20, 80, 80, 80, 80, 80, 80, 100, 100, 100, 40}, @@ -4471,7 +4472,7 @@ const u8 ReelTimeProbabilityTable_UnluckyGame[][17] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6} }; -const u8 ReelTimeProbabilityTable_LuckyGame[][17] = { +const u8 gReelTimeProbabilities_LuckyGame[][17] = { { 243, 243, 243, 200, 200, 200, 200, 160, 160, 160, 160, 160, 160, 70, 70, 70, 5}, { 5, 5, 5, 25, 25, 25, 25, 5, 5, 5, 5, 5, 5, 2, 2, 2, 6}, { 4, 4, 4, 25, 25, 25, 25, 30, 30, 30, 30, 30, 30, 40, 40, 40, 35}, @@ -4480,11 +4481,11 @@ const u8 ReelTimeProbabilityTable_LuckyGame[][17] = { { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 60} }; -const u16 ProbabilityTable_SkipToReeltimeAction14[] = { +const u16 gProbabilityTable_SkipToReeltimeAction14[] = { 128, 175, 200, 225, 256 }; -const u16 ReelIncrementTable[][2] = { +const u16 gReelIncrementTable[][2] = { {10, 5}, {10, 10}, {10, 15}, @@ -4492,24 +4493,24 @@ const u16 ReelIncrementTable[][2] = { {10, 35} }; -const u16 ReelTimeBonusIncrementTable[] = { +const u16 gReelTimeBonusIncrementTable[] = { 0, 5, 10, 15, 20 }; // tentative name -const u8 BiasTags[] = { +const u8 gBiasTags[] = { SLOT_MACHINE_TAG_REPLAY, SLOT_MACHINE_TAG_CHERRY, SLOT_MACHINE_TAG_LOTAD, SLOT_MACHINE_TAG_AZURILL, SLOT_MACHINE_TAG_POWER, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED, SLOT_MACHINE_TAG_7_RED }; -const u16 LuckyFlagSettings_Top3[] = { +const u16 gLuckyFlagSettings_Top3[] = { LUCKY_BIAS_777, LUCKY_BIAS_REELTIME, LUCKY_BIAS_MIXED_777 }; -const u16 LuckyFlagSettings_NotTop3[] = { +const u16 gLuckyFlagSettings_NotTop3[] = { LUCKY_BIAS_POWER, LUCKY_BIAS_AZURILL, LUCKY_BIAS_LOTAD, LUCKY_BIAS_CHERRY, LUCKY_BIAS_REPLAY }; -const u8 sSym2Match[] = { +const u8 gSym2Match[] = { SLOT_MACHINE_MATCHED_777_RED, SLOT_MACHINE_MATCHED_777_BLUE, SLOT_MACHINE_MATCHED_AZURILL, @@ -4519,7 +4520,7 @@ const u8 sSym2Match[] = { SLOT_MACHINE_MATCHED_REPLAY }; -const u16 sSlotMatchFlags[] = { +const u16 gSlotMatchFlags[] = { 1 << SLOT_MACHINE_MATCHED_1CHERRY, 1 << SLOT_MACHINE_MATCHED_2CHERRY, 1 << SLOT_MACHINE_MATCHED_REPLAY, @@ -4531,7 +4532,7 @@ const u16 sSlotMatchFlags[] = { 1 << SLOT_MACHINE_MATCHED_777_BLUE }; -const u16 sSlotPayouts[] = { +const u16 gSlotPayouts[] = { 2, 4, 0, 6, 12, 3, 90, 300, 300 }; -- cgit v1.2.3 From 9ed0f775289d574a792f20ec37fe24f26e765117 Mon Sep 17 00:00:00 2001 From: hondew Date: Thu, 28 Feb 2019 18:58:35 -0500 Subject: fixed issues in data and include dirs --- data/slot_machine.s | 984 ++++++++++++++++++++++++------------------------- include/slot_machine.h | 5 - 2 files changed, 492 insertions(+), 497 deletions(-) mode change 100644 => 100755 data/slot_machine.s diff --git a/data/slot_machine.s b/data/slot_machine.s old mode 100644 new mode 100755 index adc65feec..a3d502dcc --- a/data/slot_machine.s +++ b/data/slot_machine.s @@ -1,841 +1,841 @@ -.include "asm/macros.inc" -.include "constants/constants.inc" + .include "asm/macros.inc" + .include "constants/constants.inc" -.section .rodata + .section .rodata .align 2 gUnknown_085A7A3C:: @ 85A7A3C -.2byte 0 -.2byte 0 -.2byte 0 -.2byte 0 + .2byte 0 + .2byte 0 + .2byte 0 + .2byte 0 gUnknown_085A7A44:: @ 85A7A44 -.2byte 0x8000 -.2byte 0 -.2byte 0 -.2byte 0 + .2byte 0x8000 + .2byte 0 + .2byte 0 + .2byte 0 gUnknown_085A7A4C:: @ 85A7A4C -.2byte 0 -.2byte 0x4000 -.2byte 0 -.2byte 0 + .2byte 0 + .2byte 0x4000 + .2byte 0 + .2byte 0 gUnknown_085A7A54:: @ 85A7A54 -.2byte 0x8000 -.2byte 0x8000 -.2byte 0 -.2byte 0 + .2byte 0x8000 + .2byte 0x8000 + .2byte 0 + .2byte 0 gUnknown_085A7A5C:: @ 85A7A5C -.2byte 0 -.2byte 0x8000 -.2byte 0 -.2byte 0 + .2byte 0 + .2byte 0x8000 + .2byte 0 + .2byte 0 gUnknown_085A7A64:: @ 85A7A64 -.2byte 0x8000 -.2byte 0xC000 -.2byte 0 -.2byte 0 + .2byte 0x8000 + .2byte 0xC000 + .2byte 0 + .2byte 0 gUnknown_085A7A6C:: @ 85A7A6C -.2byte 0x4000 -.2byte 0xC000 -.2byte 0 -.2byte 0 + .2byte 0x4000 + .2byte 0xC000 + .2byte 0 + .2byte 0 gUnknown_085A7A74:: @ 85A7A74 -.2byte 0 -.2byte 0xC000 -.2byte 0 -.2byte 0 + .2byte 0 + .2byte 0xC000 + .2byte 0 + .2byte 0 gUnknown_085A7A7C:: @ 85A7A7C -.4byte gSlotMachineReelTimeNumber0 -.2byte 0x80 -.2byte 0 -.4byte gSlotMachineReelTimeNumber1 -.2byte 0x80 -.2byte 0 -.4byte gSlotMachineReelTimeNumber2 -.2byte 0x80 -.2byte 0 -.4byte gSlotMachineReelTimeNumber3 -.2byte 0x80 -.2byte 0 -.4byte gSlotMachineReelTimeNumber4 -.2byte 0x80 -.2byte 0 -.4byte gSlotMachineReelTimeNumber5 -.2byte 0x80 -.2byte 0 + .4byte gSlotMachineReelTimeNumber0 + .2byte 0x80 + .2byte 0 + .4byte gSlotMachineReelTimeNumber1 + .2byte 0x80 + .2byte 0 + .4byte gSlotMachineReelTimeNumber2 + .2byte 0x80 + .2byte 0 + .4byte gSlotMachineReelTimeNumber3 + .2byte 0x80 + .2byte 0 + .4byte gSlotMachineReelTimeNumber4 + .2byte 0x80 + .2byte 0 + .4byte gSlotMachineReelTimeNumber5 + .2byte 0x80 + .2byte 0 gUnknown_085A7AAC:: @ 85A7AAC -.4byte gSlotMachineReelTimeShadow -.2byte 0x200 -.2byte 0 + .4byte gSlotMachineReelTimeShadow + .2byte 0x200 + .2byte 0 gUnknown_085A7AB4:: @ 85A7AB4 -.4byte gUnknown_08DD1A18 -.2byte 0x40 -.2byte 0 + .4byte gUnknown_08DD1A18 + .2byte 0x40 + .2byte 0 gUnknown_085A7ABC:: @ 85A7ABC -.4byte gSlotMachineReelTimeLargeBolt0 -.2byte 0x100 -.2byte 0 -.4byte gSlotMachineReelTimeLargeBolt1 -.2byte 0x100 -.2byte 0 + .4byte gSlotMachineReelTimeLargeBolt0 + .2byte 0x100 + .2byte 0 + .4byte gSlotMachineReelTimeLargeBolt1 + .2byte 0x100 + .2byte 0 gUnknown_085A7ACC:: @ 85A7ACC -.4byte gSlotMachineReelTimePikaAura -.2byte 0x400 -.2byte 0 + .4byte gSlotMachineReelTimePikaAura + .2byte 0x400 + .2byte 0 gUnknown_085A7AD4:: @ 85A7CD4 -.4byte gSlotMachineReelTimeExplosion0 -.2byte 0x200 -.2byte 0 -.4byte gSlotMachineReelTimeExplosion1 -.2byte 0x200 -.2byte 0 + .4byte gSlotMachineReelTimeExplosion0 + .2byte 0x200 + .2byte 0 + .4byte gSlotMachineReelTimeExplosion1 + .2byte 0x200 + .2byte 0 gUnknown_085A7AE4:: @ 85A7AE4 -.4byte gSlotMachineReelTimeDuck -.4byte 32 + .4byte gSlotMachineReelTimeDuck + .4byte 32 gUnknown_085A7AEC:: @ 85A7AEC -.4byte gSlotMachineReelTimeSmoke -.4byte 0x80 + .4byte gSlotMachineReelTimeSmoke + .4byte 0x80 gUnknown_085A7AF4:: @ 85A7AF4 -.4byte gSlotMachineReelTimeBolt -.4byte 32 + .4byte gSlotMachineReelTimeBolt + .4byte 32 gUnknown_085A7AFC:: @ 85A7AFC -obj_image_anim_frame 0, 1 -obj_image_anim_end + obj_image_anim_frame 0, 1 + obj_image_anim_end gUnknown_085A7B04:: @ 85A7B04 -obj_image_anim_frame 0, 1 -obj_image_anim_jump 0 + obj_image_anim_frame 0, 1 + obj_image_anim_jump 0 gUnknown_085A7B0C:: @ 85A7B0C -obj_image_anim_frame 0, 16 -obj_image_anim_end + obj_image_anim_frame 0, 16 + obj_image_anim_end gUnknown_085A7B14:: @ 85A7B14 -obj_image_anim_frame 1, 16 -obj_image_anim_frame 0, 16 -obj_image_anim_jump 0 + obj_image_anim_frame 1, 16 + obj_image_anim_frame 0, 16 + obj_image_anim_jump 0 gUnknown_085A7B20:: @ 85A7B20 -obj_image_anim_frame 1, 8 -obj_image_anim_frame 0, 8 -obj_image_anim_jump 0 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_jump 0 gUnknown_085A7B2C:: @ 85A7B2C -obj_image_anim_frame 1, 4 -obj_image_anim_frame 0, 4 -obj_image_anim_jump 0 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 4 + obj_image_anim_jump 0 gUnknown_085A7B38:: @ 85A7B38 -obj_image_anim_frame 2, 32 -obj_image_anim_frame 3, 32 -obj_image_anim_jump 0 + obj_image_anim_frame 2, 32 + obj_image_anim_frame 3, 32 + obj_image_anim_jump 0 gUnknown_085A7B44:: @ 85A7B44 -obj_image_anim_frame 4, 1 -obj_image_anim_end + obj_image_anim_frame 4, 1 + obj_image_anim_end gUnknown_085A7B4C:: @ 85A7B4C -obj_image_anim_frame 0, 1 -obj_image_anim_end + obj_image_anim_frame 0, 1 + obj_image_anim_end gUnknown_085A7B54:: @ 85A7B54 -obj_image_anim_frame 1, 1 -obj_image_anim_end + obj_image_anim_frame 1, 1 + obj_image_anim_end gUnknown_085A7B5C:: @ 85A7B5C -obj_image_anim_frame 2, 1 -obj_image_anim_end + obj_image_anim_frame 2, 1 + obj_image_anim_end gUnknown_085A7B64:: @ 85A7B64 -obj_image_anim_frame 3, 1 -obj_image_anim_end + obj_image_anim_frame 3, 1 + obj_image_anim_end gUnknown_085A7B6C:: @ 85A7B6C -obj_image_anim_frame 4, 1 -obj_image_anim_end + obj_image_anim_frame 4, 1 + obj_image_anim_end gUnknown_085A7B74:: @ 85A7B74 -obj_image_anim_frame 5, 1 -obj_image_anim_end + obj_image_anim_frame 5, 1 + obj_image_anim_end gUnknown_085A7B7C:: @ 85A7B7C -obj_image_anim_frame 0, 4 -obj_image_anim_frame 1, 4 -obj_image_anim_jump 0 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 1, 4 + obj_image_anim_jump 0 gUnknown_085A7B88:: @ 85A7B88 -obj_image_anim_frame 0, 16 -obj_image_anim_frame 1, 16 -obj_image_anim_jump 0 + obj_image_anim_frame 0, 16 + obj_image_anim_frame 1, 16 + obj_image_anim_jump 0 gUnknown_085A7B94:: @ 85A7B94 -obj_image_anim_frame 0, 30 -obj_image_anim_frame 1, 30 -obj_image_anim_jump 0 + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_jump 0 gUnknown_085A7BA0:: @ 85A7BA0 -obj_image_anim_frame 1, 1 -obj_image_anim_end + obj_image_anim_frame 1, 1 + obj_image_anim_end gUnknown_085A7BA8:: @ 85A7BA8 -obj_image_anim_frame 0, 30 -obj_image_anim_frame 1, 30 -obj_image_anim_jump 0 + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_jump 0 gUnknown_085A7BB4:: @ 85A7BB4 -obj_image_anim_frame 0, 16 -obj_image_anim_frame 1, 16 -obj_image_anim_frame 0, 16 -obj_image_anim_frame 1, 80 -obj_image_anim_jump 0 + obj_image_anim_frame 0, 16 + obj_image_anim_frame 1, 16 + obj_image_anim_frame 0, 16 + obj_image_anim_frame 1, 80 + obj_image_anim_jump 0 gUnknown_085A7BC8:: @ 85A7BC8 -obj_image_anim_frame 0, 1 -obj_image_anim_end + obj_image_anim_frame 0, 1 + obj_image_anim_end gUnknown_085A7BD0:: @ 85A7BD0 -obj_image_anim_frame 0, 1 -obj_image_anim_end + obj_image_anim_frame 0, 1 + obj_image_anim_end gUnknown_085A7BD8:: @ 85A7BD8 -obj_image_anim_frame 1, 1 -obj_image_anim_end + obj_image_anim_frame 1, 1 + obj_image_anim_end gUnknown_085A7BE0:: @ 85A7BE0 -obj_image_anim_frame 2, 1 -obj_image_anim_end + obj_image_anim_frame 2, 1 + obj_image_anim_end gUnknown_085A7BE8:: @ 85A7BE8 -obj_image_anim_frame 3, 1 -obj_image_anim_end + obj_image_anim_frame 3, 1 + obj_image_anim_end gUnknown_085A7BF0:: @ 85A7BF0 -obj_image_anim_frame 4, 1 -obj_image_anim_end + obj_image_anim_frame 4, 1 + obj_image_anim_end gUnknown_085A7BF8:: @ 85A7BF8 -.4byte gUnknown_085A7AFC + .4byte gUnknown_085A7AFC gUnknown_085A7BFC:: @ 85A7BFC -.4byte gUnknown_085A7B04 + .4byte gUnknown_085A7B04 gUnknown_085A7C00:: @ 85A7C00 -.4byte gUnknown_085A7B0C -.4byte gUnknown_085A7B14 -.4byte gUnknown_085A7B20 -.4byte gUnknown_085A7B2C -.4byte gUnknown_085A7B38 -.4byte gUnknown_085A7B44 + .4byte gUnknown_085A7B0C + .4byte gUnknown_085A7B14 + .4byte gUnknown_085A7B20 + .4byte gUnknown_085A7B2C + .4byte gUnknown_085A7B38 + .4byte gUnknown_085A7B44 gUnknown_085A7C18:: @ 85A7C18 -.4byte gUnknown_085A7B4C -.4byte gUnknown_085A7B54 -.4byte gUnknown_085A7B5C -.4byte gUnknown_085A7B64 -.4byte gUnknown_085A7B6C -.4byte gUnknown_085A7B74 + .4byte gUnknown_085A7B4C + .4byte gUnknown_085A7B54 + .4byte gUnknown_085A7B5C + .4byte gUnknown_085A7B64 + .4byte gUnknown_085A7B6C + .4byte gUnknown_085A7B74 gUnknown_085A7C30:: @ 85A7C30 -.4byte gUnknown_085A7B7C + .4byte gUnknown_085A7B7C gUnknown_085A7C34:: @ 85A7C34 -.4byte gUnknown_085A7B88 + .4byte gUnknown_085A7B88 gUnknown_085A7C38:: @ 85A7C38 -.4byte gUnknown_085A7B94 -.4byte gUnknown_085A7BA0 + .4byte gUnknown_085A7B94 + .4byte gUnknown_085A7BA0 gUnknown_085A7C40:: @ 85A7C40 -.4byte gUnknown_085A7BA8 + .4byte gUnknown_085A7BA8 gUnknown_085A7C44:: @ 85A7C44 -.4byte gUnknown_085A7BB4 -.4byte gUnknown_085A7BC8 + .4byte gUnknown_085A7BB4 + .4byte gUnknown_085A7BC8 gUnknown_085A7C4C:: @ 85A7C4C -.4byte gUnknown_085A7BD0 -.4byte gUnknown_085A7BD8 -.4byte gUnknown_085A7BE0 -.4byte gUnknown_085A7BE8 -.4byte gUnknown_085A7BF0 + .4byte gUnknown_085A7BD0 + .4byte gUnknown_085A7BD8 + .4byte gUnknown_085A7BE0 + .4byte gUnknown_085A7BE8 + .4byte gUnknown_085A7BF0 gUnknown_085A7C60:: @ 85A7C60 -obj_rot_scal_anim_frame 16, 16, 0, 0 -obj_rot_scal_anim_loop 0 -obj_rot_scal_anim_frame 1, 1, 0, 1 -obj_rot_scal_anim_loop 0xFF -obj_rot_scal_anim_end + obj_rot_scal_anim_frame 16, 16, 0, 0 + obj_rot_scal_anim_loop 0 + obj_rot_scal_anim_frame 1, 1, 0, 1 + obj_rot_scal_anim_loop 0xFF + obj_rot_scal_anim_end gUnknown_085A7C88:: @ 85A7C88 -.4byte gUnknown_085A7C60 + .4byte gUnknown_085A7C60 gUnknown_085A7C8C:: @ 85A7C8C -obj_rot_scal_anim_frame 0, 0, 8, 32 -obj_rot_scal_anim_frame 0, 0, 6, 32 -obj_rot_scal_anim_frame 0, 0, 4, 16 -obj_rot_scal_anim_frame 0, 0, 12, 2 -obj_rot_scal_anim_frame 0, 0, -12, 4 -obj_rot_scal_anim_frame 0, 0, 12, 2 -obj_rot_scal_anim_frame 0, 0, 12, 2 -obj_rot_scal_anim_frame 0, 0, -12, 4 -obj_rot_scal_anim_frame 0, 0, 12, 2 -obj_rot_scal_anim_end + obj_rot_scal_anim_frame 0, 0, 8, 32 + obj_rot_scal_anim_frame 0, 0, 6, 32 + obj_rot_scal_anim_frame 0, 0, 4, 16 + obj_rot_scal_anim_frame 0, 0, 12, 2 + obj_rot_scal_anim_frame 0, 0, -12, 4 + obj_rot_scal_anim_frame 0, 0, 12, 2 + obj_rot_scal_anim_frame 0, 0, 12, 2 + obj_rot_scal_anim_frame 0, 0, -12, 4 + obj_rot_scal_anim_frame 0, 0, 12, 2 + obj_rot_scal_anim_end gUnknown_085A7CDC:: @ 85A7CDC -.4byte gUnknown_085A7C8C + .4byte gUnknown_085A7C8C gSpriteTemplate_83ED414:: @ 85A7CE0 -spr_template 0, 0, gUnknown_085A7A5C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, sub_8104F18 + spr_template 0, 0, gUnknown_085A7A5C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, sub_8104F18 gSpriteTemplate_83ED42C:: @ 85A7CF8 -spr_template 7, 4, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, sub_810506C + spr_template 7, 4, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, sub_810506C gSpriteTemplate_83ED444:: @ 85A7D10 -spr_template 17, 0, gUnknown_085A7A74, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 17, 0, gUnknown_085A7A74, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gSpriteTemplate_83ED45C:: @ 85A7D28 -spr_template 0xFFFF, 1, gUnknown_085A7A74, gUnknown_085A7C00, NULL, gDummySpriteAffineAnimTable, sub_8105170 + spr_template 0xFFFF, 1, gUnknown_085A7A74, gUnknown_085A7C00, NULL, gDummySpriteAffineAnimTable, sub_8105170 gSpriteTemplate_83ED474:: @ 85A7D40 -spr_template 0xFFFF, 2, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 0xFFFF, 2, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gSpriteTemplate_83ED48C:: @ 85A7D58 -spr_template 0xFFFF, 3, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 0xFFFF, 3, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gSpriteTemplate_83ED4A4:: @ 85A7D70 -spr_template 0xFFFF, 3, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 0xFFFF, 3, gUnknown_085A7A44, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gSpriteTemplate_83ED4BC:: @ 85A7D88 -spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7C18, gUnknown_085A7A7C, gDummySpriteAffineAnimTable, sub_810535C + spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7C18, gUnknown_085A7A7C, gDummySpriteAffineAnimTable, sub_810535C gSpriteTemplate_83ED4D4:: @ 85A7DA0 -spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7BF8, gUnknown_085A7AAC, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7BF8, gUnknown_085A7AAC, gDummySpriteAffineAnimTable, SpriteCallbackDummy gSpriteTemplate_83ED4EC:: @ 85A7DB8 -spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7BF8, gUnknown_085A7AB4, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7BF8, gUnknown_085A7AB4, gDummySpriteAffineAnimTable, SpriteCallbackDummy gSpriteTemplate_83ED504:: @ 85A7DD0 -spr_template 0xFFFF, 4, gUnknown_085A7A54, gUnknown_085A7C30, gUnknown_085A7ABC, gDummySpriteAffineAnimTable, sub_810562C + spr_template 0xFFFF, 4, gUnknown_085A7A54, gUnknown_085A7C30, gUnknown_085A7ABC, gDummySpriteAffineAnimTable, sub_810562C gSpriteTemplate_83ED51C:: @ 85A7DE8 -spr_template 0xFFFF, 7, gUnknown_085A7A64, gUnknown_085A7BF8, gUnknown_085A7ACC, gDummySpriteAffineAnimTable, sub_8105784 + spr_template 0xFFFF, 7, gUnknown_085A7A64, gUnknown_085A7BF8, gUnknown_085A7ACC, gDummySpriteAffineAnimTable, sub_8105784 gSpriteTemplate_83ED534:: @ 85A7E00 -spr_template 0xFFFF, 5, gUnknown_085A7A5C, gUnknown_085A7C34, gUnknown_085A7AD4, gDummySpriteAffineAnimTable, sub_8105894 + spr_template 0xFFFF, 5, gUnknown_085A7A5C, gUnknown_085A7C34, gUnknown_085A7AD4, gDummySpriteAffineAnimTable, sub_8105894 gSpriteTemplate_83ED54C:: @ 85A7E18 -spr_template 0xFFFF, 4, gUnknown_085A7A3C, gUnknown_085A7BFC, gUnknown_085A7AE4, gDummySpriteAffineAnimTable, sub_810594C + spr_template 0xFFFF, 4, gUnknown_085A7A3C, gUnknown_085A7BFC, gUnknown_085A7AE4, gDummySpriteAffineAnimTable, sub_810594C gSpriteTemplate_83ED564:: @ 85A7E30 -spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7BF8, gUnknown_085A7AEC, gUnknown_085A7C88, sub_8105A38 + spr_template 0xFFFF, 4, gUnknown_085A7A4C, gUnknown_085A7BF8, gUnknown_085A7AEC, gUnknown_085A7C88, sub_8105A38 gUnknown_085A7E48:: @ 85A7E48 -spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_085A7E60:: @ 85A7E60 -spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_085A7E78:: @ 85A7E78 -spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_085A7E90:: @ 85A7E90 -spr_template 18, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 18, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_085A7EA8:: @ 85A7EA8 -spr_template 0xFFFF, 6, gUnknown_085A7A6C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 0xFFFF, 6, gUnknown_085A7A6C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_085A7EC0:: @ 85A7EC0 -spr_template 0xFFFF, 6, gUnknown_085A7A6C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 0xFFFF, 6, gUnknown_085A7A6C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_085A7ED8:: @ 85A7ED8 -spr_template 19, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 19, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_085A7EF0:: @ 85A7EF0 -spr_template 20, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 20, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_085A7F08:: @ 85A7F08 -spr_template 21, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 21, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_085A7F20:: @ 85A7F20 -spr_template 0xFFFF, 6, gUnknown_085A7A5C, gUnknown_085A7C38, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 0xFFFF, 6, gUnknown_085A7A5C, gUnknown_085A7C38, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_085A7F38:: @ 85A7F38 -spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7BF8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_085A7F50:: @ 85A7F50 -spr_template 0xFFFF, 6, gUnknown_085A7A4C, gUnknown_085A7C4C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 0xFFFF, 6, gUnknown_085A7A4C, gUnknown_085A7C4C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_085A7F68:: @ 85A7F68 -spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7C44, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7C44, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gUnknown_085A7F80:: @ 85A7F80 -spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7C40, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 0xFFFF, 6, gUnknown_085A7A3C, gUnknown_085A7C40, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy gSpriteTemplate_83ED6CC:: @ 85A7F98 -spr_template 0xFFFF, 4, gUnknown_085A7A3C, gUnknown_085A7BF8, gUnknown_085A7AF4, gUnknown_085A7CDC, sub_8105B70 + spr_template 0xFFFF, 4, gUnknown_085A7A3C, gUnknown_085A7BF8, gUnknown_085A7AF4, gUnknown_085A7CDC, sub_8105B70 gUnknown_085A7FB0:: @ 85A7FB0 -subsprite -64, -64, 3, 0, 64x64 -subsprite 0, -64, 3, 0, 64x64 -subsprite -64, 0, 3, 0, 64x64 -subsprite 0, 0, 3, 0, 64x64 + subsprite -64, -64, 3, 0, 64x64 + subsprite 0, -64, 3, 0, 64x64 + subsprite -64, 0, 3, 0, 64x64 + subsprite 0, 0, 3, 0, 64x64 gSubspriteTables_83ED704:: @ 85A7FC0 -.4byte 4, gUnknown_085A7FB0 + .4byte 4, gUnknown_085A7FB0 gUnknown_085A7FC8:: @ 85A7FC8 -subsprite -32, -12, 1, 0, 32x8 -subsprite 0, -12, 1, 4, 32x8 -subsprite -32, -4, 1, 8, 32x8 -subsprite 0, -4, 1, 12, 32x8 -subsprite -32, 4, 1, 16, 32x8 -subsprite 0, 4, 1, 20, 32x8 + subsprite -32, -12, 1, 0, 32x8 + subsprite 0, -12, 1, 4, 32x8 + subsprite -32, -4, 1, 8, 32x8 + subsprite 0, -4, 1, 12, 32x8 + subsprite -32, 4, 1, 16, 32x8 + subsprite 0, 4, 1, 20, 32x8 gSubspriteTables_83ED73C:: @ 85A7FE0 -.4byte 6, gUnknown_085A7FC8 + .4byte 6, gUnknown_085A7FC8 gUnknown_085A7FE8:: @ 85A7FE8 -subsprite -32, -20, 1, 0, 64x32 -subsprite -32, 12, 1, 32, 32x8 -subsprite 0, 12, 1, 36, 32x8 + subsprite -32, -20, 1, 0, 64x32 + subsprite -32, 12, 1, 32, 32x8 + subsprite 0, 12, 1, 36, 32x8 gSubspriteTables_83ED75C:: @ 85A7FF4 -.4byte 3, gUnknown_085A7FE8 + .4byte 3, gUnknown_085A7FE8 gUnknown_085A7FFC:: @ 85A7FFC -subsprite -32, -24, 1, 0, 64x32 -subsprite -32, 8, 1, 32, 32x8 -subsprite 0, 8, 1, 36, 32x8 -subsprite -32, 16, 1, 40, 32x8 -subsprite 0, 16, 1, 44, 32x8 + subsprite -32, -24, 1, 0, 64x32 + subsprite -32, 8, 1, 32, 32x8 + subsprite 0, 8, 1, 36, 32x8 + subsprite -32, 16, 1, 40, 32x8 + subsprite 0, 16, 1, 44, 32x8 gSubspriteTables_83ED78C:: @ 85A8010 -.4byte 5, gUnknown_085A7FFC + .4byte 5, gUnknown_085A7FFC gUnknown_085A8018:: @ 85A8018 -subsprite -32, -8, 1, 0, 32x8 -subsprite 0, -8, 1, 4, 32x8 -subsprite -32, 0, 1, 8, 32x8 -subsprite 0, 0, 1, 12, 32x8 + subsprite -32, -8, 1, 0, 32x8 + subsprite 0, -8, 1, 4, 32x8 + subsprite -32, 0, 1, 8, 32x8 + subsprite 0, 0, 1, 12, 32x8 gSubspriteTables_83ED7B4:: @ 85A8028 -.4byte 4, gUnknown_085A8018 + .4byte 4, gUnknown_085A8018 gUnknown_085A8030:: @ 85A8030 -subsprite -8, -12, 1, 0, 16x8 -subsprite -8, -4, 1, 0, 16x8 -subsprite -8, 4, 1, 0, 16x8 + subsprite -8, -12, 1, 0, 16x8 + subsprite -8, -4, 1, 0, 16x8 + subsprite -8, 4, 1, 0, 16x8 gSubspriteTables_83ED7D4:: @ 85A803C -.4byte 3, gUnknown_085A8030 + .4byte 3, gUnknown_085A8030 gUnknown_085A8044:: @ 85A8044 -subsprite -32, -24, 3, 0, 64x32 -subsprite -32, 8, 3, 32, 32x8 -subsprite 0, 8, 3, 36, 32x8 -subsprite -32, 16, 3, 40, 32x8 -subsprite 0, 16, 3, 44, 32x8 + subsprite -32, -24, 3, 0, 64x32 + subsprite -32, 8, 3, 32, 32x8 + subsprite 0, 8, 3, 36, 32x8 + subsprite -32, 16, 3, 40, 32x8 + subsprite 0, 16, 3, 44, 32x8 gUnknown_085A8058:: @ 85A8058 -.4byte 5, gUnknown_085A8044 + .4byte 5, gUnknown_085A8044 gUnknown_085A8060:: @ 85A8060 -subsprite -32, -8, 3, 0, 32x8 -subsprite 0, -8, 3, 4, 32x8 -subsprite -32, 0, 3, 8, 32x8 -subsprite 0, 0, 3, 12, 32x8 + subsprite -32, -8, 3, 0, 32x8 + subsprite 0, -8, 3, 4, 32x8 + subsprite -32, 0, 3, 8, 32x8 + subsprite 0, 0, 3, 12, 32x8 gUnknown_085A8070:: @ 85A8070 -.4byte 4, gUnknown_085A8060 + .4byte 4, gUnknown_085A8060 gUnknown_085A8078:: @ 85A8078 -subsprite -32, -8, 3, 0, 32x8 -subsprite 0, -8, 3, 4, 32x8 -subsprite -32, 0, 3, 8, 32x8 -subsprite 0, 0, 3, 12, 32x8 + subsprite -32, -8, 3, 0, 32x8 + subsprite 0, -8, 3, 4, 32x8 + subsprite -32, 0, 3, 8, 32x8 + subsprite 0, 0, 3, 12, 32x8 gUnknown_085A8088:: @ 85A8088 -.4byte 4, gUnknown_085A8078 + .4byte 4, gUnknown_085A8078 gUnknown_085A8090:: @ 85A8090 -subsprite -32, -8, 3, 0, 32x8 -subsprite 0, -8, 3, 4, 32x8 -subsprite -32, 0, 3, 8, 32x8 -subsprite 0, 0, 3, 12, 32x8 + subsprite -32, -8, 3, 0, 32x8 + subsprite 0, -8, 3, 4, 32x8 + subsprite -32, 0, 3, 8, 32x8 + subsprite 0, 0, 3, 12, 32x8 gUnknown_085A80A0:: @ 85A80A0 -.4byte 4, gUnknown_085A8090 + .4byte 4, gUnknown_085A8090 gUnknown_085A80A8:: @ 85A80A8 -subsprite -32, -12, 3, 0, 32x8 -subsprite 0, -12, 3, 4, 32x8 -subsprite -32, -4, 3, 8, 32x8 -subsprite 0, -4, 3, 12, 32x8 -subsprite -32, 4, 3, 16, 32x8 -subsprite 0, 4, 3, 20, 32x8 + subsprite -32, -12, 3, 0, 32x8 + subsprite 0, -12, 3, 4, 32x8 + subsprite -32, -4, 3, 8, 32x8 + subsprite 0, -4, 3, 12, 32x8 + subsprite -32, 4, 3, 16, 32x8 + subsprite 0, 4, 3, 20, 32x8 gUnknown_085A80C0:: @ 85A80C0 -.4byte 6, gUnknown_085A80A8 + .4byte 6, gUnknown_085A80A8 gUnknown_085A80C8:: @ 85A80C8 -subsprite -16, -16, 3, 0, 32x32 + subsprite -16, -16, 3, 0, 32x32 gUnknown_085A80CC:: @ 85A80CC -subsprite -8, -8, 3, 16, 16x16 + subsprite -8, -8, 3, 16, 16x16 gUnknown_085A80D0:: @ 85A80D0 -.4byte 1, gUnknown_085A80C8 + .4byte 1, gUnknown_085A80C8 gUnknown_085A80D8:: @ 85A80D8 -.4byte 1, gUnknown_085A80CC + .4byte 1, gUnknown_085A80CC gUnknown_085A80E0:: @ 85A80E0 -subsprite -24, -24, 3, 0, 32x8 -subsprite 8, -24, 3, 4, 16x8 -subsprite -24, -16, 3, 6, 32x8 -subsprite 8, -16, 3, 10, 16x8 -subsprite -24, -8, 3, 12, 32x8 -subsprite 8, -8, 3, 16, 16x8 -subsprite -24, 0, 3, 18, 32x8 -subsprite 8, 0, 3, 22, 16x8 -subsprite -24, 8, 3, 24, 32x8 -subsprite 8, 8, 3, 28, 16x8 -subsprite -24, 16, 3, 30, 32x8 -subsprite 8, 16, 3, 34, 16x8 + subsprite -24, -24, 3, 0, 32x8 + subsprite 8, -24, 3, 4, 16x8 + subsprite -24, -16, 3, 6, 32x8 + subsprite 8, -16, 3, 10, 16x8 + subsprite -24, -8, 3, 12, 32x8 + subsprite 8, -8, 3, 16, 16x8 + subsprite -24, 0, 3, 18, 32x8 + subsprite 8, 0, 3, 22, 16x8 + subsprite -24, 8, 3, 24, 32x8 + subsprite 8, 8, 3, 28, 16x8 + subsprite -24, 16, 3, 30, 32x8 + subsprite 8, 16, 3, 34, 16x8 gUnknown_085A8110:: @ 85A8110 -.4byte 12, gUnknown_085A80E0 + .4byte 12, gUnknown_085A80E0 gUnknown_085A8118:: @ 85A8118 -subsprite -16, -12, 3, 0, 32x16 -subsprite -16, 4, 3, 8, 16x8 -subsprite 0, 4, 3, 10, 16x8 + subsprite -16, -12, 3, 0, 32x16 + subsprite -16, 4, 3, 8, 16x8 + subsprite 0, 4, 3, 10, 16x8 gUnknown_085A8124:: @ 85A8124 -.4byte 3, gUnknown_085A8118 + .4byte 3, gUnknown_085A8118 gUnknown_085A812C:: @ 85A812C -subsprite -8, -8, 3, 0, 16x8 -subsprite -8, 0, 3, 8, 16x8 + subsprite -8, -8, 3, 0, 16x8 + subsprite -8, 0, 3, 8, 16x8 gUnknown_085A8134:: @ 85A8134 -.4byte 2, gUnknown_085A812C + .4byte 2, gUnknown_085A812C gUnknown_085A813C:: @ 85A813C -subsprite -8, -8, 3, 2, 16x8 -subsprite -8, 0, 3, 10, 16x8 + subsprite -8, -8, 3, 2, 16x8 + subsprite -8, 0, 3, 10, 16x8 gUnknown_085A8144:: @ 85A8144 -.4byte 2, gUnknown_085A813C + .4byte 2, gUnknown_085A813C gUnknown_085A814C:: @ 85A814C -subsprite -8, -8, 3, 4, 16x8 -subsprite -8, 0, 3, 12, 16x8 + subsprite -8, -8, 3, 4, 16x8 + subsprite -8, 0, 3, 12, 16x8 gUnknown_085A8154:: @ 85A8154 -.4byte 2, gUnknown_085A814C + .4byte 2, gUnknown_085A814C gUnknown_085A815C:: @ 85A815C -subsprite -8, -8, 3, 6, 16x8 -subsprite -8, 0, 3, 14, 16x8 + subsprite -8, -8, 3, 6, 16x8 + subsprite -8, 0, 3, 14, 16x8 gUnknown_085A8164:: @ 85A8164 -.4byte 2, gUnknown_085A815C + .4byte 2, gUnknown_085A815C gUnknown_085A816C:: @ 85A816C -subsprite -8, -8, 3, 0, 16x8 -subsprite -8, 0, 3, 8, 16x8 + subsprite -8, -8, 3, 0, 16x8 + subsprite -8, 0, 3, 8, 16x8 gUnknown_085A8174:: @ 85A8174 -.4byte 2, gUnknown_085A816C + .4byte 2, gUnknown_085A816C gUnknown_085A817C:: @ 85A817C -subsprite -4, -8, 3, 2, 8x8 -subsprite -4, 0, 3, 10, 8x8 + subsprite -4, -8, 3, 2, 8x8 + subsprite -4, 0, 3, 10, 8x8 gUnknown_085A8184:: @ 85A8184 -.4byte 2, gUnknown_085A817C + .4byte 2, gUnknown_085A817C gUnknown_085A818C:: @ 85A818C -subsprite -8, -8, 3, 3, 16x8 -subsprite -8, 0, 3, 11, 16x8 + subsprite -8, -8, 3, 3, 16x8 + subsprite -8, 0, 3, 11, 16x8 gUnknown_085A8194:: @ 85A8194 -.4byte 2, gUnknown_085A818C + .4byte 2, gUnknown_085A818C gUnknown_085A819C:: @ 85A819C -subsprite -4, -8, 3, 5, 8x8 -subsprite -4, 0, 3, 13, 8x8 + subsprite -4, -8, 3, 5, 8x8 + subsprite -4, 0, 3, 13, 8x8 gUnknown_085A81A4:: @ 85A81A4 -.4byte 2, gUnknown_085A819C + .4byte 2, gUnknown_085A819C gUnknown_085A81AC:: @ 85A81AC -subsprite -8, -8, 3, 6, 16x8 -subsprite -8, 0, 3, 14, 16x8 + subsprite -8, -8, 3, 6, 16x8 + subsprite -8, 0, 3, 14, 16x8 gUnknown_085A81B4:: @ 85A81B4 -.4byte 2, gUnknown_085A81AC + .4byte 2, gUnknown_085A81AC gUnknown_085A81BC:: @ 85A81BC -subsprite -12, -12, 3, 0, 16x8 -subsprite 4, -12, 3, 2, 8x8 -subsprite -12, -4, 3, 8, 16x8 -subsprite 4, -4, 3, 10, 8x8 -subsprite -12, 4, 3, 16, 16x8 -subsprite 4, 4, 3, 18, 8x8 + subsprite -12, -12, 3, 0, 16x8 + subsprite 4, -12, 3, 2, 8x8 + subsprite -12, -4, 3, 8, 16x8 + subsprite 4, -4, 3, 10, 8x8 + subsprite -12, 4, 3, 16, 16x8 + subsprite 4, 4, 3, 18, 8x8 gUnknown_085A81D4:: @ 85A81D4 -.4byte 6, gUnknown_085A81BC + .4byte 6, gUnknown_085A81BC gUnknown_085A81DC:: @ 85A81DC -subsprite -8, -12, 3, 3, 16x8 -subsprite -8, -4, 3, 11, 16x8 -subsprite -8, 4, 3, 19, 16x8 + subsprite -8, -12, 3, 3, 16x8 + subsprite -8, -4, 3, 11, 16x8 + subsprite -8, 4, 3, 19, 16x8 gUnknown_085A81E8:: @ 85A81E8 -.4byte 3, gUnknown_085A81DC + .4byte 3, gUnknown_085A81DC gUnknown_085A81F0:: @ 85A81F0 -subsprite -12, -12, 3, 5, 16x8 -subsprite 4, -12, 3, 7, 8x8 -subsprite -12, -4, 3, 13, 16x8 -subsprite 4, -4, 3, 15, 8x8 -subsprite -12, 4, 3, 21, 16x8 -subsprite 4, 4, 3, 0x17, 8x8 + subsprite -12, -12, 3, 5, 16x8 + subsprite 4, -12, 3, 7, 8x8 + subsprite -12, -4, 3, 13, 16x8 + subsprite 4, -4, 3, 15, 8x8 + subsprite -12, 4, 3, 21, 16x8 + subsprite 4, 4, 3, 0x17, 8x8 gUnknown_085A8208:: @ 85A8208 -.4byte 6, gUnknown_085A81F0 + .4byte 6, gUnknown_085A81F0 gUnknown_085A8210:: @ 85A8210 -subsprite -12, -12, 3, 0, 16x8 -subsprite 4, -12, 3, 2, 8x8 -subsprite -12, -4, 3, 8, 16x8 -subsprite 4, -4, 3, 10, 8x8 -subsprite -12, 4, 3, 16, 16x8 -subsprite 4, 4, 3, 18, 8x8 + subsprite -12, -12, 3, 0, 16x8 + subsprite 4, -12, 3, 2, 8x8 + subsprite -12, -4, 3, 8, 16x8 + subsprite 4, -4, 3, 10, 8x8 + subsprite -12, 4, 3, 16, 16x8 + subsprite 4, 4, 3, 18, 8x8 gUnknown_085A8228:: @ 85A8228 -.4byte 6, gUnknown_085A8210 + .4byte 6, gUnknown_085A8210 gUnknown_085A822C:: @ 85A822C -subsprite -8, -12, 3, 3, 16x8 -subsprite -8, -4, 3, 11, 16x8 -subsprite -8, 4, 3, 19, 16x8 + subsprite -8, -12, 3, 3, 16x8 + subsprite -8, -4, 3, 11, 16x8 + subsprite -8, 4, 3, 19, 16x8 gUnknown_085A823C:: @ 85A823C -.4byte 3, gUnknown_085A822C + .4byte 3, gUnknown_085A822C gUnknown_085A8244:: @ 85A8244 -subsprite -12, -12, 3, 5, 16x8 -subsprite 4, -12, 3, 7, 8x8 -subsprite -12, -4, 3, 13, 16x8 -subsprite 4, -4, 3, 15, 8x8 -subsprite -12, 4, 3, 21, 16x8 -subsprite 4, 4, 3, 23, 8x8 + subsprite -12, -12, 3, 5, 16x8 + subsprite 4, -12, 3, 7, 8x8 + subsprite -12, -4, 3, 13, 16x8 + subsprite 4, -4, 3, 15, 8x8 + subsprite -12, 4, 3, 21, 16x8 + subsprite 4, 4, 3, 23, 8x8 gUnknown_085A825C:: @ 85A825C -.4byte 6, gUnknown_085A8244 + .4byte 6, gUnknown_085A8244 gUnknown_083EDB5C:: @ 85A8264 -.4byte gUnknown_085A7E48 -.4byte gUnknown_085A7E60 -.4byte gUnknown_085A7E78 -.4byte gUnknown_085A7EA8 -.4byte gUnknown_085A7EC0 -.4byte gUnknown_085A7F20 -.4byte gUnknown_085A7F38 -.4byte gUnknown_085A7F50 -.4byte gUnknown_085A7F68 -.4byte gUnknown_085A7F80 -.4byte gUnknown_085A7E90 -.4byte gUnknown_085A7E90 -.4byte gUnknown_085A7E90 -.4byte gUnknown_085A7E90 -.4byte gUnknown_085A7ED8 -.4byte gUnknown_085A7ED8 -.4byte gUnknown_085A7ED8 -.4byte gUnknown_085A7ED8 -.4byte gUnknown_085A7ED8 -.4byte gUnknown_085A7EF0 -.4byte gUnknown_085A7EF0 -.4byte gUnknown_085A7EF0 -.4byte gUnknown_085A7F08 -.4byte gUnknown_085A7F08 -.4byte gUnknown_085A7F08 -.4byte gDummySpriteTemplate + .4byte gUnknown_085A7E48 + .4byte gUnknown_085A7E60 + .4byte gUnknown_085A7E78 + .4byte gUnknown_085A7EA8 + .4byte gUnknown_085A7EC0 + .4byte gUnknown_085A7F20 + .4byte gUnknown_085A7F38 + .4byte gUnknown_085A7F50 + .4byte gUnknown_085A7F68 + .4byte gUnknown_085A7F80 + .4byte gUnknown_085A7E90 + .4byte gUnknown_085A7E90 + .4byte gUnknown_085A7E90 + .4byte gUnknown_085A7E90 + .4byte gUnknown_085A7ED8 + .4byte gUnknown_085A7ED8 + .4byte gUnknown_085A7ED8 + .4byte gUnknown_085A7ED8 + .4byte gUnknown_085A7ED8 + .4byte gUnknown_085A7EF0 + .4byte gUnknown_085A7EF0 + .4byte gUnknown_085A7EF0 + .4byte gUnknown_085A7F08 + .4byte gUnknown_085A7F08 + .4byte gUnknown_085A7F08 + .4byte gDummySpriteTemplate gUnknown_083EDBC4:: @ 85A82CC -.4byte gUnknown_085A8058 -.4byte gUnknown_085A8070 -.4byte gUnknown_085A8088 -.4byte gUnknown_085A80C0 -.4byte NULL -.4byte NULL -.4byte gUnknown_085A80D0 -.4byte NULL -.4byte gUnknown_085A8110 -.4byte gUnknown_085A8124 -.4byte gUnknown_085A8134 -.4byte gUnknown_085A8144 -.4byte gUnknown_085A8154 -.4byte gUnknown_085A8164 -.4byte gUnknown_085A8174 -.4byte gUnknown_085A8184 -.4byte gUnknown_085A8194 -.4byte gUnknown_085A81A4 -.4byte gUnknown_085A81B4 -.4byte gUnknown_085A81D4 -.4byte gUnknown_085A81E8 -.4byte gUnknown_085A8208 -.4byte gUnknown_085A8228 -.4byte gUnknown_085A823C -.4byte gUnknown_085A825C -.4byte NULL - -.align 2 -sSlotMachineSpriteSheets:: @ 85A8334 -obj_tiles gSlotMachineReelSymbol1Tiles, 0x0200, 0x0000 -obj_tiles gSlotMachineReelSymbol2Tiles, 0x0200, 0x0001 -obj_tiles gSlotMachineReelSymbol3Tiles, 0x0200, 0x0002 -obj_tiles gSlotMachineReelSymbol4Tiles, 0x0200, 0x0003 -obj_tiles gSlotMachineReelSymbol5Tiles, 0x0200, 0x0004 -obj_tiles gSlotMachineReelSymbol6Tiles, 0x0200, 0x0005 -obj_tiles gSlotMachineReelSymbol7Tiles, 0x0200, 0x0006 -obj_tiles gSlotMachineNumber0Tiles, 0x0040, 0x0007 -obj_tiles gSlotMachineNumber1Tiles, 0x0040, 0x0008 -obj_tiles gSlotMachineNumber2Tiles, 0x0040, 0x0009 -obj_tiles gSlotMachineNumber3Tiles, 0x0040, 0x000A -obj_tiles gSlotMachineNumber4Tiles, 0x0040, 0x000B -obj_tiles gSlotMachineNumber5Tiles, 0x0040, 0x000C -obj_tiles gSlotMachineNumber6Tiles, 0x0040, 0x000D -obj_tiles gSlotMachineNumber7Tiles, 0x0040, 0x000E -obj_tiles gSlotMachineNumber8Tiles, 0x0040, 0x000F -obj_tiles gSlotMachineNumber9Tiles, 0x0040, 0x0010 - -.align 2 -.byte 0, 0, 0, 0, 0, 2, 0x12, 0, 0, 0, 0, 0, 0, 2, 0x13, 0, 0, 0, 0, 0, 0, 3, 0x14, 0, 0, 0, 0, 0, 0, 3, 0x15, 0, 0, 0, 0, 0, 0, 0, 0, 0 + .4byte gUnknown_085A8058 + .4byte gUnknown_085A8070 + .4byte gUnknown_085A8088 + .4byte gUnknown_085A80C0 + .4byte NULL + .4byte NULL + .4byte gUnknown_085A80D0 + .4byte NULL + .4byte gUnknown_085A8110 + .4byte gUnknown_085A8124 + .4byte gUnknown_085A8134 + .4byte gUnknown_085A8144 + .4byte gUnknown_085A8154 + .4byte gUnknown_085A8164 + .4byte gUnknown_085A8174 + .4byte gUnknown_085A8184 + .4byte gUnknown_085A8194 + .4byte gUnknown_085A81A4 + .4byte gUnknown_085A81B4 + .4byte gUnknown_085A81D4 + .4byte gUnknown_085A81E8 + .4byte gUnknown_085A8208 + .4byte gUnknown_085A8228 + .4byte gUnknown_085A823C + .4byte gUnknown_085A825C + .4byte NULL + + .align 2 +gSlotMachineSpriteSheets:: @ 85A8334 + obj_tiles gSlotMachineReelSymbol1Tiles, 0x0200, 0x0000 + obj_tiles gSlotMachineReelSymbol2Tiles, 0x0200, 0x0001 + obj_tiles gSlotMachineReelSymbol3Tiles, 0x0200, 0x0002 + obj_tiles gSlotMachineReelSymbol4Tiles, 0x0200, 0x0003 + obj_tiles gSlotMachineReelSymbol5Tiles, 0x0200, 0x0004 + obj_tiles gSlotMachineReelSymbol6Tiles, 0x0200, 0x0005 + obj_tiles gSlotMachineReelSymbol7Tiles, 0x0200, 0x0006 + obj_tiles gSlotMachineNumber0Tiles, 0x0040, 0x0007 + obj_tiles gSlotMachineNumber1Tiles, 0x0040, 0x0008 + obj_tiles gSlotMachineNumber2Tiles, 0x0040, 0x0009 + obj_tiles gSlotMachineNumber3Tiles, 0x0040, 0x000A + obj_tiles gSlotMachineNumber4Tiles, 0x0040, 0x000B + obj_tiles gSlotMachineNumber5Tiles, 0x0040, 0x000C + obj_tiles gSlotMachineNumber6Tiles, 0x0040, 0x000D + obj_tiles gSlotMachineNumber7Tiles, 0x0040, 0x000E + obj_tiles gSlotMachineNumber8Tiles, 0x0040, 0x000F + obj_tiles gSlotMachineNumber9Tiles, 0x0040, 0x0010 + + .align 2 + .byte 0, 0, 0, 0, 0, 2, 0x12, 0, 0, 0, 0, 0, 0, 2, 0x13, 0, 0, 0, 0, 0, 0, 3, 0x14, 0, 0, 0, 0, 0, 0, 3, 0x15, 0, 0, 0, 0, 0, 0, 0, 0, 0 gUnknown_083EDCDC:: @ 85A83E4 -.4byte gUnknown_08DD19F8 -@ might be a palette idk -.byte 0x7B, 0x6F, 0x68, 0x69, 0xAB, 0x36, 0xFF, 0x7F, 0x50, 0x57, 0xC0, 0x7E, 0xBA, 2, 0xBA, 2, 0xFD, 1, 0xFD, 1 + .4byte gUnknown_08DD19F8 + @ might be a palette idk + .byte 0x7B, 0x6F, 0x68, 0x69, 0xAB, 0x36, 0xFF, 0x7F, 0x50, 0x57, 0xC0, 0x7E, 0xBA, 2, 0xBA, 2, 0xFD, 1, 0xFD, 1 gUnknown_085A83FC:: @ 85A83FC -.byte 0x91, 0x7F + .byte 0x91, 0x7F gUnknown_085A83FE:: @ 85A83FE -.byte 0xBF, 0x43 + .byte 0xBF, 0x43 gUnknown_085A8400:: @ 85A8400 -.byte 0xBF, 0x43 + .byte 0xBF, 0x43 gUnknown_085A8402:: @ 85A8402 -.byte 0xBF, 0x4A + .byte 0xBF, 0x4A gUnknown_085A8404:: @ 85A8404 -.byte 0xBF, 0x4A, 0, 0 + .byte 0xBF, 0x4A, 0, 0 gUnknown_083EDD08:: @ 85A8408 -.4byte gUnknown_085A83FC -.4byte gUnknown_085A83FE -.4byte gUnknown_085A8400 -.4byte gUnknown_085A8402 -.4byte gUnknown_085A8404 + .4byte gUnknown_085A83FC + .4byte gUnknown_085A83FE + .4byte gUnknown_085A8400 + .4byte gUnknown_085A8402 + .4byte gUnknown_085A8404 gUnknown_083EDD1C:: @ 85A841C -.4byte gSlotMachineMenu_Pal + 0x94 -.4byte gSlotMachineMenu_Pal + 0x96 -.4byte gSlotMachineMenu_Pal + 0x98 -.4byte gSlotMachineMenu_Pal + 0x9A -.4byte gSlotMachineMenu_Pal + 0x9C + .4byte gSlotMachineMenu_Pal + 0x94 + .4byte gSlotMachineMenu_Pal + 0x96 + .4byte gSlotMachineMenu_Pal + 0x98 + .4byte gSlotMachineMenu_Pal + 0x9A + .4byte gSlotMachineMenu_Pal + 0x9C gUnknown_083EDD30:: @ 85A8430 -.byte 0x4A, 0x4B, 0x4C, 0x4E, 0x4D + .byte 0x4A, 0x4B, 0x4C, 0x4E, 0x4D gBettingTilesId:: @ 85A8435 -.byte 0, 0 -.byte 1, 2 -.byte 3, 4 + .byte 0, 0 + .byte 1, 2 + .byte 3, 4 gNumberBettingTiles:: @ 85A843B -.byte 1, 2, 2 + .byte 1, 2, 2 gUnknown_085A843E:: @ 85A843E -.incbin "graphics/slot_machine/85A843E.gbapal" + .incbin "graphics/slot_machine/85A843E.gbapal" gUnknown_085A845E:: @ 85A845E -.incbin "graphics/slot_machine/85A845E.gbapal" + .incbin "graphics/slot_machine/85A845E.gbapal" gUnknown_085A847E:: @ 85A847E -.incbin "graphics/slot_machine/85A847E.gbapal" + .incbin "graphics/slot_machine/85A847E.gbapal" -.align 2 + .align 2 gUnknown_083EDDA0:: @ 85A84A0 -.4byte gUnknown_085A843E -.4byte gUnknown_085A845E -.4byte gUnknown_085A847E + .4byte gUnknown_085A843E + .4byte gUnknown_085A845E + .4byte gUnknown_085A847E gUnknown_083EDDAC:: @ 85A84AC -.4byte gSlotMachineMenu_Pal + 0x20 + .4byte gSlotMachineMenu_Pal + 0x20 gUnknown_085A84B0:: @ 85A84B0 -.incbin "graphics/slot_machine/85A84B0.gbapal" + .incbin "graphics/slot_machine/85A84B0.gbapal" gUnknown_085A84D0:: @ 85A84D0 -.incbin "graphics/slot_machine/85A84D0.gbapal" + .incbin "graphics/slot_machine/85A84D0.gbapal" gUnknown_085A84F0:: @ 85A84F0 -.incbin "graphics/slot_machine/85A84F0.gbapal" + .incbin "graphics/slot_machine/85A84F0.gbapal" gUnknown_083EDE10:: @ 85A8510 -.4byte gUnknown_085A84B0 -.4byte gUnknown_085A84D0 -.4byte gUnknown_085A84F0 -.4byte gUnknown_08DCF230 + .4byte gUnknown_085A84B0 + .4byte gUnknown_085A84D0 + .4byte gUnknown_085A84F0 + .4byte gUnknown_08DCF230 gUnknown_083EDE20:: @ 85A8520 -.4byte gUnknown_08DCF230 + .4byte gUnknown_08DCF230 gPalette_83EDE24:: @ 85A8524 -.incbin "graphics/slot_machine/85A8524.bin" + .incbin "graphics/slot_machine/85A8524.bin" -.align 2 + .align 2 gSlotMachineSpritePalettes:: @ 85A8544 -obj_pal gUnknown_08DCF170, 0 -obj_pal gUnknown_08DCF190, 1 -obj_pal gUnknown_08DCF1B0, 2 -obj_pal gSlotMachineReelTime_Pal, 3 -obj_pal gUnknown_08DCF1F0, 4 -obj_pal gUnknown_08DCF210, 5 -obj_pal gUnknown_08DCF230, 6 -obj_pal gUnknown_08DCF1F0, 7 -null_obj_pal - -sReelTimeGfx:: @ 85A858C -.incbin "graphics/slot_machine/reel_time_gfx.4bpp.lz" - -sReelTimeWindowTilemap:: @ 85A96E0 -@if anyone knows what this tilemap is please do share -.incbin "graphics/slot_machine/85A96E0.bin" + obj_pal gUnknown_08DCF170, 0 + obj_pal gUnknown_08DCF190, 1 + obj_pal gUnknown_08DCF1B0, 2 + obj_pal gSlotMachineReelTime_Pal, 3 + obj_pal gUnknown_08DCF1F0, 4 + obj_pal gUnknown_08DCF210, 5 + obj_pal gUnknown_08DCF230, 6 + obj_pal gUnknown_08DCF1F0, 7 + null_obj_pal + +gReelTimeGfx:: @ 85A858C + .incbin "graphics/slot_machine/reel_time_gfx.4bpp.lz" + +gReelTimeWindowTilemap:: @ 85A96E0 + @if anyone knows what this tilemap is please do share + .incbin "graphics/slot_machine/85A96E0.bin" gUnknown_085A9898:: @ 85A9898 -.4byte NULL + .4byte NULL diff --git a/include/slot_machine.h b/include/slot_machine.h index 84622d914..d441b7411 100644 --- a/include/slot_machine.h +++ b/include/slot_machine.h @@ -15,11 +15,6 @@ #define LUCKY_BIAS_MIXED_777 (1 << 6) #define LUCKY_BIAS_777 (1 << 7) -// Rows -#define SLOT_TOP_ROW 0x0001 -#define SLOT_MIDDLE_ROW 0x0002 -#define SLOT_BOTTOM_ROW 0x0003 - void PlaySlotMachine(u8, void (callback)(void)); #endif // GUARD_SLOT_MACHINE_H -- cgit v1.2.3 From 189d387f01104a715d788690fbc76d987ea3d6e1 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 22 Feb 2019 03:08:48 -0500 Subject: Add macros for metatile manipulation --- asm/macros/event.inc | 4 ++-- include/global.fieldmap.h | 11 +++++++++-- src/battle_pyramid.c | 4 ++-- src/bg.c | 4 ++-- src/decoration.c | 16 ++++++++-------- src/field_effect.c | 2 +- src/field_specials.c | 12 ++++++------ src/fieldmap.c | 37 +++++++++++++++++++------------------ src/fldeff_escalator.c | 14 +++++++------- src/scrcmd.c | 6 +++--- src/secret_base.c | 16 ++++++++-------- src/tv.c | 5 +++-- 12 files changed, 70 insertions(+), 61 deletions(-) diff --git a/asm/macros/event.inc b/asm/macros/event.inc index fa0b3fa06..fa27d049e 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -1163,12 +1163,12 @@ .endm @ Changes the metatile at (x, y) on the current map. - .macro setmetatile x:req, y:req, metatile_number:req, tile_attrib:req + .macro setmetatile x:req, y:req, metatile_number:req, is_impassable:req .byte 0xa2 .2byte \x .2byte \y .2byte \metatile_number - .2byte \tile_attrib + .2byte \is_impassable .endm @ Queues a weather change to the default weather for the map. diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 74a8363bb..2b85a02d1 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -1,6 +1,13 @@ #ifndef GUARD_GLOBAL_FIELDMAP_H #define GUARD_GLOBAL_FIELDMAP_H +#define MAP_IMPASSABLE_MASK 0x0C00 +#define MAP_METATILE_ID_MASK 0x03FF +#define MAP_UNDEFINED_METATILE_ID 0x03FF +#define MAP_TILE_ELEVATION_SHIFT 12 +#define MAP_IMPASSABLE_SHIFT 10 +#define MAP_TILE_ELEVATION_MASK 0xF000 + enum { CONNECTION_SOUTH = 1, @@ -19,8 +26,8 @@ struct Tileset /*0x01*/ bool8 isSecondary; /*0x04*/ void *tiles; /*0x08*/ void *palettes; - /*0x0c*/ void *metatiles; - /*0x10*/ void *metatileAttributes; + /*0x0c*/ u16 *metatiles; + /*0x10*/ u16 *metatileAttributes; /*0x14*/ TilesetCB callback; }; diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index 340c17c59..92ff257b0 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -1267,7 +1267,7 @@ static u8 GetPostBattleDirectionHintTextIndex(int *hintType, u8 minDistanceForEx { for (x = 0; x < 32; x++) { - if ((map[x] & 0x3FF) == FLOOR_EXIT_METATILE) + if ((map[x] & MAP_METATILE_ID_MASK) == FLOOR_EXIT_METATILE) { x += 7 - gEventObjects[gSelectedEventObject].initialCoords.x; y += 7 - gEventObjects[gSelectedEventObject].initialCoords.y; @@ -1568,7 +1568,7 @@ void GenerateBattlePyramidFloorLayout(u16 *backupMapData, bool8 setPlayerPositio { for (x = 0; x < mapLayout->width; x++) { - if ((layoutMap[x] & 0x3FF) != FLOOR_EXIT_METATILE) + if ((layoutMap[x] & MAP_METATILE_ID_MASK) != FLOOR_EXIT_METATILE) { map[x] = layoutMap[x]; } diff --git a/src/bg.c b/src/bg.c index f73f5998d..571518650 100644 --- a/src/bg.c +++ b/src/bg.c @@ -1056,7 +1056,7 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt for (x16 = x; x16 < (x + width); x16++) { CopyTileMapEntry(&firstTileNum, &((u16*)sGpuBgConfigs2[bg].tilemap)[(u16)GetTileMapIndexFromCoords(x16, y16, attribute, mode, mode2)], paletteSlot, 0, 0); - firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & 0x3FF); + firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & MAP_METATILE_ID_MASK); } } break; @@ -1067,7 +1067,7 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt for (x16 = x; x16 < (x + width); x16++) { ((u8*)sGpuBgConfigs2[bg].tilemap)[(y16 * mode3) + x16] = firstTileNum; - firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & 0x3FF); + firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & MAP_METATILE_ID_MASK); } } break; diff --git a/src/decoration.c b/src/decoration.c index 2ac49b98c..e5f3b6d46 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -1158,7 +1158,7 @@ void sub_8127B90(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, u16 decor) u16 i; u16 j; u16 behavior; - u16 flags; + u16 impassableFlag; u16 v0; u16 v1; s16 decLeft; @@ -1173,11 +1173,11 @@ void sub_8127B90(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, u16 decor) behavior = GetBehaviorByMetatileId(0x200 + gDecorations[decor].tiles[i * decWidth + j]); if (MetatileBehavior_IsSecretBaseImpassable(behavior) == TRUE || (gDecorations[decor].permission != DECORPERM_PASS_FLOOR && (behavior >> 12))) { - flags = 0xc00; + impassableFlag = MAP_IMPASSABLE_MASK; } else { - flags = 0x000; + impassableFlag = 0x000; } if (gDecorations[decor].permission != DECORPERM_NA_WALL && MetatileBehavior_IsSecretBaseNorthWall(MapGridGetMetatileBehaviorAt(decLeft, decBottom)) == TRUE) { @@ -1190,11 +1190,11 @@ void sub_8127B90(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, u16 decor) v1 = sub_8127B54(gDecorations[decor].id, i * decWidth + j); if (v1 != 0xFFFF) { - MapGridSetMetatileEntryAt(decLeft, decBottom, (gDecorations[decor].tiles[i * decWidth + j] + (0x200 | v0)) | flags | v1); + MapGridSetMetatileEntryAt(decLeft, decBottom, (gDecorations[decor].tiles[i * decWidth + j] + (0x200 | v0)) | impassableFlag | v1); } else { - MapGridSetMetatileIdAt(decLeft, decBottom, (gDecorations[decor].tiles[i * decWidth + j] + (0x200 | v0)) | flags); + MapGridSetMetatileIdAt(decLeft, decBottom, (gDecorations[decor].tiles[i * decWidth + j] + (0x200 | v0)) | impassableFlag); } } } @@ -1502,7 +1502,7 @@ bool8 sub_812853C(u8 taskId, const struct Decoration *decoration) { curX = gTasks[taskId].data[0] + j; behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); - behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & 0xf000; + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & MAP_TILE_ELEVATION_MASK; if (!sub_81284F4(behaviorAt, decoration)) { return FALSE; @@ -1527,7 +1527,7 @@ bool8 sub_812853C(u8 taskId, const struct Decoration *decoration) { curX = gTasks[taskId].data[0] + j; behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); - behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & 0xf000; + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & MAP_TILE_ELEVATION_MASK; if (!MetatileBehavior_IsNormal(behaviorAt) && !sub_8128484(behaviorAt, behaviorBy)) { return FALSE; @@ -1547,7 +1547,7 @@ bool8 sub_812853C(u8 taskId, const struct Decoration *decoration) { curX = gTasks[taskId].data[0] + j; behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); - behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[j]) & 0xf000; + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[j]) & MAP_TILE_ELEVATION_MASK; if (!MetatileBehavior_IsNormal(behaviorAt) && !MetatileBehavior_IsSecretBaseNorthWall(behaviorAt)) { return FALSE; diff --git a/src/field_effect.c b/src/field_effect.c index e7c0b39b9..07a7f9caf 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -2620,7 +2620,7 @@ static void sub_80B8874(u16 offs) dest = (u16 *)(VRAM + 0x140 + offs); for (i = 0; i < 0x140; i++, dest++) { - *dest = gFieldMoveStreaksTilemap[i] | 0xf000; + *dest = gFieldMoveStreaksTilemap[i] | MAP_TILE_ELEVATION_MASK; } } diff --git a/src/field_specials.c b/src/field_specials.c index 307f81399..c7d1f4367 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -887,8 +887,8 @@ static void PetalburgGymFunc(u8 a0, u16 a1) } for (i = 0; i < nDoors; i++) { - MapGridSetMetatileIdAt(x[i] + 7, y[i] + 7, a1 | 0xc00); - MapGridSetMetatileIdAt(x[i] + 7, y[i] + 8, (a1 + 8) | 0xc00); + MapGridSetMetatileIdAt(x[i] + 7, y[i] + 7, a1 | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x[i] + 7, y[i] + 8, (a1 + 8) | MAP_IMPASSABLE_MASK); } DrawWholeMapView(); } @@ -1100,7 +1100,7 @@ static void PCTurnOnEffect_1(s16 flag, s8 dx, s8 dy) tileId = 0x27e; } } - MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | 0xc00); + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | MAP_IMPASSABLE_MASK); } void DoPCTurnOffEffect(void) @@ -1141,7 +1141,7 @@ static void PCTurnOffEffect(void) { tileId = 0x259; } - MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | 0xc00); + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | MAP_IMPASSABLE_MASK); DrawWholeMapView(); } @@ -1892,7 +1892,7 @@ static void sub_8139C80(u8 taskId) { for (x = 0; x < 3; x++) { - MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2BF4[y][data[0] % 3] | 0xC00); + MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2BF4[y][data[0] % 3] | MAP_IMPASSABLE_MASK); } } } @@ -1902,7 +1902,7 @@ static void sub_8139C80(u8 taskId) { for (x = 0; x < 3; x++) { - MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2C06[y][data[0] % 3] | 0xC00); + MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2C06[y][data[0] % 3] | MAP_IMPASSABLE_MASK); } } } diff --git a/src/fieldmap.c b/src/fieldmap.c index cf5f0356e..8131fb01b 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -383,15 +383,15 @@ u8 MapGridGetZCoordAt(int x, int y) i = (x + 1) & 1; i += ((y + 1) & 1) * 2; block = gMapHeader.mapLayout->border[i]; - block |= 0xc00; + block |= MAP_IMPASSABLE_MASK; } - if (block == 0x3ff) + if (block == MAP_UNDEFINED_METATILE_ID) { return 0; } - return block >> 12; + return block >> MAP_TILE_ELEVATION_SHIFT; } u8 MapGridIsImpassableAt(int x, int y) @@ -411,13 +411,13 @@ u8 MapGridIsImpassableAt(int x, int y) i = (x + 1) & 1; i += ((y + 1) & 1) * 2; block = gMapHeader.mapLayout->border[i]; - block |= 0xc00; + block |= MAP_IMPASSABLE_MASK; } - if (block == 0x3ff) + if (block == MAP_UNDEFINED_METATILE_ID) { return 1; } - return (block & 0xc00) >> 10; + return (block & MAP_IMPASSABLE_MASK) >> MAP_IMPASSABLE_SHIFT; } u32 MapGridGetMetatileIdAt(int x, int y) @@ -439,18 +439,19 @@ u32 MapGridGetMetatileIdAt(int x, int y) mapLayout = gMapHeader.mapLayout; i = (x + 1) & 1; i += ((y + 1) & 1) * 2; - block = mapLayout->border[i] | 0xc00; + block = mapLayout->border[i] | MAP_IMPASSABLE_MASK; } - if (block == 0x3ff) + if (block == MAP_UNDEFINED_METATILE_ID) { border = gMapHeader.mapLayout->border; j = (x + 1) & 1; j += ((y + 1) & 1) * 2; block2 = gMapHeader.mapLayout->border[j]; - block2 |= 0xc00; - return block2 & block; + // This OR is completely pointless. + block2 |= MAP_IMPASSABLE_MASK; + return block2 & MAP_METATILE_ID_MASK; } - return block & 0x3ff; + return block & MAP_METATILE_ID_MASK; } u32 MapGridGetMetatileBehaviorAt(int x, int y) @@ -464,7 +465,7 @@ u8 MapGridGetMetatileLayerTypeAt(int x, int y) { u16 metatile; metatile = MapGridGetMetatileIdAt(x, y); - return (GetBehaviorByMetatileId(metatile) & 0xf000) >> 12; + return (GetBehaviorByMetatileId(metatile) & MAP_TILE_ELEVATION_MASK) >> MAP_TILE_ELEVATION_SHIFT; } void MapGridSetMetatileIdAt(int x, int y, u16 metatile) @@ -474,7 +475,7 @@ void MapGridSetMetatileIdAt(int x, int y, u16 metatile) && y >= 0 && y < gBackupMapLayout.height) { i = x + y * gBackupMapLayout.width; - gBackupMapLayout.map[i] = (gBackupMapLayout.map[i] & 0xf000) | (metatile & 0xfff); + gBackupMapLayout.map[i] = (gBackupMapLayout.map[i] & MAP_TILE_ELEVATION_MASK) | (metatile & ~MAP_TILE_ELEVATION_MASK); } } @@ -654,7 +655,7 @@ int GetMapBorderIdAt(int x, int y) i = gBackupMapLayout.width; i *= y; block = gBackupMapLayout.map[x + i]; - if (block == 0x3ff) + if (block == MAP_UNDEFINED_METATILE_ID) { goto fail; } @@ -664,8 +665,8 @@ int GetMapBorderIdAt(int x, int y) mapLayout = gMapHeader.mapLayout; j = (x + 1) & 1; j += ((y + 1) & 1) * 2; - block2 = 0xc00 | mapLayout->border[j]; - if (block2 == 0x3ff) + block2 = MAP_IMPASSABLE_MASK | mapLayout->border[j]; + if (block2 == MAP_UNDEFINED_METATILE_ID) { goto fail; } @@ -921,7 +922,7 @@ void sub_8088B94(int x, int y, int a2) if (x >= 0 && x < gBackupMapLayout.width && y >= 0 && y < gBackupMapLayout.height) { if (a2 != 0) - gBackupMapLayout.map[x + gBackupMapLayout.width * y] |= 0xC00; + gBackupMapLayout.map[x + gBackupMapLayout.width * y] |= MAP_IMPASSABLE_MASK; else gBackupMapLayout.map[x + gBackupMapLayout.width * y] &= 0xF3FF; } @@ -937,7 +938,7 @@ static bool8 SkipCopyingMetatileFromSavedMap(u16* mapMetatilePtr, u16 mapWidth, else mapMetatilePtr += mapWidth; - if (sub_80FADE4(*mapMetatilePtr & 0x3FF, yMode) == 1) + if (sub_80FADE4(*mapMetatilePtr & MAP_METATILE_ID_MASK, yMode) == 1) return TRUE; return FALSE; } diff --git a/src/fldeff_escalator.c b/src/fldeff_escalator.c index 3d00fb162..4a1fb0fd5 100644 --- a/src/fldeff_escalator.c +++ b/src/fldeff_escalator.c @@ -7,7 +7,7 @@ static EWRAM_DATA u8 sEscalatorAnim_TaskId = 0; -static void sub_80E12E8(u8 taskId, const s16 *list, u16 c) +static void sub_80E12E8(u8 taskId, const s16 *list, u16 isImpassableFlag) { s16 r5 = gTasks[taskId].data[4] - 1; s16 r3 = gTasks[taskId].data[5] - 1; @@ -26,9 +26,9 @@ static void sub_80E12E8(u8 taskId, const s16 *list, u16 c) if (list[r4] == metatileId) { if (r4 != 2) - MapGridSetMetatileIdAt(r5 + x, r3 + y, c | list[r4 + 1]); + MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[r4 + 1]); else - MapGridSetMetatileIdAt(r5 + x, r3 + y, c | list[0]); + MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[0]); } } } @@ -44,9 +44,9 @@ static void sub_80E12E8(u8 taskId, const s16 *list, u16 c) if (list[2 - r4] == metatileId) { if (r4 != 2) - MapGridSetMetatileIdAt(r5 + x, r3 + y, c | list[1 - r4]); + MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[1 - r4]); else - MapGridSetMetatileIdAt(r5 + x, r3 + y, c | list[2]); + MapGridSetMetatileIdAt(r5 + x, r3 + y, isImpassableFlag | list[2]); } } } @@ -76,13 +76,13 @@ static void sub_80E1444(u8 taskId) sub_80E12E8(taskId, gUnknown_08589AC0, 0); break; case 2: - sub_80E12E8(taskId, gUnknown_08589AC6, 0xC00); + sub_80E12E8(taskId, gUnknown_08589AC6, MAP_IMPASSABLE_MASK); break; case 3: sub_80E12E8(taskId, gUnknown_08589ACC, 0); break; case 4: - sub_80E12E8(taskId, gUnknown_08589AD2, 0xC00); + sub_80E12E8(taskId, gUnknown_08589AD2, MAP_IMPASSABLE_MASK); break; case 5: sub_80E12E8(taskId, gUnknown_08589AD8, 0); diff --git a/src/scrcmd.c b/src/scrcmd.c index 51d96ff2e..9bafac41a 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -2028,14 +2028,14 @@ bool8 ScrCmd_setmetatile(struct ScriptContext *ctx) u16 x = VarGet(ScriptReadHalfword(ctx)); u16 y = VarGet(ScriptReadHalfword(ctx)); u16 tileId = VarGet(ScriptReadHalfword(ctx)); - u16 v8 = VarGet(ScriptReadHalfword(ctx)); + u16 isImpassable = VarGet(ScriptReadHalfword(ctx)); x += 7; y += 7; - if (!v8) + if (!isImpassable) MapGridSetMetatileIdAt(x, y, tileId); else - MapGridSetMetatileIdAt(x, y, tileId | 0xC00); + MapGridSetMetatileIdAt(x, y, tileId | MAP_IMPASSABLE_MASK); return FALSE; } diff --git a/src/secret_base.c b/src/secret_base.c index adcab9cbc..488f49377 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -259,7 +259,7 @@ void sub_80E8CB0(s16 *xPtr, s16 *yPtr, u16 tile) { for (x = 0; x < mapLayout->width; x ++) { - if ((mapLayout->map[y * mapLayout->width + x] & 0x3ff) == tile) + if ((mapLayout->map[y * mapLayout->width + x] & MAP_METATILE_ID_MASK) == tile) { *xPtr = x; *yPtr = y; @@ -282,7 +282,7 @@ void sub_80E8D4C(void) { if (gUnknown_0858CFCC[i].tile1 == tile) { - MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile2 | 0xC00); + MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile2 | MAP_IMPASSABLE_MASK); CurrentMapDrawMetatileAt(x, y); return; } @@ -291,7 +291,7 @@ void sub_80E8D4C(void) { if (gUnknown_0858CFCC[i].tile2 == tile) { - MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile1 | 0xC00); + MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile1 | MAP_IMPASSABLE_MASK); CurrentMapDrawMetatileAt(x, y); return; } @@ -352,7 +352,7 @@ void sub_80E8EE0(struct MapEvents const *events) { if (gUnknown_0858CFCC[i].tile1 == tile_id) { - MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile2 | 0xc00); + MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile2 | MAP_IMPASSABLE_MASK); break; } } @@ -434,7 +434,7 @@ void sub_80E9108(void) sub_80E8CB0(&x, &y, 0x220); x += 7; y += 7; - MapGridSetMetatileIdAt(x, y, 0x220 | 0xC00); + MapGridSetMetatileIdAt(x, y, 0x220 | MAP_IMPASSABLE_MASK); CurrentMapDrawMetatileAt(x, y); pal_fill_black(); CreateTask(sub_80E90C8, 0); @@ -492,12 +492,12 @@ void sub_80E9238(u8 flagIn) if (curBaseId != 0) { sub_80E8CB0(&x, &y, 0x220); - MapGridSetMetatileIdAt(x + 7, y + 7, 0x221 | 0xc00); + MapGridSetMetatileIdAt(x + 7, y + 7, 0x221 | MAP_IMPASSABLE_MASK); } else if (flagIn == 1 && VarGet(VAR_0x4089) == 1) { sub_80E8CB0(&x, &y, 0x220); - MapGridSetMetatileIdAt(x + 7, y + 7, 0x20a | 0xc00); + MapGridSetMetatileIdAt(x + 7, y + 7, 0x20a | MAP_IMPASSABLE_MASK); } } } @@ -791,7 +791,7 @@ void sub_80E9AD0(void) { if (gUnknown_0858CFCC[j].tile2 == tile) { - MapGridSetMetatileIdAt(events->bgEvents[i].x + 7, events->bgEvents[i].y + 7, gUnknown_0858CFCC[j].tile1 | 0xc00); + MapGridSetMetatileIdAt(events->bgEvents[i].x + 7, events->bgEvents[i].y + 7, gUnknown_0858CFCC[j].tile1 | MAP_IMPASSABLE_MASK); break; } } diff --git a/src/tv.c b/src/tv.c index ee3614e83..6ab91ac07 100644 --- a/src/tv.c +++ b/src/tv.c @@ -39,6 +39,7 @@ #include "tv.h" #include "data2.h" #include "constants/layouts.h" +#include "constants/metatile_behaviors.h" // Static type declarations @@ -853,9 +854,9 @@ void SetTVMetatilesOnMap(int width, int height, u16 tileId) { for (x = 0; x < width; x ++) { - if (MapGridGetMetatileBehaviorAt(x, y) == 0x86) // is this tile a TV? + if (MapGridGetMetatileBehaviorAt(x, y) == MB_TELEVISION) { - MapGridSetMetatileIdAt(x, y, tileId | 0xc00); + MapGridSetMetatileIdAt(x, y, tileId | MAP_IMPASSABLE_MASK); } } } -- cgit v1.2.3 From da0687987d8d4f6cb9a331f30553ffb806e74165 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Tue, 26 Feb 2019 22:56:22 -0500 Subject: Pick better names for constants --- asm/macros/event.inc | 4 ++-- include/global.fieldmap.h | 12 ++++++------ src/battle_pyramid.c | 4 ++-- src/bg.c | 4 ++-- src/decoration.c | 8 ++++---- src/field_effect.c | 2 +- src/field_specials.c | 12 ++++++------ src/fieldmap.c | 38 +++++++++++++++++++------------------- src/fldeff_escalator.c | 4 ++-- src/scrcmd.c | 2 +- src/secret_base.c | 16 ++++++++-------- src/tv.c | 2 +- 12 files changed, 54 insertions(+), 54 deletions(-) diff --git a/asm/macros/event.inc b/asm/macros/event.inc index fa27d049e..708861e32 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -1163,12 +1163,12 @@ .endm @ Changes the metatile at (x, y) on the current map. - .macro setmetatile x:req, y:req, metatile_number:req, is_impassable:req + .macro setmetatile x:req, y:req, metatile_number:req, has_collision:req .byte 0xa2 .2byte \x .2byte \y .2byte \metatile_number - .2byte \is_impassable + .2byte \has_collision .endm @ Queues a weather change to the default weather for the map. diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 2b85a02d1..e35d900d8 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -1,12 +1,12 @@ #ifndef GUARD_GLOBAL_FIELDMAP_H #define GUARD_GLOBAL_FIELDMAP_H -#define MAP_IMPASSABLE_MASK 0x0C00 -#define MAP_METATILE_ID_MASK 0x03FF -#define MAP_UNDEFINED_METATILE_ID 0x03FF -#define MAP_TILE_ELEVATION_SHIFT 12 -#define MAP_IMPASSABLE_SHIFT 10 -#define MAP_TILE_ELEVATION_MASK 0xF000 +#define METATILE_COLLISION_MASK 0x0C00 +#define METATILE_ID_MASK 0x03FF +#define METATILE_ID_UNDEFINED 0x03FF +#define METATILE_ELEVATION_SHIFT 12 +#define METATILE_COLLISION_SHIFT 10 +#define METATILE_ELEVATION_MASK 0xF000 enum { diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index 92ff257b0..34da3a25d 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -1267,7 +1267,7 @@ static u8 GetPostBattleDirectionHintTextIndex(int *hintType, u8 minDistanceForEx { for (x = 0; x < 32; x++) { - if ((map[x] & MAP_METATILE_ID_MASK) == FLOOR_EXIT_METATILE) + if ((map[x] & METATILE_ID_MASK) == FLOOR_EXIT_METATILE) { x += 7 - gEventObjects[gSelectedEventObject].initialCoords.x; y += 7 - gEventObjects[gSelectedEventObject].initialCoords.y; @@ -1568,7 +1568,7 @@ void GenerateBattlePyramidFloorLayout(u16 *backupMapData, bool8 setPlayerPositio { for (x = 0; x < mapLayout->width; x++) { - if ((layoutMap[x] & MAP_METATILE_ID_MASK) != FLOOR_EXIT_METATILE) + if ((layoutMap[x] & METATILE_ID_MASK) != FLOOR_EXIT_METATILE) { map[x] = layoutMap[x]; } diff --git a/src/bg.c b/src/bg.c index 571518650..1826f9a28 100644 --- a/src/bg.c +++ b/src/bg.c @@ -1056,7 +1056,7 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt for (x16 = x; x16 < (x + width); x16++) { CopyTileMapEntry(&firstTileNum, &((u16*)sGpuBgConfigs2[bg].tilemap)[(u16)GetTileMapIndexFromCoords(x16, y16, attribute, mode, mode2)], paletteSlot, 0, 0); - firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & MAP_METATILE_ID_MASK); + firstTileNum = (firstTileNum & (METATILE_COLLISION_MASK | METATILE_ELEVATION_MASK)) + ((firstTileNum + tileNumDelta) & METATILE_ID_MASK); } } break; @@ -1067,7 +1067,7 @@ void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 widt for (x16 = x; x16 < (x + width); x16++) { ((u8*)sGpuBgConfigs2[bg].tilemap)[(y16 * mode3) + x16] = firstTileNum; - firstTileNum = (firstTileNum & 0xFC00) + ((firstTileNum + tileNumDelta) & MAP_METATILE_ID_MASK); + firstTileNum = (firstTileNum & (METATILE_COLLISION_MASK | METATILE_ELEVATION_MASK)) + ((firstTileNum + tileNumDelta) & METATILE_ID_MASK); } } break; diff --git a/src/decoration.c b/src/decoration.c index e5f3b6d46..83ec4bc34 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -1173,7 +1173,7 @@ void sub_8127B90(u16 mapX, u16 mapY, u8 decWidth, u8 decHeight, u16 decor) behavior = GetBehaviorByMetatileId(0x200 + gDecorations[decor].tiles[i * decWidth + j]); if (MetatileBehavior_IsSecretBaseImpassable(behavior) == TRUE || (gDecorations[decor].permission != DECORPERM_PASS_FLOOR && (behavior >> 12))) { - impassableFlag = MAP_IMPASSABLE_MASK; + impassableFlag = METATILE_COLLISION_MASK; } else { @@ -1502,7 +1502,7 @@ bool8 sub_812853C(u8 taskId, const struct Decoration *decoration) { curX = gTasks[taskId].data[0] + j; behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); - behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & MAP_TILE_ELEVATION_MASK; + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & METATILE_ELEVATION_MASK; if (!sub_81284F4(behaviorAt, decoration)) { return FALSE; @@ -1527,7 +1527,7 @@ bool8 sub_812853C(u8 taskId, const struct Decoration *decoration) { curX = gTasks[taskId].data[0] + j; behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); - behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & MAP_TILE_ELEVATION_MASK; + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[(mapY - 1 - i) * mapX + j]) & METATILE_ELEVATION_MASK; if (!MetatileBehavior_IsNormal(behaviorAt) && !sub_8128484(behaviorAt, behaviorBy)) { return FALSE; @@ -1547,7 +1547,7 @@ bool8 sub_812853C(u8 taskId, const struct Decoration *decoration) { curX = gTasks[taskId].data[0] + j; behaviorAt = MapGridGetMetatileBehaviorAt(curX, curY); - behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[j]) & MAP_TILE_ELEVATION_MASK; + behaviorBy = GetBehaviorByMetatileId(0x200 + decoration->tiles[j]) & METATILE_ELEVATION_MASK; if (!MetatileBehavior_IsNormal(behaviorAt) && !MetatileBehavior_IsSecretBaseNorthWall(behaviorAt)) { return FALSE; diff --git a/src/field_effect.c b/src/field_effect.c index 07a7f9caf..7f11a8e58 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -2620,7 +2620,7 @@ static void sub_80B8874(u16 offs) dest = (u16 *)(VRAM + 0x140 + offs); for (i = 0; i < 0x140; i++, dest++) { - *dest = gFieldMoveStreaksTilemap[i] | MAP_TILE_ELEVATION_MASK; + *dest = gFieldMoveStreaksTilemap[i] | METATILE_ELEVATION_MASK; } } diff --git a/src/field_specials.c b/src/field_specials.c index c7d1f4367..639d86e68 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -887,8 +887,8 @@ static void PetalburgGymFunc(u8 a0, u16 a1) } for (i = 0; i < nDoors; i++) { - MapGridSetMetatileIdAt(x[i] + 7, y[i] + 7, a1 | MAP_IMPASSABLE_MASK); - MapGridSetMetatileIdAt(x[i] + 7, y[i] + 8, (a1 + 8) | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x[i] + 7, y[i] + 7, a1 | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x[i] + 7, y[i] + 8, (a1 + 8) | METATILE_COLLISION_MASK); } DrawWholeMapView(); } @@ -1100,7 +1100,7 @@ static void PCTurnOnEffect_1(s16 flag, s8 dx, s8 dy) tileId = 0x27e; } } - MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | METATILE_COLLISION_MASK); } void DoPCTurnOffEffect(void) @@ -1141,7 +1141,7 @@ static void PCTurnOffEffect(void) { tileId = 0x259; } - MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | METATILE_COLLISION_MASK); DrawWholeMapView(); } @@ -1892,7 +1892,7 @@ static void sub_8139C80(u8 taskId) { for (x = 0; x < 3; x++) { - MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2BF4[y][data[0] % 3] | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2BF4[y][data[0] % 3] | METATILE_COLLISION_MASK); } } } @@ -1902,7 +1902,7 @@ static void sub_8139C80(u8 taskId) { for (x = 0; x < 3; x++) { - MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2C06[y][data[0] % 3] | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x + 8, y + 7, gUnknown_085B2C06[y][data[0] % 3] | METATILE_COLLISION_MASK); } } } diff --git a/src/fieldmap.c b/src/fieldmap.c index 8131fb01b..a96b71c0f 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -383,15 +383,15 @@ u8 MapGridGetZCoordAt(int x, int y) i = (x + 1) & 1; i += ((y + 1) & 1) * 2; block = gMapHeader.mapLayout->border[i]; - block |= MAP_IMPASSABLE_MASK; + block |= METATILE_COLLISION_MASK; } - if (block == MAP_UNDEFINED_METATILE_ID) + if (block == METATILE_ID_UNDEFINED) { return 0; } - return block >> MAP_TILE_ELEVATION_SHIFT; + return block >> METATILE_ELEVATION_SHIFT; } u8 MapGridIsImpassableAt(int x, int y) @@ -411,13 +411,13 @@ u8 MapGridIsImpassableAt(int x, int y) i = (x + 1) & 1; i += ((y + 1) & 1) * 2; block = gMapHeader.mapLayout->border[i]; - block |= MAP_IMPASSABLE_MASK; + block |= METATILE_COLLISION_MASK; } - if (block == MAP_UNDEFINED_METATILE_ID) + if (block == METATILE_ID_UNDEFINED) { return 1; } - return (block & MAP_IMPASSABLE_MASK) >> MAP_IMPASSABLE_SHIFT; + return (block & METATILE_COLLISION_MASK) >> METATILE_COLLISION_SHIFT; } u32 MapGridGetMetatileIdAt(int x, int y) @@ -439,19 +439,19 @@ u32 MapGridGetMetatileIdAt(int x, int y) mapLayout = gMapHeader.mapLayout; i = (x + 1) & 1; i += ((y + 1) & 1) * 2; - block = mapLayout->border[i] | MAP_IMPASSABLE_MASK; + block = mapLayout->border[i] | METATILE_COLLISION_MASK; } - if (block == MAP_UNDEFINED_METATILE_ID) + if (block == METATILE_ID_UNDEFINED) { border = gMapHeader.mapLayout->border; j = (x + 1) & 1; j += ((y + 1) & 1) * 2; block2 = gMapHeader.mapLayout->border[j]; // This OR is completely pointless. - block2 |= MAP_IMPASSABLE_MASK; - return block2 & MAP_METATILE_ID_MASK; + block2 |= METATILE_COLLISION_MASK; + return block2 & METATILE_ID_MASK; } - return block & MAP_METATILE_ID_MASK; + return block & METATILE_ID_MASK; } u32 MapGridGetMetatileBehaviorAt(int x, int y) @@ -465,7 +465,7 @@ u8 MapGridGetMetatileLayerTypeAt(int x, int y) { u16 metatile; metatile = MapGridGetMetatileIdAt(x, y); - return (GetBehaviorByMetatileId(metatile) & MAP_TILE_ELEVATION_MASK) >> MAP_TILE_ELEVATION_SHIFT; + return (GetBehaviorByMetatileId(metatile) & METATILE_ELEVATION_MASK) >> METATILE_ELEVATION_SHIFT; } void MapGridSetMetatileIdAt(int x, int y, u16 metatile) @@ -475,7 +475,7 @@ void MapGridSetMetatileIdAt(int x, int y, u16 metatile) && y >= 0 && y < gBackupMapLayout.height) { i = x + y * gBackupMapLayout.width; - gBackupMapLayout.map[i] = (gBackupMapLayout.map[i] & MAP_TILE_ELEVATION_MASK) | (metatile & ~MAP_TILE_ELEVATION_MASK); + gBackupMapLayout.map[i] = (gBackupMapLayout.map[i] & METATILE_ELEVATION_MASK) | (metatile & ~METATILE_ELEVATION_MASK); } } @@ -655,7 +655,7 @@ int GetMapBorderIdAt(int x, int y) i = gBackupMapLayout.width; i *= y; block = gBackupMapLayout.map[x + i]; - if (block == MAP_UNDEFINED_METATILE_ID) + if (block == METATILE_ID_UNDEFINED) { goto fail; } @@ -665,8 +665,8 @@ int GetMapBorderIdAt(int x, int y) mapLayout = gMapHeader.mapLayout; j = (x + 1) & 1; j += ((y + 1) & 1) * 2; - block2 = MAP_IMPASSABLE_MASK | mapLayout->border[j]; - if (block2 == MAP_UNDEFINED_METATILE_ID) + block2 = METATILE_COLLISION_MASK | mapLayout->border[j]; + if (block2 == METATILE_ID_UNDEFINED) { goto fail; } @@ -922,9 +922,9 @@ void sub_8088B94(int x, int y, int a2) if (x >= 0 && x < gBackupMapLayout.width && y >= 0 && y < gBackupMapLayout.height) { if (a2 != 0) - gBackupMapLayout.map[x + gBackupMapLayout.width * y] |= MAP_IMPASSABLE_MASK; + gBackupMapLayout.map[x + gBackupMapLayout.width * y] |= METATILE_COLLISION_MASK; else - gBackupMapLayout.map[x + gBackupMapLayout.width * y] &= 0xF3FF; + gBackupMapLayout.map[x + gBackupMapLayout.width * y] &= ~METATILE_COLLISION_MASK; } } @@ -938,7 +938,7 @@ static bool8 SkipCopyingMetatileFromSavedMap(u16* mapMetatilePtr, u16 mapWidth, else mapMetatilePtr += mapWidth; - if (sub_80FADE4(*mapMetatilePtr & MAP_METATILE_ID_MASK, yMode) == 1) + if (sub_80FADE4(*mapMetatilePtr & METATILE_ID_MASK, yMode) == 1) return TRUE; return FALSE; } diff --git a/src/fldeff_escalator.c b/src/fldeff_escalator.c index 4a1fb0fd5..7ab2db4db 100644 --- a/src/fldeff_escalator.c +++ b/src/fldeff_escalator.c @@ -76,13 +76,13 @@ static void sub_80E1444(u8 taskId) sub_80E12E8(taskId, gUnknown_08589AC0, 0); break; case 2: - sub_80E12E8(taskId, gUnknown_08589AC6, MAP_IMPASSABLE_MASK); + sub_80E12E8(taskId, gUnknown_08589AC6, METATILE_COLLISION_MASK); break; case 3: sub_80E12E8(taskId, gUnknown_08589ACC, 0); break; case 4: - sub_80E12E8(taskId, gUnknown_08589AD2, MAP_IMPASSABLE_MASK); + sub_80E12E8(taskId, gUnknown_08589AD2, METATILE_COLLISION_MASK); break; case 5: sub_80E12E8(taskId, gUnknown_08589AD8, 0); diff --git a/src/scrcmd.c b/src/scrcmd.c index 9bafac41a..b80b2baed 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -2035,7 +2035,7 @@ bool8 ScrCmd_setmetatile(struct ScriptContext *ctx) if (!isImpassable) MapGridSetMetatileIdAt(x, y, tileId); else - MapGridSetMetatileIdAt(x, y, tileId | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x, y, tileId | METATILE_COLLISION_MASK); return FALSE; } diff --git a/src/secret_base.c b/src/secret_base.c index 488f49377..3e591eba2 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -259,7 +259,7 @@ void sub_80E8CB0(s16 *xPtr, s16 *yPtr, u16 tile) { for (x = 0; x < mapLayout->width; x ++) { - if ((mapLayout->map[y * mapLayout->width + x] & MAP_METATILE_ID_MASK) == tile) + if ((mapLayout->map[y * mapLayout->width + x] & METATILE_ID_MASK) == tile) { *xPtr = x; *yPtr = y; @@ -282,7 +282,7 @@ void sub_80E8D4C(void) { if (gUnknown_0858CFCC[i].tile1 == tile) { - MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile2 | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile2 | METATILE_COLLISION_MASK); CurrentMapDrawMetatileAt(x, y); return; } @@ -291,7 +291,7 @@ void sub_80E8D4C(void) { if (gUnknown_0858CFCC[i].tile2 == tile) { - MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile1 | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile1 | METATILE_COLLISION_MASK); CurrentMapDrawMetatileAt(x, y); return; } @@ -352,7 +352,7 @@ void sub_80E8EE0(struct MapEvents const *events) { if (gUnknown_0858CFCC[i].tile1 == tile_id) { - MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile2 | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x, y, gUnknown_0858CFCC[i].tile2 | METATILE_COLLISION_MASK); break; } } @@ -434,7 +434,7 @@ void sub_80E9108(void) sub_80E8CB0(&x, &y, 0x220); x += 7; y += 7; - MapGridSetMetatileIdAt(x, y, 0x220 | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x, y, 0x220 | METATILE_COLLISION_MASK); CurrentMapDrawMetatileAt(x, y); pal_fill_black(); CreateTask(sub_80E90C8, 0); @@ -492,12 +492,12 @@ void sub_80E9238(u8 flagIn) if (curBaseId != 0) { sub_80E8CB0(&x, &y, 0x220); - MapGridSetMetatileIdAt(x + 7, y + 7, 0x221 | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x + 7, y + 7, 0x221 | METATILE_COLLISION_MASK); } else if (flagIn == 1 && VarGet(VAR_0x4089) == 1) { sub_80E8CB0(&x, &y, 0x220); - MapGridSetMetatileIdAt(x + 7, y + 7, 0x20a | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x + 7, y + 7, 0x20a | METATILE_COLLISION_MASK); } } } @@ -791,7 +791,7 @@ void sub_80E9AD0(void) { if (gUnknown_0858CFCC[j].tile2 == tile) { - MapGridSetMetatileIdAt(events->bgEvents[i].x + 7, events->bgEvents[i].y + 7, gUnknown_0858CFCC[j].tile1 | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(events->bgEvents[i].x + 7, events->bgEvents[i].y + 7, gUnknown_0858CFCC[j].tile1 | METATILE_COLLISION_MASK); break; } } diff --git a/src/tv.c b/src/tv.c index 6ab91ac07..cfa49d7df 100644 --- a/src/tv.c +++ b/src/tv.c @@ -856,7 +856,7 @@ void SetTVMetatilesOnMap(int width, int height, u16 tileId) { if (MapGridGetMetatileBehaviorAt(x, y) == MB_TELEVISION) { - MapGridSetMetatileIdAt(x, y, tileId | MAP_IMPASSABLE_MASK); + MapGridSetMetatileIdAt(x, y, tileId | METATILE_COLLISION_MASK); } } } -- cgit v1.2.3 From 459fd93b59795c0c9c888584d38e82577e07c056 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 1 Mar 2019 01:18:58 -0500 Subject: Fix minor errors --- data/maps/TradeCenter/map.json | 1 - include/link.h | 2 +- src/cable_club.c | 2 +- src/link.c | 2 +- src/record_mixing.c | 2 +- 5 files changed, 4 insertions(+), 5 deletions(-) diff --git a/data/maps/TradeCenter/map.json b/data/maps/TradeCenter/map.json index 3e47ca41b..1c409132d 100644 --- a/data/maps/TradeCenter/map.json +++ b/data/maps/TradeCenter/map.json @@ -55,7 +55,6 @@ "script": "EventScript_TradeCenter_Chair0" }, { - "comment": "This is trade seat #2.", "type": "trigger", "x": 7, "y": 5, diff --git a/include/link.h b/include/link.h index 182ee68f4..83deab88f 100644 --- a/include/link.h +++ b/include/link.h @@ -299,7 +299,7 @@ extern struct LinkPlayer gLocalLinkPlayer; bool32 Link_AnyPartnersPlayingRubyOrSapphire(void); bool32 sub_800A03C(void); -void SetgLocalLinkPlayerId(u8); +void SetLocalLinkPlayerId(u8); u8 GetSavedPlayerCount(void); void sub_8009FAC(void); bool8 sub_800A4D8(u8 a0); diff --git a/src/cable_club.c b/src/cable_club.c index f504ad8a8..d83508504 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -1028,7 +1028,7 @@ static void sub_80B3728(u8 taskId) if (IsFieldMessageBoxHidden()) { sub_8087288(); - SetgLocalLinkPlayerId(gSpecialVar_0x8005); + SetLocalLinkPlayerId(gSpecialVar_0x8005); task->data[0] = 2; } break; diff --git a/src/link.c b/src/link.c index cf06e4958..72ac3e878 100644 --- a/src/link.c +++ b/src/link.c @@ -302,7 +302,7 @@ void LinkTestScreen(void) SetMainCallback2(CB2_LinkTest); } -void SetgLocalLinkPlayerId(u8 playerId) +void SetLocalLinkPlayerId(u8 playerId) { gLocalLinkPlayer.id = playerId; } diff --git a/src/record_mixing.c b/src/record_mixing.c index e58fdcc4e..aafd7284b 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -324,7 +324,7 @@ static void Task_RecordMixing_Main(u8 taskId) case 0: // init sSentRecord = malloc(sizeof(union PlayerRecords)); sReceivedRecords = malloc(sizeof(union PlayerRecords) * 4); - SetgLocalLinkPlayerId(gSpecialVar_0x8005); + SetLocalLinkPlayerId(gSpecialVar_0x8005); VarSet(VAR_TEMP_0, 1); gUnknown_03001130 = FALSE; PrepareExchangePacket(); -- cgit v1.2.3 From a7e5852f1d95dd2b438e94fbf31b865196c6e951 Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Fri, 1 Mar 2019 01:49:11 -0500 Subject: More minor fixes --- data/maps/SecretBase_YellowCave4/scripts.inc | 2 +- data/scripts/secret_base.inc | 6 +-- include/constants/vars.h | 2 +- include/main.h | 4 +- include/overworld.h | 2 +- include/trainer_hill.h | 2 +- src/field_effect.c | 2 +- src/field_specials.c | 56 ++++++++++++++++++++++------ src/load_save.c | 2 +- src/main.c | 14 +++---- src/overworld.c | 16 ++++---- src/save.c | 6 +-- src/secret_base.c | 38 +++++++++---------- src/time_events.c | 2 +- src/trainer_hill.c | 10 ++--- 15 files changed, 99 insertions(+), 65 deletions(-) diff --git a/data/maps/SecretBase_YellowCave4/scripts.inc b/data/maps/SecretBase_YellowCave4/scripts.inc index 40f1e5a15..805d7e299 100644 --- a/data/maps/SecretBase_YellowCave4/scripts.inc +++ b/data/maps/SecretBase_YellowCave4/scripts.inc @@ -16,7 +16,7 @@ SecretBase_RedCave1_MapScript1_23B4A2: @ 823B4A2 end SecretBase_RedCave1_MapScript2_23B4AE: @ 823B4AE - map_script_2 VAR_SECRET_BASE_SHOULD_BE_INIT, 0, SecretBase_RedCave1_EventScript_275B81 + map_script_2 VAR_INIT_SECRET_BASE, 0, SecretBase_RedCave1_EventScript_275B81 .2byte 0 SecretBase_RedCave1_MapScript1_23B4B8: @ 823B4B8 diff --git a/data/scripts/secret_base.inc b/data/scripts/secret_base.inc index 95e9a2fc5..6302a33a8 100644 --- a/data/scripts/secret_base.inc +++ b/data/scripts/secret_base.inc @@ -430,7 +430,7 @@ EventScript_275B4D:: @ 8275B4D EventScript_275B5B:: @ 8275B5B closemessage playse SE_KAIDAN - setvar VAR_SECRET_BASE_SHOULD_BE_INIT, 0 + setvar VAR_INIT_SECRET_BASE, 0 setflag FLAG_DECORATION_0 special sub_80E8E18 special sub_80E9068 @@ -444,7 +444,7 @@ EventScript_275B5B:: @ 8275B5B SecretBase_RedCave1_EventScript_275B81:: @ 8275B81 applymovement EVENT_OBJ_ID_PLAYER, SecretBase_RedCave1_Movement_275BB4 waitmovement 0 - setvar VAR_SECRET_BASE_SHOULD_BE_INIT, 1 + setvar VAR_INIT_SECRET_BASE, 1 msgbox SecretBase_RedCave1_Text_23B759, MSGBOX_YESNO compare VAR_RESULT, 1 goto_if_eq SecretBase_RedCave1_EventScript_275BAB @@ -467,7 +467,7 @@ SecretBase_RedCave1_Movement_275BB4: @ 8275BB4 EventScript_275BB7:: @ 8275BB7 lockall - setvar VAR_SECRET_BASE_SHOULD_BE_INIT, 1 + setvar VAR_INIT_SECRET_BASE, 1 playse SE_KAIDAN special sub_80E9744 compare VAR_RESULT, 0 diff --git a/include/constants/vars.h b/include/constants/vars.h index 72b02ee8f..c025d62fc 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -167,7 +167,7 @@ #define VAR_LILYCOVE_MUSEUM_2F_STATE 0x4094 #define VAR_LILYCOVE_FAN_CLUB_STATE 0x4095 #define VAR_BRINEY_LOCATION 0x4096 -#define VAR_SECRET_BASE_SHOULD_BE_INIT 0x4097 +#define VAR_INIT_SECRET_BASE 0x4097 #define VAR_PETALBURG_WOODS_STATE 0x4098 #define VAR_LILYCOVE_CONTEST_LOBBY_STATE 0x4099 #define VAR_RUSTURF_TUNNEL_STATE 0x409A diff --git a/include/main.h b/include/main.h index 014b4942e..2c241bf97 100644 --- a/include/main.h +++ b/include/main.h @@ -61,8 +61,8 @@ void SetHBlankCallback(IntrCallback callback); void SetVCountCallback(IntrCallback callback); void SetSerialCallback(IntrCallback callback); void InitFlashTimer(void); -void SetVBlankCounterPointer(u32 *var); -void ClearVBlankCounterPointer(void); +void SetTrainerHillVBlankCounter(u32 *var); +void ClearTrainerHillVBlankCounter(void); void DoSoftReset(void); void ClearPokemonCrySongs(void); void RestoreSerialTimer3IntrHandlers(void); diff --git a/include/overworld.h b/include/overworld.h index 54715ecc0..7ca442957 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -96,7 +96,7 @@ u8 GetMapTypeByGroupAndId(s8 mapGroup, s8 mapNum); u8 GetMapTypeByWarpData(struct WarpData *warp); u8 GetCurrentMapType(void); u8 GetLastUsedWarpMapType(void); -bool8 IsMapTypeOutside(u8 mapType); +bool8 IsMapTypeOutdoors(u8 mapType); bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType); bool8 Overworld_MapTypeIsIndoors(u8 mapType); u8 GetSavedWarpRegionMapSectionId(void); diff --git a/include/trainer_hill.h b/include/trainer_hill.h index 35b0c5d6d..ad2713316 100644 --- a/include/trainer_hill.h +++ b/include/trainer_hill.h @@ -1,7 +1,7 @@ #ifndef GUARD_TRAINER_HILL_H #define GUARD_TRAINER_HILL_H -extern u32 *gVBlankCounterPointer; +extern u32 *gTrainerHillVBlankCounter; void CallTrainerHillFunction(void); void ResetTrainerHillResults(void); diff --git a/src/field_effect.c b/src/field_effect.c index 74f7801bd..a4614b0a0 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -2443,7 +2443,7 @@ static void sub_80B8410(struct Task *task) bool8 FldEff_FieldMoveShowMon(void) { u8 taskId; - if (IsMapTypeOutside(GetCurrentMapType()) == TRUE) + if (IsMapTypeOutdoors(GetCurrentMapType()) == TRUE) { taskId = CreateTask(sub_80B8554, 0xff); } else diff --git a/src/field_specials.c b/src/field_specials.c index e603c3ebf..20125d855 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -370,7 +370,7 @@ bool32 ShouldDoWallyCall(void) case MAP_TYPE_CITY: case MAP_TYPE_ROUTE: case MAP_TYPE_OCEAN_ROUTE: - if (++(*GetVarPointer(VAR_WALLY_CALL_STEP_COUNTER)) < 0xFA) + if (++(*GetVarPointer(VAR_WALLY_CALL_STEP_COUNTER)) < 250) { return FALSE; } @@ -451,7 +451,7 @@ bool32 ShouldDoRoxanneCall(void) case 2: case 3: case 6: - if (++(*GetVarPointer(VAR_ROXANNE_CALL_STEP_COUNTER)) < 0xFA) + if (++(*GetVarPointer(VAR_ROXANNE_CALL_STEP_COUNTER)) < 250) { return FALSE; } @@ -478,7 +478,7 @@ bool32 ShouldDoRivalRayquazaCall(void) case 2: case 3: case 6: - if (++(*GetVarPointer(VAR_RIVAL_RAYQUAZA_CALL_STEP_COUNTER)) < 0xFA) + if (++(*GetVarPointer(VAR_RIVAL_RAYQUAZA_CALL_STEP_COUNTER)) < 250) { return FALSE; } @@ -1516,7 +1516,7 @@ bool8 FoundBlackGlasses(void) void SetRoute119Weather(void) { - if (IsMapTypeOutside(GetLastUsedWarpMapType()) != TRUE) + if (IsMapTypeOutdoors(GetLastUsedWarpMapType()) != TRUE) { SetSav1Weather(20); } @@ -1524,7 +1524,7 @@ void SetRoute119Weather(void) void SetRoute123Weather(void) { - if (IsMapTypeOutside(GetLastUsedWarpMapType()) != TRUE) + if (IsMapTypeOutdoors(GetLastUsedWarpMapType()) != TRUE) { SetSav1Weather(21); } @@ -3428,21 +3428,21 @@ void CreateUnusualWeatherEvent(void) if (FlagGet(FLAG_DEFEATED_KYOGRE) == TRUE) { - VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue & (UNUSUAL_WEATHER_COUNT_PER_LEGENDARY - 1)) + UNUSUAL_WEATHER_GROUDON_LOCATIONS_START); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue % UNUSUAL_WEATHER_COUNT_PER_LEGENDARY) + UNUSUAL_WEATHER_GROUDON_LOCATIONS_START); } else if (FlagGet(FLAG_DEFEATED_GROUDON) == TRUE) { - VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue & (UNUSUAL_WEATHER_COUNT_PER_LEGENDARY - 1)) + UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue % UNUSUAL_WEATHER_COUNT_PER_LEGENDARY) + UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START); } else if ((randomValue & 1) == 0) { randomValue = Random(); - VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue & (UNUSUAL_WEATHER_COUNT_PER_LEGENDARY - 1)) + UNUSUAL_WEATHER_GROUDON_LOCATIONS_START); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue % UNUSUAL_WEATHER_COUNT_PER_LEGENDARY) + UNUSUAL_WEATHER_GROUDON_LOCATIONS_START); } else { randomValue = Random(); - VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue & (UNUSUAL_WEATHER_COUNT_PER_LEGENDARY - 1)) + UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START); + VarSet(VAR_UNUSUAL_WEATHER_LOCATION, (randomValue % UNUSUAL_WEATHER_COUNT_PER_LEGENDARY) + UNUSUAL_WEATHER_KYOGRE_LOCATIONS_START); } } @@ -3450,7 +3450,24 @@ void CreateUnusualWeatherEvent(void) // returns TRUE if the weather is for Kyogre, and FALSE if it's for Groudon. bool32 GetUnusualWeatherMapNameAndType(void) { - static const u8 sUnusualWeatherMapNumbers[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; + static const u8 sUnusualWeatherMapNumbers[] = { + MAP_NUM(ROUTE114), + MAP_NUM(ROUTE114), + MAP_NUM(ROUTE115), + MAP_NUM(ROUTE115), + MAP_NUM(ROUTE116), + MAP_NUM(ROUTE116), + MAP_NUM(ROUTE118), + MAP_NUM(ROUTE118), + MAP_NUM(ROUTE105), + MAP_NUM(ROUTE105), + MAP_NUM(ROUTE125), + MAP_NUM(ROUTE125), + MAP_NUM(ROUTE127), + MAP_NUM(ROUTE127), + MAP_NUM(ROUTE129), + MAP_NUM(ROUTE129) + }; u16 unusualWeather = VarGet(VAR_UNUSUAL_WEATHER_LOCATION); @@ -3469,7 +3486,24 @@ bool32 GetUnusualWeatherMapNameAndType(void) bool8 UnusualWeatherHasExpired(void) { // Duplicate array. - static const u8 sUnusualWeatherMapNumbers_2[] = { 0x1d, 0x1d, 0x1e, 0x1e, 0x1f, 0x1f, 0x21, 0x21, 0x14, 0x14, 0x28, 0x28, 0x2a, 0x2a, 0x2c, 0x2c }; + static const u8 sUnusualWeatherMapNumbers_2[] = { + MAP_NUM(ROUTE114), + MAP_NUM(ROUTE114), + MAP_NUM(ROUTE115), + MAP_NUM(ROUTE115), + MAP_NUM(ROUTE116), + MAP_NUM(ROUTE116), + MAP_NUM(ROUTE118), + MAP_NUM(ROUTE118), + MAP_NUM(ROUTE105), + MAP_NUM(ROUTE105), + MAP_NUM(ROUTE125), + MAP_NUM(ROUTE125), + MAP_NUM(ROUTE127), + MAP_NUM(ROUTE127), + MAP_NUM(ROUTE129), + MAP_NUM(ROUTE129) + }; u16 steps = VarGet(VAR_UNUSUAL_WEATHER_STEP_COUNTER); u16 unusualWeather = VarGet(VAR_UNUSUAL_WEATHER_LOCATION); diff --git a/src/load_save.c b/src/load_save.c index d71e72802..7d307ec1b 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -99,7 +99,7 @@ void MoveSaveBlocks_ResetHeap(void) hblankCB = gMain.hblankCallback; gMain.vblankCallback = NULL; gMain.hblankCallback = NULL; - gVBlankCounterPointer = NULL; + gTrainerHillVBlankCounter = NULL; saveBlock2Copy = (struct SaveBlock2 *)(gHeap); saveBlock1Copy = (struct SaveBlock1 *)(gHeap + sizeof(struct SaveBlock2)); diff --git a/src/main.c b/src/main.c index 3e282775d..3049f4f90 100644 --- a/src/main.c +++ b/src/main.c @@ -163,7 +163,7 @@ static void UpdateLinkAndCallCallbacks(void) static void InitMainCallbacks(void) { gMain.vblankCounter1 = 0; - gVBlankCounterPointer = NULL; + gTrainerHillVBlankCounter = NULL; gMain.vblankCounter2 = 0; gMain.callback1 = NULL; SetMainCallback2(CB2_InitCopyrightScreenAfterBootup); @@ -324,8 +324,8 @@ static void VBlankIntr(void) gMain.vblankCounter1++; - if (gVBlankCounterPointer && *gVBlankCounterPointer < 0xFFFFFFFF) - (*gVBlankCounterPointer)++; + if (gTrainerHillVBlankCounter && *gTrainerHillVBlankCounter < 0xFFFFFFFF) + (*gTrainerHillVBlankCounter)++; if (gMain.vblankCallback) gMain.vblankCallback(); @@ -393,14 +393,14 @@ static void WaitForVBlank(void) ; } -void SetVBlankCounterPointer(u32 *var) +void SetTrainerHillVBlankCounter(u32 *counter) { - gVBlankCounterPointer = var; + gTrainerHillVBlankCounter = counter; } -void ClearVBlankCounterPointer(void) +void ClearTrainerHillVBlankCounter(void) { - gVBlankCounterPointer = NULL; + gTrainerHillVBlankCounter = NULL; } void DoSoftReset(void) diff --git a/src/overworld.c b/src/overworld.c index 84eb80a06..837855877 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -678,7 +678,7 @@ void UpdateEscapeWarp(s16 x, s16 y) { u8 currMapType = GetCurrentMapType(); u8 destMapType = GetMapTypeByGroupAndId(sWarpDestination.mapGroup, sWarpDestination.mapNum); - if (IsMapTypeOutside(currMapType) && IsMapTypeOutside(destMapType) != TRUE) + if (IsMapTypeOutdoors(currMapType) && IsMapTypeOutdoors(destMapType) != TRUE) SetEscapeWarp(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1, x - 7, y - 6); } @@ -823,8 +823,8 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum) static void mli0_load_map(u32 a1) { - bool8 v2; - bool8 indoors; + bool8 isOutdoors; + bool8 isIndoors; LoadCurrentMapData(); if (!(sUnknown_020322D8 & 1)) @@ -837,8 +837,8 @@ static void mli0_load_map(u32 a1) LoadEventObjTemplatesFromHeader(); } - v2 = IsMapTypeOutside(gMapHeader.mapType); - indoors = Overworld_MapTypeIsIndoors(gMapHeader.mapType); + isOutdoors = IsMapTypeOutdoors(gMapHeader.mapType); + isIndoors = Overworld_MapTypeIsIndoors(gMapHeader.mapType); sub_80EB218(); TrySetMapSaveWarpStatus(); @@ -850,7 +850,7 @@ static void mli0_load_map(u32 a1) DoTimeBasedEvents(); SetSav1WeatherFromCurrMapHeader(); ChooseAmbientCrySpecies(); - if (v2) + if (isOutdoors) FlagClear(FLAG_SYS_USE_FLASH); SetDefaultFlashLevel(); Overworld_ClearSavedMusic(); @@ -864,7 +864,7 @@ static void mli0_load_map(u32 a1) else InitMap(); - if (a1 != 1 && indoors) + if (a1 != 1 && isIndoors) { UpdateTVScreensOnMap(gBackupMapLayout.width, gBackupMapLayout.height); sub_80E9238(1); @@ -1330,7 +1330,7 @@ u8 GetLastUsedWarpMapType(void) return GetMapTypeByWarpData(&gLastUsedWarp); } -bool8 IsMapTypeOutside(u8 mapType) +bool8 IsMapTypeOutdoors(u8 mapType) { if (mapType == MAP_TYPE_ROUTE || mapType == MAP_TYPE_TOWN diff --git a/src/save.c b/src/save.c index 593ee8f2c..920a5152a 100644 --- a/src/save.c +++ b/src/save.c @@ -659,10 +659,10 @@ static void UpdateSaveAddresses(void) u8 HandleSavingData(u8 saveType) { u8 i; - u32 *backupVar = gVBlankCounterPointer; + u32 *backupVar = gTrainerHillVBlankCounter; u8 *tempAddr; - gVBlankCounterPointer = NULL; + gTrainerHillVBlankCounter = NULL; UpdateSaveAddresses(); switch (saveType) { @@ -705,7 +705,7 @@ u8 HandleSavingData(u8 saveType) save_write_to_flash(0xFFFF, gRamSaveSectionLocations); break; } - gVBlankCounterPointer = backupVar; + gTrainerHillVBlankCounter = backupVar; return 0; } diff --git a/src/secret_base.c b/src/secret_base.c index cf35deb07..af8804ec3 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -60,7 +60,7 @@ struct SecretBaseRecordMixer { // Static RAM declarations EWRAM_DATA u8 sCurSecretBaseId = 0; -EWRAM_DATA bool8 gIsInSecretBase = FALSE; +EWRAM_DATA bool8 gInFriendSecretBase = FALSE; EWRAM_DATA struct SecretBaseListMenuBuffer *gUnknown_0203A020 = NULL; // Static ROM declarations @@ -407,7 +407,7 @@ void sub_80E9068(void) bool8 sub_80E909C(void) { - if (gMapHeader.mapType == MAP_TYPE_SECRET_BASE && VarGet(VAR_SECRET_BASE_SHOULD_BE_INIT) == 0) + if (gMapHeader.mapType == MAP_TYPE_SECRET_BASE && VarGet(VAR_INIT_SECRET_BASE) == 0) { return FALSE; } @@ -1186,11 +1186,11 @@ void SecretBasePerStepCallback(u8 taskId) case 0: if (VarGet(VAR_CURRENT_SECRET_BASE) != 0) { - gIsInSecretBase = TRUE; + gInFriendSecretBase = TRUE; } else { - gIsInSecretBase = FALSE; + gInFriendSecretBase = FALSE; } PlayerGetDestCoords(&data[2], &data[3]); data[1] = 1; @@ -1206,35 +1206,35 @@ void SecretBasePerStepCallback(u8 taskId) tileId = MapGridGetMetatileIdAt(x, y); if (tileId == 0x234 || tileId == 0x23C) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x20); } } else if (tileId == 0x2b8 || tileId == 0x2b9 || tileId == 0x2ba || tileId == 0x2c0 || tileId == 0x2c1 || tileId == 0x2c2 || tileId == 0x2c8 || tileId == 0x2c9 || tileId == 0x2ca) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x01); } } else if (tileId == 0x239 || tileId == 0x241 || tileId == 0x251 || tileId == 0x259) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x04); } } else if ((behavior == 0x34 && tileId == 0x26d) || (behavior == 0x35 && MapGridGetMetatileIdAt(x, y) == 0x26a)) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x200); } } else if (behavior == 0xc1 && tileId == 0x23d) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ 0x1000); VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x2000); @@ -1242,7 +1242,7 @@ void SecretBasePerStepCallback(u8 taskId) } else if (behavior == 0x47 && tileId == 0x23e) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x1000); VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) ^ 0x2000); @@ -1250,7 +1250,7 @@ void SecretBasePerStepCallback(u8 taskId) } else if (MetatileBehavior_IsSecretBaseGlitterMat(behavior) == TRUE) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x80); } @@ -1258,7 +1258,7 @@ void SecretBasePerStepCallback(u8 taskId) else if (MetatileBehavior_IsSecretBaseBalloon(behavior) == TRUE) { PopSecretBaseBalloon(MapGridGetMetatileIdAt(x, y), x, y); - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { switch ((int)MapGridGetMetatileIdAt(x, y)) { @@ -1275,27 +1275,27 @@ void SecretBasePerStepCallback(u8 taskId) } else if (MetatileBehavior_IsSecretBaseBreakableDoor(behavior) == TRUE) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x400); } ShatterSecretBaseBreakableDoor(x, y); } else if (MetatileBehavior_IsSecretBaseSoundMat(behavior) == TRUE){ - if (gIsInSecretBase == TRUE) { + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_LOW_TV_FLAGS, VarGet(VAR_SECRET_BASE_LOW_TV_FLAGS) | 0x8000); } } else if (MetatileBehavior_IsSecretBaseJumpMat(behavior) == TRUE) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x4000); } } else if (MetatileBehavior_IsSecretBaseSpinMat(behavior) == TRUE) { - if (gIsInSecretBase == TRUE) + if (gInFriendSecretBase == TRUE) { VarSet(VAR_SECRET_BASE_HIGH_TV_FLAGS, VarGet(VAR_SECRET_BASE_HIGH_TV_FLAGS) | 0x02); } @@ -1792,15 +1792,15 @@ void sub_80EB1AC(void) { VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, FALSE); } - gIsInSecretBase = FALSE; + gInFriendSecretBase = FALSE; } void sub_80EB218(void) { - if (VarGet(VAR_SECRET_BASE_IS_NOT_LOCAL) && gIsInSecretBase == TRUE && !CurrentMapIsSecretBase()) + if (VarGet(VAR_SECRET_BASE_IS_NOT_LOCAL) && gInFriendSecretBase == TRUE && !CurrentMapIsSecretBase()) { VarSet(VAR_SECRET_BASE_IS_NOT_LOCAL, FALSE); - gIsInSecretBase = FALSE; + gInFriendSecretBase = FALSE; sub_80EEA70(); VarSet(VAR_SECRET_BASE_STEP_COUNTER, 0); VarSet(VAR_SECRET_BASE_LAST_ITEM_USED, 0); diff --git a/src/time_events.c b/src/time_events.c index 9263bffac..bd51f0c2d 100644 --- a/src/time_events.c +++ b/src/time_events.c @@ -81,7 +81,7 @@ void UpdateShoalTideFlag(void) 1, // 23 }; - if (IsMapTypeOutside(GetLastUsedWarpMapType())) + if (IsMapTypeOutdoors(GetLastUsedWarpMapType())) { RtcCalcLocalTime(); if (tide[gLocalTime.hours]) diff --git a/src/trainer_hill.c b/src/trainer_hill.c index ee7e2287a..06ca8615f 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -93,7 +93,7 @@ struct TrHillStruct2 // EWRAM static EWRAM_DATA struct TrHillStruct2 *sHillData = NULL; static EWRAM_DATA struct TrHillRoomTrainers *sRoomTrainers = NULL; -EWRAM_DATA u32 *gVBlankCounterPointer = NULL; +EWRAM_DATA u32 *gTrainerHillVBlankCounter = NULL; // This file's functions. static void TrainerHillStartChallenge(void); @@ -372,7 +372,7 @@ void InitTrainerHillBattleStruct(void) } sRoomTrainers->facilityClass[i] = sHillData->tag.floors[sHillData->floorId].trainers[i].facilityClass; } - SetVBlankCounterPointer(&gSaveBlock1Ptr->trainerHill.timer); + SetTrainerHillVBlankCounter(&gSaveBlock1Ptr->trainerHill.timer); FreeDataStruct(); } @@ -435,7 +435,7 @@ static void TrainerHillStartChallenge(void) gSaveBlock1Ptr->trainerHill.field_3D6E_0f = 0; gSaveBlock1Ptr->trainerHill.field_3D6C = 0; - SetVBlankCounterPointer(&gSaveBlock1Ptr->trainerHill.timer); + SetTrainerHillVBlankCounter(&gSaveBlock1Ptr->trainerHill.timer); gSaveBlock1Ptr->trainerHill.timer = 0; gSaveBlock1Ptr->trainerHill.field_3D6E_0c = 0; gSaveBlock1Ptr->trainerHill.field_3D6E_0b = 0; @@ -447,7 +447,7 @@ static void TrainerHillStartChallenge(void) static void sub_81D58D8(void) { - ClearVBlankCounterPointer(); + ClearTrainerHillVBlankCounter(); gSpecialVar_Result = 0; if (gSaveBlock1Ptr->trainerHill.field_3D6E_0c) gSpecialVar_Result++; @@ -505,7 +505,7 @@ static void TrainerHillResumeTimer(void) if (gSaveBlock1Ptr->trainerHill.timer >= HILL_MAX_TIME) gSaveBlock1Ptr->trainerHill.timer = HILL_MAX_TIME; else - SetVBlankCounterPointer(&gSaveBlock1Ptr->trainerHill.timer); + SetTrainerHillVBlankCounter(&gSaveBlock1Ptr->trainerHill.timer); } } -- cgit v1.2.3 From 25050b99444538535a67ba51b7aaf3d0bf90c50e Mon Sep 17 00:00:00 2001 From: Phlosioneer Date: Sat, 2 Mar 2019 04:13:27 -0500 Subject: Fix tabs, do suggested rename --- data/scripts/tv.inc | 6 +++--- include/overworld.h | 2 +- src/overworld.c | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/data/scripts/tv.inc b/data/scripts/tv.inc index 9f197515d..4a276ffc0 100644 --- a/data/scripts/tv.inc +++ b/data/scripts/tv.inc @@ -42,9 +42,9 @@ EventScript_27EE9A:: @ 827EE9A EventScript_27EEA4:: @ 827EEA4 msgbox LittlerootTown_BrendansHouse_1F_Text_1F826F, MSGBOX_DEFAULT - @ This is a junk call. Its input var (VAR_0x8004) hasn't been set, and - @ It's called again when Mom actually asks for the color, overwriting - @ whatever it does here. + @ This is a junk call. Its input var (VAR_0x8004) hasn't been set, and + @ It's called again when Mom actually asks for the color, overwriting + @ whatever it does here. special InitRoamer clearflag FLAG_SYS_TV_LATIAS_LATIOS setflag FLAG_LATIOS_OR_LATIAS_ROAMING diff --git a/include/overworld.h b/include/overworld.h index 7ca442957..3a760ca79 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -98,7 +98,7 @@ u8 GetCurrentMapType(void); u8 GetLastUsedWarpMapType(void); bool8 IsMapTypeOutdoors(u8 mapType); bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType); -bool8 Overworld_MapTypeIsIndoors(u8 mapType); +bool8 IsMapTypeIndoors(u8 mapType); u8 GetSavedWarpRegionMapSectionId(void); u8 GetCurrentRegionMapSectionId(void); u8 GetCurrentMapBattleScene(void); diff --git a/src/overworld.c b/src/overworld.c index 837855877..731449608 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -838,7 +838,7 @@ static void mli0_load_map(u32 a1) } isOutdoors = IsMapTypeOutdoors(gMapHeader.mapType); - isIndoors = Overworld_MapTypeIsIndoors(gMapHeader.mapType); + isIndoors = IsMapTypeIndoors(gMapHeader.mapType); sub_80EB218(); TrySetMapSaveWarpStatus(); @@ -1199,7 +1199,7 @@ void Overworld_ChangeMusicTo(u16 newMusic) u8 GetMapMusicFadeoutSpeed(void) { const struct MapHeader *mapHeader = GetDestinationWarpMapHeader(); - if (Overworld_MapTypeIsIndoors(mapHeader->mapType) == TRUE) + if (IsMapTypeIndoors(mapHeader->mapType) == TRUE) return 2; else return 4; @@ -1353,7 +1353,7 @@ bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType) return FALSE; } -bool8 Overworld_MapTypeIsIndoors(u8 mapType) +bool8 IsMapTypeIndoors(u8 mapType) { if (mapType == MAP_TYPE_INDOOR || mapType == MAP_TYPE_SECRET_BASE) -- cgit v1.2.3 From 043071ae12aa6854119a44304a5facbd58fa3624 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 2 Mar 2019 13:34:08 +0100 Subject: Don't extern gMoveNames --- src/item_menu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/item_menu.c b/src/item_menu.c index 43f2afce3..7b48a2d5d 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -8,6 +8,7 @@ #include "bg.h" #include "constants/items.h" #include "constants/songs.h" +#include "data2.h" #include "decompress.h" #include "event_data.h" #include "event_object_movement.h" @@ -446,7 +447,6 @@ EWRAM_DATA u16 gSpecialVar_ItemId = 0; static EWRAM_DATA struct TempWallyStruct *gUnknown_0203CE80 = 0; extern u8 *const gPocketNamesStringsTable[]; -extern const u8 gMoveNames[][0xD]; extern u8* gReturnToXStringsTable[]; extern const u8 EventScript_2736B3[]; extern const u16 gUnknown_0860F074[]; -- cgit v1.2.3