Made frame its own code.
This commit is contained in:
@@ -22,31 +22,9 @@ inline void conversationTextboxInit() {
|
||||
TEXTBOX_STATE = 0;
|
||||
|
||||
// Setup window data
|
||||
move_win(7, SCREENHEIGHT - (TEXTBOX_HEIGHT_IN_TILES * 8));
|
||||
// move_win(7, SCREENHEIGHT - (TEXTBOX_HEIGHT_IN_TILES * 8));
|
||||
set_win_data(FONT_DATA_POSITION, FONT_IMAGE_TILES, FONT_IMAGE);
|
||||
set_win_data(BORDER_DATA_POSITION, BORDER_IMAGE_TILES, BORDER_IMAGE);
|
||||
|
||||
// Corners
|
||||
TEXTBOX_TILES[0] = BORDER_TILE_TOP_LEFT;
|
||||
TEXTBOX_TILES[TEXTBOX_WIDTH_IN_TILES-1] = BORDER_TILE_TOP_RIGHT;
|
||||
TEXTBOX_TILES[TEXTBOX_TILES_MAX-1] = BORDER_TILE_BOTTOM_RIGHT;
|
||||
TEXTBOX_TILES[TEXTBOX_TILES_MAX-TEXTBOX_WIDTH_IN_TILES] = BORDER_TILE_BOTTOM_LEFT;
|
||||
|
||||
// Edges
|
||||
for(i = 1; i < TEXTBOX_WIDTH_IN_TILES - 1; i++) {
|
||||
TEXTBOX_TILES[i] = BORDER_TILE_TOP_CENTER;
|
||||
TEXTBOX_TILES[TEXTBOX_TILES_MAX - 1 - i] = BORDER_TILE_BOTTOM_CENTER;
|
||||
}
|
||||
for(i = 1; i < TEXTBOX_HEIGHT_IN_TILES - 1; i++) {
|
||||
TEXTBOX_TILES[TEXTBOX_WIDTH_IN_TILES * i] = BORDER_TILE_CENTER_LEFT;
|
||||
TEXTBOX_TILES[TEXTBOX_WIDTH_IN_TILES * (i+1) - 1] = BORDER_TILE_CENTER_RIGHT;
|
||||
}
|
||||
|
||||
set_win_tiles(
|
||||
0x00, 0x00,
|
||||
TEXTBOX_WIDTH_IN_TILES, TEXTBOX_HEIGHT_IN_TILES,
|
||||
TEXTBOX_TILES
|
||||
);
|
||||
}
|
||||
|
||||
void conversationTextboxSetText(char *text) {
|
||||
@@ -107,24 +85,16 @@ void conversationTextboxSetText(char *text) {
|
||||
// Now we have organized the string nicely we can prep for rendering. Fill the
|
||||
// tiles with blank chars.
|
||||
textboxFillBlank();
|
||||
|
||||
// Show the window layer.
|
||||
SHOW_WIN;
|
||||
}
|
||||
|
||||
inline void textboxFillBlank() {
|
||||
uint8_t i, j;
|
||||
uint8_t TEXTBOX_TILES[TEXTBOX_CHAR_ROWS * TEXTBOX_CHARS_PER_ROW];
|
||||
|
||||
for(j = 0; j < TEXTBOX_CHAR_ROWS; j++) {
|
||||
for(i = 0; i < TEXTBOX_CHARS_PER_ROW ; i++) {
|
||||
TEXTBOX_TILES[i + (j * TEXTBOX_CHARS_PER_ROW)] = TEXTBOX_TILE_BLANK;
|
||||
}
|
||||
}
|
||||
uint8_t TEXTBOX_TILES[TEXTBOX_WIDTH_IN_TILES * TEXTBOX_HEIGHT_IN_TILES];
|
||||
|
||||
set_win_tiles(
|
||||
0x01, 0x01,
|
||||
TEXTBOX_WIDTH_IN_TILES - 0x02, TEXTBOX_HEIGHT_IN_TILES - 0x02,
|
||||
frameBuffer(TEXTBOX_TILES, TEXTBOX_WIDTH_IN_TILES, TEXTBOX_HEIGHT_IN_TILES, TEXTBOX_TILE_BLANK);
|
||||
|
||||
set_bkg_tiles(
|
||||
0x00, TEXTBOX_WIN_Y,
|
||||
TEXTBOX_WIDTH_IN_TILES, TEXTBOX_HEIGHT_IN_TILES,
|
||||
TEXTBOX_TILES
|
||||
);
|
||||
}
|
||||
@@ -166,9 +136,9 @@ inline void conversationTextboxUpdate() {
|
||||
} else {
|
||||
tiles[0] = c - TEXTBOX_FONT_START + FONT_DATA_POSITION;
|
||||
|
||||
set_win_tiles(
|
||||
set_bkg_tiles(
|
||||
0x01 + (TEXTBOX_SCROLL % TEXTBOX_CHARS_PER_ROW),
|
||||
0x01 + (TEXTBOX_SCROLL / TEXTBOX_CHARS_PER_ROW),
|
||||
TEXTBOX_WIN_Y + 0x01 + (TEXTBOX_SCROLL / TEXTBOX_CHARS_PER_ROW),
|
||||
1, 1,
|
||||
tiles
|
||||
);
|
||||
|
Reference in New Issue
Block a user