shithub: pokecrystal

Download patch

ref: 0988d69d9dfbf29a7866b52264107d8995465f1a
parent: a3870db643c1d120422468ec55e486a59f9b2803
author: yenatch <yenatch@gmail.com>
date: Thu Jul 4 01:37:20 EDT 2013

more scripting cleanup

--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -171,21 +171,21 @@
 	dw Script_unknown0xa9
 ; 0x96e05
 
-Unknown_0x96e05: ; 0x96e05
-	ld hl, $d434
-	set 2, [hl]
+StartScript: ; 0x96e05
+	ld hl, ScriptFlags
+	set SCRIPT_RUNNING, [hl]
 	ret
 ; 0x96e0b
 
-Unknown_0x96e0b: ; 0x96e0b
-	ld hl, $d434
-	bit 2, [hl]
+CheckScript: ; 0x96e0b
+	ld hl, ScriptFlags
+	bit SCRIPT_RUNNING, [hl]
 	ret
 ; 0x96e11
 
-Unknown_0x96e11: ; 0x96e11
-	ld hl, $d434
-	res 2, [hl]
+StopScript: ; 0x96e11
+	ld hl, ScriptFlags
+	res SCRIPT_RUNNING, [hl]
 	ret
 ; 0x96e17
 
@@ -877,7 +877,7 @@
 	ld a, [$d04d]
 	and a
 	ret z
-	jp $7b74
+	jp Script_end
 ; 0x9716b
 
 Script_talkaftercheck: ; 0x9716b
@@ -1038,9 +1038,9 @@
 	ld b, a
 	call $26c7
 	ret c
-	ld a, $2
-	ld [$d437], a
-	call Unknown_0x96e11
+	ld a, SCRIPT_WAIT_MOVEMENT
+	ld [ScriptMode], a
+	call StopScript
 	ret
 ; 0x97221
 
@@ -1375,7 +1375,7 @@
 	ld [$ffe0], a
 .asm_973a8
 	call GetScriptByte
-	ld [$d44d], a
+	ld [ScriptDelay], a
 	ld b, BANK(ShowEmoteScript)
 	ld de, ShowEmoteScript
 	jp ScriptCall
@@ -1559,7 +1559,7 @@
 	ld [$ff9f], a
 	ld a, $1
 	call $261b
-	call Unknown_0x96e11
+	call StopScript
 	ret
 ; 0x974a2
 
@@ -1826,7 +1826,7 @@
 	ld [$d44f], a
 	call GetScriptByte
 	ld [$d450], a
-	ld hl, $d434
+	ld hl, ScriptFlags
 	set 3, [hl]
 	ret
 ; 0x975c2
@@ -2833,7 +2833,7 @@
 	ld [$ff9f], a
 	ld a, $1
 	call $261b
-	call Unknown_0x96e11
+	call StopScript
 	ret
 .asm_97a4a
 	call GetScriptByte
@@ -2845,7 +2845,7 @@
 	ld [$ff9f], a
 	ld a, $1
 	call $261b
-	call Unknown_0x96e11
+	call StopScript
 	ret
 ; 0x97a65
 
@@ -2998,7 +2998,7 @@
 	ld [$ff9f], a
 	ld a, $1
 	call $261b
-	call Unknown_0x96e11
+	call StopScript
 	ret
 ; 0x97b16
 
@@ -3006,7 +3006,7 @@
 ; script command 0x92
 
 	call $7b08
-	jp $7b74
+	jp Script_end
 ; 0x97b1c
 
 Script_loadfont: ; 0x97b1c
@@ -3074,11 +3074,11 @@
 	call GetScriptByte
 	and a
 	jr z, .asm_97b50 ; 0x97b4b $3
-	ld [$d44d], a
+	ld [ScriptDelay], a
 .asm_97b50
-	ld c, $2
+	ld c, 2
 	call DelayFrames
-	ld hl, $d44d
+	ld hl, ScriptDelay
 	dec [hl]
 	jr nz, .asm_97b50 ; 0x97b59 $f5
 	ret
@@ -3092,11 +3092,11 @@
 	call GetScriptByte
 	and a
 	jr z, .asm_97b65 ; 0x97b60 $3
-	ld [$d44d], a
+	ld [ScriptDelay], a
 .asm_97b65
-	ld a, $3
-	ld [$d437], a
-	call Unknown_0x96e11
+	ld a, SCRIPT_WAIT
+	ld [ScriptMode], a
+	call StopScript
 	ret
 ; 0x97b6e
 
@@ -3105,7 +3105,7 @@
 ; parameters:
 ;     pointer (ScriptPointerLabelParam)
 
-	call Unknown_0x96e11
+	call StopScript
 	jp Script_2jump
 ; 0x97b74
 
@@ -3112,17 +3112,17 @@
 Script_end: ; 0x97b74
 ; script command 0x91
 
-	call $7b9a
-	jr c, .asm_97b7a ; 0x97b77 $1
+	call ExitScriptSubroutine
+	jr c, .asm_97b7a
 	ret
 .asm_97b7a
 	xor a
 	ld [ScriptRunning], a
-	ld a, $0
-	ld [$d437], a
-	ld hl, $d434
+	ld a, SCRIPT_OFF
+	ld [ScriptMode], a
+	ld hl, ScriptFlags
 	res 0, [hl]
-	call Unknown_0x96e11
+	call StopScript
 	ret
 ; 0x97b8c
 
@@ -3129,16 +3129,18 @@
 Script_return: ; 0x97b8c
 ; script command 0x90
 
-	call $7b9a
-	jr c, .asm_97b91 ; 0x97b8f $0
+	call ExitScriptSubroutine
+	jr c, .asm_97b91
 .asm_97b91
-	ld hl, $d434
+	ld hl, ScriptFlags
 	res 0, [hl]
-	call Unknown_0x96e11
+	call StopScript
 	ret
 ; 0x97b9a
 
-Unknown_0x97b9a: ; 0x97b9a
+ExitScriptSubroutine: ; 0x97b9a
+; Return carry if there's no parent to return to.
+
 	ld hl, $d43c
 	ld a, [hl]
 	and a
@@ -3173,11 +3175,11 @@
 	xor a
 	ld [$d43c], a
 	ld [ScriptRunning], a
-	ld a, $0
-	ld [$d437], a
-	ld hl, $d434
+	ld a, SCRIPT_OFF
+	ld [ScriptMode], a
+	ld hl, ScriptFlags
 	res 0, [hl]
-	call Unknown_0x96e11
+	call StopScript
 	ret
 ; 0x97bd5
 
@@ -3186,15 +3188,9 @@
 
 	ld hl, $cfbc
 	res 0, [hl]
-	ld a, BANK(HallOfFame1)
-	ld hl, HallOfFame1
-	rst $8
-	ld a, BANK(HallOfFame2)
-	ld hl, HallOfFame2
-	rst $8
-	ld a, BANK(HallOfFame3)
-	ld hl, HallOfFame3
-	rst $8
+	callba HallOfFame1
+	callba HallOfFame2
+	callba HallOfFame3
 	ld hl, $cfbc
 	set 0, [hl]
 	jr DisplayCredits
@@ -3211,7 +3207,7 @@
 	call $7bc0
 	ld a, $3
 	call $261b
-	call Unknown_0x96e11
+	call StopScript
 	ret
 ; 0x97c05
 
@@ -3224,7 +3220,7 @@
 	call GetScriptByte
 .asm_97c09
 	push af
-	ld c, $6
+	ld c, 6
 	call DelayFrames
 	pop af
 	dec a
--- a/wram.asm
+++ b/wram.asm
@@ -1526,8 +1526,19 @@
 OTPartyMon6Nickname: ; d421
 	ds 11
 
-SECTION "Scripting",BSS[$d438]
+SECTION "Scripting",BSS[$d434]
+ScriptFlags: ; d434
+SCRIPT_RUNNING EQU 2
+	ds 1
 
+	ds 2
+
+ScriptMode: ; d437
+SCRIPT_OFF EQU 0
+SCRIPT_READ EQU 1
+SCRIPT_WAIT_MOVEMENT EQU 2
+SCRIPT_WAIT EQU 3
+	ds 1
 ScriptRunning: ; d438
 	ds 1
 ScriptBank: ; d439
@@ -1534,6 +1545,11 @@
 	ds 1
 ScriptPos: ; d43a
 	ds 2
+
+	ds 17
+
+ScriptDelay: ; d44d
+	ds 1
 
 SECTION "Player",BSS[$d472]
 PlayerGender: ; d472
--