summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2006-11-24 18:39:22 +0000
committerpeter1138 <peter1138@openttd.org>2006-11-24 18:39:22 +0000
commitc079c83eb65e8365680523f6fba676f9c41ec10a (patch)
tree55d15b28e028ea338db8ec11d3266151027da760
parent8d175ccb136581de4fb77931b029841144fe3f52 (diff)
downloadopenttd-c079c83eb65e8365680523f6fba676f9c41ec10a.tar.xz
(svn r7250) -Codechange: Shuffle sprite loading and character width caching around a bit. This reduces the number of times the sprites are loaded from 5 to 2, just for the intro game.
-rw-r--r--genworld.c7
-rw-r--r--gfx.c3
-rw-r--r--misc_gui.c1
-rw-r--r--openttd.c13
4 files changed, 9 insertions, 15 deletions
diff --git a/genworld.c b/genworld.c
index 2e1f003d5..9872270b0 100644
--- a/genworld.c
+++ b/genworld.c
@@ -252,18 +252,19 @@ void GenerateWorld(int mode, uint size_x, uint size_y)
/* Make sure everything is done via OWNER_NONE */
_current_player = OWNER_NONE;
+ /* Load the right landscape stuff */
+ GfxLoadSprites();
+ LoadStringWidthTable();
+
InitializeGame(IG_DATE_RESET, _gw.size_x, _gw.size_y);
PrepareGenerateWorldProgress();
/* Re-init the windowing system */
ResetWindowSystem();
- LoadStringWidthTable();
/* Create toolbars */
SetupColorsAndInitialWindow();
- /* Load the right landscape stuff */
- GfxLoadSprites();
if (_network_dedicated ||
(_gw.thread = OTTDCreateThread(&_GenerateWorld, NULL)) == NULL) {
DEBUG(misc, 1) ("[Sl] Cannot create savegame thread, reverting to single-threaded mode...");
diff --git a/gfx.c b/gfx.c
index 314de65d7..41c072d62 100644
--- a/gfx.c
+++ b/gfx.c
@@ -1613,6 +1613,9 @@ void LoadStringWidthTable(void)
{
uint i;
+ /* Initialize the unicode to sprite mapping table */
+ InitializeUnicodeGlyphMap();
+
/* Normal font */
for (i = 0; i != 224; i++) {
_stringwidth_table[FS_NORMAL][i] = GetGlyphWidth(FS_NORMAL, i + 32);
diff --git a/misc_gui.c b/misc_gui.c
index 3d721ca29..89ee4f216 100644
--- a/misc_gui.c
+++ b/misc_gui.c
@@ -1659,6 +1659,7 @@ static int32 ClickChangeClimateCheat(int32 p1, int32 p2)
if (p1 == 4) p1 = 0;
_opt.landscape = p1;
GfxLoadSprites();
+ LoadStringWidthTable();
MarkWholeScreenDirty();
return _opt.landscape;
}
diff --git a/openttd.c b/openttd.c
index 43fb5bc4f..b199b8b48 100644
--- a/openttd.c
+++ b/openttd.c
@@ -281,9 +281,6 @@ static void LoadIntroGame(void)
CLRBITS(_display_opt, DO_TRANS_BUILDINGS); // don't make buildings transparent in intro
_opt_ptr = &_opt_newgame;
- GfxLoadSprites();
- LoadStringWidthTable();
-
// Setup main window
ResetWindowSystem();
SetupColorsAndInitialWindow();
@@ -439,11 +436,6 @@ int ttd_main(int argc, char *argv[])
// This must be done early, since functions use the InvalidateWindow* calls
InitWindowSystem();
- GfxLoadSprites();
- /* Initialize the unicode to sprite mapping table */
- InitializeUnicodeGlyphMap();
- LoadStringWidthTable();
-
DEBUG(driver, 1) ("Loading drivers...");
LoadDriver(SOUND_DRIVER, _ini_sounddriver);
LoadDriver(MUSIC_DRIVER, _ini_musicdriver);
@@ -463,7 +455,6 @@ int ttd_main(int argc, char *argv[])
/* Make sure _patches is filled with _patches_newgame if we switch to a game directly */
if (_switch_mode != SM_NONE) {
_opt = _opt_newgame;
- GfxLoadSprites();
UpdatePatches();
}
@@ -655,11 +646,8 @@ static void StartScenario(void)
return;
}
- GfxLoadSprites();
-
// Reinitialize windows
ResetWindowSystem();
- LoadStringWidthTable();
SetupColorsAndInitialWindow();
@@ -1157,6 +1145,7 @@ bool AfterLoadGame(void)
// Load the sprites
GfxLoadSprites();
+ LoadStringWidthTable();
/* Connect front and rear engines of multiheaded trains and converts
* subtype to the new format */