summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Martinek <andrewrmartinek@gmail.com>2019-09-23 12:27:12 -0400
committerAndrew Martinek <andrewrmartinek@gmail.com>2019-09-23 12:27:12 -0400
commitf3f374e6b7e26bc93c8428c8cb7b8c210223b2f4 (patch)
tree2e2f67f4237bc77b33196d396f50baa105a745db /src
parent751b28d4fee472af4d0de83ef22a1f11ec6fade6 (diff)
Fleshed out flags a lot
Diffstat (limited to 'src')
-rw-r--r--src/constants/duel_constants.asm7
-rw-r--r--src/constants/event_constants.asm6
-rw-r--r--src/constants/misc_constants.asm3
-rw-r--r--src/data/npcs.asm2
-rw-r--r--src/engine/bank03.asm670
-rw-r--r--src/engine/bank04.asm65
-rw-r--r--src/engine/bank07.asm17
-rw-r--r--src/engine/bank1c.asm4
-rw-r--r--src/engine/home.asm10
-rw-r--r--src/macros/constants.asm7
-rw-r--r--src/macros/scripts.asm34
-rw-r--r--src/wram.asm10
12 files changed, 616 insertions, 219 deletions
diff --git a/src/constants/duel_constants.asm b/src/constants/duel_constants.asm
index f3e2912..044b888 100644
--- a/src/constants/duel_constants.asm
+++ b/src/constants/duel_constants.asm
@@ -224,3 +224,10 @@ EFFECT_FAILED_UNSUCCESSFUL EQU $02
; wAnimationQueue length
ANIMATION_QUEUE_LENGTH EQU 7
+
+PRIZES_1 EQU $01
+PRIZES_2 EQU $02
+PRIZES_3 EQU $03
+PRIZES_4 EQU $04
+PRIZES_5 EQU $05
+PRIZES_6 EQU $06
diff --git a/src/constants/event_constants.asm b/src/constants/event_constants.asm
index 496f5a3..f6ac803 100644
--- a/src/constants/event_constants.asm
+++ b/src/constants/event_constants.asm
@@ -1,3 +1,3 @@
-; Event Flags
-EVENT_BEAT_SARA EQU $15
-EVENT_BEAT_AMANDA EQU $16
+; EVENT_JOSHUA_STATE ; $33
+JOSHUA_TALKED EQU 1
+JOSHUA_BEATEN EQU 2
diff --git a/src/constants/misc_constants.asm b/src/constants/misc_constants.asm
index b31631a..c513111 100644
--- a/src/constants/misc_constants.asm
+++ b/src/constants/misc_constants.asm
@@ -44,3 +44,6 @@ FLUSH_ALL_PALS_F EQU 6
const GAME_EVENT_CONTINUE_DUEL ; $5
const GAME_EVENT_CHALLENGE_MACHINE ; $6
NUM_GAME_EVENTS EQU const_value
+
+; Script constant
+NO_JUMP EQU $0000
diff --git a/src/data/npcs.asm b/src/data/npcs.asm
index 23b4330..f667077 100644
--- a/src/data/npcs.asm
+++ b/src/data/npcs.asm
@@ -519,7 +519,7 @@ AmyData:
db $08
db $2e
db $10
- dw $6304 ; Pointer to NPC Data
+ dw OWSequence_Amy ; Pointer to NPC Data
tx Text03bf
db AMY_PIC
db $12
diff --git a/src/engine/bank03.asm b/src/engine/bank03.asm
index e89bbfb..d7f3496 100644
--- a/src/engine/bank03.asm
+++ b/src/engine/bank03.asm
@@ -127,10 +127,10 @@ Func_c10a: ; c10a (3:410a)
jp hl
; closes dialogue window. seems to be for other things as well.
-CloseDialogueBox: ; c111 (3:4111)
- ld a, [wd0c1] ; with 0 set i can't move cursors, can move around
+CloseAdvancedDialogueBox: ; c111 (3:4111)
+ ld a, [wd0c1]
bit 0, a
- call nz, Func_c135 ; seems to actually close the dialog window
+ call nz, CloseTextBox
ld a, [wd0c1]
bit 1, a
jr z, .asm_c12a
@@ -144,11 +144,11 @@ CloseDialogueBox: ; c111 (3:4111)
ld [wd0bf], a
ret
-; this seems to legitimately close the dialogue box
-Func_c135: ; c135 (3:4135)
+; redraws the background and removes textbox control
+CloseTextBox: ; c135 (3:4135)
push hl
- farcall Func_80028 ; Draw background of the current room, I think
- ld hl, wd0c1 ; at this point, the background tiles are back to normal
+ farcall Func_80028
+ ld hl, wd0c1
res 0, [hl]
pop hl
ret
@@ -971,7 +971,7 @@ Func_c74d: ; c74d (3:474d)
push bc
push de
call MainMenu_c75a
- call CloseDialogueBox
+ call CloseAdvancedDialogueBox
pop de
pop bc
pop hl
@@ -1088,11 +1088,11 @@ PC_c7ea: ; c7ea (3:47ea)
call Func_c32b
jr .asm_c801
.asm_c82f
- call Func_c135
+ call CloseTextBox
call DoFrameIfLCDEnabled
ldtx hl, TurnedPCOffText
call Func_c891
- call CloseDialogueBox
+ call CloseAdvancedDialogueBox
xor a
ld [wd112], a
call Func_39fc
@@ -1109,7 +1109,7 @@ Func_c891: ; c891 (3:4891)
ld hl, wd3b9
ld a, [hli]
or [hl]
- call nz, Func_c135
+ call nz, CloseTextBox
.asm_c8a1
xor a
@@ -1142,7 +1142,7 @@ Func_c8ba: ; c8ba (3:48ba)
jr z, .asm_c8d4
.asm_c8d1
- call Func_c135
+ call CloseTextBox
.asm_c8d4
ld hl, wd3b9
@@ -1412,19 +1412,22 @@ Func_ca0e: ; ca0e (3:4a0e)
Func_ca69: ; ca69 (3:4a69)
call Func_cab3
-CheckIfEventFlagSet: ; ca6c (3:4a6c)
+
+; returns the event flag's value in a
+; also ors it with itself before returning
+GetEventFlagValue: ; ca6c (3:4a6c)
push hl
push bc
- call GetEventFlagMod
+ call GetEventFlag
ld c, [hl]
- ld a, [wd3d1]
-.asm_ca75
+ ld a, [wLoadedFlagBits]
+.shiftLoop
bit 0, a
- jr nz, .asm_ca7f
+ jr nz, .lsbReached
srl a
srl c
- jr .asm_ca75
-.asm_ca7f
+ jr .shiftLoop
+.lsbReached
and c
pop bc
pop hl
@@ -1437,12 +1440,13 @@ CheckIfEventFlagSet: ; ca6c (3:4a6c)
Func_ca8f: ; ca8f (3:4a8f)
call Func_cab3
-; a - pointer on table for cb1d, c - set or reset control bit
-ModifyEventFlags: ; ca92 (3:4a92)
+; a - flag
+; c - value - truncated to fit only the flag's bounds
+SetEventFlagValue: ; ca92 (3:4a92)
push hl
push bc
- call GetEventFlagMod
- ld a, [wd3d1]
+ call GetEventFlag
+ ld a, [wLoadedFlagBits]
.asm_ca9a
bit 0, a
jr nz, .asm_caa4
@@ -1450,10 +1454,10 @@ ModifyEventFlags: ; ca92 (3:4a92)
sla c
jr .asm_ca9a
.asm_caa4
- ld a, [wd3d1]
+ ld a, [wLoadedFlagBits]
and c
ld c, a
- ld a, [wd3d1]
+ ld a, [wLoadedFlagBits]
cpl
and [hl]
or c
@@ -1481,20 +1485,20 @@ Func_cab3: ; cab3 (3:4ab3)
INCROM $cac2, $cac5
-SetEventFlags: ; cac5 (3:4ac5)
+MaxOutEventFlag: ; cac5 (3:4ac5)
push bc
ld c, $ff
- call ModifyEventFlags
+ call SetEventFlagValue
pop bc
ret
; 0xcacd
INCROM $cacd, $cad0
-Func_cad0: ; cad0 (3:4ad0)
+ZeroOutEventFlag: ; cad0 (3:4ad0)
push bc
ld c, $0
- call ModifyEventFlags
+ call SetEventFlagValue
pop bc
ret
@@ -1505,7 +1509,7 @@ Func_cad8: ; cad8 (3:4ad8)
ld bc, $0008
.asm_cae0
ld a, [hli]
- call CheckIfEventFlagSet
+ call GetEventFlagValue
jr z, .asm_cae7
inc b
@@ -1545,7 +1549,8 @@ Func_cad8: ; cad8 (3:4ad8)
INCROM $cb15, $cb1d
-GetEventFlagMod: ; cb1d (3:4b1d)
+; returns wEventFlags byte in hl, related bits in wLoadedFlagBits
+GetEventFlag: ; cb1d (3:4b1d)
push bc
ld c, a
ld b, $0
@@ -1556,7 +1561,7 @@ GetEventFlagMod: ; cb1d (3:4b1d)
ld a, [hli]
ld c, a
ld a, [hl]
- ld [wd3d1], a
+ ld [wLoadedFlagBits], a
ld b, $0
ld hl, wEventFlags
add hl, bc
@@ -1565,7 +1570,61 @@ GetEventFlagMod: ; cb1d (3:4b1d)
; offset - bytes to set or reset
EventFlagMods: ; cb37 (3:4b37)
- INCROM $cb37, $cc32
+ const_def
+ flag_def EVENT_FLAG_00, $3f, %10000000
+ flag_def EVENT_FLAG_01, $3f, %01000000
+ flag_def EVENT_FLAG_02, $3f, %00100000
+ flag_def EVENT_FLAG_03, $3f, %00010000
+ flag_def EVENT_FLAG_04, $3f, %00001000
+ flag_def EVENT_FLAG_05, $3f, %00000100
+ flag_def EVENT_FLAG_06, $3f, %00000010
+ flag_def EVENT_FLAG_07, $3f, %00000001
+ flag_def EVENT_FLAG_08, $00, %10000000
+ flag_def EVENT_FLAG_09, $00, %01000000
+ flag_def EVENT_FLAG_0A, $00, %00100000
+ flag_def EVENT_BEAT_AMY, $00, %00010000
+ flag_def EVENT_FLAG_0C, $00, %00001000
+ flag_def EVENT_FLAG_0D, $00, %00000100
+ flag_def EVENT_FLAG_0E, $00, %00000010
+ flag_def EVENT_FLAG_0F, $00, %00000001
+ flag_def EVENT_FLAG_10, $00, %11111111
+ flag_def EVENT_FLAG_11, $01, %11110000
+ flag_def EVENT_FLAG_12, $01, %00001111
+ flag_def EVENT_FLAG_13, $02, %11000000
+ flag_def EVENT_FLAG_14, $02, %00110000
+ flag_def EVENT_BEAT_SARA, $02, %00001000
+ flag_def EVENT_BEAT_AMANDA, $02, %00000100
+ flag_def EVENT_FLAG_17, $03, %11110000
+ flag_def EVENT_FLAG_18, $03, %00001111
+ flag_def EVENT_FLAG_19, $04, %11110000
+ flag_def EVENT_FLAG_1A, $04, %00001111
+ flag_def EVENT_FLAG_1B, $05, %10000000
+ flag_def EVENT_FLAG_1C, $05, %01000000
+ flag_def EVENT_FLAG_1D, $05, %00100000
+ flag_def EVENT_FLAG_1E, $05, %00010000
+ flag_def EVENT_FLAG_1F, $05, %00001111
+ flag_def EVENT_FLAG_20, $06, %11110000
+ flag_def EVENT_FLAG_21, $06, %00001100
+ flag_def EVENT_FLAG_22, $06, %00000010
+ flag_def EVENT_FLAG_23, $06, %00000001
+ flag_def EVENT_FLAG_24, $07, %11000000
+ flag_def EVENT_FLAG_25, $07, %00100000
+ flag_def EVENT_FLAG_26, $07, %00010000
+ flag_def EVENT_FLAG_27, $07, %00001000
+ flag_def EVENT_FLAG_28, $07, %00000100
+ flag_def EVENT_FLAG_29, $07, %00000010
+ flag_def EVENT_FLAG_2A, $07, %00000001
+ flag_def EVENT_FLAG_2B, $08, %11111111
+ flag_def EVENT_FLAG_2C, $09, %11100000
+ flag_def EVENT_FLAG_2D, $09, %00011111
+ flag_def EVENT_FLAG_2E, $0a, %11110000
+ flag_def EVENT_FLAG_2F, $0a, %00001000
+ flag_def EVENT_FLAG_30, $0a, %00000100
+ flag_def EVENT_FLAG_31, $0a, %00000011
+ flag_def EVENT_FLAG_32, $0b, %10000000
+ flag_def EVENT_JOSHUA_STATE, $0b, %01110000
+
+ INCROM $cb9f, $cc32
Func_cc32: ; cc32 (3:4c32)
push hl
@@ -1669,14 +1728,14 @@ GetOWSArgsAfterPointer: ; cca0 (3:4ca0)
or b
ret
-Func_ccb3: ; ccb3 (3:4cb3)
+SetScriptControlBytePass: ; ccb3 (3:4cb3)
ld a, $ff
- ld [wd415], a
+ ld [wScriptControlByte], a
ret
-Func_ccb9: ; ccb9 (3:4cb9)
+SetScriptControlByteFail: ; ccb9 (3:4cb9)
xor a
- ld [wd415], a
+ ld [wScriptControlByte], a
ret
OWScript_EndScriptLoop1: ; ccbe (3:4cbe)
@@ -1693,12 +1752,12 @@ OWScript_EndScriptLoop10: ; ccbe (3:4cbe)
ld [wBreakOWScriptLoop], a
jp IncreaseOWScriptPointerBy1
-OWScript_CloseTextBox: ; ccc6 (3:4cc6)
- call CloseDialogueBox
+OWScript_CloseAdvancedTextBox: ; ccc6 (3:4cc6)
+ call CloseAdvancedDialogueBox
jp IncreaseOWScriptPointerBy1
OWScript_EndScriptCloseText: ; cccc (3:4ccc)
- call OWScript_CloseTextBox
+ call OWScript_CloseAdvancedTextBox
call OWScript_EndScriptLoop1
pop hl
ret
@@ -1726,7 +1785,7 @@ OWScript_AskQuestionJump: ; cce9 (3:4ce9)
ld h, b
call Func_c8ed
ld a, [hCurMenuItem]
- ld [wd415], a
+ ld [wScriptControlByte], a
jr c, .asm_ccfe
call GetOWSArgs3AfterPointer
jr z, .asm_ccfe
@@ -1802,12 +1861,13 @@ Func_cd76: ; cd76 (3:4d76)
set 6, [hl]
jp IncreaseOWScriptPointerBy1
-Func_cd83: ; cd83 (3:4d83)
- ld a, [wd415]
+; prints text arg 1 or arg 2 depending on wScriptControlByte.
+OWScript_PrintVariableText: ; cd83 (3:4d83)
+ ld a, [wScriptControlByte]
or a
- jr nz, .asm_cd8c
+ jr nz, .printText
call GetOWSArgs3AfterPointer
-.asm_cd8c
+.printText
ld l, c
ld h, b
call Func_cc32
@@ -1828,7 +1888,7 @@ Unknown_cd98:
jp IncreaseOWScriptPointerBy7
Func_cda8: ; cda8 (3:4da8)
- ld a, [wd415]
+ ld a, [wScriptControlByte]
or a
jr nz, .asm_cdb1
call GetOWSArgs3AfterPointer
@@ -1842,7 +1902,7 @@ OWScript_PrintTextCloseBox: ; cdb9 (3:4db9)
ld l, c
ld h, b
call Func_cc32
- call CloseDialogueBox
+ call CloseAdvancedDialogueBox
ld a, $1
ld [wBreakOWScriptLoop], a
call IncreaseOWScriptPointerBy3
@@ -1950,8 +2010,8 @@ Func_ce6f: ; ce6f (3:4e6f)
pop af
jr asm_ce5d
-Func_ce84: ; ce84 (3:4e84)
- call Func_c135
+OWScript_CloseTextBox: ; ce84 (3:4e84)
+ call CloseTextBox
jp IncreaseOWScriptPointerBy1
; args: booster pack index, booster pack index, booster pack index
@@ -2041,11 +2101,11 @@ asm_cf16
jr nz, asm_cf1f
asm_cf19
- call Func_ccb9
+ call SetScriptControlByteFail
jp IncreaseOWScriptPointerBy4
asm_cf1f
- call Func_ccb3
+ call SetScriptControlBytePass
call GetOWSArgs2AfterPointer
jr z, asm_cf2a
jp SetOWScriptPointer
@@ -2099,11 +2159,11 @@ Func_cf53: ; cf53 (3:4f53)
or a
jr nz, Func_cf6d
Func_cf67: ; cf67 (3:4f67)
- call Func_ccb9
+ call SetScriptControlByteFail
jp IncreaseOWScriptPointerBy3
Func_cf6d: ; cf6d (3:4f6d)
- call Func_ccb3
+ call SetScriptControlBytePass
call GetOWSArgs1AfterPointer
jr z, .asm_cf78
jp SetOWScriptPointer
@@ -2249,7 +2309,7 @@ Func_d03f: ; d03f (3:503f)
call RemoveCardFromCollection
jp IncreaseOWScriptPointerBy1
-OWScript_ScriptJump: ; d049 (3:5049)
+OWScript_Jump: ; d049 (3:5049)
call GetOWSArgs1AfterPointer
jp SetOWScriptPointer
@@ -2285,6 +2345,8 @@ OWScript_SetDialogName: ; d080 (3:5080)
farcall SetNPCDialogName
jp IncreaseOWScriptPointerBy2
+; Calls another OWSequence with a specified NPC
+; Not confident enough to give it a name yet
Func_d088: ; d088 (3:5088)
ld a, c
ld [wd3ab], a
@@ -2341,20 +2403,20 @@ Func_d0d9: ; d0d9 (3:50d9)
farcall Func_1c477
ld a, e
cp c
- jp nz, Func_d48a
+ jp nz, ScriptEventFailedNoJump
ld a, d
cp b
- jp nz, Func_d48a
- jp Func_d490
+ jp nz, ScriptEventFailedNoJump
+ jp ScriptEventPassedTryJump
Func_d0f2: ; d0f2 (3:50f2)
ld a, [wPlayerXCoord]
cp c
- jp nz, Func_d48a
+ jp nz, ScriptEventFailedNoJump
ld a, [wPlayerYCoord]
cp b
- jp nz, Func_d48a
- jp Func_d490
+ jp nz, ScriptEventFailedNoJump
+ jp ScriptEventPassedTryJump
Func_d103: ; d103 (3:5103)
ld a, [wd3aa]
@@ -2507,7 +2569,7 @@ Func_d209: ; d209 (3:5209)
ld hl, $5240
add hl, bc
ld a, [hl]
- call SetEventFlags
+ call MaxOutEventFlag
pop bc
ld hl, $5234
ld a, c
@@ -2726,9 +2788,9 @@ Func_d3b9: ; d3b9 (3:53b9)
set 6, [hl]
jp IncreaseOWScriptPointerBy1
-Func_d3c9: ; d3c9 (3:53c9)
+OWScript_GivePCPack: ; d3c9 (3:53c9)
ld a, c
- farcall Func_10a70
+ farcall GivePCPack
jp IncreaseOWScriptPointerBy2
Func_d3d1: ; d3d1 (3:53d1)
@@ -2803,119 +2865,126 @@ Func_d43d: ; d43d (3:543d)
set 6, [hl]
jp IncreaseOWScriptPointerBy1
-OWScript_CustomModifyEventFlags: ; d44a (3:544a)
+; sets the event flag in arg 1 to the value in arg 2
+OWScript_SetFlagValue: ; d44a (3:544a)
ld a, c
ld c, b
- call ModifyEventFlags
+ call SetEventFlagValue
jp IncreaseOWScriptPointerBy3
-Func_d452: ; d452 (3:5452)
+OWScript_IncrementFlagValue: ; d452 (3:5452)
ld a, c
push af
- call CheckIfEventFlagSet
+ call GetEventFlagValue
inc a
ld c, a
pop af
- call ModifyEventFlags
+ call SetEventFlagValue
jp IncreaseOWScriptPointerBy2
-Func_d460: ; d460 (3:5460)
+OWScript_JumpIfFlagZero1: ; d460 (3:5460)
ld a, c
- call CheckIfEventFlagSet
+ call GetEventFlagValue
or a
- jr z, asm_d46d
-asm_d467
- call Func_ccb9
+ jr z, OWScript_JumpIfFlagZero1.passTryJump
+
+.fail
+ call SetScriptControlByteFail ; 0 out wScriptControlByte
jp IncreaseOWScriptPointerBy4
-asm_d46d
- call Func_ccb3
+.passTryJump
+ call SetScriptControlBytePass ; ff wScriptControlByte
call GetOWSArgs2AfterPointer
- jr z, .asm_d478
+ jr z, .noJumpTarget
jp SetOWScriptPointer
-.asm_d478
+.noJumpTarget
jp IncreaseOWScriptPointerBy4
-OWScript_JumpIfFlagSet: ; d47b (3:547b)
+OWScript_JumpIfFlagNonzero1: ; d47b (3:547b)
ld a, c
- call CheckIfEventFlagSet
+ call GetEventFlagValue
or a
- jr nz, asm_d46d
- jr asm_d467
+ jr nz, OWScript_JumpIfFlagZero1.passTryJump
+ jr OWScript_JumpIfFlagZero1.fail
-Func_d484: ; d484 (3:5484)
- call Func_d4b6
+; args - event flag, value, jump address
+OWScript_JumpIfFlagEqual: ; d484 (3:5484)
+ call GetEventFlagValueBC
cp c
- jr z, Func_d490
+ jr z, ScriptEventPassedTryJump
-Func_d48a: ; d48a (3:548a)
- call Func_ccb9
+ScriptEventFailedNoJump ; d48a (3:548a)
+ call SetScriptControlByteFail
jp IncreaseOWScriptPointerBy5
-Func_d490: ; d490 (3:5490)
- call Func_ccb3
+ScriptEventPassedTryJump ; d490 (3:5490)
+ call SetScriptControlBytePass
call GetOWSArgs3AfterPointer
- jr z, .asm_d49b
+ jr z, .noJumpAddress
jp SetOWScriptPointer
-.asm_d49b
+.noJumpAddress
jp IncreaseOWScriptPointerBy5
-Func_d49e: ; d49e (3:549e)
- call Func_d4b6
+OWScript_JumpIfFlagNotEqual: ; d49e (3:549e)
+ call GetEventFlagValueBC
cp c
- jr nz, Func_d490
- jr Func_d48a
+ jr nz, ScriptEventPassedTryJump
+ jr ScriptEventFailedNoJump
-Func_d4a6: ; d4a6 (3:54a6)
- call Func_d4b6
+OWScript_JumpIfFlagNotLessThan: ; d4a6 (3:54a6)
+ call GetEventFlagValueBC
cp c
- jr nc, Func_d490
- jr Func_d48a
+ jr nc, ScriptEventPassedTryJump
+ jr ScriptEventFailedNoJump
-Func_d4ae: ; d4ae (3:54ae)
- call Func_d4b6
+OWScript_JumpIfFlagLessThan: ; d4ae (3:54ae)
+ call GetEventFlagValueBC
cp c
- jr c, Func_d490 ; 0xd4b2 $dc
- jr Func_d48a ; 0xd4b4 $d4
+ jr c, ScriptEventPassedTryJump
+ jr ScriptEventFailedNoJump
-Func_d4b6: ; d4b6 (3:54b6)
+; Gets event flag at c (OWScript defaults)
+; c takes on the value of b as a side effect
+GetEventFlagValueBC: ; d4b6 (3:54b6)
ld a, c
ld c, b
- call CheckIfEventFlagSet
+ call GetEventFlagValue
ret
-OWScript_SetEventFlags: ; d4bc (3:54bc)
+OWScript_MaxOutFlagValue: ; d4bc (3:54bc)
ld a, c
- call SetEventFlags
+ call MaxOutEventFlag
jp IncreaseOWScriptPointerBy2
-Func_d4c3: ; d4c3 (3:54c3)
+OWScript_ZeroOutFlagValue: ; d4c3 (3:54c3)
ld a, c
- call Func_cad0
+ call ZeroOutEventFlag
jp IncreaseOWScriptPointerBy2
-Func_d4ca: ; d4ca (3:54ca)
+OWScript_JumpIfFlagNonzero2: ; d4ca (3:54ca)
ld a, c
- call CheckIfEventFlagSet
+ call GetEventFlagValue
or a
- jr z, asm_d4e6
-Func_d4d1:
- call Func_ccb3
+ jr z, OWScript_JumpIfFlagZero2.fail
+
+.passTryJump:
+ call SetScriptControlBytePass
call GetOWSArgs2AfterPointer
- jr z, .asm_d4dc
+ jr z, .noJumpArgs
jp SetOWScriptPointer
-.asm_d4dc
+.noJumpArgs
jp IncreaseOWScriptPointerBy4
-OWScript_JumpIfFlagNotSet:
+OWScript_JumpIfFlagZero2:
ld a, c
- call CheckIfEventFlagSet
+ call GetEventFlagValue
or a
- jr z, Func_d4d1
-asm_d4e6
- call Func_ccb9
+ jr z, OWScript_JumpIfFlagNonzero2.passTryJump
+
+.fail
+ call SetScriptControlByteFail
jp IncreaseOWScriptPointerBy4
; 0xd4ec
@@ -2970,9 +3039,9 @@ OWSequence_d753: ; d753 (3:5753)
db $02
run_script OWScript_PrintTextString
tx Text05e3
- run_script OWScript_CloseTextBox
- run_script Func_d088 ; run OWSequence with given npc (ID corresponds to a row in the wd34a table, i dont know why they correspond to what number though)
- db $07
+ run_script OWScript_CloseAdvancedTextBox
+ run_script Func_d088
+ db SAM
dw OWSequence_d779
run_script OWScript_EndScriptLoop1
ret
@@ -2988,7 +3057,7 @@ OWSequence_d779: ; d779 (03:5779)
db DRMASON
run_script OWScript_PrintTextString
tx Text05e5
- run_script Func_ce84
+ run_script OWScript_CloseTextBox
run_script Func_ce4a
db $82
db $58
@@ -2996,7 +3065,7 @@ OWSequence_d779: ; d779 (03:5779)
db $01
run_script Func_d055
db $03
- run_script OWScript_CloseTextBox
+ run_script OWScript_CloseAdvancedTextBox
run_script Func_d088
db $01
db $94
@@ -3024,21 +3093,25 @@ WaterClubAfterDuel: ;e157 (3:6157)
ret
.after_duel_table
- dw $1f1f
+ db SARA
+ db SARA
dw OWSequence_BeatSara
dw OWSequence_LostToSara
- dw $2020
+ db AMANDA
+ db AMANDA
dw OWSequence_BeatAmanda
dw OWSequence_LostToAmanda
- dw $2121
- dw $626c
- dw $6260
+ db JOSHUA
+ db JOSHUA
+ dw OWSequence_BeatJoshua
+ dw OWSequence_LostToJoshua
- dw $2222
- dw $6322
- dw $6344
+ db AMY
+ db AMY
+ dw OWSequence_BeatAmy
+ dw OWSequence_LostToAmy
db $00
OWSequence_Sara: ; e177 (3:6177)
@@ -3055,14 +3128,14 @@ OWSequence_Sara: ; e177 (3:6177)
run_script OWScript_PrintTextString
tx Text042f
run_script OWScript_StartBattle
- db 2
+ db PRIZES_2
db WATERFRONT_POKEMON_DECK_ID ; 6189
db MUSIC_DUEL_THEME_1
run_script OWScript_EndScriptCloseText
OWSequence_BeatSara: ; e18c (3:618c)
start_script
- run_script OWScript_SetEventFlags
+ run_script OWScript_MaxOutFlagValue
db EVENT_BEAT_SARA
run_script OWScript_PrintTextString
tx Text0430
@@ -3093,14 +3166,14 @@ OWSequence_Amanda: ; e19e (03:619e)
run_script OWScript_PrintTextString
tx Text0436
run_script OWScript_StartBattle
- db 03
+ db PRIZES_3
db LONELY_FRIENDS_DECK_ID
db MUSIC_DUEL_THEME_1
run_script OWScript_EndScriptCloseText
OWSequence_BeatAmanda: ; e1b3 (03:61b3)
start_script
- run_script OWScript_SetEventFlags
+ run_script OWScript_MaxOutFlagValue
db EVENT_BEAT_AMANDA
run_script OWScript_PrintTextString
tx Text0437
@@ -3118,41 +3191,332 @@ OWSequence_LostToAmanda: ; e1c1 (03:61c1)
tx Text0439
OWSequence_NotReadyToSeeAmy:
- INCROM $e1c5, $e21c
+ start_script
+ run_script Func_d0f2
+ db $12
+ db $08
+ dw $61ec
+ run_script Func_d0f2
+ db $14
+ db $08
+ dw $61f2
+ run_script Func_d0f2
+ db $18
+ db $08
+ dw $61f8
+ run_script OWScript_MovePlayer
+ db $02
+ db $04
+ run_script Func_ce4a
+ db $13
+ db $62
+ run_script OWScript_PrintTextString
+ tx Text043a
+ run_script Func_d0f2
+ db $12
+ db $0a
+ dw $61fe
+ run_script Func_d0f2
+ db $14
+ db $0a
+ dw $6202
+ run_script Func_ce4a
+ db $15
+ db $62
+ run_script OWScript_EndScriptCloseText
+
+.ows_e1ec
+ run_script Func_ce4a
+ db $06
+ db $62
+ run_script OWScript_Jump
+ dw $61d5
+ run_script Func_ce4a
+ db $0b
+ db $62
+ run_script OWScript_Jump
+ dw $61d5
+ run_script Func_ce4a
+ db $0f
+ db $62
+ run_script OWScript_Jump
+ dw $61d5
+ run_script Func_ce4a
+ db $18
+ db $62
+ run_script OWScript_EndScriptCloseText
+; 0xe202
+
+ INCROM $e202, $e21c
OWSequence_Joshua:
start_script
- run_script OWScript_JumpIfFlagNotSet
+ run_script OWScript_JumpIfFlagZero2
db EVENT_BEAT_AMANDA
dw .sara_and_amanda_not_beaten
- run_script OWScript_JumpIfFlagNotSet
+ run_script OWScript_JumpIfFlagZero2
db EVENT_BEAT_SARA
dw .sara_and_amanda_not_beaten
- run_script OWScript_ScriptJump
+ run_script OWScript_Jump
dw .beat_sara_and_amanda
.sara_and_amanda_not_beaten
- run_script OWScript_CustomModifyEventFlags
- db $33 ; offset on flagmod table
- db $01 ; the control bit
+ run_script OWScript_SetFlagValue
+ db EVENT_JOSHUA_STATE
+ db JOSHUA_TALKED
run_script OWScript_PrintTextString
tx Text043b
run_script OWScript_EndScriptCloseText
+
.beat_sara_and_amanda
- run_script OWScript_JumpIfFlagSet
- db $33
- dw $623c
- run_script OWScript_CustomModifyEventFlags
- db $33
- db $01
+ run_script OWScript_JumpIfFlagNonzero1
+ db EVENT_JOSHUA_STATE
+ dw .already_talked
+ run_script OWScript_SetFlagValue
+ db EVENT_JOSHUA_STATE
+ db JOSHUA_TALKED
run_script OWScript_PrintTextString
tx Text043b
run_script OWScript_PrintTextString
tx Text043c
- run_script Func_d484
- db $33
+.already_talked
+ run_script OWScript_JumpIfFlagEqual
+ db EVENT_JOSHUA_STATE
+ db JOSHUA_TALKED
+ dw NO_JUMP
+ run_script OWScript_PrintVariableText
+ tx Text043d
+ tx Text043e
+ run_script OWScript_AskQuestionJump
+ tx Text043f
+ dw .startDuel
+ run_script OWScript_JumpIfFlagEqual
+ db EVENT_JOSHUA_STATE
+ db JOSHUA_TALKED
+ dw NO_JUMP
+ run_script OWScript_PrintVariableText
+ tx Text0440
+ tx Text0441
+ run_script OWScript_EndScriptCloseText
+
+.startDuel:
+ run_script OWScript_PrintTextString
+ tx Text0442
+ run_script OWScript_GivePCPack
+ db $04
+ run_script OWScript_StartBattle
+ db PRIZES_4
+ db SOUND_OF_THE_WAVES_DECK_ID
+ db MUSIC_DUEL_THEME_1
+ run_script OWScript_EndScriptCloseText
+
+OWSequence_LostToJoshua: ; e260 (3:6260)
+ start_script
+ run_script OWScript_JumpIfFlagEqual
+ db EVENT_JOSHUA_STATE
+ db JOSHUA_TALKED
+ dw NO_JUMP
+ run_script OWScript_PrintVariableText
+ tx Text0443
+ tx Text0444
+ run_script OWScript_EndScriptCloseText
+
+OWSequence_BeatJoshua: ; e26c (3:626c)
+ start_script
+ run_script OWScript_JumpIfFlagEqual
+ db EVENT_JOSHUA_STATE
+ db JOSHUA_TALKED
+ dw NO_JUMP
+ run_script OWScript_PrintVariableText
+ tx Text0445
+ tx Text0446
+ run_script OWScript_GiveBoosterPacks
+ db BOOSTER_MYSTERY_WATER_COLORLESS
+ db BOOSTER_MYSTERY_WATER_COLORLESS
+ db NO_BOOSTER
+ run_script OWScript_JumpIfFlagEqual
+ db EVENT_JOSHUA_STATE
+ db JOSHUA_TALKED
+ dw NO_JUMP
+ run_script OWScript_PrintVariableText
+ tx Text0447
+ tx Text0448
+ run_script OWScript_JumpIfFlagNotEqual
+ db EVENT_JOSHUA_STATE
+ db JOSHUA_BEATEN
+ dw .firstJoshuaWin
+ run_script OWScript_EndScriptCloseText
+
+.firstJoshuaWin:
+ run_script OWScript_SetFlagValue
+ db EVENT_JOSHUA_STATE
+ db JOSHUA_BEATEN
+ run_script OWScript_PrintTextString
+ tx Text0449
+ run_script OWScript_CloseTextBox
+ run_script Func_ce26
+ dw $62a1
+ run_script OWScript_PrintTextString
+ tx Text044a
+ run_script Func_cfc6
+ db $00
+ run_script OWScript_CloseAdvancedTextBox
+ run_script Func_d088
+ db AMY
+ dw OWSequence_MeetAmy
+ run_script OWScript_EndScriptLoop1
+; 0xe2a0
+
+ INCROM $e2a0, $e2d1
+
+OWSequence_MeetAmy: ; e2d1 (3:62d1)
+ start_script
+ run_script OWScript_PrintTextString
+ tx Text044b
+ run_script OWScript_SetDialogName
+ db JOSHUA
+ run_script OWScript_PrintTextString
+ tx Text044c
+ run_script OWScript_SetDialogName
+ db AMY
+ run_script OWScript_PrintTextString
+ tx Text044d
+ run_script OWScript_CloseTextBox
+ run_script Func_d095
+ db $09
+ db $2f
+ db $10
+ run_script OWScript_DoFrames
+ db $20
+ run_script Func_d095
+ db $04
+ db $0e
+ db $00
+ run_script Func_d0be
+ db $14
+ db $04
+ run_script Func_d055
+ db $03
+ run_script OWScript_MovePlayer
+ db $03
db $01
+ run_script Func_d055
+ db $00
+ run_script OWScript_MovePlayer
+ db $00
+ db $01
+ run_script OWScript_MovePlayer
+ db $00
+ db $01
+ run_script Func_ce6f
+ db $21
+ db $ab
+ db $62
+ run_script OWScript_PrintTextString
+ tx Text044e
+ run_script OWScript_Jump
+ dw OWSequence_Amy.askConfirmDuel
+
+OWSequence_Amy: ; e304 (3:6304)
+ start_script
+ run_script OWScript_JumpIfFlagNonzero2
+ db EVENT_BEAT_AMY
+ dw OWJump_TalkToAmyAgain
+ run_script OWScript_PrintTextString
+ tx Text044f
+.askConfirmDuel
+ run_script OWScript_AskQuestionJump
+ tx Text0450
+ dw .startDuel
+
+.denyDuel
+ run_script OWScript_PrintTextString
+ tx Text0451
+ run_script Func_d0d9
+ db $14
+ db $04
+ dw OWSequence_LostToAmy.ows_e34e
+ run_script OWScript_EndScriptCloseText
+
+.startDuel
+ run_script OWScript_PrintTextString
+ tx Text0452
+ run_script OWScript_StartBattle
+ db PRIZES_6
+ db GO_GO_RAIN_DANCE_DECK_ID
+ db MUSIC_DUEL_THEME_2
+ run_script OWScript_EndScriptCloseText
+
+OWSequence_BeatAmy: ; e322 (3:6322)
+ start_script
+ run_script OWScript_PrintTextString
+ tx Text0453
+ run_script OWScript_JumpIfFlagNonzero2
+ db EVENT_BEAT_AMY
+ dw .beatAmyCommon
+ run_script OWScript_PrintTextString
+ tx Text0454
+ run_script OWScript_MaxOutFlagValue
+ db EVENT_BEAT_AMY
+ run_script Func_d04f
+ run_script Func_d125
+ db EVENT_BEAT_AMY
+ run_script Func_d435
+ db $03
+ run_script OWScript_PrintTextString
+ tx Text0455
+.beatAmyCommon
+ run_script OWScript_GiveBoosterPacks
+ db BOOSTER_LABORATORY_WATER
+ db BOOSTER_LABORATORY_WATER
+ db NO_BOOSTER
+ run_script OWScript_PrintTextString
+ tx Text0456
+ run_script Func_d0d9
+ db $14
+ db $04
+ dw OWSequence_LostToAmy.ows_e34e
+ run_script OWScript_EndScriptCloseText
+
+OWSequence_LostToAmy: ; e344 (3:6344)
+ start_script
+ run_script OWScript_PrintTextString
+ tx Text0457
+ run_script Func_d0d9
+ db $14
+ db $04
+ dw .ows_e34e
+ run_script OWScript_EndScriptCloseText
+
+.ows_e34e
+ run_script Func_d095
+ db $08
+ db $2e
+ db $10
+ run_script Func_d0be
+ db $16
+ db $04
+ run_script OWScript_EndScriptCloseText
+
+OWJump_TalkToAmyAgain: ; e356 (3:6356)
+ run_script OWScript_PrintTextString
+ tx Text0458
+ run_script OWScript_AskQuestionJump
+ tx Text0450
+ dw .startDuel
+ run_script OWScript_Jump
+ dw OWSequence_Amy.denyDuel
+
+.startDuel
+ run_script OWScript_PrintTextString
+ tx Text0459
+ run_script OWScript_StartBattle
+ db PRIZES_6
+ db GO_GO_RAIN_DANCE_DECK_ID
+ db MUSIC_DUEL_THEME_2
+ run_script OWScript_EndScriptCloseText
+; 0xe369
- INCROM $e23f, $e52c
+ INCROM $e369, $e52c
FindEndOfBattleScript: ; e52c (3:652c)
ld c, $0
diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm
index 2ebb399..0c91398 100644
--- a/src/engine/bank04.asm
+++ b/src/engine/bank04.asm
@@ -239,38 +239,39 @@ Func_10548: ; 10548 (4:4548)
Func_10756: ; 10756 (4:4756)
INCROM $10756, $10a70
-Func_10a70: ; 10a70 (4:4a70)
+; gives the pc pack described in a
+GivePCPack: ; 10a70 (4:4a70)
push hl
push bc
push de
ld b, a
- ld c, $f
+ ld c, $f ; number of packs possible
ld hl, wPCPacks
-.asm_10a79
+.searchLoop1
ld a, [hli]
and $7f
cp b
- jr z, .asm_10a97
+ jr z, .quit
dec c
- jr nz, .asm_10a79
+ jr nz, .searchLoop1
ld c, $f
ld hl, wPCPacks
-.asm_10a87
+.findFreeSlotLoop
ld a, [hl]
and $7f
- jr z, .asm_10a93
+ jr z, .foundFreeSlot
inc hl
dec c
- jr nz, .asm_10a87
+ jr nz, .findFreeSlotLoop
debug_ret
- jr .asm_10a97
+ jr .quit
-.asm_10a93
+.foundFreeSlot
ld a, b
- or $80
+ or $80 ; mark pack as unopened
ld [hl], a
-.asm_10a97
+.quit
pop de
pop bc
pop hl
@@ -332,7 +333,7 @@ Func_10dba: ; 10dba (4:4dba)
push af
ld hl, $4df0
call JumpToFunctionInTable
- farcall Func_c135
+ farcall CloseTextBox
call DoFrameIfLCDEnabled
pop af
ret
@@ -457,7 +458,7 @@ Func_10f4a: ; 10f4a (4:4f4a)
jr nz, .asm_10f5f
ld c, a
ld a, $1e
- farcall CheckIfEventFlagSet
+ farcall GetEventFlagValue
or a
ld a, c
jr nz, .asm_10f5f
@@ -530,7 +531,7 @@ Func_10fde: ; 10fde (4:4fde)
ld [wd33c], a
call Func_12ab5
ld a, $3e
- farcall CheckIfEventFlagSet
+ farcall GetEventFlagValue
or a
jr nz, .asm_11015
ld c, SPRITE_ANIM_FIELD_0F
@@ -969,17 +970,17 @@ Func_11f4e: ; 11f4e (4:5f4e)
OverworldScriptTable: ; 1217b (4:617b)
dw OWScript_EndScriptLoop1
- dw OWScript_CloseTextBox
+ dw OWScript_CloseAdvancedTextBox
dw OWScript_PrintTextString
dw Func_ccdc
dw OWScript_AskQuestionJump
dw OWScript_StartBattle
- dw Func_cd83
+ dw OWScript_PrintVariableText
dw Func_cda8
dw OWScript_PrintTextCloseBox
dw Func_cdcb
dw Func_ce26
- dw Func_ce84
+ dw OWScript_CloseTextBox
dw OWScript_GiveBoosterPacks
dw Func_cf0c
dw Func_cf12
@@ -995,7 +996,7 @@ OverworldScriptTable: ; 1217b (4:617b)
dw Func_d025
dw Func_d032
dw Func_d03f
- dw OWScript_ScriptJump
+ dw OWScript_Jump
dw Func_d04f
dw Func_d055
dw OWScript_MovePlayer
@@ -1034,7 +1035,7 @@ OverworldScriptTable: ; 1217b (4:617b)
dw Func_cd76
dw Func_d39d
dw Func_d3b9
- dw Func_d3c9
+ dw OWScript_GivePCPack
dw Func_d3d1
dw Func_d3d4
dw Func_d3e0
@@ -1056,18 +1057,18 @@ OverworldScriptTable: ; 1217b (4:617b)
dw OWScript_EndScriptLoop4
dw OWScript_EndScriptLoop5
dw OWScript_EndScriptLoop6
- dw OWScript_CustomModifyEventFlags
- dw Func_d460
- dw OWScript_JumpIfFlagSet
- dw Func_d484
- dw Func_d49e
- dw Func_d4a6
- dw Func_d4ae
- dw OWScript_SetEventFlags
- dw Func_d4c3
- dw Func_d4ca
- dw OWScript_JumpIfFlagNotSet
- dw Func_d452
+ dw OWScript_SetFlagValue
+ dw OWScript_JumpIfFlagZero1
+ dw OWScript_JumpIfFlagNonzero1
+ dw OWScript_JumpIfFlagEqual
+ dw OWScript_JumpIfFlagNotEqual
+ dw OWScript_JumpIfFlagNotLessThan
+ dw OWScript_JumpIfFlagLessThan
+ dw OWScript_MaxOutFlagValue
+ dw OWScript_ZeroOutFlagValue
+ dw OWScript_JumpIfFlagNonzero2
+ dw OWScript_JumpIfFlagZero2
+ dw OWScript_IncrementFlagValue
dw OWScript_EndScriptLoop7
dw OWScript_EndScriptLoop8
dw OWScript_EndScriptLoop9
diff --git a/src/engine/bank07.asm b/src/engine/bank07.asm
index ecc281d..25534f1 100644
--- a/src/engine/bank07.asm
+++ b/src/engine/bank07.asm
@@ -256,7 +256,22 @@ Func_1c58e: ; 1c58e (7:458e)
INCROM $1c5b9, $1c5e9
Func_1c5e9: ; 1c5e9 (7:45e9)
- INCROM $1c5e9, $1c610
+ push hl
+ push bc
+ ld a, [wd3aa]
+ ld l, $07
+ call Func_39ad
+ ld a, [hl]
+ ld bc, $fffd
+ add hl, bc
+ ld [hl], a
+ call Func_1c58e
+ pop bc
+ pop hl
+ ret
+; 0x1c5ff
+
+ INCROM $1c5ff, $1c610
Func_1c610: ; 1c610 (7:4610)
INCROM $1c610, $1c6f8
diff --git a/src/engine/bank1c.asm b/src/engine/bank1c.asm
index 7b5cbc5..7fa5bf4 100644
--- a/src/engine/bank1c.asm
+++ b/src/engine/bank1c.asm
@@ -4,7 +4,7 @@ Func_70000: ; 70000 (1c:4000)
ret nz
ld b, $1
ld a, $22
- farcall CheckIfEventFlagSet
+ farcall GetEventFlagValue
or a
jr z, .asm_70013
ld b, $2
@@ -294,7 +294,7 @@ Func_70214: ; 70214 (1c:4214)
ret nz
ld hl, Unknown_7024a
ld a, $10
- farcall CheckIfEventFlagSet
+ farcall GetEventFlagValue
ld c, $8
.asm_70227
push bc
diff --git a/src/engine/home.asm b/src/engine/home.asm
index 450d9c1..62eaa62 100644
--- a/src/engine/home.asm
+++ b/src/engine/home.asm
@@ -1586,7 +1586,7 @@ Func_08ef: ; 08ef (0:08ef)
ld hl, wcadc
ld a, [hl]
or a
- jr z, .asm_902 ; for the purpose of this, we made it 0 earlier
+ jr z, .asm_902
dec [hl]
inc hl
.asm_8f8
@@ -1605,9 +1605,9 @@ Func_08ef: ; 08ef (0:08ef)
ld c, [hl]
inc hl
ld b, [hl]
- inc hl ; get pointer from wcad6/7
- dec [hl] ; dec wcad8 (was 1)
- inc hl ; wcad9
+ inc hl
+ dec [hl]
+ inc hl
jr nz, .asm_914
dec hl
ld [hl], $8
@@ -10803,7 +10803,7 @@ GameEvent_Credits: ; 3911 (0:3911)
Func_3917: ; 3917 (0:3917)
ld a, $22
- farcall CheckIfEventFlagSet
+ farcall GetEventFlagValue
call EnableSRAM
ld [s0a00a], a
call DisableSRAM
diff --git a/src/macros/constants.asm b/src/macros/constants.asm
index 177fcd6..c841972 100644
--- a/src/macros/constants.asm
+++ b/src/macros/constants.asm
@@ -10,3 +10,10 @@ const: MACRO
\1 EQU const_value
const_value = const_value + 1
ENDM
+
+flag_def: MACRO
+\1 EQU const_value
+const_value = const_value + 1
+db \2
+db \3
+ENDM
diff --git a/src/macros/scripts.asm b/src/macros/scripts.asm
index 2fa15fb..2bf40e4 100644
--- a/src/macros/scripts.asm
+++ b/src/macros/scripts.asm
@@ -15,17 +15,17 @@ ENDM
const_def
const OWScript_EndScriptLoop1_index ; $00
- const OWScript_CloseTextBox_index ; $01
+ const OWScript_CloseAdvancedTextBox_index ; $01
const OWScript_PrintTextString_index ; $02
const Func_ccdc_index ; $03
const OWScript_AskQuestionJump_index ; $04
const OWScript_StartBattle_index ; $05
- const Func_cd83_index ; $06
+ const OWScript_PrintVariableText_index ; $06
const Func_cda8_index ; $07
const OWScript_PrintTextCloseBox_index ; $08
const Func_cdcb_index ; $09
const Func_ce26_index ; $0a
- const Func_ce84_index ; $0b
+ const OWScript_CloseTextBox_index ; $0b
const OWScript_GiveBoosterPacks_index ; $0c
const Func_cf0c_index ; $0d
const Func_cf12_index ; $0e
@@ -41,7 +41,7 @@ ENDM
const Func_d025_index ; $18
const Func_d032_index ; $19
const Func_d03f_index ; $1a
- const OWScript_ScriptJump_index ; $1b
+ const OWScript_Jump_index ; $1b
const Func_d04f_index ; $1c
const Func_d055_index ; $1d
const OWScript_MovePlayer_index ; $1e
@@ -80,7 +80,7 @@ ENDM
const Func_cd76_index ; $3f
const Func_d39d_index ; $40
const Func_d3b9_index ; $41
- const Func_d3c9_index ; $42
+ const OWScript_GivePCPack_index ; $42
const Func_d3d1_index ; $43
const Func_d3d4_index ; $44
const Func_d3e0_index ; $45
@@ -102,18 +102,18 @@ ENDM
const OWScript_EndScriptLoop4_index ; $55
const OWScript_EndScriptLoop5_index ; $56
const OWScript_EndScriptLoop6_index ; $57
- const OWScript_CustomModifyEventFlags_index ; $58
- const Func_d460_index ; $59
- const OWScript_JumpIfFlagSet_index ; $5a
- const Func_d484_index ; $5b
- const Func_d49e_index ; $5c
- const Func_d4a6_index ; $5d
- const Func_d4ae_index ; $5e
- const OWScript_SetEventFlags_index ; $5f
- const Func_d4c3_index ; $60
- const Func_d4ca_index ; $61
- const OWScript_JumpIfFlagNotSet_index ; $62
- const Func_d452_index ; $63
+ const OWScript_SetFlagValue_index ; $58
+ const OWScript_JumpIfFlagZero1_index ; $59
+ const OWScript_JumpIfFlagNonzero1_index ; $5a
+ const OWScript_JumpIfFlagEqual_index ; $5b
+ const OWScript_JumpIfFlagNotEqual_index ; $5c
+ const OWScript_JumpIfFlagNotLessThan_index ; $5d
+ const OWScript_JumpIfFlagLessThan_index ; $5e
+ const OWScript_MaxOutFlagValue_index ; $5f
+ const OWScript_ZeroOutFlagValue_index ; $60
+ const OWScript_JumpIfFlagNonzero2_index ; $61
+ const OWScript_JumpIfFlagZero2_index ; $62
+ const OWScript_IncrementFlagValue_index ; $63
const OWScript_EndScriptLoop7_index ; $64
const OWScript_EndScriptLoop8_index ; $65
const OWScript_EndScriptLoop9_index ; $66
diff --git a/src/wram.asm b/src/wram.asm
index 7ae9e59..a689451 100644
--- a/src/wram.asm
+++ b/src/wram.asm
@@ -1885,9 +1885,7 @@ wPCPackSelection:: ; d11d
; 7th bit of each pack corresponds to whether or not it's been read
wPCPacks:: ; d11e
- ds $c
-
- ds $3
+ ds $f
wPCLastDirectionPressed:: ; d12d
ds $1
@@ -2122,7 +2120,8 @@ wd3bb:: ; d3bb
wd3d0:: ; d3d0
ds $1
-wd3d1:: ; d3d1
+; the bits relevant to the currently worked on flag, obtained from EventFlagMods
+wLoadedFlagBits:: ; d3d1
ds $1
wEventFlags::
@@ -2138,7 +2137,8 @@ wBreakOWScriptLoop:: ; d412
wOWScriptPointer:: ; d413
ds $2
-wd415:: ; d415
+; generally set to ff when a flag check passes, 0 otherwise
+wScriptControlByte:: ; d415
ds $1
wd416:: ; d416