From 036cd9b999627970c0475d829fbe63839399ae7f Mon Sep 17 00:00:00 2001 From: Mateon1 Date: Thu, 19 Sep 2024 02:13:50 +0200 Subject: [PATCH 1/9] Add .*~ to .gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 56b0340f3..ea3c42d79 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,7 @@ tags types_*.taghl *.swp *.swo +.*~ *.s.old *.s.old2 *.dump @@ -39,4 +40,4 @@ build/ *.pl *.a .vscode/ -*.ss[0-9] \ No newline at end of file +*.ss[0-9] From 439a43e82c2a77780c25d270e8fb458b550e04e9 Mon Sep 17 00:00:00 2001 From: Mateon1 Date: Thu, 19 Sep 2024 18:59:55 +0200 Subject: [PATCH 2/9] Document more script var stuff --- data/data.s | 4 +- include/event_flag.h | 54 ++++++++++++++------ include/ground_script.h | 10 ++-- renames.sed | 2 + src/code.c | 24 ++------- src/code_2.c | 1 - src/code_801B60C.c | 7 +-- src/code_80972F4.c | 3 -- src/code_8097504.c | 3 -- src/code_809C5C4.c | 8 +-- src/event_flag.c | 110 ++++++++++++++++++++-------------------- src/ground_main.c | 3 -- src/ground_map_2.c | 4 +- src/ground_script.c | 2 +- src/ground_script_1.c | 54 +++++++------------- src/ground_script_2.c | 6 +-- src/save.c | 1 - 17 files changed, 133 insertions(+), 163 deletions(-) create mode 100644 renames.sed diff --git a/data/data.s b/data/data.s index 36c75d7ff..460a14717 100644 --- a/data/data.s +++ b/data/data.s @@ -471,8 +471,8 @@ gUnknown_80B71A0: @ 80B71A0 .string "{COLOR_1 GREEN_2}START{END_COLOR_TEXT_1}\0" .align 2,0 - .global gUnknown_80B71E4 -gUnknown_80B71E4: @ 80B71E4 + .global gGroundEnterLookupTable +gGroundEnterLookupTable: @ 80B71E4 @ [struct unkEventStruct] .2byte 105, 1 .2byte 106, 2 diff --git a/include/event_flag.h b/include/event_flag.h index 0fdfe4fe6..eaebf3915 100644 --- a/include/event_flag.h +++ b/include/event_flag.h @@ -1,39 +1,63 @@ #ifndef GUARD_EVENT_FLAG_H #define GUARD_EVENT_FLAG_H +// size: 0x10 +struct ScriptVarInfo { + s16 type; + s16 unk2; + s16 bufOffset; + s16 bitOffset; + s16 arrayLen; + s16 defaultValue; + char *name; +}; + // size: 0x8 -struct UnkEventStruct +struct ScriptVarPtr { - /* 0x0 */ s16 *unk0; - /* 0x4 */ u8 *unk4; + /* 0x0 */ struct ScriptVarInfo *info; + /* 0x4 */ u8 *ptr; }; -void GetScriptVarScenario(s32 param_1,u32 *param_2,u32 *param_3); -void ScenarioCalc(s16 param_1, s32 param_2, s32 param_3); +// event_flag.s + +void ThoroughlyResetScriptVars(void); +void ResetScriptVarArray(u8 *localVarBuf, s16 varId); +void ClearScriptVarArray(u8 *localVarBuf, s16 varId); +void GetScriptVarRef(struct ScriptVarPtr *out, u8 *localVarBuf, s32 varId); +s32 GetScriptVarValue(u8 *localVarBuf, s32 varId); +s32 GetScriptVarArrayValue(u8 *localVarBuf, s32 varId, u16 idx); +void SetScriptVarValue(u8 *localVarBuf, s32 varId, s32 val); +void SetScriptVarArrayValue(u8 *localVarBuf, s32 varId, u16 idx, s32 val); +s32 GetScriptVarArraySum(u8 *localVarBuf, s16 varId); +void GetScriptVarScenario(s32 varId,u32 *outMain,u32 *outSub); +void ScenarioCalc(s16 varId, s32 param_2, s32 param_3); bool8 ScriptVarScenarioBefore(s16 param_1, u32 param_2, s32 param_3); bool8 ScriptVarScenarioEqual(s16 param_1, u32 param_2, s32 param_3); bool8 ScriptVarScenarioAfter(s16 param_1, u32 param_2, s32 param_3); void sub_8001D88(void); u32 _FlagCalc(s32 param_1, s32 param_2, u32 operation); -u8 _FlagJudge(s32 param_1, s32 param_2, u32 operation); +bool8 _FlagJudge(s32 param_1, s32 param_2, u32 operation); u32 FlagCalc(s32 r0, s32 r1, u32 operation); -void UpdateScriptVarWithImmediate(u32 param_1, s16 param_2, s32 param_3, u32 operation); -void UpdateScriptVarWithVar(u32 param_1, s16 param_2, s16 param_3, u32 operation); -u8 FlagJudge(s32 r0, s32 r1, u32 operation); -u8 sub_80022F8(u32 param_1, s16 param_2, s32 param_3, u32 operation); -u8 sub_8002318(u32 param_1, s16 param_2, s16 param_3, u32 operation); +void UpdateScriptVarWithImmediate(u8 *localVarBuf, s16 varId, s32 val, u32 operation); +void UpdateScriptVarWithVar(u8 *localVarBuf, s16 dstVarId, s16 srcVarId, u32 operation); +bool8 FlagJudge(s32 r0, s32 r1, u32 operation); +bool8 sub_80022F8(u8 *param_1, s16 param_2, s32 param_3, u32 operation); +bool8 sub_8002318(u8 *param_1, s16 param_2, s16 param_3, u32 operation); bool8 sub_80023E4(u32 param_1); u8 sub_8002658(s16 param_1); s16 sub_8002694(u8 param_1); bool8 sub_80026CC(s16 r0); -void sub_80026E8(s16 r0); +void sub_80026E8(s16 r0, bool8 r1); bool8 sub_8002700(void *r0); bool8 sub_8002718(u8 *r0); void sub_8002758(s32 r0); u8 sub_800276C(void); -// event_flag.s -extern void ClearScriptVarArray(u32, u32); -extern u32 GetScriptVarValue(u32, u32); +// .rodata +extern struct ScriptVarInfo gScriptVarInfo[]; + +// EWRAM +extern u8 gScriptVarBuffer[0x400]; #endif // GUARD_EVENT_FLAG_H diff --git a/include/ground_script.h b/include/ground_script.h index 8db1c3766..cf8b70f5c 100644 --- a/include/ground_script.h +++ b/include/ground_script.h @@ -31,11 +31,6 @@ typedef struct ScriptInfo /* 0xA */ s8 sector; } ScriptInfo; -typedef union ScriptUnion832 { - s32 raw; - s8 arr[4]; -} ScriptUnion832; - typedef union ScriptUnion1632 { s32 raw; s16 arr[2]; @@ -70,7 +65,10 @@ typedef struct ScriptData /* 0x4D */ u8 unk4D; // padding // ultimately accessed as ldrb, doesn't work as array of u32-sized structs, needs union - /* 0x50 */ ScriptUnion832 unk50[4]; + /* 0x50 */ union { + u8 buf[16]; + u32 val[4]; + } localVars; } ScriptData; typedef struct CallbackData diff --git a/renames.sed b/renames.sed new file mode 100644 index 000000000..1de69842d --- /dev/null +++ b/renames.sed @@ -0,0 +1,2 @@ +s/gGroundEnterLookupTable/gGroundEnterLookupTable/g + diff --git a/src/code.c b/src/code.c index 2f4e4091a..280912cc6 100644 --- a/src/code.c +++ b/src/code.c @@ -36,22 +36,6 @@ void nullsub_3(s32 a0, s32 a1) /// TODO merge with event_flag ///////////////////////////////// -extern u8 gScriptVarBuffer[0x400]; - -struct unkStruct_80B7394 -{ - s16 unk0; - s16 unk2; - s16 unk4; - s16 unk6; - s16 unk8; - s16 unkA; - u8 *text; -}; - -extern struct unkStruct_80B7394 gScriptVarInfo[]; -extern void SetScriptVarArrayValue(u32, s32, u32, s32); -extern void SetScriptVarValue(u32, u32, u32); extern void sub_80972F4(void); extern void nullsub_128(void); @@ -60,7 +44,7 @@ void ThoroughlyResetScriptVars(void) s32 iVar1; s32 iVar3; u16 uVar2; - struct unkStruct_80B7394 *puVar1; + struct ScriptVarInfo *puVar1; for(iVar3 = 0; iVar3 < 0x400; iVar3++) { @@ -70,9 +54,9 @@ void ThoroughlyResetScriptVars(void) for(iVar1 = 0; iVar1 < 0x51; iVar1 = (iVar1 + 1) * 0x10000 >> 0x10) { puVar1 = &gScriptVarInfo[iVar1]; - if (((puVar1->unk0 != 0) && ((puVar1->unk0 != 8)))) { - for (uVar2 = 0; uVar2 < puVar1->unk8; uVar2++) { - SetScriptVarArrayValue(0, iVar1, uVar2, puVar1->unkA); + if (((puVar1->type != 0) && ((puVar1->type != 8)))) { + for (uVar2 = 0; uVar2 < puVar1->arrayLen; uVar2++) { + SetScriptVarArrayValue(0, iVar1, uVar2, puVar1->defaultValue); } } } diff --git a/src/code_2.c b/src/code_2.c index 9a4484abb..fd144bef7 100644 --- a/src/code_2.c +++ b/src/code_2.c @@ -34,7 +34,6 @@ extern void NDS_LoadOverlay_GroundMain(void); extern void sub_8014144(void); extern void sub_800DAAC(void); -extern void ThoroughlyResetScriptVars(void); extern void xxx_script_related_8001334(u32); extern void LoadTitleScreen(void); extern void sub_80095CC(u32, u32); diff --git a/src/code_801B60C.c b/src/code_801B60C.c index 1f9f5d7ff..22f65dfec 100644 --- a/src/code_801B60C.c +++ b/src/code_801B60C.c @@ -7,6 +7,7 @@ #include "code_8098BDC.h" #include "common_strings.h" #include "constants/colors.h" +#include "event_flag.h" #include "input.h" #include "items.h" #include "kecleon_bros4.h" @@ -24,10 +25,6 @@ static EWRAM_DATA_2 unkStruct_203B234 *sUnknown_203B234 = {0}; #include "data/code_801B60C.h" // 80DBA58 -// event_flag.s -extern u32 GetScriptVarArrayValue(u32, u32, u16); -extern void SetScriptVarArrayValue(u32, u32, u32, u32); - static void sub_801B748(u32); static void sub_801B760(void); static void sub_801B874(void); @@ -492,4 +489,4 @@ static void sub_801BEC8(void) if (!sub_80144A4(&temp)) sub_801B748(sUnknown_203B234->fallbackState); -} \ No newline at end of file +} diff --git a/src/code_80972F4.c b/src/code_80972F4.c index 4a86853df..e1775d064 100644 --- a/src/code_80972F4.c +++ b/src/code_80972F4.c @@ -10,10 +10,7 @@ ALIGNED(4) const u8 gDummyScenarioText[] = _("{COLOR_1 YELLOW_3}Scenario try dummy{END_COLOR_TEXT_1}"); ALIGNED(4) const u8 gBlankMission[] = _("{COLOR_1 RED_2}???{END_COLOR_TEXT_1}"); -extern void SetScriptVarArrayValue(u8, u8, u16, s32); -extern u32 GetScriptVarArrayValue(u32, u32, u16); extern void GeneratePelipperJobs(void); -extern void SetScriptVarValue(u8, u8, u32); void sub_80972F4(void) { diff --git a/src/code_8097504.c b/src/code_8097504.c index 4395a09e8..117647616 100644 --- a/src/code_8097504.c +++ b/src/code_8097504.c @@ -9,9 +9,6 @@ ALIGNED(4) const char gMeetNinetalesText[] = "Meet Ninetales."; ALIGNED(4) const char gAvoidCaptureText[] = "Avoid capture."; ALIGNED(4) const char gFinalScenarioText[] = _("Defeat the final Pokémon."); -extern void SetScriptVarArrayValue(u8, u8, u16, s32); -extern u32 GetScriptVarArrayValue(u32, u32, u16); -extern void SetScriptVarValue(u8, u8, u32); bool8 sub_8097504(s16 mazeIndex) { diff --git a/src/code_809C5C4.c b/src/code_809C5C4.c index cb9792c6d..3b0f31d7f 100644 --- a/src/code_809C5C4.c +++ b/src/code_809C5C4.c @@ -2,6 +2,7 @@ #include "items.h" #include "memory.h" #include "game_options.h" +#include "event_flag.h" #include "ground_main.h" #include "code_80A26CC.h" @@ -49,11 +50,6 @@ void nullsub_114(); void nullsub_115(); void nullsub_116(); -// Event_flag.h -u8 sub_8002658(s16); -s16 GetScriptVarValue(u32, u32); -extern void ClearScriptVarArray(u32, u32); - void sub_809C5C4(void) { gUnknown_3001B68 = MemoryAlloc(sizeof(struct unkStruct_3001B68), 6); @@ -276,7 +272,7 @@ void sub_809C770(s16 param_1, s16 param_2) break; case 0: default: - iVar5 = GetScriptVarValue(0,0x13); + iVar5 = (s16)GetScriptVarValue(0,0x13); break; } diff --git a/src/event_flag.c b/src/event_flag.c index 3528f0b1b..ea259bd3b 100644 --- a/src/event_flag.c +++ b/src/event_flag.c @@ -16,14 +16,14 @@ extern u8 gScriptVarBuffer[0x400]; -struct unkEventStruct +struct GroundEventTableEntry { // size: 0x4 - s16 unk0; - u8 unk2; // Seems like friend area number + s16 groundEnterId; + u8 value; // Seems like friend area number }; -extern struct unkEventStruct gUnknown_80B71E4[58]; +extern struct GroundEventTableEntry gGroundEnterLookupTable[58]; struct unkStruct_80B6D90 { @@ -45,84 +45,84 @@ extern u8 gUnknown_80B7388[]; void FatalError(DebugLocation *, const char *, ...) __attribute__((noreturn)); extern bool8 HasCompletedAllMazes(void); -extern void GetScriptVarRef(struct UnkEventStruct *r0, u32 r1, u32 r2); extern u8 sub_8002658(s16); -extern void SetScriptVarValue(u32, u32, u32); extern void sub_809733C(u32, u32); extern void sub_80973A8(u32, u32); -extern void SetScriptVarArrayValue(u32, s32, u32, s32); -extern s32 GetScriptVarArrayValue(u32, s32, u16); // code_80972F4.h (read comment) extern bool8 RescueScenarioConquered(s16); -u8 *GetScriptVarPointer(s16 param_1) +// unused +u8 *GetScriptVarPointer(s16 varId) { - struct UnkEventStruct local_1c; + struct ScriptVarPtr local_1c; - GetScriptVarRef(&local_1c,0,param_1); - return local_1c.unk4; + GetScriptVarRef(&local_1c,0,varId); + return local_1c.ptr; } -s16 GetScriptVarArrayLength(s16 param_1) +// unused +s16 GetScriptVarArrayLength(s16 varId) { - struct UnkEventStruct local_1c; + struct ScriptVarPtr local_1c; - GetScriptVarRef(&local_1c,0,param_1); - return local_1c.unk0[4]; + GetScriptVarRef(&local_1c,0,varId); + return local_1c.info->arrayLen; } -s32 GetScriptVarArraySum(s32 param_1, s16 param_2) +s32 GetScriptVarArraySum(u8 *localVarBuf, s16 varId) { s32 counter; s32 total; - struct UnkEventStruct local_1c; - s32 param_2_s32; + struct ScriptVarPtr local_1c; + s32 varId_s32; - param_2_s32 = param_2; + varId_s32 = varId; total = 0; - GetScriptVarRef(&local_1c, 0, param_2_s32); - for(counter = 0; counter < local_1c.unk0[4]; counter++) + GetScriptVarRef(&local_1c, 0, varId_s32); + for(counter = 0; counter < local_1c.info->arrayLen; counter++) { - total += GetScriptVarArrayValue(param_1, param_2_s32, counter); + total += GetScriptVarArrayValue(localVarBuf, varId_s32, counter); } return total; } -void GetScriptVarString(s16 param_1, u8 *param_2, s32 param_3) +// unused +void GetScriptVarString(s16 varId, u8 *buf, s32 maxLen) { u8 *r1; s32 r2; u8 r0; - struct UnkEventStruct local_10; + struct ScriptVarPtr local_10; - GetScriptVarRef(&local_10,0,param_1); - for (r1 = local_10.unk4, r2 = 0; r2 < param_3; r2++) { + GetScriptVarRef(&local_10,0,varId); + for (r1 = local_10.ptr, r2 = 0; r2 < maxLen; r2++) { r0 = *r1; if (*r1++ == 0) break; - *param_2 = r0; - param_2++; + *buf = r0; + buf++; } - *param_2 = 0; + *buf = 0; } -void ScriptVarStringPopFirstChar(s16 param_1,u32 param_2,s32 param_3) +// unused +void ScriptVarStringPopFirstChar(s16 varId,u32 param_2,s32 maxLen) { u8 *r1; s32 r2; u8 r0; - struct UnkEventStruct local_10; + struct ScriptVarPtr local_10; - GetScriptVarRef(&local_10,0,param_1); - for (r1 = local_10.unk4, r2 = 0; r2 < param_3; r1++, r2++) { + GetScriptVarRef(&local_10,0,varId); + for (r1 = local_10.ptr, r2 = 0; r2 < maxLen; r1++, r2++) { r0 = *r1; if (*r1++ == 0) break; *r1 = r0; } - if (r2 < local_10.unk0[4]) { - for(; r2 < local_10.unk0[4]; r1++, r2++) + if (r2 < local_10.info->arrayLen) { + for(; r2 < local_10.info->arrayLen; r1++, r2++) { *r1 = 0; } @@ -353,7 +353,7 @@ u32 _FlagCalc(s32 param_1, s32 param_2, u32 operation) } } -u8 _FlagJudge(s32 param_1, s32 param_2, u32 operation) +bool8 _FlagJudge(s32 param_1, s32 param_2, u32 operation) { switch(operation) { case 0: @@ -388,7 +388,7 @@ u32 FlagCalc(s32 r0, s32 r1, u32 operation) return _FlagCalc(r0, r1, operation); } -void UpdateScriptVarWithImmediate(u32 param_1, s16 param_2, s32 param_3, u32 operation) +void UpdateScriptVarWithImmediate(u8 *param_1, s16 param_2, s32 param_3, u32 operation) { u32 uVar1; u32 uVar3; @@ -398,7 +398,7 @@ void UpdateScriptVarWithImmediate(u32 param_1, s16 param_2, s32 param_3, u32 ope SetScriptVarValue(param_1,param_2,uVar3); } -void UpdateScriptVarWithVar(u32 param_1, s16 param_2, s16 param_3, u32 operation) +void UpdateScriptVarWithVar(u8 *param_1, s16 param_2, s16 param_3, u32 operation) { s32 uVar1; s32 uVar2; @@ -414,12 +414,12 @@ void UpdateScriptVarWithVar(u32 param_1, s16 param_2, s16 param_3, u32 operation SetScriptVarValue(param_1,param_2_s32,uVar3); } -u8 FlagJudge(s32 r0, s32 r1, u32 operation) +bool8 FlagJudge(s32 r0, s32 r1, u32 operation) { return _FlagJudge(r0, r1, operation); } -u8 sub_80022F8(u32 param_1, s16 param_2, s32 param_3, u32 operation) +bool8 sub_80022F8(u8 *param_1, s16 param_2, s32 param_3, u32 operation) { s32 uVar1; @@ -427,7 +427,7 @@ u8 sub_80022F8(u32 param_1, s16 param_2, s32 param_3, u32 operation) return _FlagJudge(uVar1,param_3,operation); } -u8 sub_8002318(u32 param_1, s16 param_2, s16 param_3, u32 operation) +bool8 sub_8002318(u8 *param_1, s16 param_2, s16 param_3, u32 operation) { s32 uVar1; s32 uVar2; @@ -440,6 +440,7 @@ u8 sub_8002318(u32 param_1, s16 param_2, s16 param_3, u32 operation) return _FlagJudge(uVar1,uVar2,operation); } +// unused s32 sub_8002354(u32 param_1) { if (param_1 < 0x3b) { @@ -450,6 +451,7 @@ s32 sub_8002354(u32 param_1) } } +// unused u8 *sub_8002374(u32 param_1) { if (param_1 < 0x3b) { @@ -559,19 +561,19 @@ u8 sub_8002658(s16 param_1) { short sVar1; s32 param_1_s32; - struct unkEventStruct *ptr; + struct GroundEventTableEntry *ptr; param_1_s32 = param_1; - ptr = gUnknown_80B71E4; - sVar1 = gUnknown_80B71E4[0].unk0; + ptr = gGroundEnterLookupTable; + sVar1 = gGroundEnterLookupTable[0].groundEnterId; if (sVar1 != -1) { do { if (sVar1 == param_1_s32) { - return ptr->unk2; + return ptr->value; } ptr++; - sVar1 = ptr->unk0; + sVar1 = ptr->groundEnterId; } while (sVar1 != -1); } return 0; @@ -580,11 +582,11 @@ u8 sub_8002658(s16 param_1) s16 sub_8002694(u8 param_1) { - struct unkEventStruct *puVar2 = gUnknown_80B71E4; + struct GroundEventTableEntry *puVar2 = gGroundEnterLookupTable; - while (puVar2->unk0 != -1) { - if (puVar2->unk2 == param_1) { - return puVar2->unk0; + while (puVar2->groundEnterId != -1) { + if (puVar2->value == param_1) { + return puVar2->groundEnterId; } puVar2++; } @@ -597,7 +599,7 @@ bool8 sub_80026CC(s16 r0) return GetFriendAreaStatus(sub_8002658(r0)); } -void sub_80026E8(s16 r0) +void sub_80026E8(s16 r0, bool8 r1) { UnlockFriendArea(sub_8002658(r0)); } @@ -610,10 +612,10 @@ bool8 sub_8002700(void *r0) bool8 sub_8002718(u8 *r0) { - struct UnkEventStruct temp; + struct ScriptVarPtr temp; GetScriptVarRef(&temp, 0, 0); MemoryCopy8(gScriptVarBuffer, r0, 0x400); - if (temp.unk0[5] != *(u32 *)temp.unk4) + if (temp.info->defaultValue != *(u32 *)temp.ptr) return 0; return 1; } diff --git a/src/ground_main.c b/src/ground_main.c index 6ed44b2a4..029c4da48 100644 --- a/src/ground_main.c +++ b/src/ground_main.c @@ -48,10 +48,7 @@ extern void GroundLives_Action(); extern void GroundObject_Action(); extern void GroundEffect_Action(); -extern s32 GetScriptVarArrayValue(u8, u8, u8); extern void sub_809CB8C(); -extern void SetScriptVarValue(u8, u8, u32); -extern void SetScriptVarArrayValue(u8, u8, u8, s32); extern void sub_8098CC8(); extern void GeneratePelipperJobs(); extern void sub_80961B4(); diff --git a/src/ground_map_2.c b/src/ground_map_2.c index 74d792bcd..36562d44c 100644 --- a/src/ground_map_2.c +++ b/src/ground_map_2.c @@ -1,6 +1,7 @@ #include "global.h" #include "memory.h" #include "debug.h" +#include "event_flag.h" #include "ground_map.h" #include "ground_map_2.h" @@ -15,7 +16,6 @@ extern const u8 gGroundWeatherSelect[]; extern const s32 gUnknown_81177BC[]; extern void sub_80A3BB0(unkStruct_3001B70 *, u32); -extern void SetScriptVarValue(u8, u8, u32); extern void sub_80A2D00(unkStruct_3001B70 *); extern void sub_80A2B40(unkStruct_3001B70 *, const u8 *); extern void sub_80A2FBC(unkStruct_3001B70 *, u32); @@ -256,4 +256,4 @@ static void sub_80A62D0(void) { if (gUnknown_3001B74->unk2 != 0) sub_80A49E8(gUnknown_3001B78); -} \ No newline at end of file +} diff --git a/src/ground_script.c b/src/ground_script.c index cc68452da..521c60e5a 100644 --- a/src/ground_script.c +++ b/src/ground_script.c @@ -68,7 +68,7 @@ void InitScriptData(ScriptData *a0) a0->unk2C = 0; a0->unk30 = 0; for (i = 0; i < 4; i++) { - a0->unk50[i].raw = 0; + a0->localVars.val[i] = 0; } } diff --git a/src/ground_script_1.c b/src/ground_script_1.c index 1baa80253..79f3c1363 100644 --- a/src/ground_script_1.c +++ b/src/ground_script_1.c @@ -1,5 +1,6 @@ #include "global.h" #include "debug.h" +#include "event_flag.h" #include "ground_link.h" #include "ground_script.h" #include "ground_sprite.h" @@ -70,27 +71,6 @@ void FatalError(void* loc, char* fmt, ...) __attribute__((noreturn)); // Beware of the declarations without specified arguments, returning u32 or s32, these were quickly hacked in to get the code to compile and link // The return values are almost certainly NOT correct and will need to be rechecked when moving to header files -u32 FlagCalc(); -u32 FlagJudge(); -s32 GetScriptVarValue(ScriptUnion832*, s32); -void ResetScriptVarArray(u8*, s16); -void ClearScriptVarArray(u8*, s16); -u32 GetScriptVarArrayValue(ScriptUnion832*, s16, u16); -void SetScriptVarValue(s32, s32, s32); -void SetScriptVarArrayValue(u8*, s16, u32, s32); -u32 GetScriptVarArraySum(); -void GetScriptVarScenario(s16, s32*, s32*); -u32 ScenarioCalc(s16, s32, s32); -u32 ScriptVarScenarioBefore(); -u32 ScriptVarScenarioEqual(); -u32 ScriptVarScenarioAfter(); -void UpdateScriptVarWithImmediate(u8*, s16, s32, u8); -void UpdateScriptVarWithVar(u8*, s16, s32, u8); -u32 sub_80022F8(); -u32 sub_8002318(); -u32 sub_80023E4(); -u32 sub_80026CC(); -void sub_80026E8(s16, bool8); char sub_8002984(s32, u8); u32 VecDirection8Radial(); u32 SizedDeltaDirection4(); @@ -1456,23 +1436,23 @@ s32 ExecuteScriptCommand(Action *action) { return 2; } case 0xa4: { - ResetScriptVarArray(scriptData->unk50[0].arr, curCmd.argShort); + ResetScriptVarArray(scriptData->localVars.buf, curCmd.argShort); break; } case 0xa5: { - ClearScriptVarArray(scriptData->unk50[0].arr, curCmd.argShort); + ClearScriptVarArray(scriptData->localVars.buf, curCmd.argShort); break; } case 0xa6: { - UpdateScriptVarWithImmediate(scriptData->unk50[0].arr, curCmd.argShort, curCmd.arg1, curCmd.argByte); + UpdateScriptVarWithImmediate(scriptData->localVars.buf, curCmd.argShort, curCmd.arg1, curCmd.argByte); break; } case 0xa7: { - UpdateScriptVarWithVar(scriptData->unk50[0].arr, curCmd.argShort, (s16)curCmd.arg1, curCmd.argByte); + UpdateScriptVarWithVar(scriptData->localVars.buf, curCmd.argShort, (s16)curCmd.arg1, curCmd.argByte); break; } case 0xa8: { - SetScriptVarArrayValue(scriptData->unk50[0].arr, curCmd.argShort, (u16)curCmd.arg1, curCmd.arg2); + SetScriptVarArrayValue(scriptData->localVars.buf, curCmd.argShort, (u16)curCmd.arg1, curCmd.arg2); break; } case 0xa9: { @@ -1525,25 +1505,25 @@ s32 ExecuteScriptCommand(Action *action) { break; } case 0xb4: { - if ((s8)sub_80022F8(scriptData->unk50, (s16)curCmd.arg1, curCmd.arg2, (u8)curCmd.argByte)) { + if ((s8)sub_80022F8(scriptData->localVars.buf, (s16)curCmd.arg1, curCmd.arg2, (u8)curCmd.argByte)) { scriptData->script.ptr = FindLabel(action, curCmd.argShort); } break; } case 0xb5: { - if ((s8)sub_8002318(scriptData->unk50, (s16)curCmd.arg1, (s16)curCmd.arg2, (u8)curCmd.argByte)) { + if ((s8)sub_8002318(scriptData->localVars.buf, (s16)curCmd.arg1, (s16)curCmd.arg2, (u8)curCmd.argByte)) { scriptData->script.ptr = FindLabel(action, curCmd.argShort); } break; } case 0xb6: { - if (GetScriptVarArrayValue(scriptData->unk50, (s16)curCmd.arg1, (u16)curCmd.arg2)) { + if (GetScriptVarArrayValue(scriptData->localVars.buf, (s16)curCmd.arg1, (u16)curCmd.arg2)) { scriptData->script.ptr = FindLabel(action, curCmd.argShort); } break; } case 0xb7: { - if ((s8)FlagJudge(GetScriptVarArraySum(scriptData->unk50, (s16)curCmd.arg1), curCmd.arg2, (u8)curCmd.argByte)) { + if ((s8)FlagJudge(GetScriptVarArraySum(scriptData->localVars.buf, (s16)curCmd.arg1), curCmd.arg2, (u8)curCmd.argByte)) { scriptData->script.ptr = FindLabel(action, curCmd.argShort); } break; @@ -1609,20 +1589,20 @@ s32 ExecuteScriptCommand(Action *action) { Position32 pos, pos2, pos3; switch (curCmd.op) { case 0xc0: { - val = GetScriptVarValue(scriptData->unk50, curCmd.argShort); + val = GetScriptVarValue(scriptData->localVars.buf, curCmd.argShort); break; } case 0xc1: { val = FlagCalc( - GetScriptVarValue(scriptData->unk50, curCmd.argShort), + GetScriptVarValue(scriptData->localVars.buf, curCmd.argShort), curCmd.arg1, (u8)curCmd.argByte); break; } case 0xc2: { val = FlagCalc( - GetScriptVarValue(scriptData->unk50, curCmd.argShort), - GetScriptVarValue(scriptData->unk50, (s16)curCmd.arg1), + GetScriptVarValue(scriptData->localVars.buf, curCmd.argShort), + GetScriptVarValue(scriptData->localVars.buf, (s16)curCmd.arg1), (u8)curCmd.argByte); break; } @@ -1704,7 +1684,7 @@ s32 ExecuteScriptCommand(Action *action) { break; } case 0xcf: { - scriptData->branchDiscriminant = GetScriptVarValue(scriptData->unk50, curCmd.argShort); + scriptData->branchDiscriminant = GetScriptVarValue(scriptData->localVars.buf, curCmd.argShort); while (scriptData->script.ptr->op == 0xd0) { if (scriptData->script.ptr->argShort == scriptData->branchDiscriminant) return 2; @@ -1722,7 +1702,7 @@ s32 ExecuteScriptCommand(Action *action) { scriptData->branchDiscriminant = 0; switch(curCmd.op) { case 0xd6: case 0xd7: case 0xd8: { - s32 disc = GetScriptVarValue(scriptData->unk50, (s16)curCmd.arg2); + s32 disc = GetScriptVarValue(scriptData->localVars.buf, (s16)curCmd.arg2); for (; scriptData->script.ptr->op == 0xd0; scriptData->script.ptr++, scriptData->branchDiscriminant++) { if (scriptData->script.ptr->argShort == disc) out = scriptData->script.ptr->argPtr; @@ -1833,7 +1813,7 @@ s32 ExecuteScriptCommand(Action *action) { break; } case 0xec: { - gUnknown_2039A34 = GetAdjustedGroundMap((s16)GetScriptVarValue(scriptData->unk50, curCmd.argShort)); + gUnknown_2039A34 = GetAdjustedGroundMap((s16)GetScriptVarValue(scriptData->localVars.buf, curCmd.argShort)); GroundCancelAllEntities(); GroundMap_ExecuteEnter(gUnknown_2039A34); break; diff --git a/src/ground_script_2.c b/src/ground_script_2.c index 5126e8036..9c09612b0 100644 --- a/src/ground_script_2.c +++ b/src/ground_script_2.c @@ -1,11 +1,9 @@ #include "debug.h" #include "global.h" +#include "event_flag.h" #include "ground_map_1.h" #include "ground_script.h" -s32 GetScriptVarValue(ScriptUnion832*, s32); -u8 FlagJudge(s32 r0, s32 r1, u32 operation); - extern u8 gAnyScriptLocked; extern u8 gScriptLocks[]; extern u32 gUnlockBranchLabels[]; @@ -102,7 +100,7 @@ ScriptCommand *ResolveJump(Action *action, s32 r1) } else if (script.op == 0xCE) { - temp = GetScriptVarValue(action->scriptData.unk50, (s16)script.arg1); + temp = GetScriptVarValue(action->scriptData.localVars.buf, (s16)script.arg1); if(FlagJudge(r1, temp, script.argByte)) return FindLabel(action, script.argShort); } diff --git a/src/save.c b/src/save.c index 73014617b..a2d745903 100644 --- a/src/save.c +++ b/src/save.c @@ -49,7 +49,6 @@ extern u32 sub_80954CC(void* a, s32 b); extern u32 sub_8095624(u8 *, u32); extern u32 RestoreMailInfo(void* a, s32 b); extern u32 SaveMailInfo(u8 *, u32); -extern void ThoroughlyResetScriptVars(void); extern void sub_80958E4(u32 *a, u32 b); extern void sub_80972F4(void); extern void sub_80974E8(void); From b6e48bd68b8d6b546020f967135779541757b95c Mon Sep 17 00:00:00 2001 From: Mateon1 Date: Thu, 19 Sep 2024 22:57:03 +0200 Subject: [PATCH 3/9] Document Judge-related ScriptVar functions --- include/event_flag.h | 4 ++-- renames.sed | 2 ++ src/event_flag.c | 4 ++-- src/ground_script_1.c | 6 +++--- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/include/event_flag.h b/include/event_flag.h index eaebf3915..9406adbb8 100644 --- a/include/event_flag.h +++ b/include/event_flag.h @@ -42,8 +42,8 @@ u32 FlagCalc(s32 r0, s32 r1, u32 operation); void UpdateScriptVarWithImmediate(u8 *localVarBuf, s16 varId, s32 val, u32 operation); void UpdateScriptVarWithVar(u8 *localVarBuf, s16 dstVarId, s16 srcVarId, u32 operation); bool8 FlagJudge(s32 r0, s32 r1, u32 operation); -bool8 sub_80022F8(u8 *param_1, s16 param_2, s32 param_3, u32 operation); -bool8 sub_8002318(u8 *param_1, s16 param_2, s16 param_3, u32 operation); +bool8 JudgeVarWithImmediate(u8 *param_1, s16 param_2, s32 param_3, u32 operation); +bool8 JudgeVarWithVar(u8 *param_1, s16 param_2, s16 param_3, u32 operation); bool8 sub_80023E4(u32 param_1); u8 sub_8002658(s16 param_1); s16 sub_8002694(u8 param_1); diff --git a/renames.sed b/renames.sed index 1de69842d..052504827 100644 --- a/renames.sed +++ b/renames.sed @@ -1,2 +1,4 @@ s/gGroundEnterLookupTable/gGroundEnterLookupTable/g +s/sub_80022F8/JudgeVarWithImmediate/g +s/sub_8002318/JudgeVarWithVar/g diff --git a/src/event_flag.c b/src/event_flag.c index ea259bd3b..ca0d6e74e 100644 --- a/src/event_flag.c +++ b/src/event_flag.c @@ -419,7 +419,7 @@ bool8 FlagJudge(s32 r0, s32 r1, u32 operation) return _FlagJudge(r0, r1, operation); } -bool8 sub_80022F8(u8 *param_1, s16 param_2, s32 param_3, u32 operation) +bool8 JudgeVarWithImmediate(u8 *param_1, s16 param_2, s32 param_3, u32 operation) { s32 uVar1; @@ -427,7 +427,7 @@ bool8 sub_80022F8(u8 *param_1, s16 param_2, s32 param_3, u32 operation) return _FlagJudge(uVar1,param_3,operation); } -bool8 sub_8002318(u8 *param_1, s16 param_2, s16 param_3, u32 operation) +bool8 JudgeVarWithVar(u8 *param_1, s16 param_2, s16 param_3, u32 operation) { s32 uVar1; s32 uVar2; diff --git a/src/ground_script_1.c b/src/ground_script_1.c index 79f3c1363..6b5345e83 100644 --- a/src/ground_script_1.c +++ b/src/ground_script_1.c @@ -1499,19 +1499,19 @@ s32 ExecuteScriptCommand(Action *action) { break; } case 0xb3: { - if ((u8)sub_80022F8(0, curCmd.argShort, curCmd.arg1, 2)) { + if ((u8)JudgeVarWithImmediate(0, curCmd.argShort, curCmd.arg1, 2)) { scriptData->script.ptr = FindLabel(action, (u8)curCmd.argByte); } break; } case 0xb4: { - if ((s8)sub_80022F8(scriptData->localVars.buf, (s16)curCmd.arg1, curCmd.arg2, (u8)curCmd.argByte)) { + if ((s8)JudgeVarWithImmediate(scriptData->localVars.buf, (s16)curCmd.arg1, curCmd.arg2, (u8)curCmd.argByte)) { scriptData->script.ptr = FindLabel(action, curCmd.argShort); } break; } case 0xb5: { - if ((s8)sub_8002318(scriptData->localVars.buf, (s16)curCmd.arg1, (s16)curCmd.arg2, (u8)curCmd.argByte)) { + if ((s8)JudgeVarWithVar(scriptData->localVars.buf, (s16)curCmd.arg1, (s16)curCmd.arg2, (u8)curCmd.argByte)) { scriptData->script.ptr = FindLabel(action, curCmd.argShort); } break; From b5bb921ade8a74b8c1ccb282b91a9532a553159c Mon Sep 17 00:00:00 2001 From: Mateon1 Date: Thu, 19 Sep 2024 22:39:23 +0200 Subject: [PATCH 4/9] Update callers of ScriptVar functions to pass NULL for local buffer --- src/code.c | 66 +++++++++++++++++++++---------------------- src/code_2.c | 4 +-- src/code_801B60C.c | 8 +++--- src/code_80972F4.c | 28 +++++++++--------- src/code_8097504.c | 8 +++--- src/code_809C5C4.c | 6 ++-- src/code_80A26CC.c | 4 +-- src/credits2.c | 4 +-- src/event_flag.c | 26 ++++++++--------- src/ground_main.c | 24 ++++++++-------- src/ground_map.c | 4 +-- src/ground_map_2.c | 4 +-- src/ground_script_1.c | 46 +++++++++++++++--------------- src/load_screen.c | 2 +- 14 files changed, 117 insertions(+), 117 deletions(-) diff --git a/src/code.c b/src/code.c index 280912cc6..3682186a6 100644 --- a/src/code.c +++ b/src/code.c @@ -56,11 +56,11 @@ void ThoroughlyResetScriptVars(void) puVar1 = &gScriptVarInfo[iVar1]; if (((puVar1->type != 0) && ((puVar1->type != 8)))) { for (uVar2 = 0; uVar2 < puVar1->arrayLen; uVar2++) { - SetScriptVarArrayValue(0, iVar1, uVar2, puVar1->defaultValue); + SetScriptVarArrayValue(NULL, iVar1, uVar2, puVar1->defaultValue); } } } - ClearScriptVarArray(0,1); + ClearScriptVarArray(NULL,1); ScenarioCalc(2,0,0); ScenarioCalc(3,0,0); ScenarioCalc(4,0,0); @@ -72,37 +72,37 @@ void ThoroughlyResetScriptVars(void) ScenarioCalc(10,0,0); ScenarioCalc(0xb,0,0); ScenarioCalc(0xc,0,0); - SetScriptVarValue(0,0xd,0xa2); - SetScriptVarValue(0,0xe,0); - SetScriptVarValue(0,0xf,0xa2); - SetScriptVarValue(0,0x10,-1); - SetScriptVarValue(0,0x11,0x24); - SetScriptVarValue(0,0x12,-1); - SetScriptVarValue(0,0x13,0); - SetScriptVarValue(0,0x14,-1); - SetScriptVarValue(0,0x16,0); - SetScriptVarValue(0,0x18,0); - SetScriptVarValue(0,0x19,0); - SetScriptVarValue(0,0x1b,-1); - SetScriptVarValue(0,0x1c,0); - SetScriptVarValue(0,0x1d,0); - SetScriptVarValue(0,0x1e,0); - SetScriptVarValue(0,0x1f,0); - ClearScriptVarArray(0,0x24); - SetScriptVarValue(0,0x25,0); - SetScriptVarValue(0,0x26,0); - SetScriptVarValue(0,0x27,0); - SetScriptVarValue(0,0x28,0); - SetScriptVarValue(0,0x29,0); - SetScriptVarValue(0,0x2a,0); - ClearScriptVarArray(0,0x2b); - ClearScriptVarArray(0,0x2c); - ClearScriptVarArray(0,0x2d); - ClearScriptVarArray(0,0x2e); - ClearScriptVarArray(0,0x2f); - ClearScriptVarArray(0,0x30); - ClearScriptVarArray(0,0x31); - ClearScriptVarArray(0,0x41); + SetScriptVarValue(NULL,0xd,0xa2); + SetScriptVarValue(NULL,0xe,0); + SetScriptVarValue(NULL,0xf,0xa2); + SetScriptVarValue(NULL,0x10,-1); + SetScriptVarValue(NULL,0x11,0x24); + SetScriptVarValue(NULL,0x12,-1); + SetScriptVarValue(NULL,0x13,0); + SetScriptVarValue(NULL,0x14,-1); + SetScriptVarValue(NULL,0x16,0); + SetScriptVarValue(NULL,0x18,0); + SetScriptVarValue(NULL,0x19,0); + SetScriptVarValue(NULL,0x1b,-1); + SetScriptVarValue(NULL,0x1c,0); + SetScriptVarValue(NULL,0x1d,0); + SetScriptVarValue(NULL,0x1e,0); + SetScriptVarValue(NULL,0x1f,0); + ClearScriptVarArray(NULL,0x24); + SetScriptVarValue(NULL,0x25,0); + SetScriptVarValue(NULL,0x26,0); + SetScriptVarValue(NULL,0x27,0); + SetScriptVarValue(NULL,0x28,0); + SetScriptVarValue(NULL,0x29,0); + SetScriptVarValue(NULL,0x2a,0); + ClearScriptVarArray(NULL,0x2b); + ClearScriptVarArray(NULL,0x2c); + ClearScriptVarArray(NULL,0x2d); + ClearScriptVarArray(NULL,0x2e); + ClearScriptVarArray(NULL,0x2f); + ClearScriptVarArray(NULL,0x30); + ClearScriptVarArray(NULL,0x31); + ClearScriptVarArray(NULL,0x41); sub_80972F4(); } diff --git a/src/code_2.c b/src/code_2.c index fd144bef7..2a5afd931 100644 --- a/src/code_2.c +++ b/src/code_2.c @@ -86,9 +86,9 @@ void GameLoop(void) ThoroughlyResetScriptVars(); xxx_script_related_8001334(14); xxx_script_related_8001334(15); - ClearScriptVarArray(0, 57); + ClearScriptVarArray(NULL, 57); xxx_script_related_8001334(16); - if (GetScriptVarValue(0, 57) == 0) + if (GetScriptVarValue(NULL, 57) == 0) xxx_script_related_8001334(17); while (1) { diff --git a/src/code_801B60C.c b/src/code_801B60C.c index 22f65dfec..b10ca8b88 100644 --- a/src/code_801B60C.c +++ b/src/code_801B60C.c @@ -160,24 +160,24 @@ static void sub_801B874(void) if (sUnknown_203B234->unk10.id == ITEM_WEAVILE_FIG) { sUnknown_203B234->fallbackState = 16; - if (GetScriptVarArrayValue(0, 71, 1)) { + if (GetScriptVarArrayValue(NULL, 71, 1)) { AddToTeamMoney(1000); sub_801B748(4); } else { - SetScriptVarArrayValue(0, 71, 1, 1); + SetScriptVarArrayValue(NULL, 71, 1, 1); sub_801B748(3); } } else if (sUnknown_203B234->unk10.id == ITEM_MIME_JR_FIG) { sUnknown_203B234->fallbackState = 16; - if (GetScriptVarArrayValue(0, 71, 0)) { + if (GetScriptVarArrayValue(NULL, 71, 0)) { AddToTeamMoney(1000); sub_801B748(4); } else { - SetScriptVarArrayValue(0, 71, 0, 1); + SetScriptVarArrayValue(NULL, 71, 0, 1); sub_801B748(3); } } diff --git a/src/code_80972F4.c b/src/code_80972F4.c index e1775d064..954851621 100644 --- a/src/code_80972F4.c +++ b/src/code_80972F4.c @@ -14,9 +14,9 @@ extern void GeneratePelipperJobs(void); void sub_80972F4(void) { - ClearScriptVarArray(0, 0x2B); - ClearScriptVarArray(0, 0x2C); - ClearScriptVarArray(0, 0x2D); + ClearScriptVarArray(NULL, 0x2B); + ClearScriptVarArray(NULL, 0x2C); + ClearScriptVarArray(NULL, 0x2D); } void nullsub_128(void) @@ -33,7 +33,7 @@ s32 sub_8097318(s16 param_1) iVar1 = 0; } else { - iVar1 = GetScriptVarArrayValue(0,0x2b,param_1_s32); + iVar1 = GetScriptVarArrayValue(NULL,0x2b,param_1_s32); if (iVar1 != 0) { iVar1 = 1; } @@ -52,7 +52,7 @@ void sub_809733C(short param_1,u32 param_2) if (uVar2 != 0xd) { uVar2_u16 = uVar2; - if ((((GetScriptVarArrayValue(0,0x2c,uVar2_u16) == 0) && (SetScriptVarArrayValue(0,0x2b,uVar2_u16,param_2_u8), param_2_u8 != '\0')))){ + if ((((GetScriptVarArrayValue(NULL,0x2c,uVar2_u16) == 0) && (SetScriptVarArrayValue(NULL,0x2b,uVar2_u16,param_2_u8), param_2_u8 != '\0')))){ switch(uVar2) { case 0xE: @@ -73,7 +73,7 @@ bool32 sub_8097384(s16 param_1) val = FALSE; else { // May not need the & 0xFFFF if the 3rd param is s16 - val = GetScriptVarArrayValue(0, 44, param_1 & 0xFFFF); + val = GetScriptVarArrayValue(NULL, 44, param_1 & 0xFFFF); if (val != 0) val = TRUE; } @@ -90,12 +90,12 @@ void sub_80973A8(s16 param_1,u32 param_2) if (param_1_s32 != 0xd) { if (param_2_u32 != 0) { sVar1 = sub_80A26B8(param_1); - SetScriptVarArrayValue(0,0x2b,param_1_s32,0); + SetScriptVarArrayValue(NULL,0x2b,param_1_s32,0); if (sVar1 != -1) { - SetScriptVarValue(0,0x12,sVar1); + SetScriptVarValue(NULL,0x12,sVar1); } } - SetScriptVarArrayValue(0,0x2c,param_1_s32,param_2_u32); + SetScriptVarArrayValue(NULL,0x2c,param_1_s32,param_2_u32); } } @@ -107,7 +107,7 @@ bool32 RescueScenarioConquered(s16 param_1) val = FALSE; else { // May not need the & 0xFFFF if the 3rd param is s16 - val = GetScriptVarArrayValue(0, 45, param_1 & 0xFFFF); + val = GetScriptVarArrayValue(NULL, 45, param_1 & 0xFFFF); if (val != 0) val = TRUE; } @@ -120,7 +120,7 @@ void sub_8097418(s16 index,bool32 param_2) int index_s32 = index; bool8 param_2_u8 = param_2; if (index_s32 != 0xd) { - if ((param_2_u8) && (SetScriptVarArrayValue(0,0x2c,index_s32,0), index_s32 < 0x1f)) { + if ((param_2_u8) && (SetScriptVarArrayValue(NULL,0x2c,index_s32,0), index_s32 < 0x1f)) { const MissionText *mt = &gStoryMissionText[index_s32]; if (mt->unk4 != 0xFF) { sub_8097FA8(mt->unk4); @@ -133,7 +133,7 @@ void sub_8097418(s16 index,bool32 param_2) } sub_8097FF8(); } - SetScriptVarArrayValue(0,0x2d,index_s32,param_2_u8); + SetScriptVarArrayValue(NULL,0x2d,index_s32,param_2_u8); } } @@ -176,8 +176,8 @@ const u8 *GetCurrentMissionText(s16 index) void sub_80974E8(void) { - ClearScriptVarArray(0, 0x2E); - ClearScriptVarArray(0, 0x2F); + ClearScriptVarArray(NULL, 0x2E); + ClearScriptVarArray(NULL, 0x2F); } void nullsub_208(void) diff --git a/src/code_8097504.c b/src/code_8097504.c index 117647616..19a6f57ef 100644 --- a/src/code_8097504.c +++ b/src/code_8097504.c @@ -74,7 +74,7 @@ bool32 IsMazeCompleted(s16 mazeIndex) { bool32 mazeCompletion; - mazeCompletion = GetScriptVarArrayValue(0, 0x2e, mazeIndex); + mazeCompletion = GetScriptVarArrayValue(NULL, 0x2e, mazeIndex); if (mazeCompletion) { mazeCompletion = TRUE; } @@ -84,7 +84,7 @@ bool32 IsMazeCompleted(s16 mazeIndex) void sub_80975A8(s16 param_1,u8 param_2) { u16 param_1_u16 = param_1; - SetScriptVarArrayValue(0,0x2e,param_1_u16,param_2); + SetScriptVarArrayValue(NULL,0x2e,param_1_u16,param_2); } const u8 *sub_80975C4(s16 index) @@ -118,9 +118,9 @@ bool8 HasCompletedAllMazes(void) bool8 sub_8097640(void) { - if(GetScriptVarArrayValue(0, 0x2E, 0x1F) == 0 && HasCompletedAllMazes()) + if(GetScriptVarArrayValue(NULL, 0x2E, 0x1F) == 0 && HasCompletedAllMazes()) { - SetScriptVarArrayValue(0, 0x2E, 0x1F, 1); + SetScriptVarArrayValue(NULL, 0x2E, 0x1F, 1); return TRUE; } else diff --git a/src/code_809C5C4.c b/src/code_809C5C4.c index 3b0f31d7f..e089e6c43 100644 --- a/src/code_809C5C4.c +++ b/src/code_809C5C4.c @@ -272,7 +272,7 @@ void sub_809C770(s16 param_1, s16 param_2) break; case 0: default: - iVar5 = (s16)GetScriptVarValue(0,0x13); + iVar5 = (s16)GetScriptVarValue(NULL,0x13); break; } @@ -413,8 +413,8 @@ void sub_809CB74(void) { void sub_809CB8C(void) { - ClearScriptVarArray(0, 0x3B); - ClearScriptVarArray(0, 0x3D); + ClearScriptVarArray(NULL, 0x3B); + ClearScriptVarArray(NULL, 0x3D); } bool8 HasItemInInventory(u8 item) diff --git a/src/code_80A26CC.c b/src/code_80A26CC.c index d25431df4..c4be7b1d6 100644 --- a/src/code_80A26CC.c +++ b/src/code_80A26CC.c @@ -74,7 +74,7 @@ u32 sub_80A25AC(u16 param_1) return 19; if (param_1 != 1) return param_1; - GetScriptVarValue(0, 40); + GetScriptVarValue(NULL, 40); return 1; } @@ -460,5 +460,5 @@ const u8 *sub_80A2B18(s16 param_1) UNUSED static const u8 *sub_80A2B28(u16 r0) { - return sub_80A2B18(GetScriptVarValue(0, 17)); + return sub_80A2B18(GetScriptVarValue(NULL, 17)); } diff --git a/src/credits2.c b/src/credits2.c index 4e288e655..b5cee4e87 100644 --- a/src/credits2.c +++ b/src/credits2.c @@ -14,7 +14,7 @@ bool8 sub_8035678(void) sCredits2Work = MemoryAlloc(sizeof(Credits2Work), 8); sCredits2Work->state = 0; sCredits2Work->unk4 = 0; - ClearScriptVarArray(0, 57); + ClearScriptVarArray(NULL, 57); return TRUE; } @@ -62,7 +62,7 @@ u32 sub_80356A0(void) return 3; // sub_809C478 clears the flash data when this is returned } - if (GetScriptVarValue(0, 57) != 0) { + if (GetScriptVarValue(NULL, 57) != 0) { sCredits2Work->state = 3; return 2; } diff --git a/src/event_flag.c b/src/event_flag.c index ca0d6e74e..1d177b8b8 100644 --- a/src/event_flag.c +++ b/src/event_flag.c @@ -131,8 +131,8 @@ void ScriptVarStringPopFirstChar(s16 varId,u32 param_2,s32 maxLen) void GetScriptVarScenario(s32 param_1,u32 *param_2,u32 *param_3) { - *param_2 = GetScriptVarArrayValue(0, (s16)param_1, 0); - *param_3 = GetScriptVarArrayValue(0, (s16)param_1, 1); + *param_2 = GetScriptVarArrayValue(NULL, (s16)param_1, 0); + *param_3 = GetScriptVarArrayValue(NULL, (s16)param_1, 1); } void ScenarioCalc(s16 param_1,s32 param_2,s32 param_3) @@ -145,10 +145,10 @@ void ScenarioCalc(s16 param_1,s32 param_2,s32 param_3) GetScriptVarScenario(param_1_s32,&local_18,&local_14); Log(6,gUnknown_80B72CC,param_1_s32,local_18,local_14,param_2,param_3); // SCENARIO CALC [%3d] %4d %4d -> %4d %4d if ((param_1_s32 == 3) && ((param_2 != local_18 || (param_3 != local_14)))) { - SetScriptVarValue(0,0x19,0); + SetScriptVarValue(NULL,0x19,0); } - SetScriptVarArrayValue(0,param_1_s32,0,param_2); - SetScriptVarArrayValue(0,param_1_s32,1,param_3); + SetScriptVarArrayValue(NULL,param_1_s32,0,param_2); + SetScriptVarArrayValue(NULL,param_1_s32,1,param_3); switch(param_1_s32) { @@ -186,8 +186,8 @@ bool8 ScriptVarScenarioBefore(s16 param_1,u32 param_2,s32 param_3) s32 uVar1; s32 iVar2; - uVar1 = GetScriptVarArrayValue(0,param_1,0); - iVar2 = GetScriptVarArrayValue(0,param_1,1); + uVar1 = GetScriptVarArrayValue(NULL,param_1,0); + iVar2 = GetScriptVarArrayValue(NULL,param_1,1); if ((uVar1 != 0x3a) && (uVar1 < param_2 || (param_3 >= 0 && (uVar1 == param_2) && (iVar2 < param_3)))) { return TRUE; @@ -202,8 +202,8 @@ bool8 ScriptVarScenarioEqual(s16 param_1,u32 param_2,s32 param_3) s32 uVar1; s32 iVar2; - uVar1 = GetScriptVarArrayValue(0, param_1, 0); - iVar2 = GetScriptVarArrayValue(0, param_1, 1); + uVar1 = GetScriptVarArrayValue(NULL, param_1, 0); + iVar2 = GetScriptVarArrayValue(NULL, param_1, 1); if (((uVar1 == param_2 && (((param_3 < 0) || (iVar2 == param_3)))))) { return TRUE; } @@ -217,8 +217,8 @@ bool8 ScriptVarScenarioAfter(s16 param_1,u32 param_2,s32 param_3) s32 uVar1; s32 iVar2; - uVar1 = GetScriptVarArrayValue(0, param_1, 0); - iVar2 = GetScriptVarArrayValue(0, param_1, 1); + uVar1 = GetScriptVarArrayValue(NULL, param_1, 0); + iVar2 = GetScriptVarArrayValue(NULL, param_1, 1); if ((uVar1 != 0x3a) && ((uVar1 > param_2 || (((param_3 >= 0 && (uVar1 == param_2)) && (iVar2 > param_3)))))) { return TRUE; @@ -239,7 +239,7 @@ void sub_8001D88(void) if (ScriptVarScenarioAfter(3,0xf,7) != 0) { ScenarioCalc(4,0x1f,0); sub_8097418(0xe,1); - SetScriptVarValue(0,0x28,2); + SetScriptVarValue(NULL,0x28,2); } else { if ((ScriptVarScenarioEqual(4,0,0)) && (ScriptVarScenarioAfter(3,0xf,3))) { @@ -622,7 +622,7 @@ bool8 sub_8002718(u8 *r0) void sub_8002758(s32 r0) { - UpdateScriptVarWithImmediate(0, 0x1, r0, 0x9); + UpdateScriptVarWithImmediate(NULL, 0x1, r0, 0x9); } u8 sub_800276C(void) diff --git a/src/ground_main.c b/src/ground_main.c index 029c4da48..71937c98d 100644 --- a/src/ground_main.c +++ b/src/ground_main.c @@ -90,26 +90,26 @@ void sub_8098BDC(void) void sub_8098C58(void) { s32 temp, temp2; - ClearScriptVarArray(0, 54); - ClearScriptVarArray(0, 57); + ClearScriptVarArray(NULL, 54); + ClearScriptVarArray(NULL, 57); sub_809CB8C(); sub_8001D88(); - if (GetScriptVarValue(0, 42) != 0) { - temp = GetScriptVarValue(0, 41); + if (GetScriptVarValue(NULL, 42) != 0) { + temp = GetScriptVarValue(NULL, 41); temp++; if (temp > 15) temp = 0; - SetScriptVarValue(0, 41, temp); - SetScriptVarValue(0, 42, 0); + SetScriptVarValue(NULL, 41, temp); + SetScriptVarValue(NULL, 42, 0); } - temp2 = GetScriptVarArrayValue(0, 66, 0); + temp2 = GetScriptVarArrayValue(NULL, 66, 0); if (temp2 <= 0) temp2 = 1; temp2--; - SetScriptVarArrayValue(0, 66, 0, temp2); + SetScriptVarArrayValue(NULL, 66, 0, temp2); sub_8098CC8(); } @@ -275,12 +275,12 @@ bool8 GetScriptMode(void) s16 sub_8098FA0(void) { - return GetScriptVarValue(0, 0x11); + return GetScriptVarValue(NULL, 0x11); } const char *sub_8098FB4(void) { - return sub_80A2B18(GetScriptVarValue(0, 0x11)); + return sub_80A2B18(GetScriptVarValue(NULL, 0x11)); } s16 sub_8098FCC(u32 unused) @@ -290,12 +290,12 @@ s16 sub_8098FCC(u32 unused) s32 iVar6; const DungeonInfo *iVar3; - iVar5 = (s16)GetScriptVarValue(0,0x13); + iVar5 = (s16)GetScriptVarValue(NULL,0x13); iVar6 = iVar5; if (iVar5 == -1) return 0xC; if (iVar5 == 0x51) - iVar4 = (s16)GetScriptVarValue(0,0x14); + iVar4 = (s16)GetScriptVarValue(NULL,0x14); else iVar4 = iVar6; diff --git a/src/ground_map.c b/src/ground_map.c index eac40a478..2cef8f677 100644 --- a/src/ground_map.c +++ b/src/ground_map.c @@ -37,8 +37,8 @@ void FreeGroundMapAction(void) void GroundMap_Reset(void) { - ClearScriptVarArray(0, 0x37); - ClearScriptVarArray(0, 0x38); + ClearScriptVarArray(NULL, 0x37); + ClearScriptVarArray(NULL, 0x38); ActionResetScriptData((Action *)gGroundMapAction, gUnknown_8117538); if (gGroundMapDungeon_3001B70 != NULL) { diff --git a/src/ground_map_2.c b/src/ground_map_2.c index 36562d44c..57a2a42c1 100644 --- a/src/ground_map_2.c +++ b/src/ground_map_2.c @@ -52,7 +52,7 @@ void sub_80A5EBC(void) void sub_80A5EDC(u8 param_1) { - SetScriptVarValue(0, 27, -1); + SetScriptVarValue(NULL, 27, -1); gUnknown_3001B74->unk0 = -1; gUnknown_3001B74->unk2 = param_1; @@ -84,7 +84,7 @@ void GroundWeather_Select(s16 param_1) iVar2 = param_1; iVar3 = iVar2; Log(0, gGroundWeatherSelect, iVar2, gUnknown_3001B74->unk2); - SetScriptVarValue(0, 27, iVar2); + SetScriptVarValue(NULL, 27, iVar2); gUnknown_3001B74->unk0 = iVar2; if (gUnknown_3001B74->unk2 == 0) diff --git a/src/ground_script_1.c b/src/ground_script_1.c index 6b5345e83..04b4da04c 100644 --- a/src/ground_script_1.c +++ b/src/ground_script_1.c @@ -215,7 +215,7 @@ s32 ExecuteScriptCommand(Action *action) { } case 0x02: { s32 arg = (s16)curCmd.arg1; - if (arg == -1) arg = (s16)GetScriptVarValue(0, 19); + if (arg == -1) arg = (s16)GetScriptVarValue(NULL, 19); if (ScriptLoggingEnabled(TRUE)) { // " dungeon select %3d" Log(1, gUnknown_81165F4, arg); @@ -247,7 +247,7 @@ s32 ExecuteScriptCommand(Action *action) { } return 2; // do action } else { - SetScriptVarValue(0, 18, sub_80A26B8((s16)curCmd.arg1)); + SetScriptVarValue(NULL, 18, sub_80A26B8((s16)curCmd.arg1)); action->scriptData.branchDiscriminant = 1; return 2; // do action } @@ -264,7 +264,7 @@ s32 ExecuteScriptCommand(Action *action) { return 2; } } else { - SetScriptVarValue(0, 19, curCmd.arg1); + SetScriptVarValue(NULL, 19, curCmd.arg1); action->scriptData.branchDiscriminant = 1; return 2; } @@ -276,9 +276,9 @@ s32 ExecuteScriptCommand(Action *action) { case 0x07: { s32 tmp = (s16)curCmd.arg1; if (tmp == -1) { - tmp = (s16)GetScriptVarValue(0, 19); + tmp = (s16)GetScriptVarValue(NULL, 19); } else { - SetScriptVarValue(0, 19, tmp); + SetScriptVarValue(NULL, 19, tmp); } if (ScriptLoggingEnabled(TRUE)) { Log(1, gUnknown_811660C, tmp); @@ -310,8 +310,8 @@ s32 ExecuteScriptCommand(Action *action) { gGroundConversion_811BAF4[gCurrentMap].text); } } - SetScriptVarValue(0,0x10,gCurrentMap); - SetScriptVarValue(0,0x11,gGroundConversion_811BAF4[gCurrentMap].unk2); + SetScriptVarValue(NULL,0x10,gCurrentMap); + SetScriptVarValue(NULL,0x11,gGroundConversion_811BAF4[gCurrentMap].unk2); GroundSprite_Reset(gUnknown_2039A32); sub_809D0BC(); DeleteGroundEvents(); @@ -516,9 +516,9 @@ s32 ExecuteScriptCommand(Action *action) { break; } case 0x1f: { - s32 a = (s16)GetScriptVarValue(0, 19); + s32 a = (s16)GetScriptVarValue(NULL, 19); const DungeonInfo *ret1 = GetDungeonInfo_80A2608(a); - s32 thing = GetScriptVarArrayValue(0, 48, a) == 0 ? ret1->unk6 : ret1->unk8; + s32 thing = GetScriptVarArrayValue(NULL, 48, a) == 0 ? ret1->unk6 : ret1->unk8; // fakematch: this is almost certainly a range check of the form 0x37 <= a && a < 0x48 // but that loses the s32 -> u16 cast. Inlines, macros, or other schenanigans are likely involved if (!((u16)(a - 0x37) < 0x11) && (s16)sub_80A2750(a) == 1) { @@ -1001,10 +1001,10 @@ s32 ExecuteScriptCommand(Action *action) { Position32 pos; s32 height; s32 dir; - pos.x = GetScriptVarArrayValue(0, 0x32, (u16)curCmd.arg1); // POSITION_X - pos.y = GetScriptVarArrayValue(0, 0x33, (u16)curCmd.arg1); // POSITION_Y - height = GetScriptVarArrayValue(0, 0x34, (u16)curCmd.arg1); // POSITION_HEIGHT - dir = (s8)GetScriptVarArrayValue(0, 0x35, (u16)curCmd.arg1); // POSITION_DIRECTION + pos.x = GetScriptVarArrayValue(NULL, 0x32, (u16)curCmd.arg1); // POSITION_X + pos.y = GetScriptVarArrayValue(NULL, 0x33, (u16)curCmd.arg1); // POSITION_Y + height = GetScriptVarArrayValue(NULL, 0x34, (u16)curCmd.arg1); // POSITION_HEIGHT + dir = (s8)GetScriptVarArrayValue(NULL, 0x35, (u16)curCmd.arg1); // POSITION_DIRECTION action->callbacks->moveReal(action->parentObject, &pos); action->callbacks->setPosHeight(action->parentObject, height); action->scriptData.unk26 = dir; @@ -1024,10 +1024,10 @@ s32 ExecuteScriptCommand(Action *action) { action->callbacks->getHitboxCenter(action->parentObject, &pos); action->callbacks->getPosHeightAndUnk(action->parentObject, &height, &wat); action->callbacks->getDirection(action->parentObject, &dir); - SetScriptVarArrayValue(0, 0x32, (u16)curCmd.arg1, pos.x); - SetScriptVarArrayValue(0, 0x33, (u16)curCmd.arg1, pos.y); - SetScriptVarArrayValue(0, 0x34, (u16)curCmd.arg1, height); - SetScriptVarArrayValue(0, 0x35, (u16)curCmd.arg1, dir); + SetScriptVarArrayValue(NULL, 0x32, (u16)curCmd.arg1, pos.x); + SetScriptVarArrayValue(NULL, 0x33, (u16)curCmd.arg1, pos.y); + SetScriptVarArrayValue(NULL, 0x34, (u16)curCmd.arg1, height); + SetScriptVarArrayValue(NULL, 0x35, (u16)curCmd.arg1, dir); break; } case 0x60: { @@ -1466,12 +1466,12 @@ s32 ExecuteScriptCommand(Action *action) { break; } case 0xab: { - SetScriptVarValue(0, 19, curCmd.arg1); - SetScriptVarValue(0, 22, curCmd.argShort); + SetScriptVarValue(NULL, 19, curCmd.arg1); + SetScriptVarValue(NULL, 22, curCmd.argShort); break; } case 0xac: { - SetScriptVarValue(0, 28, curCmd.argShort); + SetScriptVarValue(NULL, 28, curCmd.argShort); break; } case 0xad: { @@ -1499,7 +1499,7 @@ s32 ExecuteScriptCommand(Action *action) { break; } case 0xb3: { - if ((u8)JudgeVarWithImmediate(0, curCmd.argShort, curCmd.arg1, 2)) { + if ((u8)JudgeVarWithImmediate(NULL, curCmd.argShort, curCmd.arg1, 2)) { scriptData->script.ptr = FindLabel(action, (u8)curCmd.argByte); } break; @@ -1611,11 +1611,11 @@ s32 ExecuteScriptCommand(Action *action) { break; } case 0xc4: { - val = GetScriptVarArrayValue(0, curCmd.argShort, 0); + val = GetScriptVarArrayValue(NULL, curCmd.argShort, 0); break; } case 0xc5: { - val = GetScriptVarArrayValue(0, curCmd.argShort, 1); + val = GetScriptVarArrayValue(NULL, curCmd.argShort, 1); break; } case 0xc6: { diff --git a/src/load_screen.c b/src/load_screen.c index 5637919db..54b73a9cc 100644 --- a/src/load_screen.c +++ b/src/load_screen.c @@ -308,7 +308,7 @@ void DrawLoadScreenText(void) switch(sub_8011C1C()) { case 1: - switch(GetScriptVarValue(0,24)) + switch(GetScriptVarValue(NULL,24)) { default: sprintfStatic(auStack356,gUnknown_80E7804,sub_8098FB4()); From e2e085f33b6e8b7c72768d8a598449680e33c1b4 Mon Sep 17 00:00:00 2001 From: Mateon1 Date: Thu, 19 Sep 2024 18:52:50 +0200 Subject: [PATCH 5/9] Use enum for FlagJudge operations --- include/event_flag.h | 22 ++++++++++++++++++---- src/event_flag.c | 34 +++++++++++++++++----------------- src/ground_script_1.c | 2 +- src/ground_script_2.c | 2 +- 4 files changed, 37 insertions(+), 23 deletions(-) diff --git a/include/event_flag.h b/include/event_flag.h index 9406adbb8..0906109a9 100644 --- a/include/event_flag.h +++ b/include/event_flag.h @@ -1,6 +1,20 @@ #ifndef GUARD_EVENT_FLAG_H #define GUARD_EVENT_FLAG_H +enum FlagJudgeOperation { + JUDGE_TRUE, + JUDGE_FALSE, + JUDGE_EQ, + JUDGE_GT, + JUDGE_LT, + JUDGE_GE, + JUDGE_LE, + JUDGE_NE, + JUDGE_AND_NONZERO, + JUDGE_XOR_NONZERO, // logically identical to JUDGE_NE + JUDGE_BIT_SET, +}; + // size: 0x10 struct ScriptVarInfo { s16 type; @@ -37,13 +51,13 @@ bool8 ScriptVarScenarioEqual(s16 param_1, u32 param_2, s32 param_3); bool8 ScriptVarScenarioAfter(s16 param_1, u32 param_2, s32 param_3); void sub_8001D88(void); u32 _FlagCalc(s32 param_1, s32 param_2, u32 operation); -bool8 _FlagJudge(s32 param_1, s32 param_2, u32 operation); +bool8 _FlagJudge(s32 param_1, s32 param_2, enum FlagJudgeOperation operation); u32 FlagCalc(s32 r0, s32 r1, u32 operation); void UpdateScriptVarWithImmediate(u8 *localVarBuf, s16 varId, s32 val, u32 operation); void UpdateScriptVarWithVar(u8 *localVarBuf, s16 dstVarId, s16 srcVarId, u32 operation); -bool8 FlagJudge(s32 r0, s32 r1, u32 operation); -bool8 JudgeVarWithImmediate(u8 *param_1, s16 param_2, s32 param_3, u32 operation); -bool8 JudgeVarWithVar(u8 *param_1, s16 param_2, s16 param_3, u32 operation); +bool8 FlagJudge(s32 r0, s32 r1, enum FlagJudgeOperation operation); +bool8 JudgeVarWithImmediate(u8 *param_1, s16 param_2, s32 param_3, enum FlagJudgeOperation operation); +bool8 JudgeVarWithVar(u8 *param_1, s16 param_2, s16 param_3, enum FlagJudgeOperation operation); bool8 sub_80023E4(u32 param_1); u8 sub_8002658(s16 param_1); s16 sub_8002694(u8 param_1); diff --git a/src/event_flag.c b/src/event_flag.c index 1d177b8b8..80dc72ecc 100644 --- a/src/event_flag.c +++ b/src/event_flag.c @@ -353,30 +353,30 @@ u32 _FlagCalc(s32 param_1, s32 param_2, u32 operation) } } -bool8 _FlagJudge(s32 param_1, s32 param_2, u32 operation) +bool8 _FlagJudge(s32 param_1, s32 param_2, enum FlagJudgeOperation operation) { switch(operation) { - case 0: - return 1; - case 1: - return 0; - case 2: + case JUDGE_TRUE: + return TRUE; + case JUDGE_FALSE: + return FALSE; + case JUDGE_EQ: return param_1 == param_2; - case 7: + case JUDGE_NE: return param_1 != param_2; - case 3: + case JUDGE_GT: return param_1 > param_2; - case 5: + case JUDGE_GE: return param_1 >= param_2; - case 4: + case JUDGE_LT: return param_1 < param_2; - case 6: + case JUDGE_LE: return param_1 <= param_2; - case 8: + case JUDGE_AND_NONZERO: return (param_1 & param_2) != 0; - case 9: + case JUDGE_XOR_NONZERO: return (param_1 ^ param_2) != 0; - case 10: + case JUDGE_BIT_SET: return param_1 >> (param_2) & 1; default: FatalError(&gUnknown_80B7350,gUnknown_80B735C, operation); // event flag rule error %d @@ -414,12 +414,12 @@ void UpdateScriptVarWithVar(u8 *param_1, s16 param_2, s16 param_3, u32 operation SetScriptVarValue(param_1,param_2_s32,uVar3); } -bool8 FlagJudge(s32 r0, s32 r1, u32 operation) +bool8 FlagJudge(s32 r0, s32 r1, enum FlagJudgeOperation operation) { return _FlagJudge(r0, r1, operation); } -bool8 JudgeVarWithImmediate(u8 *param_1, s16 param_2, s32 param_3, u32 operation) +bool8 JudgeVarWithImmediate(u8 *param_1, s16 param_2, s32 param_3, enum FlagJudgeOperation operation) { s32 uVar1; @@ -427,7 +427,7 @@ bool8 JudgeVarWithImmediate(u8 *param_1, s16 param_2, s32 param_3, u32 operation return _FlagJudge(uVar1,param_3,operation); } -bool8 JudgeVarWithVar(u8 *param_1, s16 param_2, s16 param_3, u32 operation) +bool8 JudgeVarWithVar(u8 *param_1, s16 param_2, s16 param_3, enum FlagJudgeOperation operation) { s32 uVar1; s32 uVar2; diff --git a/src/ground_script_1.c b/src/ground_script_1.c index 04b4da04c..7bdd5ac0d 100644 --- a/src/ground_script_1.c +++ b/src/ground_script_1.c @@ -1499,7 +1499,7 @@ s32 ExecuteScriptCommand(Action *action) { break; } case 0xb3: { - if ((u8)JudgeVarWithImmediate(NULL, curCmd.argShort, curCmd.arg1, 2)) { + if ((u8)JudgeVarWithImmediate(NULL, curCmd.argShort, curCmd.arg1, JUDGE_EQ)) { scriptData->script.ptr = FindLabel(action, (u8)curCmd.argByte); } break; diff --git a/src/ground_script_2.c b/src/ground_script_2.c index 9c09612b0..ff64a806e 100644 --- a/src/ground_script_2.c +++ b/src/ground_script_2.c @@ -90,7 +90,7 @@ ScriptCommand *ResolveJump(Action *action, s32 r1) if (script.op == 0xCC) { - if(FlagJudge(r1, script.arg1, 0x2)) + if(FlagJudge(r1, script.arg1, JUDGE_EQ)) return FindLabel(action, script.argShort); } else if (script.op == 0xCD) From 0abc6f4c8944b05b5c503a857a916f2153e90541 Mon Sep 17 00:00:00 2001 From: Mateon1 Date: Thu, 19 Sep 2024 20:31:58 +0200 Subject: [PATCH 6/9] Use enum for FlagCalc operations --- include/event_flag.h | 23 +++++++++++++++++++---- src/event_flag.c | 34 +++++++++++++++++----------------- 2 files changed, 36 insertions(+), 21 deletions(-) diff --git a/include/event_flag.h b/include/event_flag.h index 0906109a9..cebead9c1 100644 --- a/include/event_flag.h +++ b/include/event_flag.h @@ -1,6 +1,21 @@ #ifndef GUARD_EVENT_FLAG_H #define GUARD_EVENT_FLAG_H +enum FlagCalcOperation { + CALC_SET, + CALC_SUB, + CALC_ADD, + CALC_MUL, + CALC_DIV, + CALC_MOD, + CALC_AND, + CALC_OR, + CALC_XOR, + CALC_SETBIT, + CALC_CLEARBIT, + CALC_RANDOM, +}; + enum FlagJudgeOperation { JUDGE_TRUE, JUDGE_FALSE, @@ -50,11 +65,11 @@ bool8 ScriptVarScenarioBefore(s16 param_1, u32 param_2, s32 param_3); bool8 ScriptVarScenarioEqual(s16 param_1, u32 param_2, s32 param_3); bool8 ScriptVarScenarioAfter(s16 param_1, u32 param_2, s32 param_3); void sub_8001D88(void); -u32 _FlagCalc(s32 param_1, s32 param_2, u32 operation); +s32 _FlagCalc(s32 param_1, s32 param_2, enum FlagCalcOperation operation); bool8 _FlagJudge(s32 param_1, s32 param_2, enum FlagJudgeOperation operation); -u32 FlagCalc(s32 r0, s32 r1, u32 operation); -void UpdateScriptVarWithImmediate(u8 *localVarBuf, s16 varId, s32 val, u32 operation); -void UpdateScriptVarWithVar(u8 *localVarBuf, s16 dstVarId, s16 srcVarId, u32 operation); +s32 FlagCalc(s32 r0, s32 r1, enum FlagCalcOperation operation); +void UpdateScriptVarWithImmediate(u8 *localVarBuf, s16 varId, s32 val, enum FlagCalcOperation operation); +void UpdateScriptVarWithVar(u8 *localVarBuf, s16 dstVarId, s16 srcVarId, enum FlagCalcOperation operation); bool8 FlagJudge(s32 r0, s32 r1, enum FlagJudgeOperation operation); bool8 JudgeVarWithImmediate(u8 *param_1, s16 param_2, s32 param_3, enum FlagJudgeOperation operation); bool8 JudgeVarWithVar(u8 *param_1, s16 param_2, s16 param_3, enum FlagJudgeOperation operation); diff --git a/src/event_flag.c b/src/event_flag.c index 80dc72ecc..56bc64fb0 100644 --- a/src/event_flag.c +++ b/src/event_flag.c @@ -321,32 +321,32 @@ void sub_8001D88(void) } } -u32 _FlagCalc(s32 param_1, s32 param_2, u32 operation) +s32 _FlagCalc(s32 param_1, s32 param_2, enum FlagCalcOperation operation) { switch(operation) { - case 0: + case CALC_SET: return param_2; - case 1: + case CALC_SUB: return param_1 - param_2; - case 2: + case CALC_ADD: return param_1 + param_2; - case 3: + case CALC_MUL: return param_1 * param_2; - case 4: + case CALC_DIV: return param_1 / param_2; - case 5: + case CALC_MOD: return param_1 % param_2; - case 6: + case CALC_AND: return param_1 & param_2; - case 7: + case CALC_OR: return param_1 | param_2; - case 8: + case CALC_XOR: return param_1 ^ param_2; - case 9: + case CALC_SETBIT: return (1 << param_2) | param_1; - case 10: + case CALC_CLEARBIT: return param_1 & ~(1 << param_2); - case 0xb: + case CALC_RANDOM: return OtherRandInt(param_2); default: FatalError(&gUnknown_80B7318,gUnknown_80B7324, operation); // event flag expansion error %d @@ -383,12 +383,12 @@ bool8 _FlagJudge(s32 param_1, s32 param_2, enum FlagJudgeOperation operation) } } -u32 FlagCalc(s32 r0, s32 r1, u32 operation) +s32 FlagCalc(s32 r0, s32 r1, enum FlagCalcOperation operation) { return _FlagCalc(r0, r1, operation); } -void UpdateScriptVarWithImmediate(u8 *param_1, s16 param_2, s32 param_3, u32 operation) +void UpdateScriptVarWithImmediate(u8 *param_1, s16 param_2, s32 param_3, enum FlagCalcOperation operation) { u32 uVar1; u32 uVar3; @@ -398,7 +398,7 @@ void UpdateScriptVarWithImmediate(u8 *param_1, s16 param_2, s32 param_3, u32 ope SetScriptVarValue(param_1,param_2,uVar3); } -void UpdateScriptVarWithVar(u8 *param_1, s16 param_2, s16 param_3, u32 operation) +void UpdateScriptVarWithVar(u8 *param_1, s16 param_2, s16 param_3, enum FlagCalcOperation operation) { s32 uVar1; s32 uVar2; @@ -622,7 +622,7 @@ bool8 sub_8002718(u8 *r0) void sub_8002758(s32 r0) { - UpdateScriptVarWithImmediate(NULL, 0x1, r0, 0x9); + UpdateScriptVarWithImmediate(NULL, 0x1, r0, CALC_SETBIT); } u8 sub_800276C(void) From dcc7bd71154c2e6a35b7d79c0813c26bb6aca95a Mon Sep 17 00:00:00 2001 From: Mateon1 Date: Thu, 19 Sep 2024 23:21:29 +0200 Subject: [PATCH 7/9] Script var buffer save/restore functions --- include/event_flag.h | 4 ++-- renames.sed | 2 ++ src/event_flag.c | 4 ++-- src/save.c | 4 ++-- sym_ewram.txt | 2 +- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/include/event_flag.h b/include/event_flag.h index cebead9c1..bab275389 100644 --- a/include/event_flag.h +++ b/include/event_flag.h @@ -78,8 +78,8 @@ u8 sub_8002658(s16 param_1); s16 sub_8002694(u8 param_1); bool8 sub_80026CC(s16 r0); void sub_80026E8(s16 r0, bool8 r1); -bool8 sub_8002700(void *r0); -bool8 sub_8002718(u8 *r0); +bool8 SaveGlobalScriptVars(void *r0); +bool8 RestoreGlobalScriptVars(u8 *r0); void sub_8002758(s32 r0); u8 sub_800276C(void); diff --git a/renames.sed b/renames.sed index 052504827..a3d05ff08 100644 --- a/renames.sed +++ b/renames.sed @@ -1,4 +1,6 @@ s/gGroundEnterLookupTable/gGroundEnterLookupTable/g s/sub_80022F8/JudgeVarWithImmediate/g s/sub_8002318/JudgeVarWithVar/g +s/sub_8002700/SaveGlobalScriptVars/g +s/sub_8002718/RestoreGlobalScriptVars/g diff --git a/src/event_flag.c b/src/event_flag.c index 56bc64fb0..490bcb413 100644 --- a/src/event_flag.c +++ b/src/event_flag.c @@ -604,13 +604,13 @@ void sub_80026E8(s16 r0, bool8 r1) UnlockFriendArea(sub_8002658(r0)); } -bool8 sub_8002700(void *r0) +bool8 SaveGlobalScriptVars(void *r0) { MemoryCopy8(r0, gScriptVarBuffer, 0x400); return 1; } -bool8 sub_8002718(u8 *r0) +bool8 RestoreGlobalScriptVars(u8 *r0) { struct ScriptVarPtr temp; GetScriptVarRef(&temp, 0, 0); diff --git a/src/save.c b/src/save.c index a2d745903..5099d464d 100644 --- a/src/save.c +++ b/src/save.c @@ -218,7 +218,7 @@ u32 ReadSaveFromPak(u32 *a) if (!saveStatus) { if (gUnknown_203B184 == NULL) { - if (!sub_8002718(playerSave->unk004)) { + if (!RestoreGlobalScriptVars(playerSave->unk004)) { saveStatus = 4; } } @@ -343,7 +343,7 @@ u32 WriteSavetoPak(s32 *param_1, u32 param_2) gameName = GetGameInternalName(); strncpy(playerSave->gameInternalName,gameName, ARRAY_COUNT(playerSave->gameInternalName)); if (gUnknown_203B184 == NULL) { - sub_8002700(playerSave->unk004); + SaveGlobalScriptVars(playerSave->unk004); } else { MemoryCopy8(playerSave->unk004,gUnknown_203B184->unk04C,ARRAY_COUNT(playerSave->unk004)); diff --git a/sym_ewram.txt b/sym_ewram.txt index 4782ed256..b80e32636 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -4,7 +4,7 @@ gUnknown_2000A80: /* 2000A80 (GameLoop) */ .space 0x8 -gScriptVarBuffer: /* 2000A88 (ThoroughlyResetScriptVars - sub_8002718) */ +gScriptVarBuffer: /* 2000A88 (ThoroughlyResetScriptVars - RestoreGlobalScriptVars) */ .space 0x400 .include "src/memory.o" From a16ebb40c0571609a8a1b16dbbafa82b00262a99 Mon Sep 17 00:00:00 2001 From: Mateon1 Date: Thu, 19 Sep 2024 22:47:00 +0200 Subject: [PATCH 8/9] Document script var usage --- include/event_flag.h | 109 +++++++++++++++++++++++++--- src/code.c | 86 +++++++++++------------ src/code_2.c | 4 +- src/code_801B60C.c | 8 +-- src/code_80958E8.c | 2 +- src/code_80972F4.c | 46 ++++++------ src/code_8097504.c | 10 +-- src/code_809A560_1.c | 8 +-- src/code_809C5C4.c | 6 +- src/code_80A26CC.c | 4 +- src/credits2.c | 6 +- src/event_flag.c | 160 ++++++++++++++++++++---------------------- src/ground_main.c | 32 ++++----- src/ground_map.c | 4 +- src/ground_map_2.c | 4 +- src/ground_script_1.c | 40 +++++------ src/load_screen.c | 4 +- 17 files changed, 308 insertions(+), 225 deletions(-) diff --git a/include/event_flag.h b/include/event_flag.h index bab275389..2c83e6918 100644 --- a/include/event_flag.h +++ b/include/event_flag.h @@ -30,6 +30,95 @@ enum FlagJudgeOperation { JUDGE_BIT_SET, }; +enum ScriptVarId { + /* 0x00 */ VERSION, + /* 0x01 */ CONDITION, + /* 0x02 */ SCENARIO_SELECT, + /* 0x03 */ SCENARIO_MAIN, + /* 0x04 */ SCENARIO_SUB1, + /* 0x05 */ SCENARIO_SUB2, + /* 0x06 */ SCENARIO_SUB3, + /* 0x07 */ SCENARIO_SUB4, + /* 0x08 */ SCENARIO_SUB5, + /* 0x09 */ SCENARIO_SUB6, + /* 0x0a */ SCENARIO_SUB7, + /* 0x0b */ SCENARIO_SUB8, + /* 0x0c */ SCENARIO_SUB9, + /* 0x0d */ GROUND_ENTER, + /* 0x0e */ GROUND_ENTER_LINK, + /* 0x0f */ GROUND_GETOUT, + /* 0x10 */ GROUND_MAP, + /* 0x11 */ GROUND_PLACE, + /* 0x12 */ DUNGEON_SELECT, + /* 0x13 */ DUNGEON_ENTER, + /* 0x14 */ DUNGEON_ENTER_INDEX, + /* 0x15 */ DUNGEON_ENTER_FREQUENCY, + /* 0x16 */ DUNGEON_RESULT, + /* 0x17 */ SCRIPT_MODE, + /* 0x18 */ START_MODE, + /* 0x19 */ CLEAR_COUNT, + /* 0x1a */ CONDITION_KIND, + /* 0x1b */ WEATHER_KIND, + /* 0x1c */ PLAYER_KIND, + /* 0x1d */ PARTNER1_KIND, + /* 0x1e */ PARTNER2_KIND, + /* 0x1f */ NEW_FRIEND_KIND, + /* 0x20 */ FRIEND_SUM, + /* 0x21 */ UNIT_SUM, + /* 0x22 */ GOLD, + /* 0x23 */ BANK_GOLD, + /* 0x24 */ WARP_LIST, + /* 0x25 */ WARP_LOCK, + /* 0x26 */ PARTNER_TALK_KIND, + /* 0x27 */ BASE_KIND, + /* 0x28 */ BASE_LEVEL, + /* 0x29 */ FLAG_KIND, + /* 0x2a */ FLAG_KIND_CHANGE_REQUEST, + /* 0x2b */ RESCUE_SCENARIO_ORDER_LIST, + /* 0x2c */ RESCUE_SCENARIO_JOB_LIST, + /* 0x2d */ RESCUE_SCENARIO_CONQUEST_LIST, + /* 0x2e */ TRAINING_CONQUEST_LIST, + /* 0x2f */ TRAINING_PRESENT_LIST, + /* 0x30 */ DUNGEON_ENTER_LIST, + /* 0x31 */ DUNGEON_CLEAR_LIST, + /* 0x32 */ POSITION_X, + /* 0x33 */ POSITION_Y, + /* 0x34 */ POSITION_HEIGHT, + /* 0x35 */ POSITION_DIRECTION, + /* 0x36 */ GROUND_LOCAL, + /* 0x37 */ MAP_LOCAL, + /* 0x38 */ MAP_LOCAL_DOOR, + /* 0x39 */ EVENT_LOCAL, + /* 0x3a */ STATION_ITEM_STATIC, + /* 0x3b */ STATION_ITEM_TEMP, + /* 0x3c */ DELIVER_ITEM_STATIC, + /* 0x3d */ DELIVER_ITEM_TEMP, + /* 0x3e */ SHOP_TEMP, + /* 0x3f */ INN_TEMP, + /* 0x40 */ EVENT_S07E01, + /* 0x41 */ EVENT_S08E01, + /* 0x42 */ EVENT_GONBE, + /* 0x43 */ EVENT_ORNAMENT_01, + /* 0x44 */ EVENT_ORNAMENT_02, + /* 0x45 */ EVENT_ORNAMENT_03, + /* 0x46 */ EVENT_ORNAMENT_04, + /* 0x47 */ EVENT_B01P01, + /* 0x48 */ EVENT_T01P01, + /* 0x49 */ EVENT_T01P02, + /* 0x4a */ EVENT_T01P03, + /* 0x4b */ EVENT_M01E09A_2N, + /* 0x4c */ EVENT_M01E09A_8N, + /* 0x4d */ EVENT_M01E10A_1N, + /* 0x4e */ EVENT_M01E10A_3N, + /* 0x4f */ EVENT_M01E10A_5N, + /* 0x50 */ EVENT_M02E01A_2N, + /* 0x51 */ SUM, + /* 0x400 */ LOCAL0 = 0x400, + /* 0x401 */ LOCAL1, + /* 0x402 */ LOCAL2, + /* 0x403 */ LOCAL3, +}; + // size: 0x10 struct ScriptVarInfo { s16 type; @@ -60,10 +149,10 @@ void SetScriptVarValue(u8 *localVarBuf, s32 varId, s32 val); void SetScriptVarArrayValue(u8 *localVarBuf, s32 varId, u16 idx, s32 val); s32 GetScriptVarArraySum(u8 *localVarBuf, s16 varId); void GetScriptVarScenario(s32 varId,u32 *outMain,u32 *outSub); -void ScenarioCalc(s16 varId, s32 param_2, s32 param_3); -bool8 ScriptVarScenarioBefore(s16 param_1, u32 param_2, s32 param_3); -bool8 ScriptVarScenarioEqual(s16 param_1, u32 param_2, s32 param_3); -bool8 ScriptVarScenarioAfter(s16 param_1, u32 param_2, s32 param_3); +void ScenarioCalc(s16 varId, s32 main, s32 sub); +bool8 ScriptVarScenarioBefore(s16 varId, u32 main, s32 sub); +bool8 ScriptVarScenarioEqual(s16 varId, u32 main, s32 sub); +bool8 ScriptVarScenarioAfter(s16 varId, u32 main, s32 sub); void sub_8001D88(void); s32 _FlagCalc(s32 param_1, s32 param_2, enum FlagCalcOperation operation); bool8 _FlagJudge(s32 param_1, s32 param_2, enum FlagJudgeOperation operation); @@ -71,17 +160,15 @@ s32 FlagCalc(s32 r0, s32 r1, enum FlagCalcOperation operation); void UpdateScriptVarWithImmediate(u8 *localVarBuf, s16 varId, s32 val, enum FlagCalcOperation operation); void UpdateScriptVarWithVar(u8 *localVarBuf, s16 dstVarId, s16 srcVarId, enum FlagCalcOperation operation); bool8 FlagJudge(s32 r0, s32 r1, enum FlagJudgeOperation operation); -bool8 JudgeVarWithImmediate(u8 *param_1, s16 param_2, s32 param_3, enum FlagJudgeOperation operation); -bool8 JudgeVarWithVar(u8 *param_1, s16 param_2, s16 param_3, enum FlagJudgeOperation operation); -bool8 sub_80023E4(u32 param_1); -u8 sub_8002658(s16 param_1); -s16 sub_8002694(u8 param_1); +bool8 JudgeVarWithImmediate(u8 *localVarBuf, s16 varId, s32 val, enum FlagJudgeOperation operation); +bool8 JudgeVarWithVar(u8 *localVarBuf, s16 varId1, s16 varId2, enum FlagJudgeOperation operation); +bool8 sub_80023E4(u32 param_1); // some kind of helper for predefined scenario checks +u8 sub_8002658(s16 param_1); // GroundEnter -> value lookup +s16 sub_8002694(u8 param_1); // value -> GroundEnter lookup bool8 sub_80026CC(s16 r0); void sub_80026E8(s16 r0, bool8 r1); bool8 SaveGlobalScriptVars(void *r0); bool8 RestoreGlobalScriptVars(u8 *r0); -void sub_8002758(s32 r0); -u8 sub_800276C(void); // .rodata extern struct ScriptVarInfo gScriptVarInfo[]; diff --git a/src/code.c b/src/code.c index 3682186a6..2bff18715 100644 --- a/src/code.c +++ b/src/code.c @@ -60,49 +60,49 @@ void ThoroughlyResetScriptVars(void) } } } - ClearScriptVarArray(NULL,1); - ScenarioCalc(2,0,0); - ScenarioCalc(3,0,0); - ScenarioCalc(4,0,0); - ScenarioCalc(5,0,0); - ScenarioCalc(6,0,0); - ScenarioCalc(7,0,0); - ScenarioCalc(8,0,0); - ScenarioCalc(9,0,0); - ScenarioCalc(10,0,0); - ScenarioCalc(0xb,0,0); - ScenarioCalc(0xc,0,0); - SetScriptVarValue(NULL,0xd,0xa2); - SetScriptVarValue(NULL,0xe,0); - SetScriptVarValue(NULL,0xf,0xa2); - SetScriptVarValue(NULL,0x10,-1); - SetScriptVarValue(NULL,0x11,0x24); - SetScriptVarValue(NULL,0x12,-1); - SetScriptVarValue(NULL,0x13,0); - SetScriptVarValue(NULL,0x14,-1); - SetScriptVarValue(NULL,0x16,0); - SetScriptVarValue(NULL,0x18,0); - SetScriptVarValue(NULL,0x19,0); - SetScriptVarValue(NULL,0x1b,-1); - SetScriptVarValue(NULL,0x1c,0); - SetScriptVarValue(NULL,0x1d,0); - SetScriptVarValue(NULL,0x1e,0); - SetScriptVarValue(NULL,0x1f,0); - ClearScriptVarArray(NULL,0x24); - SetScriptVarValue(NULL,0x25,0); - SetScriptVarValue(NULL,0x26,0); - SetScriptVarValue(NULL,0x27,0); - SetScriptVarValue(NULL,0x28,0); - SetScriptVarValue(NULL,0x29,0); - SetScriptVarValue(NULL,0x2a,0); - ClearScriptVarArray(NULL,0x2b); - ClearScriptVarArray(NULL,0x2c); - ClearScriptVarArray(NULL,0x2d); - ClearScriptVarArray(NULL,0x2e); - ClearScriptVarArray(NULL,0x2f); - ClearScriptVarArray(NULL,0x30); - ClearScriptVarArray(NULL,0x31); - ClearScriptVarArray(NULL,0x41); + ClearScriptVarArray(NULL, CONDITION); + ScenarioCalc(SCENARIO_SELECT,0,0); + ScenarioCalc(SCENARIO_MAIN,0,0); + ScenarioCalc(SCENARIO_SUB1,0,0); + ScenarioCalc(SCENARIO_SUB2,0,0); + ScenarioCalc(SCENARIO_SUB3,0,0); + ScenarioCalc(SCENARIO_SUB4,0,0); + ScenarioCalc(SCENARIO_SUB5,0,0); + ScenarioCalc(SCENARIO_SUB6,0,0); + ScenarioCalc(SCENARIO_SUB7,0,0); + ScenarioCalc(SCENARIO_SUB8,0,0); + ScenarioCalc(SCENARIO_SUB9,0,0); + SetScriptVarValue(NULL,GROUND_ENTER,0xa2); + SetScriptVarValue(NULL,GROUND_ENTER_LINK,0); + SetScriptVarValue(NULL,GROUND_GETOUT,0xa2); + SetScriptVarValue(NULL,GROUND_MAP,-1); + SetScriptVarValue(NULL,GROUND_PLACE,0x24); + SetScriptVarValue(NULL,DUNGEON_SELECT,-1); + SetScriptVarValue(NULL,DUNGEON_ENTER,0); + SetScriptVarValue(NULL,DUNGEON_ENTER_INDEX,-1); + SetScriptVarValue(NULL,DUNGEON_RESULT,0); + SetScriptVarValue(NULL,START_MODE,0); + SetScriptVarValue(NULL,CLEAR_COUNT,0); + SetScriptVarValue(NULL,WEATHER_KIND,-1); + SetScriptVarValue(NULL,PLAYER_KIND,0); + SetScriptVarValue(NULL,PARTNER1_KIND,0); + SetScriptVarValue(NULL,PARTNER2_KIND,0); + SetScriptVarValue(NULL,NEW_FRIEND_KIND,0); + ClearScriptVarArray(NULL,WARP_LIST); + SetScriptVarValue(NULL,WARP_LOCK,0); + SetScriptVarValue(NULL,PARTNER_TALK_KIND,0); + SetScriptVarValue(NULL,BASE_KIND,0); + SetScriptVarValue(NULL,BASE_LEVEL,0); + SetScriptVarValue(NULL,FLAG_KIND,0); + SetScriptVarValue(NULL,FLAG_KIND_CHANGE_REQUEST,0); + ClearScriptVarArray(NULL,RESCUE_SCENARIO_ORDER_LIST); + ClearScriptVarArray(NULL,RESCUE_SCENARIO_JOB_LIST); + ClearScriptVarArray(NULL,RESCUE_SCENARIO_CONQUEST_LIST); + ClearScriptVarArray(NULL,TRAINING_CONQUEST_LIST); + ClearScriptVarArray(NULL,TRAINING_PRESENT_LIST); + ClearScriptVarArray(NULL,DUNGEON_ENTER_LIST); + ClearScriptVarArray(NULL,DUNGEON_CLEAR_LIST); + ClearScriptVarArray(NULL,EVENT_S08E01); sub_80972F4(); } diff --git a/src/code_2.c b/src/code_2.c index 2a5afd931..a61aba40f 100644 --- a/src/code_2.c +++ b/src/code_2.c @@ -86,9 +86,9 @@ void GameLoop(void) ThoroughlyResetScriptVars(); xxx_script_related_8001334(14); xxx_script_related_8001334(15); - ClearScriptVarArray(NULL, 57); + ClearScriptVarArray(NULL, EVENT_LOCAL); xxx_script_related_8001334(16); - if (GetScriptVarValue(NULL, 57) == 0) + if (GetScriptVarValue(NULL, EVENT_LOCAL) == 0) xxx_script_related_8001334(17); while (1) { diff --git a/src/code_801B60C.c b/src/code_801B60C.c index b10ca8b88..2f2d0235e 100644 --- a/src/code_801B60C.c +++ b/src/code_801B60C.c @@ -160,24 +160,24 @@ static void sub_801B874(void) if (sUnknown_203B234->unk10.id == ITEM_WEAVILE_FIG) { sUnknown_203B234->fallbackState = 16; - if (GetScriptVarArrayValue(NULL, 71, 1)) { + if (GetScriptVarArrayValue(NULL, EVENT_B01P01, 1)) { AddToTeamMoney(1000); sub_801B748(4); } else { - SetScriptVarArrayValue(NULL, 71, 1, 1); + SetScriptVarArrayValue(NULL, EVENT_B01P01, 1, 1); sub_801B748(3); } } else if (sUnknown_203B234->unk10.id == ITEM_MIME_JR_FIG) { sUnknown_203B234->fallbackState = 16; - if (GetScriptVarArrayValue(NULL, 71, 0)) { + if (GetScriptVarArrayValue(NULL, EVENT_B01P01, 0)) { AddToTeamMoney(1000); sub_801B748(4); } else { - SetScriptVarArrayValue(NULL, 71, 0, 1); + SetScriptVarArrayValue(NULL, EVENT_B01P01, 0, 1); sub_801B748(3); } } diff --git a/src/code_80958E8.c b/src/code_80958E8.c index 941bba263..b5451641e 100644 --- a/src/code_80958E8.c +++ b/src/code_80958E8.c @@ -808,7 +808,7 @@ bool8 sub_80961D8(void) gUnknown_203B490->unk328 = flag; } floor = 0x38; - if(ScriptVarScenarioEqual(0xA, 0x31, 0x1)) + if(ScriptVarScenarioEqual(SCENARIO_SUB7, 0x31, 0x1)) { if(!gUnknown_203B490->PKMNNewsReceived[0x35]) if(!sub_8096E80(0x35)) floor = 0x35; diff --git a/src/code_80972F4.c b/src/code_80972F4.c index 954851621..fabd3dc8f 100644 --- a/src/code_80972F4.c +++ b/src/code_80972F4.c @@ -14,9 +14,9 @@ extern void GeneratePelipperJobs(void); void sub_80972F4(void) { - ClearScriptVarArray(NULL, 0x2B); - ClearScriptVarArray(NULL, 0x2C); - ClearScriptVarArray(NULL, 0x2D); + ClearScriptVarArray(NULL, RESCUE_SCENARIO_ORDER_LIST); + ClearScriptVarArray(NULL, RESCUE_SCENARIO_JOB_LIST); + ClearScriptVarArray(NULL, RESCUE_SCENARIO_CONQUEST_LIST); } void nullsub_128(void) @@ -33,7 +33,7 @@ s32 sub_8097318(s16 param_1) iVar1 = 0; } else { - iVar1 = GetScriptVarArrayValue(NULL,0x2b,param_1_s32); + iVar1 = GetScriptVarArrayValue(NULL,RESCUE_SCENARIO_ORDER_LIST,param_1_s32); if (iVar1 != 0) { iVar1 = 1; } @@ -41,28 +41,31 @@ s32 sub_8097318(s16 param_1) return iVar1; } -void sub_809733C(short param_1,u32 param_2) +void sub_809733C(s16 param_1,u32 param_2) { s32 uVar2; u8 param_2_u8; u16 uVar2_u16; - + uVar2 = param_1; param_2_u8 = param_2; if (uVar2 != 0xd) { uVar2_u16 = uVar2; - if ((((GetScriptVarArrayValue(NULL,0x2c,uVar2_u16) == 0) && (SetScriptVarArrayValue(NULL,0x2b,uVar2_u16,param_2_u8), param_2_u8 != '\0')))){ + if (GetScriptVarArrayValue(NULL,RESCUE_SCENARIO_JOB_LIST,uVar2_u16) == 0) { + SetScriptVarArrayValue(NULL,RESCUE_SCENARIO_ORDER_LIST,uVar2_u16,param_2_u8); + if (param_2_u8) { switch(uVar2) { - case 0xE: - case 0xF: - case 0x1C: - GeneratePelipperJobs(); - break; + case 0xE: + case 0xF: + case 0x1C: + GeneratePelipperJobs(); + break; } } } + } } bool32 sub_8097384(s16 param_1) @@ -73,7 +76,7 @@ bool32 sub_8097384(s16 param_1) val = FALSE; else { // May not need the & 0xFFFF if the 3rd param is s16 - val = GetScriptVarArrayValue(NULL, 44, param_1 & 0xFFFF); + val = GetScriptVarArrayValue(NULL, RESCUE_SCENARIO_JOB_LIST, param_1 & 0xFFFF); if (val != 0) val = TRUE; } @@ -90,12 +93,12 @@ void sub_80973A8(s16 param_1,u32 param_2) if (param_1_s32 != 0xd) { if (param_2_u32 != 0) { sVar1 = sub_80A26B8(param_1); - SetScriptVarArrayValue(NULL,0x2b,param_1_s32,0); + SetScriptVarArrayValue(NULL,RESCUE_SCENARIO_ORDER_LIST,param_1_s32,0); if (sVar1 != -1) { - SetScriptVarValue(NULL,0x12,sVar1); + SetScriptVarValue(NULL,DUNGEON_SELECT,sVar1); } } - SetScriptVarArrayValue(NULL,0x2c,param_1_s32,param_2_u32); + SetScriptVarArrayValue(NULL,RESCUE_SCENARIO_JOB_LIST,param_1_s32,param_2_u32); } } @@ -107,7 +110,8 @@ bool32 RescueScenarioConquered(s16 param_1) val = FALSE; else { // May not need the & 0xFFFF if the 3rd param is s16 - val = GetScriptVarArrayValue(NULL, 45, param_1 & 0xFFFF); + // But it doesn't work + val = GetScriptVarArrayValue(NULL, RESCUE_SCENARIO_CONQUEST_LIST, param_1 & 0xFFFF); if (val != 0) val = TRUE; } @@ -120,7 +124,7 @@ void sub_8097418(s16 index,bool32 param_2) int index_s32 = index; bool8 param_2_u8 = param_2; if (index_s32 != 0xd) { - if ((param_2_u8) && (SetScriptVarArrayValue(NULL,0x2c,index_s32,0), index_s32 < 0x1f)) { + if ((param_2_u8) && (SetScriptVarArrayValue(NULL,RESCUE_SCENARIO_JOB_LIST,index_s32,0), index_s32 < 0x1f)) { const MissionText *mt = &gStoryMissionText[index_s32]; if (mt->unk4 != 0xFF) { sub_8097FA8(mt->unk4); @@ -133,7 +137,7 @@ void sub_8097418(s16 index,bool32 param_2) } sub_8097FF8(); } - SetScriptVarArrayValue(NULL,0x2d,index_s32,param_2_u8); + SetScriptVarArrayValue(NULL,RESCUE_SCENARIO_CONQUEST_LIST,index_s32,param_2_u8); } } @@ -176,8 +180,8 @@ const u8 *GetCurrentMissionText(s16 index) void sub_80974E8(void) { - ClearScriptVarArray(NULL, 0x2E); - ClearScriptVarArray(NULL, 0x2F); + ClearScriptVarArray(NULL, TRAINING_CONQUEST_LIST); + ClearScriptVarArray(NULL, TRAINING_PRESENT_LIST); } void nullsub_208(void) diff --git a/src/code_8097504.c b/src/code_8097504.c index 19a6f57ef..022a701f6 100644 --- a/src/code_8097504.c +++ b/src/code_8097504.c @@ -74,7 +74,7 @@ bool32 IsMazeCompleted(s16 mazeIndex) { bool32 mazeCompletion; - mazeCompletion = GetScriptVarArrayValue(NULL, 0x2e, mazeIndex); + mazeCompletion = GetScriptVarArrayValue(NULL, TRAINING_CONQUEST_LIST, mazeIndex); if (mazeCompletion) { mazeCompletion = TRUE; } @@ -84,7 +84,7 @@ bool32 IsMazeCompleted(s16 mazeIndex) void sub_80975A8(s16 param_1,u8 param_2) { u16 param_1_u16 = param_1; - SetScriptVarArrayValue(NULL,0x2e,param_1_u16,param_2); + SetScriptVarArrayValue(NULL,TRAINING_CONQUEST_LIST,param_1_u16,param_2); } const u8 *sub_80975C4(s16 index) @@ -97,7 +97,7 @@ const u8 *sub_80975DC(u32 r0) // TODO: slight hack but matches r0 <<= 16; if((0xffe90000 + r0) >> 16 < 2) - if(ScriptVarScenarioEqual(0x3, 0xE, -1)) + if(ScriptVarScenarioEqual(SCENARIO_MAIN, 0xE, -1)) return gMeetNinetalesText; else return gAvoidCaptureText; @@ -118,9 +118,9 @@ bool8 HasCompletedAllMazes(void) bool8 sub_8097640(void) { - if(GetScriptVarArrayValue(NULL, 0x2E, 0x1F) == 0 && HasCompletedAllMazes()) + if(GetScriptVarArrayValue(NULL, TRAINING_CONQUEST_LIST, 0x1F) == 0 && HasCompletedAllMazes()) { - SetScriptVarArrayValue(NULL, 0x2E, 0x1F, 1); + SetScriptVarArrayValue(NULL, TRAINING_CONQUEST_LIST, 0x1F, 1); return TRUE; } else diff --git a/src/code_809A560_1.c b/src/code_809A560_1.c index 64983c394..db87a099f 100644 --- a/src/code_809A560_1.c +++ b/src/code_809A560_1.c @@ -75,7 +75,7 @@ void sub_809C478(void) sub_8035758(); - GetScriptVarScenario(3, &temp, &temp1); + GetScriptVarScenario(SCENARIO_MAIN, &temp, &temp1); sub_80993C0(0); } @@ -154,15 +154,15 @@ void sub_809C550(void) switch(ret) { case 1: - if(ScriptVarScenarioBefore(4, 0x1D, 0x3)) + if(ScriptVarScenarioBefore(SCENARIO_SUB1, 0x1D, 0x3)) val = 1; break; case 2: - if(ScriptVarScenarioBefore(4, 0x1F, 0x2)) + if(ScriptVarScenarioBefore(SCENARIO_SUB1, 0x1F, 0x2)) val = 2; break; case 3: - if(ScriptVarScenarioBefore(0xB, 0x33, 0x8)) + if(ScriptVarScenarioBefore(SCENARIO_SUB8, 0x33, 0x8)) val = 3; break; } diff --git a/src/code_809C5C4.c b/src/code_809C5C4.c index e089e6c43..e8afcc68c 100644 --- a/src/code_809C5C4.c +++ b/src/code_809C5C4.c @@ -272,7 +272,7 @@ void sub_809C770(s16 param_1, s16 param_2) break; case 0: default: - iVar5 = (s16)GetScriptVarValue(NULL,0x13); + iVar5 = (s16)GetScriptVarValue(NULL,DUNGEON_ENTER); break; } @@ -413,8 +413,8 @@ void sub_809CB74(void) { void sub_809CB8C(void) { - ClearScriptVarArray(NULL, 0x3B); - ClearScriptVarArray(NULL, 0x3D); + ClearScriptVarArray(NULL, STATION_ITEM_TEMP); + ClearScriptVarArray(NULL, DELIVER_ITEM_TEMP); } bool8 HasItemInInventory(u8 item) diff --git a/src/code_80A26CC.c b/src/code_80A26CC.c index c4be7b1d6..6de332921 100644 --- a/src/code_80A26CC.c +++ b/src/code_80A26CC.c @@ -74,7 +74,7 @@ u32 sub_80A25AC(u16 param_1) return 19; if (param_1 != 1) return param_1; - GetScriptVarValue(NULL, 40); + GetScriptVarValue(NULL, BASE_LEVEL); // wut??? return 1; } @@ -460,5 +460,5 @@ const u8 *sub_80A2B18(s16 param_1) UNUSED static const u8 *sub_80A2B28(u16 r0) { - return sub_80A2B18(GetScriptVarValue(NULL, 17)); + return sub_80A2B18(GetScriptVarValue(NULL, GROUND_PLACE)); } diff --git a/src/credits2.c b/src/credits2.c index b5cee4e87..a206ce4c3 100644 --- a/src/credits2.c +++ b/src/credits2.c @@ -14,7 +14,7 @@ bool8 sub_8035678(void) sCredits2Work = MemoryAlloc(sizeof(Credits2Work), 8); sCredits2Work->state = 0; sCredits2Work->unk4 = 0; - ClearScriptVarArray(NULL, 57); + ClearScriptVarArray(NULL, EVENT_LOCAL); return TRUE; } @@ -62,7 +62,7 @@ u32 sub_80356A0(void) return 3; // sub_809C478 clears the flash data when this is returned } - if (GetScriptVarValue(NULL, 57) != 0) { + if (GetScriptVarValue(NULL, EVENT_LOCAL) != 0) { sCredits2Work->state = 3; return 2; } @@ -76,4 +76,4 @@ void sub_8035758(void) MemoryFree(sCredits2Work); sCredits2Work = NULL; } -} \ No newline at end of file +} diff --git a/src/event_flag.c b/src/event_flag.c index 490bcb413..e3c81f650 100644 --- a/src/event_flag.c +++ b/src/event_flag.c @@ -53,8 +53,7 @@ extern void sub_80973A8(u32, u32); // code_80972F4.h (read comment) extern bool8 RescueScenarioConquered(s16); -// unused -u8 *GetScriptVarPointer(s16 varId) +UNUSED u8 *GetScriptVarPointer(s16 varId) { struct ScriptVarPtr local_1c; @@ -62,8 +61,7 @@ u8 *GetScriptVarPointer(s16 varId) return local_1c.ptr; } -// unused -s16 GetScriptVarArrayLength(s16 varId) +UNUSED s16 GetScriptVarArrayLength(s16 varId) { struct ScriptVarPtr local_1c; @@ -89,8 +87,7 @@ s32 GetScriptVarArraySum(u8 *localVarBuf, s16 varId) return total; } -// unused -void GetScriptVarString(s16 varId, u8 *buf, s32 maxLen) +UNUSED void GetScriptVarString(s16 varId, u8 *buf, s32 maxLen) { u8 *r1; s32 r2; @@ -107,8 +104,7 @@ void GetScriptVarString(s16 varId, u8 *buf, s32 maxLen) *buf = 0; } -// unused -void ScriptVarStringPopFirstChar(s16 varId,u32 param_2,s32 maxLen) +UNUSED void ScriptVarStringPopFirstChar(s16 varId,u32 param_2,s32 maxLen) { u8 *r1; s32 r2; @@ -145,7 +141,7 @@ void ScenarioCalc(s16 param_1,s32 param_2,s32 param_3) GetScriptVarScenario(param_1_s32,&local_18,&local_14); Log(6,gUnknown_80B72CC,param_1_s32,local_18,local_14,param_2,param_3); // SCENARIO CALC [%3d] %4d %4d -> %4d %4d if ((param_1_s32 == 3) && ((param_2 != local_18 || (param_3 != local_14)))) { - SetScriptVarValue(NULL,0x19,0); + SetScriptVarValue(NULL,CLEAR_COUNT,0); } SetScriptVarArrayValue(NULL,param_1_s32,0,param_2); SetScriptVarArrayValue(NULL,param_1_s32,1,param_3); @@ -154,27 +150,27 @@ void ScenarioCalc(s16 param_1,s32 param_2,s32 param_3) { case 3: if (((u32)(param_2 - 1) < 0x1b)) { - if (ScriptVarScenarioAfter(3,8,-1)) { + if (ScriptVarScenarioAfter(SCENARIO_MAIN,8,-1)) { sub_80976F8(0); } - if (ScriptVarScenarioAfter(3,0xb,3)) { + if (ScriptVarScenarioAfter(SCENARIO_MAIN,0xb,3)) { sub_80976F8(1); } - if (ScriptVarScenarioAfter(3,0x11,0)) { + if (ScriptVarScenarioAfter(SCENARIO_MAIN,0x11,0)) { sub_80976F8(2); } } break; case 4: - if (ScriptVarScenarioBefore(4,0x1f,0) == 0) { + if (ScriptVarScenarioBefore(SCENARIO_SUB1,0x1f,0) == 0) { sub_80976F8(4); } - if (ScriptVarScenarioBefore(4,0x20,0) == 0) { + if (ScriptVarScenarioBefore(SCENARIO_SUB1,0x20,0) == 0) { sub_80976F8(5); } break; case 0xC: - if(ScriptVarScenarioBefore(0xc,0x37,2) == 0) { + if(ScriptVarScenarioBefore(SCENARIO_SUB9,0x37,2) == 0) { sub_80976F8(3); } break; @@ -235,26 +231,26 @@ void sub_8001D88(void) GetScriptVarScenario(3, &auStack8, &local_c); if (auStack8 - 1 < 0x1b) { - if (ScriptVarScenarioBefore(4,0x1f,0) != 0) { - if (ScriptVarScenarioAfter(3,0xf,7) != 0) { - ScenarioCalc(4,0x1f,0); + if (ScriptVarScenarioBefore(SCENARIO_SUB1,0x1f,0) != 0) { + if (ScriptVarScenarioAfter(SCENARIO_MAIN,0xf,7) != 0) { + ScenarioCalc(SCENARIO_SUB1,0x1f,0); sub_8097418(0xe,1); - SetScriptVarValue(NULL,0x28,2); + SetScriptVarValue(NULL,BASE_LEVEL,2); } else { - if ((ScriptVarScenarioEqual(4,0,0)) && (ScriptVarScenarioAfter(3,0xf,3))) { - ScenarioCalc(4,0x1d,1); + if ((ScriptVarScenarioEqual(SCENARIO_SUB1,0,0)) && (ScriptVarScenarioAfter(SCENARIO_MAIN,0xf,3))) { + ScenarioCalc(SCENARIO_SUB1,0x1d,1); } } } - if ((ScriptVarScenarioEqual(4,0x1f,0)) && (GetFriendAreaStatus(SKY_BLUE_PLAINS))) { - ScenarioCalc(4,0x1f,1); + if ((ScriptVarScenarioEqual(SCENARIO_SUB1,0x1f,0)) && (GetFriendAreaStatus(SKY_BLUE_PLAINS))) { + ScenarioCalc(SCENARIO_SUB1,0x1f,1); sub_809733C(0xf,1); } if (auStack8 > 0x11) { sub_80973A8(0x25,1); if (((FindItemInInventory(ITEM_HM_DIVE) != -1) || (gTeamInventoryRef->teamStorage[ITEM_HM_DIVE] != 0)) || - (ScriptVarScenarioAfter(5,0x21,3) != 0)) { + (ScriptVarScenarioAfter(SCENARIO_SUB2,0x21,3) != 0)) { sub_80973A8(0x22,1); } if (GetFriendAreaStatus(FURNACE_DESERT) != 0) { @@ -276,24 +272,24 @@ void sub_8001D88(void) if ((GetFriendAreaStatus(AGED_CHAMBER_AN)) && (GetFriendAreaStatus(AGED_CHAMBER_O_EXCLAIM))) { sub_80973A8(0x26,1); } - if (ScriptVarScenarioEqual(5,0,0)) { - ScenarioCalc(5,0x21,1); + if (ScriptVarScenarioEqual(SCENARIO_SUB2,0,0)) { + ScenarioCalc(SCENARIO_SUB2,0x21,1); } if ((FindItemInInventory(ITEM_HM_SURF) != -1) || (gTeamInventoryRef->teamStorage[ITEM_HM_SURF] != 0)) { - if (ScriptVarScenarioEqual(7,0,0)) { - ScenarioCalc(7,0x26,1); + if (ScriptVarScenarioEqual(SCENARIO_SUB4,0,0)) { + ScenarioCalc(SCENARIO_SUB4,0x26,1); } - if ((ScriptVarScenarioEqual(9,0,0)) && (GetFriendAreaStatus(SOUTHERN_ISLAND))) { - ScenarioCalc(9,0x2e,1); + if ((ScriptVarScenarioEqual(SCENARIO_SUB6,0,0)) && (GetFriendAreaStatus(SOUTHERN_ISLAND))) { + ScenarioCalc(SCENARIO_SUB6,0x2e,1); } } - if (!ScriptVarScenarioBefore(9,0x30,0)) { - if ((ScriptVarScenarioEqual(5,0x22,0)) && HasRecruitedMon(MONSTER_ARTICUNO) && HasRecruitedMon(MONSTER_ZAPDOS) && HasRecruitedMon(MONSTER_MOLTRES)) { - ScenarioCalc(5,0x22,1); + if (!ScriptVarScenarioBefore(SCENARIO_SUB6,0x30,0)) { + if ((ScriptVarScenarioEqual(SCENARIO_SUB2,0x22,0)) && HasRecruitedMon(MONSTER_ARTICUNO) && HasRecruitedMon(MONSTER_ZAPDOS) && HasRecruitedMon(MONSTER_MOLTRES)) { + ScenarioCalc(SCENARIO_SUB2,0x22,1); } - if (((ScriptVarScenarioEqual(0xb,0,0)) && (ScriptVarScenarioAfter(5,0x21,3) != 0)) && + if (((ScriptVarScenarioEqual(SCENARIO_SUB8,0,0)) && (ScriptVarScenarioAfter(SCENARIO_SUB2,0x21,3) != 0)) && (GetFriendAreaStatus(SKY_BLUE_PLAINS))) { - ScenarioCalc(0xb,0x33,1); + ScenarioCalc(SCENARIO_SUB8,0x33,1); } if (GetFriendAreaStatus(SKY_BLUE_PLAINS)) { sub_80973A8(0x27,1); @@ -302,20 +298,20 @@ void sub_8001D88(void) sub_80973A8(0x29,1); } } - if (!ScriptVarScenarioBefore(5,0x22,0)) { - if (ScriptVarScenarioEqual(10,0,0)) { - ScenarioCalc(10,0x31,1); + if (!ScriptVarScenarioBefore(SCENARIO_SUB2,0x22,0)) { + if (ScriptVarScenarioEqual(SCENARIO_SUB7,0,0)) { + ScenarioCalc(SCENARIO_SUB7,0x31,1); sub_809733C(0x1b,1); } - if ((ScriptVarScenarioEqual(0xc,0,0)) && (!ScriptVarScenarioBefore(0xb,0x34,0))) { - ScenarioCalc(0xc,0x35,1); + if ((ScriptVarScenarioEqual(SCENARIO_SUB9,0,0)) && (!ScriptVarScenarioBefore(SCENARIO_SUB8,0x34,0))) { + ScenarioCalc(SCENARIO_SUB9,0x35,1); } } - if ((ScriptVarScenarioEqual(6,0,0)) && (HasRecruitedMon(MONSTER_LUGIA))) { - ScenarioCalc(6,0x24,1); + if ((ScriptVarScenarioEqual(SCENARIO_SUB3,0,0)) && (HasRecruitedMon(MONSTER_LUGIA))) { + ScenarioCalc(SCENARIO_SUB3,0x24,1); } - if ((ScriptVarScenarioEqual(8,0,0)) && (HasRecruitedMon(MONSTER_HO_OH))) { - ScenarioCalc(8,0x2c,1); + if ((ScriptVarScenarioEqual(SCENARIO_SUB5,0,0)) && (HasRecruitedMon(MONSTER_HO_OH))) { + ScenarioCalc(SCENARIO_SUB5,0x2c,1); } } } @@ -440,8 +436,7 @@ bool8 JudgeVarWithVar(u8 *param_1, s16 param_2, s16 param_3, enum FlagJudgeOpera return _FlagJudge(uVar1,uVar2,operation); } -// unused -s32 sub_8002354(u32 param_1) +UNUSED s32 sub_8002354(u32 param_1) { if (param_1 < 0x3b) { return gUnknown_80B6D90[param_1].num; @@ -451,8 +446,7 @@ s32 sub_8002354(u32 param_1) } } -// unused -u8 *sub_8002374(u32 param_1) +UNUSED u8 *sub_8002374(u32 param_1) { if (param_1 < 0x3b) { return gUnknown_80B6D90[param_1].text; @@ -462,8 +456,7 @@ u8 *sub_8002374(u32 param_1) } } -// Unused -u8 *sub_8002394(u32 param_1) +UNUSED u8 *sub_8002394(u32 param_1) { if (param_1 - 0x12 < 9) { return gUnknown_80B714C[param_1 - 0x12]; @@ -476,8 +469,7 @@ u8 *sub_8002394(u32 param_1) } } -// Unused -u8 *sub_80023C4(u32 param_1) +UNUSED u8 *sub_80023C4(u32 param_1) { if (param_1 < 4) { return gUnknown_80B71A0[param_1]; // CISTART, CECONTINUE, CNLAST, CWEND @@ -492,59 +484,59 @@ bool8 sub_80023E4(u32 param_1) { switch(param_1) { case 0: - return ScriptVarScenarioAfter(3,2,-1); + return ScriptVarScenarioAfter(SCENARIO_MAIN,2,-1); case 1: - return ScriptVarScenarioAfter(3,3,3); + return ScriptVarScenarioAfter(SCENARIO_MAIN,3,3); case 2: - return ScriptVarScenarioAfter(3,4,3); + return ScriptVarScenarioAfter(SCENARIO_MAIN,4,3); case 3: - return ScriptVarScenarioAfter(3,5,0); + return ScriptVarScenarioAfter(SCENARIO_MAIN,5,0); case 4: - return (ScriptVarScenarioAfter(3,0xb,0) && ScriptVarScenarioBefore(3,0xd,0)); + return (ScriptVarScenarioAfter(SCENARIO_MAIN,0xb,0) && ScriptVarScenarioBefore(SCENARIO_MAIN,0xd,0)); case 5: - return (ScriptVarScenarioAfter(3,0xb,3) && ScriptVarScenarioBefore(3,0xf,0)); + return (ScriptVarScenarioAfter(SCENARIO_MAIN,0xb,3) && ScriptVarScenarioBefore(SCENARIO_MAIN,0xf,0)); case 6: - return ScriptVarScenarioAfter(3,0x11,-1); + return ScriptVarScenarioAfter(SCENARIO_MAIN,0x11,-1); case 7: - return ScriptVarScenarioAfter(3,0x12,2); + return ScriptVarScenarioAfter(SCENARIO_MAIN,0x12,2); case 8: - return ScriptVarScenarioAfter(3,0x12,3); + return ScriptVarScenarioAfter(SCENARIO_MAIN,0x12,3); case 9: - return ScriptVarScenarioAfter(3,0x12,-1); + return ScriptVarScenarioAfter(SCENARIO_MAIN,0x12,-1); case 10: - return ScriptVarScenarioAfter(3,5,4); + return ScriptVarScenarioAfter(SCENARIO_MAIN,5,4); case 0xb: - return ScriptVarScenarioAfter(3,5,4); + return ScriptVarScenarioAfter(SCENARIO_MAIN,5,4); case 0xc: - return (!ScriptVarScenarioEqual(3,0xb,2) && !ScriptVarScenarioEqual(3,0xb,3)); + return (!ScriptVarScenarioEqual(SCENARIO_MAIN,0xb,2) && !ScriptVarScenarioEqual(SCENARIO_MAIN,0xb,3)); case 0xd: - return ScriptVarScenarioEqual(3,0x10,2); + return ScriptVarScenarioEqual(SCENARIO_MAIN,0x10,2); case 0xe: - return !ScriptVarScenarioBefore(3,5,7); + return !ScriptVarScenarioBefore(SCENARIO_MAIN,5,7); case 0xf: - return !ScriptVarScenarioBefore(3,0xf,0); + return !ScriptVarScenarioBefore(SCENARIO_MAIN,0xf,0); case 0x10: - return ScriptVarScenarioAfter(3,7,-1); + return ScriptVarScenarioAfter(SCENARIO_MAIN,7,-1); case 0x11: - return ScriptVarScenarioAfter(3,0xc,-1); + return ScriptVarScenarioAfter(SCENARIO_MAIN,0xc,-1); case 0x12: - return ScriptVarScenarioAfter(3,0xd,-1); + return ScriptVarScenarioAfter(SCENARIO_MAIN,0xd,-1); case 0x13: - return ScriptVarScenarioAfter(3,0xf,-1); + return ScriptVarScenarioAfter(SCENARIO_MAIN,0xf,-1); case 0x14: - return ScriptVarScenarioAfter(3,0x10,-1); + return ScriptVarScenarioAfter(SCENARIO_MAIN,0x10,-1); case 0x15: - return ScriptVarScenarioAfter(5,0x21,-1); + return ScriptVarScenarioAfter(SCENARIO_SUB2,0x21,-1); case 0x16: - return ScriptVarScenarioAfter(5,0x22,-1); + return ScriptVarScenarioAfter(SCENARIO_SUB2,0x22,-1); case 0x17: - return ScriptVarScenarioAfter(6,0x24,-1); + return ScriptVarScenarioAfter(SCENARIO_SUB3,0x24,-1); case 0x18: - return ScriptVarScenarioAfter(7,0x2a,-1); + return ScriptVarScenarioAfter(SCENARIO_SUB4,0x2a,-1); case 0x19: - return ScriptVarScenarioAfter(8,0x2c,-1); + return ScriptVarScenarioAfter(SCENARIO_SUB5,0x2c,-1); case 0x1a: - return ScriptVarScenarioAfter(10,0x31,-1); + return ScriptVarScenarioAfter(SCENARIO_SUB7,0x31,-1); case 0x1b: return RescueScenarioConquered(0x29); case 0x1c: @@ -613,24 +605,24 @@ bool8 SaveGlobalScriptVars(void *r0) bool8 RestoreGlobalScriptVars(u8 *r0) { struct ScriptVarPtr temp; - GetScriptVarRef(&temp, 0, 0); + GetScriptVarRef(&temp, NULL, VERSION); MemoryCopy8(gScriptVarBuffer, r0, 0x400); if (temp.info->defaultValue != *(u32 *)temp.ptr) return 0; return 1; } -void sub_8002758(s32 r0) +UNUSED void SetConditionBit(s32 r0) { - UpdateScriptVarWithImmediate(NULL, 0x1, r0, CALC_SETBIT); + UpdateScriptVarWithImmediate(NULL, CONDITION, r0, CALC_SETBIT); } -u8 sub_800276C(void) +UNUSED u8 sub_800276C(void) { return 0; } -void nullsub_140(void) +UNUSED void nullsub_140(void) { } diff --git a/src/ground_main.c b/src/ground_main.c index 71937c98d..c33472928 100644 --- a/src/ground_main.c +++ b/src/ground_main.c @@ -90,26 +90,26 @@ void sub_8098BDC(void) void sub_8098C58(void) { s32 temp, temp2; - ClearScriptVarArray(NULL, 54); - ClearScriptVarArray(NULL, 57); + ClearScriptVarArray(NULL, GROUND_LOCAL); + ClearScriptVarArray(NULL, EVENT_LOCAL); sub_809CB8C(); sub_8001D88(); - if (GetScriptVarValue(NULL, 42) != 0) { - temp = GetScriptVarValue(NULL, 41); + if (GetScriptVarValue(NULL, FLAG_KIND_CHANGE_REQUEST) != 0) { + temp = GetScriptVarValue(NULL, FLAG_KIND); temp++; if (temp > 15) temp = 0; - SetScriptVarValue(NULL, 41, temp); - SetScriptVarValue(NULL, 42, 0); + SetScriptVarValue(NULL, FLAG_KIND, temp); + SetScriptVarValue(NULL, FLAG_KIND_CHANGE_REQUEST, 0); } - temp2 = GetScriptVarArrayValue(NULL, 66, 0); + temp2 = GetScriptVarArrayValue(NULL, EVENT_GONBE, 0); if (temp2 <= 0) temp2 = 1; temp2--; - SetScriptVarArrayValue(NULL, 66, 0, temp2); + SetScriptVarArrayValue(NULL, EVENT_GONBE, 0, temp2); sub_8098CC8(); } @@ -117,15 +117,15 @@ void sub_8098C58(void) void sub_8098CC8(void) { u32 temp; - if(ScriptVarScenarioBefore(0x3, 0xB, 0)) + if(ScriptVarScenarioBefore(SCENARIO_MAIN, 0xB, 0)) { temp = 0; } - else if(ScriptVarScenarioBefore(0x3, 0xF, 0)) + else if(ScriptVarScenarioBefore(SCENARIO_MAIN, 0xF, 0)) { temp = 1; } - else if(ScriptVarScenarioBefore(0x3, 0x12, 0)) + else if(ScriptVarScenarioBefore(SCENARIO_MAIN, 0x12, 0)) { temp = 2; } @@ -275,12 +275,12 @@ bool8 GetScriptMode(void) s16 sub_8098FA0(void) { - return GetScriptVarValue(NULL, 0x11); + return GetScriptVarValue(NULL, GROUND_PLACE); } const char *sub_8098FB4(void) { - return sub_80A2B18(GetScriptVarValue(NULL, 0x11)); + return sub_80A2B18(GetScriptVarValue(NULL, GROUND_PLACE)); } s16 sub_8098FCC(u32 unused) @@ -290,12 +290,12 @@ s16 sub_8098FCC(u32 unused) s32 iVar6; const DungeonInfo *iVar3; - iVar5 = (s16)GetScriptVarValue(NULL,0x13); + iVar5 = (s16)GetScriptVarValue(NULL,DUNGEON_ENTER); iVar6 = iVar5; if (iVar5 == -1) return 0xC; if (iVar5 == 0x51) - iVar4 = (s16)GetScriptVarValue(NULL,0x14); + iVar4 = (s16)GetScriptVarValue(NULL,DUNGEON_ENTER_INDEX); else iVar4 = iVar6; @@ -305,7 +305,7 @@ s16 sub_8098FCC(u32 unused) } switch((s16)(iVar3->unk4 - 0xb2)) { case 0: - if (ScriptVarScenarioAfter(3,2,-1) != 0) return 0xc; + if (ScriptVarScenarioAfter(SCENARIO_MAIN,2,-1) != 0) return 0xc; break; case 0xf: case 0x11: diff --git a/src/ground_map.c b/src/ground_map.c index 2cef8f677..8899cb91f 100644 --- a/src/ground_map.c +++ b/src/ground_map.c @@ -37,8 +37,8 @@ void FreeGroundMapAction(void) void GroundMap_Reset(void) { - ClearScriptVarArray(NULL, 0x37); - ClearScriptVarArray(NULL, 0x38); + ClearScriptVarArray(NULL, MAP_LOCAL); + ClearScriptVarArray(NULL, MAP_LOCAL_DOOR); ActionResetScriptData((Action *)gGroundMapAction, gUnknown_8117538); if (gGroundMapDungeon_3001B70 != NULL) { diff --git a/src/ground_map_2.c b/src/ground_map_2.c index 57a2a42c1..f2337fc93 100644 --- a/src/ground_map_2.c +++ b/src/ground_map_2.c @@ -52,7 +52,7 @@ void sub_80A5EBC(void) void sub_80A5EDC(u8 param_1) { - SetScriptVarValue(NULL, 27, -1); + SetScriptVarValue(NULL, WEATHER_KIND, -1); gUnknown_3001B74->unk0 = -1; gUnknown_3001B74->unk2 = param_1; @@ -84,7 +84,7 @@ void GroundWeather_Select(s16 param_1) iVar2 = param_1; iVar3 = iVar2; Log(0, gGroundWeatherSelect, iVar2, gUnknown_3001B74->unk2); - SetScriptVarValue(NULL, 27, iVar2); + SetScriptVarValue(NULL, WEATHER_KIND, iVar2); gUnknown_3001B74->unk0 = iVar2; if (gUnknown_3001B74->unk2 == 0) diff --git a/src/ground_script_1.c b/src/ground_script_1.c index 7bdd5ac0d..1b2440982 100644 --- a/src/ground_script_1.c +++ b/src/ground_script_1.c @@ -215,7 +215,7 @@ s32 ExecuteScriptCommand(Action *action) { } case 0x02: { s32 arg = (s16)curCmd.arg1; - if (arg == -1) arg = (s16)GetScriptVarValue(NULL, 19); + if (arg == -1) arg = (s16)GetScriptVarValue(NULL, DUNGEON_ENTER); if (ScriptLoggingEnabled(TRUE)) { // " dungeon select %3d" Log(1, gUnknown_81165F4, arg); @@ -247,7 +247,7 @@ s32 ExecuteScriptCommand(Action *action) { } return 2; // do action } else { - SetScriptVarValue(NULL, 18, sub_80A26B8((s16)curCmd.arg1)); + SetScriptVarValue(NULL, DUNGEON_SELECT, sub_80A26B8((s16)curCmd.arg1)); action->scriptData.branchDiscriminant = 1; return 2; // do action } @@ -264,7 +264,7 @@ s32 ExecuteScriptCommand(Action *action) { return 2; } } else { - SetScriptVarValue(NULL, 19, curCmd.arg1); + SetScriptVarValue(NULL, DUNGEON_ENTER, curCmd.arg1); action->scriptData.branchDiscriminant = 1; return 2; } @@ -276,9 +276,9 @@ s32 ExecuteScriptCommand(Action *action) { case 0x07: { s32 tmp = (s16)curCmd.arg1; if (tmp == -1) { - tmp = (s16)GetScriptVarValue(NULL, 19); + tmp = (s16)GetScriptVarValue(NULL, DUNGEON_ENTER); } else { - SetScriptVarValue(NULL, 19, tmp); + SetScriptVarValue(NULL, DUNGEON_ENTER, tmp); } if (ScriptLoggingEnabled(TRUE)) { Log(1, gUnknown_811660C, tmp); @@ -310,8 +310,8 @@ s32 ExecuteScriptCommand(Action *action) { gGroundConversion_811BAF4[gCurrentMap].text); } } - SetScriptVarValue(NULL,0x10,gCurrentMap); - SetScriptVarValue(NULL,0x11,gGroundConversion_811BAF4[gCurrentMap].unk2); + SetScriptVarValue(NULL,GROUND_MAP,gCurrentMap); + SetScriptVarValue(NULL,GROUND_PLACE,gGroundConversion_811BAF4[gCurrentMap].unk2); GroundSprite_Reset(gUnknown_2039A32); sub_809D0BC(); DeleteGroundEvents(); @@ -516,9 +516,9 @@ s32 ExecuteScriptCommand(Action *action) { break; } case 0x1f: { - s32 a = (s16)GetScriptVarValue(NULL, 19); + s32 a = (s16)GetScriptVarValue(NULL, DUNGEON_ENTER); const DungeonInfo *ret1 = GetDungeonInfo_80A2608(a); - s32 thing = GetScriptVarArrayValue(NULL, 48, a) == 0 ? ret1->unk6 : ret1->unk8; + s32 thing = GetScriptVarArrayValue(NULL, DUNGEON_ENTER_LIST, a) == 0 ? ret1->unk6 : ret1->unk8; // fakematch: this is almost certainly a range check of the form 0x37 <= a && a < 0x48 // but that loses the s32 -> u16 cast. Inlines, macros, or other schenanigans are likely involved if (!((u16)(a - 0x37) < 0x11) && (s16)sub_80A2750(a) == 1) { @@ -1001,10 +1001,10 @@ s32 ExecuteScriptCommand(Action *action) { Position32 pos; s32 height; s32 dir; - pos.x = GetScriptVarArrayValue(NULL, 0x32, (u16)curCmd.arg1); // POSITION_X - pos.y = GetScriptVarArrayValue(NULL, 0x33, (u16)curCmd.arg1); // POSITION_Y - height = GetScriptVarArrayValue(NULL, 0x34, (u16)curCmd.arg1); // POSITION_HEIGHT - dir = (s8)GetScriptVarArrayValue(NULL, 0x35, (u16)curCmd.arg1); // POSITION_DIRECTION + pos.x = GetScriptVarArrayValue(NULL, POSITION_X, (u16)curCmd.arg1); + pos.y = GetScriptVarArrayValue(NULL, POSITION_Y, (u16)curCmd.arg1); + height = GetScriptVarArrayValue(NULL, POSITION_HEIGHT, (u16)curCmd.arg1); + dir = (s8)GetScriptVarArrayValue(NULL, POSITION_DIRECTION, (u16)curCmd.arg1); action->callbacks->moveReal(action->parentObject, &pos); action->callbacks->setPosHeight(action->parentObject, height); action->scriptData.unk26 = dir; @@ -1024,10 +1024,10 @@ s32 ExecuteScriptCommand(Action *action) { action->callbacks->getHitboxCenter(action->parentObject, &pos); action->callbacks->getPosHeightAndUnk(action->parentObject, &height, &wat); action->callbacks->getDirection(action->parentObject, &dir); - SetScriptVarArrayValue(NULL, 0x32, (u16)curCmd.arg1, pos.x); - SetScriptVarArrayValue(NULL, 0x33, (u16)curCmd.arg1, pos.y); - SetScriptVarArrayValue(NULL, 0x34, (u16)curCmd.arg1, height); - SetScriptVarArrayValue(NULL, 0x35, (u16)curCmd.arg1, dir); + SetScriptVarArrayValue(NULL, POSITION_X, (u16)curCmd.arg1, pos.x); + SetScriptVarArrayValue(NULL, POSITION_Y, (u16)curCmd.arg1, pos.y); + SetScriptVarArrayValue(NULL, POSITION_HEIGHT, (u16)curCmd.arg1, height); + SetScriptVarArrayValue(NULL, POSITION_DIRECTION, (u16)curCmd.arg1, dir); break; } case 0x60: { @@ -1466,12 +1466,12 @@ s32 ExecuteScriptCommand(Action *action) { break; } case 0xab: { - SetScriptVarValue(NULL, 19, curCmd.arg1); - SetScriptVarValue(NULL, 22, curCmd.argShort); + SetScriptVarValue(NULL, DUNGEON_ENTER, curCmd.arg1); + SetScriptVarValue(NULL, DUNGEON_RESULT, curCmd.argShort); break; } case 0xac: { - SetScriptVarValue(NULL, 28, curCmd.argShort); + SetScriptVarValue(NULL, PLAYER_KIND, curCmd.argShort); break; } case 0xad: { diff --git a/src/load_screen.c b/src/load_screen.c index 54b73a9cc..a113d9c25 100644 --- a/src/load_screen.c +++ b/src/load_screen.c @@ -308,7 +308,7 @@ void DrawLoadScreenText(void) switch(sub_8011C1C()) { case 1: - switch(GetScriptVarValue(NULL,24)) + switch(GetScriptVarValue(NULL,START_MODE)) { default: sprintfStatic(auStack356,gUnknown_80E7804,sub_8098FB4()); @@ -415,4 +415,4 @@ bool8 IsQuickSave(void) bool8 sub_8039880(void) { return (CountMailType(WONDER_MAIL_TYPE_SOS) != 0 || CountMailType(WONDER_MAIL_TYPE_OKD) != 0 || sub_8011C1C() == 2); -} \ No newline at end of file +} From a6237cf6a715e3d2f868813b36329ba2d06fef92 Mon Sep 17 00:00:00 2001 From: Mateon1 Date: Fri, 20 Sep 2024 01:04:29 +0200 Subject: [PATCH 9/9] Remove renames sed script --- renames.sed | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 renames.sed diff --git a/renames.sed b/renames.sed deleted file mode 100644 index a3d05ff08..000000000 --- a/renames.sed +++ /dev/null @@ -1,6 +0,0 @@ -s/gGroundEnterLookupTable/gGroundEnterLookupTable/g -s/sub_80022F8/JudgeVarWithImmediate/g -s/sub_8002318/JudgeVarWithVar/g -s/sub_8002700/SaveGlobalScriptVars/g -s/sub_8002718/RestoreGlobalScriptVars/g -