From acd2b1dca3f9af6974ae3b6b8a47b089c4d6d22c Mon Sep 17 00:00:00 2001 From: Viperio <146665252+Viperio19@users.noreply.github.com> Date: Sun, 17 Aug 2025 06:06:26 +0200 Subject: [PATCH] Document `unk_02048614.c`, renamed to `scrcmd_trainer.c` (#685) Co-authored-by: Eduardo Quezada Co-authored-by: notmyname --- asm/macros/scrcmd.inc | 31 ++-- include/script_manager.h | 2 +- include/unk_02048614.h | 14 +- platinum.us/main.lsf | 2 +- .../scripts_distortion_world_giratina_room.s | 12 +- res/field/scripts/scripts_unk_1114.s | 48 +++--- src/meson.build | 2 +- src/scrcmd.c | 10 +- src/{unk_02048614.c => scrcmd_trainer.c} | 158 +++++++++--------- src/script_manager.c | 8 +- src/unk_02067A84.c | 76 ++++----- 11 files changed, 182 insertions(+), 181 deletions(-) rename src/{unk_02048614.c => scrcmd_trainer.c} (63%) diff --git a/asm/macros/scrcmd.inc b/asm/macros/scrcmd.inc index 86281d8416..b191e1dd75 100644 --- a/asm/macros/scrcmd.inc +++ b/asm/macros/scrcmd.inc @@ -31,6 +31,7 @@ #include "constants/map_object.h" #include "constants/savedata/vars_flags.h" #include "constants/scrcmd.h" +#include "constants/battle.h" #include "macros/movement.inc" @@ -1095,26 +1096,26 @@ .short 181 .endm - .macro ScrCmd_0B6 arg0 + .macro ScrCmd_0B6 approachNum .short 182 - .short \arg0 + .short \approachNum .endm - .macro ScrCmd_0B7 arg0, arg1 + .macro CheckIsApproachingTrainerTaskDone approachNum, destVar .short 183 - .short \arg0 - .short \arg1 + .short \approachNum + .short \destVar .endm - .macro ScrCmd_0B8 arg0 + .macro ScrCmd_0B8 destVar .short 184 - .short \arg0 + .short \destVar .endm - .macro ScrCmd_0B9 arg0, arg1 + .macro GetApproachingTrainerID approachNum, destVar .short 185 - .short \arg0 - .short \arg1 + .short \approachNum + .short \destVar .endm .macro ScrCmd_Unused_0BA arg0 @@ -1415,13 +1416,13 @@ .short 239 .endm - .macro ScrCmd_0F0 + .macro SetTargetTrainerDefeated .short 240 .endm - .macro ScrCmd_0F1 arg0 + .macro GoToIfTargetTrainerDefeated offset .short 241 - .long \arg0-.-4 + .long \offset-.-4 .endm .macro ScrCmd_0F2 arg0, arg1, arg2, arg3 @@ -4506,9 +4507,9 @@ CheckHeapMemory TRUE .endm - .macro ScrCmd_314 arg0 + .macro GetBattleResult destVar .short 788 - .short \arg0 + .short \destVar .endm .macro ScrCmd_315 arg0 diff --git a/include/script_manager.h b/include/script_manager.h index aff3c0925f..b6ea5c5d59 100644 --- a/include/script_manager.h +++ b/include/script_manager.h @@ -112,7 +112,7 @@ typedef struct ApproachingTrainer { int direction; int scriptID; int trainerID; - int trainerType; + int unk_10; MapObject *object; SysTask *task; } ApproachingTrainer; diff --git a/include/unk_02048614.h b/include/unk_02048614.h index 624fdec2ab..5cad469e13 100644 --- a/include/unk_02048614.h +++ b/include/unk_02048614.h @@ -3,10 +3,10 @@ #include "field_script_context.h" -BOOL ScrCmd_0B6(ScriptContext *param0); -BOOL ScrCmd_0B7(ScriptContext *param0); -BOOL ScrCmd_0B8(ScriptContext *param0); -BOOL ScrCmd_0B9(ScriptContext *param0); +BOOL ScrCmd_0B6(ScriptContext *ctx); +BOOL ScrCmd_CheckIsApproachingTrainerTaskDone(ScriptContext *ctx); +BOOL ScrCmd_0B8(ScriptContext *ctx); +BOOL ScrCmd_GetApproachingTrainerID(ScriptContext *ctx); BOOL ScrCmd_GetTrainerID(ScriptContext *ctx); BOOL ScrCmd_StartTrainerBattle(ScriptContext *ctx); BOOL ScrCmd_StartTagBattle(ScriptContext *ctx); @@ -20,8 +20,8 @@ BOOL ScrCmd_CheckLostBattle(ScriptContext *ctx); BOOL ScrCmd_CheckDidNotCapture(ScriptContext *ctx); BOOL ScrCmd_CheckHasTwoAliveMons(ScriptContext *ctx); BOOL ScrCmd_StartDummyTrainerBattle(ScriptContext *ctx); -BOOL ScrCmd_0F0(ScriptContext *param0); -BOOL ScrCmd_0F1(ScriptContext *param0); -BOOL ScrCmd_314(ScriptContext *param0); +BOOL ScrCmd_SetTargetTrainerDefeated(ScriptContext *ctx); +BOOL ScrCmd_GoToIfTargetTrainerDefeated(ScriptContext *ctx); +BOOL ScrCmd_GetBattleResult(ScriptContext *ctx); #endif // POKEPLATINUM_UNK_02048614_H diff --git a/platinum.us/main.lsf b/platinum.us/main.lsf index ebb104b9ea..fe7436f2d5 100644 --- a/platinum.us/main.lsf +++ b/platinum.us/main.lsf @@ -189,7 +189,7 @@ Static main Object main.nef.p/src_unk_020474B8.c.o Object main.nef.p/src_scrcmd_jubilife_lottery.c.o Object main.nef.p/src_scrcmd_sound.c.o - Object main.nef.p/src_unk_02048614.c.o + Object main.nef.p/src_scrcmd_trainer.c.o Object main.nef.p/src_unk_02048BD0.c.o Object main.nef.p/src_unk_02048DD8.c.o Object main.nef.p/src_unk_020494DC.c.o diff --git a/res/field/scripts/scripts_distortion_world_giratina_room.s b/res/field/scripts/scripts_distortion_world_giratina_room.s index 48942aa158..8e6ca7015e 100644 --- a/res/field/scripts/scripts_distortion_world_giratina_room.s +++ b/res/field/scripts/scripts_distortion_world_giratina_room.s @@ -70,12 +70,12 @@ _00C4: StartGiratinaOriginBattle SPECIES_GIRATINA, 47 ClearFlag FLAG_UNK_0x008E CheckWonBattle VAR_RESULT - ScrCmd_314 VAR_RESULT - GoToIfEq VAR_RESULT, 2, _0204 - GoToIfEq VAR_RESULT, 3, _0204 - GoToIfEq VAR_RESULT, 5, _014E - GoToIfEq VAR_RESULT, 6, _014E - GoToIfEq VAR_RESULT, 4, _016E + GetBattleResult VAR_RESULT + GoToIfEq VAR_RESULT, BATTLE_RESULT_LOSE, _0204 + GoToIfEq VAR_RESULT, BATTLE_RESULT_DRAW, _0204 + GoToIfEq VAR_RESULT, BATTLE_RESULT_PLAYER_FLED, _014E + GoToIfEq VAR_RESULT, BATTLE_RESULT_ENEMY_FLED, _014E + GoToIfEq VAR_RESULT, BATTLE_RESULT_CAPTURED_MON, _016E ScrCmd_311 130 ScrCmd_311 129 ApplyMovement 129, _0250 diff --git a/res/field/scripts/scripts_unk_1114.s b/res/field/scripts/scripts_unk_1114.s index 81ee0fb79d..9caef139aa 100644 --- a/res/field/scripts/scripts_unk_1114.s +++ b/res/field/scripts/scripts_unk_1114.s @@ -1058,12 +1058,12 @@ _1054: End _1083: - ScrCmd_0B9 0, VAR_RESULT + GetApproachingTrainerID 0, VAR_RESULT SetVar VAR_0x8004, VAR_RESULT PlayTrainerEncounterBGM VAR_0x8004 ScrCmd_0B6 0 Call _10DE - ScrCmd_0B9 0, VAR_RESULT + GetApproachingTrainerID 0, VAR_RESULT SetVar VAR_0x8004, VAR_RESULT OpenMessage PrintTrainerDialogue VAR_0x8004, TRMSG_PRE_BATTLE @@ -1071,30 +1071,30 @@ _1083: StartTrainerBattle VAR_0x8004 CheckWonBattle VAR_RESULT GoToIfEq VAR_RESULT, FALSE, _0FC5 - ScrCmd_0B9 0, VAR_RESULT + GetApproachingTrainerID 0, VAR_RESULT SetVar VAR_0x8004, VAR_RESULT SetTrainerFlag VAR_0x8004 ReleaseAll End _10DE: - ScrCmd_0B7 0, VAR_RESULT - GoToIfEq VAR_RESULT, 0, _10DE + CheckIsApproachingTrainerTaskDone 0, VAR_RESULT + GoToIfEq VAR_RESULT, FALSE, _10DE Return _10F3: - ScrCmd_0B9 0, VAR_RESULT + GetApproachingTrainerID 0, VAR_RESULT SetVar VAR_0x8004, VAR_RESULT PlayTrainerEncounterBGM VAR_0x8004 ScrCmd_0B6 0 ScrCmd_0B6 1 Call _1178 - ScrCmd_0B9 0, VAR_RESULT + GetApproachingTrainerID 0, VAR_RESULT SetVar VAR_0x8004, VAR_RESULT OpenMessage PrintTrainerDialogue VAR_0x8004, TRMSG_PRE_DOUBLE_BATTLE_1 CloseMessage - ScrCmd_0B9 1, VAR_RESULT + GetApproachingTrainerID 1, VAR_RESULT SetVar VAR_0x8005, VAR_RESULT OpenMessage PrintTrainerDialogue VAR_0x8005, TRMSG_PRE_DOUBLE_BATTLE_2 @@ -1102,39 +1102,39 @@ _10F3: StartTrainerBattle VAR_0x8004, VAR_0x8005 CheckWonBattle VAR_RESULT GoToIfEq VAR_RESULT, FALSE, _0FC5 - ScrCmd_0B9 0, VAR_RESULT + GetApproachingTrainerID 0, VAR_RESULT SetVar VAR_0x8004, VAR_RESULT SetTrainerFlag VAR_0x8004 - ScrCmd_0B9 1, VAR_RESULT + GetApproachingTrainerID 1, VAR_RESULT SetVar VAR_0x8005, VAR_RESULT SetTrainerFlag VAR_0x8005 ReleaseAll End _1178: - ScrCmd_0B7 0, VAR_RESULT - GoToIfEq VAR_RESULT, 0, _1178 - ScrCmd_0B7 1, VAR_RESULT - GoToIfEq VAR_RESULT, 0, _1178 + CheckIsApproachingTrainerTaskDone 0, VAR_RESULT + GoToIfEq VAR_RESULT, FALSE, _1178 + CheckIsApproachingTrainerTaskDone 1, VAR_RESULT + GoToIfEq VAR_RESULT, FALSE, _1178 Return _11A0: - ScrCmd_0B9 0, VAR_RESULT + GetApproachingTrainerID 0, VAR_RESULT SetVar VAR_0x8004, VAR_RESULT PlayTrainerEncounterBGM VAR_0x8004 ScrCmd_0B6 0 Call _123B - ScrCmd_0B9 0, VAR_RESULT + GetApproachingTrainerID 0, VAR_RESULT SetVar VAR_0x8004, VAR_RESULT OpenMessage PrintTrainerDialogue VAR_0x8004, TRMSG_PRE_BATTLE CloseMessage - ScrCmd_0B9 1, VAR_RESULT + GetApproachingTrainerID 1, VAR_RESULT SetVar VAR_0x8005, VAR_RESULT PlayTrainerEncounterBGM VAR_0x8005 ScrCmd_0B6 1 Call _1250 - ScrCmd_0B9 1, VAR_RESULT + GetApproachingTrainerID 1, VAR_RESULT SetVar VAR_0x8005, VAR_RESULT OpenMessage PrintTrainerDialogue VAR_0x8005, TRMSG_PRE_BATTLE @@ -1142,23 +1142,23 @@ _11A0: StartTrainerBattle VAR_0x8004, VAR_0x8005 CheckWonBattle VAR_RESULT GoToIfEq VAR_RESULT, FALSE, _0FC5 - ScrCmd_0B9 0, VAR_RESULT + GetApproachingTrainerID 0, VAR_RESULT SetVar VAR_0x8004, VAR_RESULT SetTrainerFlag VAR_0x8004 - ScrCmd_0B9 1, VAR_RESULT + GetApproachingTrainerID 1, VAR_RESULT SetVar VAR_0x8005, VAR_RESULT SetTrainerFlag VAR_0x8005 ReleaseAll End _123B: - ScrCmd_0B7 0, VAR_RESULT - GoToIfEq VAR_RESULT, 0, _123B + CheckIsApproachingTrainerTaskDone 0, VAR_RESULT + GoToIfEq VAR_RESULT, FALSE, _123B Return _1250: - ScrCmd_0B7 1, VAR_RESULT - GoToIfEq VAR_RESULT, 0, _1250 + CheckIsApproachingTrainerTaskDone 1, VAR_RESULT + GoToIfEq VAR_RESULT, FALSE, _1250 Return .balign 4, 0 diff --git a/src/meson.build b/src/meson.build index 68d07f59f8..cd5eef62fe 100644 --- a/src/meson.build +++ b/src/meson.build @@ -177,7 +177,7 @@ pokeplatinum_c = files( 'unk_020474B8.c', 'scrcmd_jubilife_lottery.c', 'scrcmd_sound.c', - 'unk_02048614.c', + 'scrcmd_trainer.c', 'unk_02048BD0.c', 'unk_02048DD8.c', 'unk_020494DC.c', diff --git a/src/scrcmd.c b/src/scrcmd.c index b43788ec5b..e1591a5091 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -953,9 +953,9 @@ const ScrCmdFunc Unk_020EAC58[] = { ScrCmd_StartChooseStarterScene, ScrCmd_SaveChosenStarter, ScrCmd_0B6, - ScrCmd_0B7, + ScrCmd_CheckIsApproachingTrainerTaskDone, ScrCmd_0B8, - ScrCmd_0B9, + ScrCmd_GetApproachingTrainerID, ScrCmd_Unused_0BA, ScrCmd_0BB, ScrCmd_FadeScreen, @@ -1010,8 +1010,8 @@ const ScrCmdFunc Unk_020EAC58[] = { ScrCmd_CheckLostBattle, ScrCmd_CheckHasTwoAliveMons, ScrCmd_StartDummyTrainerBattle, - ScrCmd_0F0, - ScrCmd_0F1, + ScrCmd_SetTargetTrainerDefeated, + ScrCmd_GoToIfTargetTrainerDefeated, ScrCmd_0F2, ScrCmd_0F3, ScrCmd_Unused_0F4, @@ -1558,7 +1558,7 @@ const ScrCmdFunc Unk_020EAC58[] = { ScrCmd_311, ScrCmd_312, ScrCmd_CheckHeapMemory, - ScrCmd_314, + ScrCmd_GetBattleResult, ScrCmd_315, ScrCmd_316, ScrCmd_GetPlayer3DPos, diff --git a/src/unk_02048614.c b/src/scrcmd_trainer.c similarity index 63% rename from src/unk_02048614.c rename to src/scrcmd_trainer.c index 0ed21d6dec..7f0154a7f1 100644 --- a/src/unk_02048614.c +++ b/src/scrcmd_trainer.c @@ -26,89 +26,89 @@ #include "unk_02067A84.h" #include "vars_flags.h" -BOOL ScrCmd_0B6(ScriptContext *param0) +BOOL ScrCmd_0B6(ScriptContext *ctx) { - int *v0; - int *v1; - int *v2; + int *sightRange; + int *scriptID; + int *trainerID; int *v3; - int *v4; - SysTask **v5; - MapObject **v6; + int *direction; + SysTask **task; + MapObject **mapObj; PlayerAvatar *playerAvatar; - FieldSystem *fieldSystem = param0->fieldSystem; - u16 v9 = ScriptContext_GetVar(param0); + FieldSystem *fieldSystem = ctx->fieldSystem; + u16 approachNum = ScriptContext_GetVar(ctx); - if (v9 == 0) { - v0 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_0_SIGHT_RANGE); - v4 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_0_DIRECTION); - v1 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_0_SCRIPT_ID); - v2 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_0_ID); + if (approachNum == 0) { + sightRange = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_0_SIGHT_RANGE); + direction = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_0_DIRECTION); + scriptID = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_0_SCRIPT_ID); + trainerID = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_0_ID); v3 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_0_TYPE); - v6 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_0_MAP_OBJECT); - v5 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_0_TASK); + mapObj = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_0_MAP_OBJECT); + task = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_0_TASK); } else { - v0 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_1_SIGHT_RANGE); - v4 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_1_DIRECTION); - v1 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_1_SCRIPT_ID); - v2 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_1_ID); + sightRange = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_1_SIGHT_RANGE); + direction = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_1_DIRECTION); + scriptID = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_1_SCRIPT_ID); + trainerID = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_1_ID); v3 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_1_TYPE); - v6 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_1_MAP_OBJECT); - v5 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_1_TASK); + mapObj = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_1_MAP_OBJECT); + task = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TRAINER_1_TASK); } playerAvatar = fieldSystem->playerAvatar; - *v5 = sub_02067FB8(fieldSystem, *v6, playerAvatar, *v4, *v0, 0, *v3, v9); + *task = sub_02067FB8(fieldSystem, *mapObj, playerAvatar, *direction, *sightRange, 0, *v3, approachNum); - return 0; + return FALSE; } -BOOL ScrCmd_0B7(ScriptContext *param0) +BOOL ScrCmd_CheckIsApproachingTrainerTaskDone(ScriptContext *ctx) { - SysTask **v0; - u16 v1 = ScriptContext_GetVar(param0); - u16 *v2 = ScriptContext_GetVarPointer(param0); + SysTask **task; + u16 approachNum = ScriptContext_GetVar(ctx); + u16 *destVar = ScriptContext_GetVarPointer(ctx); - *v2 = 0; + *destVar = FALSE; - if (v1 == 0) { - v0 = FieldSystem_GetScriptMemberPtr(param0->fieldSystem, SCRIPT_MANAGER_TRAINER_0_TASK); + if (approachNum == 0) { + task = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, SCRIPT_MANAGER_TRAINER_0_TASK); } else { - v0 = FieldSystem_GetScriptMemberPtr(param0->fieldSystem, SCRIPT_MANAGER_TRAINER_1_TASK); + task = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, SCRIPT_MANAGER_TRAINER_1_TASK); } - if (*v0 == NULL) { - *v2 = 1; - return 1; + if (*task == NULL) { + *destVar = TRUE; + return TRUE; } - if (sub_02067FD4(*v0) == 1) { - sub_02067FE8(*v0); - *v0 = NULL; - *v2 = 1; + if (sub_02067FD4(*task) == 1) { + sub_02067FE8(*task); + *task = NULL; + *destVar = TRUE; } - return 1; + return TRUE; } -BOOL ScrCmd_0B8(ScriptContext *param0) +BOOL ScrCmd_0B8(ScriptContext *ctx) { - u16 *v0 = FieldSystem_GetScriptMemberPtr(param0->fieldSystem, SCRIPT_MANAGER_TRAINER_0_TYPE); - u16 *v1 = ScriptContext_GetVarPointer(param0); + u16 *v0 = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, SCRIPT_MANAGER_TRAINER_0_TYPE); + u16 *destVar = ScriptContext_GetVarPointer(ctx); - *v1 = *v0; - return 0; + *destVar = *v0; + return FALSE; } -BOOL ScrCmd_0B9(ScriptContext *param0) +BOOL ScrCmd_GetApproachingTrainerID(ScriptContext *ctx) { - u16 *v0 = FieldSystem_GetScriptMemberPtr(param0->fieldSystem, SCRIPT_MANAGER_TRAINER_0_ID); - u16 *v1 = FieldSystem_GetScriptMemberPtr(param0->fieldSystem, SCRIPT_MANAGER_TRAINER_1_ID); - u16 v2 = ScriptContext_GetVar(param0); - u16 *v3 = ScriptContext_GetVarPointer(param0); + u16 *trainer0ID = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, SCRIPT_MANAGER_TRAINER_0_ID); + u16 *trainer1ID = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, SCRIPT_MANAGER_TRAINER_1_ID); + u16 approachNum = ScriptContext_GetVar(ctx); + u16 *destVar = ScriptContext_GetVarPointer(ctx); - *v3 = (v2 == 0) ? (*v0) : (*v1); - return 0; + *destVar = approachNum == 0 ? *trainer0ID : *trainer1ID; + return FALSE; } BOOL ScrCmd_GetTrainerID(ScriptContext *ctx) @@ -128,7 +128,7 @@ BOOL ScrCmd_StartTrainerBattle(ScriptContext *ctx) int *battleResultMaskPtr = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_BATTLE_RESULT); u16 enemyTrainer1 = ScriptContext_GetVar(ctx); u16 enemyTrainer2 = ScriptContext_GetVar(ctx); - u16 partnerTrainer = 0; + u16 partnerTrainer = TRAINER_NONE; if (SystemFlag_CheckHasPartner(SaveData_GetVarsFlags(ctx->fieldSystem->saveData)) == TRUE) { partnerTrainer = SystemVars_GetPartnerTrainerID(SaveData_GetVarsFlags(fieldSystem->saveData)); @@ -288,49 +288,49 @@ BOOL ScrCmd_CheckHasTwoAliveMons(ScriptContext *ctx) return FALSE; } -BOOL ScrCmd_StartDummyTrainerBattle(ScriptContext *param0) +BOOL ScrCmd_StartDummyTrainerBattle(ScriptContext *ctx) { - FieldSystem *fieldSystem = param0->fieldSystem; + FieldSystem *fieldSystem = ctx->fieldSystem; int *battleResultMaskPtr = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_BATTLE_RESULT); - Encounter_NewVsTrainer(param0->task, 1, 0, 0, HEAP_ID_FIELDMAP, battleResultMaskPtr); + Encounter_NewVsTrainer(ctx->task, TRAINER_YOUNGSTER_TRISTAN, TRAINER_NONE, TRAINER_NONE, HEAP_ID_FIELDMAP, battleResultMaskPtr); return TRUE; } -BOOL ScrCmd_0F0(ScriptContext *param0) +BOOL ScrCmd_SetTargetTrainerDefeated(ScriptContext *ctx) { - MapObject **v0; - FieldSystem *fieldSystem = param0->fieldSystem; + MapObject **mapObj; + FieldSystem *fieldSystem = ctx->fieldSystem; - v0 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TARGET_OBJECT); - Script_SetTrainerDefeated(MapObject_FieldSystem(*v0), MapObject_GetLocalID(*v0)); + mapObj = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TARGET_OBJECT); + Script_SetTrainerDefeated(MapObject_FieldSystem(*mapObj), MapObject_GetLocalID(*mapObj)); - return 0; + return FALSE; } -BOOL ScrCmd_0F1(ScriptContext *param0) +BOOL ScrCmd_GoToIfTargetTrainerDefeated(ScriptContext *ctx) { - int v0; - s32 v1; - MapObject **v2; - FieldSystem *fieldSystem = param0->fieldSystem; + int isTrainerDefeated; + s32 offset; + MapObject **mapObj; + FieldSystem *fieldSystem = ctx->fieldSystem; - v2 = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TARGET_OBJECT); - v1 = (s32)ScriptContext_ReadWord(param0); - v0 = Script_IsTrainerDefeated(MapObject_FieldSystem(*v2), MapObject_GetLocalID(*v2)); + mapObj = FieldSystem_GetScriptMemberPtr(fieldSystem, SCRIPT_MANAGER_TARGET_OBJECT); + offset = (s32)ScriptContext_ReadWord(ctx); + isTrainerDefeated = Script_IsTrainerDefeated(MapObject_FieldSystem(*mapObj), MapObject_GetLocalID(*mapObj)); - if (v0 == 1) { - ScriptContext_Jump(param0, (u8 *)(param0->scriptPtr + v1)); - return 1; + if (isTrainerDefeated == TRUE) { + ScriptContext_Jump(ctx, (u8 *)(ctx->scriptPtr + offset)); + return TRUE; } - return 0; + return FALSE; } -BOOL ScrCmd_314(ScriptContext *param0) +BOOL ScrCmd_GetBattleResult(ScriptContext *ctx) { - BOOL *v0 = FieldSystem_GetScriptMemberPtr(param0->fieldSystem, SCRIPT_MANAGER_BATTLE_RESULT); - u16 *v1 = ScriptContext_GetVarPointer(param0); + BOOL *battleResult = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, SCRIPT_MANAGER_BATTLE_RESULT); + u16 *destVar = ScriptContext_GetVarPointer(ctx); - *v1 = *v0; - return 1; + *destVar = *battleResult; + return TRUE; } diff --git a/src/script_manager.c b/src/script_manager.c index 40d9b9ee55..5080e2901a 100644 --- a/src/script_manager.c +++ b/src/script_manager.c @@ -51,7 +51,7 @@ void ScriptManager_Set(FieldSystem *fieldSystem, u16 scriptID, MapObject *object FieldSystem_CreateTask(fieldSystem, FieldTask_RunScript, scriptManager); } -void ScriptManager_SetApproachingTrainer(FieldSystem *fieldSystem, MapObject *object, int sightRange, int direction, int scriptID, int trainerID, int trainerType, int approachNum) +void ScriptManager_SetApproachingTrainer(FieldSystem *fieldSystem, MapObject *object, int sightRange, int direction, int scriptID, int trainerID, int param6, int approachNum) { ScriptManager *scriptManager = FieldTask_GetEnv(fieldSystem->task); ApproachingTrainer *trainer = &scriptManager->trainers[approachNum]; @@ -60,7 +60,7 @@ void ScriptManager_SetApproachingTrainer(FieldSystem *fieldSystem, MapObject *ob trainer->direction = direction; trainer->scriptID = scriptID; trainer->trainerID = trainerID; - trainer->trainerType = trainerType; + trainer->unk_10 = param6; trainer->object = object; } @@ -377,7 +377,7 @@ void *ScriptManager_GetMemberPtr(ScriptManager *scriptManager, u32 member) return &trainer->trainerID; case SCRIPT_MANAGER_TRAINER_0_TYPE: trainer = &scriptManager->trainers[0]; - return &trainer->trainerType; + return &trainer->unk_10; case SCRIPT_MANAGER_TRAINER_0_MAP_OBJECT: trainer = &scriptManager->trainers[0]; return &trainer->object; @@ -398,7 +398,7 @@ void *ScriptManager_GetMemberPtr(ScriptManager *scriptManager, u32 member) return &trainer->trainerID; case SCRIPT_MANAGER_TRAINER_1_TYPE: trainer = &scriptManager->trainers[1]; - return &trainer->trainerType; + return &trainer->unk_10; case SCRIPT_MANAGER_TRAINER_1_MAP_OBJECT: trainer = &scriptManager->trainers[1]; return &trainer->object; diff --git a/src/unk_02067A84.c b/src/unk_02067A84.c index 343f2124c2..9b940acc26 100644 --- a/src/unk_02067A84.c +++ b/src/unk_02067A84.c @@ -40,14 +40,14 @@ typedef struct { typedef struct { int unk_00; int unk_04; - int unk_08; - int unk_0C; + int direction; + int sightRange; int unk_10; int unk_14; - int unk_18; + int approachNum; int unk_1C; UnkStruct_ov101_021D5D90 *unk_20; - MapObject *unk_24; + MapObject *mapObj; PlayerAvatar *playerAvatar; FieldSystem *fieldSystem; } UnkStruct_020EF6D0; @@ -395,9 +395,9 @@ int sub_02067F88(FieldSystem *fieldSystem, MapObject *param1) return 0; } -SysTask *sub_02067FB8(FieldSystem *fieldSystem, MapObject *param1, PlayerAvatar *playerAvatar, int param3, int param4, int param5, int param6, int param7) +SysTask *sub_02067FB8(FieldSystem *fieldSystem, MapObject *mapObj, PlayerAvatar *playerAvatar, int direction, int sightRange, int param5, int param6, int approachNum) { - return sub_02067FF0(fieldSystem, param1, playerAvatar, param3, param4, param5, param6, param7); + return sub_02067FF0(fieldSystem, mapObj, playerAvatar, direction, sightRange, param5, param6, approachNum); } int sub_02067FD4(SysTask *task) @@ -411,27 +411,27 @@ void sub_02067FE8(SysTask *task) sub_02068054(task); } -static SysTask *sub_02067FF0(FieldSystem *fieldSystem, MapObject *param1, PlayerAvatar *playerAvatar, int param3, int param4, int param5, int param6, int param7) +static SysTask *sub_02067FF0(FieldSystem *fieldSystem, MapObject *mapObj, PlayerAvatar *playerAvatar, int direction, int sightRange, int param5, int param6, int approachNum) { - SysTask *v0; + SysTask *task; UnkStruct_020EF6D0 *v1 = Heap_AllocFromHeapAtEnd(HEAP_ID_FIELD, (sizeof(UnkStruct_020EF6D0))); GF_ASSERT(v1 != NULL); memset(v1, 0, (sizeof(UnkStruct_020EF6D0))); - v1->unk_08 = param3; - v1->unk_0C = param4; + v1->direction = direction; + v1->sightRange = sightRange; v1->unk_10 = param5; v1->unk_14 = param6; - v1->unk_18 = param7; + v1->approachNum = approachNum; v1->fieldSystem = fieldSystem; - v1->unk_24 = param1; + v1->mapObj = mapObj; v1->playerAvatar = playerAvatar; - v0 = SysTask_Start(sub_0206806C, v1, 0xff); - GF_ASSERT(v0 != NULL); + task = SysTask_Start(sub_0206806C, v1, 0xff); + GF_ASSERT(task != NULL); - return v0; + return task; } static int sub_02068048(SysTask *task) @@ -459,7 +459,7 @@ static void sub_0206806C(SysTask *task, void *param1) static int sub_02068088(UnkStruct_020EF6D0 *param0) { - MapObject *v0 = param0->unk_24; + MapObject *v0 = param0->mapObj; if (MapObject_IsMoving(v0) == 1) { MapObject_SetPauseMovementOff(v0); @@ -471,13 +471,13 @@ static int sub_02068088(UnkStruct_020EF6D0 *param0) static int sub_020680A4(UnkStruct_020EF6D0 *param0) { - MapObject *v0 = param0->unk_24; + MapObject *v0 = param0->mapObj; if (MapObject_IsMoving(v0) == 1) { return 0; } - ov5_021ECDFC(param0->unk_24, param0->unk_08); + ov5_021ECDFC(param0->mapObj, param0->direction); MapObject_SetStatusFlagOn(v0, MAP_OBJ_STATUS_PAUSE_MOVEMENT); param0->unk_00 = 2; @@ -493,7 +493,7 @@ static int sub_020680D0(UnkStruct_020EF6D0 *param0) } { - u32 v1 = MapObject_GetMovementType(param0->unk_24); + u32 v1 = MapObject_GetMovementType(param0->mapObj); switch (v1) { case 0x33: @@ -513,14 +513,14 @@ static int sub_02068118(UnkStruct_020EF6D0 *param0) { int v0; - if (LocalMapObj_IsAnimationSet(param0->unk_24) == 0) { + if (LocalMapObj_IsAnimationSet(param0->mapObj) == 0) { return 0; } - GF_ASSERT(param0->unk_08 != -1); + GF_ASSERT(param0->direction != -1); - v0 = MovementAction_TurnActionTowardsDir(param0->unk_08, MOVEMENT_ACTION_FACE_NORTH); - LocalMapObj_SetAnimationCode(param0->unk_24, v0); + v0 = MovementAction_TurnActionTowardsDir(param0->direction, MOVEMENT_ACTION_FACE_NORTH); + LocalMapObj_SetAnimationCode(param0->mapObj, v0); param0->unk_00 = 4; return 0; @@ -528,7 +528,7 @@ static int sub_02068118(UnkStruct_020EF6D0 *param0) static int sub_02068150(UnkStruct_020EF6D0 *param0) { - if (LocalMapObj_CheckAnimationFinished(param0->unk_24) == 0) { + if (LocalMapObj_CheckAnimationFinished(param0->mapObj) == 0) { return 0; } @@ -538,7 +538,7 @@ static int sub_02068150(UnkStruct_020EF6D0 *param0) static int sub_0206816C(UnkStruct_020EF6D0 *param0) { - param0->unk_20 = ov5_021F5D8C(param0->unk_24, 0, 0, 0); + param0->unk_20 = ov5_021F5D8C(param0->mapObj, 0, 0, 0); param0->unk_00 = 6; return 0; @@ -556,7 +556,7 @@ static int sub_02068188(UnkStruct_020EF6D0 *param0) static int sub_020681A4(UnkStruct_020EF6D0 *param0) { - LocalMapObj_SetAnimationCode(param0->unk_24, MOVEMENT_ACTION_REVEAL_TRAINER); + LocalMapObj_SetAnimationCode(param0->mapObj, MOVEMENT_ACTION_REVEAL_TRAINER); param0->unk_00 = 8; return 0; @@ -564,7 +564,7 @@ static int sub_020681A4(UnkStruct_020EF6D0 *param0) static int sub_020681B8(UnkStruct_020EF6D0 *param0) { - if (LocalMapObj_CheckAnimationFinished(param0->unk_24) == 1) { + if (LocalMapObj_CheckAnimationFinished(param0->mapObj) == 1) { param0->unk_00 = 9; } @@ -585,7 +585,7 @@ static int sub_020681D0(UnkStruct_020EF6D0 *param0) static int sub_020681E8(UnkStruct_020EF6D0 *param0) { - if (param0->unk_0C <= 1) { + if (param0->sightRange <= 1) { param0->unk_00 = 13; return 1; } @@ -598,9 +598,9 @@ static int sub_02068200(UnkStruct_020EF6D0 *param0) { int v0; - if (LocalMapObj_IsAnimationSet(param0->unk_24) == 1) { - v0 = MovementAction_TurnActionTowardsDir(param0->unk_08, MOVEMENT_ACTION_WALK_NORMAL_NORTH); - LocalMapObj_SetAnimationCode(param0->unk_24, v0); + if (LocalMapObj_IsAnimationSet(param0->mapObj) == 1) { + v0 = MovementAction_TurnActionTowardsDir(param0->direction, MOVEMENT_ACTION_WALK_NORMAL_NORTH); + LocalMapObj_SetAnimationCode(param0->mapObj, v0); param0->unk_00 = 12; } @@ -609,11 +609,11 @@ static int sub_02068200(UnkStruct_020EF6D0 *param0) static int sub_02068228(UnkStruct_020EF6D0 *param0) { - if (LocalMapObj_CheckAnimationFinished(param0->unk_24) == 0) { + if (LocalMapObj_CheckAnimationFinished(param0->mapObj) == 0) { return 0; } - param0->unk_0C--; + param0->sightRange--; param0->unk_00 = 10; return 1; @@ -637,9 +637,9 @@ static int sub_02068264(UnkStruct_020EF6D0 *param0) { int v0, v1; MapObject *v2 = Player_MapObject(param0->playerAvatar); - v1 = sub_02064488(MapObject_GetX(v2), MapObject_GetZ(v2), MapObject_GetX(param0->unk_24), MapObject_GetZ(param0->unk_24)); + v1 = sub_02064488(MapObject_GetX(v2), MapObject_GetZ(v2), MapObject_GetX(param0->mapObj), MapObject_GetZ(param0->mapObj)); - if ((PlayerAvatar_GetDir(param0->playerAvatar) != v1) && ((param0->unk_18 == 0) || (param0->unk_14 == 2))) { + if ((PlayerAvatar_GetDir(param0->playerAvatar) != v1) && ((param0->approachNum == 0) || (param0->unk_14 == 2))) { if (LocalMapObj_IsAnimationSet(v2) == 1) { MapObject_SetStatusFlagOff(v2, MAP_OBJ_STATUS_LOCK_DIR); v0 = MovementAction_TurnActionTowardsDir(v1, MOVEMENT_ACTION_FACE_NORTH); @@ -669,10 +669,10 @@ static int sub_020682E0(UnkStruct_020EF6D0 *param0) static int sub_02068308(UnkStruct_020EF6D0 *param0) { - sub_020656AC(param0->unk_24); + sub_020656AC(param0->mapObj); - if ((PersistedMapFeatures_IsCurrentDynamicMap(param0->fieldSystem, DYNAMIC_MAP_FEATURES_HEARTHOME_GYM) == 0) || (ov8_0224C5DC(param0->fieldSystem, param0->unk_24) == 0)) { - MapObject_SetMoveCode(param0->unk_24, MOVEMENT_TYPE_NONE); + if ((PersistedMapFeatures_IsCurrentDynamicMap(param0->fieldSystem, DYNAMIC_MAP_FEATURES_HEARTHOME_GYM) == 0) || (ov8_0224C5DC(param0->fieldSystem, param0->mapObj) == 0)) { + MapObject_SetMoveCode(param0->mapObj, MOVEMENT_TYPE_NONE); } param0->unk_00 = 17;