Big challenge rolls.
This commit is contained in:
parent
100d40c4e6
commit
f4429139d4
BIN
bin/DMGTRIS.GBC
BIN
bin/DMGTRIS.GBC
Binary file not shown.
3272
bin/DMGTRIS.map
3272
bin/DMGTRIS.map
File diff suppressed because it is too large
Load Diff
Binary file not shown.
2920
bin/DMGTRIS.sym
2920
bin/DMGTRIS.sym
File diff suppressed because it is too large
Load Diff
|
@ -237,6 +237,26 @@ FromBackupField::
|
|||
ld bc, 10*24
|
||||
jp UnsafeMemCopy
|
||||
|
||||
GoBig::
|
||||
ld hl, wWideBlittedField
|
||||
ld bc, 10*22
|
||||
ld d, TILE_BLANK
|
||||
call UnsafeMemSet
|
||||
ld hl, wField
|
||||
ld bc, 10*24
|
||||
ld d, 0
|
||||
call UnsafeMemSet
|
||||
DEF row = 0
|
||||
REPT 14
|
||||
ld hl, wField + (row*10)
|
||||
ld bc, 5
|
||||
ld d, TILE_FIELD_EMPTY
|
||||
call UnsafeMemSet
|
||||
DEF row += 1
|
||||
ENDR
|
||||
ld a, STATE_GAMEPLAY_BIG
|
||||
ldh [hGameState], a
|
||||
ret
|
||||
|
||||
; Copies the field to the shadow field.
|
||||
; This shadow field is used to calculate whether or not the piece can fit.
|
||||
|
|
|
@ -46,6 +46,7 @@ wKillScreenActivationLevel: ds 2
|
|||
wKillScreenActivationLevelBCD: ds 2
|
||||
wLastLockLevel: ds 2
|
||||
wStaffRollDuration:: ds 2
|
||||
wBigStaffRoll:: ds 1
|
||||
wBonesActive:: ds 1
|
||||
wInvisActive:: ds 1
|
||||
wKillScreenActive:: ds 1
|
||||
|
@ -202,8 +203,10 @@ SpecialLevelInit:
|
|||
ld [wLastLockLevel+1], a
|
||||
ld a, [hl+]
|
||||
ld [wStaffRollDuration], a
|
||||
ld a, [hl]
|
||||
ld a, [hl+]
|
||||
ld [wStaffRollDuration+1], a
|
||||
ld a, [hl]
|
||||
ld [wBigStaffRoll], a
|
||||
ret
|
||||
|
||||
|
||||
|
|
|
@ -198,6 +198,7 @@ sDMGTSpeedCurveSpecialData::
|
|||
dw $9999 ; Same but in BCD.
|
||||
dw 9998 ; If the last level lock isn't at x99, where is it?
|
||||
dw 3600 ; How long does the staff roll last after the kill screen, in frames.
|
||||
db $FF ; Big mode in staff roll?
|
||||
|
||||
|
||||
sTGM1SpeedCurve::
|
||||
|
@ -337,6 +338,10 @@ sTGM1SpeedCurve::
|
|||
db 20, $00
|
||||
db 30, 30, 16, 30, 41
|
||||
|
||||
dw $0995, 995, $0999
|
||||
db 20, $00
|
||||
db 30, 30, 16, 30, 41
|
||||
|
||||
sTGM1SpeedCurveEnd::
|
||||
dw $FFFF
|
||||
|
||||
|
@ -347,6 +352,7 @@ sTGM1SpeedCurveSpecialData::
|
|||
dw $0999 ; Same but in BCD.
|
||||
dw 998 ; If the last level lock isn't at x99, where is it?
|
||||
dw 3600 ; How long does the staff roll last after the kill screen, in frames.
|
||||
db $FF ; Big mode in staff roll?
|
||||
|
||||
|
||||
sCHILSpeedCurve::
|
||||
|
@ -448,6 +454,7 @@ sCHILSpeedCurveSpecialData::
|
|||
dw $9999 ; Same but in BCD.
|
||||
dw 9998 ; If the last level lock isn't at x99, where is it?
|
||||
dw $FFFF ; How long does the staff roll last after the kill screen, in frames.
|
||||
db $00 ; Big mode in staff roll?
|
||||
|
||||
|
||||
sTGM3SpeedCurve::
|
||||
|
@ -607,8 +614,9 @@ sTGM3SpeedCurveSpecialData::
|
|||
dw 1299 ; When do blocks turn invisible?
|
||||
dw 1299 ; When is the hard kill screen?
|
||||
dw $1299 ; Same but in BCD.
|
||||
dw 1298 ; If the last level lock isn't at x99, where is it?
|
||||
dw 1298 ; If the last level lock isn't at x99, where is it?
|
||||
dw 3600 ; How long does the staff roll last after the kill screen, in frames.
|
||||
db $00 ; Big mode in staff roll?
|
||||
|
||||
sDEATSpeedCurve::
|
||||
dw $0000, 0, $0100
|
||||
|
@ -661,6 +669,7 @@ sDEATSpeedCurveSpecialData::
|
|||
dw $0999 ; Same but in BCD.
|
||||
dw 998 ; If the last level lock isn't at x99, where is it?
|
||||
dw 3600 ; How long does the staff roll last after the kill screen, in frames.
|
||||
db $00 ; Big mode in staff roll?
|
||||
|
||||
|
||||
sSHIRSpeedCurve::
|
||||
|
@ -697,11 +706,12 @@ sSHIRSpeedCurveEnd::
|
|||
|
||||
sSHIRSpeedCurveSpecialData::
|
||||
dw 900 ; When do we get bones?
|
||||
dw 1300 ; When do blocks turn invisible?
|
||||
dw $FFFF ; When do blocks turn invisible?
|
||||
dw 1300 ; When is the hard kill screen?
|
||||
dw $1300 ; Same but in BCD.
|
||||
dw $FFFF ; If the last level lock isn't at x99, where is it?
|
||||
dw 3600 ; How long does the staff roll last after the kill screen, in frames.
|
||||
db $FF ; Big mode in staff roll?
|
||||
|
||||
|
||||
sMYCOSpeedCurve::
|
||||
|
@ -815,6 +825,7 @@ sMYCOSpeedCurveSpecialData::
|
|||
dw $0300 ; Same but in BCD.
|
||||
dw $FFFF ; If the last level lock isn't at x99, where is it?
|
||||
dw $FFFF ; How long does the staff roll last after the kill screen, in frames.
|
||||
db $00 ; Big mode in staff roll?
|
||||
|
||||
|
||||
sSharedTiles::
|
||||
|
|
|
@ -40,6 +40,7 @@ hRequestedJingle: ds 1
|
|||
SECTION "Gameplay Variables", WRAM0
|
||||
wRollLine: ds 1
|
||||
wInStaffRoll:: ds 1
|
||||
wBigModeTransfered: ds 1
|
||||
|
||||
|
||||
SECTION "Gameplay Function Trampolines", ROM0
|
||||
|
@ -444,6 +445,10 @@ GamePlayEventLoopHandlerB::
|
|||
|
||||
|
||||
.preGameOverMode
|
||||
xor a, a
|
||||
ldh [hAState], a
|
||||
ldh [hBState], a
|
||||
|
||||
; Is it just a regular game over?
|
||||
ld a, [wKillScreenActive]
|
||||
cp a, $FF
|
||||
|
@ -668,6 +673,7 @@ GamePlayEventLoopHandlerB::
|
|||
ld hl, wField+(20*10)
|
||||
ld bc, 40
|
||||
call UnsafeMemCopy
|
||||
jr .drawStaticInfo
|
||||
|
||||
|
||||
; Prepare for staff roll.
|
||||
|
@ -702,11 +708,16 @@ GamePlayEventLoopHandlerB::
|
|||
|
||||
.predone
|
||||
call FieldClear
|
||||
call ToShadowField
|
||||
ld a, MODE_PREFETCHED_PIECE
|
||||
ldh [hMode], a
|
||||
ld a, $FF
|
||||
ld [wInStaffRoll], a
|
||||
ld a, [wBigStaffRoll]
|
||||
cp a, $FF
|
||||
jr nz, .staysmall
|
||||
call GoBig
|
||||
.staysmall
|
||||
call ToShadowField
|
||||
ldh a, [hNextPiece]
|
||||
ldh [hCurrentPiece], a
|
||||
call GetNextPiece
|
||||
|
@ -715,7 +726,7 @@ GamePlayEventLoopHandlerB::
|
|||
ld a, [hl+]
|
||||
ld c, a
|
||||
ld b, [hl]
|
||||
call StartCountdown
|
||||
jp StartCountdown
|
||||
|
||||
|
||||
; Always draw the score, level, next piece, and held piece.
|
||||
|
@ -1189,6 +1200,10 @@ GamePlayBigEventLoopHandlerB:
|
|||
|
||||
|
||||
.preGameOverMode
|
||||
xor a, a
|
||||
ldh [hAState], a
|
||||
ldh [hBState], a
|
||||
|
||||
; Is it just a regular game over?
|
||||
ld a, [wKillScreenActive]
|
||||
cp a, $FF
|
||||
|
@ -1414,6 +1429,7 @@ GamePlayBigEventLoopHandlerB:
|
|||
ld hl, wWideBlittedField+(20*10)
|
||||
ld bc, 20
|
||||
call UnsafeMemCopy
|
||||
jp .drawStaticInfo
|
||||
|
||||
|
||||
; Prepare for staff roll.
|
||||
|
|
Loading…
Reference in New Issue