52 lines
1.7 KiB
C
52 lines
1.7 KiB
C
/**
|
|
* Copyright (c) 2022 Dominic Masters
|
|
*
|
|
* This software is released under the MIT License.
|
|
* https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
#pragma once
|
|
#include "../libs.h"
|
|
#include "../util.h"
|
|
#include "../input.h"
|
|
#include "../display/common.h"
|
|
#include "../display/tilemap.h"
|
|
#include "queue.h"
|
|
|
|
#define BORDER_TILE_TOP_LEFT BORDER_DATA_POSITION
|
|
#define BORDER_TILE_TOP_CENTER BORDER_TILE_TOP_LEFT + 1
|
|
#define BORDER_TILE_TOP_RIGHT BORDER_TILE_TOP_CENTER + 1
|
|
#define BORDER_TILE_CENTER_LEFT BORDER_TILE_TOP_RIGHT + 1
|
|
#define BORDER_TILE_CENTER BORDER_TILE_CENTER_LEFT + 1
|
|
#define BORDER_TILE_CENTER_RIGHT BORDER_TILE_CENTER + 1
|
|
#define BORDER_TILE_BOTTOM_LEFT BORDER_TILE_CENTER_RIGHT + 1
|
|
#define BORDER_TILE_BOTTOM_CENTER BORDER_TILE_BOTTOM_LEFT + 1
|
|
#define BORDER_TILE_BOTTOM_RIGHT BORDER_TILE_BOTTOM_CENTER + 1
|
|
|
|
#define TEXTBOX_STATE_VISIBLE (1 << 0)
|
|
#define TEXTBOX_STATE_SCROLLED (1 << 1)
|
|
|
|
#define TEXTBOX_WIDTH_IN_TILES 20
|
|
#define TEXTBOX_HEIGHT_IN_TILES 5
|
|
#define TEXTBOX_TILES_MAX (TEXTBOX_WIDTH_IN_TILES * TEXTBOX_HEIGHT_IN_TILES)
|
|
|
|
#define TEXTBOX_CHARS_PER_ROW (TEXTBOX_WIDTH_IN_TILES - 2)
|
|
#define TEXTBOX_CHAR_ROWS (TEXTBOX_HEIGHT_IN_TILES - 2)
|
|
|
|
#define TEXTBOX_TILES_PER_ROW TEXTBOX_WIDTH_IN_TILES
|
|
#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;
|
|
extern uint8_t TEXTBOX_SCROLL;
|
|
extern uint8_t TEXTBOX_CHAR_POSITION;
|
|
|
|
inline void conversationTextboxInit();
|
|
void conversationTextboxSetText(char *text, uint8_t length);
|
|
inline void conversationTextboxUpdate(); |