diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-10-22 09:50:49 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-10-22 09:50:49 -0400 |
commit | d51915bb0d658772c57178e28ab702ffcff018da (patch) | |
tree | 8f05b2b60194216b5c08ad818bad12a68e1a5bc2 | |
parent | ba768c855d977b73e9a87d8bb823f9167e0b9c92 (diff) |
Document some variables
-rw-r--r-- | asm/field_specials.s | 2 | ||||
-rw-r--r-- | data/maps/BirthIsland_Exterior/scripts.inc | 4 | ||||
-rw-r--r-- | include/constants/vars.h | 116 | ||||
-rw-r--r-- | src/quest_log.c | 54 |
4 files changed, 105 insertions, 71 deletions
diff --git a/asm/field_specials.s b/asm/field_specials.s index faf899cfe..d7297ba13 100644 --- a/asm/field_specials.s +++ b/asm/field_specials.s @@ -5417,7 +5417,7 @@ sub_80CCFBC: @ 80CCFBC ldr r0, _080CCFF0 @ =gSaveBlock1Ptr ldr r0, [r0] ldrh r1, [r0, 0x4] - ldr r0, _080CCFF4 @ =0x00003802 + ldr r0, _080CCFF4 @ =0x00003802 MAP_BIRTH_ISLAND_EXTERIOR cmp r1, r0 bne _080CD000 adds r0, r2, 0x1 diff --git a/data/maps/BirthIsland_Exterior/scripts.inc b/data/maps/BirthIsland_Exterior/scripts.inc index 47baf3c34..f23c73615 100644 --- a/data/maps/BirthIsland_Exterior/scripts.inc +++ b/data/maps/BirthIsland_Exterior/scripts.inc @@ -11,8 +11,8 @@ BirthIsland_Exterior_MapScript3_165213:: @ 8165213 BirthIsland_Exterior_MapScript1_165217:: @ 8165217 setworldmapflag FLAG_WORLD_MAP_BIRTH_ISLAND_EXTERIOR setvar VAR_OBJ_GFX_ID_0, MAP_OBJ_GFX_DEOXYS_N - setvar VAR_0x4026, 0 - setvar VAR_0x403E, 0 + setvar VAR_DEOXYS_INTERACTION_STEP_COUNTER, 0 + setvar VAR_DEOXYS_INTERACTION_NUM, 0 checkflag FLAG_FOUGHT_DEOXYS call_if TRUE, EventScript_16523C checkflag FLAG_FOUGHT_DEOXYS diff --git a/include/constants/vars.h b/include/constants/vars.h index e288ee292..6c38e5ea5 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -5,46 +5,80 @@ #define VARS_START 0x4000 -#define VAR_0x4000 0x4000 -#define VAR_0x4001 0x4001 -#define VAR_0x4002 0x4002 -#define VAR_0x4003 0x4003 -#define VAR_0x4004 0x4004 -#define VAR_0x4005 0x4005 -#define VAR_0x4006 0x4006 -#define VAR_0x4007 0x4007 -#define VAR_0x4008 0x4008 -#define VAR_0x4009 0x4009 -#define VAR_0x400A 0x400A -#define VAR_0x400B 0x400B -#define VAR_0x400C 0x400C -#define VAR_0x400D 0x400D -#define VAR_0x400E 0x400E -#define VAR_0x400F 0x400F -#define VAR_OBJ_GFX_ID_0 0x4010 -#define VAR_OBJ_GFX_ID_1 0x4011 -#define VAR_OBJ_GFX_ID_2 0x4012 -#define VAR_OBJ_GFX_ID_3 0x4013 -#define VAR_OBJ_GFX_ID_4 0x4014 -#define VAR_OBJ_GFX_ID_5 0x4015 -#define VAR_OBJ_GFX_ID_6 0x4016 -#define VAR_OBJ_GFX_ID_7 0x4017 -#define VAR_OBJ_GFX_ID_8 0x4018 -#define VAR_OBJ_GFX_ID_9 0x4019 -#define VAR_OBJ_GFX_ID_A 0x401A -#define VAR_OBJ_GFX_ID_B 0x401B -#define VAR_OBJ_GFX_ID_C 0x401C -#define VAR_OBJ_GFX_ID_D 0x401D -#define VAR_OBJ_GFX_ID_E 0x401E -#define VAR_OBJ_GFX_ID_F 0x401F -#define VAR_REPEL_STEP_COUNT 0x4020 -#define VAR_0x4021 0x4021 -#define VAR_ICE_STEP_COUNT 0x4022 -#define VAR_RENEWABLE_ITEM_STEP_COUNTER 0x4023 -#define VAR_ALTERING_CAVE_WILD_SET 0x4024 -#define VAR_MASSAGE_COOLDOWN_STEP_COUNTER 0x4025 -#define VAR_0x4026 0x4026 -#define VAR_0x4027 0x4027 +// Temporary variables. Reset on map load. +#define VAR_0x4000 0x4000 +#define VAR_0x4001 0x4001 +#define VAR_0x4002 0x4002 +#define VAR_0x4003 0x4003 +#define VAR_0x4004 0x4004 +#define VAR_0x4005 0x4005 +#define VAR_0x4006 0x4006 +#define VAR_0x4007 0x4007 +#define VAR_0x4008 0x4008 +#define VAR_0x4009 0x4009 +#define VAR_0x400A 0x400A +#define VAR_0x400B 0x400B +#define VAR_0x400C 0x400C +#define VAR_0x400D 0x400D +#define VAR_0x400E 0x400E +#define VAR_0x400F 0x400F + +// Object event graphics IDs which can be changed by +// script commands. +#define VAR_OBJ_GFX_ID_0 0x4010 +#define VAR_OBJ_GFX_ID_1 0x4011 +#define VAR_OBJ_GFX_ID_2 0x4012 +#define VAR_OBJ_GFX_ID_3 0x4013 +#define VAR_OBJ_GFX_ID_4 0x4014 +#define VAR_OBJ_GFX_ID_5 0x4015 +#define VAR_OBJ_GFX_ID_6 0x4016 +#define VAR_OBJ_GFX_ID_7 0x4017 +#define VAR_OBJ_GFX_ID_8 0x4018 +#define VAR_OBJ_GFX_ID_9 0x4019 +#define VAR_OBJ_GFX_ID_A 0x401A +#define VAR_OBJ_GFX_ID_B 0x401B +#define VAR_OBJ_GFX_ID_C 0x401C +#define VAR_OBJ_GFX_ID_D 0x401D +#define VAR_OBJ_GFX_ID_E 0x401E +#define VAR_OBJ_GFX_ID_F 0x401F + +// If nonzero, counts down by one every step. +// When it hits zero, repel's effect wears off. +#define VAR_REPEL_STEP_COUNT 0x4020 + +// Counts up every step. Wraps around at 128. +// When wraparound occurs, the friendship of +// every party poke gets a slight boost. +#define VAR_FRIENDSHIP_STEP_COUNT 0x4021 + +// Maybe unused? +#define VAR_ICE_STEP_COUNT 0x4022 + +// Step counter. Caps at 1500. If you enter a map with +// renewable hidden items and this counter is capped, +// the counter resets to 0 and all renewable hidden +// item flags are resampled. +#define VAR_RENEWABLE_ITEM_STEP_COUNTER 0x4023 + +// Determines which wild encounter set to use in the +// Altering Cave. Incremented by Mystery Event. +// Wraps around at 10. +#define VAR_ALTERING_CAVE_WILD_SET 0x4024 + +// Step counter set to 500 at game start. When you get +// a massage from Daisy, it resets to 0. Caps at 500. +#define VAR_MASSAGE_COOLDOWN_STEP_COUNTER 0x4025 + +// Step counter. Wraps around at 100. Used to +// determine whether the player has reached the +// triangle in time. +#define VAR_DEOXYS_INTERACTION_STEP_COUNTER 0x4026 + +// Bits 0-11 are the number of mons in all boxes +// with the species sanity bit set. +// Bits 12-15 are the same for the player's party. +// Used by Quest Log. +#define VAR_QUEST_LOG_MON_COUNTS 0x4027 #define VAR_0x4028 0x4028 #define VAR_0x4029 0x4029 #define VAR_HAPPINESS_STEP_COUNTER 0x402A @@ -70,7 +104,7 @@ #define VAR_0x403B 0x403B #define VAR_0x403C 0x403C #define VAR_0x403D 0x403D -#define VAR_0x403E 0x403E +#define VAR_DEOXYS_INTERACTION_NUM 0x403E #define VAR_0x403F 0x403F #define VAR_DAYS 0x4040 #define VAR_0x4041 0x4041 diff --git a/src/quest_log.c b/src/quest_log.c index 8762d8e60..ec8d736b8 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -129,9 +129,9 @@ static u8 sub_8110E68(struct UnkStruct_203AE98 *); static void sub_8110F90(u8); static void sub_8111150(u8); static void sub_8111368(void); -static void sub_81115E8(void); -static u16 sub_8111618(void); -static u16 sub_811164C(void); +static void QuestLog_GetSaneMonCounts(void); +static u16 QuestLog_GetSanePartyCount(void); +static u16 QuestLog_GetSaneBoxCount(void); static void sub_8111688(void); static void sub_811175C(u8, struct UnkStruct_203AE98 *); static void sub_81118F4(s8); @@ -541,7 +541,7 @@ void sub_8110AEC(u16 a0) gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_000 = 2; else gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_000 = 1; - sub_81115E8(); + QuestLog_GetSaneMonCounts(); sub_8110BB0(gUnknown_203ADF8); sub_8110BE8(gUnknown_203ADF8); sub_8110D94(); @@ -1012,8 +1012,8 @@ void sub_81113E4(void) struct PokemonAndSomethingElse { struct Pokemon mon; - u16 unk_64; - u16 unk_66; + u16 sanePartyCount; + u16 saneBoxesCount; }; void sub_8111438(void) @@ -1022,32 +1022,32 @@ void sub_8111438(void) u16 r0, r3, r5, r6; CreateMon(&r9->mon, SPECIES_RATTATA, 1, 0x20, FALSE, 0, 0, 0); - r0 = VarGet(VAR_0x4027); - r9->unk_64 = r0 >> 12; - r9->unk_66 = r0 % 0x1000; + r0 = VarGet(VAR_QUEST_LOG_MON_COUNTS); + r9->sanePartyCount = r0 >> 12; + r9->saneBoxesCount = r0 % 0x1000; - r5 = sub_8111618(); - if (r5 > r9->unk_64) + r5 = QuestLog_GetSanePartyCount(); + if (r5 > r9->sanePartyCount) { - for (r3 = 0; r3 < r5 - r9->unk_64; r3++) + for (r3 = 0; r3 < r5 - r9->sanePartyCount; r3++) { ZeroMonData(&gPlayerParty[5 - r3]); } } - else if (r5 < r9->unk_64) + else if (r5 < r9->sanePartyCount) { for (r3 = 0; r3 < 5; r3++) { sub_808BCB4(0, r3); } - for (r3 = r5; r3 < r9->unk_64; r3++) + for (r3 = r5; r3 < r9->sanePartyCount; r3++) { CopyMon(&gPlayerParty[r3], &r9->mon, sizeof(struct Pokemon)); } } - r5 = sub_811164C(); - if (r5 > r9->unk_66) + r5 = QuestLog_GetSaneBoxCount(); + if (r5 > r9->saneBoxesCount) { for (r3 = 0; r3 < 14; r3++) { @@ -1057,15 +1057,15 @@ void sub_8111438(void) { sub_808BCB4(r3, r6); r5--; - if (r5 == r9->unk_66) + if (r5 == r9->saneBoxesCount) break; } } - if (r5 == r9->unk_66) + if (r5 == r9->saneBoxesCount) break; } } - else if (r5 < r9->unk_66) + else if (r5 < r9->saneBoxesCount) { for (r3 = 0; r3 < TOTAL_BOXES_COUNT; r3++) { @@ -1076,11 +1076,11 @@ void sub_8111438(void) { CopyMon(boxMon, &r9->mon.box, sizeof(struct BoxPokemon)); r5++; - if (r5 == r9->unk_66) + if (r5 == r9->saneBoxesCount) break; } } - if (r5 == r9->unk_66) + if (r5 == r9->saneBoxesCount) break; } } @@ -1088,14 +1088,14 @@ void sub_8111438(void) Free(r9); } -static void sub_81115E8(void) +static void QuestLog_GetSaneMonCounts(void) { - u16 r4 = sub_8111618(); - u16 r1 = sub_811164C(); - VarSet(VAR_0x4027, (r4 << 12) + r1); + u16 partyCount = QuestLog_GetSanePartyCount(); + u16 boxesCount = QuestLog_GetSaneBoxCount(); + VarSet(VAR_QUEST_LOG_MON_COUNTS, (partyCount << 12) + boxesCount); } -static u16 sub_8111618(void) +static u16 QuestLog_GetSanePartyCount(void) { u16 count = 0; u16 i; @@ -1109,7 +1109,7 @@ static u16 sub_8111618(void) return count; } -static u16 sub_811164C(void) +static u16 QuestLog_GetSaneBoxCount(void) { u16 count = 0; u16 i, j; |