diff options
author | Miguel Horta <mmiguelhorta@gmail.com> | 2018-10-11 00:33:37 +0100 |
---|---|---|
committer | Owen Rudge <owen@owenrudge.net> | 2018-10-11 20:22:31 +0100 |
commit | e00908f5e900ac5314930b2775eb38f91a6c4abe (patch) | |
tree | 026783fc961a05d29cba553db96d992d202b0c8f | |
parent | fbfa4eb5920b10f57b9fc72730206f4a05c3638d (diff) | |
download | openttd-e00908f5e900ac5314930b2775eb38f91a6c4abe.tar.xz |
Fix #6898: Replace atoi() with strtoul()
Normalize type and parsing of generation_seed across all files
Add assert_compile() to ensure correct type
-rw-r--r-- | src/genworld.h | 4 | ||||
-rw-r--r-- | src/genworld_gui.cpp | 2 | ||||
-rw-r--r-- | src/openttd.cpp | 6 |
3 files changed, 7 insertions, 5 deletions
diff --git a/src/genworld.h b/src/genworld.h index ea3faa15f..1b1c806e0 100644 --- a/src/genworld.h +++ b/src/genworld.h @@ -22,7 +22,7 @@ enum LandscapeGenerator { LG_TERRAGENESIS = 1, ///< TerraGenesis Perlin landscape generator }; -static const uint GENERATE_NEW_SEED = UINT_MAX; ///< Create a new random seed +static const uint32 GENERATE_NEW_SEED = UINT32_MAX; ///< Create a new random seed /** Modes for GenerateWorld */ enum GenWorldMode { @@ -97,7 +97,7 @@ void SetGeneratingWorldProgress(GenWorldProgress cls, uint total); void IncreaseGeneratingWorldProgress(GenWorldProgress cls); void PrepareGenerateWorldProgress(); void ShowGenerateWorldProgress(); -void StartNewGameWithoutGUI(uint seed); +void StartNewGameWithoutGUI(uint32 seed); void ShowCreateScenario(); void StartScenarioEditor(); diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp index 04eea8e66..b22ba5287 100644 --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -870,7 +870,7 @@ void StartScenarioEditor() * Start a normal game without the GUI. * @param seed The seed of the new game. */ -void StartNewGameWithoutGUI(uint seed) +void StartNewGameWithoutGUI(uint32 seed) { /* GenerateWorld takes care of the possible GENERATE_NEW_SEED value in 'seed' */ _settings_newgame.game_creation.generation_seed = seed; diff --git a/src/openttd.cpp b/src/openttd.cpp index 510f00427..a849a2ebd 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -385,7 +385,7 @@ void OpenBrowser(const char *url) /** Callback structure of statements to be executed after the NewGRF scan. */ struct AfterNewGRFScan : NewGRFScanCallback { Year startyear; ///< The start year. - uint generation_seed; ///< Seed for the new game. + uint32 generation_seed; ///< Seed for the new game. char *dedicated_host; ///< Hostname for the dedicated server. uint16 dedicated_port; ///< Port for the dedicated server. char *network_conn; ///< Information about the server to connect to, or NULL. @@ -394,6 +394,8 @@ struct AfterNewGRFScan : NewGRFScanCallback { bool *save_config_ptr; ///< The pointer to the save config setting. bool save_config; ///< The save config setting. + assert_compile(sizeof(generation_seed) == sizeof(_settings_game.game_creation.generation_seed)); + /** * Create a new callback. * @param save_config_ptr Pointer to the save_config local variable which @@ -666,7 +668,7 @@ int openttd_main(int argc, char *argv[]) goto exit_noshutdown; } - case 'G': scanner->generation_seed = atoi(mgo.opt); break; + case 'G': scanner->generation_seed = strtoul(mgo.opt, NULL, 10); break; case 'c': free(_config_file); _config_file = stredup(mgo.opt); break; case 'x': scanner->save_config = false; break; case 'h': |