Add congrats when called for.

This commit is contained in:
Randy Thiemann 2023-11-08 23:59:06 +01:00
parent 80a6e34486
commit c9e5eafde6
8 changed files with 1946 additions and 1854 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

@ -28,7 +28,7 @@ wGradePoints: ds 1
wInternalGrade: ds 1 wInternalGrade: ds 1
wDisplayedGrade:: ds 1 wDisplayedGrade:: ds 1
wEffectTimer:: ds 1 wEffectTimer:: ds 1
wRankingDisqualified: ds 1 wRankingDisqualified:: ds 1
wDecayCounter: ds 1 wDecayCounter: ds 1
wGradeGauge: ds 1 wGradeGauge: ds 1
wSMult: ds 1 wSMult: ds 1

View File

@ -67,6 +67,18 @@ sBigKill::
db " " db " "
db " QUIT [B] " db " QUIT [B] "
sBigYouAreGM::
db " YOU ARE "
db " "
db " GRAND "
db " "
db " MASTER! "
db " "
db " "
db " RETRY[A] "
db " "
db " QUIT [B] "
sBigPieceXOffsets:: ; How to draw each piece. X-offsets of the sprites. sBigPieceXOffsets:: ; How to draw each piece. X-offsets of the sprites.
db 0, 8, 16, 24 ; I db 0, 8, 16, 24 ; I
db 0, 8, 8, 16 ; Z db 0, 8, 8, 16 ; Z

View File

@ -67,6 +67,18 @@ sKill::
db " " db " "
db " QUIT [B] " db " QUIT [B] "
sYouAreGM::
db " YOU ARE "
db " "
db " GRAND "
db " "
db " MASTER! "
db " "
db " "
db " RETRY[A] "
db " "
db " QUIT [B] "
sPieceXOffsets:: ; How to draw each piece. X-offsets of the sprites. sPieceXOffsets:: ; How to draw each piece. X-offsets of the sprites.
db 0, 8, 16, 24 ; I db 0, 8, 16, 24 ; I
db 0, 8, 8, 16 ; Z db 0, 8, 8, 16 ; Z

View File

@ -404,10 +404,38 @@ GamePlayEventLoopHandlerB::
.preGameOverMode .preGameOverMode
; Is it just a regular game over?
ld a, [wKillScreenActive] ld a, [wKillScreenActive]
cp a, $FF cp a, $FF
jr nz, .regular jr nz, .regular
; GM congratulations?
ld a, [wDisplayedGrade]
cp a, GRADE_GM
jr z, .gm
; Condescend if we're not NONE grade.
cp a, GRADE_NONE
jr nz, .condescend
; And if we're DQeq.
ld a, [wRankingDisqualified]
cp a, $FF
jr z, .condescend
.gm
call FieldInit
ld de, sYouAreGM
ld hl, wField+(5*10)
ld bc, 100
call UnsafeMemCopy
ld a, MODE_GAME_OVER
ldh [hMode], a
jp .gameOverMode
.condescend
call FieldInit call FieldInit
ld de, sKill ld de, sKill
ld hl, wField+(5*10) ld hl, wField+(5*10)
@ -1037,10 +1065,38 @@ GamePlayBigEventLoopHandlerB:
.preGameOverMode .preGameOverMode
; Is it just a regular game over?
ld a, [wKillScreenActive] ld a, [wKillScreenActive]
cp a, $FF cp a, $FF
jr nz, .regular jr nz, .regular
; GM congratulations?
ld a, [wDisplayedGrade]
cp a, GRADE_GM
jr z, .gm
; Condescend if we're not NONE grade.
cp a, GRADE_NONE
jr nz, .condescend
; And if we're DQeq.
ld a, [wRankingDisqualified]
cp a, $FF
jr z, .condescend
.gm
call BigFieldInit
ld de, sBigYouAreGM
ld hl, wWideBlittedField+(3*10)
ld bc, 100
call UnsafeMemCopy
ld a, MODE_GAME_OVER
ldh [hMode], a
jp .gameOverMode
.condescend
call BigFieldInit call BigFieldInit
ld de, sBigKill ld de, sBigKill
ld hl, wWideBlittedField+(3*10) ld hl, wWideBlittedField+(3*10)