diff options
author | Marcus Huderle <huderlem@gmail.com> | 2017-07-02 17:45:36 -0500 |
---|---|---|
committer | Marcus Huderle <huderlem@gmail.com> | 2017-07-02 17:45:36 -0500 |
commit | 4bcfa81438e15c6c2fbec2ab9f5ea8943887b53d (patch) | |
tree | 067997ea966918579164982ccd1da64fabff31fc | |
parent | 88c6c4a96a46beea4087b0ab6f1e9cfafa1f2906 (diff) |
Label wCurBonusMultiplier and move bonus multplier logic into separate file
-rwxr-xr-x | constants/pinball_game_constants.asm | 2 | ||||
-rwxr-xr-x | engine/pinball_game/ball_loss/ball_loss_blue_field.asm | 4 | ||||
-rwxr-xr-x | engine/pinball_game/ball_loss/ball_loss_red_field.asm | 4 | ||||
-rwxr-xr-x | engine/pinball_game/bonus_multiplier.asm | 16 | ||||
-rwxr-xr-x | engine/pinball_game/catchem_mode.asm | 2 | ||||
-rwxr-xr-x | engine/pinball_game/object_collision/blue_stage_resolve_collision.asm | 12 | ||||
-rwxr-xr-x | engine/pinball_game/object_collision/red_stage_resolve_collision.asm | 14 | ||||
-rwxr-xr-x | engine/pinball_game/slot.asm | 4 | ||||
-rwxr-xr-x | engine/pinball_game/stage_init/init_blue_field.asm | 2 | ||||
-rwxr-xr-x | engine/pinball_game/stage_init/init_red_field.asm | 2 | ||||
-rwxr-xr-x | engine/pinball_game/stage_init/init_unused_stage.asm | 2 | ||||
-rwxr-xr-x | main.asm | 18 | ||||
-rwxr-xr-x | wram.asm | 3 |
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
@@ -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] @@ -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 |