Start with one held piece to mitigate lack of 3-piece-preview.
This commit is contained in:
		
							parent
							
								
									9b347b9e76
								
							
						
					
					
						commit
						65a74661a7
					
				| 
						 | 
					@ -64,6 +64,10 @@ RNGInit::
 | 
				
			||||||
    ld bc, 7
 | 
					    ld bc, 7
 | 
				
			||||||
    call UnsafeMemCopy
 | 
					    call UnsafeMemCopy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ; Start with a random piece held.
 | 
				
			||||||
 | 
					    call Next7Piece
 | 
				
			||||||
 | 
					    ldh [hHeldPiece], a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ; If we're in HELL mode, we don't care about anything but a random piece to start with.
 | 
					    ; If we're in HELL mode, we don't care about anything but a random piece to start with.
 | 
				
			||||||
    ldh a, [hSimulationMode]
 | 
					    ldh a, [hSimulationMode]
 | 
				
			||||||
    cp a, MODE_HELL
 | 
					    cp a, MODE_HELL
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,7 +39,7 @@ hCurrentPiece:: ds 1
 | 
				
			||||||
hCurrentPieceX:: ds 1
 | 
					hCurrentPieceX:: ds 1
 | 
				
			||||||
hCurrentPieceY:: ds 1
 | 
					hCurrentPieceY:: ds 1
 | 
				
			||||||
hCurrentPieceRotationState:: ds 1
 | 
					hCurrentPieceRotationState:: ds 1
 | 
				
			||||||
hHeldPiece: ds 1
 | 
					hHeldPiece:: ds 1
 | 
				
			||||||
hHoldSpent:: ds 1
 | 
					hHoldSpent:: ds 1
 | 
				
			||||||
hSkipJingle: ds 1
 | 
					hSkipJingle: ds 1
 | 
				
			||||||
hMode: ds 1
 | 
					hMode: ds 1
 | 
				
			||||||
| 
						 | 
					@ -91,9 +91,7 @@ SwitchToGameplay::
 | 
				
			||||||
    call LevelInit
 | 
					    call LevelInit
 | 
				
			||||||
    call FieldInit
 | 
					    call FieldInit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ; We don't start with a held piece.
 | 
					    ; We don't start with hold spent.
 | 
				
			||||||
    ld a, PIECE_NONE
 | 
					 | 
				
			||||||
    ldh [hHeldPiece], a
 | 
					 | 
				
			||||||
    xor a, a
 | 
					    xor a, a
 | 
				
			||||||
    ldh [hHoldSpent], a
 | 
					    ldh [hHoldSpent], a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -464,8 +462,6 @@ gameOverMode:
 | 
				
			||||||
    call ScoreInit
 | 
					    call ScoreInit
 | 
				
			||||||
    call LevelInit
 | 
					    call LevelInit
 | 
				
			||||||
    call FieldInit
 | 
					    call FieldInit
 | 
				
			||||||
    ld a, PIECE_NONE
 | 
					 | 
				
			||||||
    ldh [hHeldPiece], a
 | 
					 | 
				
			||||||
    xor a, a
 | 
					    xor a, a
 | 
				
			||||||
    ldh [hHoldSpent], a
 | 
					    ldh [hHoldSpent], a
 | 
				
			||||||
    ld a, MODE_LEADY
 | 
					    ld a, MODE_LEADY
 | 
				
			||||||
| 
						 | 
					@ -586,18 +582,7 @@ DoHold:
 | 
				
			||||||
    ldh [hCurrentPieceRotationState], a
 | 
					    ldh [hCurrentPieceRotationState], a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.doHoldOperation
 | 
					.doHoldOperation
 | 
				
			||||||
    ; If we're not holding a piece, hold the current piece and get a new one.
 | 
					    ld b, a
 | 
				
			||||||
    ldh a, [hHeldPiece]
 | 
					 | 
				
			||||||
    cp a, PIECE_NONE
 | 
					 | 
				
			||||||
    jr nz, :+
 | 
					 | 
				
			||||||
    ldh a, [hCurrentPiece]
 | 
					 | 
				
			||||||
    ldh [hHeldPiece], a
 | 
					 | 
				
			||||||
    ldh a, [hNextPiece]
 | 
					 | 
				
			||||||
    ldh [hCurrentPiece], a
 | 
					 | 
				
			||||||
    call GetNextPiece
 | 
					 | 
				
			||||||
    ret
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
:   ld b, a
 | 
					 | 
				
			||||||
    ldh a, [hCurrentPiece]
 | 
					    ldh a, [hCurrentPiece]
 | 
				
			||||||
    ldh [hHeldPiece], a
 | 
					    ldh [hHeldPiece], a
 | 
				
			||||||
    ld a, b
 | 
					    ld a, b
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue