diff --git a/CTownHandler.cpp b/CTownHandler.cpp new file mode 100644 index 000000000..47dd65334 --- /dev/null +++ b/CTownHandler.cpp @@ -0,0 +1,50 @@ +#include "stdafx.h" +#include "CTownHandler.h" +#include "CGameInfo.h" +#include +#define CGI (CGameInfo::mainObj) + + +CTownHandler::CTownHandler() +{ + smallIcons = CGI->spriteh->giveDef("ITPA.DEF"); +} +CTownHandler::~CTownHandler() +{ + delete smallIcons; +} +void CTownHandler::loadNames() +{ + std::istringstream ins; + ins.str(CGI->bitmaph->getTextFile("TOWNTYPE.TXT")); + while (!ins.eof()) + { + CTown town; + ins >> town.name; + town.bonus=towns.size(); + if (town.bonus==8) town.bonus=3; + if (town.name.length()) + towns.push_back(town); + } +} +SDL_Surface * CTownHandler::getPic(int ID, bool fort, bool builded) +{ + if (ID==-1) + return smallIcons->ourImages[0].bitmap; + else if (ID==-2) + return smallIcons->ourImages[1].bitmap; + else if (ID==-3) + return smallIcons->ourImages[2+F_NUMBER*4].bitmap; + else if (ID>F_NUMBER || ID<-3) + throw new std::exception("Invalid ID"); + else + { + int pom = 3; + if(!fort) + pom+=F_NUMBER*2; + pom += ID*2; + if (!builded) + pom--; + return smallIcons->ourImages[pom].bitmap; + } +} \ No newline at end of file diff --git a/CTownHandler.h b/CTownHandler.h new file mode 100644 index 000000000..e75a73df8 --- /dev/null +++ b/CTownHandler.h @@ -0,0 +1,24 @@ +#ifndef CTOWNHANDLER_H +#define CTOWNHANDLER_H +#include "CDefHandler.h" +#include "SDL.h" +#include +#include +class CTown +{ +public: + std::string name; + int bonus; //pic number +}; +class CTownHandler +{ + CDefHandler * smallIcons; +public: + CTownHandler(); + ~CTownHandler(); + std::vector towns; + void loadNames(); + SDL_Surface * getPic(int ID, bool fort=true, bool builded=false); //ID=-1 - blank; -2 - border; -3 - random +}; + +#endif //CTOWNHANDLER_H \ No newline at end of file