From 05b2edad405eb47a5f36ee09f705f0da04df0793 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Thu, 4 Mar 2021 03:49:25 +0100 Subject: Add notes to script.c --- src/script.c | 622 +++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 396 insertions(+), 226 deletions(-) (limited to 'src/script.c') diff --git a/src/script.c b/src/script.c index 494e0ae5..495a01d5 100644 --- a/src/script.c +++ b/src/script.c @@ -154,30 +154,147 @@ void sub_0807F0C8(Entity*, ScriptExecutionContext*); extern void CreateSpeechBubbleExclamationMark(Entity*, u32, u32); extern void CreateSpeechBubbleQuestionMark(Entity*, u32, u32); extern void sub_0801C4A0(u32); - -void (*const gUnk_0811E524[])() = { - nullsub_507, sub_0807E004, sub_0807E014, sub_0807E024, sub_0807E050, sub_0807E064, sub_0807E078, sub_0807E0A0, - sub_0807E0B8, sub_0807E0CC, sub_0807E0E0, sub_0807E10C, sub_0807E124, sub_0807E148, sub_0807E158, sub_0807E188, - sub_0807E1D8, - sub_0807E4AC, // defined out of order - sub_0807E200, sub_0807E220, sub_0807E240, sub_0807E260, sub_0807E280, sub_0807E2A8, sub_0807E2E4, sub_0807E30C, - sub_0807E390, sub_0807E3BC, sub_0807E3E8, sub_0807E40C, sub_0807E42C, sub_0807E48C, sub_0807E4CC, sub_0807E4EC, - sub_0807E514, sub_0807E538, sub_0807E564, sub_0807E584, sub_0807E5A0, sub_0807E5CC, sub_0807E5F8, sub_0807E610, - sub_0807E628, sub_0807E634, sub_0807E644, sub_0807E650, sub_0807E65C, sub_0807E668, sub_0807E674, sub_0807E680, - sub_0807E690, sub_0807E6AC, sub_0807E6DC, sub_0807E700, sub_0807E72C, sub_0807E75C, sub_0807E778, sub_0807E788, - sub_0807E79C, nullsub_508, sub_0807E7B0, sub_0807E7C4, sub_0807E7D8, sub_0807E7EC, sub_0807E800, sub_0807E80C, - sub_0807E858, sub_0807E864, sub_0807E878, sub_0807E888, sub_0807E898, sub_0807E8C4, sub_0807E8D4, sub_0807E8E4, - sub_0807E8E4, // duplicate - sub_0807E8E4, // duplicate - sub_0807E8E4, // duplicate - sub_0807E908, sub_0807E914, sub_0807E924, sub_0807E930, sub_0807E944, sub_0807E974, sub_0807E9D4, sub_0807E9DC, - sub_0807E9E4, sub_0807E9F0, sub_0807EA4C, sub_0807EA88, sub_0807EA94, sub_0807EAB4, sub_0807EAC0, sub_0807EAD0, - sub_0807EAF0, sub_0807EB18, sub_0807EB28, sub_0807EB38, sub_0807EB44, sub_0807EB4C, sub_0807EB74, sub_0807EB8C, - sub_0807EBA8, sub_0807EBB0, sub_0807EBC0, sub_0807EBC8, sub_0807EBD8, sub_0807EBF4, sub_0807EC08, nullsub_509, - sub_0807EC1C, sub_0807EC64, sub_0807EC94, sub_0807ECC4, sub_0807ECF4, sub_0807ED24, sub_0807EDD4, sub_0807EE04, - sub_0807EE30, sub_0807EEB4, sub_0807EEF4, sub_0807EF3C, sub_0807EF80, sub_0807EF90, sub_0807EFA0, sub_0807EFAC, - sub_0807EFD4, sub_0807EFE4, sub_0807EFF4, sub_0807F004, sub_0807F010, sub_0807F034, sub_0807F050, sub_0807F060, - sub_0807F078, sub_0807F088, sub_0807F098, sub_0807F0A4, sub_0807F0B4, sub_0807F0C8 +// size: 139 +void (*const scriptOperations[])() = { + nullsub_507, // 0 + sub_0807E004, // 1 + sub_0807E014, // 2 + sub_0807E024, // 3 + sub_0807E050, // 4 + sub_0807E064, // 5 + sub_0807E078, // 6 + sub_0807E0A0, // 7 + sub_0807E0B8, // 8 + sub_0807E0CC, // 9 + sub_0807E0E0, // 10 + sub_0807E10C, // 11 + sub_0807E124, // 12 + sub_0807E148, // 13 + sub_0807E158, // 14 + sub_0807E188, // 15 + sub_0807E1D8, // 16 + sub_0807E4AC, // defined out of order 17 + sub_0807E200, // 18 + sub_0807E220, // 19 + sub_0807E240, // 20 + sub_0807E260, // 21 + sub_0807E280, // 22 + sub_0807E2A8, // 23 + sub_0807E2E4, // 24 + sub_0807E30C, // 25 + sub_0807E390, // 26 + sub_0807E3BC, // 27 + sub_0807E3E8, // 28 + sub_0807E40C, // 29 + sub_0807E42C, // 30 + sub_0807E48C, // 31 + sub_0807E4CC, // 32 + sub_0807E4EC, // 33 + sub_0807E514, // 34 + sub_0807E538, // 35 + sub_0807E564, // 36 + sub_0807E584, // 37 + sub_0807E5A0, // 38 + sub_0807E5CC, // 39 + sub_0807E5F8, // 40 + sub_0807E610, // 41 + sub_0807E628, // 42 + sub_0807E634, // 43 + sub_0807E644, // 44 + sub_0807E650, // 45 + sub_0807E65C, // 46 + sub_0807E668, // 47 + sub_0807E674, // 48 + sub_0807E680, // 49 + sub_0807E690, // 50 + sub_0807E6AC, // 51 + sub_0807E6DC, // 52 + sub_0807E700, // 53 + sub_0807E72C, // 54 + sub_0807E75C, // 55 + sub_0807E778, // 56 + sub_0807E788, // 57 + sub_0807E79C, // 58 + nullsub_508, // 59 + sub_0807E7B0, // 60 + sub_0807E7C4, // 61 + sub_0807E7D8, // 62 + sub_0807E7EC, // 63 + sub_0807E800, // 64 + sub_0807E80C, // 65 + sub_0807E858, // 66 + sub_0807E864, // 67 + sub_0807E878, // 68 + sub_0807E888, // 69 + sub_0807E898, // 70 + sub_0807E8C4, // 71 + sub_0807E8D4, // 72 + sub_0807E8E4, // 73 + sub_0807E8E4, // 74// duplicate + sub_0807E8E4, // 75// duplicate + sub_0807E8E4, // 76// duplicate + sub_0807E908, // 77 + sub_0807E914, // 78 + sub_0807E924, // 79 + sub_0807E930, // 80 + sub_0807E944, // 81 + sub_0807E974, // 82 + sub_0807E9D4, // 83 + sub_0807E9DC, // 84 + sub_0807E9E4, // 85 + sub_0807E9F0, // 86 + sub_0807EA4C, // 87 + sub_0807EA88, // 88 + sub_0807EA94, // 89 + sub_0807EAB4, // 90 + sub_0807EAC0, // 91 + sub_0807EAD0, // 92 + sub_0807EAF0, // 93 + sub_0807EB18, // 94 + sub_0807EB28, // 95 + sub_0807EB38, // 96 + sub_0807EB44, // 97 + sub_0807EB4C, // 98 + sub_0807EB74, // 99 + sub_0807EB8C, // 100 + sub_0807EBA8, // 101 + sub_0807EBB0, // 102 + sub_0807EBC0, // 103 + sub_0807EBC8, // 104 + sub_0807EBD8, // 105 + sub_0807EBF4, // 106 + sub_0807EC08, // 107 + nullsub_509, // 108 + sub_0807EC1C, // 109 + sub_0807EC64, // 110 + sub_0807EC94, // 111 + sub_0807ECC4, // 112 + sub_0807ECF4, // 113 + sub_0807ED24, // 114 + sub_0807EDD4, // 115 + sub_0807EE04, // 116 + sub_0807EE30, // 117 + sub_0807EEB4, // 118 + sub_0807EEF4, // 119 + sub_0807EF3C, // 120 + sub_0807EF80, // 121 + sub_0807EF90, // 122 + sub_0807EFA0, // 123 + sub_0807EFAC, // 124 + sub_0807EFD4, // 125 + sub_0807EFE4, // 126 + sub_0807EFF4, // 127 + sub_0807F004, // 128 + sub_0807F010, // 129 + sub_0807F034, // 130 + sub_0807F050, // 131 + sub_0807F060, // 132 + sub_0807F078, // 133 + sub_0807F088, // 134 + sub_0807F098, // 135 + sub_0807F0A4, // 136 + sub_0807F0B4, // 137 + sub_0807F0C8 // 138 }; extern const u16 gUnk_08016984; @@ -198,7 +315,7 @@ ScriptExecutionContext* CreateScriptExecutionContext(void) { context = gScriptExecutionContextArray; do { - if (context->unk_00 == 0) { + if (context->unk_00.raw == 0) { return context; } context++; @@ -210,20 +327,21 @@ void DestroyScriptExecutionContext(ScriptExecutionContext* context) { MemClear32(context, sizeof(ScriptExecutionContext)); } -ScriptExecutionContext* StartCutscene(Entity* entity, u16* unk_2) { +ScriptExecutionContext* StartCutscene(Entity* entity, u16* scriptCode) { ScriptExecutionContext* context; context = CreateScriptExecutionContext(); if (context) { - sub_0807DAF0(entity, context, unk_2); + sub_0807DAF0(entity, context, scriptCode); } return context; } -void sub_0807DAF0(Entity* entity, ScriptExecutionContext* context, u16* unk1) { +// start script on entity +void sub_0807DAF0(Entity* entity, ScriptExecutionContext* context, u16* scriptCode) { entity->flags = entity->flags | 2; *(ScriptExecutionContext**)&entity->cutsceneBeh = context; - sub_0807DB88(context, unk1); + sub_0807DB88(context, scriptCode); } void UnloadCutsceneData(Entity* entity) { @@ -238,7 +356,7 @@ void StartPlayerScript(u16* unk1) { Entity* player; MemClear32(&gPlayerScriptExecutionContext, sizeof(gPlayerScriptExecutionContext)); - gPlayerScriptExecutionContext.unk_00 = unk1; + gPlayerScriptExecutionContext.unk_00.raw = unk1; player = &gPlayerEntity; *(ScriptExecutionContext**)&player->cutsceneBeh = &gPlayerScriptExecutionContext; gPlayerState.playerAction = 0x1c; @@ -254,14 +372,15 @@ ScriptExecutionContext* sub_0807DB68(Entity* entity, u16* unk1) { if (context) { entity->flags |= 2; *(ScriptExecutionContext**)&entity->field_0x3c = context; - context->unk_00 = unk1; + context->unk_00.raw = unk1; } return context; } -void sub_0807DB88(ScriptExecutionContext* context, u16* unk1) { +// reset ScriptExecutionContext and set new commands? +void sub_0807DB88(ScriptExecutionContext* context, u16* scriptCode) { MemClear32(context, sizeof(ScriptExecutionContext)); - context->unk_00 = unk1; + context->unk_00.raw = scriptCode; } void sub_0807DB98(Entity* entity, ScriptExecutionContext* context) { @@ -350,8 +469,9 @@ void sub_0807DD64(Entity* entity) { entity->field_0x82.HWORD = 0; } -void sub_0807DD80(Entity* entity, u16* unk1) { - sub_0807DB88(*(ScriptExecutionContext**)&entity->cutsceneBeh, unk1); +// Special script start for windTribespeople? +void sub_0807DD80(Entity* entity, u16* scriptCode) { + sub_0807DB88(*(ScriptExecutionContext**)&entity->cutsceneBeh, scriptCode); sub_0807DD64(entity); } @@ -361,16 +481,17 @@ void sub_0807DD94(Entity* entity, void (*function)(Entity*, ScriptExecutionConte sub_0807DE80(entity); } +// executeScript commandset, then call the function (or sub_0807DB98 if NULL), then delete if no next entity void sub_0807DDAC(Entity* entity, void (*function)(Entity*, ScriptExecutionContext*)) { - ScriptExecutionContext** piVar1; + ScriptExecutionContext** context; - piVar1 = (ScriptExecutionContext**)&entity->cutsceneBeh; - if (*piVar1) { - ExecuteScriptCommandSet(entity, *piVar1); + context = (ScriptExecutionContext**)&entity->cutsceneBeh; + if (*context) { + ExecuteScriptCommandSet(entity, *context); if (function) { - function(entity, *piVar1); + function(entity, *context); } else { - sub_0807DB98(entity, *piVar1); + sub_0807DB98(entity, *context); } if (!entity->next) { DeleteThisEntity(); @@ -452,7 +573,7 @@ void sub_0807DEDC(Entity* entity, ScriptExecutionContext* context, u32 arg2, u32 context->unk_19 = 8; context->unk_08 |= 2; - context->unk_14 = 0; + context->compareResult = 0; context->unk_1C.HALF.HI = arg2; context->unk_20.HALF.HI = arg3; t0 = context->unk_1C.HALF.HI - entity->x.HALF.HI; @@ -482,123 +603,140 @@ void sub_0807DF50(void) { } void ExecuteScriptCommandSet(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->unk_00) + if (!unk2->unk_00.raw) return; if (unk2->unk_10) { unk2->unk_10--; } else { struct_02033280* tmp2 = &gUnk_02033280; - tmp2->unk_07 = 0; + // unk_07 bit 1 is being reset in each iteration + // but bit 2 is also tested, so it can be set to continue execution until you reset it + + tmp2->continueScriptExecutionFlags = 0; do { - u32 cmd = GetNextScriptCommandHalfword(unk2->unk_00); + u32 cmd = GetNextScriptCommandHalfword(unk2->unk_00.raw); u16* tmp; if (cmd == 0xFFFF) return; + // after cutting of 10 bits, this is the amount to advance the unk_00 pointer of ScriptExecutionContext unk2 tmp2->unk_06 = cmd >> 0xA; - tmp2->unk_04 = cmd & 0x3FF; - tmp = unk2->unk_00; - tmp2->unk_07 &= ~1; - gUnk_0811E524[tmp2->unk_04](unk1, unk2); - unk2->unk_00 += tmp2->unk_06; - if (tmp != unk2->unk_00) { + // lower 10 bits are the operationId (index to scriptOperations pointer array) + tmp2->operationId = cmd & 0x3FF; + tmp = unk2->unk_00.raw; + tmp2->continueScriptExecutionFlags &= ~1; + scriptOperations[tmp2->operationId](unk1, unk2); + unk2->unk_00.raw += tmp2->unk_06; + if (tmp != unk2->unk_00.raw) { // unk_00 was changed by tmp->unk_06 or the executed function -> set a flag + // to execute the next instruction or something? unk2->unk_18 = 0; } - } while (tmp2->unk_07 & 3); + } while (tmp2->continueScriptExecutionFlags & 3); } } void nullsub_507(Entity* unk1, ScriptExecutionContext* unk2) { } +// Start executing scripts void sub_0807E004(Entity* unk1, ScriptExecutionContext* unk2) { - gUnk_02033280.unk_07 |= 2; + gUnk_02033280.continueScriptExecutionFlags |= 2; } +// Stop executing scripts void sub_0807E014(Entity* unk1, ScriptExecutionContext* unk2) { - gUnk_02033280.unk_07 &= ~2; + gUnk_02033280.continueScriptExecutionFlags &= ~2; } void sub_0807E024(Entity* unk1, ScriptExecutionContext* unk2) { s16 tmp; - unk2->unk_00++; - tmp = GetNextScriptCommandHalfword(unk2->unk_00); - unk2->unk_00 += (tmp / 2); + // get metadata -> tmp + unk2->unk_00.raw++; + tmp = GetNextScriptCommandHalfword(unk2->unk_00.raw); + unk2->unk_00.raw += (tmp / 2); gUnk_02033280.unk_06 = 0; } +// if void sub_0807E050(Entity* unk1, ScriptExecutionContext* unk2) { - if (unk2->unk_14) { + if (unk2->compareResult) { sub_0807E024(unk1, unk2); } } +// if not void sub_0807E064(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->unk_14) { + if (!unk2->compareResult) { sub_0807E024(unk1, unk2); } } void sub_0807E078(Entity* unk1, ScriptExecutionContext* unk2) { if (gUnk_02033280.unk_06 > unk2->unk_04) { - unk2->unk_00 += unk2->unk_04; + unk2->unk_00.raw += unk2->unk_04; sub_0807E024(unk1, unk2); } } void sub_0807E0A0(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_00 = (u16*)GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); + unk2->unk_00.raw = (u16*)GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); gUnk_02033280.unk_06 = 0; } +// if void sub_0807E0B8(Entity* unk1, ScriptExecutionContext* unk2) { - if (unk2->unk_14) { + if (unk2->compareResult) { sub_0807E0A0(unk1, unk2); } } +// if not void sub_0807E0CC(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->unk_14) { + if (!unk2->compareResult) { sub_0807E0A0(unk1, unk2); } } void sub_0807E0E0(Entity* unk1, ScriptExecutionContext* unk2) { if (gUnk_02033280.unk_06 > (unk2->unk_04 << 1) + 1) { - unk2->unk_00 += unk2->unk_04 << 1; + unk2->unk_00.raw += unk2->unk_04 << 1; sub_0807E0A0(unk1, unk2); } } +// Execute function via pointer void sub_0807E10C(Entity* unk1, ScriptExecutionContext* unk2) { - ((void (*)(Entity*, ScriptExecutionContext*))GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00))(unk1, - unk2); + ((void (*)(Entity*, ScriptExecutionContext*))GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw))(unk1, + unk2); } +// Execute function via pointer but set context->unk_04 to some meta/cmd before? void sub_0807E124(Entity* unk1, ScriptExecutionContext* unk2) { void (*tmp)(Entity*, ScriptExecutionContext*) = - (void (*)(Entity*, ScriptExecutionContext*))GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); - unk2->unk_04 = GetNextScriptCommandWord(unk2->unk_00 + 3); + (void (*)(Entity*, ScriptExecutionContext*))GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); + unk2->unk_04 = GetNextScriptCommandWord(unk2->unk_00.raw + 3); tmp(unk1, unk2); } void sub_0807E148(Entity* unk1, ScriptExecutionContext* unk2) { - LoadRoomEntityList(GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00)); + LoadRoomEntityList(GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw)); } +// compare ??? void sub_0807E158(Entity* unk1, ScriptExecutionContext* unk2) { - u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); + u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); u32 tmp2 = 0; u32 tmp3 = gUnk_02033280.unk_00; if ((tmp3 & tmp) == tmp) tmp2 = 1; - unk2->unk_14 = tmp2; + unk2->compareResult = tmp2; gUnk_02033280.unk_00 = tmp3 & ~tmp; - gUnk_02033280.unk_07 |= 1; + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// different compare functions (dungeon map, dungeon compass, dungeon big key, dungeon small keys, inventory value) void sub_0807E188(Entity* unk1, ScriptExecutionContext* unk2) { u32 tmp; - u32 tmp2 = GetNextScriptCommandHalfwordAfterCommandMetadata(unk2->unk_00); + u32 tmp2 = GetNextScriptCommandHalfwordAfterCommandMetadata(unk2->unk_00.raw); switch (tmp2) { case 0x53: tmp = sub_08052734(); @@ -615,66 +753,75 @@ void sub_0807E188(Entity* unk1, ScriptExecutionContext* unk2) { default: tmp = GetInventoryValue(tmp2); } - unk2->unk_14 = tmp; - gUnk_02033280.unk_07 |= 1; + unk2->compareResult = tmp; + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare GetInventoryValue(meta) == 2 void sub_0807E1D8(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = GetInventoryValue(unk2->unk_00[1]) == 2; - gUnk_02033280.unk_07 |= 1; + unk2->compareResult = GetInventoryValue(unk2->unk_00.raw[1]) == 2; + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare CheckLocalFlag void sub_0807E200(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = CheckLocalFlag(unk2->unk_00[1]); - gUnk_02033280.unk_07 |= 1; + unk2->compareResult = CheckLocalFlag(unk2->unk_00.raw[1]); + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare CheckLocalFlagByOffset(metadata1, metadata2) void sub_0807E220(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = CheckLocalFlagByOffset(unk2->unk_00[1], unk2->unk_00[2]); - gUnk_02033280.unk_07 |= 1; + unk2->compareResult = CheckLocalFlagByOffset(unk2->unk_00.raw[1], unk2->unk_00.raw[2]); + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare CheckGlobalFlag void sub_0807E240(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = CheckGlobalFlag(GetNextScriptCommandHalfwordAfterCommandMetadata(unk2->unk_00)); - gUnk_02033280.unk_07 |= 1; + unk2->compareResult = CheckGlobalFlag(GetNextScriptCommandHalfwordAfterCommandMetadata(unk2->unk_00.raw)); + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare CheckRoomFlag void sub_0807E260(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = CheckRoomFlag(unk2->unk_00[1]); - gUnk_02033280.unk_07 |= 1; + unk2->compareResult = CheckRoomFlag(unk2->unk_00.raw[1]); + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare checkPlayerInRegion (square?) void sub_0807E280(Entity* unk1, ScriptExecutionContext* unk2) { u32 x, y, width, height; - width = unk2->unk_00[3]; + width = unk2->unk_00.raw[3]; height = width >> 8; width &= 0xFF; - x = unk2->unk_00[1]; - y = unk2->unk_00[2]; - unk2->unk_14 = CheckPlayerInRegion(x, y, width, height); - gUnk_02033280.unk_07 |= 1; + x = unk2->unk_00.raw[1]; + y = unk2->unk_00.raw[2]; + unk2->compareResult = CheckPlayerInRegion(x, y, width, height); + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare CheckPlayerInRegion (room?) void sub_0807E2A8(Entity* unk1, ScriptExecutionContext* unk2) { u32 x, y, width, height; - width = unk2->unk_00[1] & 0xFF; - height = unk2->unk_00[1] >> 8; + width = unk2->unk_00.raw[1] & 0xFF; + height = unk2->unk_00.raw[1] >> 8; x = unk1->x.HALF.HI - gRoomControls.roomOriginX; y = unk1->y.HALF.HI - gRoomControls.roomOriginY; - unk2->unk_14 = CheckPlayerInRegion(x, y, width, height); - gUnk_02033280.unk_07 |= 1; + unk2->compareResult = CheckPlayerInRegion(x, y, width, height); + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare and reset Entity->interactType void sub_0807E2E4(Entity* unk1, ScriptExecutionContext* unk2) { if (unk1->interactType) { unk1->interactType = 0; - unk2->unk_14 = 1; + unk2->compareResult = 1; } else { - unk2->unk_14 = 0; + unk2->compareResult = 0; } - gUnk_02033280.unk_07 |= 1; + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare and reset interactType while setting animationState ?? void sub_0807E30C(Entity* unk1, ScriptExecutionContext* unk2) { if ((unk2->unk_1A & 0xF) == 0 && (gPlayerState.flags.all & 0x80) == 0 && sub_080041A0(unk1, &gPlayerEntity, 0x28, 0x28)) { @@ -683,160 +830,175 @@ void sub_0807E30C(Entity* unk1, ScriptExecutionContext* unk2) { unk2->unk_1A++; if (unk1->interactType) { unk1->interactType = 0; - unk2->unk_14 = 1; + unk2->compareResult = 1; unk1->animationState = sub_0806F5B0(GetFacingDirection(unk1, &gPlayerEntity)); } else { - unk2->unk_14 = 0; + unk2->compareResult = 0; } - gUnk_02033280.unk_07 |= 1; + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare enough rupees void sub_0807E390(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = (unk2->unk_00[1] <= gSave.stats.rupees); - gUnk_02033280.unk_07 |= 1; + unk2->compareResult = (unk2->unk_00.raw[1] <= gSave.stats.rupees); + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare enough ??? void sub_0807E3BC(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = (unk2->unk_00[1] <= gSave.stats.field_0x1a); - gUnk_02033280.unk_07 |= 1; + unk2->compareResult = (unk2->unk_00.raw[1] <= gSave.stats.field_0x1a); + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare ??? void sub_0807E3E8(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = !gUnk_02000040.unk_01; - gUnk_02033280.unk_07 |= 1; + unk2->compareResult = !gUnk_02000040.unk_01; + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare CheckKinstoneFused void sub_0807E40C(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = CheckKinstoneFused(unk2->unk_00[1]); - gUnk_02033280.unk_07 |= 1; + unk2->compareResult = CheckKinstoneFused(unk2->unk_00.raw[1]); + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare enough rupees and remove rupees ?? void sub_0807E42C(Entity* unk1, ScriptExecutionContext* unk2) { u32 tmp, tmp2; s32 tmp3; - tmp = unk2->unk_00[1]; - tmp2 = unk2->unk_00[2]; + tmp = unk2->unk_00.raw[1]; + tmp2 = unk2->unk_00.raw[2]; if (!tmp) { tmp = gRoomVars.itemForSaleIndex; tmp2 = gRoomVars.field_0x7; } tmp3 = sub_08053FE0(tmp); - unk2->unk_14 = (tmp3 <= gSave.stats.rupees); - if (unk2->unk_14) { + unk2->compareResult = (tmp3 <= gSave.stats.rupees); + if (unk2->compareResult) { ModRupees(-tmp3); sub_080A7C18(tmp, tmp2, 0); gRoomVars.itemForSaleIndex = 0; gRoomVars.field_0x7 = 0; } - gUnk_02033280.unk_07 |= 1; + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare ?? void sub_0807E48C(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = sub_080544DC(unk2->unk_00[1]); - gUnk_02033280.unk_07 |= 1; + unk2->compareResult = sub_080544DC(unk2->unk_00.raw[1]); + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare itemForSaleIndex?? void sub_0807E4AC(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = !!gRoomVars.itemForSaleIndex; - gUnk_02033280.unk_07 |= 1; + unk2->compareResult = !!gRoomVars.itemForSaleIndex; + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare ?? void sub_0807E4CC(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = !!(unk2->unk_04 & unk2->unk_00[1]); - gUnk_02033280.unk_07 |= 1; + unk2->compareResult = !!(unk2->unk_04 & unk2->unk_00.raw[1]); + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare meta & unk_04 ?? void sub_0807E4EC(Entity* unk1, ScriptExecutionContext* unk2) { - u32 tmp = unk2->unk_00[1]; - unk2->unk_14 = tmp == (tmp & unk2->unk_04); - gUnk_02033280.unk_07 |= 1; + u32 tmp = unk2->unk_00.raw[1]; + unk2->compareResult = tmp == (tmp & unk2->unk_04); + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare meta == unk_04 ?? void sub_0807E514(Entity* unk1, ScriptExecutionContext* unk2) { - u32 tmp = unk2->unk_00[1]; - unk2->unk_14 = tmp == unk2->unk_04; - gUnk_02033280.unk_07 |= 1; + u32 tmp = unk2->unk_00.raw[1]; + unk2->compareResult = tmp == unk2->unk_04; + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare player state flags ??? void sub_0807E538(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = !!(GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00) & gPlayerState.flags.all); - gUnk_02033280.unk_07 |= 1; + unk2->compareResult = !!(GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw) & gPlayerState.flags.all); + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare player state flags ??? void sub_0807E564(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = (gPlayerState.flags.all >> 7) & 1; - gUnk_02033280.unk_07 |= 1; + unk2->compareResult = (gPlayerState.flags.all >> 7) & 1; + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare entity height != 0 void sub_0807E584(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = unk1->height.WORD != 0; - gUnk_02033280.unk_07 |= 1; + unk2->compareResult = unk1->height.WORD != 0; + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare meta == player.action void sub_0807E5A0(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = unk2->unk_00[1] == gPlayerEntity.action; - gUnk_02033280.unk_07 |= 1; + unk2->compareResult = unk2->unk_00.raw[1] == gPlayerEntity.action; + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// compare meta == player.animationState void sub_0807E5CC(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = unk2->unk_00[1] == gPlayerEntity.animationState; - gUnk_02033280.unk_07 |= 1; + unk2->compareResult = unk2->unk_00.raw[1] == gPlayerEntity.animationState; + gUnk_02033280.continueScriptExecutionFlags |= 1; } void sub_0807E5F8(Entity* unk1, ScriptExecutionContext* unk2) { - gUnk_02033280.unk_00 |= GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); + gUnk_02033280.unk_00 |= GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); } void sub_0807E610(Entity* unk1, ScriptExecutionContext* unk2) { - gUnk_02033280.unk_00 &= ~GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); + gUnk_02033280.unk_00 &= ~GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); } void sub_0807E628(Entity* unk1, ScriptExecutionContext* unk2) { - SetLocalFlag(unk2->unk_00[1]); + SetLocalFlag(unk2->unk_00.raw[1]); } void sub_0807E634(Entity* unk1, ScriptExecutionContext* unk2) { - SetLocalFlagByOffset(unk2->unk_00[1], unk2->unk_00[2]); + SetLocalFlagByOffset(unk2->unk_00.raw[1], unk2->unk_00.raw[2]); } void sub_0807E644(Entity* unk1, ScriptExecutionContext* unk2) { - ClearLocalFlag(unk2->unk_00[1]); + ClearLocalFlag(unk2->unk_00.raw[1]); } void sub_0807E650(Entity* unk1, ScriptExecutionContext* unk2) { - SetGlobalFlag(unk2->unk_00[1]); + SetGlobalFlag(unk2->unk_00.raw[1]); } void sub_0807E65C(Entity* unk1, ScriptExecutionContext* unk2) { - ClearGlobalFlag(unk2->unk_00[1]); + ClearGlobalFlag(unk2->unk_00.raw[1]); } void sub_0807E668(Entity* unk1, ScriptExecutionContext* unk2) { - SetRoomFlag(unk2->unk_00[1]); + SetRoomFlag(unk2->unk_00.raw[1]); } void sub_0807E674(Entity* unk1, ScriptExecutionContext* unk2) { - ClearRoomFlag(unk2->unk_00[1]); + ClearRoomFlag(unk2->unk_00.raw[1]); } void sub_0807E680(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_10 = GetNextScriptCommandHalfwordAfterCommandMetadata(unk2->unk_00); + unk2->unk_10 = GetNextScriptCommandHalfwordAfterCommandMetadata(unk2->unk_00.raw); } void sub_0807E690(Entity* unk1, ScriptExecutionContext* unk2) { - u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); + u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); if ((gUnk_02033280.unk_00 & tmp) != tmp) { gUnk_02033280.unk_06 = 0; } } void sub_0807E6AC(Entity* unk1, ScriptExecutionContext* unk2) { - u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); + u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); if ((gUnk_02033280.unk_00 & tmp) != tmp) { gUnk_02033280.unk_06 = 0; } else { gUnk_02033280.unk_00 &= ~tmp; - gUnk_02033280.unk_07 |= 1; + gUnk_02033280.continueScriptExecutionFlags |= 1; } } @@ -850,7 +1012,7 @@ void sub_0807E6DC(Entity* unk1, ScriptExecutionContext* unk2) { void sub_0807E700(Entity* unk1, ScriptExecutionContext* unk2) { if (gPlayerEntity.action != 0x17) { - gUnk_02033280.unk_07 |= 1; + gUnk_02033280.continueScriptExecutionFlags |= 1; } else { gUnk_02033280.unk_06 = 0; } @@ -860,7 +1022,7 @@ void sub_0807E72C(Entity* unk1, ScriptExecutionContext* unk2) { if (gRoomControls.unk6 & 4) { gUnk_02033280.unk_06 = 0; } else { - gUnk_02033280.unk_07 |= 1; + gUnk_02033280.continueScriptExecutionFlags |= 1; } } @@ -871,11 +1033,11 @@ void sub_0807E75C(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807E778(Entity* unk1, ScriptExecutionContext* unk2) { - gUnk_02033280.unk_08 = unk2->unk_00[1]; + gUnk_02033280.unk_08 = unk2->unk_00.raw[1]; } void sub_0807E788(Entity* unk1, ScriptExecutionContext* unk2) { - gFadeControl.field_0x4 = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); + gFadeControl.field_0x4 = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); } void sub_0807E79C(Entity* unk1, ScriptExecutionContext* unk2) { @@ -923,7 +1085,7 @@ void sub_0807E818(u32 unk1) { } void sub_0807E858(Entity* unk1, ScriptExecutionContext* unk2) { - sub_08050038(unk2->unk_00[1]); + sub_08050038(unk2->unk_00.raw[1]); } void sub_0807E864(Entity* unk1, ScriptExecutionContext* unk2) { @@ -940,7 +1102,7 @@ void sub_0807E888(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807E898(Entity* unk1, ScriptExecutionContext* unk2) { - u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); + u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); gPlayerState.playerAction = tmp; gPlayerState.field_0x38 = tmp >> 8; gPlayerState.field_0x39 = tmp >> 0x10; @@ -948,26 +1110,26 @@ void sub_0807E898(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807E8C4(Entity* unk1, ScriptExecutionContext* unk2) { - StartPlayerScript((u16*)GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00)); + StartPlayerScript((u16*)GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw)); } void sub_0807E8D4(Entity* unk1, ScriptExecutionContext* unk2) { - gPlayerState.field_0x8 = unk2->unk_00[1]; + gPlayerState.field_0x8 = unk2->unk_00.raw[1]; } void sub_0807E8E4(Entity* unk1, ScriptExecutionContext* unk2) { u32 tmp = (gUnk_08016984 & 0x3FF); u32 tmp2; - gPlayerEntity.animationState = tmp2 = (unk2->unk_00[0] - tmp) << 1; + gPlayerEntity.animationState = tmp2 = (unk2->unk_00.raw[0] - tmp) << 1; } void sub_0807E908(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->action = unk2->unk_00[1]; + unk1->action = unk2->unk_00.raw[1]; unk1->previousActionFlag = 0; } void sub_0807E914(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_04 = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); + unk2->unk_04 = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); } void sub_0807E924(Entity* unk1, ScriptExecutionContext* unk2) { @@ -976,14 +1138,14 @@ void sub_0807E924(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807E930(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->field_0x80.HWORD = unk2->unk_00[1]; - InitAnimationForceUpdate(unk1, unk2->unk_00[1]); + unk1->field_0x80.HWORD = unk2->unk_00.raw[1]; + InitAnimationForceUpdate(unk1, unk2->unk_00.raw[1]); } void sub_0807E944(Entity* unk1, ScriptExecutionContext* unk2) { if (unk1->interactType) { unk1->interactType = 0; - gUnk_02033280.unk_07 |= 1; + gUnk_02033280.continueScriptExecutionFlags |= 1; } else { gUnk_02033280.unk_06 = 0; } @@ -1000,7 +1162,7 @@ void sub_0807E974(Entity* unk1, ScriptExecutionContext* unk2) { break; unk1->interactType = 0; unk2->unk_18++; - TextboxNoOverlapFollow(unk2->unk_00[1]); + TextboxNoOverlapFollow(unk2->unk_00.raw[1]); break; case 1: if (gTextBox.doTextBox & 0x7F) @@ -1021,9 +1183,10 @@ void sub_0807E9DC(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807E9E4(Entity* unk1, ScriptExecutionContext* unk2) { - sub_08078784(unk1, unk2->unk_00[1]); + sub_08078784(unk1, unk2->unk_00.raw[1]); } +// compare and do stuff? void sub_0807E9F0(Entity* unk1, ScriptExecutionContext* unk2) { u32 tmp; sub_0801E00C(); @@ -1032,10 +1195,10 @@ void sub_0807E9F0(Entity* unk1, ScriptExecutionContext* unk2) { case 2: gPlayerState.field_0x8b = 3; gUnk_02034490[0] = tmp; - unk2->unk_14 = tmp; + unk2->compareResult = tmp; break; case 1: - unk2->unk_14 = 0; + unk2->compareResult = 0; break; default: goto lbl; @@ -1053,14 +1216,14 @@ void sub_0807EA4C(Entity* unk1, ScriptExecutionContext* unk2) { if (unk1->interactType == 2) { sub_0801DFB4(unk1, 0, 0, 0); unk1->interactType = 0; - gUnk_02033280.unk_07 |= 1; + gUnk_02033280.continueScriptExecutionFlags |= 1; } else { gUnk_02033280.unk_06 = 0; } } void sub_0807EA88(Entity* unk1, ScriptExecutionContext* unk2) { - sub_08078790(unk1, unk2->unk_00[1]); + sub_08078790(unk1, unk2->unk_00.raw[1]); } void sub_0807EA94(Entity* unk1, ScriptExecutionContext* unk2) { @@ -1070,22 +1233,22 @@ void sub_0807EA94(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807EAB4(Entity* unk1, ScriptExecutionContext* unk2) { - TextboxNoOverlapFollow(unk2->unk_00[1]); + TextboxNoOverlapFollow(unk2->unk_00.raw[1]); } void sub_0807EAC0(Entity* unk1, ScriptExecutionContext* unk2) { - TextboxNoOverlap(unk2->unk_00[1], unk1); + TextboxNoOverlap(unk2->unk_00.raw[1], unk1); } void sub_0807EAD0(Entity* unk1, ScriptExecutionContext* unk2) { - TextboxNoOverlapFollow(unk2->unk_00[1]); + TextboxNoOverlapFollow(unk2->unk_00.raw[1]); gTextBox.textWindowPosX = 1; - gTextBox.textWindowPosY = unk2->unk_00[2]; + gTextBox.textWindowPosY = unk2->unk_00.raw[2]; } void sub_0807EAF0(Entity* unk1, ScriptExecutionContext* unk2) { if (gUnk_02033280.unk_06 > unk2->unk_04) { - u16* tmp = unk2->unk_00 + unk2->unk_04; + u16* tmp = unk2->unk_00.raw + unk2->unk_04; TextboxNoOverlapFollow(tmp[1]); } else { TextboxNoOverlapFollow(0); @@ -1097,7 +1260,7 @@ void sub_0807EB18(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807EB28(Entity* unk1, ScriptExecutionContext* unk2) { - sub_08078AA8(unk2->unk_00[1], 0); + sub_08078AA8(unk2->unk_00.raw[1], 0); } void sub_0807EB38(Entity* unk1, ScriptExecutionContext* unk2) { @@ -1105,12 +1268,12 @@ void sub_0807EB38(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807EB44(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->animationState = unk2->unk_00[1]; + unk1->animationState = unk2->unk_00.raw[1]; } void sub_0807EB4C(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->animationState = sub_0806F5B0( - sub_080045B4(unk1, unk2->unk_00[1] + gRoomControls.roomOriginX, unk2->unk_00[2] + gRoomControls.roomOriginY)); + unk1->animationState = sub_0806F5B0(sub_080045B4(unk1, unk2->unk_00.raw[1] + gRoomControls.roomOriginX, + unk2->unk_00.raw[2] + gRoomControls.roomOriginY)); } void sub_0807EB74(Entity* unk1, ScriptExecutionContext* unk2) { @@ -1122,30 +1285,30 @@ void sub_0807EB8C(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807EBA8(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->direction = unk2->unk_00[1]; + unk1->direction = unk2->unk_00.raw[1]; } void sub_0807EBB0(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->direction = unk2->unk_00[1]; + unk1->direction = unk2->unk_00.raw[1]; unk1->animationState = unk1->direction / 4; } void sub_0807EBC0(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->nonPlanarMovement = unk2->unk_00[1]; + unk1->nonPlanarMovement = unk2->unk_00.raw[1]; } void sub_0807EBC8(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->field_0x20 = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); + unk1->field_0x20 = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); } void sub_0807EBD8(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->x.HALF.HI = gRoomControls.roomOriginX + unk2->unk_00[1]; - unk1->y.HALF.HI = gRoomControls.roomOriginY + unk2->unk_00[2]; + unk1->x.HALF.HI = gRoomControls.roomOriginX + unk2->unk_00.raw[1]; + unk1->y.HALF.HI = gRoomControls.roomOriginY + unk2->unk_00.raw[2]; } void sub_0807EBF4(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->x.HALF.HI += unk2->unk_00[1]; - unk1->y.HALF.HI += unk2->unk_00[2]; + unk1->x.HALF.HI += unk2->unk_00.raw[1]; + unk1->y.HALF.HI += unk2->unk_00.raw[2]; } void sub_0807EC08(Entity* unk1, ScriptExecutionContext* unk2) { @@ -1158,7 +1321,7 @@ void nullsub_509(Entity* unk1, ScriptExecutionContext* unk2) { void sub_0807EC1C(Entity* unk1, ScriptExecutionContext* unk2) { if (!unk2->unk_18) { unk2->unk_18 = 1; - unk2->unk_12 = unk2->unk_00[1]; + unk2->unk_12 = unk2->unk_00.raw[1]; unk2->unk_08 |= 2; } sub_0807EC44(unk1, unk2); @@ -1174,7 +1337,7 @@ void sub_0807EC44(Entity* unk1, ScriptExecutionContext* unk2) { void sub_0807EC64(Entity* unk1, ScriptExecutionContext* unk2) { if (!unk2->unk_18) { unk2->unk_18 = 1; - unk2->unk_12 = unk2->unk_00[1]; + unk2->unk_12 = unk2->unk_00.raw[1]; unk1->animationState = 0; unk1->direction = 0; unk2->unk_08 |= 2; @@ -1185,7 +1348,7 @@ void sub_0807EC64(Entity* unk1, ScriptExecutionContext* unk2) { void sub_0807EC94(Entity* unk1, ScriptExecutionContext* unk2) { if (!unk2->unk_18) { unk2->unk_18 = 1; - unk2->unk_12 = unk2->unk_00[1]; + unk2->unk_12 = unk2->unk_00.raw[1]; unk1->animationState = 2; unk1->direction = 8; unk2->unk_08 |= 2; @@ -1196,7 +1359,7 @@ void sub_0807EC94(Entity* unk1, ScriptExecutionContext* unk2) { void sub_0807ECC4(Entity* unk1, ScriptExecutionContext* unk2) { if (!unk2->unk_18) { unk2->unk_18 = 1; - unk2->unk_12 = unk2->unk_00[1]; + unk2->unk_12 = unk2->unk_00.raw[1]; unk1->animationState = 4; unk1->direction = 0x10; unk2->unk_08 |= 2; @@ -1207,7 +1370,7 @@ void sub_0807ECC4(Entity* unk1, ScriptExecutionContext* unk2) { void sub_0807ECF4(Entity* unk1, ScriptExecutionContext* unk2) { if (!unk2->unk_18) { unk2->unk_18 = 1; - unk2->unk_12 = unk2->unk_00[1]; + unk2->unk_12 = unk2->unk_00.raw[1]; unk1->animationState = 6; unk1->direction = 0x18; unk2->unk_08 |= 2; @@ -1219,20 +1382,20 @@ void sub_0807ED24(Entity* unk1, ScriptExecutionContext* unk2) { if (!unk2->unk_18) { s32 tmp, tmp2, tmp3; unk2->unk_18 = 1; - unk2->unk_12 = unk2->unk_00[3]; - tmp = unk2->unk_00[1]; + unk2->unk_12 = unk2->unk_00.raw[3]; + tmp = unk2->unk_00.raw[1]; tmp2 = unk1->x.HALF.HI - gRoomControls.roomOriginX; unk2->unk_1C.WORD = ((tmp - tmp2) << 0x10) / unk2->unk_12; - tmp = unk2->unk_00[2]; + tmp = unk2->unk_00.raw[2]; tmp3 = unk1->y.HALF.HI - gRoomControls.roomOriginY; unk2->unk_20.WORD = ((tmp - tmp3) << 0x10) / unk2->unk_12; - unk1->animationState = sub_0806F5B0(sub_080045B4(unk1, unk2->unk_00[1] + gRoomControls.roomOriginX, - unk2->unk_00[2] + gRoomControls.roomOriginY)); + unk1->animationState = sub_0806F5B0(sub_080045B4(unk1, unk2->unk_00.raw[1] + gRoomControls.roomOriginX, + unk2->unk_00.raw[2] + gRoomControls.roomOriginY)); unk2->unk_08 |= 2; } else { if (!--unk2->unk_12) { - unk1->x.HALF.HI = unk2->unk_00[1] + gRoomControls.roomOriginX; - unk1->y.HALF.HI = unk2->unk_00[2] + gRoomControls.roomOriginY; + unk1->x.HALF.HI = unk2->unk_00.raw[1] + gRoomControls.roomOriginX; + unk1->y.HALF.HI = unk2->unk_00.raw[2] + gRoomControls.roomOriginY; return; } unk1->x.WORD += unk2->unk_1C.WORD; @@ -1241,22 +1404,25 @@ void sub_0807ED24(Entity* unk1, ScriptExecutionContext* unk2) { gUnk_02033280.unk_06 = 0; } +// something else and an if not void sub_0807EDD4(Entity* unk1, ScriptExecutionContext* unk2) { if (!unk2->unk_18) { unk2->unk_18 = 1; sub_0807EE04(unk1, unk2); } sub_0807EE30(unk1, unk2); - if (!unk2->unk_14) { + if (!unk2->compareResult) { gUnk_02033280.unk_06 = 0; } } void sub_0807EE04(Entity* unk1, ScriptExecutionContext* unk2) { - sub_0807DEDC(unk1, unk2, unk2->unk_00[1] + gRoomControls.roomOriginX, unk2->unk_00[2] + gRoomControls.roomOriginY); - gUnk_02033280.unk_07 |= 1; + sub_0807DEDC(unk1, unk2, unk2->unk_00.raw[1] + gRoomControls.roomOriginX, + unk2->unk_00.raw[2] + gRoomControls.roomOriginY); + gUnk_02033280.continueScriptExecutionFlags |= 1; } +// something else and a compare void sub_0807EE30(Entity* unk1, ScriptExecutionContext* unk2) { s32 tmp, tmp2; if (!--unk2->unk_19) { @@ -1271,30 +1437,33 @@ void sub_0807EE30(Entity* unk1, ScriptExecutionContext* unk2) { if (tmp <= 0 && tmp2 <= 0) { unk1->x.HALF.HI = unk2->unk_1C.HALF.HI; unk1->y.HALF.HI = unk2->unk_20.HALF.HI; - unk2->unk_14 = 1; + unk2->compareResult = 1; } else { - unk2->unk_14 = 0; + unk2->compareResult = 0; } } +// another if not and ??? void sub_0807EEB4(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->unk_18) { + if (!unk2->unk_18) { // TODO unk_18 another compare flag? unk2->unk_18 = 1; sub_0807DEDC(unk1, unk2, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI); } sub_0807EE30(unk1, unk2); - if (!unk2->unk_14) { - gUnk_02033280.unk_06 = 0; + if (!unk2->compareResult) { + gUnk_02033280.unk_06 = 0; // TODO research unk_06 } } +// another if not ??? void sub_0807EEF4(Entity* unk1, ScriptExecutionContext* unk2) { if (!unk2->unk_18) { unk2->unk_18 = 1; - sub_0807DEDC(unk1, unk2, unk1->x.HALF.HI + ((s16)unk2->unk_00[1]), unk1->y.HALF.HI + ((s16)unk2->unk_00[2])); + sub_0807DEDC(unk1, unk2, unk1->x.HALF.HI + ((s16)unk2->unk_00.raw[1]), + unk1->y.HALF.HI + ((s16)unk2->unk_00.raw[2])); } sub_0807EE30(unk1, unk2); - if (!unk2->unk_14) { + if (!unk2->compareResult) { gUnk_02033280.unk_06 = 0; } } @@ -1302,8 +1471,8 @@ void sub_0807EEF4(Entity* unk1, ScriptExecutionContext* unk2) { void sub_0807EF3C(Entity* unk1, ScriptExecutionContext* unk2) { if (!unk2->unk_18) { unk2->unk_18 = 1; - unk1->field_0x20 = ((s16)unk2->unk_00[1]) << 8; - unk2->unk_1C.HALF.LO = unk2->unk_00[2] << 8; + unk1->field_0x20 = ((s16)unk2->unk_00.raw[1]) << 8; + unk2->unk_1C.HALF.LO = unk2->unk_00.raw[2] << 8; sub_08003FC4(unk1, (u16)unk2->unk_1C.HALF.LO); } else { if (!sub_08003FC4(unk1, (u16)unk2->unk_1C.HALF.LO)) @@ -1313,27 +1482,27 @@ void sub_0807EF3C(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807EF80(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_08 |= 1 << unk2->unk_00[1]; + unk2->unk_08 |= 1 << unk2->unk_00.raw[1]; } void sub_0807EF90(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_08 |= 1 << unk2->unk_00[1]; + unk2->unk_08 |= 1 << unk2->unk_00.raw[1]; } void sub_0807EFA0(Entity* unk1, ScriptExecutionContext* unk2) { - SoundReq(unk2->unk_00[1]); + SoundReq(unk2->unk_00.raw[1]); } void sub_0807EFAC(Entity* unk1, ScriptExecutionContext* unk2) { - if (unk2->unk_00[1] >= 100) { + if (unk2->unk_00.raw[1] >= 100) { SoundReq(gArea.musicIndex); } else { - SoundReq(unk2->unk_00[1]); + SoundReq(unk2->unk_00.raw[1]); } } void sub_0807EFD4(Entity* unk1, ScriptExecutionContext* unk2) { - SoundReq(GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00)); + SoundReq(GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw)); } void sub_0807EFE4(Entity* unk1, ScriptExecutionContext* unk2) { @@ -1341,11 +1510,11 @@ void sub_0807EFE4(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807EFF4(Entity* unk1, ScriptExecutionContext* unk2) { - ModRupees((s16)unk2->unk_00[1]); + ModRupees((s16)unk2->unk_00.raw[1]); } void sub_0807F004(Entity* unk1, ScriptExecutionContext* unk2) { - ModHealth(unk2->unk_00[1]); + ModHealth(unk2->unk_00.commands[0].metadata); } void sub_0807F010(Entity* unk1, ScriptExecutionContext* unk2) { @@ -1355,27 +1524,28 @@ void sub_0807F010(Entity* unk1, ScriptExecutionContext* unk2) { void sub_0807F034(Entity* unk1, ScriptExecutionContext* unk2) { u32 tmp = 0; - if (unk2->unk_00[1] == 0x3F) { + if (unk2->unk_00.raw[1] == 0x3F) { tmp = unk2->unk_04; } - sub_080A7C18(unk2->unk_00[1], tmp, 0); + sub_080A7C18(unk2->unk_00.raw[1], tmp, 0); } void sub_0807F050(Entity* unk1, ScriptExecutionContext* unk2) { - sub_080A7C18(0x5C, unk2->unk_00[1], 0); + sub_080A7C18(0x5C, unk2->unk_00.raw[1], 0); } +// get inventory value and compare ?? void sub_0807F060(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_04 = GetInventoryValue(unk2->unk_00[1]); - unk2->unk_14 = unk2->unk_04 != 0; + unk2->unk_04 = GetInventoryValue(unk2->unk_00.raw[1]); + unk2->compareResult = unk2->unk_04 != 0; } void sub_0807F078(Entity* unk1, ScriptExecutionContext* unk2) { - sub_0807CAA0(unk2->unk_00[1], unk2->unk_00[2]); + sub_0807CAA0(unk2->unk_00.raw[1], unk2->unk_00.raw[2]); } void sub_0807F088(Entity* unk1, ScriptExecutionContext* unk2) { - sub_080A7C18(unk2->unk_00[1], 0, 3); + sub_080A7C18(unk2->unk_00.raw[1], 0, 3); } void sub_0807F098(Entity* unk1, ScriptExecutionContext* unk2) { @@ -1387,9 +1557,9 @@ void sub_0807F0A4(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807F0B4(Entity* unk1, ScriptExecutionContext* unk2) { - gRoomControls.unk5 = unk2->unk_00[1] & 7; + gRoomControls.unk5 = unk2->unk_00.raw[1] & 7; } void sub_0807F0C8(Entity* unk1, ScriptExecutionContext* unk2) { - sub_08080964(unk2->unk_00[1], unk2->unk_00[2]); + sub_08080964(unk2->unk_00.raw[1], unk2->unk_00.raw[2]); } -- cgit v1.2.3 From 654434c74baea77656738fbba7627dae150e5ca7 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Thu, 4 Mar 2021 05:56:13 +0100 Subject: Start building macros for scripts --- src/script.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/script.c') diff --git a/src/script.c b/src/script.c index 495a01d5..6d136b5a 100644 --- a/src/script.c +++ b/src/script.c @@ -981,6 +981,7 @@ void sub_0807E674(Entity* unk1, ScriptExecutionContext* unk2) { ClearRoomFlag(unk2->unk_00.raw[1]); } +// set unk2->unk_10 to meta void sub_0807E680(Entity* unk1, ScriptExecutionContext* unk2) { unk2->unk_10 = GetNextScriptCommandHalfwordAfterCommandMetadata(unk2->unk_00.raw); } @@ -1293,6 +1294,7 @@ void sub_0807EBB0(Entity* unk1, ScriptExecutionContext* unk2) { unk1->animationState = unk1->direction / 4; } +// set nonPlanarMovement void sub_0807EBC0(Entity* unk1, ScriptExecutionContext* unk2) { unk1->nonPlanarMovement = unk2->unk_00.raw[1]; } -- cgit v1.2.3 From 40a3d866b12f6947ce23eb33d4b3ebd9bc27caca Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Thu, 4 Mar 2021 07:21:24 +0100 Subject: Split off second script --- src/script.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/script.c') diff --git a/src/script.c b/src/script.c index 6d136b5a..bef65e05 100644 --- a/src/script.c +++ b/src/script.c @@ -647,6 +647,7 @@ void sub_0807E014(Entity* unk1, ScriptExecutionContext* unk2) { gUnk_02033280.continueScriptExecutionFlags &= ~2; } +// Jump by offset void sub_0807E024(Entity* unk1, ScriptExecutionContext* unk2) { s16 tmp; // get metadata -> tmp @@ -677,6 +678,7 @@ void sub_0807E078(Entity* unk1, ScriptExecutionContext* unk2) { } } +// repoint the execution somewhere else void sub_0807E0A0(Entity* unk1, ScriptExecutionContext* unk2) { unk2->unk_00.raw = (u16*)GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); gUnk_02033280.unk_06 = 0; @@ -1483,10 +1485,12 @@ void sub_0807EF3C(Entity* unk1, ScriptExecutionContext* unk2) { gUnk_02033280.unk_06 = 0; } +// set one bit in unk_08 void sub_0807EF80(Entity* unk1, ScriptExecutionContext* unk2) { unk2->unk_08 |= 1 << unk2->unk_00.raw[1]; } +// set one bit in unk_08 void sub_0807EF90(Entity* unk1, ScriptExecutionContext* unk2) { unk2->unk_08 |= 1 << unk2->unk_00.raw[1]; } -- cgit v1.2.3 From 1a8fad358a3d224bb035b8698162540a1372575b Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Thu, 4 Mar 2021 23:37:57 +0100 Subject: Reset changes to script.c --- src/script.c | 628 +++++++++++++++++++++-------------------------------------- 1 file changed, 226 insertions(+), 402 deletions(-) (limited to 'src/script.c') diff --git a/src/script.c b/src/script.c index bef65e05..494e0ae5 100644 --- a/src/script.c +++ b/src/script.c @@ -154,147 +154,30 @@ void sub_0807F0C8(Entity*, ScriptExecutionContext*); extern void CreateSpeechBubbleExclamationMark(Entity*, u32, u32); extern void CreateSpeechBubbleQuestionMark(Entity*, u32, u32); extern void sub_0801C4A0(u32); -// size: 139 -void (*const scriptOperations[])() = { - nullsub_507, // 0 - sub_0807E004, // 1 - sub_0807E014, // 2 - sub_0807E024, // 3 - sub_0807E050, // 4 - sub_0807E064, // 5 - sub_0807E078, // 6 - sub_0807E0A0, // 7 - sub_0807E0B8, // 8 - sub_0807E0CC, // 9 - sub_0807E0E0, // 10 - sub_0807E10C, // 11 - sub_0807E124, // 12 - sub_0807E148, // 13 - sub_0807E158, // 14 - sub_0807E188, // 15 - sub_0807E1D8, // 16 - sub_0807E4AC, // defined out of order 17 - sub_0807E200, // 18 - sub_0807E220, // 19 - sub_0807E240, // 20 - sub_0807E260, // 21 - sub_0807E280, // 22 - sub_0807E2A8, // 23 - sub_0807E2E4, // 24 - sub_0807E30C, // 25 - sub_0807E390, // 26 - sub_0807E3BC, // 27 - sub_0807E3E8, // 28 - sub_0807E40C, // 29 - sub_0807E42C, // 30 - sub_0807E48C, // 31 - sub_0807E4CC, // 32 - sub_0807E4EC, // 33 - sub_0807E514, // 34 - sub_0807E538, // 35 - sub_0807E564, // 36 - sub_0807E584, // 37 - sub_0807E5A0, // 38 - sub_0807E5CC, // 39 - sub_0807E5F8, // 40 - sub_0807E610, // 41 - sub_0807E628, // 42 - sub_0807E634, // 43 - sub_0807E644, // 44 - sub_0807E650, // 45 - sub_0807E65C, // 46 - sub_0807E668, // 47 - sub_0807E674, // 48 - sub_0807E680, // 49 - sub_0807E690, // 50 - sub_0807E6AC, // 51 - sub_0807E6DC, // 52 - sub_0807E700, // 53 - sub_0807E72C, // 54 - sub_0807E75C, // 55 - sub_0807E778, // 56 - sub_0807E788, // 57 - sub_0807E79C, // 58 - nullsub_508, // 59 - sub_0807E7B0, // 60 - sub_0807E7C4, // 61 - sub_0807E7D8, // 62 - sub_0807E7EC, // 63 - sub_0807E800, // 64 - sub_0807E80C, // 65 - sub_0807E858, // 66 - sub_0807E864, // 67 - sub_0807E878, // 68 - sub_0807E888, // 69 - sub_0807E898, // 70 - sub_0807E8C4, // 71 - sub_0807E8D4, // 72 - sub_0807E8E4, // 73 - sub_0807E8E4, // 74// duplicate - sub_0807E8E4, // 75// duplicate - sub_0807E8E4, // 76// duplicate - sub_0807E908, // 77 - sub_0807E914, // 78 - sub_0807E924, // 79 - sub_0807E930, // 80 - sub_0807E944, // 81 - sub_0807E974, // 82 - sub_0807E9D4, // 83 - sub_0807E9DC, // 84 - sub_0807E9E4, // 85 - sub_0807E9F0, // 86 - sub_0807EA4C, // 87 - sub_0807EA88, // 88 - sub_0807EA94, // 89 - sub_0807EAB4, // 90 - sub_0807EAC0, // 91 - sub_0807EAD0, // 92 - sub_0807EAF0, // 93 - sub_0807EB18, // 94 - sub_0807EB28, // 95 - sub_0807EB38, // 96 - sub_0807EB44, // 97 - sub_0807EB4C, // 98 - sub_0807EB74, // 99 - sub_0807EB8C, // 100 - sub_0807EBA8, // 101 - sub_0807EBB0, // 102 - sub_0807EBC0, // 103 - sub_0807EBC8, // 104 - sub_0807EBD8, // 105 - sub_0807EBF4, // 106 - sub_0807EC08, // 107 - nullsub_509, // 108 - sub_0807EC1C, // 109 - sub_0807EC64, // 110 - sub_0807EC94, // 111 - sub_0807ECC4, // 112 - sub_0807ECF4, // 113 - sub_0807ED24, // 114 - sub_0807EDD4, // 115 - sub_0807EE04, // 116 - sub_0807EE30, // 117 - sub_0807EEB4, // 118 - sub_0807EEF4, // 119 - sub_0807EF3C, // 120 - sub_0807EF80, // 121 - sub_0807EF90, // 122 - sub_0807EFA0, // 123 - sub_0807EFAC, // 124 - sub_0807EFD4, // 125 - sub_0807EFE4, // 126 - sub_0807EFF4, // 127 - sub_0807F004, // 128 - sub_0807F010, // 129 - sub_0807F034, // 130 - sub_0807F050, // 131 - sub_0807F060, // 132 - sub_0807F078, // 133 - sub_0807F088, // 134 - sub_0807F098, // 135 - sub_0807F0A4, // 136 - sub_0807F0B4, // 137 - sub_0807F0C8 // 138 + +void (*const gUnk_0811E524[])() = { + nullsub_507, sub_0807E004, sub_0807E014, sub_0807E024, sub_0807E050, sub_0807E064, sub_0807E078, sub_0807E0A0, + sub_0807E0B8, sub_0807E0CC, sub_0807E0E0, sub_0807E10C, sub_0807E124, sub_0807E148, sub_0807E158, sub_0807E188, + sub_0807E1D8, + sub_0807E4AC, // defined out of order + sub_0807E200, sub_0807E220, sub_0807E240, sub_0807E260, sub_0807E280, sub_0807E2A8, sub_0807E2E4, sub_0807E30C, + sub_0807E390, sub_0807E3BC, sub_0807E3E8, sub_0807E40C, sub_0807E42C, sub_0807E48C, sub_0807E4CC, sub_0807E4EC, + sub_0807E514, sub_0807E538, sub_0807E564, sub_0807E584, sub_0807E5A0, sub_0807E5CC, sub_0807E5F8, sub_0807E610, + sub_0807E628, sub_0807E634, sub_0807E644, sub_0807E650, sub_0807E65C, sub_0807E668, sub_0807E674, sub_0807E680, + sub_0807E690, sub_0807E6AC, sub_0807E6DC, sub_0807E700, sub_0807E72C, sub_0807E75C, sub_0807E778, sub_0807E788, + sub_0807E79C, nullsub_508, sub_0807E7B0, sub_0807E7C4, sub_0807E7D8, sub_0807E7EC, sub_0807E800, sub_0807E80C, + sub_0807E858, sub_0807E864, sub_0807E878, sub_0807E888, sub_0807E898, sub_0807E8C4, sub_0807E8D4, sub_0807E8E4, + sub_0807E8E4, // duplicate + sub_0807E8E4, // duplicate + sub_0807E8E4, // duplicate + sub_0807E908, sub_0807E914, sub_0807E924, sub_0807E930, sub_0807E944, sub_0807E974, sub_0807E9D4, sub_0807E9DC, + sub_0807E9E4, sub_0807E9F0, sub_0807EA4C, sub_0807EA88, sub_0807EA94, sub_0807EAB4, sub_0807EAC0, sub_0807EAD0, + sub_0807EAF0, sub_0807EB18, sub_0807EB28, sub_0807EB38, sub_0807EB44, sub_0807EB4C, sub_0807EB74, sub_0807EB8C, + sub_0807EBA8, sub_0807EBB0, sub_0807EBC0, sub_0807EBC8, sub_0807EBD8, sub_0807EBF4, sub_0807EC08, nullsub_509, + sub_0807EC1C, sub_0807EC64, sub_0807EC94, sub_0807ECC4, sub_0807ECF4, sub_0807ED24, sub_0807EDD4, sub_0807EE04, + sub_0807EE30, sub_0807EEB4, sub_0807EEF4, sub_0807EF3C, sub_0807EF80, sub_0807EF90, sub_0807EFA0, sub_0807EFAC, + sub_0807EFD4, sub_0807EFE4, sub_0807EFF4, sub_0807F004, sub_0807F010, sub_0807F034, sub_0807F050, sub_0807F060, + sub_0807F078, sub_0807F088, sub_0807F098, sub_0807F0A4, sub_0807F0B4, sub_0807F0C8 }; extern const u16 gUnk_08016984; @@ -315,7 +198,7 @@ ScriptExecutionContext* CreateScriptExecutionContext(void) { context = gScriptExecutionContextArray; do { - if (context->unk_00.raw == 0) { + if (context->unk_00 == 0) { return context; } context++; @@ -327,21 +210,20 @@ void DestroyScriptExecutionContext(ScriptExecutionContext* context) { MemClear32(context, sizeof(ScriptExecutionContext)); } -ScriptExecutionContext* StartCutscene(Entity* entity, u16* scriptCode) { +ScriptExecutionContext* StartCutscene(Entity* entity, u16* unk_2) { ScriptExecutionContext* context; context = CreateScriptExecutionContext(); if (context) { - sub_0807DAF0(entity, context, scriptCode); + sub_0807DAF0(entity, context, unk_2); } return context; } -// start script on entity -void sub_0807DAF0(Entity* entity, ScriptExecutionContext* context, u16* scriptCode) { +void sub_0807DAF0(Entity* entity, ScriptExecutionContext* context, u16* unk1) { entity->flags = entity->flags | 2; *(ScriptExecutionContext**)&entity->cutsceneBeh = context; - sub_0807DB88(context, scriptCode); + sub_0807DB88(context, unk1); } void UnloadCutsceneData(Entity* entity) { @@ -356,7 +238,7 @@ void StartPlayerScript(u16* unk1) { Entity* player; MemClear32(&gPlayerScriptExecutionContext, sizeof(gPlayerScriptExecutionContext)); - gPlayerScriptExecutionContext.unk_00.raw = unk1; + gPlayerScriptExecutionContext.unk_00 = unk1; player = &gPlayerEntity; *(ScriptExecutionContext**)&player->cutsceneBeh = &gPlayerScriptExecutionContext; gPlayerState.playerAction = 0x1c; @@ -372,15 +254,14 @@ ScriptExecutionContext* sub_0807DB68(Entity* entity, u16* unk1) { if (context) { entity->flags |= 2; *(ScriptExecutionContext**)&entity->field_0x3c = context; - context->unk_00.raw = unk1; + context->unk_00 = unk1; } return context; } -// reset ScriptExecutionContext and set new commands? -void sub_0807DB88(ScriptExecutionContext* context, u16* scriptCode) { +void sub_0807DB88(ScriptExecutionContext* context, u16* unk1) { MemClear32(context, sizeof(ScriptExecutionContext)); - context->unk_00.raw = scriptCode; + context->unk_00 = unk1; } void sub_0807DB98(Entity* entity, ScriptExecutionContext* context) { @@ -469,9 +350,8 @@ void sub_0807DD64(Entity* entity) { entity->field_0x82.HWORD = 0; } -// Special script start for windTribespeople? -void sub_0807DD80(Entity* entity, u16* scriptCode) { - sub_0807DB88(*(ScriptExecutionContext**)&entity->cutsceneBeh, scriptCode); +void sub_0807DD80(Entity* entity, u16* unk1) { + sub_0807DB88(*(ScriptExecutionContext**)&entity->cutsceneBeh, unk1); sub_0807DD64(entity); } @@ -481,17 +361,16 @@ void sub_0807DD94(Entity* entity, void (*function)(Entity*, ScriptExecutionConte sub_0807DE80(entity); } -// executeScript commandset, then call the function (or sub_0807DB98 if NULL), then delete if no next entity void sub_0807DDAC(Entity* entity, void (*function)(Entity*, ScriptExecutionContext*)) { - ScriptExecutionContext** context; + ScriptExecutionContext** piVar1; - context = (ScriptExecutionContext**)&entity->cutsceneBeh; - if (*context) { - ExecuteScriptCommandSet(entity, *context); + piVar1 = (ScriptExecutionContext**)&entity->cutsceneBeh; + if (*piVar1) { + ExecuteScriptCommandSet(entity, *piVar1); if (function) { - function(entity, *context); + function(entity, *piVar1); } else { - sub_0807DB98(entity, *context); + sub_0807DB98(entity, *piVar1); } if (!entity->next) { DeleteThisEntity(); @@ -573,7 +452,7 @@ void sub_0807DEDC(Entity* entity, ScriptExecutionContext* context, u32 arg2, u32 context->unk_19 = 8; context->unk_08 |= 2; - context->compareResult = 0; + context->unk_14 = 0; context->unk_1C.HALF.HI = arg2; context->unk_20.HALF.HI = arg3; t0 = context->unk_1C.HALF.HI - entity->x.HALF.HI; @@ -603,142 +482,123 @@ void sub_0807DF50(void) { } void ExecuteScriptCommandSet(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->unk_00.raw) + if (!unk2->unk_00) return; if (unk2->unk_10) { unk2->unk_10--; } else { struct_02033280* tmp2 = &gUnk_02033280; - // unk_07 bit 1 is being reset in each iteration - // but bit 2 is also tested, so it can be set to continue execution until you reset it - - tmp2->continueScriptExecutionFlags = 0; + tmp2->unk_07 = 0; do { - u32 cmd = GetNextScriptCommandHalfword(unk2->unk_00.raw); + u32 cmd = GetNextScriptCommandHalfword(unk2->unk_00); u16* tmp; if (cmd == 0xFFFF) return; - // after cutting of 10 bits, this is the amount to advance the unk_00 pointer of ScriptExecutionContext unk2 tmp2->unk_06 = cmd >> 0xA; - // lower 10 bits are the operationId (index to scriptOperations pointer array) - tmp2->operationId = cmd & 0x3FF; - tmp = unk2->unk_00.raw; - tmp2->continueScriptExecutionFlags &= ~1; - scriptOperations[tmp2->operationId](unk1, unk2); - unk2->unk_00.raw += tmp2->unk_06; - if (tmp != unk2->unk_00.raw) { // unk_00 was changed by tmp->unk_06 or the executed function -> set a flag - // to execute the next instruction or something? + tmp2->unk_04 = cmd & 0x3FF; + tmp = unk2->unk_00; + tmp2->unk_07 &= ~1; + gUnk_0811E524[tmp2->unk_04](unk1, unk2); + unk2->unk_00 += tmp2->unk_06; + if (tmp != unk2->unk_00) { unk2->unk_18 = 0; } - } while (tmp2->continueScriptExecutionFlags & 3); + } while (tmp2->unk_07 & 3); } } void nullsub_507(Entity* unk1, ScriptExecutionContext* unk2) { } -// Start executing scripts void sub_0807E004(Entity* unk1, ScriptExecutionContext* unk2) { - gUnk_02033280.continueScriptExecutionFlags |= 2; + gUnk_02033280.unk_07 |= 2; } -// Stop executing scripts void sub_0807E014(Entity* unk1, ScriptExecutionContext* unk2) { - gUnk_02033280.continueScriptExecutionFlags &= ~2; + gUnk_02033280.unk_07 &= ~2; } -// Jump by offset void sub_0807E024(Entity* unk1, ScriptExecutionContext* unk2) { s16 tmp; - // get metadata -> tmp - unk2->unk_00.raw++; - tmp = GetNextScriptCommandHalfword(unk2->unk_00.raw); - unk2->unk_00.raw += (tmp / 2); + unk2->unk_00++; + tmp = GetNextScriptCommandHalfword(unk2->unk_00); + unk2->unk_00 += (tmp / 2); gUnk_02033280.unk_06 = 0; } -// if void sub_0807E050(Entity* unk1, ScriptExecutionContext* unk2) { - if (unk2->compareResult) { + if (unk2->unk_14) { sub_0807E024(unk1, unk2); } } -// if not void sub_0807E064(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->compareResult) { + if (!unk2->unk_14) { sub_0807E024(unk1, unk2); } } void sub_0807E078(Entity* unk1, ScriptExecutionContext* unk2) { if (gUnk_02033280.unk_06 > unk2->unk_04) { - unk2->unk_00.raw += unk2->unk_04; + unk2->unk_00 += unk2->unk_04; sub_0807E024(unk1, unk2); } } -// repoint the execution somewhere else void sub_0807E0A0(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_00.raw = (u16*)GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); + unk2->unk_00 = (u16*)GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); gUnk_02033280.unk_06 = 0; } -// if void sub_0807E0B8(Entity* unk1, ScriptExecutionContext* unk2) { - if (unk2->compareResult) { + if (unk2->unk_14) { sub_0807E0A0(unk1, unk2); } } -// if not void sub_0807E0CC(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->compareResult) { + if (!unk2->unk_14) { sub_0807E0A0(unk1, unk2); } } void sub_0807E0E0(Entity* unk1, ScriptExecutionContext* unk2) { if (gUnk_02033280.unk_06 > (unk2->unk_04 << 1) + 1) { - unk2->unk_00.raw += unk2->unk_04 << 1; + unk2->unk_00 += unk2->unk_04 << 1; sub_0807E0A0(unk1, unk2); } } -// Execute function via pointer void sub_0807E10C(Entity* unk1, ScriptExecutionContext* unk2) { - ((void (*)(Entity*, ScriptExecutionContext*))GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw))(unk1, - unk2); + ((void (*)(Entity*, ScriptExecutionContext*))GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00))(unk1, + unk2); } -// Execute function via pointer but set context->unk_04 to some meta/cmd before? void sub_0807E124(Entity* unk1, ScriptExecutionContext* unk2) { void (*tmp)(Entity*, ScriptExecutionContext*) = - (void (*)(Entity*, ScriptExecutionContext*))GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); - unk2->unk_04 = GetNextScriptCommandWord(unk2->unk_00.raw + 3); + (void (*)(Entity*, ScriptExecutionContext*))GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); + unk2->unk_04 = GetNextScriptCommandWord(unk2->unk_00 + 3); tmp(unk1, unk2); } void sub_0807E148(Entity* unk1, ScriptExecutionContext* unk2) { - LoadRoomEntityList(GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw)); + LoadRoomEntityList(GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00)); } -// compare ??? void sub_0807E158(Entity* unk1, ScriptExecutionContext* unk2) { - u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); + u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); u32 tmp2 = 0; u32 tmp3 = gUnk_02033280.unk_00; if ((tmp3 & tmp) == tmp) tmp2 = 1; - unk2->compareResult = tmp2; + unk2->unk_14 = tmp2; gUnk_02033280.unk_00 = tmp3 & ~tmp; - gUnk_02033280.continueScriptExecutionFlags |= 1; + gUnk_02033280.unk_07 |= 1; } -// different compare functions (dungeon map, dungeon compass, dungeon big key, dungeon small keys, inventory value) void sub_0807E188(Entity* unk1, ScriptExecutionContext* unk2) { u32 tmp; - u32 tmp2 = GetNextScriptCommandHalfwordAfterCommandMetadata(unk2->unk_00.raw); + u32 tmp2 = GetNextScriptCommandHalfwordAfterCommandMetadata(unk2->unk_00); switch (tmp2) { case 0x53: tmp = sub_08052734(); @@ -755,75 +615,66 @@ void sub_0807E188(Entity* unk1, ScriptExecutionContext* unk2) { default: tmp = GetInventoryValue(tmp2); } - unk2->compareResult = tmp; - gUnk_02033280.continueScriptExecutionFlags |= 1; + unk2->unk_14 = tmp; + gUnk_02033280.unk_07 |= 1; } -// compare GetInventoryValue(meta) == 2 void sub_0807E1D8(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->compareResult = GetInventoryValue(unk2->unk_00.raw[1]) == 2; - gUnk_02033280.continueScriptExecutionFlags |= 1; + unk2->unk_14 = GetInventoryValue(unk2->unk_00[1]) == 2; + gUnk_02033280.unk_07 |= 1; } -// compare CheckLocalFlag void sub_0807E200(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->compareResult = CheckLocalFlag(unk2->unk_00.raw[1]); - gUnk_02033280.continueScriptExecutionFlags |= 1; + unk2->unk_14 = CheckLocalFlag(unk2->unk_00[1]); + gUnk_02033280.unk_07 |= 1; } -// compare CheckLocalFlagByOffset(metadata1, metadata2) void sub_0807E220(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->compareResult = CheckLocalFlagByOffset(unk2->unk_00.raw[1], unk2->unk_00.raw[2]); - gUnk_02033280.continueScriptExecutionFlags |= 1; + unk2->unk_14 = CheckLocalFlagByOffset(unk2->unk_00[1], unk2->unk_00[2]); + gUnk_02033280.unk_07 |= 1; } -// compare CheckGlobalFlag void sub_0807E240(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->compareResult = CheckGlobalFlag(GetNextScriptCommandHalfwordAfterCommandMetadata(unk2->unk_00.raw)); - gUnk_02033280.continueScriptExecutionFlags |= 1; + unk2->unk_14 = CheckGlobalFlag(GetNextScriptCommandHalfwordAfterCommandMetadata(unk2->unk_00)); + gUnk_02033280.unk_07 |= 1; } -// compare CheckRoomFlag void sub_0807E260(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->compareResult = CheckRoomFlag(unk2->unk_00.raw[1]); - gUnk_02033280.continueScriptExecutionFlags |= 1; + unk2->unk_14 = CheckRoomFlag(unk2->unk_00[1]); + gUnk_02033280.unk_07 |= 1; } -// compare checkPlayerInRegion (square?) void sub_0807E280(Entity* unk1, ScriptExecutionContext* unk2) { u32 x, y, width, height; - width = unk2->unk_00.raw[3]; + width = unk2->unk_00[3]; height = width >> 8; width &= 0xFF; - x = unk2->unk_00.raw[1]; - y = unk2->unk_00.raw[2]; - unk2->compareResult = CheckPlayerInRegion(x, y, width, height); - gUnk_02033280.continueScriptExecutionFlags |= 1; + x = unk2->unk_00[1]; + y = unk2->unk_00[2]; + unk2->unk_14 = CheckPlayerInRegion(x, y, width, height); + gUnk_02033280.unk_07 |= 1; } -// compare CheckPlayerInRegion (room?) void sub_0807E2A8(Entity* unk1, ScriptExecutionContext* unk2) { u32 x, y, width, height; - width = unk2->unk_00.raw[1] & 0xFF; - height = unk2->unk_00.raw[1] >> 8; + width = unk2->unk_00[1] & 0xFF; + height = unk2->unk_00[1] >> 8; x = unk1->x.HALF.HI - gRoomControls.roomOriginX; y = unk1->y.HALF.HI - gRoomControls.roomOriginY; - unk2->compareResult = CheckPlayerInRegion(x, y, width, height); - gUnk_02033280.continueScriptExecutionFlags |= 1; + unk2->unk_14 = CheckPlayerInRegion(x, y, width, height); + gUnk_02033280.unk_07 |= 1; } -// compare and reset Entity->interactType void sub_0807E2E4(Entity* unk1, ScriptExecutionContext* unk2) { if (unk1->interactType) { unk1->interactType = 0; - unk2->compareResult = 1; + unk2->unk_14 = 1; } else { - unk2->compareResult = 0; + unk2->unk_14 = 0; } - gUnk_02033280.continueScriptExecutionFlags |= 1; + gUnk_02033280.unk_07 |= 1; } -// compare and reset interactType while setting animationState ?? void sub_0807E30C(Entity* unk1, ScriptExecutionContext* unk2) { if ((unk2->unk_1A & 0xF) == 0 && (gPlayerState.flags.all & 0x80) == 0 && sub_080041A0(unk1, &gPlayerEntity, 0x28, 0x28)) { @@ -832,176 +683,160 @@ void sub_0807E30C(Entity* unk1, ScriptExecutionContext* unk2) { unk2->unk_1A++; if (unk1->interactType) { unk1->interactType = 0; - unk2->compareResult = 1; + unk2->unk_14 = 1; unk1->animationState = sub_0806F5B0(GetFacingDirection(unk1, &gPlayerEntity)); } else { - unk2->compareResult = 0; + unk2->unk_14 = 0; } - gUnk_02033280.continueScriptExecutionFlags |= 1; + gUnk_02033280.unk_07 |= 1; } -// compare enough rupees void sub_0807E390(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->compareResult = (unk2->unk_00.raw[1] <= gSave.stats.rupees); - gUnk_02033280.continueScriptExecutionFlags |= 1; + unk2->unk_14 = (unk2->unk_00[1] <= gSave.stats.rupees); + gUnk_02033280.unk_07 |= 1; } -// compare enough ??? void sub_0807E3BC(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->compareResult = (unk2->unk_00.raw[1] <= gSave.stats.field_0x1a); - gUnk_02033280.continueScriptExecutionFlags |= 1; + unk2->unk_14 = (unk2->unk_00[1] <= gSave.stats.field_0x1a); + gUnk_02033280.unk_07 |= 1; } -// compare ??? void sub_0807E3E8(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->compareResult = !gUnk_02000040.unk_01; - gUnk_02033280.continueScriptExecutionFlags |= 1; + unk2->unk_14 = !gUnk_02000040.unk_01; + gUnk_02033280.unk_07 |= 1; } -// compare CheckKinstoneFused void sub_0807E40C(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->compareResult = CheckKinstoneFused(unk2->unk_00.raw[1]); - gUnk_02033280.continueScriptExecutionFlags |= 1; + unk2->unk_14 = CheckKinstoneFused(unk2->unk_00[1]); + gUnk_02033280.unk_07 |= 1; } -// compare enough rupees and remove rupees ?? void sub_0807E42C(Entity* unk1, ScriptExecutionContext* unk2) { u32 tmp, tmp2; s32 tmp3; - tmp = unk2->unk_00.raw[1]; - tmp2 = unk2->unk_00.raw[2]; + tmp = unk2->unk_00[1]; + tmp2 = unk2->unk_00[2]; if (!tmp) { tmp = gRoomVars.itemForSaleIndex; tmp2 = gRoomVars.field_0x7; } tmp3 = sub_08053FE0(tmp); - unk2->compareResult = (tmp3 <= gSave.stats.rupees); - if (unk2->compareResult) { + unk2->unk_14 = (tmp3 <= gSave.stats.rupees); + if (unk2->unk_14) { ModRupees(-tmp3); sub_080A7C18(tmp, tmp2, 0); gRoomVars.itemForSaleIndex = 0; gRoomVars.field_0x7 = 0; } - gUnk_02033280.continueScriptExecutionFlags |= 1; + gUnk_02033280.unk_07 |= 1; } -// compare ?? void sub_0807E48C(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->compareResult = sub_080544DC(unk2->unk_00.raw[1]); - gUnk_02033280.continueScriptExecutionFlags |= 1; + unk2->unk_14 = sub_080544DC(unk2->unk_00[1]); + gUnk_02033280.unk_07 |= 1; } -// compare itemForSaleIndex?? void sub_0807E4AC(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->compareResult = !!gRoomVars.itemForSaleIndex; - gUnk_02033280.continueScriptExecutionFlags |= 1; + unk2->unk_14 = !!gRoomVars.itemForSaleIndex; + gUnk_02033280.unk_07 |= 1; } -// compare ?? void sub_0807E4CC(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->compareResult = !!(unk2->unk_04 & unk2->unk_00.raw[1]); - gUnk_02033280.continueScriptExecutionFlags |= 1; + unk2->unk_14 = !!(unk2->unk_04 & unk2->unk_00[1]); + gUnk_02033280.unk_07 |= 1; } -// compare meta & unk_04 ?? void sub_0807E4EC(Entity* unk1, ScriptExecutionContext* unk2) { - u32 tmp = unk2->unk_00.raw[1]; - unk2->compareResult = tmp == (tmp & unk2->unk_04); - gUnk_02033280.continueScriptExecutionFlags |= 1; + u32 tmp = unk2->unk_00[1]; + unk2->unk_14 = tmp == (tmp & unk2->unk_04); + gUnk_02033280.unk_07 |= 1; } -// compare meta == unk_04 ?? void sub_0807E514(Entity* unk1, ScriptExecutionContext* unk2) { - u32 tmp = unk2->unk_00.raw[1]; - unk2->compareResult = tmp == unk2->unk_04; - gUnk_02033280.continueScriptExecutionFlags |= 1; + u32 tmp = unk2->unk_00[1]; + unk2->unk_14 = tmp == unk2->unk_04; + gUnk_02033280.unk_07 |= 1; } -// compare player state flags ??? void sub_0807E538(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->compareResult = !!(GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw) & gPlayerState.flags.all); - gUnk_02033280.continueScriptExecutionFlags |= 1; + unk2->unk_14 = !!(GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00) & gPlayerState.flags.all); + gUnk_02033280.unk_07 |= 1; } -// compare player state flags ??? void sub_0807E564(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->compareResult = (gPlayerState.flags.all >> 7) & 1; - gUnk_02033280.continueScriptExecutionFlags |= 1; + unk2->unk_14 = (gPlayerState.flags.all >> 7) & 1; + gUnk_02033280.unk_07 |= 1; } -// compare entity height != 0 void sub_0807E584(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->compareResult = unk1->height.WORD != 0; - gUnk_02033280.continueScriptExecutionFlags |= 1; + unk2->unk_14 = unk1->height.WORD != 0; + gUnk_02033280.unk_07 |= 1; } -// compare meta == player.action void sub_0807E5A0(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->compareResult = unk2->unk_00.raw[1] == gPlayerEntity.action; - gUnk_02033280.continueScriptExecutionFlags |= 1; + unk2->unk_14 = unk2->unk_00[1] == gPlayerEntity.action; + gUnk_02033280.unk_07 |= 1; } -// compare meta == player.animationState void sub_0807E5CC(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->compareResult = unk2->unk_00.raw[1] == gPlayerEntity.animationState; - gUnk_02033280.continueScriptExecutionFlags |= 1; + unk2->unk_14 = unk2->unk_00[1] == gPlayerEntity.animationState; + gUnk_02033280.unk_07 |= 1; } void sub_0807E5F8(Entity* unk1, ScriptExecutionContext* unk2) { - gUnk_02033280.unk_00 |= GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); + gUnk_02033280.unk_00 |= GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); } void sub_0807E610(Entity* unk1, ScriptExecutionContext* unk2) { - gUnk_02033280.unk_00 &= ~GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); + gUnk_02033280.unk_00 &= ~GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); } void sub_0807E628(Entity* unk1, ScriptExecutionContext* unk2) { - SetLocalFlag(unk2->unk_00.raw[1]); + SetLocalFlag(unk2->unk_00[1]); } void sub_0807E634(Entity* unk1, ScriptExecutionContext* unk2) { - SetLocalFlagByOffset(unk2->unk_00.raw[1], unk2->unk_00.raw[2]); + SetLocalFlagByOffset(unk2->unk_00[1], unk2->unk_00[2]); } void sub_0807E644(Entity* unk1, ScriptExecutionContext* unk2) { - ClearLocalFlag(unk2->unk_00.raw[1]); + ClearLocalFlag(unk2->unk_00[1]); } void sub_0807E650(Entity* unk1, ScriptExecutionContext* unk2) { - SetGlobalFlag(unk2->unk_00.raw[1]); + SetGlobalFlag(unk2->unk_00[1]); } void sub_0807E65C(Entity* unk1, ScriptExecutionContext* unk2) { - ClearGlobalFlag(unk2->unk_00.raw[1]); + ClearGlobalFlag(unk2->unk_00[1]); } void sub_0807E668(Entity* unk1, ScriptExecutionContext* unk2) { - SetRoomFlag(unk2->unk_00.raw[1]); + SetRoomFlag(unk2->unk_00[1]); } void sub_0807E674(Entity* unk1, ScriptExecutionContext* unk2) { - ClearRoomFlag(unk2->unk_00.raw[1]); + ClearRoomFlag(unk2->unk_00[1]); } -// set unk2->unk_10 to meta void sub_0807E680(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_10 = GetNextScriptCommandHalfwordAfterCommandMetadata(unk2->unk_00.raw); + unk2->unk_10 = GetNextScriptCommandHalfwordAfterCommandMetadata(unk2->unk_00); } void sub_0807E690(Entity* unk1, ScriptExecutionContext* unk2) { - u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); + u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); if ((gUnk_02033280.unk_00 & tmp) != tmp) { gUnk_02033280.unk_06 = 0; } } void sub_0807E6AC(Entity* unk1, ScriptExecutionContext* unk2) { - u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); + u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); if ((gUnk_02033280.unk_00 & tmp) != tmp) { gUnk_02033280.unk_06 = 0; } else { gUnk_02033280.unk_00 &= ~tmp; - gUnk_02033280.continueScriptExecutionFlags |= 1; + gUnk_02033280.unk_07 |= 1; } } @@ -1015,7 +850,7 @@ void sub_0807E6DC(Entity* unk1, ScriptExecutionContext* unk2) { void sub_0807E700(Entity* unk1, ScriptExecutionContext* unk2) { if (gPlayerEntity.action != 0x17) { - gUnk_02033280.continueScriptExecutionFlags |= 1; + gUnk_02033280.unk_07 |= 1; } else { gUnk_02033280.unk_06 = 0; } @@ -1025,7 +860,7 @@ void sub_0807E72C(Entity* unk1, ScriptExecutionContext* unk2) { if (gRoomControls.unk6 & 4) { gUnk_02033280.unk_06 = 0; } else { - gUnk_02033280.continueScriptExecutionFlags |= 1; + gUnk_02033280.unk_07 |= 1; } } @@ -1036,11 +871,11 @@ void sub_0807E75C(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807E778(Entity* unk1, ScriptExecutionContext* unk2) { - gUnk_02033280.unk_08 = unk2->unk_00.raw[1]; + gUnk_02033280.unk_08 = unk2->unk_00[1]; } void sub_0807E788(Entity* unk1, ScriptExecutionContext* unk2) { - gFadeControl.field_0x4 = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); + gFadeControl.field_0x4 = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); } void sub_0807E79C(Entity* unk1, ScriptExecutionContext* unk2) { @@ -1088,7 +923,7 @@ void sub_0807E818(u32 unk1) { } void sub_0807E858(Entity* unk1, ScriptExecutionContext* unk2) { - sub_08050038(unk2->unk_00.raw[1]); + sub_08050038(unk2->unk_00[1]); } void sub_0807E864(Entity* unk1, ScriptExecutionContext* unk2) { @@ -1105,7 +940,7 @@ void sub_0807E888(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807E898(Entity* unk1, ScriptExecutionContext* unk2) { - u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); + u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); gPlayerState.playerAction = tmp; gPlayerState.field_0x38 = tmp >> 8; gPlayerState.field_0x39 = tmp >> 0x10; @@ -1113,26 +948,26 @@ void sub_0807E898(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807E8C4(Entity* unk1, ScriptExecutionContext* unk2) { - StartPlayerScript((u16*)GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw)); + StartPlayerScript((u16*)GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00)); } void sub_0807E8D4(Entity* unk1, ScriptExecutionContext* unk2) { - gPlayerState.field_0x8 = unk2->unk_00.raw[1]; + gPlayerState.field_0x8 = unk2->unk_00[1]; } void sub_0807E8E4(Entity* unk1, ScriptExecutionContext* unk2) { u32 tmp = (gUnk_08016984 & 0x3FF); u32 tmp2; - gPlayerEntity.animationState = tmp2 = (unk2->unk_00.raw[0] - tmp) << 1; + gPlayerEntity.animationState = tmp2 = (unk2->unk_00[0] - tmp) << 1; } void sub_0807E908(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->action = unk2->unk_00.raw[1]; + unk1->action = unk2->unk_00[1]; unk1->previousActionFlag = 0; } void sub_0807E914(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_04 = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); + unk2->unk_04 = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); } void sub_0807E924(Entity* unk1, ScriptExecutionContext* unk2) { @@ -1141,14 +976,14 @@ void sub_0807E924(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807E930(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->field_0x80.HWORD = unk2->unk_00.raw[1]; - InitAnimationForceUpdate(unk1, unk2->unk_00.raw[1]); + unk1->field_0x80.HWORD = unk2->unk_00[1]; + InitAnimationForceUpdate(unk1, unk2->unk_00[1]); } void sub_0807E944(Entity* unk1, ScriptExecutionContext* unk2) { if (unk1->interactType) { unk1->interactType = 0; - gUnk_02033280.continueScriptExecutionFlags |= 1; + gUnk_02033280.unk_07 |= 1; } else { gUnk_02033280.unk_06 = 0; } @@ -1165,7 +1000,7 @@ void sub_0807E974(Entity* unk1, ScriptExecutionContext* unk2) { break; unk1->interactType = 0; unk2->unk_18++; - TextboxNoOverlapFollow(unk2->unk_00.raw[1]); + TextboxNoOverlapFollow(unk2->unk_00[1]); break; case 1: if (gTextBox.doTextBox & 0x7F) @@ -1186,10 +1021,9 @@ void sub_0807E9DC(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807E9E4(Entity* unk1, ScriptExecutionContext* unk2) { - sub_08078784(unk1, unk2->unk_00.raw[1]); + sub_08078784(unk1, unk2->unk_00[1]); } -// compare and do stuff? void sub_0807E9F0(Entity* unk1, ScriptExecutionContext* unk2) { u32 tmp; sub_0801E00C(); @@ -1198,10 +1032,10 @@ void sub_0807E9F0(Entity* unk1, ScriptExecutionContext* unk2) { case 2: gPlayerState.field_0x8b = 3; gUnk_02034490[0] = tmp; - unk2->compareResult = tmp; + unk2->unk_14 = tmp; break; case 1: - unk2->compareResult = 0; + unk2->unk_14 = 0; break; default: goto lbl; @@ -1219,14 +1053,14 @@ void sub_0807EA4C(Entity* unk1, ScriptExecutionContext* unk2) { if (unk1->interactType == 2) { sub_0801DFB4(unk1, 0, 0, 0); unk1->interactType = 0; - gUnk_02033280.continueScriptExecutionFlags |= 1; + gUnk_02033280.unk_07 |= 1; } else { gUnk_02033280.unk_06 = 0; } } void sub_0807EA88(Entity* unk1, ScriptExecutionContext* unk2) { - sub_08078790(unk1, unk2->unk_00.raw[1]); + sub_08078790(unk1, unk2->unk_00[1]); } void sub_0807EA94(Entity* unk1, ScriptExecutionContext* unk2) { @@ -1236,22 +1070,22 @@ void sub_0807EA94(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807EAB4(Entity* unk1, ScriptExecutionContext* unk2) { - TextboxNoOverlapFollow(unk2->unk_00.raw[1]); + TextboxNoOverlapFollow(unk2->unk_00[1]); } void sub_0807EAC0(Entity* unk1, ScriptExecutionContext* unk2) { - TextboxNoOverlap(unk2->unk_00.raw[1], unk1); + TextboxNoOverlap(unk2->unk_00[1], unk1); } void sub_0807EAD0(Entity* unk1, ScriptExecutionContext* unk2) { - TextboxNoOverlapFollow(unk2->unk_00.raw[1]); + TextboxNoOverlapFollow(unk2->unk_00[1]); gTextBox.textWindowPosX = 1; - gTextBox.textWindowPosY = unk2->unk_00.raw[2]; + gTextBox.textWindowPosY = unk2->unk_00[2]; } void sub_0807EAF0(Entity* unk1, ScriptExecutionContext* unk2) { if (gUnk_02033280.unk_06 > unk2->unk_04) { - u16* tmp = unk2->unk_00.raw + unk2->unk_04; + u16* tmp = unk2->unk_00 + unk2->unk_04; TextboxNoOverlapFollow(tmp[1]); } else { TextboxNoOverlapFollow(0); @@ -1263,7 +1097,7 @@ void sub_0807EB18(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807EB28(Entity* unk1, ScriptExecutionContext* unk2) { - sub_08078AA8(unk2->unk_00.raw[1], 0); + sub_08078AA8(unk2->unk_00[1], 0); } void sub_0807EB38(Entity* unk1, ScriptExecutionContext* unk2) { @@ -1271,12 +1105,12 @@ void sub_0807EB38(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807EB44(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->animationState = unk2->unk_00.raw[1]; + unk1->animationState = unk2->unk_00[1]; } void sub_0807EB4C(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->animationState = sub_0806F5B0(sub_080045B4(unk1, unk2->unk_00.raw[1] + gRoomControls.roomOriginX, - unk2->unk_00.raw[2] + gRoomControls.roomOriginY)); + unk1->animationState = sub_0806F5B0( + sub_080045B4(unk1, unk2->unk_00[1] + gRoomControls.roomOriginX, unk2->unk_00[2] + gRoomControls.roomOriginY)); } void sub_0807EB74(Entity* unk1, ScriptExecutionContext* unk2) { @@ -1288,31 +1122,30 @@ void sub_0807EB8C(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807EBA8(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->direction = unk2->unk_00.raw[1]; + unk1->direction = unk2->unk_00[1]; } void sub_0807EBB0(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->direction = unk2->unk_00.raw[1]; + unk1->direction = unk2->unk_00[1]; unk1->animationState = unk1->direction / 4; } -// set nonPlanarMovement void sub_0807EBC0(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->nonPlanarMovement = unk2->unk_00.raw[1]; + unk1->nonPlanarMovement = unk2->unk_00[1]; } void sub_0807EBC8(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->field_0x20 = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw); + unk1->field_0x20 = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); } void sub_0807EBD8(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->x.HALF.HI = gRoomControls.roomOriginX + unk2->unk_00.raw[1]; - unk1->y.HALF.HI = gRoomControls.roomOriginY + unk2->unk_00.raw[2]; + unk1->x.HALF.HI = gRoomControls.roomOriginX + unk2->unk_00[1]; + unk1->y.HALF.HI = gRoomControls.roomOriginY + unk2->unk_00[2]; } void sub_0807EBF4(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->x.HALF.HI += unk2->unk_00.raw[1]; - unk1->y.HALF.HI += unk2->unk_00.raw[2]; + unk1->x.HALF.HI += unk2->unk_00[1]; + unk1->y.HALF.HI += unk2->unk_00[2]; } void sub_0807EC08(Entity* unk1, ScriptExecutionContext* unk2) { @@ -1325,7 +1158,7 @@ void nullsub_509(Entity* unk1, ScriptExecutionContext* unk2) { void sub_0807EC1C(Entity* unk1, ScriptExecutionContext* unk2) { if (!unk2->unk_18) { unk2->unk_18 = 1; - unk2->unk_12 = unk2->unk_00.raw[1]; + unk2->unk_12 = unk2->unk_00[1]; unk2->unk_08 |= 2; } sub_0807EC44(unk1, unk2); @@ -1341,7 +1174,7 @@ void sub_0807EC44(Entity* unk1, ScriptExecutionContext* unk2) { void sub_0807EC64(Entity* unk1, ScriptExecutionContext* unk2) { if (!unk2->unk_18) { unk2->unk_18 = 1; - unk2->unk_12 = unk2->unk_00.raw[1]; + unk2->unk_12 = unk2->unk_00[1]; unk1->animationState = 0; unk1->direction = 0; unk2->unk_08 |= 2; @@ -1352,7 +1185,7 @@ void sub_0807EC64(Entity* unk1, ScriptExecutionContext* unk2) { void sub_0807EC94(Entity* unk1, ScriptExecutionContext* unk2) { if (!unk2->unk_18) { unk2->unk_18 = 1; - unk2->unk_12 = unk2->unk_00.raw[1]; + unk2->unk_12 = unk2->unk_00[1]; unk1->animationState = 2; unk1->direction = 8; unk2->unk_08 |= 2; @@ -1363,7 +1196,7 @@ void sub_0807EC94(Entity* unk1, ScriptExecutionContext* unk2) { void sub_0807ECC4(Entity* unk1, ScriptExecutionContext* unk2) { if (!unk2->unk_18) { unk2->unk_18 = 1; - unk2->unk_12 = unk2->unk_00.raw[1]; + unk2->unk_12 = unk2->unk_00[1]; unk1->animationState = 4; unk1->direction = 0x10; unk2->unk_08 |= 2; @@ -1374,7 +1207,7 @@ void sub_0807ECC4(Entity* unk1, ScriptExecutionContext* unk2) { void sub_0807ECF4(Entity* unk1, ScriptExecutionContext* unk2) { if (!unk2->unk_18) { unk2->unk_18 = 1; - unk2->unk_12 = unk2->unk_00.raw[1]; + unk2->unk_12 = unk2->unk_00[1]; unk1->animationState = 6; unk1->direction = 0x18; unk2->unk_08 |= 2; @@ -1386,20 +1219,20 @@ void sub_0807ED24(Entity* unk1, ScriptExecutionContext* unk2) { if (!unk2->unk_18) { s32 tmp, tmp2, tmp3; unk2->unk_18 = 1; - unk2->unk_12 = unk2->unk_00.raw[3]; - tmp = unk2->unk_00.raw[1]; + unk2->unk_12 = unk2->unk_00[3]; + tmp = unk2->unk_00[1]; tmp2 = unk1->x.HALF.HI - gRoomControls.roomOriginX; unk2->unk_1C.WORD = ((tmp - tmp2) << 0x10) / unk2->unk_12; - tmp = unk2->unk_00.raw[2]; + tmp = unk2->unk_00[2]; tmp3 = unk1->y.HALF.HI - gRoomControls.roomOriginY; unk2->unk_20.WORD = ((tmp - tmp3) << 0x10) / unk2->unk_12; - unk1->animationState = sub_0806F5B0(sub_080045B4(unk1, unk2->unk_00.raw[1] + gRoomControls.roomOriginX, - unk2->unk_00.raw[2] + gRoomControls.roomOriginY)); + unk1->animationState = sub_0806F5B0(sub_080045B4(unk1, unk2->unk_00[1] + gRoomControls.roomOriginX, + unk2->unk_00[2] + gRoomControls.roomOriginY)); unk2->unk_08 |= 2; } else { if (!--unk2->unk_12) { - unk1->x.HALF.HI = unk2->unk_00.raw[1] + gRoomControls.roomOriginX; - unk1->y.HALF.HI = unk2->unk_00.raw[2] + gRoomControls.roomOriginY; + unk1->x.HALF.HI = unk2->unk_00[1] + gRoomControls.roomOriginX; + unk1->y.HALF.HI = unk2->unk_00[2] + gRoomControls.roomOriginY; return; } unk1->x.WORD += unk2->unk_1C.WORD; @@ -1408,25 +1241,22 @@ void sub_0807ED24(Entity* unk1, ScriptExecutionContext* unk2) { gUnk_02033280.unk_06 = 0; } -// something else and an if not void sub_0807EDD4(Entity* unk1, ScriptExecutionContext* unk2) { if (!unk2->unk_18) { unk2->unk_18 = 1; sub_0807EE04(unk1, unk2); } sub_0807EE30(unk1, unk2); - if (!unk2->compareResult) { + if (!unk2->unk_14) { gUnk_02033280.unk_06 = 0; } } void sub_0807EE04(Entity* unk1, ScriptExecutionContext* unk2) { - sub_0807DEDC(unk1, unk2, unk2->unk_00.raw[1] + gRoomControls.roomOriginX, - unk2->unk_00.raw[2] + gRoomControls.roomOriginY); - gUnk_02033280.continueScriptExecutionFlags |= 1; + sub_0807DEDC(unk1, unk2, unk2->unk_00[1] + gRoomControls.roomOriginX, unk2->unk_00[2] + gRoomControls.roomOriginY); + gUnk_02033280.unk_07 |= 1; } -// something else and a compare void sub_0807EE30(Entity* unk1, ScriptExecutionContext* unk2) { s32 tmp, tmp2; if (!--unk2->unk_19) { @@ -1441,33 +1271,30 @@ void sub_0807EE30(Entity* unk1, ScriptExecutionContext* unk2) { if (tmp <= 0 && tmp2 <= 0) { unk1->x.HALF.HI = unk2->unk_1C.HALF.HI; unk1->y.HALF.HI = unk2->unk_20.HALF.HI; - unk2->compareResult = 1; + unk2->unk_14 = 1; } else { - unk2->compareResult = 0; + unk2->unk_14 = 0; } } -// another if not and ??? void sub_0807EEB4(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->unk_18) { // TODO unk_18 another compare flag? + if (!unk2->unk_18) { unk2->unk_18 = 1; sub_0807DEDC(unk1, unk2, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI); } sub_0807EE30(unk1, unk2); - if (!unk2->compareResult) { - gUnk_02033280.unk_06 = 0; // TODO research unk_06 + if (!unk2->unk_14) { + gUnk_02033280.unk_06 = 0; } } -// another if not ??? void sub_0807EEF4(Entity* unk1, ScriptExecutionContext* unk2) { if (!unk2->unk_18) { unk2->unk_18 = 1; - sub_0807DEDC(unk1, unk2, unk1->x.HALF.HI + ((s16)unk2->unk_00.raw[1]), - unk1->y.HALF.HI + ((s16)unk2->unk_00.raw[2])); + sub_0807DEDC(unk1, unk2, unk1->x.HALF.HI + ((s16)unk2->unk_00[1]), unk1->y.HALF.HI + ((s16)unk2->unk_00[2])); } sub_0807EE30(unk1, unk2); - if (!unk2->compareResult) { + if (!unk2->unk_14) { gUnk_02033280.unk_06 = 0; } } @@ -1475,8 +1302,8 @@ void sub_0807EEF4(Entity* unk1, ScriptExecutionContext* unk2) { void sub_0807EF3C(Entity* unk1, ScriptExecutionContext* unk2) { if (!unk2->unk_18) { unk2->unk_18 = 1; - unk1->field_0x20 = ((s16)unk2->unk_00.raw[1]) << 8; - unk2->unk_1C.HALF.LO = unk2->unk_00.raw[2] << 8; + unk1->field_0x20 = ((s16)unk2->unk_00[1]) << 8; + unk2->unk_1C.HALF.LO = unk2->unk_00[2] << 8; sub_08003FC4(unk1, (u16)unk2->unk_1C.HALF.LO); } else { if (!sub_08003FC4(unk1, (u16)unk2->unk_1C.HALF.LO)) @@ -1485,30 +1312,28 @@ void sub_0807EF3C(Entity* unk1, ScriptExecutionContext* unk2) { gUnk_02033280.unk_06 = 0; } -// set one bit in unk_08 void sub_0807EF80(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_08 |= 1 << unk2->unk_00.raw[1]; + unk2->unk_08 |= 1 << unk2->unk_00[1]; } -// set one bit in unk_08 void sub_0807EF90(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_08 |= 1 << unk2->unk_00.raw[1]; + unk2->unk_08 |= 1 << unk2->unk_00[1]; } void sub_0807EFA0(Entity* unk1, ScriptExecutionContext* unk2) { - SoundReq(unk2->unk_00.raw[1]); + SoundReq(unk2->unk_00[1]); } void sub_0807EFAC(Entity* unk1, ScriptExecutionContext* unk2) { - if (unk2->unk_00.raw[1] >= 100) { + if (unk2->unk_00[1] >= 100) { SoundReq(gArea.musicIndex); } else { - SoundReq(unk2->unk_00.raw[1]); + SoundReq(unk2->unk_00[1]); } } void sub_0807EFD4(Entity* unk1, ScriptExecutionContext* unk2) { - SoundReq(GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00.raw)); + SoundReq(GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00)); } void sub_0807EFE4(Entity* unk1, ScriptExecutionContext* unk2) { @@ -1516,11 +1341,11 @@ void sub_0807EFE4(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807EFF4(Entity* unk1, ScriptExecutionContext* unk2) { - ModRupees((s16)unk2->unk_00.raw[1]); + ModRupees((s16)unk2->unk_00[1]); } void sub_0807F004(Entity* unk1, ScriptExecutionContext* unk2) { - ModHealth(unk2->unk_00.commands[0].metadata); + ModHealth(unk2->unk_00[1]); } void sub_0807F010(Entity* unk1, ScriptExecutionContext* unk2) { @@ -1530,28 +1355,27 @@ void sub_0807F010(Entity* unk1, ScriptExecutionContext* unk2) { void sub_0807F034(Entity* unk1, ScriptExecutionContext* unk2) { u32 tmp = 0; - if (unk2->unk_00.raw[1] == 0x3F) { + if (unk2->unk_00[1] == 0x3F) { tmp = unk2->unk_04; } - sub_080A7C18(unk2->unk_00.raw[1], tmp, 0); + sub_080A7C18(unk2->unk_00[1], tmp, 0); } void sub_0807F050(Entity* unk1, ScriptExecutionContext* unk2) { - sub_080A7C18(0x5C, unk2->unk_00.raw[1], 0); + sub_080A7C18(0x5C, unk2->unk_00[1], 0); } -// get inventory value and compare ?? void sub_0807F060(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_04 = GetInventoryValue(unk2->unk_00.raw[1]); - unk2->compareResult = unk2->unk_04 != 0; + unk2->unk_04 = GetInventoryValue(unk2->unk_00[1]); + unk2->unk_14 = unk2->unk_04 != 0; } void sub_0807F078(Entity* unk1, ScriptExecutionContext* unk2) { - sub_0807CAA0(unk2->unk_00.raw[1], unk2->unk_00.raw[2]); + sub_0807CAA0(unk2->unk_00[1], unk2->unk_00[2]); } void sub_0807F088(Entity* unk1, ScriptExecutionContext* unk2) { - sub_080A7C18(unk2->unk_00.raw[1], 0, 3); + sub_080A7C18(unk2->unk_00[1], 0, 3); } void sub_0807F098(Entity* unk1, ScriptExecutionContext* unk2) { @@ -1563,9 +1387,9 @@ void sub_0807F0A4(Entity* unk1, ScriptExecutionContext* unk2) { } void sub_0807F0B4(Entity* unk1, ScriptExecutionContext* unk2) { - gRoomControls.unk5 = unk2->unk_00.raw[1] & 7; + gRoomControls.unk5 = unk2->unk_00[1] & 7; } void sub_0807F0C8(Entity* unk1, ScriptExecutionContext* unk2) { - sub_08080964(unk2->unk_00.raw[1], unk2->unk_00.raw[2]); + sub_08080964(unk2->unk_00[1], unk2->unk_00[2]); } -- cgit v1.2.3 From a35c22e940efc7af89562e725575a4e79394ab2e Mon Sep 17 00:00:00 2001 From: Henny022p Date: Thu, 4 Mar 2021 19:49:46 +0100 Subject: started naming script stuff --- src/script.c | 1283 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 654 insertions(+), 629 deletions(-) (limited to 'src/script.c') diff --git a/src/script.c b/src/script.c index 494e0ae5..eed9dae0 100644 --- a/src/script.c +++ b/src/script.c @@ -12,172 +12,187 @@ void sub_0807DAF0(Entity*, ScriptExecutionContext*, u16*); void sub_0807DB88(ScriptExecutionContext*, u16*); void sub_0807DE80(Entity*); void sub_0807DF38(void); -void nullsub_507(Entity*, ScriptExecutionContext*); -void sub_0807E004(Entity*, ScriptExecutionContext*); -void sub_0807E014(Entity*, ScriptExecutionContext*); -void sub_0807E024(Entity*, ScriptExecutionContext*); -void sub_0807E050(Entity*, ScriptExecutionContext*); -void sub_0807E064(Entity*, ScriptExecutionContext*); -void sub_0807E078(Entity*, ScriptExecutionContext*); -void sub_0807E0A0(Entity*, ScriptExecutionContext*); -void sub_0807E0B8(Entity*, ScriptExecutionContext*); -void sub_0807E0CC(Entity*, ScriptExecutionContext*); -void sub_0807E0E0(Entity*, ScriptExecutionContext*); -void sub_0807E10C(Entity*, ScriptExecutionContext*); -void sub_0807E124(Entity*, ScriptExecutionContext*); -void sub_0807E148(Entity*, ScriptExecutionContext*); -void sub_0807E158(Entity*, ScriptExecutionContext*); -void sub_0807E188(Entity*, ScriptExecutionContext*); -void sub_0807E1D8(Entity*, ScriptExecutionContext*); -void sub_0807E200(Entity*, ScriptExecutionContext*); -void sub_0807E220(Entity*, ScriptExecutionContext*); -void sub_0807E240(Entity*, ScriptExecutionContext*); -void sub_0807E260(Entity*, ScriptExecutionContext*); -void sub_0807E280(Entity*, ScriptExecutionContext*); -void sub_0807E2A8(Entity*, ScriptExecutionContext*); -void sub_0807E2E4(Entity*, ScriptExecutionContext*); -void sub_0807E30C(Entity*, ScriptExecutionContext*); -void sub_0807E390(Entity*, ScriptExecutionContext*); -void sub_0807E3BC(Entity*, ScriptExecutionContext*); -void sub_0807E3E8(Entity*, ScriptExecutionContext*); -void sub_0807E40C(Entity*, ScriptExecutionContext*); -void sub_0807E42C(Entity*, ScriptExecutionContext*); -void sub_0807E48C(Entity*, ScriptExecutionContext*); -void sub_0807E4AC(Entity*, ScriptExecutionContext*); -void sub_0807E4CC(Entity*, ScriptExecutionContext*); -void sub_0807E4EC(Entity*, ScriptExecutionContext*); -void sub_0807E514(Entity*, ScriptExecutionContext*); -void sub_0807E538(Entity*, ScriptExecutionContext*); -void sub_0807E564(Entity*, ScriptExecutionContext*); -void sub_0807E584(Entity*, ScriptExecutionContext*); -void sub_0807E5A0(Entity*, ScriptExecutionContext*); -void sub_0807E5CC(Entity*, ScriptExecutionContext*); -void sub_0807E5F8(Entity*, ScriptExecutionContext*); -void sub_0807E610(Entity*, ScriptExecutionContext*); -void sub_0807E628(Entity*, ScriptExecutionContext*); -void sub_0807E634(Entity*, ScriptExecutionContext*); -void sub_0807E644(Entity*, ScriptExecutionContext*); -void sub_0807E650(Entity*, ScriptExecutionContext*); -void sub_0807E65C(Entity*, ScriptExecutionContext*); -void sub_0807E668(Entity*, ScriptExecutionContext*); -void sub_0807E674(Entity*, ScriptExecutionContext*); -void sub_0807E680(Entity*, ScriptExecutionContext*); -void sub_0807E690(Entity*, ScriptExecutionContext*); -void sub_0807E6AC(Entity*, ScriptExecutionContext*); -void sub_0807E6DC(Entity*, ScriptExecutionContext*); -void sub_0807E700(Entity*, ScriptExecutionContext*); -void sub_0807E72C(Entity*, ScriptExecutionContext*); -void sub_0807E75C(Entity*, ScriptExecutionContext*); -void sub_0807E778(Entity*, ScriptExecutionContext*); -void sub_0807E788(Entity*, ScriptExecutionContext*); -void sub_0807E79C(Entity*, ScriptExecutionContext*); -void nullsub_508(Entity*, ScriptExecutionContext*); -void sub_0807E7B0(Entity*, ScriptExecutionContext*); -void sub_0807E7C4(Entity*, ScriptExecutionContext*); -void sub_0807E7D8(Entity*, ScriptExecutionContext*); -void sub_0807E7EC(Entity*, ScriptExecutionContext*); -void sub_0807E800(Entity*, ScriptExecutionContext*); -void sub_0807E80C(Entity*, ScriptExecutionContext*); +void ScriptCommandNop(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E004(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E014(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E024(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E050(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E064(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E078(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E0A0(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E0B8(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E0CC(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E0E0(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E10C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E124(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E148(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E158(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E188(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E1D8(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E200(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E220(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E240(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E260(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E280(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E2A8(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E2E4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E30C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E390(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E3BC(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E3E8(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E40C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E42C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E48C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E4AC(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E4CC(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E4EC(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E514(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E538(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E564(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E584(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E5A0(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E5CC(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E5F8(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E610(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E628(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E634(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E644(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E650(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E65C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E668(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E674(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E680(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E690(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E6AC(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E6DC(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E700(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E72C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E75C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E778(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E788(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E79C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommandNop2(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E7B0(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E7C4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E7D8(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E7EC(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E800(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E80C(Entity* entity, ScriptExecutionContext* context); void sub_0807E818(u32); -void sub_0807E858(Entity*, ScriptExecutionContext*); -void sub_0807E864(Entity*, ScriptExecutionContext*); -void sub_0807E878(Entity*, ScriptExecutionContext*); -void sub_0807E888(Entity*, ScriptExecutionContext*); -void sub_0807E898(Entity*, ScriptExecutionContext*); -void sub_0807E8C4(Entity*, ScriptExecutionContext*); -void sub_0807E8D4(Entity*, ScriptExecutionContext*); -void sub_0807E8E4(Entity*, ScriptExecutionContext*); -void sub_0807E908(Entity*, ScriptExecutionContext*); -void sub_0807E914(Entity*, ScriptExecutionContext*); -void sub_0807E924(Entity*, ScriptExecutionContext*); -void sub_0807E930(Entity*, ScriptExecutionContext*); -void sub_0807E944(Entity*, ScriptExecutionContext*); -void sub_0807E974(Entity*, ScriptExecutionContext*); -void sub_0807E9D4(Entity*, ScriptExecutionContext*); -void sub_0807E9DC(Entity*, ScriptExecutionContext*); -void sub_0807E9E4(Entity*, ScriptExecutionContext*); -void sub_0807E9F0(Entity*, ScriptExecutionContext*); -void sub_0807EA4C(Entity*, ScriptExecutionContext*); -void sub_0807EA88(Entity*, ScriptExecutionContext*); -void sub_0807EA94(Entity*, ScriptExecutionContext*); -void sub_0807EAB4(Entity*, ScriptExecutionContext*); -void sub_0807EAC0(Entity*, ScriptExecutionContext*); -void sub_0807EAD0(Entity*, ScriptExecutionContext*); -void sub_0807EAF0(Entity*, ScriptExecutionContext*); -void sub_0807EB18(Entity*, ScriptExecutionContext*); -void sub_0807EB28(Entity*, ScriptExecutionContext*); -void sub_0807EB38(Entity*, ScriptExecutionContext*); -void sub_0807EB44(Entity*, ScriptExecutionContext*); -void sub_0807EB4C(Entity*, ScriptExecutionContext*); -void sub_0807EB74(Entity*, ScriptExecutionContext*); -void sub_0807EB8C(Entity*, ScriptExecutionContext*); -void sub_0807EBA8(Entity*, ScriptExecutionContext*); -void sub_0807EBB0(Entity*, ScriptExecutionContext*); -void sub_0807EBC0(Entity*, ScriptExecutionContext*); -void sub_0807EBC8(Entity*, ScriptExecutionContext*); -void sub_0807EBD8(Entity*, ScriptExecutionContext*); -void sub_0807EBF4(Entity*, ScriptExecutionContext*); -void sub_0807EC08(Entity*, ScriptExecutionContext*); -void nullsub_509(Entity*, ScriptExecutionContext*); -void sub_0807EC1C(Entity*, ScriptExecutionContext*); +void ScriptCommand_0807E858(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E864(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E878(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E888(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E898(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E8C4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E8D4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E8E4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E908(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E914(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E924(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E930(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E944(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E974(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E9D4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E9DC(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E9E4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807E9F0(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EA4C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EA88(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EA94(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EAB4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EAC0(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EAD0(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EAF0(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EB18(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EB28(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EB38(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EB44(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EB4C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EB74(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EB8C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EBA8(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EBB0(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EBC0(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EBC8(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EBD8(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EBF4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EC08(Entity* entity, ScriptExecutionContext* context); +void ScriptCommandNop3(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EC1C(Entity* entity, ScriptExecutionContext* context); void sub_0807EC44(Entity*, ScriptExecutionContext*); -void sub_0807EC64(Entity*, ScriptExecutionContext*); -void sub_0807EC94(Entity*, ScriptExecutionContext*); -void sub_0807ECC4(Entity*, ScriptExecutionContext*); -void sub_0807ECF4(Entity*, ScriptExecutionContext*); -void sub_0807ED24(Entity*, ScriptExecutionContext*); -void sub_0807EDD4(Entity*, ScriptExecutionContext*); -void sub_0807EE04(Entity*, ScriptExecutionContext*); -void sub_0807EE30(Entity*, ScriptExecutionContext*); -void sub_0807EEB4(Entity*, ScriptExecutionContext*); -void sub_0807EEF4(Entity*, ScriptExecutionContext*); -void sub_0807EF3C(Entity*, ScriptExecutionContext*); -void sub_0807EF80(Entity*, ScriptExecutionContext*); -void sub_0807EF90(Entity*, ScriptExecutionContext*); -void sub_0807EFA0(Entity*, ScriptExecutionContext*); -void sub_0807EFAC(Entity*, ScriptExecutionContext*); -void sub_0807EFD4(Entity*, ScriptExecutionContext*); -void sub_0807EFE4(Entity*, ScriptExecutionContext*); -void sub_0807EFF4(Entity*, ScriptExecutionContext*); -void sub_0807F004(Entity*, ScriptExecutionContext*); -void sub_0807F010(Entity*, ScriptExecutionContext*); -void sub_0807F034(Entity*, ScriptExecutionContext*); -void sub_0807F050(Entity*, ScriptExecutionContext*); -void sub_0807F060(Entity*, ScriptExecutionContext*); -void sub_0807F078(Entity*, ScriptExecutionContext*); -void sub_0807F088(Entity*, ScriptExecutionContext*); -void sub_0807F098(Entity*, ScriptExecutionContext*); -void sub_0807F0A4(Entity*, ScriptExecutionContext*); -void sub_0807F0B4(Entity*, ScriptExecutionContext*); -void sub_0807F0C8(Entity*, ScriptExecutionContext*); +void ScriptCommand_0807EC64(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EC94(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807ECC4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807ECF4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807ED24(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EDD4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EE04(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EE30(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EEB4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EEF4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EF3C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EF80(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EF90(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EFA0(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EFAC(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EFD4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EFE4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807EFF4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807F004(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807F010(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807F034(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807F050(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807F060(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807F078(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807F088(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807F098(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807F0A4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807F0B4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_0807F0C8(Entity* entity, ScriptExecutionContext* context); extern void CreateSpeechBubbleExclamationMark(Entity*, u32, u32); extern void CreateSpeechBubbleQuestionMark(Entity*, u32, u32); extern void sub_0801C4A0(u32); -void (*const gUnk_0811E524[])() = { - nullsub_507, sub_0807E004, sub_0807E014, sub_0807E024, sub_0807E050, sub_0807E064, sub_0807E078, sub_0807E0A0, - sub_0807E0B8, sub_0807E0CC, sub_0807E0E0, sub_0807E10C, sub_0807E124, sub_0807E148, sub_0807E158, sub_0807E188, - sub_0807E1D8, - sub_0807E4AC, // defined out of order - sub_0807E200, sub_0807E220, sub_0807E240, sub_0807E260, sub_0807E280, sub_0807E2A8, sub_0807E2E4, sub_0807E30C, - sub_0807E390, sub_0807E3BC, sub_0807E3E8, sub_0807E40C, sub_0807E42C, sub_0807E48C, sub_0807E4CC, sub_0807E4EC, - sub_0807E514, sub_0807E538, sub_0807E564, sub_0807E584, sub_0807E5A0, sub_0807E5CC, sub_0807E5F8, sub_0807E610, - sub_0807E628, sub_0807E634, sub_0807E644, sub_0807E650, sub_0807E65C, sub_0807E668, sub_0807E674, sub_0807E680, - sub_0807E690, sub_0807E6AC, sub_0807E6DC, sub_0807E700, sub_0807E72C, sub_0807E75C, sub_0807E778, sub_0807E788, - sub_0807E79C, nullsub_508, sub_0807E7B0, sub_0807E7C4, sub_0807E7D8, sub_0807E7EC, sub_0807E800, sub_0807E80C, - sub_0807E858, sub_0807E864, sub_0807E878, sub_0807E888, sub_0807E898, sub_0807E8C4, sub_0807E8D4, sub_0807E8E4, - sub_0807E8E4, // duplicate - sub_0807E8E4, // duplicate - sub_0807E8E4, // duplicate - sub_0807E908, sub_0807E914, sub_0807E924, sub_0807E930, sub_0807E944, sub_0807E974, sub_0807E9D4, sub_0807E9DC, - sub_0807E9E4, sub_0807E9F0, sub_0807EA4C, sub_0807EA88, sub_0807EA94, sub_0807EAB4, sub_0807EAC0, sub_0807EAD0, - sub_0807EAF0, sub_0807EB18, sub_0807EB28, sub_0807EB38, sub_0807EB44, sub_0807EB4C, sub_0807EB74, sub_0807EB8C, - sub_0807EBA8, sub_0807EBB0, sub_0807EBC0, sub_0807EBC8, sub_0807EBD8, sub_0807EBF4, sub_0807EC08, nullsub_509, - sub_0807EC1C, sub_0807EC64, sub_0807EC94, sub_0807ECC4, sub_0807ECF4, sub_0807ED24, sub_0807EDD4, sub_0807EE04, - sub_0807EE30, sub_0807EEB4, sub_0807EEF4, sub_0807EF3C, sub_0807EF80, sub_0807EF90, sub_0807EFA0, sub_0807EFAC, - sub_0807EFD4, sub_0807EFE4, sub_0807EFF4, sub_0807F004, sub_0807F010, sub_0807F034, sub_0807F050, sub_0807F060, - sub_0807F078, sub_0807F088, sub_0807F098, sub_0807F0A4, sub_0807F0B4, sub_0807F0C8 +typedef void (*ScriptCommand)(Entity*, ScriptExecutionContext*); + +const ScriptCommand gScriptCommands[] = { + ScriptCommandNop, ScriptCommand_0807E004, ScriptCommand_0807E014, ScriptCommand_0807E024, + ScriptCommand_0807E050, ScriptCommand_0807E064, ScriptCommand_0807E078, ScriptCommand_0807E0A0, + ScriptCommand_0807E0B8, ScriptCommand_0807E0CC, ScriptCommand_0807E0E0, ScriptCommand_0807E10C, + ScriptCommand_0807E124, ScriptCommand_0807E148, ScriptCommand_0807E158, ScriptCommand_0807E188, + ScriptCommand_0807E1D8, ScriptCommand_0807E4AC, ScriptCommand_0807E200, ScriptCommand_0807E220, + ScriptCommand_0807E240, ScriptCommand_0807E260, ScriptCommand_0807E280, ScriptCommand_0807E2A8, + ScriptCommand_0807E2E4, ScriptCommand_0807E30C, ScriptCommand_0807E390, ScriptCommand_0807E3BC, + ScriptCommand_0807E3E8, ScriptCommand_0807E40C, ScriptCommand_0807E42C, ScriptCommand_0807E48C, + ScriptCommand_0807E4CC, ScriptCommand_0807E4EC, ScriptCommand_0807E514, ScriptCommand_0807E538, + ScriptCommand_0807E564, ScriptCommand_0807E584, ScriptCommand_0807E5A0, ScriptCommand_0807E5CC, + ScriptCommand_0807E5F8, ScriptCommand_0807E610, ScriptCommand_0807E628, ScriptCommand_0807E634, + ScriptCommand_0807E644, ScriptCommand_0807E650, ScriptCommand_0807E65C, ScriptCommand_0807E668, + ScriptCommand_0807E674, ScriptCommand_0807E680, ScriptCommand_0807E690, ScriptCommand_0807E6AC, + ScriptCommand_0807E6DC, ScriptCommand_0807E700, ScriptCommand_0807E72C, ScriptCommand_0807E75C, + ScriptCommand_0807E778, ScriptCommand_0807E788, ScriptCommand_0807E79C, ScriptCommandNop2, + ScriptCommand_0807E7B0, ScriptCommand_0807E7C4, ScriptCommand_0807E7D8, ScriptCommand_0807E7EC, + ScriptCommand_0807E800, ScriptCommand_0807E80C, ScriptCommand_0807E858, ScriptCommand_0807E864, + ScriptCommand_0807E878, ScriptCommand_0807E888, ScriptCommand_0807E898, ScriptCommand_0807E8C4, + ScriptCommand_0807E8D4, ScriptCommand_0807E8E4, ScriptCommand_0807E8E4, ScriptCommand_0807E8E4, + ScriptCommand_0807E8E4, ScriptCommand_0807E908, ScriptCommand_0807E914, ScriptCommand_0807E924, + ScriptCommand_0807E930, ScriptCommand_0807E944, ScriptCommand_0807E974, ScriptCommand_0807E9D4, + ScriptCommand_0807E9DC, ScriptCommand_0807E9E4, ScriptCommand_0807E9F0, ScriptCommand_0807EA4C, + ScriptCommand_0807EA88, ScriptCommand_0807EA94, ScriptCommand_0807EAB4, ScriptCommand_0807EAC0, + ScriptCommand_0807EAD0, ScriptCommand_0807EAF0, ScriptCommand_0807EB18, ScriptCommand_0807EB28, + ScriptCommand_0807EB38, ScriptCommand_0807EB44, ScriptCommand_0807EB4C, ScriptCommand_0807EB74, + ScriptCommand_0807EB8C, ScriptCommand_0807EBA8, ScriptCommand_0807EBB0, ScriptCommand_0807EBC0, + ScriptCommand_0807EBC8, ScriptCommand_0807EBD8, ScriptCommand_0807EBF4, ScriptCommand_0807EC08, + ScriptCommandNop3, ScriptCommand_0807EC1C, ScriptCommand_0807EC64, ScriptCommand_0807EC94, + ScriptCommand_0807ECC4, ScriptCommand_0807ECF4, ScriptCommand_0807ED24, ScriptCommand_0807EDD4, + ScriptCommand_0807EE04, ScriptCommand_0807EE30, ScriptCommand_0807EEB4, ScriptCommand_0807EEF4, + ScriptCommand_0807EF3C, ScriptCommand_0807EF80, ScriptCommand_0807EF90, ScriptCommand_0807EFA0, + ScriptCommand_0807EFAC, ScriptCommand_0807EFD4, ScriptCommand_0807EFE4, ScriptCommand_0807EFF4, + ScriptCommand_0807F004, ScriptCommand_0807F010, ScriptCommand_0807F034, ScriptCommand_0807F050, + ScriptCommand_0807F060, ScriptCommand_0807F078, ScriptCommand_0807F088, ScriptCommand_0807F098, + ScriptCommand_0807F0A4, ScriptCommand_0807F0B4, ScriptCommand_0807F0C8 }; extern const u16 gUnk_08016984; @@ -187,10 +202,10 @@ extern ScriptExecutionContext gPlayerScriptExecutionContext; extern ScriptExecutionContext gScriptExecutionContextArray[0x20]; void sub_0807DA70(void) { - MemClear32(&gUnk_02033280, sizeof(gUnk_02033280)); + MemClear32(&gActiveScriptInfo, sizeof(gActiveScriptInfo)); MemClear32(&gScriptExecutionContextArray, sizeof(gScriptExecutionContextArray)); MemClear32(&gPlayerScriptExecutionContext, sizeof(gPlayerScriptExecutionContext)); - gUnk_02033280.unk_08 = 8; + gActiveScriptInfo.unk_08 = 8; } ScriptExecutionContext* CreateScriptExecutionContext(void) { @@ -198,7 +213,7 @@ ScriptExecutionContext* CreateScriptExecutionContext(void) { context = gScriptExecutionContextArray; do { - if (context->unk_00 == 0) { + if (context->scriptInstructionPointer == 0) { return context; } context++; @@ -238,7 +253,7 @@ void StartPlayerScript(u16* unk1) { Entity* player; MemClear32(&gPlayerScriptExecutionContext, sizeof(gPlayerScriptExecutionContext)); - gPlayerScriptExecutionContext.unk_00 = unk1; + gPlayerScriptExecutionContext.scriptInstructionPointer = unk1; player = &gPlayerEntity; *(ScriptExecutionContext**)&player->cutsceneBeh = &gPlayerScriptExecutionContext; gPlayerState.playerAction = 0x1c; @@ -254,14 +269,14 @@ ScriptExecutionContext* sub_0807DB68(Entity* entity, u16* unk1) { if (context) { entity->flags |= 2; *(ScriptExecutionContext**)&entity->field_0x3c = context; - context->unk_00 = unk1; + context->scriptInstructionPointer = unk1; } return context; } void sub_0807DB88(ScriptExecutionContext* context, u16* unk1) { MemClear32(context, sizeof(ScriptExecutionContext)); - context->unk_00 = unk1; + context->scriptInstructionPointer = unk1; } void sub_0807DB98(Entity* entity, ScriptExecutionContext* context) { @@ -482,123 +497,125 @@ void sub_0807DF50(void) { } void ExecuteScriptCommandSet(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->unk_00) + if (!unk2->scriptInstructionPointer) return; - if (unk2->unk_10) { - unk2->unk_10--; + if (unk2->wait) { + unk2->wait--; } else { - struct_02033280* tmp2 = &gUnk_02033280; - tmp2->unk_07 = 0; + struct_02033280* tmp2 = &gActiveScriptInfo; + tmp2->flags = 0; do { - u32 cmd = GetNextScriptCommandHalfword(unk2->unk_00); + u32 cmd = GetNextScriptCommandHalfword(unk2->scriptInstructionPointer); u16* tmp; if (cmd == 0xFFFF) return; - tmp2->unk_06 = cmd >> 0xA; - tmp2->unk_04 = cmd & 0x3FF; - tmp = unk2->unk_00; - tmp2->unk_07 &= ~1; - gUnk_0811E524[tmp2->unk_04](unk1, unk2); - unk2->unk_00 += tmp2->unk_06; - if (tmp != unk2->unk_00) { + tmp2->commandSize = cmd >> 0xA; + tmp2->commandIndex = cmd & 0x3FF; + tmp = unk2->scriptInstructionPointer; + tmp2->flags &= ~1; + gScriptCommands[tmp2->commandIndex](unk1, unk2); + unk2->scriptInstructionPointer += tmp2->commandSize; + if (tmp != unk2->scriptInstructionPointer) { unk2->unk_18 = 0; } - } while (tmp2->unk_07 & 3); + } while (tmp2->flags & 3); } } -void nullsub_507(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommandNop(Entity* entity, ScriptExecutionContext* context) { } -void sub_0807E004(Entity* unk1, ScriptExecutionContext* unk2) { - gUnk_02033280.unk_07 |= 2; +void ScriptCommand_0807E004(Entity* entity, ScriptExecutionContext* context) { + gActiveScriptInfo.flags |= 2; } -void sub_0807E014(Entity* unk1, ScriptExecutionContext* unk2) { - gUnk_02033280.unk_07 &= ~2; +void ScriptCommand_0807E014(Entity* entity, ScriptExecutionContext* context) { + gActiveScriptInfo.flags &= ~2; } -void sub_0807E024(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807E024(Entity* entity, ScriptExecutionContext* context) { s16 tmp; - unk2->unk_00++; - tmp = GetNextScriptCommandHalfword(unk2->unk_00); - unk2->unk_00 += (tmp / 2); - gUnk_02033280.unk_06 = 0; + context->scriptInstructionPointer++; + tmp = GetNextScriptCommandHalfword(context->scriptInstructionPointer); + context->scriptInstructionPointer += (tmp / 2); + gActiveScriptInfo.commandSize = 0; } -void sub_0807E050(Entity* unk1, ScriptExecutionContext* unk2) { - if (unk2->unk_14) { - sub_0807E024(unk1, unk2); +void ScriptCommand_0807E050(Entity* entity, ScriptExecutionContext* context) { + if (context->unk_14) { + ScriptCommand_0807E024(entity, context); } } -void sub_0807E064(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->unk_14) { - sub_0807E024(unk1, unk2); +void ScriptCommand_0807E064(Entity* entity, ScriptExecutionContext* context) { + if (!context->unk_14) { + ScriptCommand_0807E024(entity, context); } } -void sub_0807E078(Entity* unk1, ScriptExecutionContext* unk2) { - if (gUnk_02033280.unk_06 > unk2->unk_04) { - unk2->unk_00 += unk2->unk_04; - sub_0807E024(unk1, unk2); +void ScriptCommand_0807E078(Entity* entity, ScriptExecutionContext* context) { + if (gActiveScriptInfo.commandSize > context->unk_04) { + context->scriptInstructionPointer += context->unk_04; + ScriptCommand_0807E024(entity, context); } } -void sub_0807E0A0(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_00 = (u16*)GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); - gUnk_02033280.unk_06 = 0; +void ScriptCommand_0807E0A0(Entity* entity, ScriptExecutionContext* context) { + context->scriptInstructionPointer = + (u16*)GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); + gActiveScriptInfo.commandSize = 0; } -void sub_0807E0B8(Entity* unk1, ScriptExecutionContext* unk2) { - if (unk2->unk_14) { - sub_0807E0A0(unk1, unk2); +void ScriptCommand_0807E0B8(Entity* entity, ScriptExecutionContext* context) { + if (context->unk_14) { + ScriptCommand_0807E0A0(entity, context); } } -void sub_0807E0CC(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->unk_14) { - sub_0807E0A0(unk1, unk2); +void ScriptCommand_0807E0CC(Entity* entity, ScriptExecutionContext* context) { + if (!context->unk_14) { + ScriptCommand_0807E0A0(entity, context); } } -void sub_0807E0E0(Entity* unk1, ScriptExecutionContext* unk2) { - if (gUnk_02033280.unk_06 > (unk2->unk_04 << 1) + 1) { - unk2->unk_00 += unk2->unk_04 << 1; - sub_0807E0A0(unk1, unk2); +void ScriptCommand_0807E0E0(Entity* entity, ScriptExecutionContext* context) { + if (gActiveScriptInfo.commandSize > (context->unk_04 << 1) + 1) { + context->scriptInstructionPointer += context->unk_04 << 1; + ScriptCommand_0807E0A0(entity, context); } } -void sub_0807E10C(Entity* unk1, ScriptExecutionContext* unk2) { - ((void (*)(Entity*, ScriptExecutionContext*))GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00))(unk1, - unk2); +void ScriptCommand_0807E10C(Entity* entity, ScriptExecutionContext* context) { + ((void (*)(Entity*, ScriptExecutionContext*))GetNextScriptCommandWordAfterCommandMetadata( + context->scriptInstructionPointer))(entity, context); } -void sub_0807E124(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807E124(Entity* entity, ScriptExecutionContext* context) { void (*tmp)(Entity*, ScriptExecutionContext*) = - (void (*)(Entity*, ScriptExecutionContext*))GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); - unk2->unk_04 = GetNextScriptCommandWord(unk2->unk_00 + 3); - tmp(unk1, unk2); + (void (*)(Entity*, ScriptExecutionContext*))GetNextScriptCommandWordAfterCommandMetadata( + context->scriptInstructionPointer); + context->unk_04 = GetNextScriptCommandWord(context->scriptInstructionPointer + 3); + tmp(entity, context); } -void sub_0807E148(Entity* unk1, ScriptExecutionContext* unk2) { - LoadRoomEntityList(GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00)); +void ScriptCommand_0807E148(Entity* entity, ScriptExecutionContext* context) { + LoadRoomEntityList(GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer)); } -void sub_0807E158(Entity* unk1, ScriptExecutionContext* unk2) { - u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); +void ScriptCommand_0807E158(Entity* entity, ScriptExecutionContext* context) { + u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); u32 tmp2 = 0; - u32 tmp3 = gUnk_02033280.unk_00; + u32 tmp3 = gActiveScriptInfo.unk_00; if ((tmp3 & tmp) == tmp) tmp2 = 1; - unk2->unk_14 = tmp2; - gUnk_02033280.unk_00 = tmp3 & ~tmp; - gUnk_02033280.unk_07 |= 1; + context->unk_14 = tmp2; + gActiveScriptInfo.unk_00 = tmp3 & ~tmp; + gActiveScriptInfo.flags |= 1; } -void sub_0807E188(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807E188(Entity* entity, ScriptExecutionContext* context) { u32 tmp; - u32 tmp2 = GetNextScriptCommandHalfwordAfterCommandMetadata(unk2->unk_00); + u32 tmp2 = GetNextScriptCommandHalfwordAfterCommandMetadata(context->scriptInstructionPointer); switch (tmp2) { case 0x53: tmp = sub_08052734(); @@ -615,297 +632,300 @@ void sub_0807E188(Entity* unk1, ScriptExecutionContext* unk2) { default: tmp = GetInventoryValue(tmp2); } - unk2->unk_14 = tmp; - gUnk_02033280.unk_07 |= 1; + context->unk_14 = tmp; + gActiveScriptInfo.flags |= 1; } -void sub_0807E1D8(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = GetInventoryValue(unk2->unk_00[1]) == 2; - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E1D8(Entity* entity, ScriptExecutionContext* context) { + context->unk_14 = GetInventoryValue(context->scriptInstructionPointer[1]) == 2; + gActiveScriptInfo.flags |= 1; } -void sub_0807E200(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = CheckLocalFlag(unk2->unk_00[1]); - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E200(Entity* entity, ScriptExecutionContext* context) { + context->unk_14 = CheckLocalFlag(context->scriptInstructionPointer[1]); + gActiveScriptInfo.flags |= 1; } -void sub_0807E220(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = CheckLocalFlagByOffset(unk2->unk_00[1], unk2->unk_00[2]); - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E220(Entity* entity, ScriptExecutionContext* context) { + context->unk_14 = + CheckLocalFlagByOffset(context->scriptInstructionPointer[1], context->scriptInstructionPointer[2]); + gActiveScriptInfo.flags |= 1; } -void sub_0807E240(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = CheckGlobalFlag(GetNextScriptCommandHalfwordAfterCommandMetadata(unk2->unk_00)); - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E240(Entity* entity, ScriptExecutionContext* context) { + context->unk_14 = + CheckGlobalFlag(GetNextScriptCommandHalfwordAfterCommandMetadata(context->scriptInstructionPointer)); + gActiveScriptInfo.flags |= 1; } -void sub_0807E260(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = CheckRoomFlag(unk2->unk_00[1]); - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E260(Entity* entity, ScriptExecutionContext* context) { + context->unk_14 = CheckRoomFlag(context->scriptInstructionPointer[1]); + gActiveScriptInfo.flags |= 1; } -void sub_0807E280(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807E280(Entity* entity, ScriptExecutionContext* context) { u32 x, y, width, height; - width = unk2->unk_00[3]; + width = context->scriptInstructionPointer[3]; height = width >> 8; width &= 0xFF; - x = unk2->unk_00[1]; - y = unk2->unk_00[2]; - unk2->unk_14 = CheckPlayerInRegion(x, y, width, height); - gUnk_02033280.unk_07 |= 1; + x = context->scriptInstructionPointer[1]; + y = context->scriptInstructionPointer[2]; + context->unk_14 = CheckPlayerInRegion(x, y, width, height); + gActiveScriptInfo.flags |= 1; } -void sub_0807E2A8(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807E2A8(Entity* entity, ScriptExecutionContext* context) { u32 x, y, width, height; - width = unk2->unk_00[1] & 0xFF; - height = unk2->unk_00[1] >> 8; - x = unk1->x.HALF.HI - gRoomControls.roomOriginX; - y = unk1->y.HALF.HI - gRoomControls.roomOriginY; - unk2->unk_14 = CheckPlayerInRegion(x, y, width, height); - gUnk_02033280.unk_07 |= 1; -} - -void sub_0807E2E4(Entity* unk1, ScriptExecutionContext* unk2) { - if (unk1->interactType) { - unk1->interactType = 0; - unk2->unk_14 = 1; + width = context->scriptInstructionPointer[1] & 0xFF; + height = context->scriptInstructionPointer[1] >> 8; + x = entity->x.HALF.HI - gRoomControls.roomOriginX; + y = entity->y.HALF.HI - gRoomControls.roomOriginY; + context->unk_14 = CheckPlayerInRegion(x, y, width, height); + gActiveScriptInfo.flags |= 1; +} + +void ScriptCommand_0807E2E4(Entity* entity, ScriptExecutionContext* context) { + if (entity->interactType) { + entity->interactType = 0; + context->unk_14 = 1; } else { - unk2->unk_14 = 0; + context->unk_14 = 0; } - gUnk_02033280.unk_07 |= 1; + gActiveScriptInfo.flags |= 1; } -void sub_0807E30C(Entity* unk1, ScriptExecutionContext* unk2) { - if ((unk2->unk_1A & 0xF) == 0 && (gPlayerState.flags.all & 0x80) == 0 && - sub_080041A0(unk1, &gPlayerEntity, 0x28, 0x28)) { - unk1->animationState = sub_0806F5B0(GetFacingDirection(unk1, &gPlayerEntity)); +void ScriptCommand_0807E30C(Entity* entity, ScriptExecutionContext* context) { + if ((context->unk_1A & 0xF) == 0 && (gPlayerState.flags.all & 0x80) == 0 && + sub_080041A0(entity, &gPlayerEntity, 0x28, 0x28)) { + entity->animationState = sub_0806F5B0(GetFacingDirection(entity, &gPlayerEntity)); } - unk2->unk_1A++; - if (unk1->interactType) { - unk1->interactType = 0; - unk2->unk_14 = 1; - unk1->animationState = sub_0806F5B0(GetFacingDirection(unk1, &gPlayerEntity)); + context->unk_1A++; + if (entity->interactType) { + entity->interactType = 0; + context->unk_14 = 1; + entity->animationState = sub_0806F5B0(GetFacingDirection(entity, &gPlayerEntity)); } else { - unk2->unk_14 = 0; + context->unk_14 = 0; } - gUnk_02033280.unk_07 |= 1; + gActiveScriptInfo.flags |= 1; } -void sub_0807E390(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = (unk2->unk_00[1] <= gSave.stats.rupees); - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E390(Entity* entity, ScriptExecutionContext* context) { + context->unk_14 = (context->scriptInstructionPointer[1] <= gSave.stats.rupees); + gActiveScriptInfo.flags |= 1; } -void sub_0807E3BC(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = (unk2->unk_00[1] <= gSave.stats.field_0x1a); - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E3BC(Entity* entity, ScriptExecutionContext* context) { + context->unk_14 = (context->scriptInstructionPointer[1] <= gSave.stats.field_0x1a); + gActiveScriptInfo.flags |= 1; } -void sub_0807E3E8(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = !gUnk_02000040.unk_01; - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E3E8(Entity* entity, ScriptExecutionContext* context) { + context->unk_14 = !gUnk_02000040.unk_01; + gActiveScriptInfo.flags |= 1; } -void sub_0807E40C(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = CheckKinstoneFused(unk2->unk_00[1]); - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E40C(Entity* entity, ScriptExecutionContext* context) { + context->unk_14 = CheckKinstoneFused(context->scriptInstructionPointer[1]); + gActiveScriptInfo.flags |= 1; } -void sub_0807E42C(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807E42C(Entity* entity, ScriptExecutionContext* context) { u32 tmp, tmp2; s32 tmp3; - tmp = unk2->unk_00[1]; - tmp2 = unk2->unk_00[2]; + tmp = context->scriptInstructionPointer[1]; + tmp2 = context->scriptInstructionPointer[2]; if (!tmp) { tmp = gRoomVars.itemForSaleIndex; tmp2 = gRoomVars.field_0x7; } tmp3 = sub_08053FE0(tmp); - unk2->unk_14 = (tmp3 <= gSave.stats.rupees); - if (unk2->unk_14) { + context->unk_14 = (tmp3 <= gSave.stats.rupees); + if (context->unk_14) { ModRupees(-tmp3); sub_080A7C18(tmp, tmp2, 0); gRoomVars.itemForSaleIndex = 0; gRoomVars.field_0x7 = 0; } - gUnk_02033280.unk_07 |= 1; + gActiveScriptInfo.flags |= 1; } -void sub_0807E48C(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = sub_080544DC(unk2->unk_00[1]); - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E48C(Entity* entity, ScriptExecutionContext* context) { + context->unk_14 = sub_080544DC(context->scriptInstructionPointer[1]); + gActiveScriptInfo.flags |= 1; } -void sub_0807E4AC(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = !!gRoomVars.itemForSaleIndex; - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E4AC(Entity* entity, ScriptExecutionContext* context) { + context->unk_14 = !!gRoomVars.itemForSaleIndex; + gActiveScriptInfo.flags |= 1; } -void sub_0807E4CC(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = !!(unk2->unk_04 & unk2->unk_00[1]); - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E4CC(Entity* entity, ScriptExecutionContext* context) { + context->unk_14 = !!(context->unk_04 & context->scriptInstructionPointer[1]); + gActiveScriptInfo.flags |= 1; } -void sub_0807E4EC(Entity* unk1, ScriptExecutionContext* unk2) { - u32 tmp = unk2->unk_00[1]; - unk2->unk_14 = tmp == (tmp & unk2->unk_04); - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E4EC(Entity* entity, ScriptExecutionContext* context) { + u32 tmp = context->scriptInstructionPointer[1]; + context->unk_14 = tmp == (tmp & context->unk_04); + gActiveScriptInfo.flags |= 1; } -void sub_0807E514(Entity* unk1, ScriptExecutionContext* unk2) { - u32 tmp = unk2->unk_00[1]; - unk2->unk_14 = tmp == unk2->unk_04; - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E514(Entity* entity, ScriptExecutionContext* context) { + u32 tmp = context->scriptInstructionPointer[1]; + context->unk_14 = tmp == context->unk_04; + gActiveScriptInfo.flags |= 1; } -void sub_0807E538(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = !!(GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00) & gPlayerState.flags.all); - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E538(Entity* entity, ScriptExecutionContext* context) { + context->unk_14 = + !!(GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer) & gPlayerState.flags.all); + gActiveScriptInfo.flags |= 1; } -void sub_0807E564(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = (gPlayerState.flags.all >> 7) & 1; - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E564(Entity* entity, ScriptExecutionContext* context) { + context->unk_14 = (gPlayerState.flags.all >> 7) & 1; + gActiveScriptInfo.flags |= 1; } -void sub_0807E584(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = unk1->height.WORD != 0; - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E584(Entity* entity, ScriptExecutionContext* context) { + context->unk_14 = entity->height.WORD != 0; + gActiveScriptInfo.flags |= 1; } -void sub_0807E5A0(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = unk2->unk_00[1] == gPlayerEntity.action; - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E5A0(Entity* entity, ScriptExecutionContext* context) { + context->unk_14 = context->scriptInstructionPointer[1] == gPlayerEntity.action; + gActiveScriptInfo.flags |= 1; } -void sub_0807E5CC(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_14 = unk2->unk_00[1] == gPlayerEntity.animationState; - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E5CC(Entity* entity, ScriptExecutionContext* context) { + context->unk_14 = context->scriptInstructionPointer[1] == gPlayerEntity.animationState; + gActiveScriptInfo.flags |= 1; } -void sub_0807E5F8(Entity* unk1, ScriptExecutionContext* unk2) { - gUnk_02033280.unk_00 |= GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); +void ScriptCommand_0807E5F8(Entity* entity, ScriptExecutionContext* context) { + gActiveScriptInfo.unk_00 |= GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); } -void sub_0807E610(Entity* unk1, ScriptExecutionContext* unk2) { - gUnk_02033280.unk_00 &= ~GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); +void ScriptCommand_0807E610(Entity* entity, ScriptExecutionContext* context) { + gActiveScriptInfo.unk_00 &= ~GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); } -void sub_0807E628(Entity* unk1, ScriptExecutionContext* unk2) { - SetLocalFlag(unk2->unk_00[1]); +void ScriptCommand_0807E628(Entity* entity, ScriptExecutionContext* context) { + SetLocalFlag(context->scriptInstructionPointer[1]); } -void sub_0807E634(Entity* unk1, ScriptExecutionContext* unk2) { - SetLocalFlagByOffset(unk2->unk_00[1], unk2->unk_00[2]); +void ScriptCommand_0807E634(Entity* entity, ScriptExecutionContext* context) { + SetLocalFlagByOffset(context->scriptInstructionPointer[1], context->scriptInstructionPointer[2]); } -void sub_0807E644(Entity* unk1, ScriptExecutionContext* unk2) { - ClearLocalFlag(unk2->unk_00[1]); +void ScriptCommand_0807E644(Entity* entity, ScriptExecutionContext* context) { + ClearLocalFlag(context->scriptInstructionPointer[1]); } -void sub_0807E650(Entity* unk1, ScriptExecutionContext* unk2) { - SetGlobalFlag(unk2->unk_00[1]); +void ScriptCommand_0807E650(Entity* entity, ScriptExecutionContext* context) { + SetGlobalFlag(context->scriptInstructionPointer[1]); } -void sub_0807E65C(Entity* unk1, ScriptExecutionContext* unk2) { - ClearGlobalFlag(unk2->unk_00[1]); +void ScriptCommand_0807E65C(Entity* entity, ScriptExecutionContext* context) { + ClearGlobalFlag(context->scriptInstructionPointer[1]); } -void sub_0807E668(Entity* unk1, ScriptExecutionContext* unk2) { - SetRoomFlag(unk2->unk_00[1]); +void ScriptCommand_0807E668(Entity* entity, ScriptExecutionContext* context) { + SetRoomFlag(context->scriptInstructionPointer[1]); } -void sub_0807E674(Entity* unk1, ScriptExecutionContext* unk2) { - ClearRoomFlag(unk2->unk_00[1]); +void ScriptCommand_0807E674(Entity* entity, ScriptExecutionContext* context) { + ClearRoomFlag(context->scriptInstructionPointer[1]); } -void sub_0807E680(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_10 = GetNextScriptCommandHalfwordAfterCommandMetadata(unk2->unk_00); +void ScriptCommand_0807E680(Entity* entity, ScriptExecutionContext* context) { + context->wait = GetNextScriptCommandHalfwordAfterCommandMetadata(context->scriptInstructionPointer); } -void sub_0807E690(Entity* unk1, ScriptExecutionContext* unk2) { - u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); - if ((gUnk_02033280.unk_00 & tmp) != tmp) { - gUnk_02033280.unk_06 = 0; +void ScriptCommand_0807E690(Entity* entity, ScriptExecutionContext* context) { + u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); + if ((gActiveScriptInfo.unk_00 & tmp) != tmp) { + gActiveScriptInfo.commandSize = 0; } } -void sub_0807E6AC(Entity* unk1, ScriptExecutionContext* unk2) { - u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); - if ((gUnk_02033280.unk_00 & tmp) != tmp) { - gUnk_02033280.unk_06 = 0; +void ScriptCommand_0807E6AC(Entity* entity, ScriptExecutionContext* context) { + u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); + if ((gActiveScriptInfo.unk_00 & tmp) != tmp) { + gActiveScriptInfo.commandSize = 0; } else { - gUnk_02033280.unk_00 &= ~tmp; - gUnk_02033280.unk_07 |= 1; + gActiveScriptInfo.unk_00 &= ~tmp; + gActiveScriptInfo.flags |= 1; } } -void sub_0807E6DC(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807E6DC(Entity* entity, ScriptExecutionContext* context) { if (gPlayerEntity.action == 8) { - gUnk_02033280.unk_06 = 0; + gActiveScriptInfo.commandSize = 0; } else { - unk2->unk_10 = 0x2D; + context->wait = 0x2D; } } -void sub_0807E700(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807E700(Entity* entity, ScriptExecutionContext* context) { if (gPlayerEntity.action != 0x17) { - gUnk_02033280.unk_07 |= 1; + gActiveScriptInfo.flags |= 1; } else { - gUnk_02033280.unk_06 = 0; + gActiveScriptInfo.commandSize = 0; } } -void sub_0807E72C(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807E72C(Entity* entity, ScriptExecutionContext* context) { if (gRoomControls.unk6 & 4) { - gUnk_02033280.unk_06 = 0; + gActiveScriptInfo.commandSize = 0; } else { - gUnk_02033280.unk_07 |= 1; + gActiveScriptInfo.flags |= 1; } } -void sub_0807E75C(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807E75C(Entity* entity, ScriptExecutionContext* context) { if (gFadeControl.active) { - gUnk_02033280.unk_06 = 0; + gActiveScriptInfo.commandSize = 0; } } -void sub_0807E778(Entity* unk1, ScriptExecutionContext* unk2) { - gUnk_02033280.unk_08 = unk2->unk_00[1]; +void ScriptCommand_0807E778(Entity* entity, ScriptExecutionContext* context) { + gActiveScriptInfo.unk_08 = context->scriptInstructionPointer[1]; } -void sub_0807E788(Entity* unk1, ScriptExecutionContext* unk2) { - gFadeControl.field_0x4 = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); +void ScriptCommand_0807E788(Entity* entity, ScriptExecutionContext* context) { + gFadeControl.field_0x4 = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); } -void sub_0807E79C(Entity* unk1, ScriptExecutionContext* unk2) { - sub_080500F4(gUnk_02033280.unk_08); +void ScriptCommand_0807E79C(Entity* entity, ScriptExecutionContext* context) { + sub_080500F4(gActiveScriptInfo.unk_08); } -void nullsub_508(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommandNop2(Entity* entity, ScriptExecutionContext* context) { } -void sub_0807E7B0(Entity* unk1, ScriptExecutionContext* unk2) { - DoFade(4, gUnk_02033280.unk_08); +void ScriptCommand_0807E7B0(Entity* entity, ScriptExecutionContext* context) { + DoFade(4, gActiveScriptInfo.unk_08); } -void sub_0807E7C4(Entity* unk1, ScriptExecutionContext* unk2) { - DoFade(5, gUnk_02033280.unk_08); +void ScriptCommand_0807E7C4(Entity* entity, ScriptExecutionContext* context) { + DoFade(5, gActiveScriptInfo.unk_08); } -void sub_0807E7D8(Entity* unk1, ScriptExecutionContext* unk2) { - DoFade(6, gUnk_02033280.unk_08); +void ScriptCommand_0807E7D8(Entity* entity, ScriptExecutionContext* context) { + DoFade(6, gActiveScriptInfo.unk_08); } -void sub_0807E7EC(Entity* unk1, ScriptExecutionContext* unk2) { - DoFade(7, gUnk_02033280.unk_08); +void ScriptCommand_0807E7EC(Entity* entity, ScriptExecutionContext* context) { + DoFade(7, gActiveScriptInfo.unk_08); } -void sub_0807E800(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807E800(Entity* entity, ScriptExecutionContext* context) { sub_0807E818(0x10); } -void sub_0807E80C(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807E80C(Entity* entity, ScriptExecutionContext* context) { sub_0807E818(0x11); } @@ -919,112 +939,112 @@ void sub_0807E818(u32 unk1) { tmp2 = 0x78; tmp3 = 0x50; } - sub_08050110(tmp2, tmp3, unk1, gUnk_02033280.unk_08); + sub_08050110(tmp2, tmp3, unk1, gActiveScriptInfo.unk_08); } -void sub_0807E858(Entity* unk1, ScriptExecutionContext* unk2) { - sub_08050038(unk2->unk_00[1]); +void ScriptCommand_0807E858(Entity* entity, ScriptExecutionContext* context) { + sub_08050038(context->scriptInstructionPointer[1]); } -void sub_0807E864(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807E864(Entity* entity, ScriptExecutionContext* context) { gPlayerState.field_0x8b = 3; sub_08078B48(); } -void sub_0807E878(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807E878(Entity* entity, ScriptExecutionContext* context) { gPlayerState.field_0x8b = 1; } -void sub_0807E888(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807E888(Entity* entity, ScriptExecutionContext* context) { gPlayerState.field_0x8b = 3; } -void sub_0807E898(Entity* unk1, ScriptExecutionContext* unk2) { - u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); +void ScriptCommand_0807E898(Entity* entity, ScriptExecutionContext* context) { + u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); gPlayerState.playerAction = tmp; gPlayerState.field_0x38 = tmp >> 8; gPlayerState.field_0x39 = tmp >> 0x10; gPlayerState.field_0x3a = tmp >> 0x18; } -void sub_0807E8C4(Entity* unk1, ScriptExecutionContext* unk2) { - StartPlayerScript((u16*)GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00)); +void ScriptCommand_0807E8C4(Entity* entity, ScriptExecutionContext* context) { + StartPlayerScript((u16*)GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer)); } -void sub_0807E8D4(Entity* unk1, ScriptExecutionContext* unk2) { - gPlayerState.field_0x8 = unk2->unk_00[1]; +void ScriptCommand_0807E8D4(Entity* entity, ScriptExecutionContext* context) { + gPlayerState.field_0x8 = context->scriptInstructionPointer[1]; } -void sub_0807E8E4(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807E8E4(Entity* entity, ScriptExecutionContext* context) { u32 tmp = (gUnk_08016984 & 0x3FF); u32 tmp2; - gPlayerEntity.animationState = tmp2 = (unk2->unk_00[0] - tmp) << 1; + gPlayerEntity.animationState = tmp2 = (context->scriptInstructionPointer[0] - tmp) << 1; } -void sub_0807E908(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->action = unk2->unk_00[1]; - unk1->previousActionFlag = 0; +void ScriptCommand_0807E908(Entity* entity, ScriptExecutionContext* context) { + entity->action = context->scriptInstructionPointer[1]; + entity->previousActionFlag = 0; } -void sub_0807E914(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_04 = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); +void ScriptCommand_0807E914(Entity* entity, ScriptExecutionContext* context) { + context->unk_04 = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); } -void sub_0807E924(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_04 = unk1->frames.all; - unk1->frames.all = 0; +void ScriptCommand_0807E924(Entity* entity, ScriptExecutionContext* context) { + context->unk_04 = entity->frames.all; + entity->frames.all = 0; } -void sub_0807E930(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->field_0x80.HWORD = unk2->unk_00[1]; - InitAnimationForceUpdate(unk1, unk2->unk_00[1]); +void ScriptCommand_0807E930(Entity* entity, ScriptExecutionContext* context) { + entity->field_0x80.HWORD = context->scriptInstructionPointer[1]; + InitAnimationForceUpdate(entity, context->scriptInstructionPointer[1]); } -void sub_0807E944(Entity* unk1, ScriptExecutionContext* unk2) { - if (unk1->interactType) { - unk1->interactType = 0; - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807E944(Entity* entity, ScriptExecutionContext* context) { + if (entity->interactType) { + entity->interactType = 0; + gActiveScriptInfo.flags |= 1; } else { - gUnk_02033280.unk_06 = 0; + gActiveScriptInfo.commandSize = 0; } } -void sub_0807E974(Entity* unk1, ScriptExecutionContext* unk2) { - switch (unk2->unk_18) { +void ScriptCommand_0807E974(Entity* entity, ScriptExecutionContext* context) { + switch (context->unk_18) { default: - if (!--unk2->unk_19) + if (!--context->unk_19) return; break; case 0: - if (!unk1->interactType) + if (!entity->interactType) break; - unk1->interactType = 0; - unk2->unk_18++; - TextboxNoOverlapFollow(unk2->unk_00[1]); + entity->interactType = 0; + context->unk_18++; + TextboxNoOverlapFollow(context->scriptInstructionPointer[1]); break; case 1: if (gTextBox.doTextBox & 0x7F) break; - unk2->unk_18 = 2; - unk2->unk_19 = 0xF; + context->unk_18 = 2; + context->unk_19 = 0xF; break; } - gUnk_02033280.unk_06 = 0; + gActiveScriptInfo.commandSize = 0; } -void sub_0807E9D4(Entity* unk1, ScriptExecutionContext* unk2) { - sub_08078778(unk1); +void ScriptCommand_0807E9D4(Entity* entity, ScriptExecutionContext* context) { + sub_08078778(entity); } -void sub_0807E9DC(Entity* unk1, ScriptExecutionContext* unk2) { - sub_080788E0(unk1); +void ScriptCommand_0807E9DC(Entity* entity, ScriptExecutionContext* context) { + sub_080788E0(entity); } -void sub_0807E9E4(Entity* unk1, ScriptExecutionContext* unk2) { - sub_08078784(unk1, unk2->unk_00[1]); +void ScriptCommand_0807E9E4(Entity* entity, ScriptExecutionContext* context) { + sub_08078784(entity, context->scriptInstructionPointer[1]); } -void sub_0807E9F0(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807E9F0(Entity* entity, ScriptExecutionContext* context) { u32 tmp; sub_0801E00C(); tmp = 1; @@ -1032,10 +1052,10 @@ void sub_0807E9F0(Entity* unk1, ScriptExecutionContext* unk2) { case 2: gPlayerState.field_0x8b = 3; gUnk_02034490[0] = tmp; - unk2->unk_14 = tmp; + context->unk_14 = tmp; break; case 1: - unk2->unk_14 = 0; + context->unk_14 = 0; break; default: goto lbl; @@ -1045,351 +1065,356 @@ void sub_0807E9F0(Entity* unk1, ScriptExecutionContext* unk2) { gPlayerState.field_0x8b = 1; } else { lbl: - gUnk_02033280.unk_06 = 0; + gActiveScriptInfo.commandSize = 0; } } -void sub_0807EA4C(Entity* unk1, ScriptExecutionContext* unk2) { - if (unk1->interactType == 2) { - sub_0801DFB4(unk1, 0, 0, 0); - unk1->interactType = 0; - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807EA4C(Entity* entity, ScriptExecutionContext* context) { + if (entity->interactType == 2) { + sub_0801DFB4(entity, 0, 0, 0); + entity->interactType = 0; + gActiveScriptInfo.flags |= 1; } else { - gUnk_02033280.unk_06 = 0; + gActiveScriptInfo.commandSize = 0; } } -void sub_0807EA88(Entity* unk1, ScriptExecutionContext* unk2) { - sub_08078790(unk1, unk2->unk_00[1]); +void ScriptCommand_0807EA88(Entity* entity, ScriptExecutionContext* context) { + sub_08078790(entity, context->scriptInstructionPointer[1]); } -void sub_0807EA94(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807EA94(Entity* entity, ScriptExecutionContext* context) { if (gTextBox.doTextBox & 0x7F) { - gUnk_02033280.unk_06 = 0; + gActiveScriptInfo.commandSize = 0; } } -void sub_0807EAB4(Entity* unk1, ScriptExecutionContext* unk2) { - TextboxNoOverlapFollow(unk2->unk_00[1]); +void ScriptCommand_0807EAB4(Entity* entity, ScriptExecutionContext* context) { + TextboxNoOverlapFollow(context->scriptInstructionPointer[1]); } -void sub_0807EAC0(Entity* unk1, ScriptExecutionContext* unk2) { - TextboxNoOverlap(unk2->unk_00[1], unk1); +void ScriptCommand_0807EAC0(Entity* entity, ScriptExecutionContext* context) { + TextboxNoOverlap(context->scriptInstructionPointer[1], entity); } -void sub_0807EAD0(Entity* unk1, ScriptExecutionContext* unk2) { - TextboxNoOverlapFollow(unk2->unk_00[1]); +void ScriptCommand_0807EAD0(Entity* entity, ScriptExecutionContext* context) { + TextboxNoOverlapFollow(context->scriptInstructionPointer[1]); gTextBox.textWindowPosX = 1; - gTextBox.textWindowPosY = unk2->unk_00[2]; + gTextBox.textWindowPosY = context->scriptInstructionPointer[2]; } -void sub_0807EAF0(Entity* unk1, ScriptExecutionContext* unk2) { - if (gUnk_02033280.unk_06 > unk2->unk_04) { - u16* tmp = unk2->unk_00 + unk2->unk_04; +void ScriptCommand_0807EAF0(Entity* entity, ScriptExecutionContext* context) { + if (gActiveScriptInfo.commandSize > context->unk_04) { + u16* tmp = context->scriptInstructionPointer + context->unk_04; TextboxNoOverlapFollow(tmp[1]); } else { TextboxNoOverlapFollow(0); } } -void sub_0807EB18(Entity* unk1, ScriptExecutionContext* unk2) { - TextboxNoOverlap(unk2->unk_04, unk1); +void ScriptCommand_0807EB18(Entity* entity, ScriptExecutionContext* context) { + TextboxNoOverlap(context->unk_04, entity); } -void sub_0807EB28(Entity* unk1, ScriptExecutionContext* unk2) { - sub_08078AA8(unk2->unk_00[1], 0); +void ScriptCommand_0807EB28(Entity* entity, ScriptExecutionContext* context) { + sub_08078AA8(context->scriptInstructionPointer[1], 0); } -void sub_0807EB38(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_04 = gUnk_02000040.unk_01; +void ScriptCommand_0807EB38(Entity* entity, ScriptExecutionContext* context) { + context->unk_04 = gUnk_02000040.unk_01; } -void sub_0807EB44(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->animationState = unk2->unk_00[1]; +void ScriptCommand_0807EB44(Entity* entity, ScriptExecutionContext* context) { + entity->animationState = context->scriptInstructionPointer[1]; } -void sub_0807EB4C(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->animationState = sub_0806F5B0( - sub_080045B4(unk1, unk2->unk_00[1] + gRoomControls.roomOriginX, unk2->unk_00[2] + gRoomControls.roomOriginY)); +void ScriptCommand_0807EB4C(Entity* entity, ScriptExecutionContext* context) { + entity->animationState = + sub_0806F5B0(sub_080045B4(entity, context->scriptInstructionPointer[1] + gRoomControls.roomOriginX, + context->scriptInstructionPointer[2] + gRoomControls.roomOriginY)); } -void sub_0807EB74(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->animationState = sub_0806F5B0(GetFacingDirection(unk1, &gPlayerEntity)); +void ScriptCommand_0807EB74(Entity* entity, ScriptExecutionContext* context) { + entity->animationState = sub_0806F5B0(GetFacingDirection(entity, &gPlayerEntity)); } -void sub_0807EB8C(Entity* unk1, ScriptExecutionContext* unk2) { - gPlayerEntity.animationState = sub_0806F5B0(GetFacingDirection(&gPlayerEntity, unk1)) & ~1; +void ScriptCommand_0807EB8C(Entity* entity, ScriptExecutionContext* context) { + gPlayerEntity.animationState = sub_0806F5B0(GetFacingDirection(&gPlayerEntity, entity)) & ~1; } -void sub_0807EBA8(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->direction = unk2->unk_00[1]; +void ScriptCommand_0807EBA8(Entity* entity, ScriptExecutionContext* context) { + entity->direction = context->scriptInstructionPointer[1]; } -void sub_0807EBB0(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->direction = unk2->unk_00[1]; - unk1->animationState = unk1->direction / 4; +void ScriptCommand_0807EBB0(Entity* entity, ScriptExecutionContext* context) { + entity->direction = context->scriptInstructionPointer[1]; + entity->animationState = entity->direction / 4; } -void sub_0807EBC0(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->nonPlanarMovement = unk2->unk_00[1]; +void ScriptCommand_0807EBC0(Entity* entity, ScriptExecutionContext* context) { + entity->nonPlanarMovement = context->scriptInstructionPointer[1]; } -void sub_0807EBC8(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->field_0x20 = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); +void ScriptCommand_0807EBC8(Entity* entity, ScriptExecutionContext* context) { + entity->field_0x20 = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); } -void sub_0807EBD8(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->x.HALF.HI = gRoomControls.roomOriginX + unk2->unk_00[1]; - unk1->y.HALF.HI = gRoomControls.roomOriginY + unk2->unk_00[2]; +void ScriptCommand_0807EBD8(Entity* entity, ScriptExecutionContext* context) { + entity->x.HALF.HI = gRoomControls.roomOriginX + context->scriptInstructionPointer[1]; + entity->y.HALF.HI = gRoomControls.roomOriginY + context->scriptInstructionPointer[2]; } -void sub_0807EBF4(Entity* unk1, ScriptExecutionContext* unk2) { - unk1->x.HALF.HI += unk2->unk_00[1]; - unk1->y.HALF.HI += unk2->unk_00[2]; +void ScriptCommand_0807EBF4(Entity* entity, ScriptExecutionContext* context) { + entity->x.HALF.HI += context->scriptInstructionPointer[1]; + entity->y.HALF.HI += context->scriptInstructionPointer[2]; } -void sub_0807EC08(Entity* unk1, ScriptExecutionContext* unk2) { - CopyPosition(&gPlayerEntity, unk1); +void ScriptCommand_0807EC08(Entity* entity, ScriptExecutionContext* context) { + CopyPosition(&gPlayerEntity, entity); } -void nullsub_509(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommandNop3(Entity* entity, ScriptExecutionContext* context) { } -void sub_0807EC1C(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->unk_18) { - unk2->unk_18 = 1; - unk2->unk_12 = unk2->unk_00[1]; - unk2->unk_08 |= 2; +void ScriptCommand_0807EC1C(Entity* entity, ScriptExecutionContext* context) { + if (!context->unk_18) { + context->unk_18 = 1; + context->unk_12 = context->scriptInstructionPointer[1]; + context->unk_08 |= 2; } - sub_0807EC44(unk1, unk2); + sub_0807EC44(entity, context); } void sub_0807EC44(Entity* unk1, ScriptExecutionContext* unk2) { sub_0806F69C(unk1); if (--unk2->unk_12) { - gUnk_02033280.unk_06 = 0; + gActiveScriptInfo.commandSize = 0; } } -void sub_0807EC64(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->unk_18) { - unk2->unk_18 = 1; - unk2->unk_12 = unk2->unk_00[1]; - unk1->animationState = 0; - unk1->direction = 0; - unk2->unk_08 |= 2; +void ScriptCommand_0807EC64(Entity* entity, ScriptExecutionContext* context) { + if (!context->unk_18) { + context->unk_18 = 1; + context->unk_12 = context->scriptInstructionPointer[1]; + entity->animationState = 0; + entity->direction = 0; + context->unk_08 |= 2; } - sub_0807EC44(unk1, unk2); + sub_0807EC44(entity, context); } -void sub_0807EC94(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->unk_18) { - unk2->unk_18 = 1; - unk2->unk_12 = unk2->unk_00[1]; - unk1->animationState = 2; - unk1->direction = 8; - unk2->unk_08 |= 2; +void ScriptCommand_0807EC94(Entity* entity, ScriptExecutionContext* context) { + if (!context->unk_18) { + context->unk_18 = 1; + context->unk_12 = context->scriptInstructionPointer[1]; + entity->animationState = 2; + entity->direction = 8; + context->unk_08 |= 2; } - sub_0807EC44(unk1, unk2); + sub_0807EC44(entity, context); } -void sub_0807ECC4(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->unk_18) { - unk2->unk_18 = 1; - unk2->unk_12 = unk2->unk_00[1]; - unk1->animationState = 4; - unk1->direction = 0x10; - unk2->unk_08 |= 2; +void ScriptCommand_0807ECC4(Entity* entity, ScriptExecutionContext* context) { + if (!context->unk_18) { + context->unk_18 = 1; + context->unk_12 = context->scriptInstructionPointer[1]; + entity->animationState = 4; + entity->direction = 0x10; + context->unk_08 |= 2; } - sub_0807EC44(unk1, unk2); + sub_0807EC44(entity, context); } -void sub_0807ECF4(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->unk_18) { - unk2->unk_18 = 1; - unk2->unk_12 = unk2->unk_00[1]; - unk1->animationState = 6; - unk1->direction = 0x18; - unk2->unk_08 |= 2; +void ScriptCommand_0807ECF4(Entity* entity, ScriptExecutionContext* context) { + if (!context->unk_18) { + context->unk_18 = 1; + context->unk_12 = context->scriptInstructionPointer[1]; + entity->animationState = 6; + entity->direction = 0x18; + context->unk_08 |= 2; } - sub_0807EC44(unk1, unk2); + sub_0807EC44(entity, context); } -void sub_0807ED24(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->unk_18) { +void ScriptCommand_0807ED24(Entity* entity, ScriptExecutionContext* context) { + if (!context->unk_18) { s32 tmp, tmp2, tmp3; - unk2->unk_18 = 1; - unk2->unk_12 = unk2->unk_00[3]; - tmp = unk2->unk_00[1]; - tmp2 = unk1->x.HALF.HI - gRoomControls.roomOriginX; - unk2->unk_1C.WORD = ((tmp - tmp2) << 0x10) / unk2->unk_12; - tmp = unk2->unk_00[2]; - tmp3 = unk1->y.HALF.HI - gRoomControls.roomOriginY; - unk2->unk_20.WORD = ((tmp - tmp3) << 0x10) / unk2->unk_12; - unk1->animationState = sub_0806F5B0(sub_080045B4(unk1, unk2->unk_00[1] + gRoomControls.roomOriginX, - unk2->unk_00[2] + gRoomControls.roomOriginY)); - unk2->unk_08 |= 2; + context->unk_18 = 1; + context->unk_12 = context->scriptInstructionPointer[3]; + tmp = context->scriptInstructionPointer[1]; + tmp2 = entity->x.HALF.HI - gRoomControls.roomOriginX; + context->unk_1C.WORD = ((tmp - tmp2) << 0x10) / context->unk_12; + tmp = context->scriptInstructionPointer[2]; + tmp3 = entity->y.HALF.HI - gRoomControls.roomOriginY; + context->unk_20.WORD = ((tmp - tmp3) << 0x10) / context->unk_12; + entity->animationState = + sub_0806F5B0(sub_080045B4(entity, context->scriptInstructionPointer[1] + gRoomControls.roomOriginX, + context->scriptInstructionPointer[2] + gRoomControls.roomOriginY)); + context->unk_08 |= 2; } else { - if (!--unk2->unk_12) { - unk1->x.HALF.HI = unk2->unk_00[1] + gRoomControls.roomOriginX; - unk1->y.HALF.HI = unk2->unk_00[2] + gRoomControls.roomOriginY; + if (!--context->unk_12) { + entity->x.HALF.HI = context->scriptInstructionPointer[1] + gRoomControls.roomOriginX; + entity->y.HALF.HI = context->scriptInstructionPointer[2] + gRoomControls.roomOriginY; return; } - unk1->x.WORD += unk2->unk_1C.WORD; - unk1->y.WORD += unk2->unk_20.WORD; + entity->x.WORD += context->unk_1C.WORD; + entity->y.WORD += context->unk_20.WORD; } - gUnk_02033280.unk_06 = 0; + gActiveScriptInfo.commandSize = 0; } -void sub_0807EDD4(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->unk_18) { - unk2->unk_18 = 1; - sub_0807EE04(unk1, unk2); +void ScriptCommand_0807EDD4(Entity* entity, ScriptExecutionContext* context) { + if (!context->unk_18) { + context->unk_18 = 1; + ScriptCommand_0807EE04(entity, context); } - sub_0807EE30(unk1, unk2); - if (!unk2->unk_14) { - gUnk_02033280.unk_06 = 0; + ScriptCommand_0807EE30(entity, context); + if (!context->unk_14) { + gActiveScriptInfo.commandSize = 0; } } -void sub_0807EE04(Entity* unk1, ScriptExecutionContext* unk2) { - sub_0807DEDC(unk1, unk2, unk2->unk_00[1] + gRoomControls.roomOriginX, unk2->unk_00[2] + gRoomControls.roomOriginY); - gUnk_02033280.unk_07 |= 1; +void ScriptCommand_0807EE04(Entity* entity, ScriptExecutionContext* context) { + sub_0807DEDC(entity, context, context->scriptInstructionPointer[1] + gRoomControls.roomOriginX, + context->scriptInstructionPointer[2] + gRoomControls.roomOriginY); + gActiveScriptInfo.flags |= 1; } -void sub_0807EE30(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807EE30(Entity* entity, ScriptExecutionContext* context) { s32 tmp, tmp2; - if (!--unk2->unk_19) { - unk2->unk_19 = 8; - unk1->direction = sub_080045DA(unk2->unk_1C.HALF.HI - unk1->x.HALF.HI, unk2->unk_20.HALF.HI - unk1->y.HALF.HI); + if (!--context->unk_19) { + context->unk_19 = 8; + entity->direction = + sub_080045DA(context->unk_1C.HALF.HI - entity->x.HALF.HI, context->unk_20.HALF.HI - entity->y.HALF.HI); } - tmp = unk1->x.HALF.HI - unk2->unk_1C.HALF.HI; - tmp2 = unk1->y.HALF.HI - unk2->unk_20.HALF.HI; - sub_0806F62C(unk1, unk1->nonPlanarMovement, unk1->direction); - tmp *= unk1->x.HALF.HI - unk2->unk_1C.HALF.HI; - tmp2 *= unk1->y.HALF.HI - unk2->unk_20.HALF.HI; + tmp = entity->x.HALF.HI - context->unk_1C.HALF.HI; + tmp2 = entity->y.HALF.HI - context->unk_20.HALF.HI; + sub_0806F62C(entity, entity->nonPlanarMovement, entity->direction); + tmp *= entity->x.HALF.HI - context->unk_1C.HALF.HI; + tmp2 *= entity->y.HALF.HI - context->unk_20.HALF.HI; if (tmp <= 0 && tmp2 <= 0) { - unk1->x.HALF.HI = unk2->unk_1C.HALF.HI; - unk1->y.HALF.HI = unk2->unk_20.HALF.HI; - unk2->unk_14 = 1; + entity->x.HALF.HI = context->unk_1C.HALF.HI; + entity->y.HALF.HI = context->unk_20.HALF.HI; + context->unk_14 = 1; } else { - unk2->unk_14 = 0; + context->unk_14 = 0; } } -void sub_0807EEB4(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->unk_18) { - unk2->unk_18 = 1; - sub_0807DEDC(unk1, unk2, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI); +void ScriptCommand_0807EEB4(Entity* entity, ScriptExecutionContext* context) { + if (!context->unk_18) { + context->unk_18 = 1; + sub_0807DEDC(entity, context, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI); } - sub_0807EE30(unk1, unk2); - if (!unk2->unk_14) { - gUnk_02033280.unk_06 = 0; + ScriptCommand_0807EE30(entity, context); + if (!context->unk_14) { + gActiveScriptInfo.commandSize = 0; } } -void sub_0807EEF4(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->unk_18) { - unk2->unk_18 = 1; - sub_0807DEDC(unk1, unk2, unk1->x.HALF.HI + ((s16)unk2->unk_00[1]), unk1->y.HALF.HI + ((s16)unk2->unk_00[2])); +void ScriptCommand_0807EEF4(Entity* entity, ScriptExecutionContext* context) { + if (!context->unk_18) { + context->unk_18 = 1; + sub_0807DEDC(entity, context, entity->x.HALF.HI + ((s16)context->scriptInstructionPointer[1]), + entity->y.HALF.HI + ((s16)context->scriptInstructionPointer[2])); } - sub_0807EE30(unk1, unk2); - if (!unk2->unk_14) { - gUnk_02033280.unk_06 = 0; + ScriptCommand_0807EE30(entity, context); + if (!context->unk_14) { + gActiveScriptInfo.commandSize = 0; } } -void sub_0807EF3C(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->unk_18) { - unk2->unk_18 = 1; - unk1->field_0x20 = ((s16)unk2->unk_00[1]) << 8; - unk2->unk_1C.HALF.LO = unk2->unk_00[2] << 8; - sub_08003FC4(unk1, (u16)unk2->unk_1C.HALF.LO); +void ScriptCommand_0807EF3C(Entity* entity, ScriptExecutionContext* context) { + if (!context->unk_18) { + context->unk_18 = 1; + entity->field_0x20 = ((s16)context->scriptInstructionPointer[1]) << 8; + context->unk_1C.HALF.LO = context->scriptInstructionPointer[2] << 8; + sub_08003FC4(entity, (u16)context->unk_1C.HALF.LO); } else { - if (!sub_08003FC4(unk1, (u16)unk2->unk_1C.HALF.LO)) + if (!sub_08003FC4(entity, (u16)context->unk_1C.HALF.LO)) return; } - gUnk_02033280.unk_06 = 0; + gActiveScriptInfo.commandSize = 0; } -void sub_0807EF80(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_08 |= 1 << unk2->unk_00[1]; +void ScriptCommand_0807EF80(Entity* entity, ScriptExecutionContext* context) { + context->unk_08 |= 1 << context->scriptInstructionPointer[1]; } -void sub_0807EF90(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_08 |= 1 << unk2->unk_00[1]; +void ScriptCommand_0807EF90(Entity* entity, ScriptExecutionContext* context) { + context->unk_08 |= 1 << context->scriptInstructionPointer[1]; } -void sub_0807EFA0(Entity* unk1, ScriptExecutionContext* unk2) { - SoundReq(unk2->unk_00[1]); +void ScriptCommand_0807EFA0(Entity* entity, ScriptExecutionContext* context) { + SoundReq(context->scriptInstructionPointer[1]); } -void sub_0807EFAC(Entity* unk1, ScriptExecutionContext* unk2) { - if (unk2->unk_00[1] >= 100) { +void ScriptCommand_0807EFAC(Entity* entity, ScriptExecutionContext* context) { + if (context->scriptInstructionPointer[1] >= 100) { SoundReq(gArea.musicIndex); } else { - SoundReq(unk2->unk_00[1]); + SoundReq(context->scriptInstructionPointer[1]); } } -void sub_0807EFD4(Entity* unk1, ScriptExecutionContext* unk2) { - SoundReq(GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00)); +void ScriptCommand_0807EFD4(Entity* entity, ScriptExecutionContext* context) { + SoundReq(GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer)); } -void sub_0807EFE4(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807EFE4(Entity* entity, ScriptExecutionContext* context) { SoundReq(0x80100000); } -void sub_0807EFF4(Entity* unk1, ScriptExecutionContext* unk2) { - ModRupees((s16)unk2->unk_00[1]); +void ScriptCommand_0807EFF4(Entity* entity, ScriptExecutionContext* context) { + ModRupees((s16)context->scriptInstructionPointer[1]); } -void sub_0807F004(Entity* unk1, ScriptExecutionContext* unk2) { - ModHealth(unk2->unk_00[1]); +void ScriptCommand_0807F004(Entity* entity, ScriptExecutionContext* context) { + ModHealth(context->scriptInstructionPointer[1]); } -void sub_0807F010(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807F010(Entity* entity, ScriptExecutionContext* context) { gSave.stats.maxHealth = min(gSave.stats.maxHealth + 8, 0xA0); gSave.stats.health = gSave.stats.maxHealth; } -void sub_0807F034(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807F034(Entity* entity, ScriptExecutionContext* context) { u32 tmp = 0; - if (unk2->unk_00[1] == 0x3F) { - tmp = unk2->unk_04; + if (context->scriptInstructionPointer[1] == 0x3F) { + tmp = context->unk_04; } - sub_080A7C18(unk2->unk_00[1], tmp, 0); + sub_080A7C18(context->scriptInstructionPointer[1], tmp, 0); } -void sub_0807F050(Entity* unk1, ScriptExecutionContext* unk2) { - sub_080A7C18(0x5C, unk2->unk_00[1], 0); +void ScriptCommand_0807F050(Entity* entity, ScriptExecutionContext* context) { + sub_080A7C18(0x5C, context->scriptInstructionPointer[1], 0); } -void sub_0807F060(Entity* unk1, ScriptExecutionContext* unk2) { - unk2->unk_04 = GetInventoryValue(unk2->unk_00[1]); - unk2->unk_14 = unk2->unk_04 != 0; +void ScriptCommand_0807F060(Entity* entity, ScriptExecutionContext* context) { + context->unk_04 = GetInventoryValue(context->scriptInstructionPointer[1]); + context->unk_14 = context->unk_04 != 0; } -void sub_0807F078(Entity* unk1, ScriptExecutionContext* unk2) { - sub_0807CAA0(unk2->unk_00[1], unk2->unk_00[2]); +void ScriptCommand_0807F078(Entity* entity, ScriptExecutionContext* context) { + sub_0807CAA0(context->scriptInstructionPointer[1], context->scriptInstructionPointer[2]); } -void sub_0807F088(Entity* unk1, ScriptExecutionContext* unk2) { - sub_080A7C18(unk2->unk_00[1], 0, 3); +void ScriptCommand_0807F088(Entity* entity, ScriptExecutionContext* context) { + sub_080A7C18(context->scriptInstructionPointer[1], 0, 3); } -void sub_0807F098(Entity* unk1, ScriptExecutionContext* unk2) { - gRoomControls.cameraTarget = unk1; +void ScriptCommand_0807F098(Entity* entity, ScriptExecutionContext* context) { + gRoomControls.cameraTarget = entity; } -void sub_0807F0A4(Entity* unk1, ScriptExecutionContext* unk2) { +void ScriptCommand_0807F0A4(Entity* entity, ScriptExecutionContext* context) { gRoomControls.cameraTarget = &gPlayerEntity; } -void sub_0807F0B4(Entity* unk1, ScriptExecutionContext* unk2) { - gRoomControls.unk5 = unk2->unk_00[1] & 7; +void ScriptCommand_0807F0B4(Entity* entity, ScriptExecutionContext* context) { + gRoomControls.unk5 = context->scriptInstructionPointer[1] & 7; } -void sub_0807F0C8(Entity* unk1, ScriptExecutionContext* unk2) { - sub_08080964(unk2->unk_00[1], unk2->unk_00[2]); +void ScriptCommand_0807F0C8(Entity* entity, ScriptExecutionContext* context) { + sub_08080964(context->scriptInstructionPointer[1], context->scriptInstructionPointer[2]); } -- cgit v1.2.3 From 849ff8dcfd1e9b24b91bf830719a24f31f113115 Mon Sep 17 00:00:00 2001 From: Henny022p Date: Thu, 4 Mar 2021 20:59:20 +0100 Subject: named a lot of script commands --- src/script.c | 562 +++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 332 insertions(+), 230 deletions(-) (limited to 'src/script.c') diff --git a/src/script.c b/src/script.c index eed9dae0..9ee2d8ca 100644 --- a/src/script.c +++ b/src/script.c @@ -13,69 +13,69 @@ void sub_0807DB88(ScriptExecutionContext*, u16*); void sub_0807DE80(Entity*); void sub_0807DF38(void); void ScriptCommandNop(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E004(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E014(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E024(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E050(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E064(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_StartScript(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_StopScript(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_Jump(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_JumpIf(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_JumpIfNot(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E078(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E0A0(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E0B8(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E0CC(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_JumpAbsolute(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_JumpAbsoluteIf(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_JumpAbsoluteIfNot(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E0E0(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E10C(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E124(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E148(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E158(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E188(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E1D8(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E200(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E220(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E240(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E260(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E280(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E2A8(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E2E4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_Call(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_CallWithArg(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_LoadRoomEntityList(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_TestBit(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_CheckInventory1(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_CheckInventory2(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_CheckLocalFlag(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_CheckLocalFlagByOffset(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_CheckGlobalFlag(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_CheckRoomFlag(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_CheckPlayerInRegion(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_CheckPlayerInRegion2(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_CheckEntityInteractType(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E30C(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E390(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_HasRupees(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E3BC(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E3E8(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E40C(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E42C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_CheckKinstoneFused(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_BuyItem(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E48C(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E4AC(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_HasRoomItemForSale(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E4CC(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E4EC(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E514(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E538(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_CheckPlayerFlags(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E564(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E584(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E5A0(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E5CC(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_EntityHasHeight(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_ComparePlayerAction(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_ComparePlayerAnimationState(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E5F8(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E610(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E628(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E634(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E644(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E650(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E65C(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E668(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E674(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E680(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E690(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E6AC(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E6DC(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E700(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E72C(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E75C(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetLocalFlag(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetLocalFlagByOffset(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_ClearLocalFlag(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetGlobalFlag(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_ClearGlobalFlag(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetRoomFlag(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_ClearRoomFlag(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_Wait(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_WaitForSomething(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_WaitForSomething2(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_WaitPlayerAction8(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_WaitForPlayerAction0x17(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_WaitFor_1(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_WaitFor_2(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E778(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E788(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E79C(Entity* entity, ScriptExecutionContext* context); void ScriptCommandNop2(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E7B0(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E7C4(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E7D8(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E7EC(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_DoFade4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_DoFade5(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_DoFade6(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_DoFade7(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E800(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E80C(Entity* entity, ScriptExecutionContext* context); void sub_0807E818(u32); @@ -83,8 +83,8 @@ void ScriptCommand_0807E858(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E864(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E878(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E888(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E898(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E8C4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetPlayerAction(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_StartPlayerScript(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E8D4(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E8E4(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E908(Entity* entity, ScriptExecutionContext* context); @@ -100,24 +100,24 @@ void ScriptCommand_0807E9F0(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EA4C(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EA88(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EA94(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EAB4(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EAC0(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EAD0(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_TextboxNoOverlapFollow(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_TextboxNoOverlap(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_TextboxNoOverlapFollowPos(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EAF0(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EB18(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_TextboxNoOverlapVar(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EB28(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EB38(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EB44(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EB4C(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EB74(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EB8C(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EBA8(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EBB0(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EBC0(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EBC8(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EBD8(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EBF4(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EC08(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetEntityDirection(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetEntityDirectionWithAnimationState(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetEntityNonPlanarMovement(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetEntity0x20(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetEntityPositionRelative(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetEntityPosition(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_MoveEntityToPlayer(Entity* entity, ScriptExecutionContext* context); void ScriptCommandNop3(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EC1C(Entity* entity, ScriptExecutionContext* context); void sub_0807EC44(Entity*, ScriptExecutionContext*); @@ -134,20 +134,20 @@ void ScriptCommand_0807EEF4(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EF3C(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EF80(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EF90(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EFA0(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EFAC(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EFD4(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EFE4(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EFF4(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807F004(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807F010(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SoundReq(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SoundReq2(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SoundReq3(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SoundReq0x80100000(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_ModRupees(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_ModHealth(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_IncreaseMaxHealth(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807F034(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807F050(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807F060(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_GetInventoryValue(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807F078(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807F088(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807F098(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807F0A4(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_CameraTargetEntity(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_CameraTargetPlayer(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807F0B4(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807F0C8(Entity* entity, ScriptExecutionContext* context); @@ -157,43 +157,145 @@ extern void sub_0801C4A0(u32); typedef void (*ScriptCommand)(Entity*, ScriptExecutionContext*); -const ScriptCommand gScriptCommands[] = { - ScriptCommandNop, ScriptCommand_0807E004, ScriptCommand_0807E014, ScriptCommand_0807E024, - ScriptCommand_0807E050, ScriptCommand_0807E064, ScriptCommand_0807E078, ScriptCommand_0807E0A0, - ScriptCommand_0807E0B8, ScriptCommand_0807E0CC, ScriptCommand_0807E0E0, ScriptCommand_0807E10C, - ScriptCommand_0807E124, ScriptCommand_0807E148, ScriptCommand_0807E158, ScriptCommand_0807E188, - ScriptCommand_0807E1D8, ScriptCommand_0807E4AC, ScriptCommand_0807E200, ScriptCommand_0807E220, - ScriptCommand_0807E240, ScriptCommand_0807E260, ScriptCommand_0807E280, ScriptCommand_0807E2A8, - ScriptCommand_0807E2E4, ScriptCommand_0807E30C, ScriptCommand_0807E390, ScriptCommand_0807E3BC, - ScriptCommand_0807E3E8, ScriptCommand_0807E40C, ScriptCommand_0807E42C, ScriptCommand_0807E48C, - ScriptCommand_0807E4CC, ScriptCommand_0807E4EC, ScriptCommand_0807E514, ScriptCommand_0807E538, - ScriptCommand_0807E564, ScriptCommand_0807E584, ScriptCommand_0807E5A0, ScriptCommand_0807E5CC, - ScriptCommand_0807E5F8, ScriptCommand_0807E610, ScriptCommand_0807E628, ScriptCommand_0807E634, - ScriptCommand_0807E644, ScriptCommand_0807E650, ScriptCommand_0807E65C, ScriptCommand_0807E668, - ScriptCommand_0807E674, ScriptCommand_0807E680, ScriptCommand_0807E690, ScriptCommand_0807E6AC, - ScriptCommand_0807E6DC, ScriptCommand_0807E700, ScriptCommand_0807E72C, ScriptCommand_0807E75C, - ScriptCommand_0807E778, ScriptCommand_0807E788, ScriptCommand_0807E79C, ScriptCommandNop2, - ScriptCommand_0807E7B0, ScriptCommand_0807E7C4, ScriptCommand_0807E7D8, ScriptCommand_0807E7EC, - ScriptCommand_0807E800, ScriptCommand_0807E80C, ScriptCommand_0807E858, ScriptCommand_0807E864, - ScriptCommand_0807E878, ScriptCommand_0807E888, ScriptCommand_0807E898, ScriptCommand_0807E8C4, - ScriptCommand_0807E8D4, ScriptCommand_0807E8E4, ScriptCommand_0807E8E4, ScriptCommand_0807E8E4, - ScriptCommand_0807E8E4, ScriptCommand_0807E908, ScriptCommand_0807E914, ScriptCommand_0807E924, - ScriptCommand_0807E930, ScriptCommand_0807E944, ScriptCommand_0807E974, ScriptCommand_0807E9D4, - ScriptCommand_0807E9DC, ScriptCommand_0807E9E4, ScriptCommand_0807E9F0, ScriptCommand_0807EA4C, - ScriptCommand_0807EA88, ScriptCommand_0807EA94, ScriptCommand_0807EAB4, ScriptCommand_0807EAC0, - ScriptCommand_0807EAD0, ScriptCommand_0807EAF0, ScriptCommand_0807EB18, ScriptCommand_0807EB28, - ScriptCommand_0807EB38, ScriptCommand_0807EB44, ScriptCommand_0807EB4C, ScriptCommand_0807EB74, - ScriptCommand_0807EB8C, ScriptCommand_0807EBA8, ScriptCommand_0807EBB0, ScriptCommand_0807EBC0, - ScriptCommand_0807EBC8, ScriptCommand_0807EBD8, ScriptCommand_0807EBF4, ScriptCommand_0807EC08, - ScriptCommandNop3, ScriptCommand_0807EC1C, ScriptCommand_0807EC64, ScriptCommand_0807EC94, - ScriptCommand_0807ECC4, ScriptCommand_0807ECF4, ScriptCommand_0807ED24, ScriptCommand_0807EDD4, - ScriptCommand_0807EE04, ScriptCommand_0807EE30, ScriptCommand_0807EEB4, ScriptCommand_0807EEF4, - ScriptCommand_0807EF3C, ScriptCommand_0807EF80, ScriptCommand_0807EF90, ScriptCommand_0807EFA0, - ScriptCommand_0807EFAC, ScriptCommand_0807EFD4, ScriptCommand_0807EFE4, ScriptCommand_0807EFF4, - ScriptCommand_0807F004, ScriptCommand_0807F010, ScriptCommand_0807F034, ScriptCommand_0807F050, - ScriptCommand_0807F060, ScriptCommand_0807F078, ScriptCommand_0807F088, ScriptCommand_0807F098, - ScriptCommand_0807F0A4, ScriptCommand_0807F0B4, ScriptCommand_0807F0C8 -}; +const ScriptCommand gScriptCommands[] = { ScriptCommandNop, + ScriptCommand_StartScript, + ScriptCommand_StopScript, + ScriptCommand_Jump, + ScriptCommand_JumpIf, + ScriptCommand_JumpIfNot, + ScriptCommand_0807E078, + ScriptCommand_JumpAbsolute, + ScriptCommand_JumpAbsoluteIf, + ScriptCommand_JumpAbsoluteIfNot, + ScriptCommand_0807E0E0, + ScriptCommand_Call, + ScriptCommand_CallWithArg, + ScriptCommand_LoadRoomEntityList, + ScriptCommand_TestBit, + ScriptCommand_CheckInventory1, + ScriptCommand_CheckInventory2, + ScriptCommand_HasRoomItemForSale, + ScriptCommand_CheckLocalFlag, + ScriptCommand_CheckLocalFlagByOffset, + ScriptCommand_CheckGlobalFlag, + ScriptCommand_CheckRoomFlag, + ScriptCommand_CheckPlayerInRegion, + ScriptCommand_CheckPlayerInRegion2, + ScriptCommand_CheckEntityInteractType, + ScriptCommand_0807E30C, + ScriptCommand_HasRupees, + ScriptCommand_0807E3BC, + ScriptCommand_0807E3E8, + ScriptCommand_CheckKinstoneFused, + ScriptCommand_BuyItem, + ScriptCommand_0807E48C, + ScriptCommand_0807E4CC, + ScriptCommand_0807E4EC, + ScriptCommand_0807E514, + ScriptCommand_CheckPlayerFlags, + ScriptCommand_0807E564, + ScriptCommand_EntityHasHeight, + ScriptCommand_ComparePlayerAction, + ScriptCommand_ComparePlayerAnimationState, + ScriptCommand_0807E5F8, + ScriptCommand_0807E610, + ScriptCommand_SetLocalFlag, + ScriptCommand_SetLocalFlagByOffset, + ScriptCommand_ClearLocalFlag, + ScriptCommand_SetGlobalFlag, + ScriptCommand_ClearGlobalFlag, + ScriptCommand_SetRoomFlag, + ScriptCommand_ClearRoomFlag, + ScriptCommand_Wait, + ScriptCommand_WaitForSomething, + ScriptCommand_WaitForSomething2, + ScriptCommand_WaitPlayerAction8, + ScriptCommand_WaitForPlayerAction0x17, + ScriptCommand_WaitFor_1, + ScriptCommand_WaitFor_2, + ScriptCommand_0807E778, + ScriptCommand_0807E788, + ScriptCommand_0807E79C, + ScriptCommandNop2, + ScriptCommand_DoFade4, + ScriptCommand_DoFade5, + ScriptCommand_DoFade6, + ScriptCommand_DoFade7, + ScriptCommand_0807E800, + ScriptCommand_0807E80C, + ScriptCommand_0807E858, + ScriptCommand_0807E864, + ScriptCommand_0807E878, + ScriptCommand_0807E888, + ScriptCommand_SetPlayerAction, + ScriptCommand_StartPlayerScript, + ScriptCommand_0807E8D4, + ScriptCommand_0807E8E4, + ScriptCommand_0807E8E4, + ScriptCommand_0807E8E4, + ScriptCommand_0807E8E4, + ScriptCommand_0807E908, + ScriptCommand_0807E914, + ScriptCommand_0807E924, + ScriptCommand_0807E930, + ScriptCommand_0807E944, + ScriptCommand_0807E974, + ScriptCommand_0807E9D4, + ScriptCommand_0807E9DC, + ScriptCommand_0807E9E4, + ScriptCommand_0807E9F0, + ScriptCommand_0807EA4C, + ScriptCommand_0807EA88, + ScriptCommand_0807EA94, + ScriptCommand_TextboxNoOverlapFollow, + ScriptCommand_TextboxNoOverlap, + ScriptCommand_TextboxNoOverlapFollowPos, + ScriptCommand_0807EAF0, + ScriptCommand_TextboxNoOverlapVar, + ScriptCommand_0807EB28, + ScriptCommand_0807EB38, + ScriptCommand_0807EB44, + ScriptCommand_0807EB4C, + ScriptCommand_0807EB74, + ScriptCommand_0807EB8C, + ScriptCommand_SetEntityDirection, + ScriptCommand_SetEntityDirectionWithAnimationState, + ScriptCommand_SetEntityNonPlanarMovement, + ScriptCommand_SetEntity0x20, + ScriptCommand_SetEntityPositionRelative, + ScriptCommand_SetEntityPosition, + ScriptCommand_MoveEntityToPlayer, + ScriptCommandNop3, + ScriptCommand_0807EC1C, + ScriptCommand_0807EC64, + ScriptCommand_0807EC94, + ScriptCommand_0807ECC4, + ScriptCommand_0807ECF4, + ScriptCommand_0807ED24, + ScriptCommand_0807EDD4, + ScriptCommand_0807EE04, + ScriptCommand_0807EE30, + ScriptCommand_0807EEB4, + ScriptCommand_0807EEF4, + ScriptCommand_0807EF3C, + ScriptCommand_0807EF80, + ScriptCommand_0807EF90, + ScriptCommand_SoundReq, + ScriptCommand_SoundReq2, + ScriptCommand_SoundReq3, + ScriptCommand_SoundReq0x80100000, + ScriptCommand_ModRupees, + ScriptCommand_ModHealth, + ScriptCommand_IncreaseMaxHealth, + ScriptCommand_0807F034, + ScriptCommand_0807F050, + ScriptCommand_GetInventoryValue, + ScriptCommand_0807F078, + ScriptCommand_0807F088, + ScriptCommand_CameraTargetEntity, + ScriptCommand_CameraTargetPlayer, + ScriptCommand_0807F0B4, + ScriptCommand_0807F0C8 }; extern const u16 gUnk_08016984; extern u8 gUnk_0811E514[]; @@ -467,7 +569,7 @@ void sub_0807DEDC(Entity* entity, ScriptExecutionContext* context, u32 arg2, u32 context->unk_19 = 8; context->unk_08 |= 2; - context->unk_14 = 0; + context->condition = 0; context->unk_1C.HALF.HI = arg2; context->unk_20.HALF.HI = arg3; t0 = context->unk_1C.HALF.HI - entity->x.HALF.HI; @@ -525,15 +627,17 @@ void ExecuteScriptCommandSet(Entity* unk1, ScriptExecutionContext* unk2) { void ScriptCommandNop(Entity* entity, ScriptExecutionContext* context) { } -void ScriptCommand_0807E004(Entity* entity, ScriptExecutionContext* context) { +// not entirely sure this name is acurate +void ScriptCommand_StartScript(Entity* entity, ScriptExecutionContext* context) { gActiveScriptInfo.flags |= 2; } -void ScriptCommand_0807E014(Entity* entity, ScriptExecutionContext* context) { +// not entirely sure this name is acurate +void ScriptCommand_StopScript(Entity* entity, ScriptExecutionContext* context) { gActiveScriptInfo.flags &= ~2; } -void ScriptCommand_0807E024(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_Jump(Entity* entity, ScriptExecutionContext* context) { s16 tmp; context->scriptInstructionPointer++; tmp = GetNextScriptCommandHalfword(context->scriptInstructionPointer); @@ -541,79 +645,77 @@ void ScriptCommand_0807E024(Entity* entity, ScriptExecutionContext* context) { gActiveScriptInfo.commandSize = 0; } -void ScriptCommand_0807E050(Entity* entity, ScriptExecutionContext* context) { - if (context->unk_14) { - ScriptCommand_0807E024(entity, context); +void ScriptCommand_JumpIf(Entity* entity, ScriptExecutionContext* context) { + if (context->condition) { + ScriptCommand_Jump(entity, context); } } -void ScriptCommand_0807E064(Entity* entity, ScriptExecutionContext* context) { - if (!context->unk_14) { - ScriptCommand_0807E024(entity, context); +void ScriptCommand_JumpIfNot(Entity* entity, ScriptExecutionContext* context) { + if (!context->condition) { + ScriptCommand_Jump(entity, context); } } void ScriptCommand_0807E078(Entity* entity, ScriptExecutionContext* context) { if (gActiveScriptInfo.commandSize > context->unk_04) { context->scriptInstructionPointer += context->unk_04; - ScriptCommand_0807E024(entity, context); + ScriptCommand_Jump(entity, context); } } -void ScriptCommand_0807E0A0(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_JumpAbsolute(Entity* entity, ScriptExecutionContext* context) { context->scriptInstructionPointer = (u16*)GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); gActiveScriptInfo.commandSize = 0; } -void ScriptCommand_0807E0B8(Entity* entity, ScriptExecutionContext* context) { - if (context->unk_14) { - ScriptCommand_0807E0A0(entity, context); +void ScriptCommand_JumpAbsoluteIf(Entity* entity, ScriptExecutionContext* context) { + if (context->condition) { + ScriptCommand_JumpAbsolute(entity, context); } } -void ScriptCommand_0807E0CC(Entity* entity, ScriptExecutionContext* context) { - if (!context->unk_14) { - ScriptCommand_0807E0A0(entity, context); +void ScriptCommand_JumpAbsoluteIfNot(Entity* entity, ScriptExecutionContext* context) { + if (!context->condition) { + ScriptCommand_JumpAbsolute(entity, context); } } void ScriptCommand_0807E0E0(Entity* entity, ScriptExecutionContext* context) { if (gActiveScriptInfo.commandSize > (context->unk_04 << 1) + 1) { context->scriptInstructionPointer += context->unk_04 << 1; - ScriptCommand_0807E0A0(entity, context); + ScriptCommand_JumpAbsolute(entity, context); } } -void ScriptCommand_0807E10C(Entity* entity, ScriptExecutionContext* context) { - ((void (*)(Entity*, ScriptExecutionContext*))GetNextScriptCommandWordAfterCommandMetadata( - context->scriptInstructionPointer))(entity, context); +void ScriptCommand_Call(Entity* entity, ScriptExecutionContext* context) { + ((ScriptCommand)GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer))(entity, context); } -void ScriptCommand_0807E124(Entity* entity, ScriptExecutionContext* context) { - void (*tmp)(Entity*, ScriptExecutionContext*) = - (void (*)(Entity*, ScriptExecutionContext*))GetNextScriptCommandWordAfterCommandMetadata( - context->scriptInstructionPointer); +// the called function can read an argument from context->unk_04 +void ScriptCommand_CallWithArg(Entity* entity, ScriptExecutionContext* context) { + ScriptCommand tmp = (ScriptCommand)GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); context->unk_04 = GetNextScriptCommandWord(context->scriptInstructionPointer + 3); tmp(entity, context); } -void ScriptCommand_0807E148(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_LoadRoomEntityList(Entity* entity, ScriptExecutionContext* context) { LoadRoomEntityList(GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer)); } -void ScriptCommand_0807E158(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_TestBit(Entity* entity, ScriptExecutionContext* context) { u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); u32 tmp2 = 0; u32 tmp3 = gActiveScriptInfo.unk_00; if ((tmp3 & tmp) == tmp) tmp2 = 1; - context->unk_14 = tmp2; + context->condition = tmp2; gActiveScriptInfo.unk_00 = tmp3 & ~tmp; gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E188(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_CheckInventory1(Entity* entity, ScriptExecutionContext* context) { u32 tmp; u32 tmp2 = GetNextScriptCommandHalfwordAfterCommandMetadata(context->scriptInstructionPointer); switch (tmp2) { @@ -632,64 +734,64 @@ void ScriptCommand_0807E188(Entity* entity, ScriptExecutionContext* context) { default: tmp = GetInventoryValue(tmp2); } - context->unk_14 = tmp; + context->condition = tmp; gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E1D8(Entity* entity, ScriptExecutionContext* context) { - context->unk_14 = GetInventoryValue(context->scriptInstructionPointer[1]) == 2; +void ScriptCommand_CheckInventory2(Entity* entity, ScriptExecutionContext* context) { + context->condition = GetInventoryValue(context->scriptInstructionPointer[1]) == 2; gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E200(Entity* entity, ScriptExecutionContext* context) { - context->unk_14 = CheckLocalFlag(context->scriptInstructionPointer[1]); +void ScriptCommand_CheckLocalFlag(Entity* entity, ScriptExecutionContext* context) { + context->condition = CheckLocalFlag(context->scriptInstructionPointer[1]); gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E220(Entity* entity, ScriptExecutionContext* context) { - context->unk_14 = +void ScriptCommand_CheckLocalFlagByOffset(Entity* entity, ScriptExecutionContext* context) { + context->condition = CheckLocalFlagByOffset(context->scriptInstructionPointer[1], context->scriptInstructionPointer[2]); gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E240(Entity* entity, ScriptExecutionContext* context) { - context->unk_14 = +void ScriptCommand_CheckGlobalFlag(Entity* entity, ScriptExecutionContext* context) { + context->condition = CheckGlobalFlag(GetNextScriptCommandHalfwordAfterCommandMetadata(context->scriptInstructionPointer)); gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E260(Entity* entity, ScriptExecutionContext* context) { - context->unk_14 = CheckRoomFlag(context->scriptInstructionPointer[1]); +void ScriptCommand_CheckRoomFlag(Entity* entity, ScriptExecutionContext* context) { + context->condition = CheckRoomFlag(context->scriptInstructionPointer[1]); gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E280(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_CheckPlayerInRegion(Entity* entity, ScriptExecutionContext* context) { u32 x, y, width, height; width = context->scriptInstructionPointer[3]; height = width >> 8; width &= 0xFF; x = context->scriptInstructionPointer[1]; y = context->scriptInstructionPointer[2]; - context->unk_14 = CheckPlayerInRegion(x, y, width, height); + context->condition = CheckPlayerInRegion(x, y, width, height); gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E2A8(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_CheckPlayerInRegion2(Entity* entity, ScriptExecutionContext* context) { u32 x, y, width, height; width = context->scriptInstructionPointer[1] & 0xFF; height = context->scriptInstructionPointer[1] >> 8; x = entity->x.HALF.HI - gRoomControls.roomOriginX; y = entity->y.HALF.HI - gRoomControls.roomOriginY; - context->unk_14 = CheckPlayerInRegion(x, y, width, height); + context->condition = CheckPlayerInRegion(x, y, width, height); gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E2E4(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_CheckEntityInteractType(Entity* entity, ScriptExecutionContext* context) { if (entity->interactType) { entity->interactType = 0; - context->unk_14 = 1; + context->condition = 1; } else { - context->unk_14 = 0; + context->condition = 0; } gActiveScriptInfo.flags |= 1; } @@ -702,35 +804,35 @@ void ScriptCommand_0807E30C(Entity* entity, ScriptExecutionContext* context) { context->unk_1A++; if (entity->interactType) { entity->interactType = 0; - context->unk_14 = 1; + context->condition = 1; entity->animationState = sub_0806F5B0(GetFacingDirection(entity, &gPlayerEntity)); } else { - context->unk_14 = 0; + context->condition = 0; } gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E390(Entity* entity, ScriptExecutionContext* context) { - context->unk_14 = (context->scriptInstructionPointer[1] <= gSave.stats.rupees); +void ScriptCommand_HasRupees(Entity* entity, ScriptExecutionContext* context) { + context->condition = (context->scriptInstructionPointer[1] <= gSave.stats.rupees); gActiveScriptInfo.flags |= 1; } void ScriptCommand_0807E3BC(Entity* entity, ScriptExecutionContext* context) { - context->unk_14 = (context->scriptInstructionPointer[1] <= gSave.stats.field_0x1a); + context->condition = (context->scriptInstructionPointer[1] <= gSave.stats.field_0x1a); gActiveScriptInfo.flags |= 1; } void ScriptCommand_0807E3E8(Entity* entity, ScriptExecutionContext* context) { - context->unk_14 = !gUnk_02000040.unk_01; + context->condition = !gUnk_02000040.unk_01; gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E40C(Entity* entity, ScriptExecutionContext* context) { - context->unk_14 = CheckKinstoneFused(context->scriptInstructionPointer[1]); +void ScriptCommand_CheckKinstoneFused(Entity* entity, ScriptExecutionContext* context) { + context->condition = CheckKinstoneFused(context->scriptInstructionPointer[1]); gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E42C(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_BuyItem(Entity* entity, ScriptExecutionContext* context) { u32 tmp, tmp2; s32 tmp3; tmp = context->scriptInstructionPointer[1]; @@ -740,8 +842,8 @@ void ScriptCommand_0807E42C(Entity* entity, ScriptExecutionContext* context) { tmp2 = gRoomVars.field_0x7; } tmp3 = sub_08053FE0(tmp); - context->unk_14 = (tmp3 <= gSave.stats.rupees); - if (context->unk_14) { + context->condition = (tmp3 <= gSave.stats.rupees); + if (context->condition) { ModRupees(-tmp3); sub_080A7C18(tmp, tmp2, 0); gRoomVars.itemForSaleIndex = 0; @@ -751,55 +853,55 @@ void ScriptCommand_0807E42C(Entity* entity, ScriptExecutionContext* context) { } void ScriptCommand_0807E48C(Entity* entity, ScriptExecutionContext* context) { - context->unk_14 = sub_080544DC(context->scriptInstructionPointer[1]); + context->condition = sub_080544DC(context->scriptInstructionPointer[1]); gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E4AC(Entity* entity, ScriptExecutionContext* context) { - context->unk_14 = !!gRoomVars.itemForSaleIndex; +void ScriptCommand_HasRoomItemForSale(Entity* entity, ScriptExecutionContext* context) { + context->condition = !!gRoomVars.itemForSaleIndex; gActiveScriptInfo.flags |= 1; } void ScriptCommand_0807E4CC(Entity* entity, ScriptExecutionContext* context) { - context->unk_14 = !!(context->unk_04 & context->scriptInstructionPointer[1]); + context->condition = !!(context->unk_04 & context->scriptInstructionPointer[1]); gActiveScriptInfo.flags |= 1; } void ScriptCommand_0807E4EC(Entity* entity, ScriptExecutionContext* context) { u32 tmp = context->scriptInstructionPointer[1]; - context->unk_14 = tmp == (tmp & context->unk_04); + context->condition = tmp == (tmp & context->unk_04); gActiveScriptInfo.flags |= 1; } void ScriptCommand_0807E514(Entity* entity, ScriptExecutionContext* context) { u32 tmp = context->scriptInstructionPointer[1]; - context->unk_14 = tmp == context->unk_04; + context->condition = tmp == context->unk_04; gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E538(Entity* entity, ScriptExecutionContext* context) { - context->unk_14 = +void ScriptCommand_CheckPlayerFlags(Entity* entity, ScriptExecutionContext* context) { + context->condition = !!(GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer) & gPlayerState.flags.all); gActiveScriptInfo.flags |= 1; } void ScriptCommand_0807E564(Entity* entity, ScriptExecutionContext* context) { - context->unk_14 = (gPlayerState.flags.all >> 7) & 1; + context->condition = (gPlayerState.flags.all >> 7) & 1; gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E584(Entity* entity, ScriptExecutionContext* context) { - context->unk_14 = entity->height.WORD != 0; +void ScriptCommand_EntityHasHeight(Entity* entity, ScriptExecutionContext* context) { + context->condition = entity->height.WORD != 0; gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E5A0(Entity* entity, ScriptExecutionContext* context) { - context->unk_14 = context->scriptInstructionPointer[1] == gPlayerEntity.action; +void ScriptCommand_ComparePlayerAction(Entity* entity, ScriptExecutionContext* context) { + context->condition = context->scriptInstructionPointer[1] == gPlayerEntity.action; gActiveScriptInfo.flags |= 1; } -void ScriptCommand_0807E5CC(Entity* entity, ScriptExecutionContext* context) { - context->unk_14 = context->scriptInstructionPointer[1] == gPlayerEntity.animationState; +void ScriptCommand_ComparePlayerAnimationState(Entity* entity, ScriptExecutionContext* context) { + context->condition = context->scriptInstructionPointer[1] == gPlayerEntity.animationState; gActiveScriptInfo.flags |= 1; } @@ -811,46 +913,46 @@ void ScriptCommand_0807E610(Entity* entity, ScriptExecutionContext* context) { gActiveScriptInfo.unk_00 &= ~GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); } -void ScriptCommand_0807E628(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SetLocalFlag(Entity* entity, ScriptExecutionContext* context) { SetLocalFlag(context->scriptInstructionPointer[1]); } -void ScriptCommand_0807E634(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SetLocalFlagByOffset(Entity* entity, ScriptExecutionContext* context) { SetLocalFlagByOffset(context->scriptInstructionPointer[1], context->scriptInstructionPointer[2]); } -void ScriptCommand_0807E644(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_ClearLocalFlag(Entity* entity, ScriptExecutionContext* context) { ClearLocalFlag(context->scriptInstructionPointer[1]); } -void ScriptCommand_0807E650(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SetGlobalFlag(Entity* entity, ScriptExecutionContext* context) { SetGlobalFlag(context->scriptInstructionPointer[1]); } -void ScriptCommand_0807E65C(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_ClearGlobalFlag(Entity* entity, ScriptExecutionContext* context) { ClearGlobalFlag(context->scriptInstructionPointer[1]); } -void ScriptCommand_0807E668(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SetRoomFlag(Entity* entity, ScriptExecutionContext* context) { SetRoomFlag(context->scriptInstructionPointer[1]); } -void ScriptCommand_0807E674(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_ClearRoomFlag(Entity* entity, ScriptExecutionContext* context) { ClearRoomFlag(context->scriptInstructionPointer[1]); } -void ScriptCommand_0807E680(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_Wait(Entity* entity, ScriptExecutionContext* context) { context->wait = GetNextScriptCommandHalfwordAfterCommandMetadata(context->scriptInstructionPointer); } -void ScriptCommand_0807E690(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_WaitForSomething(Entity* entity, ScriptExecutionContext* context) { u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); if ((gActiveScriptInfo.unk_00 & tmp) != tmp) { gActiveScriptInfo.commandSize = 0; } } -void ScriptCommand_0807E6AC(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_WaitForSomething2(Entity* entity, ScriptExecutionContext* context) { u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); if ((gActiveScriptInfo.unk_00 & tmp) != tmp) { gActiveScriptInfo.commandSize = 0; @@ -860,7 +962,7 @@ void ScriptCommand_0807E6AC(Entity* entity, ScriptExecutionContext* context) { } } -void ScriptCommand_0807E6DC(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_WaitPlayerAction8(Entity* entity, ScriptExecutionContext* context) { if (gPlayerEntity.action == 8) { gActiveScriptInfo.commandSize = 0; } else { @@ -868,7 +970,7 @@ void ScriptCommand_0807E6DC(Entity* entity, ScriptExecutionContext* context) { } } -void ScriptCommand_0807E700(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_WaitForPlayerAction0x17(Entity* entity, ScriptExecutionContext* context) { if (gPlayerEntity.action != 0x17) { gActiveScriptInfo.flags |= 1; } else { @@ -876,7 +978,7 @@ void ScriptCommand_0807E700(Entity* entity, ScriptExecutionContext* context) { } } -void ScriptCommand_0807E72C(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_WaitFor_1(Entity* entity, ScriptExecutionContext* context) { if (gRoomControls.unk6 & 4) { gActiveScriptInfo.commandSize = 0; } else { @@ -884,7 +986,7 @@ void ScriptCommand_0807E72C(Entity* entity, ScriptExecutionContext* context) { } } -void ScriptCommand_0807E75C(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_WaitFor_2(Entity* entity, ScriptExecutionContext* context) { if (gFadeControl.active) { gActiveScriptInfo.commandSize = 0; } @@ -905,19 +1007,19 @@ void ScriptCommand_0807E79C(Entity* entity, ScriptExecutionContext* context) { void ScriptCommandNop2(Entity* entity, ScriptExecutionContext* context) { } -void ScriptCommand_0807E7B0(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_DoFade4(Entity* entity, ScriptExecutionContext* context) { DoFade(4, gActiveScriptInfo.unk_08); } -void ScriptCommand_0807E7C4(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_DoFade5(Entity* entity, ScriptExecutionContext* context) { DoFade(5, gActiveScriptInfo.unk_08); } -void ScriptCommand_0807E7D8(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_DoFade6(Entity* entity, ScriptExecutionContext* context) { DoFade(6, gActiveScriptInfo.unk_08); } -void ScriptCommand_0807E7EC(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_DoFade7(Entity* entity, ScriptExecutionContext* context) { DoFade(7, gActiveScriptInfo.unk_08); } @@ -959,7 +1061,7 @@ void ScriptCommand_0807E888(Entity* entity, ScriptExecutionContext* context) { gPlayerState.field_0x8b = 3; } -void ScriptCommand_0807E898(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SetPlayerAction(Entity* entity, ScriptExecutionContext* context) { u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); gPlayerState.playerAction = tmp; gPlayerState.field_0x38 = tmp >> 8; @@ -967,7 +1069,7 @@ void ScriptCommand_0807E898(Entity* entity, ScriptExecutionContext* context) { gPlayerState.field_0x3a = tmp >> 0x18; } -void ScriptCommand_0807E8C4(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_StartPlayerScript(Entity* entity, ScriptExecutionContext* context) { StartPlayerScript((u16*)GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer)); } @@ -1052,10 +1154,10 @@ void ScriptCommand_0807E9F0(Entity* entity, ScriptExecutionContext* context) { case 2: gPlayerState.field_0x8b = 3; gUnk_02034490[0] = tmp; - context->unk_14 = tmp; + context->condition = tmp; break; case 1: - context->unk_14 = 0; + context->condition = 0; break; default: goto lbl; @@ -1089,15 +1191,15 @@ void ScriptCommand_0807EA94(Entity* entity, ScriptExecutionContext* context) { } } -void ScriptCommand_0807EAB4(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_TextboxNoOverlapFollow(Entity* entity, ScriptExecutionContext* context) { TextboxNoOverlapFollow(context->scriptInstructionPointer[1]); } -void ScriptCommand_0807EAC0(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_TextboxNoOverlap(Entity* entity, ScriptExecutionContext* context) { TextboxNoOverlap(context->scriptInstructionPointer[1], entity); } -void ScriptCommand_0807EAD0(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_TextboxNoOverlapFollowPos(Entity* entity, ScriptExecutionContext* context) { TextboxNoOverlapFollow(context->scriptInstructionPointer[1]); gTextBox.textWindowPosX = 1; gTextBox.textWindowPosY = context->scriptInstructionPointer[2]; @@ -1112,7 +1214,7 @@ void ScriptCommand_0807EAF0(Entity* entity, ScriptExecutionContext* context) { } } -void ScriptCommand_0807EB18(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_TextboxNoOverlapVar(Entity* entity, ScriptExecutionContext* context) { TextboxNoOverlap(context->unk_04, entity); } @@ -1142,34 +1244,34 @@ void ScriptCommand_0807EB8C(Entity* entity, ScriptExecutionContext* context) { gPlayerEntity.animationState = sub_0806F5B0(GetFacingDirection(&gPlayerEntity, entity)) & ~1; } -void ScriptCommand_0807EBA8(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SetEntityDirection(Entity* entity, ScriptExecutionContext* context) { entity->direction = context->scriptInstructionPointer[1]; } -void ScriptCommand_0807EBB0(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SetEntityDirectionWithAnimationState(Entity* entity, ScriptExecutionContext* context) { entity->direction = context->scriptInstructionPointer[1]; entity->animationState = entity->direction / 4; } -void ScriptCommand_0807EBC0(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SetEntityNonPlanarMovement(Entity* entity, ScriptExecutionContext* context) { entity->nonPlanarMovement = context->scriptInstructionPointer[1]; } -void ScriptCommand_0807EBC8(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SetEntity0x20(Entity* entity, ScriptExecutionContext* context) { entity->field_0x20 = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); } -void ScriptCommand_0807EBD8(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SetEntityPositionRelative(Entity* entity, ScriptExecutionContext* context) { entity->x.HALF.HI = gRoomControls.roomOriginX + context->scriptInstructionPointer[1]; entity->y.HALF.HI = gRoomControls.roomOriginY + context->scriptInstructionPointer[2]; } -void ScriptCommand_0807EBF4(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SetEntityPosition(Entity* entity, ScriptExecutionContext* context) { entity->x.HALF.HI += context->scriptInstructionPointer[1]; entity->y.HALF.HI += context->scriptInstructionPointer[2]; } -void ScriptCommand_0807EC08(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_MoveEntityToPlayer(Entity* entity, ScriptExecutionContext* context) { CopyPosition(&gPlayerEntity, entity); } @@ -1269,7 +1371,7 @@ void ScriptCommand_0807EDD4(Entity* entity, ScriptExecutionContext* context) { ScriptCommand_0807EE04(entity, context); } ScriptCommand_0807EE30(entity, context); - if (!context->unk_14) { + if (!context->condition) { gActiveScriptInfo.commandSize = 0; } } @@ -1295,9 +1397,9 @@ void ScriptCommand_0807EE30(Entity* entity, ScriptExecutionContext* context) { if (tmp <= 0 && tmp2 <= 0) { entity->x.HALF.HI = context->unk_1C.HALF.HI; entity->y.HALF.HI = context->unk_20.HALF.HI; - context->unk_14 = 1; + context->condition = 1; } else { - context->unk_14 = 0; + context->condition = 0; } } @@ -1307,7 +1409,7 @@ void ScriptCommand_0807EEB4(Entity* entity, ScriptExecutionContext* context) { sub_0807DEDC(entity, context, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI); } ScriptCommand_0807EE30(entity, context); - if (!context->unk_14) { + if (!context->condition) { gActiveScriptInfo.commandSize = 0; } } @@ -1319,7 +1421,7 @@ void ScriptCommand_0807EEF4(Entity* entity, ScriptExecutionContext* context) { entity->y.HALF.HI + ((s16)context->scriptInstructionPointer[2])); } ScriptCommand_0807EE30(entity, context); - if (!context->unk_14) { + if (!context->condition) { gActiveScriptInfo.commandSize = 0; } } @@ -1345,11 +1447,11 @@ void ScriptCommand_0807EF90(Entity* entity, ScriptExecutionContext* context) { context->unk_08 |= 1 << context->scriptInstructionPointer[1]; } -void ScriptCommand_0807EFA0(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SoundReq(Entity* entity, ScriptExecutionContext* context) { SoundReq(context->scriptInstructionPointer[1]); } -void ScriptCommand_0807EFAC(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SoundReq2(Entity* entity, ScriptExecutionContext* context) { if (context->scriptInstructionPointer[1] >= 100) { SoundReq(gArea.musicIndex); } else { @@ -1357,23 +1459,23 @@ void ScriptCommand_0807EFAC(Entity* entity, ScriptExecutionContext* context) { } } -void ScriptCommand_0807EFD4(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SoundReq3(Entity* entity, ScriptExecutionContext* context) { SoundReq(GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer)); } -void ScriptCommand_0807EFE4(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_SoundReq0x80100000(Entity* entity, ScriptExecutionContext* context) { SoundReq(0x80100000); } -void ScriptCommand_0807EFF4(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_ModRupees(Entity* entity, ScriptExecutionContext* context) { ModRupees((s16)context->scriptInstructionPointer[1]); } -void ScriptCommand_0807F004(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_ModHealth(Entity* entity, ScriptExecutionContext* context) { ModHealth(context->scriptInstructionPointer[1]); } -void ScriptCommand_0807F010(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_IncreaseMaxHealth(Entity* entity, ScriptExecutionContext* context) { gSave.stats.maxHealth = min(gSave.stats.maxHealth + 8, 0xA0); gSave.stats.health = gSave.stats.maxHealth; } @@ -1390,9 +1492,9 @@ void ScriptCommand_0807F050(Entity* entity, ScriptExecutionContext* context) { sub_080A7C18(0x5C, context->scriptInstructionPointer[1], 0); } -void ScriptCommand_0807F060(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_GetInventoryValue(Entity* entity, ScriptExecutionContext* context) { context->unk_04 = GetInventoryValue(context->scriptInstructionPointer[1]); - context->unk_14 = context->unk_04 != 0; + context->condition = context->unk_04 != 0; } void ScriptCommand_0807F078(Entity* entity, ScriptExecutionContext* context) { @@ -1403,11 +1505,11 @@ void ScriptCommand_0807F088(Entity* entity, ScriptExecutionContext* context) { sub_080A7C18(context->scriptInstructionPointer[1], 0, 3); } -void ScriptCommand_0807F098(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_CameraTargetEntity(Entity* entity, ScriptExecutionContext* context) { gRoomControls.cameraTarget = entity; } -void ScriptCommand_0807F0A4(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_CameraTargetPlayer(Entity* entity, ScriptExecutionContext* context) { gRoomControls.cameraTarget = &gPlayerEntity; } -- cgit v1.2.3 From 15f480dc0f99437a5ff08c5a8c5c037107b89663 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Sat, 6 Mar 2021 15:53:39 +0100 Subject: Add labels for relative jumps --- src/script.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/script.c') diff --git a/src/script.c b/src/script.c index 9ee2d8ca..251359b7 100644 --- a/src/script.c +++ b/src/script.c @@ -18,11 +18,11 @@ void ScriptCommand_StopScript(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_Jump(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_JumpIf(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_JumpIfNot(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E078(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_JumpSwitch(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_JumpAbsolute(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_JumpAbsoluteIf(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_JumpAbsoluteIfNot(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E0E0(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_JumpAbsoluteSwitch(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_Call(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CallWithArg(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_LoadRoomEntityList(Entity* entity, ScriptExecutionContext* context); @@ -163,11 +163,11 @@ const ScriptCommand gScriptCommands[] = { ScriptCommandNop, ScriptCommand_Jump, ScriptCommand_JumpIf, ScriptCommand_JumpIfNot, - ScriptCommand_0807E078, + ScriptCommand_JumpSwitch, ScriptCommand_JumpAbsolute, ScriptCommand_JumpAbsoluteIf, ScriptCommand_JumpAbsoluteIfNot, - ScriptCommand_0807E0E0, + ScriptCommand_JumpAbsoluteSwitch, ScriptCommand_Call, ScriptCommand_CallWithArg, ScriptCommand_LoadRoomEntityList, @@ -657,7 +657,7 @@ void ScriptCommand_JumpIfNot(Entity* entity, ScriptExecutionContext* context) { } } -void ScriptCommand_0807E078(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_JumpSwitch(Entity* entity, ScriptExecutionContext* context) { if (gActiveScriptInfo.commandSize > context->unk_04) { context->scriptInstructionPointer += context->unk_04; ScriptCommand_Jump(entity, context); @@ -682,7 +682,7 @@ void ScriptCommand_JumpAbsoluteIfNot(Entity* entity, ScriptExecutionContext* con } } -void ScriptCommand_0807E0E0(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_JumpAbsoluteSwitch(Entity* entity, ScriptExecutionContext* context) { if (gActiveScriptInfo.commandSize > (context->unk_04 << 1) + 1) { context->scriptInstructionPointer += context->unk_04 << 1; ScriptCommand_JumpAbsolute(entity, context); -- cgit v1.2.3 From 74e48d98b0edef729d90e070b65df748ecf3206f Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Sat, 6 Mar 2021 22:44:09 +0100 Subject: Rename to Begin/EndBlock --- src/script.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/script.c') diff --git a/src/script.c b/src/script.c index 251359b7..67f1a151 100644 --- a/src/script.c +++ b/src/script.c @@ -13,8 +13,8 @@ void sub_0807DB88(ScriptExecutionContext*, u16*); void sub_0807DE80(Entity*); void sub_0807DF38(void); void ScriptCommandNop(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_StartScript(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_StopScript(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_BeginBlock(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_EndBlock(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_Jump(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_JumpIf(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_JumpIfNot(Entity* entity, ScriptExecutionContext* context); @@ -158,8 +158,8 @@ extern void sub_0801C4A0(u32); typedef void (*ScriptCommand)(Entity*, ScriptExecutionContext*); const ScriptCommand gScriptCommands[] = { ScriptCommandNop, - ScriptCommand_StartScript, - ScriptCommand_StopScript, + ScriptCommand_BeginBlock, + ScriptCommand_EndBlock, ScriptCommand_Jump, ScriptCommand_JumpIf, ScriptCommand_JumpIfNot, @@ -628,12 +628,12 @@ void ScriptCommandNop(Entity* entity, ScriptExecutionContext* context) { } // not entirely sure this name is acurate -void ScriptCommand_StartScript(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_BeginBlock(Entity* entity, ScriptExecutionContext* context) { gActiveScriptInfo.flags |= 2; } // not entirely sure this name is acurate -void ScriptCommand_StopScript(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_EndBlock(Entity* entity, ScriptExecutionContext* context) { gActiveScriptInfo.flags &= ~2; } -- cgit v1.2.3 From 8f7ad0a35c740c32c5763baa2bac998e260b2da9 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Sat, 6 Mar 2021 23:13:26 +0100 Subject: Fix parameters for all functions called from scripts --- src/script.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/script.c') diff --git a/src/script.c b/src/script.c index 67f1a151..741673f1 100644 --- a/src/script.c +++ b/src/script.c @@ -579,18 +579,18 @@ void sub_0807DEDC(Entity* entity, ScriptExecutionContext* context, u32 arg2, u32 entity->animationState = (entity->animationState & 0x80) | gUnk_0811E514[(u32)(temp << 0x18) >> 0x1c]; } -void sub_0807DF28(void) { +void sub_0807DF28() { sub_0807DF38(); sub_08079184(); sub_08077B20(); } -void sub_0807DF38(void) { +void sub_0807DF38() { gUnk_0200AF00.filler0[1] = 0xff; gUnk_02034490[0] = 0xff; } -void sub_0807DF50(void) { +void sub_0807DF50() { gUnk_02034490[0] = 0; gUnk_0200AF00.filler0[1] = 0; sub_0801C4A0(0); -- cgit v1.2.3 From 3e71687184aa734806197f9363c352feb914ba3a Mon Sep 17 00:00:00 2001 From: Henny022p Date: Sun, 7 Mar 2021 23:52:13 +0100 Subject: renamed JumpSwitch to JumpTable --- src/script.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/script.c') diff --git a/src/script.c b/src/script.c index 741673f1..7e316da8 100644 --- a/src/script.c +++ b/src/script.c @@ -18,11 +18,11 @@ void ScriptCommand_EndBlock(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_Jump(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_JumpIf(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_JumpIfNot(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_JumpSwitch(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_JumpTable(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_JumpAbsolute(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_JumpAbsoluteIf(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_JumpAbsoluteIfNot(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_JumpAbsoluteSwitch(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_JumpAbsoluteTable(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_Call(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_CallWithArg(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_LoadRoomEntityList(Entity* entity, ScriptExecutionContext* context); @@ -163,11 +163,11 @@ const ScriptCommand gScriptCommands[] = { ScriptCommandNop, ScriptCommand_Jump, ScriptCommand_JumpIf, ScriptCommand_JumpIfNot, - ScriptCommand_JumpSwitch, + ScriptCommand_JumpTable, ScriptCommand_JumpAbsolute, ScriptCommand_JumpAbsoluteIf, ScriptCommand_JumpAbsoluteIfNot, - ScriptCommand_JumpAbsoluteSwitch, + ScriptCommand_JumpAbsoluteTable, ScriptCommand_Call, ScriptCommand_CallWithArg, ScriptCommand_LoadRoomEntityList, @@ -657,7 +657,7 @@ void ScriptCommand_JumpIfNot(Entity* entity, ScriptExecutionContext* context) { } } -void ScriptCommand_JumpSwitch(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_JumpTable(Entity* entity, ScriptExecutionContext* context) { if (gActiveScriptInfo.commandSize > context->unk_04) { context->scriptInstructionPointer += context->unk_04; ScriptCommand_Jump(entity, context); @@ -682,7 +682,7 @@ void ScriptCommand_JumpAbsoluteIfNot(Entity* entity, ScriptExecutionContext* con } } -void ScriptCommand_JumpAbsoluteSwitch(Entity* entity, ScriptExecutionContext* context) { +void ScriptCommand_JumpAbsoluteTable(Entity* entity, ScriptExecutionContext* context) { if (gActiveScriptInfo.commandSize > (context->unk_04 << 1) + 1) { context->scriptInstructionPointer += context->unk_04 << 1; ScriptCommand_JumpAbsolute(entity, context); -- cgit v1.2.3 From 9bef8b068c7b59c2e1f71f5852bb671e41c48734 Mon Sep 17 00:00:00 2001 From: Henny022p Date: Mon, 8 Mar 2021 00:52:06 +0100 Subject: naming stuff --- src/script.c | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) (limited to 'src/script.c') diff --git a/src/script.c b/src/script.c index 7e316da8..1f8e583e 100644 --- a/src/script.c +++ b/src/script.c @@ -88,7 +88,7 @@ void ScriptCommand_StartPlayerScript(Entity* entity, ScriptExecutionContext* con void ScriptCommand_0807E8D4(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E8E4(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E908(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807E914(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetIntVariable(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E924(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E930(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807E944(Entity* entity, ScriptExecutionContext* context); @@ -103,7 +103,7 @@ void ScriptCommand_0807EA94(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_TextboxNoOverlapFollow(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_TextboxNoOverlap(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_TextboxNoOverlapFollowPos(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EAF0(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_TextboxNoOverlapFollowTable(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_TextboxNoOverlapVar(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EB28(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EB38(Entity* entity, ScriptExecutionContext* context); @@ -235,7 +235,7 @@ const ScriptCommand gScriptCommands[] = { ScriptCommandNop, ScriptCommand_0807E8E4, ScriptCommand_0807E8E4, ScriptCommand_0807E908, - ScriptCommand_0807E914, + ScriptCommand_SetIntVariable, ScriptCommand_0807E924, ScriptCommand_0807E930, ScriptCommand_0807E944, @@ -250,7 +250,7 @@ const ScriptCommand gScriptCommands[] = { ScriptCommandNop, ScriptCommand_TextboxNoOverlapFollow, ScriptCommand_TextboxNoOverlap, ScriptCommand_TextboxNoOverlapFollowPos, - ScriptCommand_0807EAF0, + ScriptCommand_TextboxNoOverlapFollowTable, ScriptCommand_TextboxNoOverlapVar, ScriptCommand_0807EB28, ScriptCommand_0807EB38, @@ -658,8 +658,8 @@ void ScriptCommand_JumpIfNot(Entity* entity, ScriptExecutionContext* context) { } void ScriptCommand_JumpTable(Entity* entity, ScriptExecutionContext* context) { - if (gActiveScriptInfo.commandSize > context->unk_04) { - context->scriptInstructionPointer += context->unk_04; + if (gActiveScriptInfo.commandSize > context->intVariable) { + context->scriptInstructionPointer += context->intVariable; ScriptCommand_Jump(entity, context); } } @@ -683,8 +683,8 @@ void ScriptCommand_JumpAbsoluteIfNot(Entity* entity, ScriptExecutionContext* con } void ScriptCommand_JumpAbsoluteTable(Entity* entity, ScriptExecutionContext* context) { - if (gActiveScriptInfo.commandSize > (context->unk_04 << 1) + 1) { - context->scriptInstructionPointer += context->unk_04 << 1; + if (gActiveScriptInfo.commandSize > (context->intVariable << 1) + 1) { + context->scriptInstructionPointer += context->intVariable << 1; ScriptCommand_JumpAbsolute(entity, context); } } @@ -693,10 +693,10 @@ void ScriptCommand_Call(Entity* entity, ScriptExecutionContext* context) { ((ScriptCommand)GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer))(entity, context); } -// the called function can read an argument from context->unk_04 +// the called function can read an argument from context->intVariable void ScriptCommand_CallWithArg(Entity* entity, ScriptExecutionContext* context) { ScriptCommand tmp = (ScriptCommand)GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); - context->unk_04 = GetNextScriptCommandWord(context->scriptInstructionPointer + 3); + context->intVariable = GetNextScriptCommandWord(context->scriptInstructionPointer + 3); tmp(entity, context); } @@ -863,19 +863,19 @@ void ScriptCommand_HasRoomItemForSale(Entity* entity, ScriptExecutionContext* co } void ScriptCommand_0807E4CC(Entity* entity, ScriptExecutionContext* context) { - context->condition = !!(context->unk_04 & context->scriptInstructionPointer[1]); + context->condition = !!(context->intVariable & context->scriptInstructionPointer[1]); gActiveScriptInfo.flags |= 1; } void ScriptCommand_0807E4EC(Entity* entity, ScriptExecutionContext* context) { u32 tmp = context->scriptInstructionPointer[1]; - context->condition = tmp == (tmp & context->unk_04); + context->condition = tmp == (tmp & context->intVariable); gActiveScriptInfo.flags |= 1; } void ScriptCommand_0807E514(Entity* entity, ScriptExecutionContext* context) { u32 tmp = context->scriptInstructionPointer[1]; - context->condition = tmp == context->unk_04; + context->condition = tmp == context->intVariable; gActiveScriptInfo.flags |= 1; } @@ -1088,12 +1088,12 @@ void ScriptCommand_0807E908(Entity* entity, ScriptExecutionContext* context) { entity->previousActionFlag = 0; } -void ScriptCommand_0807E914(Entity* entity, ScriptExecutionContext* context) { - context->unk_04 = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); +void ScriptCommand_SetIntVariable(Entity* entity, ScriptExecutionContext* context) { + context->intVariable = GetNextScriptCommandWordAfterCommandMetadata(context->scriptInstructionPointer); } void ScriptCommand_0807E924(Entity* entity, ScriptExecutionContext* context) { - context->unk_04 = entity->frames.all; + context->intVariable = entity->frames.all; entity->frames.all = 0; } @@ -1205,9 +1205,9 @@ void ScriptCommand_TextboxNoOverlapFollowPos(Entity* entity, ScriptExecutionCont gTextBox.textWindowPosY = context->scriptInstructionPointer[2]; } -void ScriptCommand_0807EAF0(Entity* entity, ScriptExecutionContext* context) { - if (gActiveScriptInfo.commandSize > context->unk_04) { - u16* tmp = context->scriptInstructionPointer + context->unk_04; +void ScriptCommand_TextboxNoOverlapFollowTable(Entity* entity, ScriptExecutionContext* context) { + if (gActiveScriptInfo.commandSize > context->intVariable) { + u16* tmp = context->scriptInstructionPointer + context->intVariable; TextboxNoOverlapFollow(tmp[1]); } else { TextboxNoOverlapFollow(0); @@ -1215,7 +1215,7 @@ void ScriptCommand_0807EAF0(Entity* entity, ScriptExecutionContext* context) { } void ScriptCommand_TextboxNoOverlapVar(Entity* entity, ScriptExecutionContext* context) { - TextboxNoOverlap(context->unk_04, entity); + TextboxNoOverlap(context->intVariable, entity); } void ScriptCommand_0807EB28(Entity* entity, ScriptExecutionContext* context) { @@ -1223,7 +1223,7 @@ void ScriptCommand_0807EB28(Entity* entity, ScriptExecutionContext* context) { } void ScriptCommand_0807EB38(Entity* entity, ScriptExecutionContext* context) { - context->unk_04 = gUnk_02000040.unk_01; + context->intVariable = gUnk_02000040.unk_01; } void ScriptCommand_0807EB44(Entity* entity, ScriptExecutionContext* context) { @@ -1483,7 +1483,7 @@ void ScriptCommand_IncreaseMaxHealth(Entity* entity, ScriptExecutionContext* con void ScriptCommand_0807F034(Entity* entity, ScriptExecutionContext* context) { u32 tmp = 0; if (context->scriptInstructionPointer[1] == 0x3F) { - tmp = context->unk_04; + tmp = context->intVariable; } sub_080A7C18(context->scriptInstructionPointer[1], tmp, 0); } @@ -1493,8 +1493,8 @@ void ScriptCommand_0807F050(Entity* entity, ScriptExecutionContext* context) { } void ScriptCommand_GetInventoryValue(Entity* entity, ScriptExecutionContext* context) { - context->unk_04 = GetInventoryValue(context->scriptInstructionPointer[1]); - context->condition = context->unk_04 != 0; + context->intVariable = GetInventoryValue(context->scriptInstructionPointer[1]); + context->condition = context->intVariable != 0; } void ScriptCommand_0807F078(Entity* entity, ScriptExecutionContext* context) { -- cgit v1.2.3 From 5e2af32bb11f35dee966343959d955147c660204 Mon Sep 17 00:00:00 2001 From: Henny022p Date: Tue, 9 Mar 2021 01:28:13 +0100 Subject: named some stuff --- src/script.c | 268 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 134 insertions(+), 134 deletions(-) (limited to 'src/script.c') diff --git a/src/script.c b/src/script.c index 1f8e583e..2bf9b6f0 100644 --- a/src/script.c +++ b/src/script.c @@ -8,8 +8,8 @@ #include "functions.h" #include "save.h" -void sub_0807DAF0(Entity*, ScriptExecutionContext*, u16*); -void sub_0807DB88(ScriptExecutionContext*, u16*); +void InitScriptForEntity(Entity*, ScriptExecutionContext*, u16*); +void InitScriptExecutionContext(ScriptExecutionContext* context, u16* script); void sub_0807DE80(Entity*); void sub_0807DF38(void); void ScriptCommandNop(Entity* entity, ScriptExecutionContext* context); @@ -132,8 +132,8 @@ void ScriptCommand_0807EE30(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EEB4(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EEF4(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EF3C(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EF80(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_0807EF90(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_DoPostScriptAction(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_DoPostScriptAction2(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SoundReq(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SoundReq2(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SoundReq3(Entity* entity, ScriptExecutionContext* context); @@ -278,8 +278,8 @@ const ScriptCommand gScriptCommands[] = { ScriptCommandNop, ScriptCommand_0807EEB4, ScriptCommand_0807EEF4, ScriptCommand_0807EF3C, - ScriptCommand_0807EF80, - ScriptCommand_0807EF90, + ScriptCommand_DoPostScriptAction, + ScriptCommand_DoPostScriptAction2, ScriptCommand_SoundReq, ScriptCommand_SoundReq2, ScriptCommand_SoundReq3, @@ -303,7 +303,7 @@ extern u8 gUnk_0811E510[]; extern ScriptExecutionContext gPlayerScriptExecutionContext; extern ScriptExecutionContext gScriptExecutionContextArray[0x20]; -void sub_0807DA70(void) { +void InitScriptData(void) { MemClear32(&gActiveScriptInfo, sizeof(gActiveScriptInfo)); MemClear32(&gScriptExecutionContextArray, sizeof(gScriptExecutionContextArray)); MemClear32(&gPlayerScriptExecutionContext, sizeof(gPlayerScriptExecutionContext)); @@ -327,20 +327,20 @@ void DestroyScriptExecutionContext(ScriptExecutionContext* context) { MemClear32(context, sizeof(ScriptExecutionContext)); } -ScriptExecutionContext* StartCutscene(Entity* entity, u16* unk_2) { +ScriptExecutionContext* StartCutscene(Entity* entity, u16* script) { ScriptExecutionContext* context; context = CreateScriptExecutionContext(); if (context) { - sub_0807DAF0(entity, context, unk_2); + InitScriptForEntity(entity, context, script); } return context; } -void sub_0807DAF0(Entity* entity, ScriptExecutionContext* context, u16* unk1) { +void InitScriptForEntity(Entity* entity, ScriptExecutionContext* context, u16* script) { entity->flags = entity->flags | 2; *(ScriptExecutionContext**)&entity->cutsceneBeh = context; - sub_0807DB88(context, unk1); + InitScriptExecutionContext(context, script); } void UnloadCutsceneData(Entity* entity) { @@ -351,11 +351,11 @@ void UnloadCutsceneData(Entity* entity) { } } -void StartPlayerScript(u16* unk1) { +void StartPlayerScript(u16* script) { Entity* player; MemClear32(&gPlayerScriptExecutionContext, sizeof(gPlayerScriptExecutionContext)); - gPlayerScriptExecutionContext.scriptInstructionPointer = unk1; + gPlayerScriptExecutionContext.scriptInstructionPointer = script; player = &gPlayerEntity; *(ScriptExecutionContext**)&player->cutsceneBeh = &gPlayerScriptExecutionContext; gPlayerState.playerAction = 0x1c; @@ -364,89 +364,89 @@ void StartPlayerScript(u16* unk1) { gPlayerState.field_0x38 = 0; } -ScriptExecutionContext* sub_0807DB68(Entity* entity, u16* unk1) { +ScriptExecutionContext* StartCutscene2(Entity* entity, u16* script) { ScriptExecutionContext* context; context = CreateScriptExecutionContext(); if (context) { entity->flags |= 2; *(ScriptExecutionContext**)&entity->field_0x3c = context; - context->scriptInstructionPointer = unk1; + context->scriptInstructionPointer = script; } return context; } -void sub_0807DB88(ScriptExecutionContext* context, u16* unk1) { +void InitScriptExecutionContext(ScriptExecutionContext* context, u16* script) { MemClear32(context, sizeof(ScriptExecutionContext)); - context->scriptInstructionPointer = unk1; + context->scriptInstructionPointer = script; } -void sub_0807DB98(Entity* entity, ScriptExecutionContext* context) { - u32 switchVar; - - while (context->unk_08) { - switchVar = (~context->unk_08 + 1) & context->unk_08; - context->unk_08 ^= switchVar; - switch (switchVar) { - case 1: +void HandlePostScriptActions(Entity* entity, ScriptExecutionContext* context) { + u32 bit; + // iterate over bits of context->postScriptActions, LSB first + while (context->postScriptActions) { + bit = (~context->postScriptActions + 1) & context->postScriptActions; + context->postScriptActions ^= bit; + switch (bit) { + case 1 << 0x00: entity->field_0x80.HWORD = 0; break; - case 2: + case 1 << 0x01: entity->field_0x80.HWORD = 4; break; - case 4: + case 1 << 0x02: break; - case 8: + case 1 << 0x03: entity->field_0x20 = 0x18000; break; - case 0x10: + case 1 << 0x04: CreateSpeechBubbleExclamationMark(entity, 8, -0x18); break; - case 0x20: + case 1 << 0x05: CreateSpeechBubbleQuestionMark(entity, 8, -0x18); break; - case 0x40: + case 1 << 0x06: DestroyScriptExecutionContext(context); DeleteThisEntity(); - case 0x80: + case 1 << 0x07: entity->spriteSettings.b.draw = 1; break; - case 0x100: + case 1 << 0x08: entity->spriteSettings.b.draw = 0; break; - case 0x200: + case 1 << 0x09: entity->spriteOffsetY = 0; entity->spriteOffsetX = 0; entity->field_0x82.HWORD = 0; break; - case 0x400: + case 1 << 0x0a: entity->field_0x82.HWORD |= 2; break; - case 0x800: + case 1 << 0x0b: entity->field_0x82.HWORD &= 0xfffd; break; - case 0x1000: + case 1 << 0x0c: entity->field_0x82.HWORD &= 0xfffe; break; - case 0x2000: + case 1 << 0x0d: entity->field_0x82.HWORD |= 1; break; - case 0x4000: + case 1 << 0x0e: entity->field_0x82.HWORD |= 8; break; - case 0x8000: + case 1 << 0x0f: entity->field_0x82.HWORD ^= 4; break; - case 0x10000: + case 1 << 0x10: entity->field_0x82.HWORD ^= 0x10; break; - case 0x20000: + case 1 << 0x11: entity->spriteSettings.b.flipX ^= 1; break; - case 0x40000: + case 1 << 0x12: entity->field_0x82.HWORD |= 0x20; break; - case 0x80000: + case 1 << 0x13: entity->field_0x82.HWORD &= 0xffdf; break; default: @@ -467,27 +467,27 @@ void sub_0807DD64(Entity* entity) { entity->field_0x82.HWORD = 0; } -void sub_0807DD80(Entity* entity, u16* unk1) { - sub_0807DB88(*(ScriptExecutionContext**)&entity->cutsceneBeh, unk1); +void sub_0807DD80(Entity* entity, u16* script) { + InitScriptExecutionContext(*(ScriptExecutionContext**)&entity->cutsceneBeh, script); sub_0807DD64(entity); } void sub_0807DD94(Entity* entity, void (*function)(Entity*, ScriptExecutionContext*)) { - sub_0807DDAC(entity, function); - sub_0807DDE4(entity); + ExecuteScriptForEntity(entity, function); + HandleEntity0x82Actions(entity); sub_0807DE80(entity); } -void sub_0807DDAC(Entity* entity, void (*function)(Entity*, ScriptExecutionContext*)) { +void ExecuteScriptForEntity(Entity* entity, void (*postScriptCallback)(Entity*, ScriptExecutionContext*)) { ScriptExecutionContext** piVar1; piVar1 = (ScriptExecutionContext**)&entity->cutsceneBeh; if (*piVar1) { - ExecuteScriptCommandSet(entity, *piVar1); - if (function) { - function(entity, *piVar1); + ExecuteScript(entity, *piVar1); + if (postScriptCallback) { + postScriptCallback(entity, *piVar1); } else { - sub_0807DB98(entity, *piVar1); + HandlePostScriptActions(entity, *piVar1); } if (!entity->next) { DeleteThisEntity(); @@ -495,36 +495,36 @@ void sub_0807DDAC(Entity* entity, void (*function)(Entity*, ScriptExecutionConte } } -void sub_0807DDE4(Entity* entity) { +void HandleEntity0x82Actions(Entity* entity) { u32 temp; - u32 switchVar; + u32 bit; u32 loopVar; loopVar = entity->field_0x82.HWORD; while (loopVar) { - switchVar = (~loopVar + 1) & loopVar; - loopVar = loopVar ^ switchVar; - switch (switchVar) { - case 2: + bit = (~loopVar + 1) & loopVar; + loopVar = loopVar ^ bit; + switch (bit) { + case 1 << 1: if (entity->kind == 7) { sub_0806ED78(entity); } else { sub_0800445C(entity); } break; - case 8: + case 1 << 3: if ((gScreenTransition.frameCount & 3) == 0) { temp = (entity->field_0xf + 2U) & 7; entity->animationState = temp; entity->field_0xf = temp; } break; - case 0x10: + case 1 << 4: if ((gScreenTransition.frameCount & 1) == 0) { entity->spriteOffsetX = gUnk_0811E510[Random() & 3]; } break; - case 0x20: + case 1 << 5: sub_08003FC4(entity, 0x2000); break; } @@ -563,20 +563,20 @@ void sub_0807DE80(Entity* entity) { sub_080042BA(entity, local1); } -void sub_0807DEDC(Entity* entity, ScriptExecutionContext* context, u32 arg2, u32 arg3) { - int temp; - s32 t0, t1; +void sub_0807DEDC(Entity* entity, ScriptExecutionContext* context, u32 x, u32 y) { + int direction; + s32 xOffset, yOffset; context->unk_19 = 8; - context->unk_08 |= 2; + context->postScriptActions |= 2; context->condition = 0; - context->unk_1C.HALF.HI = arg2; - context->unk_20.HALF.HI = arg3; - t0 = context->unk_1C.HALF.HI - entity->x.HALF.HI; - t1 = context->unk_20.HALF.HI - entity->y.HALF.HI; - temp = sub_080045DA(t0, t1); - entity->direction = temp; - entity->animationState = (entity->animationState & 0x80) | gUnk_0811E514[(u32)(temp << 0x18) >> 0x1c]; + context->x.HALF.HI = x; + context->y.HALF.HI = y; + xOffset = context->x.HALF.HI - entity->x.HALF.HI; + yOffset = context->y.HALF.HI - entity->y.HALF.HI; + direction = sub_080045DA(xOffset, yOffset); + entity->direction = direction; + entity->animationState = (entity->animationState & 0x80) | gUnk_0811E514[(u32)(direction << 0x18) >> 0x1c]; } void sub_0807DF28() { @@ -598,29 +598,29 @@ void sub_0807DF50() { sub_08079184(); } -void ExecuteScriptCommandSet(Entity* unk1, ScriptExecutionContext* unk2) { - if (!unk2->scriptInstructionPointer) +void ExecuteScript(Entity* entity, ScriptExecutionContext* context) { + if (!context->scriptInstructionPointer) return; - if (unk2->wait) { - unk2->wait--; + if (context->wait) { + context->wait--; } else { - struct_02033280* tmp2 = &gActiveScriptInfo; - tmp2->flags = 0; + struct_02033280* activeScriptInfo = &gActiveScriptInfo; + activeScriptInfo->flags = 0; do { - u32 cmd = GetNextScriptCommandHalfword(unk2->scriptInstructionPointer); - u16* tmp; + u32 cmd = GetNextScriptCommandHalfword(context->scriptInstructionPointer); + u16* lastInstruction; if (cmd == 0xFFFF) return; - tmp2->commandSize = cmd >> 0xA; - tmp2->commandIndex = cmd & 0x3FF; - tmp = unk2->scriptInstructionPointer; - tmp2->flags &= ~1; - gScriptCommands[tmp2->commandIndex](unk1, unk2); - unk2->scriptInstructionPointer += tmp2->commandSize; - if (tmp != unk2->scriptInstructionPointer) { - unk2->unk_18 = 0; + activeScriptInfo->commandSize = cmd >> 0xA; + activeScriptInfo->commandIndex = cmd & 0x3FF; + lastInstruction = context->scriptInstructionPointer; + activeScriptInfo->flags &= ~1; + gScriptCommands[activeScriptInfo->commandIndex](entity, context); + context->scriptInstructionPointer += activeScriptInfo->commandSize; + if (lastInstruction != context->scriptInstructionPointer) { + context->unk_18 = 0; } - } while (tmp2->flags & 3); + } while (activeScriptInfo->flags & 3); } } @@ -833,19 +833,19 @@ void ScriptCommand_CheckKinstoneFused(Entity* entity, ScriptExecutionContext* co } void ScriptCommand_BuyItem(Entity* entity, ScriptExecutionContext* context) { - u32 tmp, tmp2; - s32 tmp3; - tmp = context->scriptInstructionPointer[1]; + u32 item, tmp2; + s32 price; + item = context->scriptInstructionPointer[1]; tmp2 = context->scriptInstructionPointer[2]; - if (!tmp) { - tmp = gRoomVars.itemForSaleIndex; + if (!item) { + item = gRoomVars.itemForSaleIndex; tmp2 = gRoomVars.field_0x7; } - tmp3 = sub_08053FE0(tmp); - context->condition = (tmp3 <= gSave.stats.rupees); + price = GetItemPrice(item); + context->condition = (price <= gSave.stats.rupees); if (context->condition) { - ModRupees(-tmp3); - sub_080A7C18(tmp, tmp2, 0); + ModRupees(-price); + sub_080A7C18(item, tmp2, 0); gRoomVars.itemForSaleIndex = 0; gRoomVars.field_0x7 = 0; } @@ -1032,16 +1032,16 @@ void ScriptCommand_0807E80C(Entity* entity, ScriptExecutionContext* context) { } void sub_0807E818(u32 unk1) { - Entity* tmp = gRoomControls.cameraTarget; - u32 tmp2, tmp3; - if (tmp) { - tmp2 = tmp->x.HALF.HI - gRoomControls.roomScrollX; - tmp3 = tmp->y.HALF.HI - gRoomControls.roomScrollY; + Entity* cameraTarget = gRoomControls.cameraTarget; + u32 x, y; + if (cameraTarget) { + x = cameraTarget->x.HALF.HI - gRoomControls.roomScrollX; + y = cameraTarget->y.HALF.HI - gRoomControls.roomScrollY; } else { - tmp2 = 0x78; - tmp3 = 0x50; + x = 0x78; + y = 0x50; } - sub_08050110(tmp2, tmp3, unk1, gActiveScriptInfo.unk_08); + sub_08050110(x, y, unk1, gActiveScriptInfo.unk_08); } void ScriptCommand_0807E858(Entity* entity, ScriptExecutionContext* context) { @@ -1282,14 +1282,14 @@ void ScriptCommand_0807EC1C(Entity* entity, ScriptExecutionContext* context) { if (!context->unk_18) { context->unk_18 = 1; context->unk_12 = context->scriptInstructionPointer[1]; - context->unk_08 |= 2; + context->postScriptActions |= 2; } sub_0807EC44(entity, context); } -void sub_0807EC44(Entity* unk1, ScriptExecutionContext* unk2) { - sub_0806F69C(unk1); - if (--unk2->unk_12) { +void sub_0807EC44(Entity* entity, ScriptExecutionContext* context) { + sub_0806F69C(entity); + if (--context->unk_12) { gActiveScriptInfo.commandSize = 0; } } @@ -1300,7 +1300,7 @@ void ScriptCommand_0807EC64(Entity* entity, ScriptExecutionContext* context) { context->unk_12 = context->scriptInstructionPointer[1]; entity->animationState = 0; entity->direction = 0; - context->unk_08 |= 2; + context->postScriptActions |= 2; } sub_0807EC44(entity, context); } @@ -1311,7 +1311,7 @@ void ScriptCommand_0807EC94(Entity* entity, ScriptExecutionContext* context) { context->unk_12 = context->scriptInstructionPointer[1]; entity->animationState = 2; entity->direction = 8; - context->unk_08 |= 2; + context->postScriptActions |= 2; } sub_0807EC44(entity, context); } @@ -1322,7 +1322,7 @@ void ScriptCommand_0807ECC4(Entity* entity, ScriptExecutionContext* context) { context->unk_12 = context->scriptInstructionPointer[1]; entity->animationState = 4; entity->direction = 0x10; - context->unk_08 |= 2; + context->postScriptActions |= 2; } sub_0807EC44(entity, context); } @@ -1333,7 +1333,7 @@ void ScriptCommand_0807ECF4(Entity* entity, ScriptExecutionContext* context) { context->unk_12 = context->scriptInstructionPointer[1]; entity->animationState = 6; entity->direction = 0x18; - context->unk_08 |= 2; + context->postScriptActions |= 2; } sub_0807EC44(entity, context); } @@ -1345,22 +1345,22 @@ void ScriptCommand_0807ED24(Entity* entity, ScriptExecutionContext* context) { context->unk_12 = context->scriptInstructionPointer[3]; tmp = context->scriptInstructionPointer[1]; tmp2 = entity->x.HALF.HI - gRoomControls.roomOriginX; - context->unk_1C.WORD = ((tmp - tmp2) << 0x10) / context->unk_12; + context->x.WORD = ((tmp - tmp2) << 0x10) / context->unk_12; tmp = context->scriptInstructionPointer[2]; tmp3 = entity->y.HALF.HI - gRoomControls.roomOriginY; - context->unk_20.WORD = ((tmp - tmp3) << 0x10) / context->unk_12; + context->y.WORD = ((tmp - tmp3) << 0x10) / context->unk_12; entity->animationState = sub_0806F5B0(sub_080045B4(entity, context->scriptInstructionPointer[1] + gRoomControls.roomOriginX, context->scriptInstructionPointer[2] + gRoomControls.roomOriginY)); - context->unk_08 |= 2; + context->postScriptActions |= 2; } else { if (!--context->unk_12) { entity->x.HALF.HI = context->scriptInstructionPointer[1] + gRoomControls.roomOriginX; entity->y.HALF.HI = context->scriptInstructionPointer[2] + gRoomControls.roomOriginY; return; } - entity->x.WORD += context->unk_1C.WORD; - entity->y.WORD += context->unk_20.WORD; + entity->x.WORD += context->x.WORD; + entity->y.WORD += context->y.WORD; } gActiveScriptInfo.commandSize = 0; } @@ -1387,16 +1387,16 @@ void ScriptCommand_0807EE30(Entity* entity, ScriptExecutionContext* context) { if (!--context->unk_19) { context->unk_19 = 8; entity->direction = - sub_080045DA(context->unk_1C.HALF.HI - entity->x.HALF.HI, context->unk_20.HALF.HI - entity->y.HALF.HI); + sub_080045DA(context->x.HALF.HI - entity->x.HALF.HI, context->y.HALF.HI - entity->y.HALF.HI); } - tmp = entity->x.HALF.HI - context->unk_1C.HALF.HI; - tmp2 = entity->y.HALF.HI - context->unk_20.HALF.HI; + tmp = entity->x.HALF.HI - context->x.HALF.HI; + tmp2 = entity->y.HALF.HI - context->y.HALF.HI; sub_0806F62C(entity, entity->nonPlanarMovement, entity->direction); - tmp *= entity->x.HALF.HI - context->unk_1C.HALF.HI; - tmp2 *= entity->y.HALF.HI - context->unk_20.HALF.HI; + tmp *= entity->x.HALF.HI - context->x.HALF.HI; + tmp2 *= entity->y.HALF.HI - context->y.HALF.HI; if (tmp <= 0 && tmp2 <= 0) { - entity->x.HALF.HI = context->unk_1C.HALF.HI; - entity->y.HALF.HI = context->unk_20.HALF.HI; + entity->x.HALF.HI = context->x.HALF.HI; + entity->y.HALF.HI = context->y.HALF.HI; context->condition = 1; } else { context->condition = 0; @@ -1430,21 +1430,21 @@ void ScriptCommand_0807EF3C(Entity* entity, ScriptExecutionContext* context) { if (!context->unk_18) { context->unk_18 = 1; entity->field_0x20 = ((s16)context->scriptInstructionPointer[1]) << 8; - context->unk_1C.HALF.LO = context->scriptInstructionPointer[2] << 8; - sub_08003FC4(entity, (u16)context->unk_1C.HALF.LO); + context->x.HALF.LO = context->scriptInstructionPointer[2] << 8; + sub_08003FC4(entity, (u16)context->x.HALF.LO); } else { - if (!sub_08003FC4(entity, (u16)context->unk_1C.HALF.LO)) + if (!sub_08003FC4(entity, (u16)context->x.HALF.LO)) return; } gActiveScriptInfo.commandSize = 0; } -void ScriptCommand_0807EF80(Entity* entity, ScriptExecutionContext* context) { - context->unk_08 |= 1 << context->scriptInstructionPointer[1]; +void ScriptCommand_DoPostScriptAction(Entity* entity, ScriptExecutionContext* context) { + context->postScriptActions |= 1 << context->scriptInstructionPointer[1]; } -void ScriptCommand_0807EF90(Entity* entity, ScriptExecutionContext* context) { - context->unk_08 |= 1 << context->scriptInstructionPointer[1]; +void ScriptCommand_DoPostScriptAction2(Entity* entity, ScriptExecutionContext* context) { + context->postScriptActions |= 1 << context->scriptInstructionPointer[1]; } void ScriptCommand_SoundReq(Entity* entity, ScriptExecutionContext* context) { -- cgit v1.2.3 From a352ff972220ac5f8551a81cff4ed97d97cb164d Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Mon, 8 Mar 2021 19:48:38 +0100 Subject: Readd void parameters --- src/script.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/script.c') diff --git a/src/script.c b/src/script.c index 2bf9b6f0..cc9636b8 100644 --- a/src/script.c +++ b/src/script.c @@ -579,18 +579,18 @@ void sub_0807DEDC(Entity* entity, ScriptExecutionContext* context, u32 x, u32 y) entity->animationState = (entity->animationState & 0x80) | gUnk_0811E514[(u32)(direction << 0x18) >> 0x1c]; } -void sub_0807DF28() { +void sub_0807DF28(void) { sub_0807DF38(); sub_08079184(); sub_08077B20(); } -void sub_0807DF38() { +void sub_0807DF38(void) { gUnk_0200AF00.filler0[1] = 0xff; gUnk_02034490[0] = 0xff; } -void sub_0807DF50() { +void sub_0807DF50(void) { gUnk_02034490[0] = 0; gUnk_0200AF00.filler0[1] = 0; sub_0801C4A0(0); -- cgit v1.2.3 From e251d79ffd4ee1c4b10def3ecb41f2d572c63664 Mon Sep 17 00:00:00 2001 From: theo3 Date: Sat, 13 Mar 2021 01:14:46 -0800 Subject: =?UTF-8?q?quick=20fix=20=F0=9F=99=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/script.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/script.c') diff --git a/src/script.c b/src/script.c index cc9636b8..6e4d577a 100644 --- a/src/script.c +++ b/src/script.c @@ -113,7 +113,7 @@ void ScriptCommand_0807EB74(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_0807EB8C(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SetEntityDirection(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SetEntityDirectionWithAnimationState(Entity* entity, ScriptExecutionContext* context); -void ScriptCommand_SetEntityNonPlanarMovement(Entity* entity, ScriptExecutionContext* context); +void ScriptCommand_SetEntitySpeed(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SetEntity0x20(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SetEntityPositionRelative(Entity* entity, ScriptExecutionContext* context); void ScriptCommand_SetEntityPosition(Entity* entity, ScriptExecutionContext* context); @@ -260,7 +260,7 @@ const ScriptCommand gScriptCommands[] = { ScriptCommandNop, ScriptCommand_0807EB8C, ScriptCommand_SetEntityDirection, ScriptCommand_SetEntityDirectionWithAnimationState, - ScriptCommand_SetEntityNonPlanarMovement, + ScriptCommand_SetEntitySpeed, ScriptCommand_SetEntity0x20, ScriptCommand_SetEntityPositionRelative, ScriptCommand_SetEntityPosition, @@ -1253,8 +1253,8 @@ void ScriptCommand_SetEntityDirectionWithAnimationState(Entity* entity, ScriptEx entity->animationState = entity->direction / 4; } -void ScriptCommand_SetEntityNonPlanarMovement(Entity* entity, ScriptExecutionContext* context) { - entity->nonPlanarMovement = context->scriptInstructionPointer[1]; +void ScriptCommand_SetEntitySpeed(Entity* entity, ScriptExecutionContext* context) { + entity->speed = context->scriptInstructionPointer[1]; } void ScriptCommand_SetEntity0x20(Entity* entity, ScriptExecutionContext* context) { @@ -1391,7 +1391,7 @@ void ScriptCommand_0807EE30(Entity* entity, ScriptExecutionContext* context) { } tmp = entity->x.HALF.HI - context->x.HALF.HI; tmp2 = entity->y.HALF.HI - context->y.HALF.HI; - sub_0806F62C(entity, entity->nonPlanarMovement, entity->direction); + sub_0806F62C(entity, entity->speed, entity->direction); tmp *= entity->x.HALF.HI - context->x.HALF.HI; tmp2 *= entity->y.HALF.HI - context->y.HALF.HI; if (tmp <= 0 && tmp2 <= 0) { -- cgit v1.2.3