Use enums in more scripts

This commit is contained in:
Tal Hayon 2022-05-13 23:52:03 +03:00
parent d56bcc28f3
commit 422fb8ed14
16 changed files with 114 additions and 120 deletions

View File

@ -479,9 +479,14 @@
.2byte 0x0459
.endm
.macro MessageFromTarget s:req
.macro MessageFromTarget a:req, b
.2byte 0x085a
.2byte \s
.ifnb \b
.byte \b
.byte \a
.else
.2byte \a
.endif
.endm
.macro MessageNoOverlap a:req, b
@ -494,10 +499,16 @@
.endif
.endm
.macro MessageFromTargetPos a:req, b:req
.macro MessageFromTargetPos a:req, b:req, c
.2byte 0x0c5c
.ifnb \c
.byte \b
.byte \a
.2byte \c
.else
.2byte \a
.2byte \b
.endif
.endm
.macro MessageFromTargetPos_1 s:req
@ -514,9 +525,14 @@
.2byte 0x045e
.endm
.macro EzloMessage s:req
.macro EzloMessage a:req, b
.2byte 0x085f
.2byte \s
.ifnb \b
.byte \b
.byte \a
.else
.2byte \a
.endif
.endm
.macro _0807EB38
@ -716,7 +732,7 @@
.2byte \b
.endm
.macro _0807F088 s:req
.macro InitItemGetSequence s:req
.2byte 0x0886
.2byte \s
.endm

View File

@ -5,6 +5,8 @@
.include "flags.inc"
.include "message.inc"
.include "item.inc"
.include "player.inc"
.include "sound.inc"
.syntax unified

View File

@ -9,7 +9,7 @@ SCRIPT_START script_DampeInside
WaitUntilTextboxCloses
JumpIfNot script_08009622
PlaySound SFX_ITEM_GET
_0807F088 0x003c
InitItemGetSequence 0x003c
MessageFromTarget 0x053c
WaitPlayerGetItem
WaitUntilTextboxCloses

View File

@ -39,7 +39,7 @@ script_08013006:
Call sub_0807DF28
EndBlock
PlaySound SFX_TASK_COMPLETE
_0807F088 0x0038
InitItemGetSequence 0x0038
WaitPlayerGetItem
Wait 0x001e
_0807E8E4_0

View File

@ -17,7 +17,7 @@ SCRIPT_START script_TalonGotKey
FacePlayer
Wait 0x003c
PlaySound SFX_TASK_COMPLETE
_0807F088 0x0037
InitItemGetSequence 0x0037
WaitPlayerGetItem
FaceAwayFromPlayer
MessageFromTarget 0x200c

View File

@ -1,7 +1,7 @@
@ Minish Woods OBJECT_69 ?
@ Ezlo Trigger to explain how portals work
SCRIPT_START script_08012C98
CheckGlobalFlag 0x0014
CheckGlobalFlag EZERO_1ST
JumpIfNot script_08012C98
script_08012CA0:
EndBlock
@ -13,21 +13,9 @@ script_08012CA0:
EndBlock
SetPlayerIdle
Call sub_0807DF28
EzloMessage 0x2202
EzloMessage TEXT_EZLO_PORTAL, 0x02
WaitUntilTextboxCloses
.ifdef JP
SetLocalFlag 0x003a
.else
.ifdef EU
SetLocalFlag 0x003a
.else
.ifdef DEMO_JP
SetLocalFlag 0x003a @ TODO deduplicate
.else
SetLocalFlag 0x003b
.endif
.endif
.endif
SetLocalFlag MORI_00_KOBITO
Call sub_0807DF50
EnablePlayerControl
script_08012CD2:

View File

@ -2,9 +2,9 @@
SCRIPT_START script_08012D18
EndBlock
BeginBlock
CheckGlobalFlag 0x0014
CheckGlobalFlag EZERO_1ST
JumpIfNot script_08012D18
CheckLocalFlagByBank 0x0200, 0x008d
CheckLocalFlagByBank FLAG_BANK_2, 0x008d
JumpIf script_08012D68
CheckPlayerInRegion 0x0000, 0x01a8, 0x2010
JumpIfNot script_08012D18
@ -12,7 +12,7 @@ SCRIPT_START script_08012D18
SetPlayerIdle
Call WaitForPlayerNormal
Call sub_0807DF28
EzloMessage 0x111a
EzloMessage TEXT_FINDING_EZLO, 0x1a
WaitUntilTextboxCloses
StartPlayerScript script_PlayerCannotEnter
WaitForSyncFlagAndClear 0x00000001

View File

@ -6,7 +6,7 @@ SCRIPT_START script_BombMinish
DoPostScriptAction 0x000a
CheckKinstoneFused 0x001c
JumpIf script_08009FD2
CheckInventory1 0x0007
CheckInventory1 ITEM_BOMBS
JumpIf script_08009F84
EndBlock
script_08009F36:
@ -22,10 +22,10 @@ script_08009F36:
StartPlayerScript script_PlayerAtBombMinish
WaitForSyncFlagAndClear 0x00000002
Call sub_0806014C
MessageFromTargetPos 0x1f01, 0x0000
MessageFromTargetPos TEXT_BELARI, 0x01, 0x0000
WaitUntilTextboxCloses
Wait 0x001e
GivePlayerItem 0x0065
GivePlayerItem ITEM_BOMBBAG
WaitPlayerGetItem
DoPostScriptAction 0x000a
Call sub_0807DF50
@ -42,14 +42,14 @@ script_08009F86:
SetPlayerIdle
Call sub_080602BC
WaitUntilTextboxCloses
CallWithArg CheckMessageEqual, 0x00001f03
CallWithArg CheckMessageEqual, (TEXT_BELARI << 8) | 0x3
JumpIf script_08009FB6
EnablePlayerControl
Jump script_08009F86
script_08009FB6:
Wait 0x0008
PlaySound SFX_103
CallWithArg sub_0806030C, 0x00000063
CallWithArg script_ModBombs, 0x00000063
Wait 0x0008
EnablePlayerControl
Jump script_08009F86
@ -65,7 +65,7 @@ script_08009FDC:
JumpIfNot script_08009FDC
EndBlock
SetPlayerIdle
MessageNoOverlap 0x1f0e
MessageNoOverlap TEXT_BELARI, 0x0e
WaitUntilTextboxCloses
CheckTextboxResult
JumpIf script_0800A002
@ -73,12 +73,12 @@ script_08009FDC:
Jump script_08009FDC
script_0800A002:
Wait 0x0008
GivePlayerItem 0x0008
GivePlayerItem ITEM_REMOTE_BOMBS
Call sub_08060318
WaitPlayerGetItem
Wait 0x0008
FaceAwayFromPlayer
MessageFromTarget 0x1f13
MessageFromTarget TEXT_BELARI, 0x13
WaitUntilTextboxCloses
SetLocalFlag 0x00b0
EnablePlayerControl
@ -90,16 +90,16 @@ script_0800A024:
JumpIfNot script_0800A024
EndBlock
SetPlayerIdle
CheckInventory1 0x0008
CheckInventory1 ITEM_REMOTE_BOMBS
JumpIf script_0800A052
MessageNoOverlap 0x1f14
MessageNoOverlap TEXT_BELARI, 0x14
WaitUntilTextboxCloses
CheckTextboxResult
JumpIf script_0800A002
EnablePlayerControl
Jump script_0800A024
script_0800A052:
MessageNoOverlap 0x1f11
MessageNoOverlap TEXT_BELARI, 0x11
WaitUntilTextboxCloses
CheckTextboxResult
JumpIf script_0800A064
@ -107,12 +107,12 @@ script_0800A052:
Jump script_0800A024
script_0800A064:
Wait 0x0008
GivePlayerItem 0x0007
GivePlayerItem ITEM_BOMBS
Call sub_08060318
WaitPlayerGetItem
Wait 0x0008
FaceAwayFromPlayer
MessageFromTarget 0x1f10
MessageFromTarget TEXT_BELARI, 0x10
WaitUntilTextboxCloses
EnablePlayerControl
Jump script_0800A024

View File

@ -2,9 +2,9 @@
SCRIPT_START script_EzloTalkDWS
SetPlayerIdle
Call sub_0807DF28
EzloMessage 0x1c01
EzloMessage TEXT_EZLO_ELEMENTS_DONE, 0x01
WaitUntilTextboxCloses
SetLocalFlagByBank 0x0100, 0x0001
SetLocalFlagByBank FLAG_BANK_1, 0x0001
Call sub_0807DF50
EnablePlayerControl
DoPostScriptAction 0x0006

View File

@ -6,26 +6,14 @@ SCRIPT_START script_EzloTalkMinishPortal
JumpIfNot script_EzloTalkMinishPortal
CheckPlayerInRegion 0x0380, 0x03b0, 0x4040
JumpIfNot script_EzloTalkMinishPortal
ComparePlayerAction 0x0015
ComparePlayerAction PLAYER_USEPORTAL
JumpIf script_EzloTalkMinishPortal
SetPlayerIdle
Call sub_0807DF28
EndBlock
EzloMessage 0x2203
EzloMessage TEXT_EZLO_PORTAL, 0x03
WaitUntilTextboxCloses
.ifdef JP
SetLocalFlag 0x003d
.else
.ifdef EU
SetLocalFlag 0x003d
.else
.ifdef DEMO_JP
SetLocalFlag 0x003d @ TODO deduplicate
.else
SetLocalFlag 0x003e
.endif
.endif
.endif
SetLocalFlag MORI_ENTRANCE_1ST
Call sub_0807DF50
EnablePlayerControl
DoPostScriptAction 0x0006

View File

@ -23,12 +23,12 @@ script_0800C674:
WaitForSyncFlagAndClear 0x00000001
DoPostScriptAction 0x000a
script_0800C684:
CheckInventory1 0x0040
CheckInventory1 ITEM_EARTH_ELEMENT
JumpIf script_0800C730
CheckInventory1 0x005b
CheckInventory1 ITEM_JABBERNUT
JumpIf script_0800C6B6
DoPostScriptAction 0x0002
MessageFromTarget 0x1f16
MessageFromTarget TEXT_BELARI, 0x16
WaitUntilTextboxCloses
DoPostScriptAction 0x0015
Wait 0x000a
@ -40,7 +40,7 @@ script_0800C6B6:
CheckLocalFlag 0x0081
JumpIf script_0800C6DC
DoPostScriptAction 0x0002
MessageFromTarget 0x1f1b
MessageFromTarget TEXT_BELARI, 0x1b
WaitUntilTextboxCloses
DoPostScriptAction 0x0015
Wait 0x000a
@ -51,7 +51,7 @@ script_0800C6DC:
CheckLocalFlag 0x0082
JumpIf script_0800C712
DoPostScriptAction 0x0002
MessageFromTarget 0x1f17
MessageFromTarget TEXT_BELARI, 0x17
WaitUntilTextboxCloses
DoPostScriptAction 0x0015
Wait 0x000a
@ -64,7 +64,7 @@ script_0800C6DC:
SetLocalFlag 0x0082
script_0800C712:
DoPostScriptAction 0x0002
MessageFromTarget 0x1f18
MessageFromTarget TEXT_BELARI, 0x18
WaitUntilTextboxCloses
DoPostScriptAction 0x0015
Wait 0x000a
@ -75,7 +75,7 @@ script_0800C730:
CheckLocalFlag 0x0083
JumpIf script_0800C756
DoPostScriptAction 0x0002
MessageFromTarget 0x1f19
MessageFromTarget TEXT_BELARI, 0x19
WaitUntilTextboxCloses
DoPostScriptAction 0x0015
Wait 0x000a
@ -84,7 +84,7 @@ script_0800C730:
Jump script_0800C652
script_0800C756:
DoPostScriptAction 0x0002
MessageFromTarget 0x1f1a
MessageFromTarget TEXT_BELARI, 0x1a
WaitUntilTextboxCloses
DoPostScriptAction 0x0015
Wait 0x000a

View File

@ -1,7 +1,7 @@
@ Minish Village ForestMinish at the back of the pico flowers
SCRIPT_START script_ForestMinish10
BeginBlock
CheckInventory1 0x005b
CheckInventory1 ITEM_JABBERNUT
JumpIfNot script_0800C5FE
Call sub_08060090
DoPostScriptAction 0x000a
@ -20,103 +20,103 @@ script_0800CDA6:
CheckLocalFlag 0x009d
JumpIf script_0800CDC4
SetLocalFlag 0x009d
MessageNoOverlap 0x213d
MessageNoOverlap TEXT_FOREST_MINISH, 0x3d
Jump script_0800CF40
script_0800CDC4:
CheckGlobalFlag 0x003b
JumpIf script_0800CE46
CheckGlobalFlag 0x0054
CheckGlobalFlag DRUG_COUNT
JumpIfNot script_0800CDEC
CheckRoomFlag 0x0000
JumpIfNot script_0800CF2A
SetGlobalFlag 0x003b
ClearGlobalFlag 0x0054
SetGlobalFlag DRUG_1
ClearGlobalFlag DRUG_COUNT
MessageNoOverlap 0x2141
Jump script_0800CF40
script_0800CDEC:
MessageNoOverlap 0x213e
MessageNoOverlap TEXT_FOREST_MINISH, 0x3e
WaitUntilTextboxCloses
CheckBottleContaining 0x0023
CheckBottleContaining ITEM_BOTTLE_HALF_MILK
JumpIfNot script_0800CE14
MessageNoOverlap 0x214b
MessageNoOverlap TEXT_FOREST_MINISH, 0x4b
WaitUntilTextboxCloses
CheckTextboxResult
JumpIfNot script_0800CF40
PlaySound SFX_TASK_COMPLETE
_0807F088 0x0023
InitItemGetSequence ITEM_BOTTLE_HALF_MILK
WaitPlayerGetItem
Jump script_0800CE32
script_0800CE14:
CheckBottleContaining 0x0022
CheckBottleContaining ITEM_BOTTLE_MILK
JumpIfNot script_0800CF40
MessageNoOverlap 0x214b
MessageNoOverlap TEXT_FOREST_MINISH, 0x4b
WaitUntilTextboxCloses
CheckTextboxResult
JumpIfNot script_0800CF40
PlaySound SFX_TASK_COMPLETE
_0807F088 0x0022
InitItemGetSequence ITEM_BOTTLE_MILK
WaitPlayerGetItem
script_0800CE32:
FaceAwayFromPlayer
SetGlobalFlag 0x0054
SetGlobalFlag DRUG_COUNT
Call sub_08060340
MessageNoOverlap 0x213f
MessageNoOverlap TEXT_FOREST_MINISH, 0x3f
Jump script_0800CF02
script_0800CE46:
CheckGlobalFlag 0x003c
CheckGlobalFlag DRUG_2
JumpIf script_0800CEA6
CheckGlobalFlag 0x0054
CheckGlobalFlag DRUG_COUNT
JumpIfNot script_0800CE6E
CheckRoomFlag 0x0000
JumpIfNot script_0800CF2A
SetGlobalFlag 0x003c
ClearGlobalFlag 0x0054
MessageNoOverlap 0x2145
SetGlobalFlag DRUG_2
ClearGlobalFlag DRUG_COUNT
MessageNoOverlap TEXT_FOREST_MINISH, 0x45
Jump script_0800CF40
script_0800CE6E:
MessageNoOverlap 0x2142
MessageNoOverlap TEXT_FOREST_MINISH, 0x42
WaitUntilTextboxCloses
CheckBottleContaining 0x0027
CheckBottleContaining ITEM_BOTTLE_MINERAL_WATER
JumpIfNot script_0800CF40
MessageNoOverlap 0x214c
MessageNoOverlap TEXT_FOREST_MINISH, 0x4c
WaitUntilTextboxCloses
CheckTextboxResult
JumpIfNot script_0800CF40
PlaySound SFX_TASK_COMPLETE
_0807F088 0x0027
InitItemGetSequence ITEM_BOTTLE_MINERAL_WATER
WaitPlayerGetItem
FaceAwayFromPlayer
SetGlobalFlag 0x0054
SetGlobalFlag DRUG_COUNT
Call sub_08060340
MessageNoOverlap 0x2143
MessageNoOverlap TEXT_FOREST_MINISH, 0x43
Jump script_0800CF02
script_0800CEA6:
CheckGlobalFlag 0x003d
CheckGlobalFlag DRUG_3
JumpIf script_0800CF3C
CheckGlobalFlag 0x0054
CheckGlobalFlag DRUG_COUNT
JumpIfNot script_0800CECE
CheckRoomFlag 0x0000
JumpIfNot script_0800CF2A
SetGlobalFlag 0x003d
ClearGlobalFlag 0x0054
MessageNoOverlap 0x2149
SetGlobalFlag DRUG_3
ClearGlobalFlag DRUG_COUNT
MessageNoOverlap TEXT_FOREST_MINISH, 0x49
Jump script_0800CF40
script_0800CECE:
MessageNoOverlap 0x2146
MessageNoOverlap TEXT_FOREST_MINISH, 0x46
WaitUntilTextboxCloses
CheckBottleContaining 0x0024
CheckBottleContaining ITEM_BOTTLE_RED_POTION
JumpIfNot script_0800CF40
MessageNoOverlap 0x214d
MessageNoOverlap TEXT_FOREST_MINISH, 0x4d
WaitUntilTextboxCloses
CheckTextboxResult
JumpIfNot script_0800CF40
PlaySound SFX_TASK_COMPLETE
_0807F088 0x0024
InitItemGetSequence ITEM_BOTTLE_RED_POTION
WaitPlayerGetItem
FaceAwayFromPlayer
SetGlobalFlag 0x0054
SetGlobalFlag DRUG_COUNT
Call sub_08060340
MessageNoOverlap 0x2147
MessageNoOverlap TEXT_FOREST_MINISH, 0x47
script_0800CF02:
WaitUntilTextboxCloses
Call sub_0807DF50
@ -133,13 +133,13 @@ script_0800CF20:
SetPlayerIdle
Call sub_0807DF28
script_0800CF2A:
MessageNoOverlap 0x2140
MessageNoOverlap TEXT_FOREST_MINISH, 0x40
WaitUntilTextboxCloses
Call sub_0807DF50
EnablePlayerControl
Jump script_0800CF0C
script_0800CF3C:
MessageNoOverlap 0x214a
MessageNoOverlap TEXT_FOREST_MINISH, 0x4a
script_0800CF40:
WaitUntilTextboxCloses
Call sub_0807DF50

View File

@ -10,12 +10,12 @@ script_0800C780:
Call sub_0807DF28
StartPlayerScript script_PlayerAtGentari
WaitForSyncFlagAndClear 0x00000001
CheckInventory1 0x0040
CheckInventory1 ITEM_EARTH_ELEMENT
JumpIf script_0800C824
CheckInventory1 0x005b
CheckInventory1 ITEM_JABBERNUT
JumpIf script_0800C7C0
SetAnimation 0x0008
MessageFromTarget 0x2122
MessageFromTarget TEXT_FOREST_MINISH, 0x22
WaitUntilTextboxCloses
DoPostScriptAction 0x0000
Call sub_0807DF50
@ -25,16 +25,16 @@ script_0800C7C0:
SetAnimation 0x0008
CheckLocalFlag 0x0081
JumpIf script_0800C80A
MessageFromTarget 0x1130
MessageFromTarget TEXT_FINDING_EZLO, 0x30
WaitUntilTextboxCloses
EzloMessage 0x1131
WaitUntilTextboxCloses
FaceAwayFromPlayer
MessageFromTarget 0x1132
MessageFromTarget TEXT_FINDING_EZLO, 0x32
WaitUntilTextboxCloses
SetIntVariable 0x00000103
Call LoadMenu
MessageFromTarget 0x1133
MessageFromTarget TEXT_FINDING_EZLO, 0x33
WaitUntilTextboxCloses
Wait 0x000a
DoPostScriptAction 0x0000
@ -43,7 +43,7 @@ script_0800C7C0:
EnablePlayerControl
Jump script_0800C780
script_0800C80A:
MessageFromTarget 0x1133
MessageFromTarget TEXT_FINDING_EZLO, 0x33
WaitUntilTextboxCloses
Wait 0x000a
SetAnimation 0x0000
@ -54,7 +54,7 @@ script_0800C824:
SetAnimation 0x0008
CheckLocalFlag 0x0083
JumpIf script_0800C8AE
MessageFromTarget 0x1135
MessageFromTarget TEXT_FINDING_EZLO, 0x35
WaitUntilTextboxCloses
SetEntitySpeed 0x0040
_0807EDD4 0x0038, 0x0044
@ -66,9 +66,9 @@ script_0800C824:
Wait 0x003c
FacePlayer
FaceAwayFromPlayer
MessageFromTarget 0x1136
MessageFromTarget TEXT_FINDING_EZLO, 0x36
WaitUntilTextboxCloses
EzloMessage 0x1137
EzloMessage TEXT_FINDING_EZLO, 0x37
WaitUntilTextboxCloses
Wait 0x000a
SetAnimationState 0x0004
@ -82,7 +82,7 @@ script_0800C87C:
FacePlayer
SetIntVariable 0x00000008
Call sub_0807F3D8
MessageFromTarget 0x1136
MessageFromTarget TEXT_FINDING_EZLO, 0x36
WaitUntilTextboxCloses
Wait 0x000a
DoPostScriptAction 0x0000
@ -90,7 +90,7 @@ script_0800C87C:
EnablePlayerControl
Jump script_0800C87C
script_0800C8AE:
MessageFromTarget 0x1136
MessageFromTarget TEXT_FINDING_EZLO, 0x36
WaitUntilTextboxCloses
Wait 0x000a
DoPostScriptAction 0x0000

View File

@ -72,7 +72,7 @@ SCRIPT_START script_08016482
GivePlayerItem 0x0001
GetInventoryValue 0x0001
SetInventoryValue 0x0001, 0x0002
_0807F088 0x0001
InitItemGetSequence 0x0001
CameraTargetEntity
CameraTargetPlayer
_0807F0B4 0x0007

View File

@ -201,7 +201,7 @@ void sub_080602BC(Entity* this) {
MessageNoOverlap(gUnk_0810A362[index], this);
}
void sub_0806030C(Entity* this, ScriptExecutionContext* context) {
void script_ModBombs(Entity* this, ScriptExecutionContext* context) {
ModBombs(context->intVariable);
}

View File

@ -147,7 +147,7 @@ void ScriptCommand_GivePlayerItem(Entity* entity, ScriptExecutionContext* contex
void ScriptCommand_GiveKinstone(Entity* entity, ScriptExecutionContext* context);
void ScriptCommand_GetInventoryValue(Entity* entity, ScriptExecutionContext* context);
void ScriptCommand_SetInventoryValue(Entity* entity, ScriptExecutionContext* context);
void ScriptCommand_0807F088(Entity* entity, ScriptExecutionContext* context);
void ScriptCommand_InitItemGetSequence(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);
@ -595,7 +595,7 @@ void ExecuteScript(Entity* entity, ScriptExecutionContext* context) {
ScriptCommand_GiveKinstone,
ScriptCommand_GetInventoryValue,
ScriptCommand_SetInventoryValue,
ScriptCommand_0807F088,
ScriptCommand_InitItemGetSequence,
ScriptCommand_CameraTargetEntity,
ScriptCommand_CameraTargetPlayer,
ScriptCommand_0807F0B4,
@ -1505,7 +1505,7 @@ void ScriptCommand_SetInventoryValue(Entity* entity, ScriptExecutionContext* con
SetInventoryValue(context->scriptInstructionPointer[1], context->scriptInstructionPointer[2]);
}
void ScriptCommand_0807F088(Entity* entity, ScriptExecutionContext* context) {
void ScriptCommand_InitItemGetSequence(Entity* entity, ScriptExecutionContext* context) {
InitItemGetSequence(context->scriptInstructionPointer[1], 0, 3);
}