CvDLLUtilityIFaceBase.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. #pragma once
  2. #ifndef CvDLLUtilityIFaceBase_h
  3. #define CvDLLUtilityIFaceBase_h
  4. //#include "CvEnums.h"
  5. #include "LinkedList.h"
  6. //
  7. // abstract interface for utility functions used by DLL
  8. // Creator- Mustafa Thamer
  9. // Copyright 2005 Firaxis Games
  10. //
  11. class CvDLLEntityIFaceBase;
  12. class CvDLLInterfaceIFaceBase;
  13. class CvDLLEngineIFaceBase;
  14. class CvDLLIniParserIFaceBase;
  15. class CvDLLPlotBuilderIFaceBase;
  16. class CvDLLSymbolIFaceBase;
  17. class CvDLLFeatureIFaceBase;
  18. class CvDLLRouteIFaceBase;
  19. class CvDLLRiverIFaceBase;
  20. class CvDLLFAStarIFaceBase;
  21. class CvDLLEventReporterIFaceBase;
  22. class CvDLLXmlIFaceBase;
  23. class CvDLLFlagEntityIFaceBase;
  24. class CvDLLPythonIFaceBase;
  25. class CvSymbol;
  26. class CvPlot;
  27. class CvUnit;
  28. class CvCity;
  29. class CvCacheObject;
  30. class CvFont;
  31. class CvDiploParameters;
  32. class CvAudioGame;
  33. struct ProfileSample;
  34. class CvReplayInfo;
  35. class CvPopupInfo;
  36. class CvMessageData;
  37. class CvDLLUtilityIFaceBase
  38. {
  39. public:
  40. // accessors for other abstract interfaces
  41. virtual CvDLLEntityIFaceBase* getEntityIFace() = 0;
  42. virtual CvDLLInterfaceIFaceBase* getInterfaceIFace() = 0;
  43. virtual CvDLLEngineIFaceBase* getEngineIFace() = 0;
  44. virtual CvDLLIniParserIFaceBase* getIniParserIFace() = 0;
  45. virtual CvDLLSymbolIFaceBase* getSymbolIFace() = 0;
  46. virtual CvDLLFeatureIFaceBase* getFeatureIFace() = 0;
  47. virtual CvDLLRouteIFaceBase* getRouteIFace() = 0;
  48. virtual CvDLLPlotBuilderIFaceBase* getPlotBuilderIFace() = 0;
  49. virtual CvDLLRiverIFaceBase* getRiverIFace() = 0;
  50. virtual CvDLLFAStarIFaceBase* getFAStarIFace() = 0;
  51. virtual CvDLLXmlIFaceBase* getXMLIFace() = 0;
  52. virtual CvDLLFlagEntityIFaceBase* getFlagEntityIFace() = 0;
  53. virtual CvDLLPythonIFaceBase* getPythonIFace() = 0;
  54. virtual void delMem(void *p) = 0;
  55. virtual void* newMem(size_t size) = 0;
  56. virtual void delMem(void *p, const char* pcFile, int iLine) = 0;
  57. virtual void* newMem(size_t size, const char* pcFile, int iLine) = 0;
  58. virtual void delMemArray(void *p, const char* pcFile, int iLine) = 0;
  59. virtual void* newMemArray(size_t size, const char* pcFile, int iLine) = 0;
  60. virtual void* reallocMem(void* a, unsigned int uiBytes, const char* pcFile, int iLine) = 0;
  61. virtual unsigned int memSize(void* a) = 0;
  62. virtual void clearVector(std::vector<int>& vec) = 0;
  63. virtual void clearVector(std::vector<byte>& vec) = 0;
  64. virtual void clearVector(std::vector<float>& vec) = 0;
  65. virtual int getAssignedNetworkID(int iPlayerID) = 0;
  66. virtual bool isConnected(int iNetID) = 0;
  67. virtual bool isGameActive() = 0;
  68. virtual int GetLocalNetworkID() = 0;
  69. virtual int GetSyncOOS(int iNetID) = 0;
  70. virtual int GetOptionsOOS(int iNetID) = 0;
  71. virtual int GetLastPing(int iNetID) = 0;
  72. virtual bool IsModem() = 0;
  73. virtual void SetModem(bool bModem) = 0;
  74. virtual void AcceptBuddy(const char * szName, int iRequestID) = 0;
  75. virtual void RejectBuddy(const char * szName, int iRequestID) = 0;
  76. virtual void messageControlLog(char* s) = 0;
  77. virtual int getChtLvl() = 0;
  78. virtual void setChtLvl(int iLevel) = 0;
  79. virtual bool GetWorldBuilderMode() = 0;
  80. virtual int getCurrentLanguage() const = 0;
  81. virtual void setCurrentLanguage(int iNewLanguage) = 0;
  82. virtual bool isModularXMLLoading() const = 0;
  83. virtual bool IsPitbossHost() const = 0;
  84. virtual CvString GetPitbossSmtpHost() const = 0;
  85. virtual CvWString GetPitbossSmtpLogin() const = 0;
  86. virtual CvWString GetPitbossSmtpPassword() const = 0;
  87. virtual CvString GetPitbossEmail() const = 0;
  88. virtual void sendMessageData(CvMessageData* pData) = 0;
  89. virtual void sendPlayerInfo(PlayerTypes eActivePlayer) = 0;
  90. virtual void sendGameInfo(const CvWString& szGameName, const CvWString& szAdminPassword) = 0;
  91. virtual void sendPlayerOption(PlayerOptionTypes eOption, bool bValue) = 0;
  92. virtual void sendChat(const CvWString& szChatString, ChatTargetTypes eTarget) = 0;
  93. virtual void sendPause(int iPauseID = -1) = 0;
  94. virtual void sendMPRetire() = 0;
  95. virtual void sendToggleTradeMessage(PlayerTypes eWho, TradeableItems eItemType, int iData, int iOtherWho, bool bAIOffer, bool bSendToAll = false) = 0;
  96. virtual void sendClearTableMessage(PlayerTypes eWhoTradingWith) = 0;
  97. virtual void sendImplementDealMessage(PlayerTypes eOtherWho, CLinkList<TradeData>* pOurList, CLinkList<TradeData>* pTheirList) = 0;
  98. virtual void sendContactCiv(NetContactTypes eContactType, PlayerTypes eWho) = 0;
  99. virtual void sendOffer() = 0;
  100. virtual void sendDiploEvent(PlayerTypes eWhoTradingWith, DiploEventTypes eDiploEvent, int iData1, int iData2) = 0;
  101. virtual void sendRenegotiate(PlayerTypes eWhoTradingWith) = 0;
  102. virtual void sendRenegotiateThisItem(PlayerTypes ePlayer2, TradeableItems eItemType, int iData) = 0;
  103. virtual void sendExitTrade() = 0;
  104. virtual void sendKillDeal(int iDealID, bool bFromDiplomacy) = 0;
  105. virtual void sendDiplomacy(PlayerTypes ePlayer, CvDiploParameters* pParams) = 0;
  106. virtual void sendPopup(PlayerTypes ePlayer, CvPopupInfo* pInfo) = 0;
  107. virtual int getMillisecsPerTurn() = 0;
  108. virtual float getSecsPerTurn() = 0;
  109. virtual int getTurnsPerSecond() = 0;
  110. virtual int getTurnsPerMinute() = 0;
  111. virtual void openSlot(PlayerTypes eID) = 0;
  112. virtual void closeSlot(PlayerTypes eID) = 0;
  113. virtual CvWString getMapScriptName() = 0;
  114. virtual bool getTransferredMap() = 0;
  115. virtual bool isDescFileName(const char * szFileName) = 0;
  116. virtual bool isWBMapScript() = 0;
  117. virtual bool isWBMapNoPlayers() = 0;
  118. virtual bool pythonMapExists(const char * szMapName) = 0;
  119. virtual void stripSpecialCharacters(CvWString& szName) = 0;
  120. virtual void initGlobals() = 0;
  121. virtual void uninitGlobals() = 0;
  122. virtual void callUpdater() = 0;
  123. virtual bool Uncompress(byte** bufIn, unsigned long* bufLenIn, unsigned long maxBufLenOut, int offset=0) = 0;
  124. virtual bool Compress(byte** bufIn, unsigned long* bufLenIn, int offset=0) = 0;
  125. virtual void NiTextOut(const TCHAR* szText) = 0;
  126. virtual void MessageBox(const TCHAR* szText, const TCHAR* szCaption) = 0;
  127. virtual void SetDone(bool bDone) = 0;
  128. virtual bool GetDone() = 0;
  129. virtual bool GetAutorun() = 0;
  130. virtual void beginDiplomacy(CvDiploParameters* pDiploParams, PlayerTypes ePlayer) = 0;
  131. virtual void endDiplomacy() = 0;
  132. virtual bool isDiplomacy() = 0;
  133. virtual int getDiplomacyPlayer() = 0;
  134. virtual void updateDiplomacyAttitude(bool bForce = false) = 0;
  135. virtual bool isMPDiplomacy() = 0;
  136. virtual bool isMPDiplomacyScreenUp() = 0;
  137. virtual int getMPDiplomacyPlayer() = 0;
  138. virtual void beginMPDiplomacy( PlayerTypes eWhoTalkingTo, bool bRenegotiate = false, bool bSimultaneous = true) = 0;
  139. virtual void endMPDiplomacy() = 0;
  140. virtual bool getAudioDisabled() = 0;
  141. virtual int getAudioTagIndex(const TCHAR* szTag, int iScriptType = -1) = 0;
  142. virtual void DoSound( int iScriptId ) = 0;
  143. virtual void Do3DSound( int iScriptId, NiPoint3 vPosition ) = 0;
  144. virtual FDataStreamBase* createFileStream() = 0;
  145. virtual void destroyDataStream(FDataStreamBase*& stream) = 0;
  146. virtual CvCacheObject* createGlobalTextCacheObject(const TCHAR* szCacheFileName) = 0;
  147. virtual CvCacheObject* createGlobalDefinesCacheObject(const TCHAR* szCacheFileName) = 0;
  148. virtual CvCacheObject* createTechInfoCacheObject(const TCHAR* szCacheFileName) = 0;
  149. virtual CvCacheObject* createBuildingInfoCacheObject(const TCHAR* szCacheFileName) = 0;
  150. virtual CvCacheObject* createUnitInfoCacheObject(const TCHAR* szCacheFileName) = 0;
  151. virtual CvCacheObject* createLeaderHeadInfoCacheObject(const TCHAR* szCacheFileName) = 0;
  152. virtual CvCacheObject* createCivilizationInfoCacheObject(const TCHAR* szCacheFileName) = 0;
  153. virtual CvCacheObject* createPromotionInfoCacheObject(const TCHAR* szCacheFileName) = 0;
  154. virtual CvCacheObject* createDiplomacyInfoCacheObject(const TCHAR* szCacheFileName) = 0;
  155. virtual CvCacheObject* createEventInfoCacheObject(const TCHAR* szCacheFileName) = 0;
  156. virtual CvCacheObject* createEventTriggerInfoCacheObject(const TCHAR* szCacheFileName) = 0;
  157. virtual CvCacheObject* createCivicInfoCacheObject(const TCHAR* szCacheFileName) = 0;
  158. virtual CvCacheObject* createHandicapInfoCacheObject(const TCHAR* szCacheFileName) = 0;
  159. virtual CvCacheObject* createBonusInfoCacheObject(const TCHAR* szCacheFileName) = 0;
  160. virtual CvCacheObject* createImprovementInfoCacheObject(const TCHAR* szCacheFileName) = 0;
  161. virtual bool cacheRead(CvCacheObject* pCache, const TCHAR* szSourceFileName=NULL) = 0;
  162. virtual bool cacheWrite(CvCacheObject* pCache) = 0;
  163. virtual void destroyCache(CvCacheObject*& pCache) = 0;
  164. virtual bool fileManagerEnabled() = 0;
  165. virtual void logMsg(const TCHAR* pLogFileName, const TCHAR* pBuf, bool bWriteToConsole=false, bool bTimeStamp=true) = 0;
  166. virtual void logMemState(const char* msg) = 0;
  167. virtual int getSymbolID(int iID) = 0;
  168. virtual void setSymbolID(int iID, int iValue) = 0;
  169. virtual CvWString getText(CvWString szIDTag, ...) = 0;
  170. virtual CvWString getObjectText(CvWString szIDTag, uint uiForm, bool bNoSubs = false) = 0;
  171. virtual void addText(const TCHAR* szIDTag, const wchar* szString, const wchar* szGender = L"N", const wchar* szPlural = L"false") = 0;
  172. virtual uint getNumForms(CvWString szIDTag) = 0;
  173. virtual WorldSizeTypes getWorldSize() = 0;
  174. virtual uint getFrameCounter() const = 0;
  175. virtual bool altKey() = 0;
  176. virtual bool shiftKey() = 0;
  177. virtual bool ctrlKey() = 0;
  178. virtual bool scrollLock() = 0;
  179. virtual bool capsLock() = 0;
  180. virtual bool numLock() = 0;
  181. virtual void ProfilerBegin()=0;
  182. virtual void ProfilerEnd()=0;
  183. virtual void BeginSample(ProfileSample *pSample)=0;
  184. virtual void EndSample(ProfileSample *pSample)=0;
  185. virtual bool isGameInitializing() = 0;
  186. virtual void enumerateFiles(std::vector<CvString>& files, const char* szPattern) = 0;
  187. virtual void enumerateModuleFiles(std::vector<CvString>& aszFiles, const CvString& refcstrRootDirectory, const CvString& refcstrModularDirectory, const CvString& refcstrExtension, bool bSearchSubdirectories) = 0;
  188. virtual void SaveGame(SaveGameTypes eSaveGame) = 0;
  189. virtual void LoadGame() = 0;
  190. virtual int loadReplays(std::vector<CvReplayInfo*>& listReplays) = 0;
  191. virtual void QuickSave() = 0;
  192. virtual void QuickLoad() = 0;
  193. virtual void sendPbemTurn(PlayerTypes ePlayer) = 0;
  194. virtual void getPassword(PlayerTypes ePlayer) = 0;
  195. virtual bool getGraphicOption(GraphicOptionTypes eGraphicOption) = 0;
  196. virtual bool getPlayerOption(PlayerOptionTypes ePlayerOption) = 0;
  197. virtual int getMainMenu() = 0;
  198. virtual bool isFMPMgrHost() = 0;
  199. virtual bool isFMPMgrPublic() = 0;
  200. virtual void handleRetirement(PlayerTypes ePlayer) = 0;
  201. virtual PlayerTypes getFirstBadConnection() = 0;
  202. virtual int getConnState(PlayerTypes ePlayer) = 0;
  203. virtual bool ChangeINIKeyValue(const char* szGroupKey, const char* szKeyValue, const char* szOut) = 0;
  204. virtual char* md5String(char* szString) = 0;
  205. virtual const char* getModName(bool bFullPath = true) const = 0;
  206. virtual bool hasSkippedSaveChecksum() const = 0;
  207. virtual void reportStatistics() = 0;
  208. };
  209. #endif // CvDLLUtilityIFaceBase_h