From bffa93a4e9b760bae394d0f2b96e38909ea2cd76 Mon Sep 17 00:00:00 2001 From: rubidium Date: Fri, 9 Sep 2011 09:13:18 +0000 Subject: (svn r22910) -Fix [FS#4617]: icon would (almost) never be shown for SDL builds --- src/video/sdl_v.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'src/video') diff --git a/src/video/sdl_v.cpp b/src/video/sdl_v.cpp index f5389ea55..401bcc948 100644 --- a/src/video/sdl_v.cpp +++ b/src/video/sdl_v.cpp @@ -22,6 +22,7 @@ #include "../progress.h" #include "../core/random_func.hpp" #include "../core/math_func.hpp" +#include "../fileio_func.h" #include "sdl_v.h" #include @@ -203,10 +204,6 @@ static void GetAvailableVideoMode(uint *w, uint *h) *h = _resolutions[best].height; } -#ifndef ICON_DIR -#define ICON_DIR "media" -#endif - #ifdef WIN32 /* Let's redefine the LoadBMP macro with because we are dynamically * loading SDL and need to 'SDL_CALL' all functions */ @@ -226,15 +223,18 @@ static bool CreateMainSurface(uint w, uint h) if (bpp == 0) usererror("Can't use a blitter that blits 0 bpp for normal visuals"); - /* Give the application an icon */ - icon = SDL_CALL SDL_LoadBMP(ICON_DIR PATHSEP "openttd.32.bmp"); - if (icon != NULL) { - /* Get the colourkey, which will be magenta */ - uint32 rgbmap = SDL_CALL SDL_MapRGB(icon->format, 255, 0, 255); - - SDL_CALL SDL_SetColorKey(icon, SDL_SRCCOLORKEY, rgbmap); - SDL_CALL SDL_WM_SetIcon(icon, NULL); - SDL_CALL SDL_FreeSurface(icon); + char icon_path[MAX_PATH]; + if (FioFindFullPath(icon_path, lengthof(icon_path), BASESET_DIR, "openttd.32.bmp") != NULL) { + /* Give the application an icon */ + icon = SDL_CALL SDL_LoadBMP(icon_path); + if (icon != NULL) { + /* Get the colourkey, which will be magenta */ + uint32 rgbmap = SDL_CALL SDL_MapRGB(icon->format, 255, 0, 255); + + SDL_CALL SDL_SetColorKey(icon, SDL_SRCCOLORKEY, rgbmap); + SDL_CALL SDL_WM_SetIcon(icon, NULL); + SDL_CALL SDL_FreeSurface(icon); + } } /* DO NOT CHANGE TO HWSURFACE, IT DOES NOT WORK */ -- cgit v1.2.3-54-g00ecf