123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- #ifndef __CCONFIGHANDLER_H__
- #define __CCONFIGHANDLER_H__
- #include "../global.h"
- class CAdvMapInt;
- /*
- * CConfighandler.h, part of VCMI engine
- *
- * Authors: listed in file AUTHORS in main folder
- *
- * License: GNU General Public License v2.0 or later
- * Full text of license available in license.txt file, in main folder
- *
- */
- namespace config
- {
- /// Struct holds data about client resolution, colors, fullscreen mode
- struct ClientConfig
- {
- int resx, resy, bpp, fullscreen; //client resolution/colours
- int screenx, screeny; //real screen resolution
- int pregameResx, pregameResy; //real screen resolution of preGame
- int port, localInformation;
- std::string server, //server address (e.g. 127.0.0.1)
- defaultPlayerAI, defaultBattleAI; //dll names
- bool showFPS; //show/hide FPS counter
- bool classicCreatureWindow;
- };
-
- struct ButtonInfo
- {
- std::string defName;
- std::vector<std::string> additionalDefs;
- int x, y; //position on the screen
- bool playerColoured; //if true button will be colored to main player's color (works properly only for appropriate 8bpp graphics)
- };
- /// Struct which holds data about position of several GUI elements at the adventure map screen
- struct AdventureMapConfig
- {
- //minimap properties
- int minimapX, minimapY, minimapW, minimapH;
- //statusbar
- int statusbarX, statusbarY; //pos
- std::string statusbarG; //graphic name
- //resdatabar
- int resdatabarX, resdatabarY, resDist, resDateDist, resOffsetX, resOffsetY; //pos
- std::string resdatabarG; //graphic name
- //infobox
- int infoboxX, infoboxY;
- //advmap
- int advmapX, advmapY, advmapW, advmapH;
- bool smoothMove;
- bool puzzleSepia;
- //general properties
- std::string mainGraphic;
- //buttons
- ButtonInfo kingOverview, underground, questlog, sleepWake, moveHero, spellbook, advOptions,
- sysOptions, nextHero, endTurn;
- //hero list
- int hlistX, hlistY, hlistSize;
- std::string hlistMB, hlistMN, hlistAU, hlistAD;
- //town list
- int tlistX, tlistY, tlistSize;
- std::string tlistAU, tlistAD;
- //gems
- int gemX[4], gemY[4];
- std::vector<std::string> gemG;
- //in-game console
- int inputLineLength, outputLineLength;
- //kingdom overview
- int overviewPics, overviewSize; //pic count in def and count of visible slots
- std::string overviewBg; //background name
- };
- struct GUIOptions
- {
- AdventureMapConfig ac;
- };
- /// Handles adventure map screen settings
- class CConfigHandler
- {
- GUIOptions *current; // pointer to current gui options
- public:
- ClientConfig cc;
- std::map<std::pair<int,int>, GUIOptions > guiOptions;
- void init();
- CConfigHandler(void); //c-tor
- ~CConfigHandler(void); //d-tor
- GUIOptions *go() { return current; };
- void SetResolution(int x, int y) {
- current = &guiOptions[std::pair<int,int>(x, y)];
- }
- };
- }
- extern config::CConfigHandler conf;
- #endif // __CCONFIGHANDLER_H__
|