Add shirase bones.

This commit is contained in:
Randy Thiemann 2023-11-06 05:26:54 +01:00
parent 6c3957f044
commit 4a9045ee63
9 changed files with 3151 additions and 3037 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -1763,7 +1763,19 @@ FieldProcess::
call DrawPiece
.postghost
; Draw pieces as bones past 1000 when in Shirase.
ld a, [wSpeedCurveState]
cp a, SCURVE_SHIR
jr nz, .nobone
ldh a, [hCLevel+CLEVEL_THOUSANDS]
cp a, 1
jr c, .nobone
ld a, TILE_BONE
ld [hWantedTile], a
jp .drawpiece
; If the lock delay is at the highest value, draw the piece normally.
.nobone
ldh a, [hCurrentPiece]
ld b, TILE_PIECE_0
add a, b
@ -3975,7 +3987,19 @@ BigFieldProcess::
call BigDrawPiece
.postghost
; Draw pieces as bones past 1000 when in Shirase.
ld a, [wSpeedCurveState]
cp a, SCURVE_SHIR
jr nz, .nobone
ld a, [hCLevel+CLEVEL_THOUSANDS]
cp a, 1
jr c, .nobone
ld a, TILE_BONE
ld [hWantedTile], a
jp .drawpiece
; If the lock delay is at the highest value, draw the piece normally.
.nobone
ldh a, [hCurrentPiece]
ld b, TILE_PIECE_0
add a, b

View File

@ -229,6 +229,8 @@ DEF TILE_GHOST EQU 107
DEF TILE_PIECE_SMALL_0 EQU 116
DEF TILE_PIECE_BONE EQU 104
DEF TILE_SMALL_0 EQU 213
DEF TILE_BONE EQU 104
DEF TILE_QUEUE_BONE EQU 105
DEF GAME_OVER_R10 EQU 147
DEF GAME_OVER_R12 EQU 167
DEF GAME_OVER_R14 EQU 187

View File

@ -825,10 +825,10 @@ sTitleTiles::
DB $82,$82,$82,$82,$EC,$EC,$00,$00
DB $44,$44,$CC,$CC,$44,$44,$44,$44
DB $44,$44,$44,$44,$EE,$EE,$00,$00
DB $4C,$4C,$A2,$A2,$A2,$A2,$A4,$A4
DB $A2,$A2,$A2,$A2,$4C,$4C,$00,$00
DB $E0,$E0,$4C,$4C,$18,$18,$82,$82
DB $8A,$8A,$8B,$8B,$98,$98,$00,$00
DB $44,$44,$AA,$AA,$A8,$A8,$AC,$AC
DB $AA,$AA,$AA,$AA,$44,$44,$00,$00
DB $7F,$7F,$22,$22,$14,$14,$08,$08
DB $14,$14,$22,$22,$7F,$7F,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00
DB $00,$00,$00,$00,$00,$00,$00,$00

Binary file not shown.

View File

@ -163,7 +163,35 @@ ApplyTells::
; Draws the next pieces as a sprite.
; Index of next piece in A.
ApplyNext::
; If we're in Shirase mode and past level 1000...
ld b, a
ld a, [wSpeedCurveState]
cp a, SCURVE_SHIR
jr nz, .nobone
ldh a, [hCLevel+CLEVEL_THOUSANDS]
cp a, 1
jr c, .nobone
.bone
; Color
ld a, 7
ld [wSPRNext1+3], a
ld [wSPRNext2+3], a
ld [wSPRNext3+3], a
ld [wSPRNext4+3], a
; Tile
ld a, TILE_QUEUE_BONE
ld [wSPRNext1+2], a
ld [wSPRNext2+2], a
ld [wSPRNext3+2], a
ld [wSPRNext4+2], a
ld a, b
jr .pos
.nobone
; Correct color
ld a, b
ld [wSPRNext1+3], a
ld [wSPRNext2+3], a
ld [wSPRNext3+3], a
@ -179,6 +207,7 @@ ApplyNext::
sub a, TILE_PIECE_0
sub a, 7
.pos
; X positions
ld b, a
ldh a, [hGameState]
@ -276,13 +305,56 @@ ApplyNext::
ld [wSPRQueue2A+2], a
inc a
ld [wSPRQueue2B+2], a
; Shirase bone colors
ld a, [wSpeedCurveState]
cp a, SCURVE_SHIR
jr nz, .done
ldh a, [hCLevel+CLEVEL_THOUSANDS]
cp a, 1
jr c, .done
ld a, 7
ld [wSPRQueue1A+3], a
ld [wSPRQueue1B+3], a
ld [wSPRQueue2A+3], a
ld [wSPRQueue2B+3], a
.done
jp GradeRendering
; Draws the held piece.
; Index of held piece in A.
ApplyHold::
; If we're in Shirase mode and past level 1000...
ld b, a
ld a, [wSpeedCurveState]
cp a, SCURVE_SHIR
jr nz, .nobone
ldh a, [hCLevel+CLEVEL_THOUSANDS]
cp a, 1
jr c, .nobone
.bone
; Color
ld a, 7
ld [wSPRHold1+3], a
ld [wSPRHold2+3], a
ld [wSPRHold3+3], a
ld [wSPRHold4+3], a
; Tile
ld a, TILE_QUEUE_BONE
ld [wSPRHold1+2], a
ld [wSPRHold2+2], a
ld [wSPRHold3+2], a
ld [wSPRHold4+2], a
ld a, b
jr .x
.nobone
; Correct color
ld a, b
ld [wSPRHold1+3], a
ld [wSPRHold2+3], a
ld [wSPRHold3+3], a