diff --git a/CMakeLists.txt b/CMakeLists.txt
index 485b5e940f..18abeeb6ae 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -618,6 +618,7 @@ set(WINDOW_FILES
${PROJECT_SOURCE_DIR}/src/window/editor/start_year.c
${PROJECT_SOURCE_DIR}/src/window/editor/starting_conditions.c
${PROJECT_SOURCE_DIR}/src/window/editor/win_criteria.c
+ ${PROJECT_SOURCE_DIR}/src/window/epithets.c
${PROJECT_SOURCE_DIR}/src/window/cck_selection.c
${PROJECT_SOURCE_DIR}/src/window/city.c
${PROJECT_SOURCE_DIR}/src/window/config.c
diff --git a/res/assets/Graphics/ui.xml b/res/assets/Graphics/ui.xml
index 97bbf4099d..5302bc8543 100644
--- a/res/assets/Graphics/ui.xml
+++ b/res/assets/Graphics/ui.xml
@@ -45,6 +45,7 @@
+
diff --git a/src/graphics/color.h b/src/graphics/color.h
index 478594e9cb..b63cf981bb 100644
--- a/src/graphics/color.h
+++ b/src/graphics/color.h
@@ -17,7 +17,9 @@ typedef uint32_t color_t;
#define COLOR_SIDEBAR 0xffbdb592
#define COLOR_BORDER_GREEN 0xfffae094
+#define COLOR_BORDER_ORANGE 0xffffb584
#define COLOR_BORDER_RED 0xffac5446
+#define COLOR_BORDER_BROWN 0xff684a34
#define COLOR_FONT_RED COLOR_RED
#define COLOR_FONT_BLUE 0xff0055ff
diff --git a/src/graphics/window.h b/src/graphics/window.h
index db6872dcf6..7f8b87407b 100644
--- a/src/graphics/window.h
+++ b/src/graphics/window.h
@@ -47,6 +47,7 @@ typedef enum {
WINDOW_TRADE_PRICES,
WINDOW_RESOURCE_SETTINGS,
WINDOW_HOLD_FESTIVAL,
+ WINDOW_EPITHETS,
// empire and dialog
WINDOW_EMPIRE,
WINDOW_TRADE_OPENED,
diff --git a/src/translation/english.c b/src/translation/english.c
index 22e7d8fc21..9be50b9bd2 100644
--- a/src/translation/english.c
+++ b/src/translation/english.c
@@ -1416,6 +1416,14 @@ static translation_string all_strings[] = {
{TR_EDITOR_CAESAR_SALARY, "Caesar's salary"},
{TR_CITY_MESSAGE_TEXT_CARAVANSERAI_COMPLETE, "The caravanserai is completed. New commercial horizons are emerging. Caravans from all over the world are eager to come and trade in your city."},
{TR_CONFIG_SHOW_DESIRABILITY_RANGE, "Show desirability when building mausoleums and nymphaeums"},
+ {TR_WINDOW_ADVISOR_EPITHETS, "Gods Epithets"},
+ {TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP, "What the gods can grant you"},
+ {TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_CERES, "Ceres gifts"},
+ {TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_NEPTUNE, "Neptune gifts"},
+ {TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_MERCURY, "Mercury gifts"},
+ {TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_MARS, "Mars gifts"},
+ {TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_VENUS, "Venus gifts"},
+ {TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_JUPITER, "Jupiter gifts"},
};
void translation_english(const translation_string **strings, int *num_strings)
diff --git a/src/translation/french.c b/src/translation/french.c
index 719c368f41..c557e4cfe2 100644
--- a/src/translation/french.c
+++ b/src/translation/french.c
@@ -1402,13 +1402,21 @@ static translation_string all_strings[] = {
{TR_WINDOW_CAMPAIGN_NO_DESC, "Pas de description"},
{TR_WINDOW_ORIGINAL_CAMPAIGN_NAME, "Campagne d'origine" },
{TR_WINDOW_ORIGINAL_CAMPAIGN_DESC, "Campagne originelle de Caesar III, dans toute sa gloire d'antan et ses 25 ans d'âge."},
- {TR_WINDOW_INVALID_CAMPAIGN_TITLE, "Fichier de campagne invalide" },
+ {TR_WINDOW_INVALID_CAMPAIGN_TITLE, "Fichier de campagne invalide" },
{TR_WINDOW_INVALID_CAMPAIGN_TEXT, "Le fichier de campagne est invalide.\nVeuillez consulter augustus-log.txt dans votre répertoire Augustus pour plus de détails."},
{TR_WINDOW_CAMPAIGN_MISSION_FAILED_TO_LOAD_TITLE, "Impossible d'ouvrir la mission"},
{TR_WINDOW_CAMPAIGN_MISSION_FAILED_TO_LOAD_TEXT, "La mission choisie ne peut être ouverte.\nVeuillez consulter augustus-log.txt dans votre répertoire Augustus pour plus de détails."},
{TR_EDITOR_CAESAR_SALARY, "Salaire de Caesar"},
{TR_CITY_MESSAGE_TEXT_CARAVANSERAI_COMPLETE, "Le caravanserail est achevé. De nouveaux horizons commerciaux se profilent. Les caravanes des quatre coins du monde sont enthousiastes à l'idée de venir commercer dans votre cité."},
{TR_CONFIG_SHOW_DESIRABILITY_RANGE , "Voir l'attrait des mausolées et des nymphées lors du placement"},
+ {TR_WINDOW_ADVISOR_EPITHETS, "Epithètes des dieux"},
+ {TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP, "Ce que les dieux peuvent vous accorder"},
+ {TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_CERES, "Dons de Ceres"},
+ {TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_NEPTUNE, "Dons de Neptune"},
+ {TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_MERCURY, "Dons de Mercury"},
+ {TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_MARS, "Dons de Mars"},
+ {TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_VENUS, "Dons de Venus"},
+ {TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_JUPITER, "Dons de Jupiter"},
};
void translation_french(const translation_string **strings, int *num_strings)
diff --git a/src/translation/translation.h b/src/translation/translation.h
index ce1e3f723a..fefe0ff78e 100644
--- a/src/translation/translation.h
+++ b/src/translation/translation.h
@@ -1376,7 +1376,7 @@ typedef enum {
TR_BUILDING_OVERGROWN_GARDENS,
TR_WINDOW_ADVISOR_RELIGION_ALTARS_HEADER,
TR_REPLAY_MAP_NOT_FOUND_TITLE,
- TR_REPLAY_MAP_NOT_FOUND_MESSAGE,
+ TR_REPLAY_MAP_NOT_FOUND_MESSAGE,
TR_BUILDING_FORT_AUXILIA_INFANTRY,
TR_WINDOW_ADVISOR_MILITARY_INFANTRY,
TR_TOOLTIP_BUTTON_ROADBLOCK_ORDER_ACCEPT_ALL,
@@ -1410,6 +1410,14 @@ typedef enum {
TR_EDITOR_CAESAR_SALARY,
TR_CITY_MESSAGE_TEXT_CARAVANSERAI_COMPLETE,
TR_CONFIG_SHOW_DESIRABILITY_RANGE,
+ TR_WINDOW_ADVISOR_EPITHETS,
+ TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP,
+ TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_CERES,
+ TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_NEPTUNE,
+ TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_MERCURY,
+ TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_MARS,
+ TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_VENUS,
+ TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_JUPITER,
TRANSLATION_MAX_KEY
} translation_key;
diff --git a/src/window/advisor/military.c b/src/window/advisor/military.c
index d240e07749..1be2279926 100644
--- a/src/window/advisor/military.c
+++ b/src/window/advisor/military.c
@@ -30,7 +30,7 @@ static void button_empire_service(int legion_id, int param2);
static void button_return_all_to_fort(int param1, int param2);
static void on_scroll(void);
-static scrollbar_type scrollbar = { 592, 70, 272, 576, MAX_VISIBLE_LEGIONS, on_scroll };
+static scrollbar_type scrollbar = { 592, 70, 270, 576, MAX_VISIBLE_LEGIONS, on_scroll, 0, 4};
static generic_button fort_buttons[] = {
{384, 83, 30, 30, button_go_to_legion, button_none, 1, 0},
diff --git a/src/window/advisor/religion.c b/src/window/advisor/religion.c
index 1e31fa10d1..e32430df0b 100644
--- a/src/window/advisor/religion.c
+++ b/src/window/advisor/religion.c
@@ -12,11 +12,14 @@
#include "graphics/panel.h"
#include "graphics/text.h"
#include "window/hold_festival.h"
+#include "window/epithets.h"
static void button_hold_festival(int param1, int param2);
+static void button_epithets(int param1, int param2);
static generic_button hold_festival_button[] = {
{102, 340, 300, 20, button_hold_festival, button_none, 0, 0},
+ {590, 20, 32, 24, button_epithets, button_none, 0, 1}
};
static int focus_button_id;
@@ -170,11 +173,15 @@ static void draw_foreground(void)
if (!city_festival_is_planned()) {
button_border_draw(102, 335, 300, 20, focus_button_id == 1);
}
+
+ button_border_draw(590, 20, 32, 24, focus_button_id == 2);
+
+ image_draw(982, 594, 24, COLOR_MASK_NONE, SCALE_NONE);
}
static int handle_mouse(const mouse *m)
{
- return generic_buttons_handle_mouse(m, 0, 0, hold_festival_button, 1, &focus_button_id);
+ return generic_buttons_handle_mouse(m, 0, 0, hold_festival_button, 2, &focus_button_id);
}
static void button_hold_festival(int param1, int param2)
@@ -184,10 +191,17 @@ static void button_hold_festival(int param1, int param2)
}
}
+static void button_epithets(int param1, int param2)
+{
+ window_epithets_show();
+}
+
static void get_tooltip_text(advisor_tooltip_result *r)
{
- if (focus_button_id) {
+ if (focus_button_id == 1) {
r->text_id = 112;
+ } else if (focus_button_id == 2) {
+ r->translation_key = TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP;
}
}
diff --git a/src/window/advisor/trade.c b/src/window/advisor/trade.c
index 938b4b4b36..3df36a62a1 100644
--- a/src/window/advisor/trade.c
+++ b/src/window/advisor/trade.c
@@ -194,10 +194,6 @@ static int draw_background(void)
button_border_draw(160, 392, 200, 24, data.focus_button_id == 2);
lang_text_draw_centered(54, 30, 160, 398, 200, FONT_NORMAL_BLACK);
- if (data.list.size > MAX_VISIBLE_ROWS) {
- inner_panel_draw(scrollbar.x + 4, scrollbar.y + 28, 2, scrollbar.height / BLOCK_SIZE - 3);
- }
-
int land_policy_available = building_monument_working(BUILDING_CARAVANSERAI);
int sea_policy_available = building_monument_working(BUILDING_LIGHTHOUSE);
diff --git a/src/window/building/culture.c b/src/window/building/culture.c
index 1990caad5a..20c4f17f01 100644
--- a/src/window/building/culture.c
+++ b/src/window/building/culture.c
@@ -947,18 +947,18 @@ void window_building_draw_colosseum_background(building_info_context *c)
window_building_draw_employment(c, 138);
window_building_draw_risks(c, c->x_offset + c->width_blocks * BLOCK_SIZE - 76, c->y_offset + 144);
if (b->data.entertainment.days1 > 0) {
- int width = lang_text_draw(74, 8, c->x_offset + 32, c->y_offset + 182, FONT_NORMAL_BROWN);
+ int width = lang_text_draw(74, 8, c->x_offset + 32, c->y_offset + 188, FONT_NORMAL_BROWN);
lang_text_draw_amount(8, 44, 2 * b->data.entertainment.days1,
- c->x_offset + width + 32, c->y_offset + 182, FONT_NORMAL_BROWN);
+ c->x_offset + width + 32, c->y_offset + 188, FONT_NORMAL_BROWN);
} else {
- lang_text_draw(74, 7, c->x_offset + 32, c->y_offset + 182, FONT_NORMAL_BROWN);
+ lang_text_draw(74, 7, c->x_offset + 32, c->y_offset + 188, FONT_NORMAL_BROWN);
}
if (b->data.entertainment.days2 > 0) {
- int width = lang_text_draw(74, 10, c->x_offset + 32, c->y_offset + 202, FONT_NORMAL_BROWN);
+ int width = lang_text_draw(74, 10, c->x_offset + 32, c->y_offset + 208, FONT_NORMAL_BROWN);
lang_text_draw_amount(8, 44, 2 * b->data.entertainment.days2,
- c->x_offset + width + 32, c->y_offset + 202, FONT_NORMAL_BROWN);
+ c->x_offset + width + 32, c->y_offset + 208, FONT_NORMAL_BROWN);
} else {
- lang_text_draw(74, 9, c->x_offset + 32, c->y_offset + 202, FONT_NORMAL_BROWN);
+ lang_text_draw(74, 9, c->x_offset + 32, c->y_offset + 208, FONT_NORMAL_BROWN);
}
if (b->type == BUILDING_ARENA) {
diff --git a/src/window/epithets.c b/src/window/epithets.c
new file mode 100644
index 0000000000..85352ce479
--- /dev/null
+++ b/src/window/epithets.c
@@ -0,0 +1,254 @@
+#include "epithets.h"
+
+#include "assets/assets.h"
+#include "city/constants.h"
+#include "city/gods.h"
+#include "core/image_group.h"
+#include "graphics/color.h"
+#include "graphics/generic_button.h"
+#include "graphics/graphics.h"
+#include "graphics/image.h"
+#include "graphics/image_button.h"
+#include "graphics/lang_text.h"
+#include "graphics/panel.h"
+#include "graphics/text.h"
+#include "graphics/window.h"
+#include "input/input.h"
+#include "window/advisors.h"
+#include "window/message_dialog.h"
+#include "window/option_popup.h"
+
+static void button_god(int god, int param2);
+static void button_close(int param1, int param2);
+
+
+static struct {
+ option_menu_item option;
+ const char image_id[32];
+} epithets_options[18] = {
+ {
+ { TR_BUILDING_GRAND_TEMPLE_CERES_DESC, TR_BUILDING_GRAND_TEMPLE_CERES_BONUS_DESC },
+ "Ceres M Icon"
+ },
+ {
+ { TR_BUILDING_GRAND_TEMPLE_CERES_DESC_MODULE_1, TR_BUILDING_GRAND_TEMPLE_CERES_MODULE_1_DESC },
+ "Ceres M Icon"
+ },
+ {
+ { TR_BUILDING_GRAND_TEMPLE_CERES_DESC_MODULE_2, TR_BUILDING_GRAND_TEMPLE_CERES_MODULE_2_DESC },
+ "Ceres M2 Icon"
+ },
+ {
+ { TR_BUILDING_GRAND_TEMPLE_NEPTUNE_DESC, TR_BUILDING_GRAND_TEMPLE_NEPTUNE_BONUS_DESC },
+ "Nept M2 Icon"
+ },
+ {
+ { TR_BUILDING_GRAND_TEMPLE_NEPTUNE_DESC_MODULE_1, TR_BUILDING_GRAND_TEMPLE_NEPTUNE_MODULE_1_DESC },
+ "Nept M2 Icon"
+ },
+ {
+ { TR_BUILDING_GRAND_TEMPLE_NEPTUNE_DESC_MODULE_2, TR_BUILDING_GRAND_TEMPLE_NEPTUNE_MODULE_2_DESC },
+ "Nept M Icon"
+ },
+ {
+ { TR_BUILDING_GRAND_TEMPLE_MERCURY_DESC, TR_BUILDING_GRAND_TEMPLE_MERCURY_BONUS_DESC },
+ "Merc M Icon"
+ },
+ {
+ { TR_BUILDING_GRAND_TEMPLE_MERCURY_DESC_MODULE_1, TR_BUILDING_GRAND_TEMPLE_MERCURY_MODULE_1_DESC },
+ "Merc M Icon"
+ },
+ {
+ { TR_BUILDING_GRAND_TEMPLE_MERCURY_DESC_MODULE_2, TR_BUILDING_GRAND_TEMPLE_MERCURY_MODULE_2_DESC },
+ "Merc M2 Icon"
+ },
+ {
+ { TR_BUILDING_GRAND_TEMPLE_MARS_DESC, TR_BUILDING_GRAND_TEMPLE_MARS_BONUS_DESC },
+ "Mars M2 Icon"
+ },
+ {
+ { TR_BUILDING_GRAND_TEMPLE_MARS_DESC_MODULE_1, TR_BUILDING_GRAND_TEMPLE_MARS_MODULE_1_DESC },
+ "Mars M2 Icon"
+ },
+ {
+ { TR_BUILDING_GRAND_TEMPLE_MARS_DESC_MODULE_2, TR_BUILDING_GRAND_TEMPLE_MARS_MODULE_2_DESC },
+ "Mars M Icon"
+ },
+ {
+ { TR_BUILDING_GRAND_TEMPLE_VENUS_DESC, TR_BUILDING_GRAND_TEMPLE_VENUS_BONUS_DESC },
+ "Venus M Icon"
+ },
+ {
+ { TR_BUILDING_GRAND_TEMPLE_VENUS_DESC_MODULE_1, TR_BUILDING_GRAND_TEMPLE_VENUS_MODULE_1_DESC },
+ "Venus M Icon"
+ },
+ {
+ { TR_BUILDING_GRAND_TEMPLE_VENUS_DESC_MODULE_2, TR_BUILDING_GRAND_TEMPLE_VENUS_MODULE_2_DESC },
+ "Venus M2 Icon"
+ },
+ {
+ { TR_BUILDING_PANTHEON_DESC, TR_BUILDING_PANTHEON_BONUS_DESC },
+ "Panth M Icon"
+ },
+ {
+ { TR_BUILDING_PANTHEON_DESC_MODULE_1, TR_BUILDING_PANTHEON_MODULE_1_DESC },
+ "Panth M Icon"
+ },
+ {
+ { TR_BUILDING_PANTHEON_DESC_MODULE_2, TR_BUILDING_PANTHEON_MODULE_2_DESC },
+ "Panth M2 Icon"
+ }
+};
+
+static int selected_god_id;
+
+static image_button image_buttons_bottom[] = {
+ {605, 394, 24, 24, IB_NORMAL, GROUP_CONTEXT_ICONS, 4, button_close, button_none, 0, 0, 1}
+};
+
+static generic_button buttons_gods_size[] = {
+ {30, 56, 80, 90, button_god, button_none, 0, 0},
+ {130, 56, 80, 90, button_god, button_none, 1, 0},
+ {230, 56, 80, 90, button_god, button_none, 2, 0},
+ {330, 56, 80, 90, button_god, button_none, 3, 0},
+ {430, 56, 80, 90, button_god, button_none, 4, 0},
+ {530, 56, 80, 90, button_god, button_none, 5, 0},
+ {630, 56, 80, 90, button_god, button_none, 6, 0}
+};
+
+static int focus_button_id;
+static int focus_image_button_id;
+
+static void init(void)
+{
+ selected_god_id = 0;
+}
+
+static void draw_background(void)
+{
+ window_advisors_draw_dialog_background();
+
+ graphics_in_dialog();
+
+ outer_panel_draw(0, 0, 40, 27);
+
+ lang_text_draw_centered(CUSTOM_TRANSLATION, TR_WINDOW_ADVISOR_EPITHETS, 0, 15, 640, FONT_LARGE_BLACK);
+ int border_image_id = assets_get_image_id("UI", "Image Border Small");
+ int highlight_image_id = assets_get_image_id("UI", "Highlight");
+ int base_image_id = assets_get_image_id("UI", "Pantheon_Epithet_Button_01");
+ color_t border_color = COLOR_BORDER_ORANGE;
+ color_t highlight_color = COLOR_MASK_NONE;
+
+ for (int god = 0; god < MAX_GODS + 1; god++) {
+ if (god == selected_god_id) {
+ button_border_draw(100 * god + 26, 52, 90, 100, 1);
+
+ if (god == MAX_GODS) {
+ image_draw_border(border_image_id, 100 * god + 30, 56, border_color);
+ image_draw(base_image_id, 100 * god + 35, 61, COLOR_MASK_NONE, SCALE_NONE);
+ image_draw_border(highlight_image_id, 100 * god + 35, 61, highlight_color);
+ } else {
+ image_draw(image_group(GROUP_PANEL_WINDOWS) + god + 21, 100 * god + 30, 56, COLOR_MASK_NONE, SCALE_NONE);
+ }
+ } else {
+ if (god == MAX_GODS) {
+ highlight_color = COLOR_BLACK;
+ border_color = COLOR_BORDER_BROWN;
+ image_draw_border(border_image_id, 100 * god + 30, 56, border_color);
+ image_draw(base_image_id, 100 * god + 35, 61, COLOR_MASK_NONE, SCALE_NONE);
+ image_draw_border(highlight_image_id, 100 * god + 35, 61, highlight_color);
+ } else {
+ image_draw(image_group(GROUP_PANEL_WINDOWS) + god + 16, 100 * god + 30, 56, COLOR_MASK_NONE, SCALE_NONE);
+ }
+ }
+ }
+
+ graphics_reset_dialog();
+}
+
+
+static void draw_foreground(void)
+{
+ graphics_in_dialog();
+
+ inner_panel_draw(33, 170, 36, 14);
+
+ int offet_y = 0;
+
+ for (int i = 0; i < 3; i++) {
+ int module_name = epithets_options[selected_god_id * 3 + i].option.header;
+ text_draw_centered(translation_for(module_name), 53, 184 + offet_y , 540, FONT_NORMAL_GREEN, 0);
+
+ int module_desc = epithets_options[selected_god_id * 3 + i].option.desc;
+ // Draw in black and then white to create shadow effect
+ text_draw_multiline(translation_for(module_desc), 53 + 1, 204 + offet_y + 1, 540, FONT_SMALL_PLAIN, COLOR_BLACK);
+ offet_y += text_draw_multiline(translation_for(module_desc), 53, 204 + offet_y, 540, FONT_SMALL_PLAIN, COLOR_WHITE);
+ offet_y += 34;
+ }
+
+ image_buttons_draw(0, 0, image_buttons_bottom, 1);
+
+ graphics_reset_dialog();
+}
+
+static void button_god(int god, int param2)
+{
+ selected_god_id = god;
+ window_invalidate();
+}
+
+static void button_close(int param1, int param2)
+{
+ window_advisors_show();
+}
+
+static void get_tooltip(tooltip_context *c)
+{
+ if (!focus_image_button_id && !focus_button_id) {
+ return;
+ }
+
+ c->type = TOOLTIP_BUTTON;
+
+ // image buttons
+ if (focus_image_button_id) {
+ c->text_id = 2;
+ }
+ // gods
+ switch (focus_button_id) {
+ case 1: c->translation_key = TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_CERES; break;
+ case 2: c->translation_key = TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_NEPTUNE; break;
+ case 3: c->translation_key = TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_MERCURY; break;
+ case 4: c->translation_key = TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_MARS; break;
+ case 5: c->translation_key = TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_VENUS; break;
+ case 6: c->translation_key = TR_WINDOW_ADVISOR_EPITHETS_TOOLTIP_JUPITER; break;
+ }
+}
+
+static void handle_input(const mouse *m, const hotkeys *h)
+{
+ const mouse *m_dialog = mouse_in_dialog(m);
+ int handled = image_buttons_handle_mouse(m_dialog, 0, 0, image_buttons_bottom, 1, &focus_image_button_id) |
+ generic_buttons_handle_mouse(m_dialog, 0, 0, buttons_gods_size, 6, &focus_button_id);
+
+ if (focus_image_button_id) {
+ focus_button_id = 0;
+ }
+
+ if (!handled && input_go_back_requested(m, h)) {
+ window_advisors_show();
+ }
+}
+
+void window_epithets_show(void)
+{
+ window_type window = {
+ WINDOW_EPITHETS,
+ draw_background,
+ draw_foreground,
+ handle_input,
+ get_tooltip
+ };
+ init();
+ window_show(&window);
+}
diff --git a/src/window/epithets.h b/src/window/epithets.h
new file mode 100644
index 0000000000..94e0220060
--- /dev/null
+++ b/src/window/epithets.h
@@ -0,0 +1,6 @@
+#ifndef WINDOW_EPITHETS_H
+#define WINDOW_EPITHETS_H
+
+void window_epithets_show(void);
+
+#endif // WINDOW_EPITHETS_H