summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2017-07-02 17:45:36 -0500
committerMarcus Huderle <huderlem@gmail.com>2017-07-02 17:45:36 -0500
commit4bcfa81438e15c6c2fbec2ab9f5ea8943887b53d (patch)
tree067997ea966918579164982ccd1da64fabff31fc
parent88c6c4a96a46beea4087b0ab6f1e9cfafa1f2906 (diff)
Label wCurBonusMultiplier and move bonus multplier logic into separate file
-rwxr-xr-xconstants/pinball_game_constants.asm2
-rwxr-xr-xengine/pinball_game/ball_loss/ball_loss_blue_field.asm4
-rwxr-xr-xengine/pinball_game/ball_loss/ball_loss_red_field.asm4
-rwxr-xr-xengine/pinball_game/bonus_multiplier.asm16
-rwxr-xr-xengine/pinball_game/catchem_mode.asm2
-rwxr-xr-xengine/pinball_game/object_collision/blue_stage_resolve_collision.asm12
-rwxr-xr-xengine/pinball_game/object_collision/red_stage_resolve_collision.asm14
-rwxr-xr-xengine/pinball_game/slot.asm4
-rwxr-xr-xengine/pinball_game/stage_init/init_blue_field.asm2
-rwxr-xr-xengine/pinball_game/stage_init/init_red_field.asm2
-rwxr-xr-xengine/pinball_game/stage_init/init_unused_stage.asm2
-rwxr-xr-xmain.asm18
-rwxr-xr-xwram.asm3
13 files changed, 44 insertions, 41 deletions
diff --git a/constants/pinball_game_constants.asm b/constants/pinball_game_constants.asm
index f332a0d..2c339d4 100755
--- a/constants/pinball_game_constants.asm
+++ b/constants/pinball_game_constants.asm
@@ -9,3 +9,5 @@ SPECIAL_MODE_MAP_MOVE EQU 2 ; shares value with SPECIAL_MODE_EVOLUTION
; To encounter Mew, you must first beat Mewtwo's bonus stage 2 times.
NUM_MEWTWO_COMPLETIONS_FOR_MEW EQU 2
+
+MAX_BONUS_MULTIPLIER EQU 11
diff --git a/engine/pinball_game/ball_loss/ball_loss_blue_field.asm b/engine/pinball_game/ball_loss/ball_loss_blue_field.asm
index 6d84ff9..f752b7f 100755
--- a/engine/pinball_game/ball_loss/ball_loss_blue_field.asm
+++ b/engine/pinball_game/ball_loss/ball_loss_blue_field.asm
@@ -35,11 +35,11 @@ HandleBallLossBlueField: ; 0xde4f
ld [wd4de], a
ld [wd4df], a
call Func_ded6
- ld a, [wd49b]
+ ld a, [wCurBonusMultiplier]
and a
jr z, .asm_deb6
dec a
- ld [wd49b], a
+ ld [wCurBonusMultiplier], a
ld a, $1
ld [wd49c], a
ld de, EndOfBallBonusText
diff --git a/engine/pinball_game/ball_loss/ball_loss_red_field.asm b/engine/pinball_game/ball_loss/ball_loss_red_field.asm
index 4097151..f342f58 100755
--- a/engine/pinball_game/ball_loss/ball_loss_red_field.asm
+++ b/engine/pinball_game/ball_loss/ball_loss_red_field.asm
@@ -35,11 +35,11 @@ HandleBallLossRedField: ; 0xdd76
ld [wd4de], a
ld [wd4df], a
call Func_ddfd
- ld a, [wd49b]
+ ld a, [wCurBonusMultiplier]
and a
jr z, .asm_dddd
dec a
- ld [wd49b], a
+ ld [wCurBonusMultiplier], a
ld a, $1
ld [wd49c], a
ld de, EndOfBallBonusText
diff --git a/engine/pinball_game/bonus_multiplier.asm b/engine/pinball_game/bonus_multiplier.asm
new file mode 100755
index 0000000..dfd4a20
--- /dev/null
+++ b/engine/pinball_game/bonus_multiplier.asm
@@ -0,0 +1,16 @@
+IncrementBonusMultiplier: ; 0x30164
+ ld a, [wCurBonusMultiplier]
+ inc a
+ cp MAX_BONUS_MULTIPLIER
+ jr z, .maxed
+ ld [wCurBonusMultiplier], a
+ ld a, $1
+ ld [wd4ca], a
+ ret
+
+.maxed
+ ld bc, TenMillionPoints
+ callba AddBigBCD6FromQueue
+ ld a, $2
+ ld [wd4ca], a
+ ret
diff --git a/engine/pinball_game/catchem_mode.asm b/engine/pinball_game/catchem_mode.asm
index 9be8ab0..f779c49 100755
--- a/engine/pinball_game/catchem_mode.asm
+++ b/engine/pinball_game/catchem_mode.asm
@@ -807,7 +807,7 @@ CapturePokemon: ; 0x1052d
jr nc, .asm_105d1
ld c, $a
call Func_e55
- callba z, Func_30164
+ callba z, IncrementBonusMultiplier
.asm_105d1
call SetPokemonOwnedFlag
ld a, [wd624]
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 056f0fe..3fa4406 100755
--- a/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm
+++ b/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm
@@ -1692,7 +1692,7 @@ Func_1d133: ; 0x1d133
jr nc, .asm_1d185
ld c, $a
call Func_e55
- callba z, Func_30164
+ callba z, IncrementBonusMultiplier
.asm_1d185
lb de, $16, $10
call PlaySoundEffect
@@ -1838,7 +1838,7 @@ ResolveSlowpokeCollision: ; 0x1d216
ret nc
ld c, $19
call Func_e55
- callba z, Func_30164
+ callba z, IncrementBonusMultiplier
ret
.asm_1d2b6
@@ -1960,7 +1960,7 @@ ResolveCloysterCollision: ; 0x1d32d
ret nc
ld c, $19
call Func_e55
- callba z, Func_30164
+ callba z, IncrementBonusMultiplier
ret
.asm_1d3cb
@@ -2091,7 +2091,7 @@ ResolveBlueStageBonusMultiplierCollision: ; 0x1d438
jr nc, .asm_1d4e9
ld c, $19
call Func_e55
- callba z, Func_30164
+ callba z, IncrementBonusMultiplier
.asm_1d4e9
ld a, [wd60c]
ld [wd614], a
@@ -3903,7 +3903,7 @@ Func_1ddc7: ; 0x1ddc7
jr nc, .asm_1dde4
ld c, $a
call Func_e55
- callba z, Func_30164
+ callba z, IncrementBonusMultiplier
.asm_1dde4
xor a
ld [wd55a], a
@@ -3919,7 +3919,7 @@ Func_1ddf4: ; 0x1ddf4
jr nc, .asm_1de11
ld c, $a
call Func_e55
- callba z, Func_30164
+ callba z, IncrementBonusMultiplier
.asm_1de11
ld a, $1
ld [wd55a], a
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 94d195d..b4328c5 100755
--- a/engine/pinball_game/object_collision/red_stage_resolve_collision.asm
+++ b/engine/pinball_game/object_collision/red_stage_resolve_collision.asm
@@ -132,7 +132,7 @@ BgTileData_1472f:
Func_14733: ; 0x14733
ld c, $0
- ld a, [wd49b]
+ ld a, [wCurBonusMultiplier]
and a
jr z, .asm_1473d
ld c, $1
@@ -146,7 +146,7 @@ Func_14733: ; 0x14733
Func_14746: ; 0x14746
ld c, $0
- ld a, [wd49b]
+ ld a, [wCurBonusMultiplier]
and a
jr z, .asm_14750
ld c, $2
@@ -426,7 +426,7 @@ Func_14920: ; 0x14920
jr nc, .asm_14937
ld c, $a
call Func_e55
- callba z, Func_30164
+ callba z, IncrementBonusMultiplier
.asm_14937
ld a, $1
ld [wd55a], a
@@ -439,7 +439,7 @@ Func_14947: ; 0x14947
jr nc, .asm_1495e
ld c, $a
call Func_e55
- callba z, Func_30164
+ callba z, IncrementBonusMultiplier
.asm_1495e
xor a
ld [wd55a], a
@@ -4505,7 +4505,7 @@ ResolveBellsproutCollision: ; 0x15e93
ret nc
ld c, $19
call Func_e55
- callba z, Func_30164
+ callba z, IncrementBonusMultiplier
ret
.asm_15f35
@@ -5674,7 +5674,7 @@ Func_1669e: ; 0x1669e
jr nc, .asm_166f0
ld c, $a
call Func_e55
- callba z, Func_30164
+ callba z, IncrementBonusMultiplier
.asm_166f0
lb de, $16, $10
call PlaySoundEffect
@@ -7105,7 +7105,7 @@ ResolveRedStageBonusMultiplierCollision: ; 016d9d
jr nc, .asm_16e24
ld c, $19
call Func_e55
- callba z, Func_30164
+ callba z, IncrementBonusMultiplier
.asm_16e24
ld a, [wd60c]
ld [wd614], a
diff --git a/engine/pinball_game/slot.asm b/engine/pinball_game/slot.asm
index f9628f2..1cefe2b 100755
--- a/engine/pinball_game/slot.asm
+++ b/engine/pinball_game/slot.asm
@@ -263,7 +263,7 @@ SlotRewardPikachuSaver: ; 0xef83
ret
SlotRewardBonusMultiplier: ; 0xefa7
- callba Func_30164
+ callba IncrementBonusMultiplier
ret
SlotRewardSmallPoints: ; 0xefb2
@@ -464,7 +464,7 @@ SlotBonusMultiplier: ; 0xf0c1
call .DivideBy25
ld a, c
cp b
- callba nz, Func_30164
+ callba nz, IncrementBonusMultiplier
callba Func_16f95
ld a, [wd60c]
callba Func_f154 ; no need for BankSwitch here...
diff --git a/engine/pinball_game/stage_init/init_blue_field.asm b/engine/pinball_game/stage_init/init_blue_field.asm
index 62d2e8b..666896b 100755
--- a/engine/pinball_game/stage_init/init_blue_field.asm
+++ b/engine/pinball_game/stage_init/init_blue_field.asm
@@ -11,7 +11,7 @@ InitBlueField: ; 0x1c000
ld [hld], a
ld [hl], a
ld [wNumPartyMons], a
- ld [wd49b], a
+ ld [wCurBonusMultiplier], a
ld [wd4c9], a
ld [wBallType], a
ld [wd4c8], a
diff --git a/engine/pinball_game/stage_init/init_red_field.asm b/engine/pinball_game/stage_init/init_red_field.asm
index d92d54e..ad8bf0a 100755
--- a/engine/pinball_game/stage_init/init_red_field.asm
+++ b/engine/pinball_game/stage_init/init_red_field.asm
@@ -11,7 +11,7 @@ InitRedField: ; 0x30000
ld [hld], a
ld [hl], a
ld [wNumPartyMons], a
- ld [wd49b], a
+ ld [wCurBonusMultiplier], a
ld [wd4c9], a
ld [wBallType], a
ld [wd4c8], a
diff --git a/engine/pinball_game/stage_init/init_unused_stage.asm b/engine/pinball_game/stage_init/init_unused_stage.asm
index 4fac82d..ee02abc 100755
--- a/engine/pinball_game/stage_init/init_unused_stage.asm
+++ b/engine/pinball_game/stage_init/init_unused_stage.asm
@@ -22,7 +22,7 @@ Func_18000: ; 0x18000
ld [hld], a
ld [hl], a
ld [wNumPartyMons], a
- ld [wd49b], a
+ ld [wCurBonusMultiplier], a
ld [wd4c9], a
ld a, $1
ld [wd49d], a
diff --git a/main.asm b/main.asm
index bc451a4..ecc8347 100755
--- a/main.asm
+++ b/main.asm
@@ -4173,23 +4173,7 @@ SECTION "bankc", ROMX, BANK[$c]
INCLUDE "engine/pinball_game/stage_init/init_red_field.asm"
INCLUDE "engine/pinball_game/ball_init/ball_init_red_field.asm"
-
-Func_30164: ; 0x30164
- ld a, [wd49b]
- inc a
- cp $b
- jr z, .asm_30175
- ld [wd49b], a
- ld a, $1
- ld [wd4ca], a
- ret
-
-.asm_30175
- ld bc, TenMillionPoints
- callba AddBigBCD6FromQueue
- ld a, $2
- ld [wd4ca], a
- ret
+INCLUDE "engine/pinball_game/bonus_multiplier.asm"
Func_30188: ; 0x30188
ld a, [wd5ca]
diff --git a/wram.asm b/wram.asm
index 8a5568d..f7819a4 100755
--- a/wram.asm
+++ b/wram.asm
@@ -298,7 +298,8 @@ wd499:: ; 0xd499
wd49a:: ; 0xd49a
ds $1
-wd49b:: ; 0xd49b
+wCurBonusMultiplier:: ; 0xd49b
+; Current value of the bonus multiplier. See MAX_BONUS_MULTIPLIER.
ds $1
wd49c:: ; 0xd49c