mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2025-12-24 00:03:11 +01:00
add twitch integration, part 2
This commit is contained in:
committed by
IntelOrca
parent
1ac93e44c9
commit
c2c9bbf4ef
@@ -46,6 +46,7 @@ enum {
|
||||
WINDOW_OPTIONS_PAGE_AUDIO,
|
||||
WINDOW_OPTIONS_PAGE_INPUT,
|
||||
WINDOW_OPTIONS_PAGE_MISC,
|
||||
WINDOW_OPTIONS_PAGE_TWITCH,
|
||||
WINDOW_OPTIONS_PAGE_COUNT
|
||||
};
|
||||
|
||||
@@ -59,6 +60,7 @@ enum WINDOW_OPTIONS_WIDGET_IDX {
|
||||
WIDX_TAB_3,
|
||||
WIDX_TAB_4,
|
||||
WIDX_TAB_5,
|
||||
WIDX_TAB_6,
|
||||
|
||||
WIDX_RESOLUTION,
|
||||
WIDX_RESOLUTION_DROPDOWN,
|
||||
@@ -104,6 +106,13 @@ enum WINDOW_OPTIONS_WIDGET_IDX {
|
||||
WIDX_ALLOW_SUBTYPE_SWITCHING,
|
||||
WIDX_DEBUGGING_TOOLS,
|
||||
WIDX_TEST_UNFINISHED_TRACKS,
|
||||
|
||||
WIDX_CHANNEL_BUTTON,
|
||||
WIDX_FOLLOWER_PEEP_NAMES_CHECKBOX,
|
||||
WIDX_FOLLOWER_PEEP_TRACKING_CHECKBOX,
|
||||
WIDX_CHAT_PEEP_NAMES_CHECKBOX,
|
||||
WIDX_CHAT_PEEP_TRACKING_CHECKBOX,
|
||||
WIDX_NEWS_CHECKBOX,
|
||||
WINDOW_OPTIONS_WIDGETS_SIZE // Marks the end of the widget list, leave as last item
|
||||
};
|
||||
|
||||
@@ -120,6 +129,7 @@ static rct_widget window_options_widgets[] = {
|
||||
{ WWT_TAB, 1, 65, 95, 17, 43, 0x2000144E, STR_NONE },
|
||||
{ WWT_TAB, 1, 96, 126, 17, 43, 0x2000144E, STR_NONE },
|
||||
{ WWT_TAB, 1, 127, 157, 17, 43, 0x2000144E, STR_NONE },
|
||||
{ WWT_TAB, 1, 158, 188, 17, 43, 0x2000144E, STR_NONE },
|
||||
|
||||
// Display tab
|
||||
{ WWT_DROPDOWN, 0, 155, 299, 53, 64, 840, STR_NONE }, // resolution
|
||||
@@ -170,11 +180,20 @@ static rct_widget window_options_widgets[] = {
|
||||
{ WWT_CHECKBOX, 2, 10, 299, 98, 109, 5122, STR_NONE }, // allow subtype
|
||||
{ WWT_CHECKBOX, 2, 10, 299, 113, 124, 5150, STR_NONE }, // enabled debugging tools
|
||||
{ WWT_CHECKBOX, 2, 10, 299, 128, 139, 5155, 5156 }, // test unfinished tracks
|
||||
|
||||
//Twitch tab
|
||||
{ WWT_DROPDOWN_BUTTON, 2, 10, 299, 53, 64, STR_TWITCH_NAME, STR_NONE }, // Twitch channel name
|
||||
{ WWT_CHECKBOX, 2, 10, 299, 68, 79, STR_TWITCH_PEEP_FOLLOWERS, STR_TWITCH_PEEP_FOLLOWERS_TIP }, // Twitch name peeps by follows
|
||||
{ WWT_CHECKBOX, 2, 10, 299, 83, 94, STR_TWITCH_FOLLOWERS_TRACK, STR_TWITCH_FOLLOWERS_TRACK_TIP}, // Twitch information on for follows
|
||||
{ WWT_CHECKBOX, 2, 10, 299, 98, 109, STR_TWITCH_PEEP_CHAT, STR_TWITCH_PEEP_CHAT_TIP }, // Twitch name peeps by chat
|
||||
{ WWT_CHECKBOX, 2, 10, 299, 113, 124, STR_TWITCH_CHAT_TRACK, STR_TWITCH_CHAT_TRACK_TIP }, // Twitch information on for chat
|
||||
{ WWT_CHECKBOX, 2, 10, 299, 128, 139, STR_TWITCH_CHAT_NEWS, STR_TWITCH_CHAT_NEWS_TIP }, // Twitch chat !news as notifications in game
|
||||
|
||||
{ WIDGETS_END },
|
||||
};
|
||||
|
||||
const int window_options_tab_animation_divisor[] = { 4, 8, 2, 2, 2 };
|
||||
const int window_options_tab_animation_frames[] = { 16, 8, 16, 4, 16 };
|
||||
const int window_options_tab_animation_divisor[] = { 4, 8, 2, 2, 2, 1 };
|
||||
const int window_options_tab_animation_frames[] = { 16, 8, 16, 4, 16, 1 };
|
||||
|
||||
static void window_options_set_page(rct_window *w, int page);
|
||||
static void window_options_set_pressed_tab(rct_window *w);
|
||||
@@ -188,6 +207,7 @@ static void window_options_dropdown();
|
||||
static void window_options_update(rct_window *w);
|
||||
static void window_options_invalidate();
|
||||
static void window_options_paint();
|
||||
static void window_options_text_input();
|
||||
static void window_options_show_dropdown(rct_window *w, rct_widget *widget, int num_items);
|
||||
static void window_options_update_height_markers();
|
||||
|
||||
@@ -211,7 +231,7 @@ static void* window_options_events[] = {
|
||||
window_options_emptysub,
|
||||
window_options_emptysub,
|
||||
window_options_emptysub,
|
||||
window_options_emptysub,
|
||||
window_options_text_input,
|
||||
window_options_emptysub,
|
||||
window_options_emptysub,
|
||||
window_options_emptysub,
|
||||
@@ -244,6 +264,7 @@ void window_options_open()
|
||||
(1ULL << WIDX_TAB_3) |
|
||||
(1ULL << WIDX_TAB_4) |
|
||||
(1ULL << WIDX_TAB_5) |
|
||||
(1ULL << WIDX_TAB_6) |
|
||||
(1ULL << WIDX_SOUND) |
|
||||
(1ULL << WIDX_SOUND_DROPDOWN) |
|
||||
(1ULL << WIDX_SOUND_CHECKBOX) |
|
||||
@@ -283,7 +304,13 @@ void window_options_open()
|
||||
(1ULL << WIDX_TEST_UNFINISHED_TRACKS) |
|
||||
(1ULL << WIDX_RCT1_COLOUR_SCHEME) |
|
||||
(1ULL << WIDX_DATE_FORMAT) |
|
||||
(1ULL << WIDX_DATE_FORMAT_DROPDOWN);
|
||||
(1ULL << WIDX_DATE_FORMAT_DROPDOWN) |
|
||||
(1ULL << WIDX_CHANNEL_BUTTON) |
|
||||
(1ULL << WIDX_FOLLOWER_PEEP_NAMES_CHECKBOX) |
|
||||
(1ULL << WIDX_FOLLOWER_PEEP_TRACKING_CHECKBOX) |
|
||||
(1ULL << WIDX_CHAT_PEEP_NAMES_CHECKBOX) |
|
||||
(1ULL << WIDX_CHAT_PEEP_TRACKING_CHECKBOX) |
|
||||
(1ULL << WIDX_NEWS_CHECKBOX);
|
||||
|
||||
w->page = WINDOW_OPTIONS_PAGE_DISPLAY;
|
||||
window_init_scroll_widgets(w);
|
||||
@@ -312,11 +339,15 @@ static void window_options_mouseup()
|
||||
case WIDX_TAB_3:
|
||||
case WIDX_TAB_4:
|
||||
case WIDX_TAB_5:
|
||||
case WIDX_TAB_6:
|
||||
window_options_set_page(w, widgetIndex - WIDX_TAB_1);
|
||||
break;
|
||||
case WIDX_HOTKEY_DROPDOWN:
|
||||
window_shortcut_keys_open();
|
||||
break;
|
||||
case WIDX_CHANNEL_BUTTON:
|
||||
window_text_input_raw_open(w, widgetIndex, STR_TWITCH_NAME, STR_TWITCH_NAME_DESC, gConfigTwitch.channel, 32);
|
||||
break;
|
||||
case WIDX_SCREEN_EDGE_SCROLLING:
|
||||
gConfigGeneral.edge_scrolling ^= 1;
|
||||
config_save_default();
|
||||
@@ -387,6 +418,31 @@ static void window_options_mouseup()
|
||||
config_save_default();
|
||||
window_invalidate(w);
|
||||
break;
|
||||
case WIDX_FOLLOWER_PEEP_NAMES_CHECKBOX:
|
||||
gConfigTwitch.enable_follower_peep_names ^= 1;
|
||||
config_save_default();
|
||||
window_invalidate(w);
|
||||
break;
|
||||
case WIDX_FOLLOWER_PEEP_TRACKING_CHECKBOX:
|
||||
gConfigTwitch.enable_follower_peep_tracking ^= 1;
|
||||
config_save_default();
|
||||
window_invalidate(w);
|
||||
break;
|
||||
case WIDX_CHAT_PEEP_NAMES_CHECKBOX:
|
||||
gConfigTwitch.enable_chat_peep_names ^= 1;
|
||||
config_save_default();
|
||||
window_invalidate(w);
|
||||
break;
|
||||
case WIDX_CHAT_PEEP_TRACKING_CHECKBOX:
|
||||
gConfigTwitch.enable_chat_peep_tracking ^= 1;
|
||||
config_save_default();
|
||||
window_invalidate(w);
|
||||
break;
|
||||
case WIDX_NEWS_CHECKBOX:
|
||||
gConfigTwitch.enable_news ^= 1;
|
||||
config_save_default();
|
||||
window_invalidate(w);
|
||||
break;
|
||||
case WIDX_SAVE_PLUGIN_DATA_CHECKBOX:
|
||||
gConfigGeneral.save_plugin_data ^= 1;
|
||||
config_save_default();
|
||||
@@ -867,6 +923,21 @@ static void window_options_invalidate()
|
||||
window_options_widgets[WIDX_ALLOW_SUBTYPE_SWITCHING].type = WWT_CHECKBOX;
|
||||
window_options_widgets[WIDX_DEBUGGING_TOOLS].type = WWT_CHECKBOX;
|
||||
window_options_widgets[WIDX_TEST_UNFINISHED_TRACKS].type = WWT_CHECKBOX;
|
||||
break;
|
||||
case WINDOW_OPTIONS_PAGE_TWITCH:
|
||||
widget_set_checkbox_value(w, WIDX_FOLLOWER_PEEP_NAMES_CHECKBOX, gConfigTwitch.enable_follower_peep_names);
|
||||
widget_set_checkbox_value(w, WIDX_FOLLOWER_PEEP_TRACKING_CHECKBOX, gConfigTwitch.enable_follower_peep_tracking);
|
||||
widget_set_checkbox_value(w, WIDX_CHAT_PEEP_NAMES_CHECKBOX, gConfigTwitch.enable_chat_peep_names);
|
||||
widget_set_checkbox_value(w, WIDX_CHAT_PEEP_TRACKING_CHECKBOX, gConfigTwitch.enable_chat_peep_tracking);
|
||||
widget_set_checkbox_value(w, WIDX_NEWS_CHECKBOX, gConfigTwitch.enable_news);
|
||||
|
||||
window_options_widgets[WIDX_CHANNEL_BUTTON].type = WWT_DROPDOWN_BUTTON;
|
||||
window_options_widgets[WIDX_FOLLOWER_PEEP_NAMES_CHECKBOX].type = WWT_CHECKBOX;
|
||||
window_options_widgets[WIDX_FOLLOWER_PEEP_TRACKING_CHECKBOX].type = WWT_CHECKBOX;
|
||||
window_options_widgets[WIDX_CHAT_PEEP_NAMES_CHECKBOX].type = WWT_CHECKBOX;
|
||||
window_options_widgets[WIDX_CHAT_PEEP_TRACKING_CHECKBOX].type = WWT_CHECKBOX;
|
||||
window_options_widgets[WIDX_NEWS_CHECKBOX].type = WWT_CHECKBOX;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -973,6 +1044,26 @@ static void window_options_update_height_markers()
|
||||
gfx_invalidate_screen();
|
||||
}
|
||||
|
||||
static void window_options_text_input(){
|
||||
short widgetIndex;
|
||||
rct_window *w;
|
||||
char _cl;
|
||||
char* text;
|
||||
|
||||
window_text_input_get_registers(w, widgetIndex, _cl, text);
|
||||
if (_cl == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (widgetIndex == WIDX_CHANNEL_BUTTON){
|
||||
if (gConfigTwitch.channel != NULL)
|
||||
free(gConfigTwitch.channel);
|
||||
gConfigTwitch.channel = _strdup(text);
|
||||
config_save_default();
|
||||
}
|
||||
}
|
||||
|
||||
#pragma region Common
|
||||
|
||||
static void window_options_set_page(rct_window *w, int page)
|
||||
@@ -1016,6 +1107,7 @@ static void window_options_draw_tab_images(rct_drawpixelinfo *dpi, rct_window *w
|
||||
window_options_draw_tab_image(dpi, w, WINDOW_OPTIONS_PAGE_AUDIO, 5335);
|
||||
window_options_draw_tab_image(dpi, w, WINDOW_OPTIONS_PAGE_INPUT, 5201);
|
||||
window_options_draw_tab_image(dpi, w, WINDOW_OPTIONS_PAGE_MISC, 5205);
|
||||
window_options_draw_tab_image(dpi, w, WINDOW_OPTIONS_PAGE_TWITCH, SPR_G2_TAB_TWITCH);
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
|
||||
Reference in New Issue
Block a user