diff options
author | Michael Lutz <michi@icosahedron.de> | 2020-05-17 23:32:10 +0200 |
---|---|---|
committer | Michael Lutz <michi@icosahedron.de> | 2020-05-21 20:02:34 +0200 |
commit | c972a63c8cbee7fa8d6d5af2cbbecb8c75ee561a (patch) | |
tree | 70d5b6c477666170f07469ba769adc4ec629a91c /src/openttd.cpp | |
parent | 37bc2f806462b3c2a84891b3aad6db00e935da86 (diff) | |
download | openttd-c972a63c8cbee7fa8d6d5af2cbbecb8c75ee561a.tar.xz |
Codechange: Store info about the dedicated server log file in globals with automatic destruction to simplify control flow in openttd_main.
Diffstat (limited to 'src/openttd.cpp')
-rw-r--r-- | src/openttd.cpp | 29 |
1 files changed, 7 insertions, 22 deletions
diff --git a/src/openttd.cpp b/src/openttd.cpp index 980eb2f13..94c6f4a98 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -543,7 +543,7 @@ int openttd_main(int argc, char *argv[]) Dimension resolution = {0, 0}; /* AfterNewGRFScan sets save_config to true after scanning completed. */ bool save_config = false; - AfterNewGRFScan *scanner = new AfterNewGRFScan(&save_config); + std::unique_ptr<AfterNewGRFScan> scanner(new AfterNewGRFScan(&save_config)); bool dedicated = false; char *debuglog_conn = nullptr; @@ -637,7 +637,7 @@ int openttd_main(int argc, char *argv[]) DeterminePaths(argv[0]); if (StrEmpty(mgo.opt)) { ret = 1; - goto exit_noshutdown; + return ret; } char title[80]; @@ -654,12 +654,11 @@ int openttd_main(int argc, char *argv[]) GetString(buf, _load_check_data.error, lastof(buf)); fprintf(stderr, "%s\n", buf); } - goto exit_noshutdown; + return ret; } WriteSavegameInfo(title); - - goto exit_noshutdown; + return ret; } case 'G': scanner->generation_seed = strtoul(mgo.opt, nullptr, 10); break; case 'c': free(_config_file); _config_file = stredup(mgo.opt); break; @@ -683,8 +682,7 @@ int openttd_main(int argc, char *argv[]) BaseSounds::FindSets(); BaseMusic::FindSets(); ShowHelp(); - - goto exit_noshutdown; + return ret; } DeterminePaths(argv[0]); @@ -785,8 +783,7 @@ int openttd_main(int argc, char *argv[]) if (!HandleBootstrap()) { ShutdownGame(); - - goto exit_bootstrap; + return ret; } VideoDriver::GetInstance()->ClaimMousePointer(); @@ -842,8 +839,7 @@ int openttd_main(int argc, char *argv[]) CheckForMissingGlyphs(); /* ScanNewGRFFiles now has control over the scanner. */ - ScanNewGRFFiles(scanner); - scanner = nullptr; + ScanNewGRFFiles(scanner.release()); VideoDriver::GetInstance()->MainLoop(); @@ -860,17 +856,6 @@ int openttd_main(int argc, char *argv[]) /* Reset windowing system, stop drivers, free used memory, ... */ ShutdownGame(); - -exit_noshutdown: -exit_bootstrap: - - delete scanner; - - extern FILE *_log_fd; - if (_log_fd != nullptr) { - fclose(_log_fd); - } - return ret; } |