summaryrefslogtreecommitdiff
path: root/src/openttd.cpp
diff options
context:
space:
mode:
authorMichael Lutz <michi@icosahedron.de>2020-05-17 23:32:08 +0200
committerMichael Lutz <michi@icosahedron.de>2020-05-21 20:02:34 +0200
commit37bc2f806462b3c2a84891b3aad6db00e935da86 (patch)
tree9f832e8646ec0c4a4038f6c0642c853fbe02038a /src/openttd.cpp
parenta49fdb7ebbb8d8ce96bcd7bd779b18bcd86d0643 (diff)
downloadopenttd-37bc2f806462b3c2a84891b3aad6db00e935da86.tar.xz
Codechange: Use std::string in the driver and blitter selection code.
Diffstat (limited to 'src/openttd.cpp')
-rw-r--r--src/openttd.cpp60
1 files changed, 19 insertions, 41 deletions
diff --git a/src/openttd.cpp b/src/openttd.cpp
index e5a6d1b05..980eb2f13 100644
--- a/src/openttd.cpp
+++ b/src/openttd.cpp
@@ -533,10 +533,10 @@ static const OptionData _options[] = {
*/
int openttd_main(int argc, char *argv[])
{
- char *musicdriver = nullptr;
- char *sounddriver = nullptr;
- char *videodriver = nullptr;
- char *blitter = nullptr;
+ std::string musicdriver;
+ std::string sounddriver;
+ std::string videodriver;
+ std::string blitter;
std::string graphics_set;
std::string sounds_set;
std::string music_set;
@@ -566,19 +566,15 @@ int openttd_main(int argc, char *argv[])
case 'I': graphics_set = mgo.opt; break;
case 'S': sounds_set = mgo.opt; break;
case 'M': music_set = mgo.opt; break;
- case 'm': free(musicdriver); musicdriver = stredup(mgo.opt); break;
- case 's': free(sounddriver); sounddriver = stredup(mgo.opt); break;
- case 'v': free(videodriver); videodriver = stredup(mgo.opt); break;
- case 'b': free(blitter); blitter = stredup(mgo.opt); break;
+ case 'm': musicdriver = mgo.opt; break;
+ case 's': sounddriver = mgo.opt; break;
+ case 'v': videodriver = mgo.opt; break;
+ case 'b': blitter = mgo.opt; break;
case 'D':
- free(musicdriver);
- free(sounddriver);
- free(videodriver);
- free(blitter);
- musicdriver = stredup("null");
- sounddriver = stredup("null");
- videodriver = stredup("dedicated");
- blitter = stredup("null");
+ musicdriver = "null";
+ sounddriver = "null";
+ videodriver = "dedicated";
+ blitter = "null";
dedicated = true;
SetDebugString("net=6");
if (mgo.opt != nullptr) {
@@ -746,8 +742,8 @@ int openttd_main(int argc, char *argv[])
GfxInitPalettes();
DEBUG(misc, 1, "Loading blitter...");
- if (blitter == nullptr && _ini_blitter != nullptr) blitter = stredup(_ini_blitter);
- _blitter_autodetected = StrEmpty(blitter);
+ if (blitter.empty() && !_ini_blitter.empty()) blitter = _ini_blitter;
+ _blitter_autodetected = blitter.empty();
/* Activate the initial blitter.
* This is only some initial guess, after NewGRFs have been loaded SwitchNewGRFBlitter may switch to a different one.
* - Never guess anything, if the user specified a blitter. (_blitter_autodetected)
@@ -758,16 +754,14 @@ int openttd_main(int argc, char *argv[])
(_support8bpp != S8BPP_NONE && (BaseGraphics::GetUsedSet() == nullptr || BaseGraphics::GetUsedSet()->blitter == BLT_8BPP)) ||
BlitterFactory::SelectBlitter("32bpp-anim") == nullptr) {
if (BlitterFactory::SelectBlitter(blitter) == nullptr) {
- StrEmpty(blitter) ?
+ blitter.empty() ?
usererror("Failed to autoprobe blitter") :
- usererror("Failed to select requested blitter '%s'; does it exist?", blitter);
+ usererror("Failed to select requested blitter '%s'; does it exist?", blitter.c_str());
}
}
- free(blitter);
- if (videodriver == nullptr && _ini_videodriver != nullptr) videodriver = stredup(_ini_videodriver);
+ if (videodriver.empty() && !_ini_videodriver.empty()) videodriver = _ini_videodriver;
DriverFactoryBase::SelectDriver(videodriver, Driver::DT_VIDEO);
- free(videodriver);
InitializeSpriteSorter();
@@ -824,13 +818,11 @@ int openttd_main(int argc, char *argv[])
}
}
- if (sounddriver == nullptr && _ini_sounddriver != nullptr) sounddriver = stredup(_ini_sounddriver);
+ if (sounddriver.empty() && !_ini_sounddriver.empty()) sounddriver = _ini_sounddriver;
DriverFactoryBase::SelectDriver(sounddriver, Driver::DT_SOUND);
- free(sounddriver);
- if (musicdriver == nullptr && _ini_musicdriver != nullptr) musicdriver = stredup(_ini_musicdriver);
+ if (musicdriver.empty() && !_ini_musicdriver.empty()) musicdriver = _ini_musicdriver;
DriverFactoryBase::SelectDriver(musicdriver, Driver::DT_MUSIC);
- free(musicdriver);
/* Take our initial lock on whatever we might want to do! */
try {
@@ -868,23 +860,9 @@ int openttd_main(int argc, char *argv[])
/* Reset windowing system, stop drivers, free used memory, ... */
ShutdownGame();
- goto exit_normal;
exit_noshutdown:
- /* These three are normally freed before bootstrap. */
- free(videodriver);
- free(blitter);
-
exit_bootstrap:
- /* These are normally freed before exit, but after bootstrap. */
- free(musicdriver);
- free(sounddriver);
-
-exit_normal:
- free(_ini_musicdriver);
- free(_ini_sounddriver);
- free(_ini_videodriver);
- free(_ini_blitter);
delete scanner;