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 = {
'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 };

View File

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

View File

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

View File

@@ -37,7 +37,8 @@ void conversationFadeUpdate() {
diff = TIME_CURRENT - TIME_FUTURE;
// 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) {
// First step
BGP_REG = (
@@ -47,7 +48,7 @@ void conversationFadeUpdate() {
COMMON_SHADE_BRIGHTER
);
} else if(diff == FADE_STEP * 2) {
// First step
// Second step
BGP_REG = (
TIME_FUTURE_TYPE == TIME_FUTURE_TYPE_FADE_TO_BLACK ? COMMON_SHADE_DARKER :
TIME_FUTURE_TYPE == TIME_FUTURE_TYPE_FADE_TO_WHITE ? COMMON_SHADE_BRIGHTER :
@@ -55,13 +56,12 @@ void conversationFadeUpdate() {
COMMON_SHADE_BRIGHT
);
} else if(diff == FADE_STEP * 3) {
// First step
// Third step
BGP_REG = (
TIME_FUTURE_TYPE == TIME_FUTURE_TYPE_FADE_TO_BLACK ? COMMON_SHADE_BLACK :
TIME_FUTURE_TYPE == TIME_FUTURE_TYPE_FADE_TO_WHITE ? COMMON_SHADE_WHITE :
COMMON_SHADE_NORMAL
);
} else if(diff == FADE_STEP * 4) {
TIME_FUTURE_TYPE = TIME_FUTURE_TYPE_NULL;
conversationQueueNext();
}

View File

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

View File

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

View File

@@ -37,6 +37,10 @@
#define TEXTBOX_TILES_ROWS 3
#define TEXTBOX_TILE_BLANK COMMON_TILE_3
#define conversationTextboxString(name) conversationTextboxSetText(\
STR_ ## name ## _DATA, STR_ ## name ## _LENGTH\
)
extern char *TEXTBOX_TEXT;
extern uint8_t TEXTBOX_TEXT_LENGTH;
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_BIG_BLIND;
uint16_t POKER_GAME_BLINDS_CURRENT;
uint16_t POKER_GAME_POT;
void pokerInit() {
uint8_t i;
@@ -30,6 +33,9 @@ void pokerInit() {
// Set up the initial state.
// TODO: Should this be randomized?
POKER_PLAYER_DEALER = 0;
POKER_GAME_POT = 0;
POKER_GAME_BLINDS_CURRENT = 10;
// Reset the round state (For the first round)
pokerNewRound();
@@ -86,3 +92,10 @@ void pokerNewRound() {
}
}
}
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_BIG_BLIND;
extern uint16_t POKER_GAME_BLINDS_CURRENT;
extern uint16_t POKER_GAME_POT;
void pokerInit();
void pokerNewRound();
void pokerTakeBlinds();