Made strings a bit better.

This commit is contained in:
2022-01-09 10:18:45 -08:00
parent d9281cffe2
commit 29215a3b6f
10 changed files with 59 additions and 53 deletions

View File

@@ -1,7 +1,8 @@
const GAME_STRINGS = { const GAME_STRINGS = {
'HELLO': 'Hello World!\nHow are you today?\nThank god!', 'HELLO': 'Hello World!\nHow are you today?\nThank god!',
'POKER_GAME_START': 'Poker game started!' 'POKER_GAME_START': 'Poker game started',
'POKER_GAME_TAKING_BLINDS': 'Blinds taken.'
}; };
module.exports = { GAME_STRINGS }; module.exports = { GAME_STRINGS };

View File

@@ -82,11 +82,16 @@ const compileC = (cFile) => {
} }
// Generate strings // Generate strings
let dataStringH = '#pragma once\n#include "libs.h"\n';
let dataStringC = '#include "STRINGS.h"\n';
Object.entries(GAME_STRINGS).forEach(entry => { Object.entries(GAME_STRINGS).forEach(entry => {
const [ name, str ] = entry; const [ name, str ] = entry;
const { fileH, fileC } = string2gb(str, name, DIR_GENERATED); const { dataH, dataC } = string2gb(str, name);
compileC(fileC); dataStringH += dataH+'\n', dataStringC += dataC+'\n';
}) });
fs.writeFileSync(path.join(DIR_GENERATED, 'STRINGS.h'), dataStringH);
fs.writeFileSync(path.join(DIR_GENERATED, 'STRINGS.c'), dataStringC);
compileC(path.join(DIR_GENERATED, 'STRINGS.c'));
// Gen imagery // Gen imagery
fs.readdirSync(DIR_IMAGES).forEach(img => { fs.readdirSync(DIR_IMAGES).forEach(img => {

View File

@@ -11,25 +11,20 @@ const getCodeFrom = l => {
return cc - FONT_CHARACTER_FIRST + FONT_DATA_POSITION return cc - FONT_CHARACTER_FIRST + FONT_DATA_POSITION
} }
const string2gb = (string, name, dirOut) => { const string2gb = (string, name) => {
const letters = []; const letters = [];
for(let i = 0; i < string.length; i++) { for(let i = 0; i < string.length; i++) {
letters.push(getCodeFrom(string[i])); letters.push(getCodeFrom(string[i]));
} }
let outH = '#include "libs.h"\n\n'; let dataH = `#define STR_${name}_LENGTH ${string.length}\n`;
outH += `#define STR_${name}_LENGTH ${string.length}\n`; dataH += `extern const uint8_t STR_${name}_DATA[];`;
outH += `extern const uint8_t STR_${name}_DATA[];`;
let outC = `#include "${name}.h"\n\n`; let dataC = `const uint8_t STR_${name}_DATA[] = {\n`;
outC += `const uint8_t STR_${name}_DATA[] = {\n` + arrayToString(letters) + `\n};`; dataC += arrayToString(letters);
dataC += `\n};`;
const fileH = path.join(dirOut, `${name}.h`); return { dataH, dataC };
const fileC = path.join(dirOut, `${name}.c`);
fs.writeFileSync(fileH, outH);
fs.writeFileSync(fileC, outC);
return { fileH, fileC };
} }
module.exports = { module.exports = {

View File

@@ -37,7 +37,8 @@ void conversationFadeUpdate() {
diff = TIME_CURRENT - TIME_FUTURE; diff = TIME_CURRENT - TIME_FUTURE;
// Now we work out the steps. Time is measured in steps which are made of // Now we work out the steps. Time is measured in steps which are made of
// parts of a second. // parts of a second. This code assumes that the screen STARTS at the correct
// shade.
if(diff == FADE_STEP) { if(diff == FADE_STEP) {
// First step // First step
BGP_REG = ( BGP_REG = (
@@ -47,7 +48,7 @@ void conversationFadeUpdate() {
COMMON_SHADE_BRIGHTER COMMON_SHADE_BRIGHTER
); );
} else if(diff == FADE_STEP * 2) { } else if(diff == FADE_STEP * 2) {
// First step // Second step
BGP_REG = ( BGP_REG = (
TIME_FUTURE_TYPE == TIME_FUTURE_TYPE_FADE_TO_BLACK ? COMMON_SHADE_DARKER : TIME_FUTURE_TYPE == TIME_FUTURE_TYPE_FADE_TO_BLACK ? COMMON_SHADE_DARKER :
TIME_FUTURE_TYPE == TIME_FUTURE_TYPE_FADE_TO_WHITE ? COMMON_SHADE_BRIGHTER : TIME_FUTURE_TYPE == TIME_FUTURE_TYPE_FADE_TO_WHITE ? COMMON_SHADE_BRIGHTER :
@@ -55,13 +56,12 @@ void conversationFadeUpdate() {
COMMON_SHADE_BRIGHT COMMON_SHADE_BRIGHT
); );
} else if(diff == FADE_STEP * 3) { } else if(diff == FADE_STEP * 3) {
// First step // Third step
BGP_REG = ( BGP_REG = (
TIME_FUTURE_TYPE == TIME_FUTURE_TYPE_FADE_TO_BLACK ? COMMON_SHADE_BLACK : TIME_FUTURE_TYPE == TIME_FUTURE_TYPE_FADE_TO_BLACK ? COMMON_SHADE_BLACK :
TIME_FUTURE_TYPE == TIME_FUTURE_TYPE_FADE_TO_WHITE ? COMMON_SHADE_WHITE : TIME_FUTURE_TYPE == TIME_FUTURE_TYPE_FADE_TO_WHITE ? COMMON_SHADE_WHITE :
COMMON_SHADE_NORMAL COMMON_SHADE_NORMAL
); );
} else if(diff == FADE_STEP * 4) {
TIME_FUTURE_TYPE = TIME_FUTURE_TYPE_NULL; TIME_FUTURE_TYPE = TIME_FUTURE_TYPE_NULL;
conversationQueueNext(); conversationQueueNext();
} }

View File

@@ -11,8 +11,8 @@
#include "pause.h" #include "pause.h"
#include "../display/common.h" #include "../display/common.h"
// There are 4 total shades, so this is all 4 shades in a second. // This is how many frames it takes to change each shade.
#define FADE_STEP TIME_PER_SECOND / COMMON_TILE_COUNT #define FADE_STEP 20
void conversationFadeToBlack(); void conversationFadeToBlack();
void conversationFadeFromBlack(); void conversationFadeFromBlack();

View File

@@ -9,46 +9,27 @@
#include "pause.h" #include "pause.h"
#include "textbox.h" #include "textbox.h"
#include "fade.h" #include "fade.h"
#include "../poker/poker.h"
uint16_t QUEUE_ITEM; uint16_t QUEUE_ITEM;
void conversationQueueInit() { void conversationQueueInit() {
QUEUE_ITEM = 0; QUEUE_ITEM = QUEUE_BEGIN;
} }
void conversationQueueNext() { void conversationQueueNext() {
BGB_printf("Queue item: %d\n", QUEUE_ITEM); BGB_printf("Queue item: %d\n", QUEUE_ITEM);
switch(QUEUE_ITEM) { switch(QUEUE_ITEM) {
// case 0: case QUEUE_BEGIN:
// conversationTextboxSetText(STR_POKER_GAME_START_DATA, STR_POKER_GAME_START_LENGTH); conversationTextboxString(POKER_GAME_START);
// conversationPause(3); QUEUE_ITEM = QUEUE_TAKE_BLINDS;
// QUEUE_ITEM++;
// break;
case 0:
conversationFadeToBlack();
QUEUE_ITEM++;
break;
case 1:
conversationFadeFromBlack();
QUEUE_ITEM++;
break;
case 2:
conversationFadeToWhite();
QUEUE_ITEM++;
break; break;
case 3: case QUEUE_TAKE_BLINDS:
conversationFadeFromWhite(); pokerTakeBlinds();
QUEUE_ITEM++; conversationTextboxString(POKER_GAME_TAKING_BLINDS);
QUEUE_ITEM = QUEUE_TAKE_BLINDS;
break; break;
// case 2:
// conversationTextboxSetText(STR_POKER_GAME_START_DATA, STR_POKER_GAME_START_LENGTH);
// QUEUE_ITEM++;
// break;
} }
} }

View File

@@ -7,10 +7,12 @@
#pragma once #pragma once
#include "../libs.h" #include "../libs.h"
#include "HELLO.h" #include "STRINGS.h"
#include "POKER_GAME_START.h"
extern uint16_t QUEUE_ITEM; extern uint16_t QUEUE_ITEM;
#define QUEUE_BEGIN 10
#define QUEUE_TAKE_BLINDS 20
void conversationQueueInit(); void conversationQueueInit();
void conversationQueueNext(); void conversationQueueNext();

View File

@@ -37,6 +37,10 @@
#define TEXTBOX_TILES_ROWS 3 #define TEXTBOX_TILES_ROWS 3
#define TEXTBOX_TILE_BLANK COMMON_TILE_3 #define TEXTBOX_TILE_BLANK COMMON_TILE_3
#define conversationTextboxString(name) conversationTextboxSetText(\
STR_ ## name ## _DATA, STR_ ## name ## _LENGTH\
)
extern char *TEXTBOX_TEXT; extern char *TEXTBOX_TEXT;
extern uint8_t TEXTBOX_TEXT_LENGTH; extern uint8_t TEXTBOX_TEXT_LENGTH;
extern uint8_t TEXTBOX_STATE; extern uint8_t TEXTBOX_STATE;

View File

@@ -18,6 +18,9 @@ uint8_t POKER_PLAYER_DEALER;
uint8_t POKER_PLAYER_SMALL_BLIND; uint8_t POKER_PLAYER_SMALL_BLIND;
uint8_t POKER_PLAYER_BIG_BLIND; uint8_t POKER_PLAYER_BIG_BLIND;
uint16_t POKER_GAME_BLINDS_CURRENT;
uint16_t POKER_GAME_POT;
void pokerInit() { void pokerInit() {
uint8_t i; uint8_t i;
@@ -30,6 +33,9 @@ void pokerInit() {
// Set up the initial state. // Set up the initial state.
// TODO: Should this be randomized? // TODO: Should this be randomized?
POKER_PLAYER_DEALER = 0; POKER_PLAYER_DEALER = 0;
POKER_GAME_POT = 0;
POKER_GAME_BLINDS_CURRENT = 10;
// Reset the round state (For the first round) // Reset the round state (For the first round)
pokerNewRound(); pokerNewRound();
@@ -85,4 +91,11 @@ void pokerNewRound() {
POKER_PLAYERS[i].hand[j] = POKER_DECK[POKER_DECK_SIZE--]; POKER_PLAYERS[i].hand[j] = POKER_DECK[POKER_DECK_SIZE--];
} }
} }
}
void pokerTakeBlinds() {
// TODO: I need to make sure the blind players even have the chips to blind.
POKER_PLAYERS[POKER_PLAYER_SMALL_BLIND].chips -= POKER_GAME_BLINDS_CURRENT;
POKER_PLAYERS[POKER_PLAYER_BIG_BLIND].chips -= (POKER_GAME_BLINDS_CURRENT*2);
POKER_GAME_POT += POKER_GAME_BLINDS_CURRENT * 3;
} }

View File

@@ -22,6 +22,11 @@ extern uint8_t POKER_PLAYER_DEALER;
extern uint8_t POKER_PLAYER_SMALL_BLIND; extern uint8_t POKER_PLAYER_SMALL_BLIND;
extern uint8_t POKER_PLAYER_BIG_BLIND; extern uint8_t POKER_PLAYER_BIG_BLIND;
extern uint16_t POKER_GAME_BLINDS_CURRENT;
extern uint16_t POKER_GAME_POT;
void pokerInit(); void pokerInit();
void pokerNewRound(); void pokerNewRound();
void pokerTakeBlinds();