From f789d18da7ce60dd7eb8b9b64f77e437276cc48a Mon Sep 17 00:00:00 2001 From: Akashi Akira Date: Thu, 25 May 2023 07:20:07 +0100 Subject: [PATCH 1/4] SCRIPTENV_ENGAGED_TRAINER --- include/fieldmap.h | 2 +- include/script.h | 32 ++++++++++++++++---------------- src/fieldmap.c | 42 +++++++++++++++++++++--------------------- src/scrcmd_battle.c | 44 ++++++++++++++++++++++---------------------- 4 files changed, 60 insertions(+), 60 deletions(-) diff --git a/include/fieldmap.h b/include/fieldmap.h index 0d19efeb0..0be0649a1 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -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); diff --git a/include/script.h b/include/script.h index 8ec1064fc..a61764665 100644 --- a/include/script.h +++ b/include/script.h @@ -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; @@ -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, diff --git a/src/fieldmap.c b/src/fieldmap.c index 8fa53582d..e5bd80276 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -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) { @@ -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; diff --git a/src/scrcmd_battle.c b/src/scrcmd_battle.c index 9120b48af..3e480c040 100644 --- a/src/scrcmd_battle.c +++ b/src/scrcmd_battle.c @@ -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); @@ -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) { @@ -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; From 21d3de7e5d68e4b1876446c8c845fb0d69ebb56c Mon Sep 17 00:00:00 2001 From: Akashi Akira Date: Thu, 25 May 2023 08:33:09 +0100 Subject: [PATCH 2/4] SCRIPTENV_POINTS_BOX --- include/script.h | 5 +++-- include/trainer_data.h | 1 + src/fieldmap.c | 4 ++-- src/overlay_22.c | 6 +++--- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/include/script.h b/include/script.h index a61764665..f1f9c3b8b 100644 --- a/include/script.h +++ b/include/script.h @@ -72,7 +72,8 @@ typedef struct ScriptEnvironment { void *miscDataPtr; void *unk_B4; void *unk_B8; //PlayerMovementState - WINDOW unk_BC; + WINDOW *pointsBox; + u8 padding[0xC]; //FIXME: ugly hack WINDOW moneyBox; struct SaveStatsPrinter *unk_DC; } ScriptEnvironment; @@ -117,7 +118,7 @@ typedef enum ScriptEnvField { SCRIPTENV_ENGAGED_TRAINER_1_ENCOUNTER_TYPE, SCRIPTENV_ENGAGED_TRAINER_1_EVENT, SCRIPTENV_ENGAGED_TRAINER_1_FIELD_18, - SCRIPTENV_BC = 39, + SCRIPTENV_POINTS_BOX, //differs from diamond due to athlete points SCRIPTENV_MONEY_BOX = 40, SCRIPTENV_DC = 41, SCRIPTENV_SPECIAL_VAR_8000 = 42, diff --git a/include/trainer_data.h b/include/trainer_data.h index 77987b15a..2b8de8acf 100644 --- a/include/trainer_data.h +++ b/include/trainer_data.h @@ -9,6 +9,7 @@ #include "pm_string.h" #include "mail_message.h" #include "pokemon_types_def.h" +#include "global.h" typedef enum TrainerAttr { TRATTR_TYPE, diff --git a/src/fieldmap.c b/src/fieldmap.c index e5bd80276..d00f25621 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -293,8 +293,8 @@ void *FieldSysGetAttrAddrInternal(ScriptEnvironment *environment, enum ScriptEnv return &environment->engagedTrainers[1].overworldEvent; case SCRIPTENV_ENGAGED_TRAINER_1_FIELD_18: return &environment->engagedTrainers[1].unk18; - case SCRIPTENV_BC: - return &environment->unk_BC; + case SCRIPTENV_POINTS_BOX: + return &environment->pointsBox; case SCRIPTENV_MONEY_BOX: return &environment->moneyBox; case SCRIPTENV_DC: diff --git a/src/overlay_22.c b/src/overlay_22.c index 0db0feee4..8b05c3c82 100644 --- a/src/overlay_22.c +++ b/src/overlay_22.c @@ -10,20 +10,20 @@ BOOL ScrCmd_116(SCRIPTCONTEXT *ctx) { u8 type = ScriptReadByte(ctx); u16 x = ScriptGetVar(ctx); u16 y = ScriptGetVar(ctx); - WINDOW **window = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_BC); + WINDOW **window = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_POINTS_BOX); *window = ov01_021EEC00(ctx->fsys, type, x, y); return FALSE; } BOOL ScrCmd_117(SCRIPTCONTEXT *ctx) { - WINDOW **window = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_BC); + WINDOW **window = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_POINTS_BOX); ov01_021EEC68(*window); return FALSE; } BOOL ScrCmd_118(SCRIPTCONTEXT *ctx) { u8 type = ScriptReadByte(ctx); - WINDOW **window = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_BC); + WINDOW **window = FieldSysGetAttrAddr(ctx->fsys, SCRIPTENV_POINTS_BOX); ov01_021EEC7C(ctx->fsys, *window, type); return FALSE; } From 5c8636d8ca775826cdb7ef70ad5fc63c80474888 Mon Sep 17 00:00:00 2001 From: Akashi Akira Date: Fri, 26 May 2023 09:22:31 +0100 Subject: [PATCH 3/4] SCRIPTENV_MONEY_BOX --- include/script.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/script.h b/include/script.h index f1f9c3b8b..e89e83be3 100644 --- a/include/script.h +++ b/include/script.h @@ -74,7 +74,8 @@ typedef struct ScriptEnvironment { void *unk_B8; //PlayerMovementState WINDOW *pointsBox; u8 padding[0xC]; //FIXME: ugly hack - WINDOW moneyBox; + WINDOW *moneyBox; + u8 padding2[0xC]; //FIXME: ugly hack 2 struct SaveStatsPrinter *unk_DC; } ScriptEnvironment; @@ -119,7 +120,7 @@ typedef enum ScriptEnvField { SCRIPTENV_ENGAGED_TRAINER_1_EVENT, SCRIPTENV_ENGAGED_TRAINER_1_FIELD_18, SCRIPTENV_POINTS_BOX, //differs from diamond due to athlete points - SCRIPTENV_MONEY_BOX = 40, + SCRIPTENV_MONEY_BOX, SCRIPTENV_DC = 41, SCRIPTENV_SPECIAL_VAR_8000 = 42, SCRIPTENV_SPECIAL_VAR_8001 = 43, From f48702d0a11ee6bb17cd3d69d4e371de175945f1 Mon Sep 17 00:00:00 2001 From: Akashi Akira Date: Fri, 26 May 2023 10:19:20 +0100 Subject: [PATCH 4/4] finish script context enum --- include/script.h | 32 ++++++++++++++++---------------- src/field_use_item.c | 1 + src/fieldmap.c | 8 ++++---- src/scrcmd_c.c | 12 ++++++------ 4 files changed, 27 insertions(+), 26 deletions(-) diff --git a/include/script.h b/include/script.h index e89e83be3..20feeec9e 100644 --- a/include/script.h +++ b/include/script.h @@ -76,7 +76,7 @@ typedef struct ScriptEnvironment { u8 padding[0xC]; //FIXME: ugly hack WINDOW *moneyBox; u8 padding2[0xC]; //FIXME: ugly hack 2 - struct SaveStatsPrinter *unk_DC; + struct SaveStatsPrinter *saveStatsPrinter; } ScriptEnvironment; typedef enum ScriptEnvField { @@ -121,21 +121,21 @@ typedef enum ScriptEnvField { SCRIPTENV_ENGAGED_TRAINER_1_FIELD_18, SCRIPTENV_POINTS_BOX, //differs from diamond due to athlete points SCRIPTENV_MONEY_BOX, - SCRIPTENV_DC = 41, - SCRIPTENV_SPECIAL_VAR_8000 = 42, - SCRIPTENV_SPECIAL_VAR_8001 = 43, - SCRIPTENV_SPECIAL_VAR_8002 = 44, - SCRIPTENV_SPECIAL_VAR_8003 = 45, - SCRIPTENV_SPECIAL_VAR_8004 = 46, - SCRIPTENV_SPECIAL_VAR_8005 = 47, - SCRIPTENV_SPECIAL_VAR_8006 = 48, - SCRIPTENV_SPECIAL_VAR_8007 = 49, - SCRIPTENV_SPECIAL_VAR_8008 = 50, - SCRIPTENV_SPECIAL_VAR_8009 = 51, - SCRIPTENV_SPECIAL_VAR_800A = 52, - SCRIPTENV_SPECIAL_VAR_800B = 53, - SCRIPTENV_SPECIAL_VAR_RESULT = 54, - SCRIPTENV_SPECIAL_VAR_LAST_TALKED = 55, + SCRIPTENV_SAVE_STATS_PRINTER, + SCRIPTENV_SPECIAL_VAR_8000, + SCRIPTENV_SPECIAL_VAR_8001, + SCRIPTENV_SPECIAL_VAR_8002, + SCRIPTENV_SPECIAL_VAR_8003, + SCRIPTENV_SPECIAL_VAR_8004, + SCRIPTENV_SPECIAL_VAR_8005, + SCRIPTENV_SPECIAL_VAR_8006, + SCRIPTENV_SPECIAL_VAR_8007, + SCRIPTENV_SPECIAL_VAR_8008, + SCRIPTENV_SPECIAL_VAR_8009, + SCRIPTENV_SPECIAL_VAR_800A, + SCRIPTENV_SPECIAL_VAR_800B, + SCRIPTENV_SPECIAL_VAR_RESULT, + SCRIPTENV_SPECIAL_VAR_LAST_INTERACTED } ScriptEnvField; struct UnkStruct_020FC5CC { diff --git a/src/field_use_item.c b/src/field_use_item.c index f43b41d6a..4c28f93a6 100644 --- a/src/field_use_item.c +++ b/src/field_use_item.c @@ -27,6 +27,7 @@ #include "fielddata/script/scr_seq/event_D24R0202.h" #include "fielddata/script/scr_seq/event_D24R0206.h" #include "msgdata/msg/msg_0010.h" +#include "script.h" struct ItemUseFuncDat { ItemMenuUseFunc menu; diff --git a/src/fieldmap.c b/src/fieldmap.c index d00f25621..af4bf73e1 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -155,7 +155,7 @@ void DestroyScriptContext(SCRIPTCONTEXT *ctx) { } void SetupScriptEngine(FieldSystem *fsys, ScriptEnvironment *env, u16 script, LocalMapObject *lastInteracted, void* a4) { - u16 *varLastInteracted = FieldSysGetAttrAddrInternal(env, SCRIPTENV_SPECIAL_VAR_LAST_TALKED); + u16 *varLastInteracted = FieldSysGetAttrAddrInternal(env, SCRIPTENV_SPECIAL_VAR_LAST_INTERACTED); env->facingDirection = PlayerAvatar_GetFacingDirection(fsys->playerAvatar); env->lastInteracted = lastInteracted; env->activeScriptNumber = script; @@ -297,8 +297,8 @@ void *FieldSysGetAttrAddrInternal(ScriptEnvironment *environment, enum ScriptEnv return &environment->pointsBox; case SCRIPTENV_MONEY_BOX: return &environment->moneyBox; - case SCRIPTENV_DC: - return &environment->unk_DC; + case SCRIPTENV_SAVE_STATS_PRINTER: + return &environment->saveStatsPrinter; case SCRIPTENV_SPECIAL_VAR_8000: case SCRIPTENV_SPECIAL_VAR_8001: case SCRIPTENV_SPECIAL_VAR_8002: @@ -312,7 +312,7 @@ void *FieldSysGetAttrAddrInternal(ScriptEnvironment *environment, enum ScriptEnv case SCRIPTENV_SPECIAL_VAR_800A: case SCRIPTENV_SPECIAL_VAR_800B: case SCRIPTENV_SPECIAL_VAR_RESULT: - case SCRIPTENV_SPECIAL_VAR_LAST_TALKED: + case SCRIPTENV_SPECIAL_VAR_LAST_INTERACTED: return &environment->specialVars[field - SCRIPTENV_SPECIAL_VAR_8000]; default: GF_ASSERT(FALSE); diff --git a/src/scrcmd_c.c b/src/scrcmd_c.c index 13bbb5a77..872683c09 100644 --- a/src/scrcmd_c.c +++ b/src/scrcmd_c.c @@ -4113,20 +4113,20 @@ BOOL ScrCmd_GetTrcardStars(SCRIPTCONTEXT *ctx) { BOOL ScrCmd_ShowSaveStats(SCRIPTCONTEXT *ctx) { FieldSystem *fsys = ctx->fsys; - struct SaveStatsPrinter **p_work = FieldSysGetAttrAddr(fsys, SCRIPTENV_DC); + struct SaveStatsPrinter **saveStatsPrinter = FieldSysGetAttrAddr(fsys, SCRIPTENV_SAVE_STATS_PRINTER); if (!Save_FileDoesNotBelongToPlayer(fsys->savedata)) { - *p_work = Field_CreateSaveStatsPrinter(fsys, 4, 3); - SaveStatsPrinter_Print(*p_work); + *saveStatsPrinter = Field_CreateSaveStatsPrinter(fsys, 4, 3); + SaveStatsPrinter_Print(*saveStatsPrinter); } return FALSE; } BOOL ScrCmd_HideSaveStats(SCRIPTCONTEXT *ctx) { FieldSystem *fsys = ctx->fsys; - struct SaveStatsPrinter **p_work = FieldSysGetAttrAddr(fsys, SCRIPTENV_DC); + struct SaveStatsPrinter **saveStatsPrinter = FieldSysGetAttrAddr(fsys, SCRIPTENV_SAVE_STATS_PRINTER); if (!Save_FileDoesNotBelongToPlayer(fsys->savedata)) { - SaveStatsPrinter_RemoveFromScreen(*p_work); - SaveStatsPrinter_Delete(*p_work); + SaveStatsPrinter_RemoveFromScreen(*saveStatsPrinter); + SaveStatsPrinter_Delete(*saveStatsPrinter); } return FALSE; }