From de56314d54675347b4065f7f23384e4cb6d8a3dd Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 9 Jul 2017 09:27:38 -0700 Subject: Label ball upgrade and CAVE lights --- .../ball_init/ball_init_blue_field.asm | 4 +- .../pinball_game/ball_init/ball_init_red_field.asm | 4 +- .../load_stage_data/load_blue_field.asm | 4 +- .../load_stage_data/load_red_field.asm | 4 +- .../blue_stage_resolve_collision.asm | 480 +++-------- .../red_stage_resolve_collision.asm | 956 +++------------------ engine/pinball_game/slot.asm | 2 +- 7 files changed, 246 insertions(+), 1208 deletions(-) (limited to 'engine') diff --git a/engine/pinball_game/ball_init/ball_init_blue_field.asm b/engine/pinball_game/ball_init/ball_init_blue_field.asm index ce27573..e2303c8 100644 --- a/engine/pinball_game/ball_init/ball_init_blue_field.asm +++ b/engine/pinball_game/ball_init/ball_init_blue_field.asm @@ -25,14 +25,14 @@ InitBallBlueField: ; 0x1c08d ld [wPikachuSaverSlotRewardActive], a ld [wd51e], a ld [wPikachuSaverCharge], a - ld hl, wd50f + ld hl, wCAVELightStates ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [wLeftMapMoveCounter], a ld [wRightMapMoveCounter], a - ld hl, wd5f9 + ld hl, wBallUpgradeTriggerStates ld [hli], a ld [hli], a ld [hli], a diff --git a/engine/pinball_game/ball_init/ball_init_red_field.asm b/engine/pinball_game/ball_init/ball_init_red_field.asm index a9a8a1a..cb48865 100644 --- a/engine/pinball_game/ball_init/ball_init_red_field.asm +++ b/engine/pinball_game/ball_init/ball_init_red_field.asm @@ -34,14 +34,14 @@ InitBallRedField: ; 0x3007d ld [wPikachuSaverSlotRewardActive], a ld [wPikachuSaverCharge], a ld [wd51e], a - ld hl, wd50f + ld hl, wCAVELightStates ld [hli], a ld [hli], a ld [hli], a ld [hli], a ld [wLeftMapMoveCounter], a ld [wRightMapMoveCounter], a - ld hl, wd5f9 + ld hl, wBallUpgradeTriggerStates ld [hli], a ld [hli], a ld [hli], a diff --git a/engine/pinball_game/load_stage_data/load_blue_field.asm b/engine/pinball_game/load_stage_data/load_blue_field.asm index 7d5c888..dab3f5f 100644 --- a/engine/pinball_game/load_stage_data/load_blue_field.asm +++ b/engine/pinball_game/load_stage_data/load_blue_field.asm @@ -1,5 +1,5 @@ _LoadStageDataBlueFieldTop: ; 0x1c165 - call asm_1e475 + call LoadPinballUpgradeTriggersGraphics_BlueField call UpdateSpinnerChargeGraphics_BlueField call Func_1c3ee call Func_1e8f6 @@ -15,7 +15,7 @@ _LoadStageDataBlueFieldBottom: ; 0x1c191 call Func_1c1db call Func_1c4b6 call Func_1c2cb - call Func_1e627 + call LoadCAVELightsGraphics_BlueField call Func_1c43c call Func_1c305 call Func_1c3ee diff --git a/engine/pinball_game/load_stage_data/load_red_field.asm b/engine/pinball_game/load_stage_data/load_red_field.asm index 1e40057..3baac52 100644 --- a/engine/pinball_game/load_stage_data/load_red_field.asm +++ b/engine/pinball_game/load_stage_data/load_red_field.asm @@ -1,7 +1,7 @@ _LoadStageDataRedFieldTop: ; 0x14000 call Func_14091 call Func_159f4 - call Func_15450 + call LoadPinballUpgradeTriggersGraphics_RedField call Func_16859 call UpdateSpinnerChargeGraphics_RedField call Func_14234 @@ -14,7 +14,7 @@ _LoadStageDataRedFieldBottom: ; 0x1401c call Func_14091 call Func_14377 call Func_14135 - call Func_asm_1522d + call LoadCAVELightsGraphics_RedField call Func_14282 call Func_1414b call Func_14234 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 9941acb..59f24b1 100644 --- a/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm +++ b/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm @@ -1,9 +1,9 @@ ResolveBlueFieldTopGameObjectCollisions: ; 0x1c715 call ResolveShellderCollision call ResolveBlueStageSpinnerCollision - call ResolveBlueStagePinballUpgradeTriggersCollision - call HandleBlueStageBallTypeUpgradeCounter - call Func_1e66a + call ResolveBallUpgradeTriggersCollision_BlueField + call UpdateBallTypeUpgradeCounter_BlueField + call UpdateCAVELightsBlinking_BlueField call ResolveBlueStageBoardTriggerCollision call ResolveBlueStagePikachuCollision call ResolveSlowpokeCollision @@ -27,9 +27,9 @@ ResolveBlueFieldBottomGameObjectCollisions: ; 0x1c769 call ResolveBlueStageBumperCollision call ResolvePsyduckPoliwagCollision call UpdateBlueStageSpinner - call Func_1e4b8 - call HandleBlueStageBallTypeUpgradeCounter - call Func_1e5c5 + call UpdatePinballUpgradeBlinkingAnimation_BlueField + call UpdateBallTypeUpgradeCounter_BlueField + call ResolveCAVELightCollision_BlueField call ResolveBlueStagePinballLaunchCollision call ResolveBlueStagePikachuCollision call Func_1ead4 @@ -2010,10 +2010,10 @@ UpdateMapMoveCounters_BlueFieldTop: ; 0x1df15 INCLUDE "data/queued_tiledata/blue_field/poliwag_psyduck.asm" -ResolveBlueStagePinballUpgradeTriggersCollision: ; 0x1e356 +ResolveBallUpgradeTriggersCollision_BlueField: ; 0x1e356 ld a, [wWhichPinballUpgradeTrigger] and a - jp z, Func_1e471 + jp z, UpdatePinballUpgradeTriggers xor a ld [wWhichPinballUpgradeTrigger], a ld a, [wStageCollisionState] @@ -2028,10 +2028,10 @@ ResolveBlueStagePinballUpgradeTriggersCollision: ; 0x1e356 .asm_1e386 ld a, [wStageCollisionState] bit 0, a - jp z, Func_1e471 - ld a, [wd5fc] + jp z, UpdatePinballUpgradeTriggers + ld a, [wBallUpgradeTriggersBlinking] and a - jp nz, Func_1e471 + jp nz, UpdatePinballUpgradeTriggers xor a ld [wRightAlleyTrigger], a ld [wLeftAlleyTrigger], a @@ -2042,35 +2042,35 @@ ResolveBlueStagePinballUpgradeTriggersCollision: ; 0x1e356 sub $13 ld c, a ld b, $0 - ld hl, wd5f9 + ld hl, wBallUpgradeTriggerStates add hl, bc ld a, [hl] ld [hl], $1 and a - jr z, .asm_1e3bf + jr z, .toggled ld [hl], $0 -.asm_1e3bf +.toggled ld bc, OneHundredPoints callba AddBigBCD6FromQueueWithBallMultiplier - ld hl, wd5f9 + ld hl, wBallUpgradeTriggerStates ld a, [hli] and [hl] inc hl and [hl] - jr nz, .asm_1e3de + jr nz, .allTriggersOn lb de, $00, $09 call PlaySoundEffect - jp asm_1e475 + jp LoadPinballUpgradeTriggersGraphics_BlueField -.asm_1e3de +.allTriggersOn ld a, $1 - ld [wd5fc], a + ld [wBallUpgradeTriggersBlinking], a ld a, $80 - ld [wd5fd], a + ld [wBallUpgradeTriggersBlinkingFramesRemaining], a ; load approximately 1 minute of frames into wBallTypeCounter - ld a, $10 + ld a, PINBALL_UPGRADE_FRAMES_COUNTER & $ff ld [wBallTypeCounter], a - ld a, $e + ld a, PINBALL_UPGRADE_FRAMES_COUNTER >> 8 ld [wBallTypeCounter + 1], a ld bc, FourHundredPoints callba AddBigBCD6FromQueueWithBallMultiplier @@ -2093,7 +2093,7 @@ ResolveBlueStagePinballUpgradeTriggersCollision: ; 0x1e356 ld [wBallType], a add $30 ld [wBottomMessageText + $12], a - jr .asm_1e465 + jr .done .masterBall lb de, $0f, $4d @@ -2114,48 +2114,52 @@ ResolveBlueStagePinballUpgradeTriggersCollision: ; 0x1e356 ld hl, wScrollingText1 ld de, FieldMultiplierSpecialBonusText call LoadScrollingText -.asm_1e465 +.done callba TransitionPinballUpgrade - jr asm_1e475 + jr LoadPinballUpgradeTriggersGraphics_BlueField -Func_1e471: ; 0x1e471 - call Func_1e4b8 +UpdatePinballUpgradeTriggers: ; 0x1e471 + call UpdatePinballUpgradeBlinkingAnimation_BlueField ret z -asm_1e475: ; 0x1e475 - ld hl, wd5fb + ; fall through +LoadPinballUpgradeTriggersGraphics_BlueField: ; 0x1e475 +; Loads the on or off graphics for each of the 3 pinball upgrade trigger dots, depending on their current toggle state. + ld hl, wBallUpgradeTriggerStates + 2 ld b, $3 -.asm_1e47a +.loop ld a, [hld] push hl - call Func_1e484 + call LoadPinballUpgradeTriggerGraphics_BlueField pop hl dec b - jr nz, .asm_1e47a + jr nz, .loop ret -Func_1e484: ; 0x1e484 +LoadPinballUpgradeTriggerGraphics_BlueField: ; 0x1e484 +; Loads the on or off graphics for one of the 3 pinball upgrade trigger dots, depending on its current toggle state. +; Input: a = toggle state and a - jr z, .asm_1e496 + jr z, .toggledOff ld a, [hGameBoyColorFlag] and a - jr nz, .asm_1e491 + jr nz, .toggledOnGameboy ld hl, TileDataPointers_1e520 - jr .asm_1e4a3 + jr .load -.asm_1e491 +.toggledOnGameboy ld hl, TileDataPointers_1e556 - jr .asm_1e4a3 + jr .load -.asm_1e496 +.toggledOff ld a, [hGameBoyColorFlag] and a - jr nz, .asm_1e4a0 + jr nz, .toggledOffGameboy ld hl, TileDataPointers_1e526 - jr .asm_1e4a3 + jr .load -.asm_1e4a0 +.toggledOffGameboy ld hl, TileDataPointers_1e55c -.asm_1e4a3 +.load push bc dec b sla b @@ -2171,24 +2175,27 @@ Func_1e484: ; 0x1e484 pop bc ret -Func_1e4b8: ; 0x1e4b8 - ld a, [wd5fc] +UpdatePinballUpgradeBlinkingAnimation_BlueField: ; 0x1e4b8 +; Controls the brief blinking animation of the 3 upgrade triggers after successfully +; upgrading the pinball. + ld a, [wBallUpgradeTriggersBlinking] and a - jr z, .asm_1e4e5 - ld a, [wd5fd] + jr z, .notBlinking + ld a, [wBallUpgradeTriggersBlinkingFramesRemaining] dec a - ld [wd5fd], a - jr nz, .asm_1e4ca - ld [wd5fc], a -.asm_1e4ca + ld [wBallUpgradeTriggersBlinkingFramesRemaining], a + jr nz, .stillBlinking + ld [wBallUpgradeTriggersBlinking], a +.stillBlinking and $7 - jr nz, .asm_1e4e3 - ld a, [wd5fd] + jr nz, .dontFlipState + ; Blink the triggers on or off + ld a, [wBallUpgradeTriggersBlinkingFramesRemaining] srl a srl a srl a and $1 - ld hl, wd5f9 + ld hl, wBallUpgradeTriggerStates ld [hli], a ld [hli], a ld [hl], a @@ -2196,16 +2203,16 @@ Func_1e4b8: ; 0x1e4b8 and a ret -.asm_1e4e3 +.dontFlipState xor a ret -.asm_1e4e5 +.notBlinking ld hl, wKeyConfigLeftFlipper call IsKeyPressed - jr z, .leftFlipperKeyIsPressed + jr z, .checkRightFlipperKeyPress ; left flipper key is pressed - ld hl, wd5f9 + ld hl, wBallUpgradeTriggerStates ld a, [hli] ld c, a ld a, [hli] @@ -2220,12 +2227,12 @@ Func_1e4b8: ; 0x1e4b8 ld [hl], a ret -.leftFlipperKeyIsPressed +.checkRightFlipperKeyPress ld hl, wKeyConfigRightFlipper call IsKeyPressed ret z ; right flipper key is pressed - ld hl, wd5f9 + ld hl, wBallUpgradeTriggerStates ld a, [hli] ld c, a ld a, [hli] @@ -2258,99 +2265,9 @@ BallTypeDegradation2BlueField: ; 0x1e51a db ULTRA_BALL ; unused db ULTRA_BALL ; MASTER_BALL -> GREAT_BALL -TileDataPointers_1e520: - dw TileData_1e52c - dw TileData_1e533 - dw TileData_1e53a - -TileDataPointers_1e526: - dw TileData_1e541 - dw TileData_1e548 - dw TileData_1e54f - -TileData_1e52c: ; 0x1e52c - db $02, $02 - dw vBGMap + $86 - db $66, $67 - db $00 - -TileData_1e533: ; 0x1e533 - db $02, $02 - dw vBGMap + $69 - db $66, $67 - db $00 - -TileData_1e53a: ; 0x1e53a - db $02, $02 - dw vBGMap + $8C - db $66, $67 - db $00 - -TileData_1e541: ; 0x1e541 - db $02, $02 - dw vBGMap + $86 - db $64, $65 - db $00 - -TileData_1e548: ; 0x1e548 - db $02, $02 - dw vBGMap + $69 - db $64, $65 - db $00 - -TileData_1e54f: ; 0x1e54f - db $02, $02 - dw vBGMap + $8C - db $64, $65 - db $00 - -TileDataPointers_1e556: - dw TileData_1e562 - dw TileData_1e569 - dw TileData_1e570 - -TileDataPointers_1e55c: - dw TileData_1e577 - dw TileData_1e57e - dw TileData_1e585 - -TileData_1e562: ; 0x1e562 - db $02, $02 - dw vBGMap + $86 - db $43, $43 - db $00 - -TileData_1e569: ; 0x1e569 - db $02, $02 - dw vBGMap + $69 - db $43, $43 - db $00 - -TileData_1e570: ; 0x1e570 - db $02, $02 - dw vBGMap + $8C - db $43, $43 - db $00 - -TileData_1e577: ; 0x1e577 - db $02, $02 - dw vBGMap + $86 - db $42, $42 - db $00 +INCLUDE "data/queued_tiledata/blue_field/ball_upgrade_triggers.asm" -TileData_1e57e: ; 0x1e57e - db $02, $02 - dw vBGMap + $69 - db $42, $42 - db $00 - -TileData_1e585: ; 0x1e585 - db $02, $02 - dw vBGMap + $8C - db $42, $42 - db $00 - -HandleBlueStageBallTypeUpgradeCounter: ; 0x1e58c +UpdateBallTypeUpgradeCounter_BlueField: ; 0x1e58c ld a, [wCapturingMon] and a ret nz @@ -2367,7 +2284,7 @@ HandleBlueStageBallTypeUpgradeCounter: ; 0x1e58c ld [hl], c or c ret nz - ; counter is now 0! Degrade the ball upgrade. + ; counter is now 0! Degrade the ball upgrade type. ld a, [wBallType] ld c, a ld b, $0 @@ -2378,28 +2295,28 @@ HandleBlueStageBallTypeUpgradeCounter: ; 0x1e58c and a jr z, .pokeball ; load approximately 1 minute of frames into wBallTypeCounter - ld a, $10 + ld a, PINBALL_UPGRADE_FRAMES_COUNTER & $ff ld [wBallTypeCounter], a - ld a, $e + ld a, PINBALL_UPGRADE_FRAMES_COUNTER >> 8 ld [wBallTypeCounter + 1], a .pokeball callba TransitionPinballUpgrade ret -Func_1e5c5: ; 0x1e5c5 +ResolveCAVELightCollision_BlueField: ; 0x1e5c5 ld a, [wWhichCAVELight] and a - jr z, .asm_1e623 + jr z, .noCollision xor a ld [wWhichCAVELight], a - ld a, [wd513] + ld a, [wCAVELightsBlinking] and a - jr nz, .asm_1e623 + jr nz, .noCollision ld a, [wWhichCAVELightId] sub $16 ld c, a ld b, $0 - ld hl, wd50f + ld hl, wCAVELightStates add hl, bc ld a, [hl] ld [hl], $1 @@ -2407,66 +2324,69 @@ Func_1e5c5: ; 0x1e5c5 ret nz ld bc, OneHundredPoints callba AddBigBCD6FromQueueWithBallMultiplier - ld hl, wd50f + ld hl, wCAVELightStates ld a, [hli] and [hl] inc hl and [hl] inc hl and [hl] - jr z, Func_1e627 + jr z, LoadCAVELightsGraphics_BlueField ld a, $1 - ld [wd513], a + ld [wCAVELightsBlinking], a ld a, $80 - ld [wd514], a + ld [wCAVELightsBlinkingFramesRemaining], a ld bc, FourHundredPoints callba AddBigBCD6FromQueueWithBallMultiplier lb de, $00, $09 call PlaySoundEffect ld hl, wNumCAVECompletions call Increment_Max100 - jr Func_1e627 + jr LoadCAVELightsGraphics_BlueField -.asm_1e623 - call Func_1e66a +.noCollision + call UpdateCAVELightsBlinking_BlueField ret z ; fall through -Func_1e627: ; 0x1e627 - ld hl, wd512 +LoadCAVELightsGraphics_BlueField: ; 0x1e627 +; Loads the graphics for each of the 4 CAVE lights, depending on what their current toggled state is. + ld hl, wCAVELightStates + 3 ld b, $4 -.asm_1e62c +.loop ld a, [hld] push hl - call Func_1e636 + call LoadCAVELightGraphics_BlueField pop hl dec b - jr nz, .asm_1e62c + jr nz, .loop ret -Func_1e636: ; 0x1e636 +LoadCAVELightGraphics_BlueField: ; 0x1e636 +; Loads a graphics for single CAVE light. +; Input: a = toggle state for CAVE light and a - jr z, .asm_1e648 + jr z, .toggledOff ld a, [hGameBoyColorFlag] and a - jr nz, .asm_1e643 + jr nz, .toggledOnGameboy ld hl, TileDataPointers_1e6d7 - jr .asm_1e655 + jr .load -.asm_1e643 +.toggledOnGameboy ld hl, TileDataPointers_1e717 - jr .asm_1e655 + jr .load -.asm_1e648 +.toggledOff ld a, [hGameBoyColorFlag] and a - jr nz, .asm_1e652 + jr nz, .toggledOffGameboy ld hl, TileDataPointers_1e6df - jr .asm_1e655 + jr .load -.asm_1e652 +.toggledOffGameboy ld hl, TileDataPointers_1e71f -.asm_1e655 +.load push bc dec b sla b @@ -2482,15 +2402,15 @@ Func_1e636: ; 0x1e636 pop bc ret -Func_1e66a: ; 0x1e66a - ld a, [wd513] +UpdateCAVELightsBlinking_BlueField: ; 0x1e66a + ld a, [wCAVELightsBlinking] and a - jr z, .asm_1e6a0 - ld a, [wd514] + jr z, .notBlinking + ld a, [wCAVELightsBlinkingFramesRemaining] dec a - ld [wd514], a + ld [wCAVELightsBlinkingFramesRemaining], a jr nz, .asm_1e687 - ld [wd513], a + ld [wCAVELightsBlinking], a ld a, $1 ld [wd608], a ld a, $3 @@ -2499,12 +2419,12 @@ Func_1e66a: ; 0x1e66a .asm_1e687 and $7 ret nz - ld a, [wd514] + ld a, [wCAVELightsBlinkingFramesRemaining] srl a srl a srl a and $1 - ld hl, wd50f + ld hl, wCAVELightStates ld [hli], a ld [hli], a ld [hli], a @@ -2513,11 +2433,11 @@ Func_1e66a: ; 0x1e66a and a ret -.asm_1e6a0 +.notBlinking ld hl, wKeyConfigLeftFlipper call IsKeyPressed - jr z, .asm_1e6bc - ld hl, wd50f + jr z, .checkRightFlipperKeyPress + ld hl, wCAVELightStates ld a, [hli] ld c, a ld a, [hli] @@ -2536,11 +2456,11 @@ Func_1e66a: ; 0x1e66a ld [hl], a ret -.asm_1e6bc +.checkRightFlipperKeyPress ld hl, wKeyConfigRightFlipper call IsKeyPressed ret z - ld hl, wd50f + ld hl, wCAVELightStates ld a, [hli] ld c, a ld a, [hli] @@ -2559,173 +2479,7 @@ Func_1e66a: ; 0x1e66a ld [hl], a ret -TileDataPointers_1e6d7: - dw TileData_1e6e7 - dw TileData_1e6ed - dw TileData_1e6f3 - dw TileData_1e6f9 - -TileDataPointers_1e6df: - dw TileData_1e6ff - dw TileData_1e705 - dw TileData_1e70b - dw TileData_1e711 - -TileData_1e6e7: ; 0x1e6e7 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $121 - db $5E - - db $00 ; terminator - -TileData_1e6ed: ; 0x1e6ed - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $123 - db $5E - - db $00 ; terminator - -TileData_1e6f3: ; 0x1e6f3 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $130 - db $60 - - db $00 ; terminator - -TileData_1e6f9: ; 0x1e6f9 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $132 - db $60 - - db $00 ; terminator - -TileData_1e6ff: ; 0x1e6ff - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $121 - db $5D - - db $00 ; terminator - -TileData_1e705: ; 0x1e705 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $123 - db $5D - - db $00 ; terminator - -TileData_1e70b: ; 0x1e70b - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $130 - db $5F - - db $00 ; terminator - -TileData_1e711: ; 0x1e711 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $132 - db $5F - - db $00 ; terminator - -TileDataPointers_1e717: - dw TileData_1e727 - dw TileData_1e72d - dw TileData_1e733 - dw TileData_1e739 - -TileDataPointers_1e71f: - dw TileData_1e73f - dw TileData_1e745 - dw TileData_1e74b - dw TileData_1e751 - -TileData_1e727: ; 0x1e727 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $121 - db $49 - - db $00 ; terminator - -TileData_1e72d: ; 0x1e72d - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $123 - db $4A - - db $00 ; terminator - -TileData_1e733: ; 0x1e733 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $130 - db $4B - - db $00 ; terminator - -TileData_1e739: ; 0x1e739 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $132 - db $4C - - db $00 ; terminator - -TileData_1e73f: ; 0x1e73f - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $121 - db $47 - - db $00 ; terminator - -TileData_1e745: ; 0x1e745 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $123 - db $48 - - db $00 ; terminator - -TileData_1e74b: ; 0x1e74b - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $130 - db $7A - - db $00 ; terminator - -TileData_1e751: ; 0x1e751 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $132 - db $7B - - db $00 ; terminator +INCLUDE "data/queued_tiledata/blue_field/cave_lights.asm" Func_1e757: ; 0x1e757 ld a, [wSlotCollision] 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 80dd824..56872f2 100644 --- a/engine/pinball_game/object_collision/red_stage_resolve_collision.asm +++ b/engine/pinball_game/object_collision/red_stage_resolve_collision.asm @@ -3,9 +3,9 @@ ResolveRedFieldTopGameObjectCollisions: ; 0x1460e call ResolveVoltorbCollision call ResolveRedStageSpinnerCollision - call ResolveRedStagePinballUpgradeTriggersCollision - call HandleRedStageBallTypeUpgradeCounter - call Func_15270 + call ResolveBallUpgradeTriggersCollision_RedField + call UpdateBallTypeUpgradeCounter_RedField + call UpdateCAVELightsBlinking_RedField call ResolveRedStageBoardTriggerCollision call ResolveRedStagePikachuCollision call ResolveStaryuCollision @@ -27,9 +27,9 @@ ResolveRedFieldBottomGameObjectCollisions: ; 0x14652 call ResolveDiglettCollision call UpdateMapMoveCounters_RedFieldBottom call UpdateRedStageSpinner - call Func_154a9 - call HandleRedStageBallTypeUpgradeCounter - call Func_151cb + call UpdatePinballUpgradeBlinkingAnimation_RedField + call UpdateBallTypeUpgradeCounter_RedField + call ResolveCAVELightCollision_RedField call ResolveRedStagePinballLaunchCollision call ResolveRedStagePikachuCollision call Func_167ff @@ -739,20 +739,20 @@ UpdateSpinnerChargeGraphics_RedField: ; 0x14ece INCLUDE "data/queued_tiledata/red_field/spinner.asm" -Func_151cb: ; 0x151cb +ResolveCAVELightCollision_RedField: ; 0x151cb ld a, [wWhichCAVELight] and a jr z, .asm_15229 xor a ld [wWhichCAVELight], a - ld a, [wd513] + ld a, [wCAVELightsBlinking] and a jr nz, .asm_15229 ld a, [wWhichCAVELightId] sub $a ld c, a ld b, $0 - ld hl, wd50f + ld hl, wCAVELightStates add hl, bc ld a, [hl] ld [hl], $1 @@ -760,66 +760,69 @@ Func_151cb: ; 0x151cb ret nz ld bc, OneHundredPoints callba AddBigBCD6FromQueueWithBallMultiplier - ld hl, wd50f + ld hl, wCAVELightStates ld a, [hli] and [hl] inc hl and [hl] inc hl and [hl] - jr z, Func_asm_1522d + jr z, LoadCAVELightsGraphics_RedField ld a, $1 - ld [wd513], a + ld [wCAVELightsBlinking], a ld a, $80 - ld [wd514], a + ld [wCAVELightsBlinkingFramesRemaining], a ld bc, FourHundredPoints callba AddBigBCD6FromQueueWithBallMultiplier lb de, $00, $09 call PlaySoundEffect ld hl, wNumCAVECompletions call Increment_Max100 - jr Func_asm_1522d + jr LoadCAVELightsGraphics_RedField .asm_15229 - call Func_15270 + call UpdateCAVELightsBlinking_RedField ret z ; fall through -Func_asm_1522d: ; 0x1522d - ld hl, wd512 +LoadCAVELightsGraphics_RedField: ; 0x1522d +; Loads the graphics for each of the 4 CAVE lights, depending on what their current toggled state is. + ld hl, wCAVELightStates + 3 ld b, $4 -.asm_15232 +.loop ld a, [hld] push hl - call Func_1523c + call LoadCAVELightGraphics_RedField pop hl dec b - jr nz, .asm_15232 + jr nz, .loop ret -Func_1523c: ; 0x1523c +LoadCAVELightGraphics_RedField: ; 0x1523c +; Loads a graphics for single CAVE light. +; Input: a = toggle state for CAVE light and a - jr z, .asm_1524e + jr z, .toggledOff ld a, [hGameBoyColorFlag] and a - jr nz, .asm_15249 + jr nz, .toggledOnGameboy ld hl, TileDataPointers_152dd - jr .asm_1525b + jr .load -.asm_15249 +.toggledOnGameboy ld hl, TileDataPointers_1531d - jr .asm_1525b + jr .load -.asm_1524e +.toggledOff ld a, [hGameBoyColorFlag] and a - jr nz, .asm_15258 + jr nz, .toggledOffGameboy ld hl, TileDataPointers_152e5 - jr .asm_1525b + jr .load -.asm_15258 +.toggledOffGameboy ld hl, TileDataPointers_15325 -.asm_1525b +.load push bc dec b sla b @@ -835,15 +838,15 @@ Func_1523c: ; 0x1523c pop bc ret -Func_15270: ; 0x15270 - ld a, [wd513] +UpdateCAVELightsBlinking_RedField: ; 0x15270 + ld a, [wCAVELightsBlinking] and a - jr z, .asm_152a6 - ld a, [wd514] + jr z, .notBlinking + ld a, [wCAVELightsBlinkingFramesRemaining] dec a - ld [wd514], a + ld [wCAVELightsBlinkingFramesRemaining], a jr nz, .asm_1528d - ld [wd513], a + ld [wCAVELightsBlinking], a ld a, $1 ld [wd608], a ld a, $3 @@ -852,12 +855,12 @@ Func_15270: ; 0x15270 .asm_1528d and $7 ret nz - ld a, [wd514] + ld a, [wCAVELightsBlinkingFramesRemaining] srl a srl a srl a and $1 - ld hl, wd50f + ld hl, wCAVELightStates ld [hli], a ld [hli], a ld [hli], a @@ -866,11 +869,11 @@ Func_15270: ; 0x15270 and a ret -.asm_152a6 +.notBlinking ld hl, wKeyConfigLeftFlipper call IsKeyPressed - jr z, .asm_152c2 - ld hl, wd50f + jr z, .checkRightFlipperKeyPress + ld hl, wCAVELightStates ld a, [hli] ld c, a ld a, [hli] @@ -889,11 +892,11 @@ Func_15270: ; 0x15270 ld [hl], a ret -.asm_152c2 +.checkRightFlipperKeyPress ld hl, wKeyConfigRightFlipper call IsKeyPressed ret z - ld hl, wd50f + ld hl, wCAVELightStates ld a, [hli] ld c, a ld a, [hli] @@ -912,186 +915,20 @@ Func_15270: ; 0x15270 ld [hl], a ret -TileDataPointers_152dd: - dw TileData_152ed - dw TileData_152f3 - dw TileData_152f9 - dw TileData_152ff +INCLUDE "data/queued_tiledata/red_field/cave_lights.asm" -TileDataPointers_152e5: - dw TileData_15305 - dw TileData_1530b - dw TileData_15311 - dw TileData_15317 - -TileData_152ed: ; 0x152ed - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $121 - db $7d - - db $00 ; terminator - -TileData_152f3: ; 0x152f3 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $123 - db $7d - - db $00 ; terminator - -TileData_152f9: ; 0x152f9 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $130 - db $7f - - db $00 ; terminator - -TileData_152ff: ; 0x152ff - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $132 - db $7f - - db $00 ; terminator - -TileData_15305: ; 0x15305 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $121 - db $7c - - db $00 ; terminator - -TileData_1530b: ; 0x1530b - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $123 - db $7c - - db $00 ; terminator - -TileData_15311: ; 0x15311 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $130 - db $7e - - db $00 ; terminator - -TileData_15317: ; 0x15317 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $132 - db $7e - - db $00 ; terminator - -TileDataPointers_1531d: - dw TileData_1532d - dw TileData_15333 - dw TileData_15339 - dw TileData_1533f - -TileDataPointers_15325: - dw TileData_15345 - dw TileData_1534b - dw TileData_15351 - dw TileData_15357 - -TileData_1532d: ; 0x1532d - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $121 - db $27 - - db $00 ; terminator - -TileData_15333: ; 0x15333 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $123 - db $29 - - db $00 ; terminator - -TileData_15339: ; 0x15339 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $130 - db $7E - - db $00 ; terminator - -TileData_1533f: ; 0x1533f - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $132 - db $7F - - db $00 ; terminator - -TileData_15345: ; 0x15345 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $121 - db $26 - - db $00 ; terminator - -TileData_1534b: ; 0x1534b - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $123 - db $28 - - db $00 ; terminator - -TileData_15351: ; 0x15351 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $130 - db $7C - - db $00 ; terminator - -TileData_15357: ; 0x15357 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $132 - db $7D - - db $00 ; terminator - -ResolveRedStagePinballUpgradeTriggersCollision: ; 0x1535d +ResolveBallUpgradeTriggersCollision_RedField: ; 0x1535d ld a, [wWhichPinballUpgradeTrigger] and a - jp z, .asm_1544c + jp z, .updatePinballUpgradeTriggersAnimation xor a ld [wWhichPinballUpgradeTrigger], a ld a, [wStageCollisionState] bit 0, a - jp z, .asm_1544c - ld a, [wd5fc] + jp z, .updatePinballUpgradeTriggersAnimation + ld a, [wBallUpgradeTriggersBlinking] and a - jp nz, .asm_1544c + jp nz, .updatePinballUpgradeTriggersAnimation xor a ld [wRightAlleyTrigger], a ld [wLeftAlleyTrigger], a @@ -1103,7 +940,7 @@ ResolveRedStagePinballUpgradeTriggersCollision: ; 0x1535d sub $e ld c, a ld b, $0 - ld hl, wd5f9 + ld hl, wBallUpgradeTriggerStates add hl, bc ld a, [hl] ld [hl], $1 @@ -1111,25 +948,25 @@ ResolveRedStagePinballUpgradeTriggersCollision: ; 0x1535d ret nz ld bc, OneHundredPoints callba AddBigBCD6FromQueueWithBallMultiplier - ld hl, wd5f9 + ld hl, wBallUpgradeTriggerStates ld a, [hli] and [hl] inc hl and [hl] - jr nz, .asm_153c0 + jr nz, .allTriggersOn lb de, $00, $09 call PlaySoundEffect - jp Func_15450 + jp LoadPinballUpgradeTriggersGraphics_RedField -.asm_153c0 +.allTriggersOn ld a, $1 - ld [wd5fc], a + ld [wBallUpgradeTriggersBlinking], a ld a, $80 - ld [wd5fd], a + ld [wBallUpgradeTriggersBlinkingFramesRemaining], a ; load approximately 1 minute of frames into wBallTypeCounter - ld a, $10 + ld a, PINBALL_UPGRADE_FRAMES_COUNTER & $ff ld [wBallTypeCounter], a - ld a, $e + ld a, PINBALL_UPGRADE_FRAMES_COUNTER >> 8 ld [wBallTypeCounter + 1], a ld bc, FourHundredPoints callba AddBigBCD6FromQueueWithBallMultiplier @@ -1152,7 +989,7 @@ ResolveRedStagePinballUpgradeTriggersCollision: ; 0x1535d ld [wBallType], a add $30 ld [wBottomMessageText + $12], a - jr .asm_15447 + jr .done .masterBall lb de, $0f, $4d @@ -1173,52 +1010,55 @@ ResolveRedStagePinballUpgradeTriggersCollision: ; 0x1535d ld hl, wScrollingText1 ld de, FieldMultiplierSpecialBonusText call LoadScrollingText -.asm_15447 +.done call TransitionPinballUpgrade - jr Func_15450 + jr LoadPinballUpgradeTriggersGraphics_RedField -.asm_1544c - call Func_154a9 +.updatePinballUpgradeTriggersAnimation + call UpdatePinballUpgradeBlinkingAnimation_RedField ret z -Func_15450 +LoadPinballUpgradeTriggersGraphics_RedField +; Loads the on or off graphics for each of the 3 pinball upgrade trigger dots, depending on their current toggle state. ld a, [wStageCollisionState] bit 0, a ret z - ld hl, wd5fb + ld hl, wBallUpgradeTriggerStates + 2 ld b, $3 -.asm_1545b +.loop ld a, [hld] push hl - call Func_15465 + call LoadPinballUpgradeTriggerGraphics_RedField pop hl dec b - jr nz, .asm_1545b + jr nz, .loop ret -Func_15465: ; 0x15465 +LoadPinballUpgradeTriggerGraphics_RedField: ; 0x15465 +; Loads the on or off graphics for one of the 3 pinball upgrade trigger dots, depending on its current toggle state. +; Input: a = toggle state and a - jr z, .asm_15477 + jr z, .toggledOff ld a, [hGameBoyColorFlag] and a - jr nz, .asm_15472 + jr nz, .toggledOnGameboy ld hl, TileDataPointers_15511 - jr .asm_15484 + jr .load -.asm_15472 +.toggledOnGameboy ld hl, TileDataPointers_15543 - jr .asm_15484 + jr .load -.asm_15477 +.toggledOff ld a, [hGameBoyColorFlag] and a - jr nz, .asm_15481 + jr nz, .toggledOffGameboy ld hl, TileDataPointers_15517 - jr .asm_15484 + jr .load -.asm_15481 +.toggledOffGameboy ld hl, TileDataPointers_15549 -.asm_15484 +.load push bc dec b sla b @@ -1234,38 +1074,39 @@ Func_15465: ; 0x15465 pop bc ret -Func_15499: ; 0x15499 +LoadDisabledPinballUpgradeTriggerGraphics_RedField: ; 0x15499 ld a, [hGameBoyColorFlag] and a ret nz ld b, $3 -.asm_1549f +.loop push hl xor a - call Func_15465 + call LoadPinballUpgradeTriggerGraphics_RedField pop hl dec b - jr nz, .asm_1549f + jr nz, .loop ret -Func_154a9: ; 0x154a9 - ld a, [wd5fc] +UpdatePinballUpgradeBlinkingAnimation_RedField: ; 0x154a9 + ld a, [wBallUpgradeTriggersBlinking] and a - jr z, .asm_154d6 - ld a, [wd5fd] + jr z, .notBlinking + ld a, [wBallUpgradeTriggersBlinkingFramesRemaining] dec a - ld [wd5fd], a - jr nz, .asm_154bb - ld [wd5fc], a -.asm_154bb + ld [wBallUpgradeTriggersBlinkingFramesRemaining], a + jr nz, .stillBlinking + ld [wBallUpgradeTriggersBlinking], a +.stillBlinking and $7 - jr nz, .asm_154d4 - ld a, [wd5fd] + jr nz, .dontFlipState + ; Blink the triggers on or off + ld a, [wBallUpgradeTriggersBlinkingFramesRemaining] srl a srl a srl a and $1 - ld hl, wd5f9 + ld hl, wBallUpgradeTriggerStates ld [hli], a ld [hli], a ld [hl], a @@ -1273,15 +1114,15 @@ Func_154a9: ; 0x154a9 and a ret -.asm_154d4 +.dontFlipState xor a ret -.asm_154d6 +.notBlinking ld hl, wKeyConfigLeftFlipper call IsKeyPressed - jr z, .asm_154ee - ld hl, wd5f9 + jr z, .checkRightFlipperKeyPress + ld hl, wBallUpgradeTriggerStates ld a, [hli] ld c, a ld a, [hli] @@ -1296,11 +1137,11 @@ Func_154a9: ; 0x154a9 ld [hl], a ret -.asm_154ee +.checkRightFlipperKeyPress ld hl, wKeyConfigRightFlipper call IsKeyPressed ret z - ld hl, wd5f9 + ld hl, wBallUpgradeTriggerStates ld a, [hli] ld c, a ld a, [hli] @@ -1333,135 +1174,9 @@ BallTypeDegradationRedField: ; 0x1550b db ULTRA_BALL ; unused db ULTRA_BALL ; MASTER_BALL -> GREAT_BALL -TileDataPointers_15511: - dw TileData_1551d - dw TileData_15523 - dw TileData_1552a - -TileDataPointers_15517: - dw TileData_15530 - dw TileData_15536 - dw TileData_1553d - -TileData_1551d: ; 0x1551d - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $E7 - db $ac - - db $00 ; terminator - -TileData_15523: ; 0x15523 - db $02 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $C9 - db $ad, $ae - - db $00 ; terminator - -TileData_1552a: ; 0x1552a - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $CC - db $af - - db $00 ; terminator - -TileData_15530: ; 0x15530 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $E7 - db $66 - - db $00 ; terminator - -TileData_15536: ; 0x15536 - db $02 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $C9 - db $68, $69 - - db $00 ; terminator - -TileData_1553d: ; 0x1553d - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $CC - db $6a - - db $00 ; terminator - -TileDataPointers_15543: - dw TileData_1554f - dw TileData_15555 - dw TileData_1555c - -TileDataPointers_15549: - dw TileData_15562 - dw TileData_15568 - dw TileData_1556F - -TileData_1554f: ; 0x1554f - db $01 ; total number of tiles +INCLUDE "data/queued_tiledata/red_field/ball_upgrade_triggers.asm" - db $01 ; number of tiles - dw vBGMap + $e7 - db $3D - - db $00 ; terminator - -TileData_15555: ; 0x15555 - db $02 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $c9 - db $3F, $40 - - db $00 ; terminator - -TileData_1555c: ; 0x1555c - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $cc - db $41 - - db $00 ; terminator - -TileData_15562: ; 0x15562 - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $e7 - db $37 - - db $00 ; terminator - -TileData_15568: ; 0x15568 - db $02 ; total number of tiles - - db $02 ; number of tiles - dw vBGMap + $c9 - db $39, $3a - - db $00 ; terminator - -TileData_1556F: ; 0x1556F - db $01 ; total number of tiles - - db $01 ; number of tiles - dw vBGMap + $cc - db $3B - - db $00 ; terminator - -HandleRedStageBallTypeUpgradeCounter: ; 0x15575 +UpdateBallTypeUpgradeCounter_RedField: ; 0x15575 ld a, [wCapturingMon] and a ret nz @@ -1488,9 +1203,9 @@ HandleRedStageBallTypeUpgradeCounter: ; 0x15575 and a jr z, .pokeball ; load approximately 1 minute of frames into wBallTypeCounter - ld a, $10 + ld a, PINBALL_UPGRADE_FRAMES_COUNTER & $ff ld [wBallTypeCounter], a - ld a, $e + ld a, PINBALL_UPGRADE_FRAMES_COUNTER >> 8 ld [wBallTypeCounter + 1], a .pokeball call TransitionPinballUpgrade @@ -1501,16 +1216,16 @@ TransitionPinballUpgrade: ; 0x155a7 ld c, a sla c ld b, $0 - ld hl, PinballUpgradeTransitionPointers + ld hl, PinballUpgradeTransition_TileDataPointers add hl, bc ld a, [hli] ld h, [hl] ld l, a - ld a, Bank(PinballUpgradeTransitionPointers) + ld a, Bank(PinballUpgradeTransition_TileDataPointers) call Func_10aa ; fall through -Func_155bb: ; 0x155bb +TransitionPinballUpgradePalette: ; 0x155bb ld a, [hGameBoyColorFlag] and a ret z @@ -1519,448 +1234,17 @@ Func_155bb: ; 0x155bb sla a ld c, a ld b, $0 - ld hl, Data_157f7 + ld hl, PinballUpgradeTransitionPalettes add hl, bc ld c, [hl] inc hl ld b, [hl] - ld a, BANK(Data_157f7) + ld a, BANK(PinballUpgradeTransitionPalettes) ld de, LoadPalettes call Func_10c5 ret -PinballUpgradeTransitionPointers: - dw TransitionToPokeBallPointers ; POKE_BALL - dw TransitionToPokeBallPointers ; POKE_BALL - dw TransitionToGreatBallPointers ; GREAT_BALL - dw TransitionToUltraBallPointers ; ULTRA_BALL - dw TransitionToUltraBallPointers ; ULTRA_BALL - dw TransitionToMasterBallPointers ; MASTER_BALL - -TransitionToPokeBallPointers: - db 11 - dw TransitionToPokeBall_TileData_1 - dw TransitionToPokeBall_TileData_2 - dw TransitionToPokeBall_TileData_3 - dw TransitionToPokeBall_TileData_4 - dw TransitionToPokeBall_TileData_5 - dw TransitionToPokeBall_TileData_6 - dw TransitionToPokeBall_TileData_7 - dw TransitionToPokeBall_TileData_8 - dw TransitionToPokeBall_TileData_9 - dw TransitionToPokeBall_TileData_10 - dw TransitionToPokeBall_TileData_11 - -TransitionToGreatBallPointers: - db 11 - dw TransitionToGreatBall_TileData_1 - dw TransitionToGreatBall_TileData_2 - dw TransitionToGreatBall_TileData_3 - dw TransitionToGreatBall_TileData_4 - dw TransitionToGreatBall_TileData_5 - dw TransitionToGreatBall_TileData_6 - dw TransitionToGreatBall_TileData_7 - dw TransitionToGreatBall_TileData_8 - dw TransitionToGreatBall_TileData_9 - dw TransitionToGreatBall_TileData_10 - dw TransitionToGreatBall_TileData_11 - -TransitionToUltraBallPointers: - db 11 - dw TransitionToUltraBall_TileData_1 - dw TransitionToUltraBall_TileData_2 - dw TransitionToUltraBall_TileData_3 - dw TransitionToUltraBall_TileData_4 - dw TransitionToUltraBall_TileData_5 - dw TransitionToUltraBall_TileData_6 - dw TransitionToUltraBall_TileData_7 - dw TransitionToUltraBall_TileData_8 - dw TransitionToUltraBall_TileData_9 - dw TransitionToUltraBall_TileData_10 - dw TransitionToUltraBall_TileData_11 - -TransitionToMasterBallPointers: - db 11 - dw TransitionToMasterBall_TileData_1 - dw TransitionToMasterBall_TileData_2 - dw TransitionToMasterBall_TileData_3 - dw TransitionToMasterBall_TileData_4 - dw TransitionToMasterBall_TileData_5 - dw TransitionToMasterBall_TileData_6 - dw TransitionToMasterBall_TileData_7 - dw TransitionToMasterBall_TileData_8 - dw TransitionToMasterBall_TileData_9 - dw TransitionToMasterBall_TileData_10 - dw TransitionToMasterBall_TileData_11 - -TransitionToPokeBall_TileData_1: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $40) - dw PinballPokeballGfx + $0 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_2: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $43) - dw PinballPokeballGfx + $30 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_3: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $46) - dw PinballPokeballGfx + $60 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_4: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $49) - dw PinballPokeballGfx + $90 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_5: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $4c) - dw PinballPokeballGfx + $c0 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_6: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $4f) - dw PinballPokeballGfx + $f0 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_7: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $52) - dw PinballPokeballGfx + $120 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_8: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $55) - dw PinballPokeballGfx + $150 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_9: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $58) - dw PinballPokeballGfx + $180 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_10: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $5b) - dw PinballPokeballGfx + $1b0 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToPokeBall_TileData_11: - dw Func_11d2 - db $20, $02 - dw (vTilesOB tile $5e) - dw PinballPokeballGfx + $1e0 - db Bank(PinballPokeballGfx) - db $00 - -TransitionToGreatBall_TileData_1: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $40) - dw PinballGreatballGfx + $0 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_2: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $43) - dw PinballGreatballGfx + $30 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_3: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $46) - dw PinballGreatballGfx + $60 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_4: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $49) - dw PinballGreatballGfx + $90 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_5: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $4c) - dw PinballGreatballGfx + $c0 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_6: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $4f) - dw PinballGreatballGfx + $f0 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_7: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $52) - dw PinballGreatballGfx + $120 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_8: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $55) - dw PinballGreatballGfx + $150 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_9: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $58) - dw PinballGreatballGfx + $180 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_10: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $5b) - dw PinballGreatballGfx + $1b0 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToGreatBall_TileData_11: - dw Func_11d2 - db $20, $02 - dw (vTilesOB tile $5e) - dw PinballGreatballGfx + $1e0 - db Bank(PinballGreatballGfx) - db $00 - -TransitionToUltraBall_TileData_1: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $40) - dw PinballUltraballGfx + $0 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_2: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $43) - dw PinballUltraballGfx + $30 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_3: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $46) - dw PinballUltraballGfx + $60 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_4: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $49) - dw PinballUltraballGfx + $90 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_5: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $4c) - dw PinballUltraballGfx + $c0 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_6: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $4f) - dw PinballUltraballGfx + $f0 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_7: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $52) - dw PinballUltraballGfx + $120 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_8: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $55) - dw PinballUltraballGfx + $150 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_9: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $58) - dw PinballUltraballGfx + $180 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_10: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $5b) - dw PinballUltraballGfx + $1b0 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToUltraBall_TileData_11: - dw Func_11d2 - db $20, $02 - dw (vTilesOB tile $5e) - dw PinballUltraballGfx + $1e0 - db Bank(PinballUltraballGfx) - db $00 - -TransitionToMasterBall_TileData_1: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $40) - dw PinballMasterballGfx + $0 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_2: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $43) - dw PinballMasterballGfx + $30 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_3: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $46) - dw PinballMasterballGfx + $60 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_4: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $49) - dw PinballMasterballGfx + $90 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_5: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $4c) - dw PinballMasterballGfx + $c0 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_6: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $4f) - dw PinballMasterballGfx + $f0 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_7: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $52) - dw PinballMasterballGfx + $120 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_8: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $55) - dw PinballMasterballGfx + $150 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_9: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $58) - dw PinballMasterballGfx + $180 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_10: - dw Func_11d2 - db $30, $03 - dw (vTilesOB tile $5b) - dw PinballMasterballGfx + $1b0 - db Bank(PinballMasterballGfx) - db $00 - -TransitionToMasterBall_TileData_11: - dw Func_11d2 - db $20, $02 - dw (vTilesOB tile $5e) - dw PinballMasterballGfx + $1e0 - db Bank(PinballMasterballGfx) - db $00 - -Data_157f7: - dw Data_15803 - dw Data_15803 - dw Data_1580a - dw Data_15811 - dw Data_15811 - dw Data_15818 - -Data_15803: - db $08, $04, $40, $68, $51, $37, $00 -Data_1580a: - db $08, $04, $40, $70, $51, $37, $00 -Data_15811: - db $08, $04, $40, $78, $51, $37, $00 -Data_15818: - db $08, $04, $40, $80, $51, $37, $00 +INCLUDE "data/queued_tiledata/ball_upgrade.asm" ResolveRedStageBoardTriggerCollision: ; 0x1581f ld a, [wWhichBoardTrigger] @@ -4181,8 +3465,8 @@ ResolveStaryuCollision: ; 0x16781 call PlaySoundEffect ld a, [wStageCollisionState] bit 0, a - jp nz, Func_15450 - jp Func_15499 + jp nz, LoadPinballUpgradeTriggersGraphics_RedField + jp LoadDisabledPinballUpgradeTriggerGraphics_RedField Func_167ff: ; 0x167ff ld a, [wStaryuCollision] diff --git a/engine/pinball_game/slot.asm b/engine/pinball_game/slot.asm index 5acb4b1..268e118 100644 --- a/engine/pinball_game/slot.asm +++ b/engine/pinball_game/slot.asm @@ -403,7 +403,7 @@ SlotRewardUpgradeBall: ; 0xf040 ld de, FieldMultiplierSpecialBonusText call LoadScrollingText .asm_f0b0 - callba Func_155bb + callba TransitionPinballUpgradePalette ret BallTypeProgressionBlueField: ; 0xf0bb -- cgit v1.2.3