Skip to content

Commit

Permalink
SCRIPTENV_ENGAGED_TRAINER
Browse files Browse the repository at this point in the history
  • Loading branch information
red031000 committed May 25, 2023
1 parent 334d539 commit f789d18
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 60 deletions.
2 changes: 1 addition & 1 deletion include/fieldmap.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ typedef struct HiddenItemResponse {
} HiddenItemResponse;

void StartMapSceneScript(FieldSystem *fsys, u16 script, LocalMapObject *lastTalked);
void FieldSys_SetEngagedTrainer(FieldSystem *fsys, LocalMapObject *obj, int a2, int a3, int a4, int trainerNum, int encounterType, int idx);
void FieldSys_SetEngagedTrainer(FieldSystem *fsys, LocalMapObject *obj, int a2, int a3, int a4, int trainerId, int encounterType, int idx);
void QueueScript(TaskManager *taskman, u16 script, LocalMapObject *lastTalked, void *a3);
void StartScriptFromMenu(TaskManager *taskman, u16 script, LocalMapObject *lastTalked);
BOOL Task_RunScripts(TaskManager *taskman);
Expand Down
32 changes: 16 additions & 16 deletions include/script.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ typedef struct EngagedTrainer {
int unk0;
int unk4;
int unk8;
int trainerNum;
int trainerId;
int encounterType; // 0: single trainer; 1: double-battle trainer; 2: two trainers
LocalMapObject *objectEvent;
LocalMapObject *overworldEvent;
int unk18;
} EngagedTrainer;

Expand Down Expand Up @@ -103,20 +103,20 @@ typedef enum ScriptEnvField {
SCRIPTENV_FIELD_B4,
SCRIPTENV_FIELD_B8,
SCRIPTENV_BATTLE_WIN_FLAG,
SCRIPTENV_54_0_00 = 25,
SCRIPTENV_54_0_04 = 26,
SCRIPTENV_54_0_08 = 27,
SCRIPTENV_EYE_TRAINER_1_NUM = 28,
SCRIPTENV_EYE_TRAINER_1_ENCTYPE = 29,
SCRIPTENV_EYE_TRAINER_1_OBJPTR = 30,
SCRIPTENV_54_0_18 = 31,
SCRIPTENV_54_1_00 = 32,
SCRIPTENV_54_1_04 = 33,
SCRIPTENV_54_1_08 = 34,
SCRIPTENV_EYE_TRAINER_2_NUM = 35,
SCRIPTENV_EYE_TRAINER_2_ENCTYPE = 36,
SCRIPTENV_EYE_TRAINER_2_OBJPTR = 37,
SCRIPTENV_54_1_18 = 38,
SCRIPTENV_ENGAGED_TRAINER_0_FIELD_00,
SCRIPTENV_ENGAGED_TRAINER_0_FIELD_04,
SCRIPTENV_ENGAGED_TRAINER_0_FIELD_08,
SCRIPTENV_ENGAGED_TRAINER_0_ID,
SCRIPTENV_ENGAGED_TRAINER_0_ENCOUNTER_TYPE,
SCRIPTENV_ENGAGED_TRAINER_0_EVENT,
SCRIPTENV_ENGAGED_TRAINER_0_FIELD_18,
SCRIPTENV_ENGAGED_TRAINER_1_FIELD_00,
SCRIPTENV_ENGAGED_TRAINER_1_FIELD_04,
SCRIPTENV_ENGAGED_TRAINER_1_FIELD_08,
SCRIPTENV_ENGAGED_TRAINER_1_ID,
SCRIPTENV_ENGAGED_TRAINER_1_ENCOUNTER_TYPE,
SCRIPTENV_ENGAGED_TRAINER_1_EVENT,
SCRIPTENV_ENGAGED_TRAINER_1_FIELD_18,
SCRIPTENV_BC = 39,
SCRIPTENV_MONEY_BOX = 40,
SCRIPTENV_DC = 41,
Expand Down
42 changes: 21 additions & 21 deletions src/fieldmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,15 +65,15 @@ void StartMapSceneScript(FieldSystem *fsys, u16 script, LocalMapObject *lastInte
FieldSys_CreateTask(fsys, Task_RunScripts, r4);
}

void FieldSys_SetEngagedTrainer(FieldSystem *fsys, LocalMapObject *obj, int a2, int a3, int a4, int trainerNum, int encounterType, int idx) {
void FieldSys_SetEngagedTrainer(FieldSystem *fsys, LocalMapObject *obj, int a2, int a3, int a4, int trainerId, int encounterType, int idx) {
ScriptEnvironment *env = TaskManager_GetEnv(fsys->taskman);
EngagedTrainer *r0 = &env->engagedTrainers[idx];
r0->unk0 = a2;
r0->unk4 = a3;
r0->unk8 = a4;
r0->trainerNum = trainerNum;
r0->trainerId = trainerId;
r0->encounterType = encounterType;
r0->objectEvent = obj;
r0->overworldEvent = obj;
}

void QueueScript(TaskManager *taskman, u16 script, LocalMapObject *lastInteracted, void *a3) {
Expand Down Expand Up @@ -265,33 +265,33 @@ void *FieldSysGetAttrAddrInternal(ScriptEnvironment *environment, enum ScriptEnv
return &environment->unk_B8;
case SCRIPTENV_BATTLE_WIN_FLAG:
return &environment->battleWinFlag;
case SCRIPTENV_54_0_00:
case SCRIPTENV_ENGAGED_TRAINER_0_FIELD_00:
return &environment->engagedTrainers[0].unk0;
case SCRIPTENV_54_0_04:
case SCRIPTENV_ENGAGED_TRAINER_0_FIELD_04:
return &environment->engagedTrainers[0].unk4;
case SCRIPTENV_54_0_08:
case SCRIPTENV_ENGAGED_TRAINER_0_FIELD_08:
return &environment->engagedTrainers[0].unk8;
case SCRIPTENV_EYE_TRAINER_1_NUM:
return &environment->engagedTrainers[0].trainerNum;
case SCRIPTENV_EYE_TRAINER_1_ENCTYPE:
case SCRIPTENV_ENGAGED_TRAINER_0_ID:
return &environment->engagedTrainers[0].trainerId;
case SCRIPTENV_ENGAGED_TRAINER_0_ENCOUNTER_TYPE:
return &environment->engagedTrainers[0].encounterType;
case SCRIPTENV_EYE_TRAINER_1_OBJPTR:
return &environment->engagedTrainers[0].objectEvent;
case SCRIPTENV_54_0_18:
case SCRIPTENV_ENGAGED_TRAINER_0_EVENT:
return &environment->engagedTrainers[0].overworldEvent;
case SCRIPTENV_ENGAGED_TRAINER_0_FIELD_18:
return &environment->engagedTrainers[0].unk18;
case SCRIPTENV_54_1_00:
case SCRIPTENV_ENGAGED_TRAINER_1_FIELD_00:
return &environment->engagedTrainers[1].unk0;
case SCRIPTENV_54_1_04:
case SCRIPTENV_ENGAGED_TRAINER_1_FIELD_04:
return &environment->engagedTrainers[1].unk4;
case SCRIPTENV_54_1_08:
case SCRIPTENV_ENGAGED_TRAINER_1_FIELD_08:
return &environment->engagedTrainers[1].unk8;
case SCRIPTENV_EYE_TRAINER_2_NUM:
return &environment->engagedTrainers[1].trainerNum;
case SCRIPTENV_EYE_TRAINER_2_ENCTYPE:
case SCRIPTENV_ENGAGED_TRAINER_1_ID:
return &environment->engagedTrainers[1].trainerId;
case SCRIPTENV_ENGAGED_TRAINER_1_ENCOUNTER_TYPE:
return &environment->engagedTrainers[1].encounterType;
case SCRIPTENV_EYE_TRAINER_2_OBJPTR:
return &environment->engagedTrainers[1].objectEvent;
case SCRIPTENV_54_1_18:
case SCRIPTENV_ENGAGED_TRAINER_1_EVENT:
return &environment->engagedTrainers[1].overworldEvent;
case SCRIPTENV_ENGAGED_TRAINER_1_FIELD_18:
return &environment->engagedTrainers[1].unk18;
case SCRIPTENV_BC:
return &environment->unk_BC;
Expand Down
44 changes: 22 additions & 22 deletions src/scrcmd_battle.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,21 @@ BOOL ScrCmd_GetTrainerPathToPlayer(SCRIPTCONTEXT *ctx) {

u16 trainerNum = ScriptGetVar(ctx);
if (trainerNum == 0) {
sp18 = FieldSysGetAttrAddr(fsys, SCRIPTENV_54_0_00);
sp10 = FieldSysGetAttrAddr(fsys, SCRIPTENV_54_0_04);
FieldSysGetAttrAddr(fsys, SCRIPTENV_54_0_08);
FieldSysGetAttrAddr(fsys, SCRIPTENV_EYE_TRAINER_1_NUM);
encounterType = FieldSysGetAttrAddr(fsys, SCRIPTENV_EYE_TRAINER_1_ENCTYPE);
localMapObject = FieldSysGetAttrAddr(fsys, SCRIPTENV_EYE_TRAINER_1_OBJPTR);
r7 = FieldSysGetAttrAddr(fsys, SCRIPTENV_54_0_18);
sp18 = FieldSysGetAttrAddr(fsys, SCRIPTENV_ENGAGED_TRAINER_0_FIELD_00);
sp10 = FieldSysGetAttrAddr(fsys, SCRIPTENV_ENGAGED_TRAINER_0_FIELD_04);
FieldSysGetAttrAddr(fsys, SCRIPTENV_ENGAGED_TRAINER_0_FIELD_08);
FieldSysGetAttrAddr(fsys, SCRIPTENV_ENGAGED_TRAINER_0_ID);
encounterType = FieldSysGetAttrAddr(fsys, SCRIPTENV_ENGAGED_TRAINER_0_ENCOUNTER_TYPE);
localMapObject = FieldSysGetAttrAddr(fsys, SCRIPTENV_ENGAGED_TRAINER_0_EVENT);
r7 = FieldSysGetAttrAddr(fsys, SCRIPTENV_ENGAGED_TRAINER_0_FIELD_18);
} else {
sp18 = FieldSysGetAttrAddr(fsys, SCRIPTENV_54_1_00);
sp10 = FieldSysGetAttrAddr(fsys, SCRIPTENV_54_1_04);
FieldSysGetAttrAddr(fsys, SCRIPTENV_54_1_08);
FieldSysGetAttrAddr(fsys, SCRIPTENV_EYE_TRAINER_2_NUM);
encounterType = FieldSysGetAttrAddr(fsys, SCRIPTENV_EYE_TRAINER_2_ENCTYPE);
localMapObject = FieldSysGetAttrAddr(fsys, SCRIPTENV_EYE_TRAINER_2_OBJPTR);
r7 = FieldSysGetAttrAddr(fsys, SCRIPTENV_54_1_18);
sp18 = FieldSysGetAttrAddr(fsys, SCRIPTENV_ENGAGED_TRAINER_1_FIELD_00);
sp10 = FieldSysGetAttrAddr(fsys, SCRIPTENV_ENGAGED_TRAINER_1_FIELD_04);
FieldSysGetAttrAddr(fsys, SCRIPTENV_ENGAGED_TRAINER_1_FIELD_08);
FieldSysGetAttrAddr(fsys, SCRIPTENV_ENGAGED_TRAINER_1_ID);
encounterType = FieldSysGetAttrAddr(fsys, SCRIPTENV_ENGAGED_TRAINER_1_ENCOUNTER_TYPE);
localMapObject = FieldSysGetAttrAddr(fsys, SCRIPTENV_ENGAGED_TRAINER_1_EVENT);
r7 = FieldSysGetAttrAddr(fsys, SCRIPTENV_ENGAGED_TRAINER_1_FIELD_18);
}

*r7 = sub_0206457C(fsys, *localMapObject, fsys->playerAvatar, *sp10, *sp18, 0, *encounterType, trainerNum);
Expand All @@ -47,9 +47,9 @@ BOOL ScrCmd_TrainerStepTowardsPlayer(SCRIPTCONTEXT *ctx) {

*var1 = 0;
if (trainerNum == 0) {
r5 = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_54_0_18);
r5 = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_ENGAGED_TRAINER_0_FIELD_18);
} else {
r5 = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_54_1_18);
r5 = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_ENGAGED_TRAINER_1_FIELD_18);
}

if (*r5 == 0) {
Expand All @@ -67,22 +67,22 @@ BOOL ScrCmd_TrainerStepTowardsPlayer(SCRIPTCONTEXT *ctx) {
}

BOOL ScrCmd_GetTrainerEyeType(SCRIPTCONTEXT *ctx) {
u16 *encounterType = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_EYE_TRAINER_1_ENCTYPE);
u16 *encounterType = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_ENGAGED_TRAINER_0_ENCOUNTER_TYPE);
u16 *retEncounterType = ScriptGetVarPointer(ctx);
*retEncounterType = *encounterType;
return FALSE;
}

BOOL ScrCmd_GetEyeTrainerNum(SCRIPTCONTEXT *ctx) {
u16 *trainerNum1 = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_EYE_TRAINER_1_NUM);
u16 *trainerNum2 = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_EYE_TRAINER_2_NUM);
u16 *trainerId0 = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_ENGAGED_TRAINER_0_ID);
u16 *trainerId1 = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_ENGAGED_TRAINER_1_ID);
u16 trainerNum = ScriptGetVar(ctx);
u16 *retTrainerNum = ScriptGetVarPointer(ctx);
u16 *retTrainerId = ScriptGetVarPointer(ctx);

if (trainerNum == 0) {
*retTrainerNum = *trainerNum1;
*retTrainerId = *trainerId0;
} else {
*retTrainerNum = *trainerNum2;
*retTrainerId = *trainerId1;
}

return FALSE;
Expand Down

0 comments on commit f789d18

Please sign in to comment.