mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-03-21 17:55:13 -05:00
Document unk_02048614.c, renamed to scrcmd_trainer.c (#685)
Co-authored-by: Eduardo Quezada <eduardo602002@gmail.com> Co-authored-by: notmyname <notanemail@gmail.com>
This commit is contained in:
parent
4dbc761167
commit
acd2b1dca3
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ typedef struct ApproachingTrainer {
|
|||
int direction;
|
||||
int scriptID;
|
||||
int trainerID;
|
||||
int trainerType;
|
||||
int unk_10;
|
||||
MapObject *object;
|
||||
SysTask *task;
|
||||
} ApproachingTrainer;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
10
src/scrcmd.c
10
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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user