diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/client.cpp | 22 | ||||
-rw-r--r-- | src/defaults.cpp | 2 |
2 files changed, 18 insertions, 6 deletions
diff --git a/src/client.cpp b/src/client.cpp index 71e0c5d3..f61b5612 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -336,17 +336,29 @@ Client::Client(const Options &options): // Add the local data directory to PhysicsFS search path resman->addToSearchPath(mLocalDataDir, false); + std::string iconFile = branding.getValue("appIcon", "icons/mana"); +#ifdef WIN32 + iconFile += ".ico"; +#else + iconFile += ".png"; +#endif + iconFile = resman->getPath(iconFile); + logger->log("Loading icon from file: %s", iconFile.c_str()); #ifdef WIN32 static SDL_SysWMinfo pInfo; SDL_GetWMInfo(&pInfo); - HICON icon = LoadIcon(GetModuleHandle(NULL), "A"); + // Attempt to load icon from .ico file + HICON icon = (HICON) LoadImage(NULL, + iconFile.c_str(), + IMAGE_ICON, 64, 64, LR_LOADFROMFILE); + // If it's failing, we load the default resource file. + if (!icon) + icon = LoadIcon(GetModuleHandle(NULL), "A"); + if (icon) - { SetClassLong(pInfo.window, GCL_HICON, (LONG) icon); - } #else - mIcon = IMG_Load(resman->getPath( - branding.getValue("appIcon", "icons/mana.png")).c_str()); + mIcon = IMG_Load(iconFile.c_str()); if (mIcon) { SDL_SetAlpha(mIcon, SDL_SRCALPHA, SDL_ALPHA_OPAQUE); diff --git a/src/defaults.cpp b/src/defaults.cpp index f41645a9..e0e48d60 100644 --- a/src/defaults.cpp +++ b/src/defaults.cpp @@ -132,7 +132,7 @@ DefaultsData* getBrandingDefaults() AddDEF(brandingData, "wallpapersPath", ""); AddDEF(brandingData, "wallpapersFile", ""); AddDEF(brandingData, "appName", "Mana"); - AddDEF(brandingData, "appIcon", "icons/mana.png"); + AddDEF(brandingData, "appIcon", "icons/mana"); AddDEF(brandingData, "loginMusic", "Magick - Real.ogg"); AddDEF(brandingData, "defaultServer", ""); AddDEF(brandingData, "defaultPort", DEFAULT_PORT); |