Changed sprintfs to snprintfs, updated translation
authorChristoph Sommer <mail@christoph-sommer.de>
Wed, 5 Jul 2006 22:42:39 +0000 (22:42 +0000)
committerChristoph Sommer <mail@christoph-sommer.de>
Wed, 5 Jul 2006 22:42:39 +0000 (22:42 +0000)
SVN-Revision: 3909

data/locale/de.po
src/game_session.cpp
src/gui/menu.cpp
src/player_status.cpp
src/resources.cpp
src/statistics.cpp

index f532b1d..0a3d437 100644 (file)
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: SuperTux 0.2-svn\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2004-12-15 17:21+0100\n"
-"PO-Revision-Date: 2006-06-16 02:20+0100\n"
+"PO-Revision-Date: 2006-07-06 00:39+0100\n"
 "Last-Translator: Christoph Sommer <christoph.sommer@2006.expires.deltadevelopment.de>\n"
 "Language-Team: German <de@li.org>\n"
 "MIME-Version: 1.0\n"
@@ -23,217 +23,11 @@ msgstr ""
 "X-Poedit-KeywordsList: draw_text;draw_center_text;_\n"
 "X-Poedit-SearchPath-0: src\n"
 
-#: src/main.cpp:200
-#, c-format
-msgid ""
-"Usage: %s [OPTIONS] [LEVELFILE]\n"
-"\n"
-msgstr ""
-"Aufruf: %s [OPTIONS] [LEVELDATEI]\n"
-"\n"
-
-#: src/main.cpp:202
-#, c-format
-msgid ""
-"Options:\n"
-"  -f, --fullscreen             Run in fullscreen mode\n"
-"  -w, --window                 Run in window mode\n"
-"  -g, --geometry WIDTHxHEIGHT  Run SuperTux in given resolution\n"
-"  --disable-sfx                Disable sound effects\n"
-"  --disable-music              Disable music\n"
-"  --help                       Show this help message\n"
-"  --version                    Display SuperTux version and quit\n"
-"  --show-fps                   Display framerate in levels\n"
-"  --record-demo FILE LEVEL     Record a demo to FILE\n"
-"  --play-demo FILE LEVEL       Play a recorded demo\n"
-"\n"
-msgstr ""
-"Optionen:\n"
-"  -f, --fullscreen             Vollbild-Modus\n"
-"  -w, --window                 Fenster-Modus\n"
-"  -g, --geometry WIDTHxHEIGHT  SuperTux mit gewünschter Auflösung starten\n"
-"  --disable-sfx                Sound deaktivieren\n"
-"  --disable-music              Musik deaktivieren\n"
-"  --help                       Diesen Hilfetext anzeigen\n"
-"  --version                    SuperTux Version anzeigen und beenden\n"
-"  --show-fps                   FPS anzeigen\n"
-"  --record-demo FILE LEVEL     Demo in Datei FILE aufzeichnen\n"
-"  --play-demo FILE LEVEL       Demo aus Datei FILE abspielen\n"
-"\n"
-
-#: src/game_session.cpp:101
-#: src/worldmap/worldmap.cpp:145
-msgid "Pause"
-msgstr "Pause"
-
-#: src/game_session.cpp:103
-#: src/worldmap/worldmap.cpp:147
-msgid "Continue"
-msgstr "Weiterspielen"
-
-#: src/game_session.cpp:104
-#: src/options_menu.cpp:49
-#: src/title.cpp:275
-#: src/worldmap/worldmap.cpp:148
-msgid "Options"
-msgstr "Einstellungen"
-
-#: src/game_session.cpp:106
-msgid "Abort Level"
-msgstr "Level Abbrechen"
-
-#: src/game_session.cpp:248
-msgid "contributed by "
-msgstr "von"
-
-#: src/game_session.cpp:252
-msgid "Best Level Statistics"
-msgstr "Level-Rekorde"
-
-#: src/statistics.cpp:83
-msgid "- Best Level Statistics -"
-msgstr "- Level-Rekorde -"
-
-#: src/statistics.cpp:101
-#, c-format
-msgid "Max coins collected:"
-msgstr "Münzen gesammelt:"
-
-#: src/statistics.cpp:105
-#, c-format
-msgid "Max fragging:"
-msgstr "Gegner besiegt:"
-
-#: src/statistics.cpp:109
-#, c-format
-msgid "Min time needed:"
-msgstr "Schnellste Zeit:"
-
-#: src/statistics.cpp:118
-#, c-format
-msgid "Max secrets found:"
-msgstr "Verstecke gefunden:"
-
-#: src/statistics.cpp:150
-#, c-format
-msgid "Max coins collected:   %d / %d"
-msgstr "Münzen gesammelt:      %d / %d"
-
-#: src/statistics.cpp:154
-#, c-format
-msgid "Max fragging:          %d / %d"
-msgstr "Gegner besiegt:        %d / %d"
-
-#: src/statistics.cpp:161
-#, c-format
-msgid "Min time needed:       %02d:%02d"
-msgstr "Schnellste Zeit:       %02d:%02d"
-
-#: src/statistics.cpp:165
-#, c-format
-msgid "Max secrets found:     %d / %d"
-msgstr "Verstecke gefunden:    %d / %d"
-
-#: src/statistics.cpp:202
-msgid "You"
-msgstr "Gerade"
-
-#: src/statistics.cpp:203
-msgid "Best"
-msgstr "Rekord"
-
-#: src/statistics.cpp:205
-msgid "Coins"
-msgstr "Münzen"
-
-#: src/statistics.cpp:213
-msgid "Secrets"
-msgstr "Verstecke"
-
-#: src/statistics.cpp:221
-msgid "Time"
-msgstr "Zeit"
-
-#: src/player_status.cpp:142
-msgid "COINS"
-msgstr "Münzen"
-
-#: src/options_menu.cpp:51
-msgid "Fullscreen"
-msgstr "Vollbild"
-
-#: src/options_menu.cpp:53
-msgid "Sound"
-msgstr "Sound"
-
-#: src/options_menu.cpp:54
-msgid "Music"
-msgstr "Musik"
-
-#: src/options_menu.cpp:56
-msgid "Sound (disabled)"
-msgstr "Sound (deaktiviert)"
-
-#: src/options_menu.cpp:57
-msgid "Music (disabled)"
-msgstr "Musik (deaktiviert)"
-
-#: src/options_menu.cpp:59
 #: src/control/joystickkeyboardcontroller.cpp:572
+#: src/options_menu.cpp:59
 msgid "Setup Keyboard"
 msgstr "Tastenbelegung"
 
-#: src/options_menu.cpp:60
-#: src/control/joystickkeyboardcontroller.cpp:655
-msgid "Setup Joystick"
-msgstr "Joystickbelegung"
-
-#: src/options_menu.cpp:62
-#: src/title.cpp:88
-#: src/title.cpp:139
-#: src/title.cpp:189
-#: src/control/joystickkeyboardcontroller.cpp:581
-#: src/control/joystickkeyboardcontroller.cpp:665
-msgid "Back"
-msgstr "Zurück"
-
-#: src/title.cpp:82
-#: src/title.cpp:273
-msgid "Start Game"
-msgstr "Spiel starten"
-
-#: src/title.cpp:117
-#: src/title.cpp:274
-msgid "Contrib Levels"
-msgstr "Zusatzlevel"
-
-#: src/title.cpp:276
-msgid "Credits"
-msgstr "Mitwirkende"
-
-#: src/title.cpp:277
-msgid "Quit"
-msgstr "Beenden"
-
-#: src/title.cpp:316
-msgid ""
-"Copyright (c) 2006 SuperTux Devel Team\n"
-"This game comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to\n"
-"redistribute it under certain conditions; see the file COPYING for details.\n"
-msgstr ""
-"Copyright (c) 2003 SuperTux Devel Team\n"
-"Für dieses Spiel besteht KEINERLEI GARANTIE. Dieses Spiel ist freie Software, die Sie unter\n"
-"bestimmten Bedingungen weitergeben dürfen; Details finden Sie in der Datei COPYING.\n"
-
-#: src/title.cpp:418
-#: src/title.cpp:423
-msgid "Slot"
-msgstr "Spielstand"
-
-#: src/title.cpp:418
-msgid "Free"
-msgstr "Frei"
-
 #: src/control/joystickkeyboardcontroller.cpp:574
 msgid "Up"
 msgstr "Oben"
@@ -260,6 +54,15 @@ msgstr "Springen"
 msgid "Action"
 msgstr "Aktion"
 
+#: src/control/joystickkeyboardcontroller.cpp:581
+#: src/control/joystickkeyboardcontroller.cpp:665
+#: src/options_menu.cpp:62
+#: src/title.cpp:88
+#: src/title.cpp:139
+#: src/title.cpp:189
+msgid "Back"
+msgstr "Zurück"
+
 #: src/control/joystickkeyboardcontroller.cpp:593
 #: src/control/joystickkeyboardcontroller.cpp:676
 msgid "None"
@@ -317,6 +120,11 @@ msgstr "Alt Links"
 msgid "Press Key"
 msgstr "Taste drücken"
 
+#: src/control/joystickkeyboardcontroller.cpp:655
+#: src/options_menu.cpp:60
+msgid "Setup Joystick"
+msgstr "Joystickbelegung"
+
 #: src/control/joystickkeyboardcontroller.cpp:660
 msgid "Pause/Menu"
 msgstr "Pause/Menü"
@@ -349,7 +157,181 @@ msgstr "Zeit"
 msgid "You found a secret area!"
 msgstr "Neues Versteck gefunden!"
 
+#: src/worldmap/worldmap.cpp:145
+#: src/game_session.cpp:101
+msgid "Pause"
+msgstr "Pause"
+
+#: src/worldmap/worldmap.cpp:147
+#: src/game_session.cpp:103
+msgid "Continue"
+msgstr "Weiterspielen"
+
+#: src/worldmap/worldmap.cpp:148
+#: src/options_menu.cpp:49
+#: src/game_session.cpp:104
+#: src/title.cpp:275
+msgid "Options"
+msgstr "Einstellungen"
+
 #: src/worldmap/worldmap.cpp:150
 msgid "Quit World"
 msgstr "Welt verlassen"
 
+#: src/options_menu.cpp:51
+msgid "Fullscreen"
+msgstr "Vollbild"
+
+#: src/options_menu.cpp:53
+msgid "Sound"
+msgstr "Sound"
+
+#: src/options_menu.cpp:54
+msgid "Music"
+msgstr "Musik"
+
+#: src/options_menu.cpp:56
+msgid "Sound (disabled)"
+msgstr "Sound (deaktiviert)"
+
+#: src/options_menu.cpp:57
+msgid "Music (disabled)"
+msgstr "Musik (deaktiviert)"
+
+#: src/main.cpp:201
+#, c-format
+msgid ""
+"Usage: %s [OPTIONS] [LEVELFILE]\n"
+"\n"
+msgstr ""
+"Aufruf: %s [OPTIONS] [LEVELDATEI]\n"
+"\n"
+
+#: src/main.cpp:203
+#, c-format
+msgid ""
+"Options:\n"
+"  -f, --fullscreen             Run in fullscreen mode\n"
+"  -w, --window                 Run in window mode\n"
+"  -g, --geometry WIDTHxHEIGHT  Run SuperTux in given resolution\n"
+"  --disable-sfx                Disable sound effects\n"
+"  --disable-music              Disable music\n"
+"  --help                       Show this help message\n"
+"  --version                    Display SuperTux version and quit\n"
+"  --show-fps                   Display framerate in levels\n"
+"  --record-demo FILE LEVEL     Record a demo to FILE\n"
+"  --play-demo FILE LEVEL       Play a recorded demo\n"
+"\n"
+msgstr ""
+"Optionen:\n"
+"  -f, --fullscreen             Vollbild-Modus\n"
+"  -w, --window                 Fenster-Modus\n"
+"  -g, --geometry WIDTHxHEIGHT  SuperTux mit gewünschter Auflösung starten\n"
+"  --disable-sfx                Sound deaktivieren\n"
+"  --disable-music              Musik deaktivieren\n"
+"  --help                       Diesen Hilfetext anzeigen\n"
+"  --version                    SuperTux Version anzeigen und beenden\n"
+"  --show-fps                   FPS anzeigen\n"
+"  --record-demo FILE LEVEL     Demo in Datei FILE aufzeichnen\n"
+"  --play-demo FILE LEVEL       Demo aus Datei FILE abspielen\n"
+"\n"
+
+#: src/game_session.cpp:106
+msgid "Abort Level"
+msgstr "Level Abbrechen"
+
+#: src/game_session.cpp:252
+#: src/statistics.cpp:237
+msgid "Coins"
+msgstr "Münzen"
+
+#: src/game_session.cpp:258
+msgid "contributed by "
+msgstr "von"
+
+#: src/game_session.cpp:262
+#: src/statistics.cpp:101
+msgid "Best Level Statistics"
+msgstr "Level-Rekorde"
+
+#: src/statistics.cpp:119
+#: src/statistics.cpp:176
+#, c-format
+msgid "Max coins collected:"
+msgstr "Münzen gesammelt:"
+
+#: src/statistics.cpp:123
+#: src/statistics.cpp:181
+#, c-format
+msgid "Max fragging:"
+msgstr "Gegner besiegt:"
+
+#: src/statistics.cpp:127
+#: src/statistics.cpp:189
+#, c-format
+msgid "Min time needed:"
+msgstr "Schnellste Zeit:"
+
+#: src/statistics.cpp:136
+#: src/statistics.cpp:194
+#, c-format
+msgid "Max secrets found:"
+msgstr "Verstecke gefunden:"
+
+#: src/statistics.cpp:234
+msgid "You"
+msgstr "Jetzt"
+
+#: src/statistics.cpp:235
+msgid "Best"
+msgstr "Rekord"
+
+#: src/statistics.cpp:245
+msgid "Secrets"
+msgstr "Verstecke"
+
+#: src/statistics.cpp:253
+msgid "Time"
+msgstr "Zeit"
+
+#: src/player_status.cpp:142
+msgid "COINS"
+msgstr "Münzen"
+
+#: src/title.cpp:82
+#: src/title.cpp:273
+msgid "Start Game"
+msgstr "Spiel starten"
+
+#: src/title.cpp:117
+#: src/title.cpp:274
+msgid "Contrib Levels"
+msgstr "Zusatzlevel"
+
+#: src/title.cpp:276
+msgid "Credits"
+msgstr "Abspann"
+
+#: src/title.cpp:277
+msgid "Quit"
+msgstr "Beenden"
+
+#: src/title.cpp:316
+msgid ""
+"Copyright (c) 2006 SuperTux Devel Team\n"
+"This game comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to\n"
+"redistribute it under certain conditions; see the file COPYING for details.\n"
+msgstr ""
+"Copyright (c) 2003 SuperTux Devel Team\n"
+"Für dieses Spiel besteht KEINERLEI GARANTIE. Dieses Spiel ist freie Software, die Sie unter\n"
+"bestimmten Bedingungen weitergeben dürfen; Details finden Sie in der Datei COPYING.\n"
+
+#: src/title.cpp:418
+#: src/title.cpp:423
+msgid "Slot"
+msgstr "Spielstand"
+
+#: src/title.cpp:418
+msgid "Free"
+msgstr "Frei"
+
index daac30f..4495343 100644 (file)
@@ -179,7 +179,7 @@ GameSession::record_demo(const std::string& filename)
   capture_file = filename;
 
   char buf[30];                            // save the seed in the demo file
-  sprintf(buf, "random_seed=%010d", config->random_seed);
+  snprintf(buf, sizeof(buf), "random_seed=%010d", config->random_seed);
   for (int i=0; i==0 || buf[i-1]; i++)
     capture_demo_stream->put(buf[i]);
 }
@@ -215,6 +215,15 @@ GameSession::play_demo(const std::string& filename)
   }
 }
 
+namespace {
+  inline const char* chain(const char* c1, const char* c2) {
+    return (std::string(c1) + std::string(c2)).c_str();
+  }
+  inline const char* chain(const char* c1, const char* c2, const char* c3) {
+    return (std::string(c1) + std::string(c2) + std::string(c3)).c_str();
+  }
+}
+
 void
 GameSession::levelintro()
 {
@@ -240,7 +249,7 @@ GameSession::levelintro()
   context.draw_center_text(gold_text, level->get_name(), Vector(0, 160),
       LAYER_FOREGROUND1);
 
-  sprintf(str, "Coins: %d", player_status->coins);
+  snprintf(str, sizeof(str), chain(_("Coins"), ": %d"), player_status->coins);
   context.draw_text(white_text, str, Vector(SCREEN_WIDTH/2, 210),
       CENTER_ALLIGN, LAYER_FOREGROUND1);
 
index e230b3d..1738a26 100644 (file)
@@ -180,9 +180,9 @@ std::string MenuItem::get_input_with_symbol(bool active_item)
 
   char str[1024];
   if(input_flickering)
-    sprintf(str,"%s ",input.c_str());
+    snprintf(str, sizeof(str), "%s ",input.c_str());
   else
-    sprintf(str,"%s_",input.c_str());
+    snprintf(str, sizeof(str), "%s_",input.c_str());
 
   std::string string = str;
 
index e9dd84d..f39ded0 100644 (file)
@@ -138,7 +138,7 @@ PlayerStatus::draw(DrawingContext& context)
   char str[60];
  
   int displayCoins = std::max(player_status->coins, 0);
-  sprintf(str, "%d", displayCoins);
+  snprintf(str, sizeof(str), "%d", displayCoins);
   const char* coinstext = _("COINS");
   context.draw_text(white_text, coinstext, Vector(SCREEN_WIDTH - white_text->get_text_width(coinstext) - gold_text->get_text_width(" 99999") - BORDER_X, BORDER_Y), LEFT_ALLIGN, LAYER_FOREGROUND1);
   context.draw_text(gold_text, str, Vector(SCREEN_WIDTH - BORDER_X, BORDER_Y), RIGHT_ALLIGN, LAYER_FOREGROUND1);
index 940b0a0..94e85e1 100644 (file)
@@ -73,10 +73,10 @@ void load_shared()
   char img_name[1024];
   for (int i = 0; i < GROWING_FRAMES; i++)
     {
-      sprintf(img_name, "images/creatures/tux_grow/left-%i.png", i+1);
+      snprintf(img_name, sizeof(img_name), "images/creatures/tux_grow/left-%i.png", i+1);
       growingtux_left[i] = new Surface(img_name);
 
-      sprintf(img_name, "images/creatures/tux_grow/right-%i.png", i+1);
+      snprintf(img_name, sizeof(img_name), "images/creatures/tux_grow/right-%i.png", i+1);
       growingtux_right[i] = new Surface(img_name);
     }
 
index 37322ec..652da58 100644 (file)
@@ -116,25 +116,25 @@ Statistics::draw_worldmap_info(DrawingContext& context)
   switch (display_stat) 
   {
     case 0:
-      sprintf(caption_buf, _("Max coins collected:"));
-      sprintf(stat_buf, "%d/%d", coins, total_coins);
+      snprintf(caption_buf, sizeof(caption_buf), _("Max coins collected:"));
+      snprintf(stat_buf, sizeof(stat_buf), "%d/%d", coins, total_coins);
       break;
     case 1:
-      sprintf(caption_buf, _("Max fragging:"));
-      sprintf(stat_buf, "%d/%d", badguys, total_badguys);
+      snprintf(caption_buf, sizeof(caption_buf), _("Max fragging:"));
+      snprintf(stat_buf, sizeof(stat_buf), "%d/%d", badguys, total_badguys);
       break;
     case 2:
-      sprintf(caption_buf, _("Min time needed:"));
+      snprintf(caption_buf, sizeof(caption_buf), _("Min time needed:"));
       {
        int csecs = (int)(time * 100);
        int mins = (int)(csecs / 6000);
        int secs = (csecs % 6000) / 100;
-       sprintf(stat_buf, "%02d:%02d", mins,secs); 
+       snprintf(stat_buf, sizeof(stat_buf), "%02d:%02d", mins,secs); 
       }
       break;
     case 3:
-      sprintf(caption_buf, _("Max secrets found:"));
-      sprintf(stat_buf, "%d/%d", secrets, total_secrets);
+      snprintf(caption_buf, sizeof(caption_buf), _("Max secrets found:"));
+      snprintf(stat_buf, sizeof(stat_buf), "%d/%d", secrets, total_secrets);
       break;
     default:
       log_debug << "Invalid stat requested to be drawn" << std::endl;
@@ -163,28 +163,36 @@ Statistics::draw_message_info(DrawingContext& context, std::string title)
   // skip draw if stats were declared invalid
   if (!valid) return;
 
+  const float width = white_small_text->get_text_width("Max coins collected: 1111 / 1111");
+  const float left = (SCREEN_WIDTH - width) / 2;
+  const float right = (SCREEN_WIDTH + width) / 2;
+
   context.draw_text(gold_text, title, Vector(SCREEN_WIDTH/2, 410), CENTER_ALLIGN, LAYER_GUI);
 
-  char str[128];
+  char stat_buf[128];
   int py = 450 + 18;
 
-  sprintf(str, _("Max coins collected:   %d / %d"), coins, total_coins);
-  context.draw_text(white_small_text, str, Vector(SCREEN_WIDTH/2, py), CENTER_ALLIGN, LAYER_GUI); 
+  snprintf(stat_buf, sizeof(stat_buf), "%d/%d", coins, total_coins);
+  context.draw_text(white_small_text, _("Max coins collected:"), Vector(left, py), LEFT_ALLIGN, LAYER_GUI); 
+  context.draw_text(white_small_text, "%d / %d", Vector(right, py), RIGHT_ALLIGN, LAYER_GUI); 
   py+=18;
 
-  sprintf(str, _("Max fragging:          %d / %d"), badguys, total_badguys);
-  context.draw_text(white_small_text, str, Vector(SCREEN_WIDTH/2, py), CENTER_ALLIGN, LAYER_GUI); 
+  snprintf(stat_buf, sizeof(stat_buf), "%d/%d", badguys, total_badguys);
+  context.draw_text(white_small_text, _("Max fragging:"), Vector(left, py), LEFT_ALLIGN, LAYER_GUI); 
+  context.draw_text(white_small_text, "%d / %d", Vector(right, py), RIGHT_ALLIGN, LAYER_GUI); 
   py+=18;
 
   int csecs = (int)(time * 100);
   int mins = (int)(csecs / 6000);
   int secs = (csecs % 6000) / 100;
-  sprintf(str, _("Min time needed:       %02d:%02d"), mins,secs);
-  context.draw_text(white_small_text, str, Vector(SCREEN_WIDTH/2, py), CENTER_ALLIGN, LAYER_GUI); 
+  snprintf(stat_buf, sizeof(stat_buf), "%02d:%02d", mins,secs); 
+  context.draw_text(white_small_text, _("Min time needed:"), Vector(left, py), LEFT_ALLIGN, LAYER_GUI); 
+  context.draw_text(white_small_text, "%02d:%02d", Vector(right, py), RIGHT_ALLIGN, LAYER_GUI); 
   py+=18;
   
-  sprintf(str, _("Max secrets found:     %d / %d"), secrets, total_secrets);
-  context.draw_text(white_small_text, str, Vector(SCREEN_WIDTH/2, py), CENTER_ALLIGN, LAYER_GUI); 
+  snprintf(stat_buf, sizeof(stat_buf), "%d/%d", secrets, total_secrets);
+  context.draw_text(white_small_text, _("Max secrets found:"), Vector(left, py), LEFT_ALLIGN, LAYER_GUI); 
+  context.draw_text(white_small_text, "%d / %d", Vector(right, py), RIGHT_ALLIGN, LAYER_GUI); 
   py+=18;
 }
 
@@ -227,18 +235,18 @@ Statistics::draw_endseq_panel(DrawingContext& context, Statistics* best_stats, S
   context.draw_text(white_text, _("Best"), Vector(col3_x, row1_y), LEFT_ALLIGN, LAYER_GUI);
 
   context.draw_text(white_text, _("Coins"), Vector(col1_x, row2_y), LEFT_ALLIGN, LAYER_GUI);
-  snprintf(buf, 128, "%d/%d", coins, total_coins);
+  snprintf(buf, sizeof(buf), "%d/%d", coins, total_coins);
   context.draw_text(gold_text, buf, Vector(col2_x, row2_y), LEFT_ALLIGN, LAYER_GUI);
   if (best_stats && (best_stats->coins > coins)) {
-    snprintf(buf, 128, "%d/%d", best_stats->coins, best_stats->total_coins);
+    snprintf(buf, sizeof(buf), "%d/%d", best_stats->coins, best_stats->total_coins);
   }
   context.draw_text(gold_text, buf, Vector(col3_x, row2_y), LEFT_ALLIGN, LAYER_GUI);
 
   context.draw_text(white_text, _("Secrets"), Vector(col1_x, row4_y), LEFT_ALLIGN, LAYER_GUI);
-  snprintf(buf, 128, "%d/%d", secrets, total_secrets);
+  snprintf(buf, sizeof(buf), "%d/%d", secrets, total_secrets);
   context.draw_text(gold_text, buf, Vector(col2_x, row4_y), LEFT_ALLIGN, LAYER_GUI);
   if (best_stats && (best_stats->secrets > secrets)) {
-    snprintf(buf, 128, "%d/%d", best_stats->secrets, best_stats->total_secrets);
+    snprintf(buf, sizeof(buf), "%d/%d", best_stats->secrets, best_stats->total_secrets);
   }
   context.draw_text(gold_text, buf, Vector(col3_x, row4_y), LEFT_ALLIGN, LAYER_GUI);
 
@@ -246,13 +254,13 @@ Statistics::draw_endseq_panel(DrawingContext& context, Statistics* best_stats, S
   int csecs = (int)(time * 100);
   int mins = (int)(csecs / 6000);
   int secs = (csecs % 6000) / 100;
-  snprintf(buf, 128, "%02d:%02d", mins,secs);
+  snprintf(buf, sizeof(buf), "%02d:%02d", mins,secs);
   context.draw_text(gold_text, buf, Vector(col2_x, row3_y), LEFT_ALLIGN, LAYER_GUI);
   if (best_stats && (best_stats->time < time)) {
     int csecs = (int)(best_stats->time * 100);
     int mins = (int)(csecs / 6000);
     int secs = (csecs % 6000) / 100;
-    snprintf(buf, 128, "%02d:%02d", mins,secs);
+    snprintf(buf, sizeof(buf), "%02d:%02d", mins,secs);
   }
   context.draw_text(gold_text, buf, Vector(col3_x, row3_y), LEFT_ALLIGN, LAYER_GUI);
 }