mirror of
https://github.com/pret/pokepinball.git
synced 2026-03-21 17:55:03 -05:00
labelled collision handlers
This commit is contained in:
parent
3a675d926f
commit
da4e2bbd49
|
|
@ -1,5 +1,5 @@
|
|||
Func_202bc: ; 0x202bc
|
||||
ld a, [wd54c]
|
||||
HandleBlueCatchEmCollision: ; 0x202bc
|
||||
ld a, [wSpecialModeCollisionID]
|
||||
cp $4
|
||||
jp z, Func_204f1
|
||||
cp $c
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
Func_20000: ; 0x20000
|
||||
ld a, [wd54c]
|
||||
HandleRedCatchEmCollision: ; 0x20000
|
||||
ld a, [wSpecialModeCollisionID]
|
||||
cp $4
|
||||
jp z, Func_20230 ;if collided with voltorb
|
||||
cp $c
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
Func_10a95: ; 0x19a95
|
||||
HandleEvoModeCollision: ; 0x19a95
|
||||
ld a, [wCurrentStage]
|
||||
call CallInFollowingTable
|
||||
PointerTable_10a9b: ; 0x10a9b
|
||||
padded_dab Func_20581 ; STAGE_RED_FIELD_TOP
|
||||
padded_dab Func_20581 ; STAGE_RED_FIELD_BOTTOM
|
||||
padded_dab Func_20581
|
||||
padded_dab Func_20581
|
||||
padded_dab Func_20bae ; STAGE_BLUE_FIELD_TOP
|
||||
padded_dab Func_20bae ; STAGE_BLUE_FIELD_BOTTOM
|
||||
HandleEvoModeCollisionPointerTable: ; 0x10a9b
|
||||
padded_dab HandleRedEvoModeCollision ; STAGE_RED_FIELD_TOP
|
||||
padded_dab HandleRedEvoModeCollision ; STAGE_RED_FIELD_BOTTOM
|
||||
padded_dab HandleRedEvoModeCollision
|
||||
padded_dab HandleRedEvoModeCollision
|
||||
padded_dab HandleBlueEvoModeCollision ; STAGE_BLUE_FIELD_TOP
|
||||
padded_dab HandleBlueEvoModeCollision ; STAGE_BLUE_FIELD_BOTTOM
|
||||
|
||||
StartEvolutionMode: ; 0x10ab3
|
||||
ld a, [wInSpecialMode]
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
Func_20bae: ; 0x20bae
|
||||
ld a, [wd54c]
|
||||
HandleBlueEvoModeCollision: ; 0x20bae
|
||||
ld a, [wSpecialModeCollisionID]
|
||||
cp $4
|
||||
jp z, Func_20e34
|
||||
cp $1
|
||||
|
|
|
|||
|
|
@ -1,21 +1,21 @@
|
|||
Func_20581: ; 0x20581
|
||||
ld a, [wd54c]
|
||||
HandleRedEvoModeCollision: ; 0x20581
|
||||
ld a, [wSpecialModeCollisionID]
|
||||
cp $4
|
||||
jp z, Func_2080f
|
||||
jp z, Func_2080f ;voltorb
|
||||
cp $3
|
||||
jp z, Func_20839
|
||||
cp $5
|
||||
jp z, Func_2085a
|
||||
jp z, Func_2085a ;bellsprout
|
||||
cp $6
|
||||
jp z, Func_20887
|
||||
jp z, Func_20887 ;staryu
|
||||
cp $7
|
||||
jp z, Func_208a8
|
||||
jp z, Func_208a8 ;diglett
|
||||
cp $8
|
||||
jp z, Func_208c9
|
||||
jp z, Func_208c9 ;diglett
|
||||
cp $9
|
||||
jp z, Func_208ea
|
||||
jp z, Func_208ea ;right rail?
|
||||
cp $a
|
||||
jp z, Func_2090b
|
||||
jp z, Func_2090b ;right rail?
|
||||
cp $b
|
||||
jp z, Func_2092c
|
||||
cp $c
|
||||
|
|
@ -355,16 +355,16 @@ Func_20887: ; 0x20887
|
|||
Func_208a8: ; 0x208a8
|
||||
ld a, [wd551]
|
||||
and a
|
||||
jr nz, .asm_208c7
|
||||
jr nz, .asm_208c7 ;if ??? is NZ, skip
|
||||
ld a, [wIndicatorStates + 13]
|
||||
and a
|
||||
jr z, .asm_208c7
|
||||
jr z, .asm_208c7 ;if indicator is off, skip
|
||||
xor a
|
||||
ld [wIndicatorStates + 13], a
|
||||
ld [wIndicatorStates + 13], a ;flick off indicator
|
||||
ld a, [wd55d]
|
||||
and a
|
||||
ld a, $0
|
||||
ld [wd55d], a
|
||||
ld [wd55d], a ;make ??? 0
|
||||
jp nz, Func_20977
|
||||
jp Func_209eb
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
Func_301ce: ; 0x301ce
|
||||
HandleMapModeCollision: ; 0x301ce
|
||||
ld a, [wCurrentStage]
|
||||
call CallInFollowingTable
|
||||
PointerTable_301d4: ; 0x301d4
|
||||
padded_dab Func_314ae ; STAGE_RED_FIELD_TOP
|
||||
padded_dab Func_314ae ; STAGE_RED_FIELD_BOTTOM
|
||||
padded_dab Func_314ae
|
||||
padded_dab Func_314ae
|
||||
padded_dab Func_3161b ; STAGE_BLUE_FIELD_TOP
|
||||
padded_dab Func_3161b ; STAGE_BLUE_FIELD_BOTTOM
|
||||
HandleMapModeCollisionPointerTable: ; 0x301d4
|
||||
padded_dab HandleRedMapModeCollision ; STAGE_RED_FIELD_TOP
|
||||
padded_dab HandleRedMapModeCollision ; STAGE_RED_FIELD_BOTTOM
|
||||
padded_dab HandleRedMapModeCollision
|
||||
padded_dab HandleRedMapModeCollision
|
||||
padded_dab HandleBlueMapModeCollision ; STAGE_BLUE_FIELD_TOP
|
||||
padded_dab HandleBlueMapModeCollision ; STAGE_BLUE_FIELD_BOTTOM
|
||||
|
||||
StartMapMoveMode: ; 0x301ec
|
||||
ld a, [wInSpecialMode]
|
||||
|
|
@ -424,10 +424,10 @@ SecondMapMoveSet_BlueField:
|
|||
db SAFFRON_CITY
|
||||
db CINNABAR_ISLAND
|
||||
|
||||
Func_314ae: ; 0x314ae
|
||||
HandleRedMapModeCollision: ; 0x314ae
|
||||
ld a, [wTimerActive]
|
||||
and a
|
||||
ld a, [wd54c]
|
||||
ld a, [wSpecialModeCollisionID]
|
||||
jr z, .asm_314d0
|
||||
cp $1
|
||||
jp z, OpenRedMapMoveSlotFromLeft
|
||||
|
|
@ -574,10 +574,10 @@ ResolveSucsessfulRedMapMove: ; 0x315d5
|
|||
scf
|
||||
ret
|
||||
|
||||
Func_3161b: ; 0x3161b
|
||||
HandleBlueMapModeCollision: ; 0x3161b
|
||||
ld a, [wTimerActive]
|
||||
and a
|
||||
ld a, [wd54c]
|
||||
ld a, [wSpecialModeCollisionID]
|
||||
jr z, .asm_3163d
|
||||
cp $1
|
||||
jp z, Func_31708
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ ResolveBlueFieldTopGameObjectCollisions: ; 0x1c715
|
|||
call UpdateMapMoveCounters_BlueFieldTop
|
||||
callba ShowExtraBallMessage
|
||||
ld a, $0
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ret
|
||||
|
||||
ResolveBlueFieldBottomGameObjectCollisions: ; 0x1c769
|
||||
|
|
@ -44,7 +44,7 @@ ResolveBlueFieldBottomGameObjectCollisions: ; 0x1c769
|
|||
call UpdateMapMoveCounters_BlueFieldBottom
|
||||
callba ShowExtraBallMessage
|
||||
ld a, $0
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ret
|
||||
|
||||
InitBlueFieldCollisionAttributes: ; 0x1c7c7
|
||||
|
|
@ -339,7 +339,7 @@ ResolveShellderCollision: ; 0x1c9c1
|
|||
sub $3
|
||||
ld [wWhichAnimatedShellder], a
|
||||
ld a, $4
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ld bc, FiveHundredPoints
|
||||
callba AddBigBCD6FromQueueWithBallMultiplier
|
||||
ret
|
||||
|
|
@ -398,7 +398,7 @@ ResolveBlueStageSpinnerCollision: ; 0x1ca5f
|
|||
ld a, b
|
||||
ld [wd50c], a
|
||||
ld a, $c
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
; fall through
|
||||
|
||||
UpdateBlueStageSpinner: ; 0x1ca85
|
||||
|
|
@ -659,7 +659,7 @@ HandleSecondaryLeftAlleyTrigger_BlueField: ; 0x1d010
|
|||
xor a
|
||||
ld [wLeftAlleyTrigger], a
|
||||
ld a, $1
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ret c
|
||||
ld a, [wLeftAlleyCount]
|
||||
cp $3
|
||||
|
|
@ -688,7 +688,7 @@ HandleSecondaryRightAlleyTrigger_BlueField: ; 0x1d047
|
|||
xor a
|
||||
ld [wRightAlleyTrigger], a
|
||||
ld a, $2
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ret c
|
||||
ld a, [wRightAlleyCount]
|
||||
cp $3
|
||||
|
|
@ -1003,7 +1003,7 @@ ResolveSlowpokeCollision: ; 0x1d216
|
|||
cp $0
|
||||
jr nz, .asm_1d2f8
|
||||
ld a, $f
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
.asm_1d2f8
|
||||
xor a
|
||||
ld [wd642], a
|
||||
|
|
@ -1122,7 +1122,7 @@ ResolveCloysterCollision: ; 0x1d32d
|
|||
lb de, $00, $06
|
||||
call PlaySoundEffect
|
||||
ld a, $e
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
xor a
|
||||
ld [wBlueFieldForceFieldFrameCounter], a
|
||||
ld [wBlueFieldForceFieldSecondsCounter], a
|
||||
|
|
@ -1176,7 +1176,7 @@ ResolveBonusMultiplierCollision_BlueField: ; 0x1d438
|
|||
ld a, $3c
|
||||
ld [wBonusMultiplierRailingEndLightDuration], a
|
||||
ld a, $9
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ld a, [wd610]
|
||||
cp $3
|
||||
jp nz, asm_1d4fa
|
||||
|
|
@ -1203,7 +1203,7 @@ ResolveBonusMultiplierCollision_BlueField: ; 0x1d438
|
|||
ld a, $1e
|
||||
ld [wBonusMultiplierRailingEndLightDuration], a
|
||||
ld a, $a
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ld a, [wd611]
|
||||
cp $3
|
||||
jr nz, asm_1d4fa
|
||||
|
|
@ -1539,7 +1539,7 @@ ResolvePsyduckPoliwagCollision: ; 0x1dbd2
|
|||
ld a, [wLeftMapMoveCounter]
|
||||
cp $3
|
||||
ld a, $7
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ld a, $2
|
||||
ld [wPoliwagState], a
|
||||
ld a, $78
|
||||
|
|
@ -1576,7 +1576,7 @@ ResolvePsyduckPoliwagCollision: ; 0x1dbd2
|
|||
ld a, [wRightMapMoveCounter]
|
||||
cp $3
|
||||
ld a, $8
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ld a, [wRightMapMoveCounter]
|
||||
cp $3
|
||||
ccf
|
||||
|
|
@ -2043,7 +2043,7 @@ ResolveBallUpgradeTriggersCollision_BlueField: ; 0x1e356
|
|||
ld [wLeftAlleyTrigger], a
|
||||
ld [wSecondaryLeftAlleyTrigger], a
|
||||
ld a, $b
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ld a, [wWhichPinballUpgradeTriggerId]
|
||||
sub $13
|
||||
ld c, a
|
||||
|
|
@ -2594,7 +2594,7 @@ DoSlotLogic_BlueField: ; 0x1e830
|
|||
xor a
|
||||
ld [wIndicatorStates + 4], a
|
||||
ld a, $d
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
jr nc, .asm_1e84b
|
||||
ld a, $1
|
||||
ld [wPinballIsVisible], a
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ ResolveRedFieldTopGameObjectCollisions: ; 0x1460e
|
|||
call UpdateMapMoveCounters_RedFieldTop
|
||||
callba ShowExtraBallMessage
|
||||
ld a, $0
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ret
|
||||
|
||||
ResolveRedFieldBottomGameObjectCollisions: ; 0x14652
|
||||
|
|
@ -43,7 +43,7 @@ ResolveRedFieldBottomGameObjectCollisions: ; 0x14652
|
|||
call UpdatePokeballs_RedField
|
||||
callba ShowExtraBallMessage
|
||||
ld a, $0
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ret
|
||||
|
||||
UpdateBallSaver: ; 0x146a2
|
||||
|
|
@ -259,7 +259,7 @@ ResolveDiglettCollision: ; 0x147aa
|
|||
add $4
|
||||
call LoadDiglettNumberGraphics
|
||||
ld a, $8
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ld a, [wRightMapMoveCounter]
|
||||
cp $3
|
||||
call z, HitRightDiglett3Times
|
||||
|
|
@ -275,7 +275,7 @@ ResolveDiglettCollision: ; 0x147aa
|
|||
ld a, [wLeftMapMoveCounter]
|
||||
call LoadDiglettNumberGraphics
|
||||
ld a, $7
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ld a, [wLeftMapMoveCounter]
|
||||
cp $3
|
||||
call z, HitLeftDiglett3Times
|
||||
|
|
@ -566,7 +566,7 @@ ResolveVoltorbCollision: ; 0x14d85
|
|||
sub $3
|
||||
ld [wWhichAnimatedVoltorb], a
|
||||
ld a, $4
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ld bc, FiveHundredPoints
|
||||
callba AddBigBCD6FromQueueWithBallMultiplier
|
||||
ret
|
||||
|
|
@ -613,7 +613,7 @@ ResolveRedStageSpinnerCollision: ; 0x14dea
|
|||
ld a, b
|
||||
ld [wd50c], a
|
||||
ld a, $c
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
; fall through
|
||||
|
||||
UpdateRedStageSpinner: ; 0x14e10
|
||||
|
|
@ -937,7 +937,7 @@ ResolveBallUpgradeTriggersCollision_RedField: ; 0x1535d
|
|||
ld [wSecondaryLeftAlleyTrigger], a
|
||||
call UpdateFieldStructures_RedField
|
||||
ld a, $b
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ld a, [wWhichPinballUpgradeTriggerId]
|
||||
sub $e
|
||||
ld c, a
|
||||
|
|
@ -1301,7 +1301,7 @@ HandleSecondaryLeftAlleyTrigger_RedField: ; 0x1587c
|
|||
xor a
|
||||
ld [wLeftAlleyTrigger], a
|
||||
ld a, $1
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ret c
|
||||
ld a, [wLeftAlleyCount]
|
||||
cp $3
|
||||
|
|
@ -1331,7 +1331,7 @@ HandleThirdLeftAlleyTrigger_RedField: ; 0x158c0
|
|||
xor a
|
||||
ld [wLeftAlleyTrigger], a
|
||||
ld a, $1
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ret c
|
||||
ld a, [wLeftAlleyCount]
|
||||
cp $3
|
||||
|
|
@ -1360,7 +1360,7 @@ HandleSecondaryStaryuAlleyTrigger_RedField: ; 0x15904
|
|||
xor a
|
||||
ld [wSecondaryLeftAlleyTrigger], a
|
||||
ld a, $3
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ret
|
||||
|
||||
HandleLeftAlleyTrigger_RedField: ; 0x1591e
|
||||
|
|
@ -1395,7 +1395,7 @@ HandleSecondaryRightAlleyTrigger_RedField: ; 0x15944
|
|||
xor a
|
||||
ld [wRightAlleyTrigger], a
|
||||
ld a, $2
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ret c
|
||||
ld a, [wRightAlleyCount]
|
||||
cp $3
|
||||
|
|
@ -1434,7 +1434,7 @@ HandleThirdRightAlleyTrigger_RedField: ; 0x15990
|
|||
xor a
|
||||
ld [wRightAlleyTrigger], a
|
||||
ld a, $2
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ret c
|
||||
ld a, [wRightAlleyCount]
|
||||
cp $3
|
||||
|
|
@ -1606,7 +1606,7 @@ ResolveBellsproutCollision: ; 0x15e93
|
|||
lb de, $00, $06
|
||||
call PlaySoundEffect
|
||||
ld a, $5
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ret
|
||||
|
||||
BellsproutAnimationData: ; 0x15f69
|
||||
|
|
@ -2040,7 +2040,7 @@ DoSlotLogic_RedField: ; 0x16352
|
|||
xor a
|
||||
ld [wIndicatorStates + 4], a
|
||||
ld a, $d
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
jr nc, .asm_1636d
|
||||
ld a, $1
|
||||
ld [wPinballIsVisible], a
|
||||
|
|
@ -2513,7 +2513,7 @@ ResolveStaryuCollision_Top: ; 0x16781
|
|||
ld [wd503], a
|
||||
call LoadStaryuGraphics_Top
|
||||
ld a, $6
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ret
|
||||
|
||||
.asm_167bd
|
||||
|
|
@ -2562,7 +2562,7 @@ ResolveStaryuCollision_Bottom: ; 0x167ff
|
|||
ld [wd503], a
|
||||
call LoadStaryuGraphics_Bottom
|
||||
ld a, $6
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ret
|
||||
|
||||
.noCollision
|
||||
|
|
@ -2695,7 +2695,7 @@ ResolveRedStageBonusMultiplierCollision: ; 016d9d
|
|||
sub $21
|
||||
jr nz, .hitRightRailing
|
||||
ld a, $9
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ld a, [wd610]
|
||||
cp $3
|
||||
jr nz, .asm_16e35
|
||||
|
|
@ -2710,7 +2710,7 @@ ResolveRedStageBonusMultiplierCollision: ; 016d9d
|
|||
|
||||
.hitRightRailing
|
||||
ld a, $a
|
||||
callba Func_10000
|
||||
callba CheckSpecialModeColision
|
||||
ld a, [wd611]
|
||||
cp $3
|
||||
jr nz, .asm_16e35
|
||||
|
|
|
|||
|
|
@ -4,16 +4,16 @@ GenRandom: ; 0x959
|
|||
push hl
|
||||
ld a, [wd811]
|
||||
ld c, a
|
||||
ld b, $0
|
||||
ld b, $0 ;load ??? into c
|
||||
inc a
|
||||
cp 54 + 1
|
||||
cp 54 + 1 ;inc ???, if ??? is 55 do alot of subtraction and make ??? 0
|
||||
jr nz, .asm_96e
|
||||
call Func_9fa
|
||||
xor a
|
||||
ld bc, $0000
|
||||
.asm_96e
|
||||
ld [wd811], a
|
||||
ld hl, wd812
|
||||
ld [wd811], a ;place wd811 + 1 back in
|
||||
ld hl, wd812 ;choose number generated based on wd811 and all the subtraction
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
pop hl
|
||||
|
|
@ -79,11 +79,11 @@ Func_9fa: ; 0x9fa
|
|||
ld a, [wd810]
|
||||
ld d, a
|
||||
ld bc, wd812
|
||||
ld hl, wd812 + $1f
|
||||
ld hl, wd812 + $1f ;d831
|
||||
ld e, $18
|
||||
.asm_a06
|
||||
ld a, [bc]
|
||||
sub [hl]
|
||||
sub [hl] ;sub d831 from wd812, add wd810 if it does not carry, put result in wd812. repeat 24 times
|
||||
jr nc, .asm_a0b
|
||||
add d
|
||||
.asm_a0b
|
||||
|
|
@ -109,11 +109,11 @@ Func_a21: ; 0xa21
|
|||
push hl
|
||||
ld c, a
|
||||
ld b, $0
|
||||
ld hl, Data_a38
|
||||
ld hl, Data_a38 ;jump to c in table, load (twice c?) into l
|
||||
add hl, bc
|
||||
ld l, [hl]
|
||||
call GenRandom
|
||||
call Func_dd4
|
||||
call GenRandom ;a = a psuedo random number
|
||||
call Func_dd4 ;a * l
|
||||
inc h
|
||||
srl h
|
||||
ld a, h
|
||||
|
|
@ -121,7 +121,7 @@ Func_a21: ; 0xa21
|
|||
pop bc
|
||||
ret
|
||||
|
||||
Data_a38:
|
||||
Data_a38: ;starting from 0, go up 2 each byte
|
||||
x = 0
|
||||
REPT 128
|
||||
db x | ((x >> 7) & 1)
|
||||
|
|
|
|||
26
main.asm
26
main.asm
|
|
@ -102,31 +102,31 @@ INCLUDE "engine/pinball_game/end_of_ball_bonus.asm"
|
|||
|
||||
SECTION "bank4", ROMX
|
||||
|
||||
Func_10000: ; 0x10000
|
||||
CheckSpecialModeColision: ; 0x10000
|
||||
ld c, a
|
||||
ld a, [wInSpecialMode] ;special mode in c
|
||||
and a
|
||||
ret z ;if mot in special mode, ret
|
||||
ld a, c
|
||||
ld [wd54c], a
|
||||
ld [wSpecialModeCollisionID], a
|
||||
ld a, [wSpecialMode]
|
||||
cp SPECIAL_MODE_CATCHEM ;branch based on mode
|
||||
jp z, Func_10a95
|
||||
jp z, HandleEvoModeCollision ;call evo mode logic
|
||||
cp SPECIAL_MODE_EVOLUTION
|
||||
jr nz, .next
|
||||
callba Func_301ce
|
||||
jr nz, .CatchMode ;call catch mode logic
|
||||
callba HandleMapModeCollision ;call map move logic
|
||||
ret
|
||||
|
||||
.next
|
||||
.CatchMode
|
||||
ld a, [wCurrentStage]
|
||||
call CallInFollowingTable
|
||||
CallTable_10027: ; 0x10027
|
||||
padded_dab Func_20000 ; STAGE_RED_FIELD_TOP
|
||||
padded_dab Func_20000 ; STAGE_RED_FIELD_BOTTOM
|
||||
padded_dab Func_20000
|
||||
padded_dab Func_20000
|
||||
padded_dab Func_202bc ; STAGE_BLUE_FIELD_TOP
|
||||
padded_dab Func_202bc ; STAGE_BLUE_FIELD_BOTTOM
|
||||
HandleCatchEmCollisionCallTable: ; 0x10027
|
||||
padded_dab HandleRedCatchEmCollision ; STAGE_RED_FIELD_TOP
|
||||
padded_dab HandleRedCatchEmCollision ; STAGE_RED_FIELD_BOTTOM
|
||||
padded_dab HandleRedCatchEmCollision
|
||||
padded_dab HandleRedCatchEmCollision
|
||||
padded_dab HandleBlueCatchEmCollision ; STAGE_BLUE_FIELD_TOP
|
||||
padded_dab HandleBlueCatchEmCollision ; STAGE_BLUE_FIELD_BOTTOM
|
||||
|
||||
INCLUDE "engine/pinball_game/catchem_mode.asm"
|
||||
INCLUDE "engine/pinball_game/evolution_mode.asm"
|
||||
|
|
|
|||
20
wram.asm
20
wram.asm
|
|
@ -566,7 +566,23 @@ wInSpecialMode:: ; 0xd54b
|
|||
; Set to 1 if currently in special game mode. See wSpecialMode.
|
||||
ds $1
|
||||
|
||||
wd54c:: ; 0xd54c 10000 sets it to a input, records what the ball has collided with. 7 and 8 from the digletts, 4 from voltorb, b = upper cave lights?, 1 is upper left red trigger, 2 is a right trigger, 5 is bellsprout, d = slot, 6 = staryu, 9/a = right railing multiplier?,
|
||||
wSpecialModeCollisionID:: ; 0xd54c 10000 sets it to a input, records what the ball has collided with
|
||||
;0 nothing hit?
|
||||
;1 upper left red trigger (under ditto) | secondary left trigger on blue
|
||||
;2 second right trigger
|
||||
;3 second staryu ally trigger
|
||||
;4 any voltob | any shellder
|
||||
;5 bellsprout | N/A
|
||||
;6 staryu | N/A
|
||||
;7 left diglett | poliwag
|
||||
;8 right diglett | psyduck
|
||||
;9 hit right railing (33 multiplier)
|
||||
;a hit right railing (otherwise)
|
||||
;b upper cave lights (ball upgrade)
|
||||
;c Spinner
|
||||
;d slot hole
|
||||
;e N/A | cloyster
|
||||
;f N/A | slowpoke
|
||||
ds $1
|
||||
|
||||
wd54d:: ; 0xd54d catch mode progress?
|
||||
|
|
@ -1908,7 +1924,7 @@ wOBP1:: ; 0xd80e
|
|||
wd80f:: ; 0xd80f
|
||||
ds $1
|
||||
|
||||
wd810:: ; 0xd810
|
||||
wd810:: ; 0xd810 loaded by Func_9fa, RNG related
|
||||
ds $1
|
||||
|
||||
wd811:: ; 0xd811
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user