22 #ifndef NUVIE_CORE_CONVERSE_GUMP_H 23 #define NUVIE_CORE_CONVERSE_GUMP_H 25 #include "ultima/nuvie/misc/call_back.h" 26 #include "ultima/nuvie/gui/widgets/gui_widget.h" 27 #include "ultima/shared/std/containers.h" 28 #include "common/str.h" 45 unsigned char *npc_portrait;
46 unsigned char *avatar_portrait;
48 bool found_break_char;
51 uint8 converse_bg_color;
53 uint16 cursor_position;
56 uint8 portrait_height;
61 nuvie_game_t game_type;
68 void set_actor_portrait(
Actor *a);
69 unsigned char *create_framed_portrait(
Actor *a);
70 bool parse_token(
MsgText *token)
override;
71 Common::String get_token_string_at_pos(uint16 x, uint16 y)
override;
72 void display_string(
const Common::String &s,
Font *f,
bool include_on_map_window)
override;
73 void set_talking(
bool state,
Actor *actor =
nullptr)
override;
74 void set_font(uint8 font_type)
override {}
76 void set_solid_bg(
bool val) {
80 void Display(
bool full_redraw)
override;
83 GUI_status MouseUp(
int x,
int y, Events::MouseButton button)
override;
85 GUI_status MouseDown(
int x,
int y, Events::MouseButton button)
override {
88 GUI_status MouseMotion(
int x,
int y, uint8 state)
override {
91 GUI_status MouseEnter(uint8 state)
override {
94 GUI_status MouseLeave(uint8 state)
override {
97 GUI_status MouseClick(
int x,
int y, Events::MouseButton button)
override {
100 GUI_status MouseDouble(
int x,
int y, Events::MouseButton button)
override {
103 GUI_status MouseDelayed(
int x,
int y, Events::MouseButton button)
override {
106 GUI_status MouseHeld(
int x,
int y, Events::MouseButton button)
override {
110 void set_found_break_char(
bool val) {
111 found_break_char = val;
114 bool input_buf_add_char(
char c)
override;
115 bool input_buf_remove_char()
override;
117 bool is_converse_finished()
override {
118 return (is_holding_buffer_empty() && msg_buf.size() == 1 && msg_buf.back()->total_length == 0);
121 void drawCursor(uint16 x, uint16 y)
override;
127 void set_permitted_input(
const char *allowed)
override;
128 void clear_permitted_input()
override;
130 bool cursor_at_input_section()
const {
131 return (keyword_list && cursor_position == keyword_list->
size());
133 void cursor_reset() {
136 void cursor_move_to_input() {
137 cursor_position = keyword_list ? keyword_list->
size() : 0;
145 void parse_fm_towns_token(
MsgText *token);
148 unsigned char *get_portrait_data(
Actor *a);
Definition: configuration.h:61
size_type size() const
Definition: list.h:237
Definition: converse_gump.h:39
Definition: detection.h:27
Definition: msg_scroll.h:52
Definition: keyboard.h:294