From 6120ebe7e78f500432708631891feb32bc974be2 Mon Sep 17 00:00:00 2001 From: tgsm Date: Mon, 3 May 2021 08:19:11 -0400 Subject: Decompile scrcmd_21 -> scrcmd_flags --- arm9/src/scrcmd_flags.c | 284 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 284 insertions(+) create mode 100644 arm9/src/scrcmd_flags.c (limited to 'arm9/src/scrcmd_flags.c') diff --git a/arm9/src/scrcmd_flags.c b/arm9/src/scrcmd_flags.c new file mode 100644 index 00000000..c0f6a519 --- /dev/null +++ b/arm9/src/scrcmd_flags.c @@ -0,0 +1,284 @@ +#include "scrcmd.h" +#include "event_data.h" +#include "pokedex.h" + +extern void* FUN_02034E20(void*); +extern void* FUN_02034E30(void*); +extern BOOL FUN_02055474(void*); +extern void FUN_02055488(void*, u32); +extern void FUN_0205ECD4(struct ScriptState* state); +extern BOOL FUN_0205ECE0(struct ScriptState* state); +extern void FUN_0205ECFC(struct ScriptState* state); +extern BOOL FUN_0205ED0C(struct ScriptState* state); +extern void FUN_0205ED1C(struct ScriptState* state); +extern void FUN_0205ED2C(struct ScriptState* state); +extern BOOL FUN_0205ED3C(struct ScriptState* state); +extern void FUN_0205ED4C(struct ScriptState* state); +extern void FUN_0205ED5C(struct ScriptState* state); +extern BOOL FUN_0205ED6C(struct ScriptState* state); +extern BOOL FUN_0205F264(struct ScriptState* state, u32); +extern void FUN_0205F274(struct ScriptState* state); +extern void FUN_0205F284(struct ScriptState* state); +extern BOOL FUN_0205F294(struct ScriptState* state); +extern void FUN_0205F2A4(struct ScriptState* state); +extern void FUN_0205F2B4(struct ScriptState* state); +extern BOOL FUN_0205F2C4(struct ScriptState* state); + +const u8 UNK_020F457F[8] = { + 0, 1, 2, 3, 4, 5, 6, 7, +}; + +THUMB_FUNC BOOL ScrCmd_HasSinnohDex(struct ScriptContext* ctx) +{ + struct Pokedex* pokedex = Sav2_Pokedex_get(ctx->unk80->saveBlock2); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + *ret_ptr = (u16)Pokedex_GetSinnohDexFlag(pokedex); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GiveSinnohDex(struct ScriptContext* ctx) +{ + struct Pokedex* pokedex = Sav2_Pokedex_get(ctx->unk80->saveBlock2); + + Pokedex_SetSinnohDexFlag(pokedex); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0159(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + void* unk_sav_ptr = FUN_02034E30(ctx->unk80->saveBlock2); + void* unk = FUN_02034E20(unk_sav_ptr); + + *ret_ptr = (u16)FUN_02055474(unk); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk015A(struct ScriptContext* ctx) +{ + void* unk_sav_ptr = FUN_02034E30(ctx->unk80->saveBlock2); + void* unk = FUN_02034E20(unk_sav_ptr); + + FUN_02055488(unk, 1); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_HasBadge(struct ScriptContext* ctx) +{ + u16 badge_no = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + GF_ASSERT(badge_no < 8); + struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(ctx->unk80->saveBlock2); + + *ret_ptr = (u16)PlayerProfile_TestBadgeFlag(player, badge_no); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GiveBadge(struct ScriptContext* ctx) +{ + u16 badge_no = VarGet(ctx->unk80, ScriptReadHalfword(ctx)); + GF_ASSERT(badge_no < 8); + struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(ctx->unk80->saveBlock2); + + PlayerProfile_SetBadgeFlag(player, badge_no); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk015E(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + *ret_ptr = (u16)FUN_0205ECE0(state); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_GetTotalEarnedBadges(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + + u16 i; + u16 badges; + for (i = 0, badges = 0; i < 8; i++) + { + struct PlayerData* player = Sav2_PlayerData_GetProfileAddr(ctx->unk80->saveBlock2); + BOOL has_badge = PlayerProfile_TestBadgeFlag(player, UNK_020F457F[i]); + if (has_badge == TRUE) + { + badges++; + } + } + + *ret_ptr = badges; + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk015F(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + FUN_0205ECD4(state); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0160(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + *ret_ptr = (u16)FUN_0205ED3C(state); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0161(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + FUN_0205ED1C(state); + + return 0; +} + +THUMB_FUNC BOOL ScrCmd_Unk0162(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + FUN_0205ED2C(state); + + return 0; +} + +THUMB_FUNC BOOL ScrCmd_Unk0163(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + *ret_ptr = (u16)FUN_0205ED6C(state); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0164(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + FUN_0205ED4C(state); + + return 0; +} + +THUMB_FUNC BOOL ScrCmd_Unk0165(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + FUN_0205ED5C(state); + + return 0; +} + +THUMB_FUNC BOOL ScrCmd_Unk0166(struct ScriptContext* ctx) +{ + u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + *ret_ptr = (u16)FUN_0205ED0C(state); + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk0167(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + + FUN_0205ECFC(state); + + return 0; +} + +THUMB_FUNC BOOL ScrCmd_Unk01CF(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + u8 unk = ScriptReadByte(ctx); + u16* ret_ptr; + + switch (unk) + { + case 1: + FUN_0205F264(state, 1); + break; + case 0: + FUN_0205F264(state, 0); + break; + case 2: + ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + *ret_ptr = (u16)FUN_0205F264(state, 2); + break; + default: + GF_ASSERT(FALSE); + break; + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01D0(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + u8 unk = ScriptReadByte(ctx); + u16* ret_ptr; + + switch (unk) + { + case 1: + FUN_0205F274(state); + break; + case 0: + FUN_0205F284(state); + break; + case 2: + ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + *ret_ptr = (u16)FUN_0205F294(state); + break; + default: + GF_ASSERT(FALSE); + break; + } + + return FALSE; +} + +THUMB_FUNC BOOL ScrCmd_Unk01D1(struct ScriptContext* ctx) +{ + struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); + u8 unk = ScriptReadByte(ctx); + u16* ret_ptr; + + switch (unk) + { + case 1: + FUN_0205F2A4(state); + break; + case 0: + FUN_0205F2B4(state); + break; + case 2: + ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); + *ret_ptr = (u16)FUN_0205F2C4(state); + break; + default: + GF_ASSERT(FALSE); + break; + } + + return FALSE; +} -- cgit v1.2.3 From 1aad76b774edbd598fb024d67cf54e7973ade8db Mon Sep 17 00:00:00 2001 From: red031000 Date: Mon, 31 May 2021 21:12:03 +0100 Subject: document a lot of scrcmd commands --- arm9/src/scrcmd_flags.c | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) (limited to 'arm9/src/scrcmd_flags.c') diff --git a/arm9/src/scrcmd_flags.c b/arm9/src/scrcmd_flags.c index c0f6a519..ee13ebc0 100644 --- a/arm9/src/scrcmd_flags.c +++ b/arm9/src/scrcmd_flags.c @@ -47,7 +47,7 @@ THUMB_FUNC BOOL ScrCmd_GiveSinnohDex(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0159(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_HasRunningShoes(struct ScriptContext* ctx) { u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); void* unk_sav_ptr = FUN_02034E30(ctx->unk80->saveBlock2); @@ -58,7 +58,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0159(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk015A(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GiveRunningShoes(struct ScriptContext* ctx) { void* unk_sav_ptr = FUN_02034E30(ctx->unk80->saveBlock2); void* unk = FUN_02034E20(unk_sav_ptr); @@ -91,7 +91,7 @@ THUMB_FUNC BOOL ScrCmd_GiveBadge(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk015E(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GiveBag(struct ScriptContext* ctx) { u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); @@ -121,7 +121,7 @@ THUMB_FUNC BOOL ScrCmd_GetTotalEarnedBadges(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk015F(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_HasBag(struct ScriptContext* ctx) { struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); @@ -186,7 +186,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0165(struct ScriptContext* ctx) return 0; } -THUMB_FUNC BOOL ScrCmd_Unk0166(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_CheckGameCompleted(struct ScriptContext* ctx) { u16* ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); @@ -196,7 +196,7 @@ THUMB_FUNC BOOL ScrCmd_Unk0166(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk0167(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_SetGameCompleted(struct ScriptContext* ctx) { struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); @@ -205,21 +205,21 @@ THUMB_FUNC BOOL ScrCmd_Unk0167(struct ScriptContext* ctx) return 0; } -THUMB_FUNC BOOL ScrCmd_Unk01CF(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetSetStrength(struct ScriptContext* ctx) { struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); - u8 unk = ScriptReadByte(ctx); + u8 option = ScriptReadByte(ctx); u16* ret_ptr; - switch (unk) + switch (option) { - case 1: + case 1: //set strength to on FUN_0205F264(state, 1); break; - case 0: + case 0: //set strength to off FUN_0205F264(state, 0); break; - case 2: + case 2: //get whether strength is on or off ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); *ret_ptr = (u16)FUN_0205F264(state, 2); break; @@ -231,21 +231,21 @@ THUMB_FUNC BOOL ScrCmd_Unk01CF(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk01D0(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetSetFlash(struct ScriptContext* ctx) { struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); - u8 unk = ScriptReadByte(ctx); + u8 option = ScriptReadByte(ctx); u16* ret_ptr; - switch (unk) + switch (option) { - case 1: + case 1: //set flash to on FUN_0205F274(state); break; - case 0: + case 0: //set flash to off FUN_0205F284(state); break; - case 2: + case 2: //get whether flash is on or off ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); *ret_ptr = (u16)FUN_0205F294(state); break; @@ -257,21 +257,21 @@ THUMB_FUNC BOOL ScrCmd_Unk01D0(struct ScriptContext* ctx) return FALSE; } -THUMB_FUNC BOOL ScrCmd_Unk01D1(struct ScriptContext* ctx) +THUMB_FUNC BOOL ScrCmd_GetSetDefog(struct ScriptContext* ctx) { struct ScriptState* state = SavArray_Flags_get(ctx->unk80->saveBlock2); - u8 unk = ScriptReadByte(ctx); + u8 option = ScriptReadByte(ctx); u16* ret_ptr; - switch (unk) + switch (option) { - case 1: + case 1: //set defog to on FUN_0205F2A4(state); break; - case 0: + case 0: //set defog to off FUN_0205F2B4(state); break; - case 2: + case 2: //get whether defog is on or off ret_ptr = GetVarPointer(ctx->unk80, ScriptReadHalfword(ctx)); *ret_ptr = (u16)FUN_0205F2C4(state); break; -- cgit v1.2.3