summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rwxr-xr-xengine/pinball_game/extra_ball.asm36
-rwxr-xr-xengine/pinball_game/object_collision/blue_stage_resolve_collision.asm4
-rwxr-xr-xengine/pinball_game/object_collision/red_stage_resolve_collision.asm4
3 files changed, 40 insertions, 4 deletions
diff --git a/engine/pinball_game/extra_ball.asm b/engine/pinball_game/extra_ball.asm
new file mode 100755
index 0000000..babec0a
--- /dev/null
+++ b/engine/pinball_game/extra_ball.asm
@@ -0,0 +1,36 @@
+HandleExtraBall: ; 0x30188
+; Grants the player an extra Ball, if they qualify for it.
+ ld a, [wd5ca]
+ and a
+ ret nz
+ ld a, [wd4ca]
+ and a
+ ret z
+ cp $1
+ jr nz, .asm_301a7
+ call FillBottomMessageBufferWithBlackTile
+ call Func_30db
+ ld hl, wd5cc
+ ld de, ExtraBallText
+ call LoadTextHeader
+ jr .asm_301c9
+
+.asm_301a7
+ ld bc, $1000
+ ld de, $0000
+ push bc
+ push de
+ call FillBottomMessageBufferWithBlackTile
+ call Func_30db
+ ld hl, wd5d4
+ ld de, DigitsText1to9
+ call Func_32cc
+ pop de
+ pop bc
+ ld hl, wd5cc
+ ld de, ExtraBallSpecialBonusText
+ call LoadTextHeader
+.asm_301c9
+ xor a
+ ld [wd4ca], a
+ ret
diff --git a/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm b/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm
index 3fa4406..4810d00 100755
--- a/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm
+++ b/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm
@@ -17,7 +17,7 @@ ResolveBlueFieldTopGameObjectCollisions: ; 0x1c715
callba Func_146a9
call Func_1f27b
call Func_1df15
- callba Func_30188
+ callba HandleExtraBall
ld a, $0
callba Func_10000
ret
@@ -42,7 +42,7 @@ ResolveBlueFieldBottomGameObjectCollisions: ; 0x1c769
callba Func_146a2
call Func_1f261
call Func_1de93
- callba Func_30188
+ callba HandleExtraBall
ld a, $0
callba Func_10000
ret
diff --git a/engine/pinball_game/object_collision/red_stage_resolve_collision.asm b/engine/pinball_game/object_collision/red_stage_resolve_collision.asm
index b4328c5..4fa2161 100755
--- a/engine/pinball_game/object_collision/red_stage_resolve_collision.asm
+++ b/engine/pinball_game/object_collision/red_stage_resolve_collision.asm
@@ -16,7 +16,7 @@ ResolveRedFieldTopGameObjectCollisions: ; 0x1460e
call Func_146a9
call Func_174ea
call Func_148cf
- callba Func_30188
+ callba HandleExtraBall
ld a, $0
callba Func_10000
ret
@@ -41,7 +41,7 @@ ResolveRedFieldBottomGameObjectCollisions: ; 0x14652
call Func_14733
call Func_146a2
call Func_174d0
- callba Func_30188
+ callba HandleExtraBall
ld a, $0
callba Func_10000
ret