mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2026-01-30 18:04:09 +03:00
Migrate more prints to font::, determine font for most textboxes
Some textboxes need to be in the level font (like room names, cutscene dialogue, etc - even in the main game), and some need to be in the interface font (like when you collect a shiny trinket or crewmate). So most of these textboxes now have graphics.textboxprintflags(font_flag) as appropriate. RoomnameTranslator.cpp is now also migrated to the new print system - in room name translator mode, the room name is now displayed in the 8x8 font if it's untranslated and the level font if it is.
This commit is contained in:
committed by
Misa Elizabeth Kai
parent
6ca83114bc
commit
48a4e19635
@@ -1,6 +1,7 @@
|
||||
#include "RoomnameTranslator.h"
|
||||
|
||||
#include "Constants.h"
|
||||
#include "Font.h"
|
||||
#include "Game.h"
|
||||
#include "Graphics.h"
|
||||
#include "GraphicsUtil.h"
|
||||
@@ -44,10 +45,10 @@ namespace roomname_translator
|
||||
{
|
||||
use_explanation = "[no explanation]";
|
||||
}
|
||||
graphics.PrintWrap(0, 10, use_explanation, 0,192,255, false, 8, 320);
|
||||
font::print_wrap(PR_BOR | PR_FONT_8X8, 0, 10, use_explanation, 0,192,255, 8, 320);
|
||||
}
|
||||
|
||||
void overlay_render(bool* force_roomname_hidden, int* roomname_r, int* roomname_g, int* roomname_b)
|
||||
void overlay_render(bool* force_roomname_hidden, bool* roomname_untranslated, int* roomname_r, int* roomname_g, int* roomname_b)
|
||||
{
|
||||
if (edit_mode || help_screen)
|
||||
{
|
||||
@@ -60,59 +61,69 @@ namespace roomname_translator
|
||||
graphics.set_blendmode(SDL_BLENDMODE_NONE);
|
||||
if (help_screen)
|
||||
{
|
||||
graphics.bprint(0, 0, "=== Room name translation mode help ===", 255,255,255);
|
||||
font::print(PR_BOR | PR_FONT_8X8, 0, 0, "=== Room name translation mode help ===", 255,255,255);
|
||||
if (expl_mode)
|
||||
{
|
||||
graphics.bprint(0, 20, "You can currently access EXPL mode to", 255,255,255);
|
||||
graphics.bprint(0, 30, "set explanations for room names.", 255,255,255);
|
||||
graphics.bprint(0, 40, "(Use Ctrl+E to switch to NAME mode.)", 255,255,255);
|
||||
font::print_wrap(
|
||||
PR_BOR | PR_FONT_8X8,
|
||||
0, 20,
|
||||
"You can currently access EXPL mode to\n"
|
||||
"set explanations for room names.\n"
|
||||
"(Use Ctrl+E to switch to NAME mode.)",
|
||||
255,255,255
|
||||
);
|
||||
|
||||
const char* first_part = "Unexplained room names are ";
|
||||
graphics.bprint(0, 60, first_part, 255,255,255);
|
||||
graphics.bprint(graphics.len(first_part), 60, "cyan.", 64, 255, 255-help.glow);
|
||||
font::print(PR_BOR | PR_FONT_8X8, 0, 60, first_part, 255,255,255);
|
||||
font::print(PR_BOR | PR_FONT_8X8, graphics.len(first_part), 60, "cyan.", 64, 255, 255-help.glow);
|
||||
}
|
||||
else
|
||||
{
|
||||
graphics.bprint(0, 20, "You can currently access NAME mode to", 255,255,255);
|
||||
graphics.bprint(0, 30, "translate room names.", 255,255,255);
|
||||
graphics.bprint(0, 40, "(Use Ctrl+E to switch to EXPL mode.)", 255,255,255);
|
||||
font::print_wrap(
|
||||
PR_BOR | PR_FONT_8X8,
|
||||
0, 20,
|
||||
"You can currently access NAME mode to\n"
|
||||
"translate room names.\n"
|
||||
"(Use Ctrl+E to switch to EXPL mode.)",
|
||||
255,255,255
|
||||
);
|
||||
|
||||
const char* first_part = "English room names are ";
|
||||
graphics.bprint(0, 60, first_part, 255,255,255);
|
||||
graphics.bprint(graphics.len(first_part), 60, "cyan.", 0, 192, 255-help.glow);
|
||||
font::print(PR_BOR | PR_FONT_8X8, 0, 60, first_part, 255,255,255);
|
||||
font::print(PR_BOR | PR_FONT_8X8, graphics.len(first_part), 60, "cyan.", 0, 192, 255-help.glow);
|
||||
}
|
||||
graphics.bprint(0, 80, "KEYS:", 255,255,255);
|
||||
font::print(PR_BOR | PR_FONT_8X8, 0, 80, "KEYS:", 255,255,255);
|
||||
if (expl_mode)
|
||||
{
|
||||
graphics.bprint(0, 90, "Tab - switch between play/expl modes", 255,255,255);
|
||||
graphics.bprint(0, 100, "E/Enter - set room name explanation", 255,255,255);
|
||||
font::print(PR_BOR | PR_FONT_8X8, 0, 90, "Tab - switch between play/expl modes", 255,255,255);
|
||||
font::print(PR_BOR | PR_FONT_8X8, 0, 100, "E/Enter - set room name explanation", 255,255,255);
|
||||
}
|
||||
else
|
||||
{
|
||||
graphics.bprint(0, 90, "Tab - switch between play/name modes", 255,255,255);
|
||||
graphics.bprint(0, 100, "E/Enter - set room name translation", 255,255,255);
|
||||
font::print(PR_BOR | PR_FONT_8X8, 0, 90, "Tab - switch between play/name modes", 255,255,255);
|
||||
font::print(PR_BOR | PR_FONT_8X8, 0, 100, "E/Enter - set room name translation", 255,255,255);
|
||||
}
|
||||
graphics.bprint(0, 110, "I - toggle invincibility", 255,255,255);
|
||||
font::print(PR_BOR | PR_FONT_8X8, 0, 110, "I - toggle invincibility", 255,255,255);
|
||||
if (expl_mode)
|
||||
{
|
||||
graphics.bprint(0, 120, ". - set blank explanation", 255,255,255);
|
||||
font::print(PR_BOR | PR_FONT_8X8, 0, 120, ". - set blank explanation", 255,255,255);
|
||||
}
|
||||
*force_roomname_hidden = true;
|
||||
return;
|
||||
}
|
||||
else if (expl_mode)
|
||||
{
|
||||
graphics.bprint(0, 0, "Expl mode [TAB]", 255,255,255);
|
||||
font::print(PR_BOR | PR_FONT_8X8, 0, 0, "Expl mode [TAB]", 255,255,255);
|
||||
}
|
||||
else
|
||||
{
|
||||
graphics.bprint(0, 0, "Name mode [TAB]", 255,255,255);
|
||||
font::print(PR_BOR | PR_FONT_8X8, 0, 0, "Name mode [TAB]", 255,255,255);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
graphics.bprint(0, 0, "Play mode [TAB]", 255,255,255);
|
||||
graphics.bprint(320-64, 10, "F1: Help", 192,192,192);
|
||||
font::print(PR_BOR | PR_FONT_8X8, 0, 0, "Play mode [TAB]", 255,255,255);
|
||||
font::print(PR_BOR | PR_FONT_8X8, 320-64, 10, "F1: Help", 192,192,192);
|
||||
}
|
||||
|
||||
char buffer[SCREEN_WIDTH_CHARS + 1];
|
||||
@@ -128,11 +139,11 @@ namespace roomname_translator
|
||||
}
|
||||
|
||||
vformat_buf(buffer, sizeof(buffer), "{n|digits=3|spaces} left", "n:int", n_left);
|
||||
graphics.bprint(144, 0, buffer, 255,255,255);
|
||||
font::print(PR_BOR | PR_FONT_8X8, 144, 0, buffer, 255,255,255);
|
||||
|
||||
if (map.invincibility)
|
||||
{
|
||||
graphics.bprint(224, 0, "INV", 255,255,128);
|
||||
font::print(PR_BOR | PR_FONT_8X8, 224, 0, "INV", 255,255,128);
|
||||
}
|
||||
|
||||
vformat_buf(buffer, sizeof(buffer),
|
||||
@@ -140,7 +151,7 @@ namespace roomname_translator
|
||||
"x:int, y:int",
|
||||
game.roomx % 100, game.roomy % 100
|
||||
);
|
||||
graphics.bprint(320-56, 0, buffer, 255,255,255);
|
||||
font::print(PR_BOR | PR_FONT_8X8, 320-56, 0, buffer, 255,255,255);
|
||||
|
||||
if (map.roomname_special)
|
||||
{
|
||||
@@ -154,13 +165,14 @@ namespace roomname_translator
|
||||
// No room name at all, so no translation/explanation interface
|
||||
if (edit_mode)
|
||||
{
|
||||
graphics.bprint(-1, 221, "[no roomname]", 0,192,255, true);
|
||||
font::print(PR_CEN | PR_BOR | PR_FONT_8X8, -1, 229-font::height(PR_FONT_LEVEL), "[no roomname]", 0,192,255);
|
||||
}
|
||||
}
|
||||
else if (!expl_mode)
|
||||
{
|
||||
// Name mode affects play mode a bit as well...
|
||||
bool roomname_is_translated = loc::get_roomname_translation(map.custommode, game.roomx, game.roomy)[0] != '\0';
|
||||
*roomname_untranslated = !roomname_is_translated;
|
||||
|
||||
if (edit_mode)
|
||||
{
|
||||
@@ -173,21 +185,21 @@ namespace roomname_translator
|
||||
{
|
||||
english_roomname = map.roomname;
|
||||
}
|
||||
graphics.bprint(-1, 221, english_roomname, 0,192,255, true);
|
||||
font::print(PR_CEN | PR_BOR | PR_FONT_8X8, -1, 229-font::height(PR_FONT_LEVEL), english_roomname, 0,192,255);
|
||||
|
||||
print_explanation(loc::get_roomname_explanation(map.custommode, game.roomx, game.roomy));
|
||||
|
||||
if (key.textentry())
|
||||
{
|
||||
*force_roomname_hidden = true;
|
||||
graphics.render_roomname(key.keybuffer.c_str(), 255,255,255);
|
||||
int name_w = graphics.len(key.keybuffer);
|
||||
graphics.bprint((320-name_w)/2+name_w, 231, "_", 255,255,255);
|
||||
graphics.render_roomname(PR_FONT_LEVEL, key.keybuffer.c_str(), 255,255,255);
|
||||
int name_w = font::len(PR_FONT_LEVEL, key.keybuffer);
|
||||
font::print(PR_BOR | PR_FONT_LEVEL, (320-name_w)/2+name_w, 231, "_", 255,255,255);
|
||||
}
|
||||
else if (!roomname_is_translated)
|
||||
{
|
||||
*force_roomname_hidden = true;
|
||||
graphics.render_roomname("[no translation]", 255,255,128);
|
||||
graphics.render_roomname(PR_FONT_8X8, "[no translation]", 255,255,128);
|
||||
}
|
||||
}
|
||||
else if (!roomname_is_translated)
|
||||
@@ -214,7 +226,7 @@ namespace roomname_translator
|
||||
{
|
||||
print_explanation((key.keybuffer + "_").c_str());
|
||||
|
||||
graphics.PrintWrap(0, 90, "Use \".\" to set no explanation", 255,255,255, false, 8, 320);
|
||||
font::print_wrap(PR_BOR | PR_FONT_8X8, 0, 90, "Use \".\" to set no explanation", 255,255,255, 8, 320);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -248,11 +260,15 @@ namespace roomname_translator
|
||||
if (loc::save_roomname_explanation_to_files(map.custommode, game.roomx, game.roomy, explanation))
|
||||
{
|
||||
graphics.createtextboxflipme(success_message, -1, 176, 174, 174, 174);
|
||||
graphics.textboxprintflags(PR_FONT_8X8);
|
||||
graphics.textboxcenterx();
|
||||
graphics.textboxtimer(25);
|
||||
}
|
||||
else
|
||||
{
|
||||
graphics.createtextboxflipme("ERROR: Could not save to all langs!", -1, 176, 255, 60, 60);
|
||||
graphics.textboxprintflags(PR_FONT_8X8);
|
||||
graphics.textboxcenterx();
|
||||
graphics.textboxtimer(50);
|
||||
}
|
||||
}
|
||||
@@ -262,6 +278,8 @@ namespace roomname_translator
|
||||
if (loc::save_roomname_to_file(loc::lang, map.custommode, game.roomx, game.roomy, translation, NULL))
|
||||
{
|
||||
graphics.createtextboxflipme("Translation saved!", -1, 176, 174, 174, 174);
|
||||
graphics.textboxprintflags(PR_FONT_8X8);
|
||||
graphics.textboxcenterx();
|
||||
graphics.textboxtimer(25);
|
||||
}
|
||||
else
|
||||
@@ -271,6 +289,7 @@ namespace roomname_translator
|
||||
graphics.addline("1) Do the language files exist?");
|
||||
graphics.addline("2) Make sure there is no \"lang\"");
|
||||
graphics.addline(" folder next to the regular saves.");
|
||||
graphics.textboxprintflags(PR_FONT_8X8);
|
||||
graphics.textboxcenterx();
|
||||
graphics.textboxtimer(180);
|
||||
}
|
||||
@@ -330,6 +349,8 @@ namespace roomname_translator
|
||||
if (loc::lang == "en")
|
||||
{
|
||||
graphics.createtextboxflipme("ERROR: Can't add EN-EN translation", -1, 176, 255, 60, 60);
|
||||
graphics.textboxprintflags(PR_FONT_8X8);
|
||||
graphics.textboxcenterx();
|
||||
graphics.textboxtimer(50);
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user