aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCrystalwarrior <varsash@gmail.com>2019-09-20 22:08:36 +0300
committerCrystalwarrior <varsash@gmail.com>2019-09-20 22:08:36 +0300
commit497901e8c361326770e88e8a01daa7891b6a16e1 (patch)
treed4eb69574a8c3697a88761241f3937718ce6de8d
parent3fd93ab34118cfb5041b1be77e50e14658627a82 (diff)
Allow realizationflash, prosecution_speedlines and defense_speedlines to be changed in a similar way shouts can be changed from the character, as well as misc folder, etc.
Same for chat indicator Rename themes/ name of shouts from "objection.gif" to "objection_bubble.gif" naming convention for consistency Reorganize the default theme a bit as well as to support new elements Fix the background size not being updated properly due to bad order of reload theme Set up proper tooltips for sfx dropdown, iniswap dropdown, custom objection
-rw-r--r--base/themes/default/chat.pngbin1529 -> 590 bytes
-rw-r--r--base/themes/default/chatbig.pngbin80093 -> 584 bytes
-rw-r--r--base/themes/default/chatmed.pngbin1669 -> 579 bytes
-rw-r--r--base/themes/default/courtroom_design.ini194
-rw-r--r--base/themes/default/courtroom_fonts.ini55
-rw-r--r--base/themes/default/courtroombackground.pngbin63046 -> 50139 bytes
-rw-r--r--base/themes/default/holdit.gifbin40518 -> 0 bytes
-rw-r--r--base/themes/default/muted_old.pngbin5703 -> 0 bytes
-rw-r--r--base/themes/default/objection.gifbin44417 -> 0 bytes
-rw-r--r--base/themes/default/takethat.gifbin42063 -> 0 bytes
-rw-r--r--src/courtroom.cpp40
11 files changed, 201 insertions, 88 deletions
diff --git a/base/themes/default/chat.png b/base/themes/default/chat.png
index e11f8c8a..47281a96 100644
--- a/base/themes/default/chat.png
+++ b/base/themes/default/chat.png
Binary files differ
diff --git a/base/themes/default/chatbig.png b/base/themes/default/chatbig.png
index 177dc026..ee8d9ce2 100644
--- a/base/themes/default/chatbig.png
+++ b/base/themes/default/chatbig.png
Binary files differ
diff --git a/base/themes/default/chatmed.png b/base/themes/default/chatmed.png
index d2fee4a6..9c6f87fc 100644
--- a/base/themes/default/chatmed.png
+++ b/base/themes/default/chatmed.png
Binary files differ
diff --git a/base/themes/default/courtroom_design.ini b/base/themes/default/courtroom_design.ini
index eee76251..e53eb08d 100644
--- a/base/themes/default/courtroom_design.ini
+++ b/base/themes/default/courtroom_design.ini
@@ -2,35 +2,14 @@
; compress courtroombackground.png accordingly.
courtroom = 0, 0, 714, 668
+; **COORDINATE SYSTEM RELATIVE TO "courtroom"**
+; x/y coordinates 0,0 will start at top-left of the "courtroom" for everything below until specified otherwise.
+; ****
+
; IC Area. Changing 256, 192 will stretch or compress character gifs and the
; /bgs being used accordingly
viewport = 0, 0, 256, 192
-; IC chatbox
-chatbox = 0, 174, 256, 108
-
-; IC chatbox if the current background's folder contains stand.png,
-; defensedesk.png and prosecutiondesk.png
-ao2_chatbox = 0, 174, 256, 108
-
-; Textbox for custom IC name (the "showname")
-showname = 6, 1, 256, 15
-
-; IC message, positioned within the chatbox. Changing 250 affects how
-; long text goes on before going onto the next line. Changing 89 affects
-; how many lines you can see before the message starts scrolling, based on
-; the formula of n = 25+(n-1)*16, where n is the number of lines to be
-; displayed. (ie, set it to 25 for 1 line, 41 for 2, 57 for 3, 73 for 4,
-; 89 for 5, 105 for 6... Less than 25 displays nothing)
-message = 3, 18, 250, 89
-
-; Where you type to make an IC chat message
-ic_chat_message = 2, 283, 250, 23
-
-; IC chat message if the current background's folder contains stand.png,
-; defensedesk.png and prosecutiondesk.png
-ao2_ic_chat_message = 2, 283, 250, 23
-
; IC chatlog
ic_chatlog = 260, 0, 231, 319
@@ -50,14 +29,20 @@ ooc_chat_name = 492, 300, 85, 19
; Toggle between Server and Master OOC chats
ooc_toggle = 580, 300, 133, 19
+; The scrolling music name display
+music_display = 490, 0, 224, 26
+; WARNING: music_name x/y coordinates relative to music_display!
+music_name = 0, 0, 224, 26
+
; Where the jukebox is
music_list = 490, 342, 224, 326
; Jukebox search bar
music_search = 490, 319, 100, 23
-found_song_color = 100, 255, 100
-missing_song_color = 255, 100, 100
+; Music list state colors
+found_song_color = 144, 238, 144
+missing_song_color = 255, 125, 125
; Labels and sliders for music/sfx/blips
music_label = 282, 607, 41, 16
@@ -74,6 +59,7 @@ blip_slider = 326, 648, 140, 16
; 49X, 49Y (ie. 490, 147 if you want 10 columns and 3 rows)
emotes = 5, 342, 490, 98
emote_button_spacing = 9, 9
+emote_button_size = 40, 40
; Page togglers for emotes
emote_left = 5, 434, 60, 32
@@ -83,6 +69,22 @@ emote_right = 428, 434, 60, 32
; display the full emote name or truncate it based on length
emote_dropdown = 5, 470, 105, 20
+; Display the accessible iniswaps on this character (grabbed from iniswaps.ini)
+iniswap_dropdown = 100, 442, 89, 20
+; The button to remove the current iniswap
+iniswap_remove = 78, 442, 20, 20
+
+; Display the accessible sfx on this character (grabbed from soundlist.ini). If none found, courtroom_soundlist.ini will be used.
+sfx_dropdown = 220, 442, 89, 20
+; The button to remove the current iniswap
+sfx_remove = 198, 442, 20, 20
+
+; Display the list of overlay effects accessible
+effects_dropdown = 330, 441, 89, 22
+
+; The size of the icons for dropdown entries
+effects_icon_size = 16, 16
+
; Hold it/Take That/Objection and the "BLING!" buttons
hold_it = 10, 310, 76, 28
objection = 90, 310, 76, 28
@@ -93,7 +95,7 @@ realization = 5, 515, 42, 42
; custom.gif and custom.wav in their folder, this button acts as another
; Objection/Take That/Hold It for that character that uses the custom animation
; and sfx. (Think Satorah! Such Insolence!, Gotcha!)
-custom_objection = 340, 565, 76, 28
+custom_objection = 250, 310, 76, 28
; Text color dropdown menu
text_color = 115, 470, 80, 20
@@ -104,7 +106,10 @@ pos_dropdown = 200, 470, 80, 20
pre = 5, 490, 80, 21
; Flip button
-flip = 104, 490, 51, 21
+flip = 64, 490, 51, 21
+
+; Additive button
+Additive = 114, 490, 80, 21
; Guard button
guard = 200, 580, 61, 21
@@ -132,33 +137,12 @@ call_mod = 104, 637, 64, 23
; Mute button
mute_button = 150, 515, 42, 42
+; Screenshake
+screenshake = 51, 515, 42, 42
+
; Where the Mute list pops up when you click Mute
mute_list = 280, 469, 210, 198
-; ???? - if there was an Area button, where the area list would show up?
-; area_list = 270, 494, 224, 174
-
-; ???? - where a password box appears if an area is password locked?
-; area_password = 266, 471, 224, 23
-
-; >Evidence meme
-evidence_button = 627, 322, 85, 18
-evidence_background = 0, 385, 490, 284
-evidence_name = 112, 4, 264, 19
-evidence_buttons = 28, 27, 430, 216
-evidence_button_spacing = 2, 3
-evidence_overlay = 24, 24, 439, 222
-evidence_delete = 78, 8, 70, 20
-evidence_image_name = 150, 8, 130, 20
-evidence_image_button = 280, 8, 60, 20
-evidence_x = 341, 8, 20, 20
-evidence_description = 78, 28, 281, 166
-evidence_left = 28, 0, 60, 24
-evidence_right = 400, 0, 60, 24
-evidence_present = 165, 247, 158, 41
-left_evidence_icon = 13, 13, 70, 70
-right_evidence_icon = 173, 13, 70, 70
-
; Character select widgets
char_select = 0, 0, 714, 668
back_to_lobby = 5, 5, 91, 23
@@ -173,15 +157,6 @@ spectator = 317, 640, 80, 23
; New in 2.6.0
; -------------------------
-; The log limiter explaining label. This is simply a piece of text that
-; explains what the spin box is for.
-; log_limit_label = 190, 612, 50, 30
-
-; The spinbox allows you to set the log limit ingame inbetween 1 and 10000,
-; with the option to set it to 0 as well (which is considered 'infinite' by
-; the log limiter).
-; log_limit_spinbox = 168, 636, 70, 25
-
; This is an input field that allows you to change your in-character showname.
ic_chat_name = 200, 534, 78, 23
@@ -228,12 +203,12 @@ pair_offset_spinbox = 280, 470, 210, 20
switch_area_music = 590, 319, 35, 23
; These are colours for the various statuses an area can be in.
-area_free_color = 54, 198, 68
-area_lfp_color = 255, 255, 0
-area_casing_color = 255, 166, 0
-area_recess_color = 255, 190, 30
-area_rp_color = 200, 52, 252
-area_gaming_color = 55, 255, 255
+area_free_color = 144, 238, 144
+area_lfp_color = 127, 255, 0
+area_casing_color = 255, 215, 0
+area_recess_color = 255, 246, 143
+area_rp_color = 135, 206, 255
+area_gaming_color = 171, 130, 255
area_locked_color = 165, 43, 43
; These two are casing-related inputs.
@@ -242,4 +217,85 @@ area_locked_color = 165, 43, 43
; "casing_button" is an interface to help you announce a case (you have to be
; a CM first to be able to announce cases).
casing = 200, 560, 80, 21
-casing_button = 173, 637, 60, 23 \ No newline at end of file
+casing_button = 173, 637, 60, 23
+
+;
+; Chat system
+;
+
+; IC chatbox
+chatbox = 0, 178, 256, 104
+
+; IC chatbox if the current background's folder contains stand.png,
+; defensedesk.png and prosecutiondesk.png
+ao2_chatbox = 0, 178, 256, 104
+
+; **COORDINATE SYSTEM RELATIVE TO "chatbox"/"ao2_chatbox"**
+; x/y coordinates 0,0 will start at top-left of the "chatbox"/"ao2_chatbox" for everything below until specified otherwise.
+; ****
+
+; Textbox for custom IC name (the "showname"), width is the smallest size
+showname = 1, 0, 46, 15
+
+; The chatbox image used for smallest possible size is "chat". "chatblank" is used if the showname is whitespace-only.
+; "chatmed" will be used if the showname size exceeds the width, at which point the showname will receive showname_extra_width.
+; "chatbig" will be used if the showname size exceeds the "chatmed" width, at which point the showname will receive showname_extra_width again.
+; Text any bigger than that will be cut off. If "chatmed" or "chatbig" are missing, showname will not be resized.
+showname_extra_width = 24
+
+; IC message, positioned within the chatbox. Changing 250 affects how
+; long text goes on before going onto the next line. Changing 89 affects
+; how many lines you can see before the message starts scrolling, based on
+; Every line height is 25 if the font size is 10 and the Sans font is used.
+; There's 4 pixels from X position until the symbol is displayed.
+; the formula of n = 25+(n-1)*16, where n is the number of lines to be
+; displayed. (ie, set it to 25 for 1 line, 41 for 2, 57 for 3, 73 for 4,
+; 89 for 5, 105 for 6... Less than 25 displays nothing)
+message = 10, 12, 242, 89
+
+; A chat indicator alerting us the chat ticker isn't active (text is no longer being processed).
+chat_arrow = 245, 84, 11, 9
+
+; Where you type to make an IC chat message
+ic_chat_message = 2, 283, 250, 23
+
+; IC chat message if the current background's folder contains stand.png,
+; defensedesk.png and prosecutiondesk.png
+ao2_ic_chat_message = 2, 283, 250, 23
+
+;
+; Evidence system
+;
+
+; **COORDINATE SYSTEM RELATIVE TO "viewport"**
+; x/y coordinates 0,0 will start at top-left of the "viewport" for everything below until specified otherwise.
+; ****
+left_evidence_icon = 13, 13, 70, 70
+right_evidence_icon = 173, 13, 70, 70
+
+; **COORDINATE SYSTEM RELATIVE TO "courtroom"**
+; x/y coordinates 0,0 will start at top-left of the "courtroom" for everything below until specified otherwise.
+; ****
+
+evidence_background = 0, 385, 490, 284
+; **COORDINATE SYSTEM RELATIVE TO "evidence_background"**
+; x/y coordinates 0,0 will start at top-left of the "evidence_background" for everything below until specified otherwise.
+; ****
+evidence_buttons = 28, 27, 430, 216
+evidence_button_spacing = 2, 3
+evidence_button_size = 70, 70
+evidence_left = 28, 0, 60, 24
+evidence_right = 400, 0, 60, 24
+evidence_present = 165, 247, 158, 41
+
+evidence_overlay = 24, 24, 439, 222
+; **COORDINATE SYSTEM RELATIVE TO "evidence_overlay"**
+; x/y coordinates 0,0 will start at top-left of the "evidence_overlay" (which is parented to "evidence_background") for everything below until specified otherwise.
+; ****
+evidence_delete = 78, 8, 70, 20
+evidence_image_name = 150, 8, 130, 20
+evidence_image_button = 280, 8, 60, 20
+evidence_x = 341, 8, 20, 20
+evidence_button = 627, 322, 85, 18
+evidence_name = 112, 4, 264, 19
+evidence_description = 78, 28, 281, 166 \ No newline at end of file
diff --git a/base/themes/default/courtroom_fonts.ini b/base/themes/default/courtroom_fonts.ini
index 16e2f41b..1fcba764 100644
--- a/base/themes/default/courtroom_fonts.ini
+++ b/base/themes/default/courtroom_fonts.ini
@@ -1,11 +1,56 @@
showname = 8
+showname_font = Sans
+showname_color = 255, 255, 255
+showname_bold = 0
+
message = 10
+message_font = Sans
+message_color = 0, 0, 0
+message_bold = 0
+
ic_chatlog = 10
-ms_chatlog = 10
-server_chatlog = 9
+ic_chatlog_font = Sans
+ic_chatlog_color = 255, 255, 255
+ic_chatlog_bold = 0
+
+ms_chatlog = 8
+ms_chatlog_font = Sans
+ms_chatlog_color = 0, 0, 0
+ms_chatlog_sender_color = 0, 0, 95
+ms_chatlog_bold = 0
+
+server_chatlog = 8
+server_chatlog_font = Sans
+server_chatlog_color = 0, 0, 0
+server_chatlog_sender_color = 95, 95, 0
+server_chatlog_bold = 0
+
music_list = 8
+music_list_font = Sans
+music_list_color = 0, 0, 0
+music_list_bold = 0
-ic_chatlog_color = 255, 255, 255
+music_name = 8
+music_name_font = Sans
+music_name_color = 255, 255, 255
+music_name_bold = 0
+
+area_list = 8
+area_list_font = Sans
+area_list_color = 0, 0, 0
+area_list_bold = 0
+
+evidence_name = 14
+evidence_name_font = Arial
+evidence_name_color = 255, 128, 0
+evidence_name_bold = 1
+
+evidence_image_name = 8
+evidence_image_name_font = Arial
+evidence_image_name_color = 0, 0, 0
+evidence_image_name_bold = 0
-; Color for all labels and checkboxes
-label_color = 255, 255, 255
+evidence_description = 10
+evidence_description_font = Times New Roman
+evidence_description_color = 255, 255, 255
+evidence_description_bold = 0 \ No newline at end of file
diff --git a/base/themes/default/courtroombackground.png b/base/themes/default/courtroombackground.png
index 5ad8d51a..f42797ca 100644
--- a/base/themes/default/courtroombackground.png
+++ b/base/themes/default/courtroombackground.png
Binary files differ
diff --git a/base/themes/default/holdit.gif b/base/themes/default/holdit.gif
deleted file mode 100644
index 5f71ac66..00000000
--- a/base/themes/default/holdit.gif
+++ /dev/null
Binary files differ
diff --git a/base/themes/default/muted_old.png b/base/themes/default/muted_old.png
deleted file mode 100644
index f9878f1a..00000000
--- a/base/themes/default/muted_old.png
+++ /dev/null
Binary files differ
diff --git a/base/themes/default/objection.gif b/base/themes/default/objection.gif
deleted file mode 100644
index 6aae2e56..00000000
--- a/base/themes/default/objection.gif
+++ /dev/null
Binary files differ
diff --git a/base/themes/default/takethat.gif b/base/themes/default/takethat.gif
deleted file mode 100644
index dd033102..00000000
--- a/base/themes/default/takethat.gif
+++ /dev/null
Binary files differ
diff --git a/src/courtroom.cpp b/src/courtroom.cpp
index 17977069..d58353f2 100644
--- a/src/courtroom.cpp
+++ b/src/courtroom.cpp
@@ -579,6 +579,8 @@ void Courtroom::set_widgets()
set_size_and_pos(ui_music_search, "music_search");
set_size_and_pos(ui_emote_dropdown, "emote_dropdown");
+ ui_pos_dropdown->setToolTip(tr("Set your character's emote to play on your next message."));
+
set_size_and_pos(ui_pos_dropdown, "pos_dropdown");
ui_pos_dropdown->setToolTip(tr("Set your character's supplementary background."));
@@ -586,7 +588,7 @@ void Courtroom::set_widgets()
ui_iniswap_dropdown->setEditable(true);
ui_iniswap_dropdown->setInsertPolicy(QComboBox::InsertAtBottom);
ui_iniswap_dropdown->setToolTip(tr("Set an 'iniswap', or an alternative character folder to refer to from your current character.\n"
- "This information is saved to your base/characters/<charname>/iniswaps.ini"));
+ "Edit by typing and pressing Enter, [X] to remove. This saves to your base/characters/<charname>/iniswaps.ini"));
set_size_and_pos(ui_iniswap_remove, "iniswap_remove");
ui_iniswap_remove->setText("X");
@@ -596,8 +598,8 @@ void Courtroom::set_widgets()
set_size_and_pos(ui_sfx_dropdown, "sfx_dropdown");
ui_sfx_dropdown->setEditable(true);
ui_sfx_dropdown->setInsertPolicy(QComboBox::InsertAtBottom);
- ui_sfx_dropdown->setToolTip(tr("Set an 'iniswap', or an alternative character folder to refer to from your current character.\n"
- "This information is saved to your base/characters/<charname>/iniswaps.ini"));
+ ui_sfx_dropdown->setToolTip(tr("Set a sound effect to play on your next 'Preanim'. Leaving it on Default will use the emote-defined sound (if any).\n"
+ "Edit by typing and pressing Enter, [X] to remove. This saves to your base/characters/<charname>/sounds.ini"));
set_size_and_pos(ui_sfx_remove, "sfx_remove");
ui_sfx_remove->setText("X");
@@ -606,7 +608,9 @@ void Courtroom::set_widgets()
set_size_and_pos(ui_effects_dropdown, "effects_dropdown");
ui_effects_dropdown->setInsertPolicy(QComboBox::InsertAtBottom);
- ui_effects_dropdown->setToolTip(tr("Choose an effect to play on your next spoken message."));
+ ui_effects_dropdown->setToolTip(tr("Choose an effect to play on your next spoken message.\n"
+ "The effects are defined in your theme/effects/effects.ini. Your character can define custom effects by\n"
+ "char.ini [Options] category, effects = 'miscname' where it referes to misc/<miscname>/effects.ini to read the effects."));
//Todo: recode this entire fucking system with these dumbass goddamn ini's why is everything so specifically coded for all these purposes
//is ABSTRACT CODING not a thing now huh what the FUCK why do I gotta do this pleASE FOR THE LOVE OF GOD SPARE ME FROM THIS FRESH HELL
//btw i still love coding.
@@ -716,7 +720,8 @@ void Courtroom::set_widgets()
set_size_and_pos(ui_custom_objection, "custom_objection");
ui_custom_objection->setText(tr("Custom Shout!"));
ui_custom_objection->set_image("custom");
- ui_custom_objection->setToolTip(tr("This will display the custom character-defined animation in the viewport as soon as it is pressed."));
+ ui_custom_objection->setToolTip(tr("This will display the custom character-defined animation in the viewport as soon as it is pressed.\n"
+ "To make one, your character's folder must contain custom.[webp/apng/gif/png] and custom.wav"));
set_size_and_pos(ui_realization, "realization");
ui_realization->set_image("realization");
@@ -1551,17 +1556,17 @@ void Courtroom::handle_chatmessage(QStringList *p_contents)
switch (objection_mod)
{
case 1:
- ui_vp_objection->play("holdit", f_char, f_custom_theme, 724);
+ ui_vp_objection->play("holdit_bubble", f_char, f_custom_theme, 724);
objection_player->play("holdit.wav", f_char, f_custom_theme);
break;
case 2:
- ui_vp_objection->play("objection", f_char, f_custom_theme, 724);
+ ui_vp_objection->play("objection_bubble", f_char, f_custom_theme, 724);
objection_player->play("objection.wav", f_char, f_custom_theme);
if(ao_app->objection_stop_music())
music_player->stop();
break;
case 3:
- ui_vp_objection->play("takethat", f_char, f_custom_theme, 724);
+ ui_vp_objection->play("takethat_bubble", f_char, f_custom_theme, 724);
objection_player->play("takethat.wav", f_char, f_custom_theme);
break;
//case 4 is AO2 only
@@ -1893,7 +1898,9 @@ void Courtroom::do_flash()
if(!ao_app->is_shake_flash_enabled())
return;
- ui_vp_effect->play("realizationflash", "", "", 60);
+ QString f_char = m_chatmessage[CHAR_NAME];
+ QString f_custom_theme = ao_app->get_char_shouts(f_char);
+ ui_vp_effect->play("realizationflash", f_char, f_custom_theme, 60);
}
void Courtroom::do_effect(QString fx_name, QString fx_sound, QString p_char)
@@ -1948,12 +1955,14 @@ void Courtroom::handle_chatmessage_3()
ui_vp_sideplayer_char->hide();
ui_vp_player_char->move(0,0);
+ QString f_char = m_chatmessage[CHAR_NAME];
+ QString f_custom_theme = ao_app->get_char_shouts(f_char);
if (side == "pro" ||
side == "hlp" ||
side == "wit")
- ui_vp_speedlines->play("prosecution_speedlines");
+ ui_vp_speedlines->play("prosecution_speedlines", f_char, f_custom_theme);
else
- ui_vp_speedlines->play("defense_speedlines");
+ ui_vp_speedlines->play("defense_speedlines", f_char, f_custom_theme);
}
@@ -2412,7 +2421,9 @@ void Courtroom::chat_tick()
anim_state = 3;
ui_vp_player_char->play_idle(m_chatmessage[CHAR_NAME], m_chatmessage[EMOTE]);
}
- ui_vp_chat_arrow->play("chat_arrow"); //Chat stopped being processed, indicate that.
+ QString f_char = m_chatmessage[CHAR_NAME];
+ QString f_custom_theme = ao_app->get_char_shouts(f_char);
+ ui_vp_chat_arrow->play("chat_arrow", f_char, f_custom_theme); //Chat stopped being processed, indicate that.
}
else
@@ -3988,13 +3999,14 @@ void Courtroom::on_reload_theme_clicked()
{
ao_app->reload_theme();
- //to update status on the background
- set_background(current_background);
enter_courtroom();
update_character(m_cid);
anim_state = 4;
text_state = 3;
+
+ //to update status on the background
+ set_background(current_background);
}
void Courtroom::on_back_to_lobby_clicked()