Rework the LHS side of the game screen to have some BuGS branding. Move the number of lives indicator to the left and add a player 1 and player 2 section.

This commit is contained in:
Jeremy Rand 2020-10-27 23:59:06 -04:00
parent 62fcc82790
commit 0fa9b45f45
5 changed files with 360 additions and 12 deletions

View File

@ -123,6 +123,9 @@ TILE_SOLID2 gequ 50*4
TILE_SOLID3 gequ 51*4
TILE_PLAYER gequ 52*4
TILE_LETTER_WHITE_U gequ 53*4
TILE_LETTER_GREEN_G gequ 54*4
TILE_LETTER_GREEN_S gequ 55*4
TILE_POISON_A_MUSHROOM gequ TILE_POISON_MUSHROOM4-TILE_MUSHROOM4
@ -213,6 +216,9 @@ tileJumpTable dc a4'solid0'
dc a4'solid2'
dc a4'solid3'
dc a4'drawPlayer'
dc a4'letterWhiteU'
dc a4'letterGreenG'
dc a4'letterGreenS'
EXPLOSION_LAST_OFFSET gequ 20

View File

@ -14,7 +14,8 @@
score start
using globalData
TILE_SCORE_ONES equ LHS_FIRST_TILE+LHS_NUM_TILES_WIDE+LHS_NUM_TILES_WIDE+LHS_NUM_TILES_WIDE+LHS_NUM_TILES_WIDE-2
TILE_SCORE_7TH_ROW equ LHS_FIRST_TILE+7*LHS_NUM_TILES_WIDE
TILE_SCORE_ONES equ TILE_SCORE_7TH_ROW-2
TILE_SCORE_ONES_OFFSET equ TILE_SCORE_ONES*SIZEOF_TILE_INFO
TILE_SCORE_TENS_OFFSET equ TILE_SCORE_ONES_OFFSET-SIZEOF_TILE_INFO
TILE_SCORE_HUNDREDS_OFFSET equ TILE_SCORE_TENS_OFFSET-SIZEOF_TILE_INFO

View File

@ -1609,4 +1609,181 @@ letterZ entry
_spriteFooter
rtl
letterWhiteU entry
_spriteHeader
ldx #$0000 ; Black, Black, Black, Black
ldy #$3003 ; Black, Off-white, Off-white, Black
phx
phx
adc #$00a0
tcs
phx
phx
adc #$00a0
tcs
phx
phx
adc #$00a0
tcs
phy
pea $0033
adc #$00a0
tcs
phy
pea $0033
adc #$00a0
tcs
phy
pea $0033
adc #$00a0
tcs
pea $3033
pea $3033
adc #$00a0
tcs
pea $3030
pea $3303
_spriteFooter
rtl
letterGreenG entry
_spriteHeader
; Colours #$0000 - Black, Black, Black, Black (x4)
; #$1100 - Black, Black, Green, Green (x2)
; #$1011 - Green, Green, Red, Black (x3)
; #$1001 - Black, Green, Green, Black (x4)
; #$0011 - Green, Green, Black, Black (x3)
;
ldx #$1001 ; Black, Green, Green, Black
ldy #$0000 ; Black, Black, Black, Black
phy
phy
adc #$00a0
tcs
pea $1011
pea $1100
adc #$00a0
tcs
phy
phx
adc #$00a0
tcs
phy
pea $0011
adc #$00a0
tcs
pea $1011
pea $0011
adc #$00a0
tcs
phx
pea $0011
adc #$00a0
tcs
phx
phx
adc #$00a0
tcs
pea $1011
pea $1100
_spriteFooter
rtl
letterGreenS entry
_spriteHeader
; Colours #$0000 - Black, Black, Black, Black (x4)
; #$1101 - Black, Green, Green, Green (x3)
; #$0010 - Green, Black, Black, Black (x1)
; #$0011 - Green, Green, Black, Black (x6)
; #$1001 - Black, Red, Green, Black (x2)
;
ldx #$0000 ; Black, Black, Black, Black
ldy #$0011 ; Green, Green, Black, Black
phx
phx
adc #$00a0
tcs
pea $0010
pea $1101
adc #$00a0
tcs
phy
phy
adc #$00a0
tcs
phx
phy
adc #$00a0
tcs
phy
pea $1101
adc #$00a0
tcs
pea $1001
phx
adc #$00a0
tcs
pea $1001
phy
adc #$00a0
tcs
phy
pea $1101
_spriteFooter
rtl
end

View File

@ -197,15 +197,53 @@ void initNonGameTiles(void)
{
unsigned int i;
tTileNum tileNum;
numPlayers = STARTING_NUM_PLAYERS;
for (i = 0; i < numPlayers; i++)
{
tileNum = RHS_FIRST_TILE + i;
tileType[tileNum] = TILE_PLAYER;
ADD_DIRTY_NON_GAME_TILE(tileNum);
}
tileNum = LHS_FIRST_TILE + (1 * LHS_NUM_TILES_WIDE) + 6;
tileNum = LHS_FIRST_TILE + (LHS_NUM_TILES_WIDE / 2);
tileType[tileNum] = TILE_LETTER_B;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_WHITE_U;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_GREEN_G;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_GREEN_S;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum = LHS_FIRST_TILE + (3 * LHS_NUM_TILES_WIDE);
tileType[tileNum] = TILE_LETTER_P;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_L;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_A;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_Y;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_E;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_R;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileNum++;
tileType[tileNum] = TILE_NUMBER_1;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum = LHS_FIRST_TILE + (5 * LHS_NUM_TILES_WIDE) + 2;
tileType[tileNum] = TILE_LETTER_S;
ADD_DIRTY_NON_GAME_TILE(tileNum);
@ -229,11 +267,44 @@ void initNonGameTiles(void)
tileType[tileNum] = TILE_SYMBOL_COLON;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum = LHS_FIRST_TILE + (4 * LHS_NUM_TILES_WIDE) - 2;
tileNum = LHS_FIRST_TILE + (7 * LHS_NUM_TILES_WIDE) - 2;
tileType[tileNum] = TILE_NUMBER_0;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum = LHS_FIRST_TILE + (12 * LHS_NUM_TILES_WIDE) + 1;
tileNum = LHS_FIRST_TILE + (8 * LHS_NUM_TILES_WIDE) + 2;
tileType[tileNum] = TILE_LETTER_L;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_I;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_V;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_E;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_S;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_SYMBOL_COLON;
ADD_DIRTY_NON_GAME_TILE(tileNum);
numPlayers = STARTING_NUM_PLAYERS;
tileNum = LHS_FIRST_TILE + (10 * LHS_NUM_TILES_WIDE) - 2;
for (i = 0; i < numPlayers; i++)
{
tileType[tileNum] = TILE_PLAYER;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum--;
}
tileNum = LHS_FIRST_TILE + (12 * LHS_NUM_TILES_WIDE);
tileType[tileNum] = TILE_LETTER_H;
ADD_DIRTY_NON_GAME_TILE(tileNum);
@ -274,9 +345,99 @@ void initNonGameTiles(void)
tileType[tileNum] = TILE_SYMBOL_COLON;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum = LHS_FIRST_TILE + (15 * LHS_NUM_TILES_WIDE) - 2;
tileNum = LHS_FIRST_TILE + (14 * LHS_NUM_TILES_WIDE) - 2;
tileType[tileNum] = TILE_NUMBER_0;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum = LHS_FIRST_TILE + (16 * LHS_NUM_TILES_WIDE);
tileType[tileNum] = TILE_LETTER_P;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_L;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_A;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_Y;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_E;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_R;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileNum++;
tileType[tileNum] = TILE_NUMBER_2;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum = LHS_FIRST_TILE + (18 * LHS_NUM_TILES_WIDE) + 2;
tileType[tileNum] = TILE_LETTER_S;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_C;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_O;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_R;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_E;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_SYMBOL_COLON;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum = LHS_FIRST_TILE + (20 * LHS_NUM_TILES_WIDE) - 2;
tileType[tileNum] = TILE_NUMBER_0;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum = LHS_FIRST_TILE + (21 * LHS_NUM_TILES_WIDE) + 2;
tileType[tileNum] = TILE_LETTER_L;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_I;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_V;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_E;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_LETTER_S;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum++;
tileType[tileNum] = TILE_SYMBOL_COLON;
ADD_DIRTY_NON_GAME_TILE(tileNum);
numPlayers = STARTING_NUM_PLAYERS;
tileNum = LHS_FIRST_TILE + (23 * LHS_NUM_TILES_WIDE) - 2;
for (i = 0; i < numPlayers; i++)
{
tileType[tileNum] = TILE_PLAYER;
ADD_DIRTY_NON_GAME_TILE(tileNum);
tileNum--;
}
}

View File

@ -100,6 +100,9 @@ typedef enum {
TILE_SOLID3 = 51 * 4,
TILE_PLAYER = 52 * 4,
TILE_LETTER_WHITE_U = 53 * 4,
TILE_LETTER_GREEN_G = 54 * 4,
TILE_LETTER_GREEN_S = 55 * 4,
} tTileType;