diff --git a/client/CBitmapHandler.cpp b/client/CBitmapHandler.cpp index 8645fbc9a..bab3c9eff 100644 --- a/client/CBitmapHandler.cpp +++ b/client/CBitmapHandler.cpp @@ -157,7 +157,10 @@ SDL_Surface * BitmapHandler::loadBitmap(std::string fname, bool setKey) } unsigned char * pcx; std::transform(fname.begin(),fname.end(),fname.begin(),toupper); - fname.replace(fname.find_last_of('.'), fname.find_last_of('.')+4, ".PCX"); + int dotPos = fname.find_last_of('.'); + if ( dotPos != -1 ) + fname.erase(dotPos); + Entry *e = bitmaph->entries.znajdz(fname); if(!e) { diff --git a/client/CCastleInterface.h b/client/CCastleInterface.h index 7aa95cb3f..72a28bf28 100644 --- a/client/CCastleInterface.h +++ b/client/CCastleInterface.h @@ -149,11 +149,10 @@ public: void recreateBuildings(); void recreateIcons(); }; -class CHallInterface : public IShowActivable +class CHallInterface : public CIntObject { public: CMinorResDataBar * resdatabar; - SDL_Rect pos; class CBuildingBox : public CIntObject { diff --git a/client/CHeroWindow.cpp b/client/CHeroWindow.cpp index de6364ffc..b91679dd4 100644 --- a/client/CHeroWindow.cpp +++ b/client/CHeroWindow.cpp @@ -61,7 +61,7 @@ CHeroSwitcher::CHeroSwitcher() CHeroWindow::CHeroWindow(int playerColor): player(playerColor) { - background = BitmapHandler::loadBitmap("HEROSCR4.bmp"); + background = BitmapHandler::loadBitmap("HeroScr4"); graphics->blueToPlayersAdv(background, playerColor); pos.x = screen->w/2 - background->w/2 - 65; pos.y = screen->h/2 - background->h/2 - 8; diff --git a/client/GUIClasses.cpp b/client/GUIClasses.cpp index f0a385f4e..656dd2953 100644 --- a/client/GUIClasses.cpp +++ b/client/GUIClasses.cpp @@ -1443,9 +1443,9 @@ void CTownList::select(int which) if (which>=LOCPLINT->towns.size()) return; selected = which; + fixPos(); if(!fun.empty()) fun(); - fixPos(); } void CTownList::mouseMoved (const SDL_MouseMotionEvent & sEvent) diff --git a/config/townPics.txt b/config/townPics.txt index 5a4d40502..1e450275f 100644 --- a/config/townPics.txt +++ b/config/townPics.txt @@ -5,6 +5,6 @@ TBINBACK.bmp TPMAGEIN.bmp HALLINFR.DEF TBNCBACK.bmp TPMAGENC.bmp HALLNECR.DEF TBDNBACK.bmp TPMAGEDN.bmp HALLDUNG.DEF TBSTBACK.bmp TPMAGEST.bmp HALLSTRN.DEF -TPMAGEFR.bmp TBFRBACK.bmp HALLFORT.DEF +TBFRBACK.bmp TPMAGEFR.bmp HALLFORT.DEF TBELBACK.bmp TPMAGEEL.bmp HALLELEM.DEF diff --git a/hch/CDefObjInfoHandler.cpp b/hch/CDefObjInfoHandler.cpp index b13b6eaa7..5a010d7a1 100644 --- a/hch/CDefObjInfoHandler.cpp +++ b/hch/CDefObjInfoHandler.cpp @@ -39,7 +39,7 @@ CGDefInfo::CGDefInfo() void CGDefInfo::fetchInfoFromMSK() { std::string nameCopy = name; - std::string msk = spriteh->getTextFile(nameCopy.replace( nameCopy.size()-4, 4, ".MSK" )); + std::string msk = spriteh->getTextFile(nameCopy.replace( nameCopy.size()-4, 4, "#MSK" )); width = msk[0]; height = msk[1]; diff --git a/hch/CLodHandler.cpp b/hch/CLodHandler.cpp index f7116da22..a8ca685a6 100644 --- a/hch/CLodHandler.cpp +++ b/hch/CLodHandler.cpp @@ -63,6 +63,10 @@ std::string readString(const unsigned char * bufor, int &i) unsigned char * CLodHandler::giveFile(std::string defName, int * length) { std::transform(defName.begin(), defName.end(), defName.begin(), (int(*)(int))toupper); + int dotPos = defName.find_last_of('.'); + if ( dotPos != -1 ) + defName.erase(dotPos); + Entry * ourEntry = entries.znajdz(Entry(defName)); if(!ourEntry) //nothing's been found { @@ -224,8 +228,16 @@ void CLodHandler::init(std::string lodFile, std::string dirName) Entry entry; entry.nameStr = lodEntries[i].filename; + //format string: upper-case, remove extension std::transform(entry.nameStr.begin(), entry.nameStr.end(), entry.nameStr.begin(), toupper); + + int dotPos = entry.nameStr.find_last_of('.'); + std::string ext = entry.nameStr.substr(dotPos); + if (ext == ".MSK" || ext == ".MSG") + entry.nameStr[dotPos] = '#';//this files have same name as def - rename to defName#msk + else + entry.nameStr.erase(dotPos);//filename.ext becomes filename entry.offset= SDL_SwapLE32(lodEntries[i].offset); entry.realSize = SDL_SwapLE32(lodEntries[i].uncompressedSize); @@ -246,7 +258,11 @@ void CLodHandler::init(std::string lodFile, std::string dirName) std::string name = dir->path().leaf(); std::string realname = name; std::transform(name.begin(), name.end(), name.begin(), (int(*)(int))toupper); - boost::algorithm::replace_all(name,".BMP",".PCX"); + + int dotPos = name.find_last_of('.'); + if ( dotPos != -1 )//extension found + name.erase(dotPos); + Entry * e = entries.znajdz(name); if(e) //file present in .lod - overwrite its entry {