1
0
mirror of https://github.com/TerryCavanagh/VVVVVV.git synced 2024-06-28 23:48:30 +02:00

Entity.cpp: make all activity prompts translatable

This adds loc::gettext for all "Press {button} to explode" and friends,
and also changes the interact_prompt function in Render.cpp to expect
{button} instead of %s.

This commit is part of rewritten history of the localization branch.
The original (unsquashed) commit history can be found here:
https://github.com/Dav999-v/VVVVVV/tree/localization-orig
This commit is contained in:
Dav999-v 2022-12-30 23:26:51 +01:00 committed by Misa Elizabeth Kai
parent 2210863e73
commit c142b3bb3b
2 changed files with 43 additions and 52 deletions

View File

@ -7,6 +7,7 @@
#include "Game.h" #include "Game.h"
#include "GlitchrunnerMode.h" #include "GlitchrunnerMode.h"
#include "Graphics.h" #include "Graphics.h"
#include "Localization.h"
#include "Map.h" #include "Map.h"
#include "Music.h" #include "Music.h"
#include "Script.h" #include "Script.h"
@ -856,211 +857,211 @@ void entityclass::createblock( int t, int xp, int yp, int w, int h, int trig /*=
switch(trig) switch(trig)
{ {
case 0: //testing zone case 0: //testing zone
block.prompt = "Press %s to explode"; block.prompt = loc::gettext("Press {button} to explode");
block.script = "intro"; block.script = "intro";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=1; trig=1;
break; break;
case 1: case 1:
block.prompt = "Press %s to talk to Violet"; block.prompt = loc::gettext("Press {button} to talk to Violet");
block.script = "talkpurple"; block.script = "talkpurple";
block.setblockcolour("purple"); block.setblockcolour("purple");
trig=0; trig=0;
break; break;
case 2: case 2:
block.prompt = "Press %s to talk to Vitellary"; block.prompt = loc::gettext("Press {button} to talk to Vitellary");
block.script = "talkyellow"; block.script = "talkyellow";
block.setblockcolour("yellow"); block.setblockcolour("yellow");
trig=0; trig=0;
break; break;
case 3: case 3:
block.prompt = "Press %s to talk to Vermilion"; block.prompt = loc::gettext("Press {button} to talk to Vermilion");
block.script = "talkred"; block.script = "talkred";
block.setblockcolour("red"); block.setblockcolour("red");
trig=0; trig=0;
break; break;
case 4: case 4:
block.prompt = "Press %s to talk to Verdigris"; block.prompt = loc::gettext("Press {button} to talk to Verdigris");
block.script = "talkgreen"; block.script = "talkgreen";
block.setblockcolour("green"); block.setblockcolour("green");
trig=0; trig=0;
break; break;
case 5: case 5:
block.prompt = "Press %s to talk to Victoria"; block.prompt = loc::gettext("Press {button} to talk to Victoria");
block.script = "talkblue"; block.script = "talkblue";
block.setblockcolour("blue"); block.setblockcolour("blue");
trig=0; trig=0;
break; break;
case 6: case 6:
block.prompt = "Press %s to activate terminal"; block.prompt = loc::gettext("Press {button} to activate terminal");
block.script = "terminal_station_1"; block.script = "terminal_station_1";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 7: case 7:
block.prompt = "Press %s to activate terminal"; block.prompt = loc::gettext("Press {button} to activate terminal");
block.script = "terminal_outside_1"; block.script = "terminal_outside_1";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 8: case 8:
block.prompt = "Press %s to activate terminal"; block.prompt = loc::gettext("Press {button} to activate terminal");
block.script = "terminal_outside_2"; block.script = "terminal_outside_2";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 9: case 9:
block.prompt = "Press %s to activate terminal"; block.prompt = loc::gettext("Press {button} to activate terminal");
block.script = "terminal_outside_3"; block.script = "terminal_outside_3";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 10: case 10:
block.prompt = "Press %s to activate terminal"; block.prompt = loc::gettext("Press {button} to activate terminal");
block.script = "terminal_outside_4"; block.script = "terminal_outside_4";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 11: case 11:
block.prompt = "Press %s to activate terminal"; block.prompt = loc::gettext("Press {button} to activate terminal");
block.script = "terminal_outside_5"; block.script = "terminal_outside_5";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 12: case 12:
block.prompt = "Press %s to activate terminal"; block.prompt = loc::gettext("Press {button} to activate terminal");
block.script = "terminal_outside_6"; block.script = "terminal_outside_6";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 13: case 13:
block.prompt = "Press %s to activate terminal"; block.prompt = loc::gettext("Press {button} to activate terminal");
block.script = "terminal_finallevel"; block.script = "terminal_finallevel";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 14: case 14:
block.prompt = "Press %s to activate terminal"; block.prompt = loc::gettext("Press {button} to activate terminal");
block.script = "terminal_station_2"; block.script = "terminal_station_2";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 15: case 15:
block.prompt = "Press %s to activate terminal"; block.prompt = loc::gettext("Press {button} to activate terminal");
block.script = "terminal_station_3"; block.script = "terminal_station_3";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 16: case 16:
block.prompt = "Press %s to activate terminal"; block.prompt = loc::gettext("Press {button} to activate terminal");
block.script = "terminal_station_4"; block.script = "terminal_station_4";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 17: case 17:
block.prompt = "Press %s to activate terminal"; block.prompt = loc::gettext("Press {button} to activate terminal");
block.script = "terminal_warp_1"; block.script = "terminal_warp_1";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 18: case 18:
block.prompt = "Press %s to activate terminal"; block.prompt = loc::gettext("Press {button} to activate terminal");
block.script = "terminal_warp_2"; block.script = "terminal_warp_2";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 19: case 19:
block.prompt = "Press %s to activate terminal"; block.prompt = loc::gettext("Press {button} to activate terminal");
block.script = "terminal_lab_1"; block.script = "terminal_lab_1";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 20: case 20:
block.prompt = "Press %s to activate terminal"; block.prompt = loc::gettext("Press {button} to activate terminal");
block.script = "terminal_lab_2"; block.script = "terminal_lab_2";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 21: case 21:
block.prompt = "Press %s to activate terminal"; block.prompt = loc::gettext("Press {button} to activate terminal");
block.script = "terminal_secretlab"; block.script = "terminal_secretlab";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 22: case 22:
block.prompt = "Press %s to activate terminal"; block.prompt = loc::gettext("Press {button} to activate terminal");
block.script = "terminal_shipcomputer"; block.script = "terminal_shipcomputer";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 23: case 23:
block.prompt = "Press %s to activate terminals"; block.prompt = loc::gettext("Press {button} to activate terminals");
block.script = "terminal_radio"; block.script = "terminal_radio";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 24: case 24:
block.prompt = "Press %s to activate terminal"; block.prompt = loc::gettext("Press {button} to activate terminal");
block.script = "terminal_jukebox"; block.script = "terminal_jukebox";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 25: case 25:
block.prompt = "Passion for Exploring"; block.prompt = loc::gettext("Passion for Exploring");
block.script = "terminal_juke1"; block.script = "terminal_juke1";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 26: case 26:
block.prompt = "Pushing Onwards"; block.prompt = loc::gettext("Pushing Onwards");
block.script = "terminal_juke2"; block.script = "terminal_juke2";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 27: case 27:
block.prompt = "Positive Force"; block.prompt = loc::gettext("Positive Force");
block.script = "terminal_juke3"; block.script = "terminal_juke3";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 28: case 28:
block.prompt = "Presenting VVVVVV"; block.prompt = loc::gettext("Presenting VVVVVV");
block.script = "terminal_juke4"; block.script = "terminal_juke4";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 29: case 29:
block.prompt = "Potential for Anything"; block.prompt = loc::gettext("Potential for Anything");
block.script = "terminal_juke5"; block.script = "terminal_juke5";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 30: case 30:
block.prompt = "Predestined Fate"; block.prompt = loc::gettext("Predestined Fate");
block.script = "terminal_juke6"; block.script = "terminal_juke6";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 31: case 31:
block.prompt = "Pipe Dream"; block.prompt = loc::gettext("Pipe Dream");
block.script = "terminal_juke7"; block.script = "terminal_juke7";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 32: case 32:
block.prompt = "Popular Potpourri"; block.prompt = loc::gettext("Popular Potpourri");
block.script = "terminal_juke8"; block.script = "terminal_juke8";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 33: case 33:
block.prompt = "Pressure Cooker"; block.prompt = loc::gettext("Pressure Cooker");
block.script = "terminal_juke9"; block.script = "terminal_juke9";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
break; break;
case 34: case 34:
block.prompt = "ecroF evitisoP"; block.prompt = loc::gettext("ecroF evitisoP");
block.script = "terminal_juke10"; block.script = "terminal_juke10";
block.setblockcolour("orange"); block.setblockcolour("orange");
trig=0; trig=0;
@ -1068,11 +1069,11 @@ void entityclass::createblock( int t, int xp, int yp, int w, int h, int trig /*=
case 35: case 35:
if (custom) if (custom)
{ {
block.prompt = "Press %s to interact"; block.prompt = loc::gettext("Press {button} to interact");
} }
else else
{ {
block.prompt = "Press %s to activate terminal"; block.prompt = loc::gettext("Press {button} to activate terminal");
} }
block.script = "custom_"+customscript; block.script = "custom_"+customscript;
block.setblockcolour("orange"); block.setblockcolour("orange");

View File

@ -1839,26 +1839,18 @@ static const char* interact_prompt(
const size_t buffer_size, const size_t buffer_size,
const char* raw const char* raw
) { ) {
const char* string_fmt_loc = SDL_strstr(raw, "%s");
const char* button; const char* button;
if (string_fmt_loc == NULL /* No "%s". */
|| string_fmt_loc != SDL_strchr(raw, '%') /* First "%" found is not "%s". */
|| SDL_strchr(&string_fmt_loc[1], '%') != NULL) /* Other "%" after "%s". */
{
return raw;
}
if (game.separate_interact) if (game.separate_interact)
{ {
button = "E"; button = loc::gettext("E");
} }
else else
{ {
button = "ENTER"; button = loc::gettext("ENTER");
} }
SDL_snprintf(buffer, buffer_size, raw, button); vformat_buf(buffer, buffer_size, raw, "button:str", button);
return buffer; return buffer;
} }
@ -1985,11 +1977,10 @@ void gamerender(void)
if (game.readytotele > 100 || game.oldreadytotele > 100) if (game.readytotele > 100 || game.oldreadytotele > 100)
{ {
char buffer[SCREEN_WIDTH_CHARS + 1]; char buffer[SCREEN_WIDTH_CHARS + 1];
static const char raw[] = "- Press %s to Teleport -";
const char* final_string = interact_prompt( const char* final_string = interact_prompt(
buffer, buffer,
sizeof(buffer), sizeof(buffer),
raw loc::gettext("- Press {button} to Teleport -")
); );
int alpha = graphics.lerp(game.oldreadytotele, game.readytotele); int alpha = graphics.lerp(game.oldreadytotele, game.readytotele);
@ -2905,11 +2896,10 @@ void teleporterrender(void)
if (game.useteleporter) if (game.useteleporter)
{ {
char buffer[SCREEN_WIDTH_CHARS + 1]; char buffer[SCREEN_WIDTH_CHARS + 1];
static const char raw[] = "Press %s to Teleport";
const char* final_string = interact_prompt( const char* final_string = interact_prompt(
buffer, buffer,
sizeof(buffer), sizeof(buffer),
raw loc::gettext("Press {button} to Teleport")
); );
//Instructions! //Instructions!