CyGlobalContext.h 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374
  1. #pragma once
  2. #ifndef CyGlobalContext_h
  3. #define CyGlobalContext_h
  4. //
  5. // Python wrapper class for global vars and fxns
  6. // Passed to Python
  7. //
  8. #include "CvGlobals.h"
  9. #include "CvArtFileMgr.h"
  10. // lfgr UI 11/2020: Allow cycling through units in plot help
  11. #include "PlotHelpCycling.h"
  12. class CyGame;
  13. class CyMap;
  14. class CyPlayer;
  15. class CvRandom;
  16. class CyEngine;
  17. class CyTeam;
  18. class CyArtFileMgr;
  19. class CyUserProfile;
  20. class CyVariableSystem;
  21. class CyGlobalContext
  22. {
  23. public:
  24. CyGlobalContext();
  25. virtual ~CyGlobalContext();
  26. static CyGlobalContext& getInstance(); // singleton accessor
  27. bool isDebugBuild() const;
  28. CyGame* getCyGame() const;
  29. CyMap* getCyMap() const;
  30. CyPlayer* getCyPlayer(int idx);
  31. CyPlayer* getCyActivePlayer();
  32. CvRandom& getCyASyncRand() const;
  33. CyTeam* getCyTeam(int i);
  34. CyArtFileMgr* getCyArtFileMgr() const;
  35. CvEffectInfo* getEffectInfo(int i) const;
  36. CvTerrainInfo* getTerrainInfo(int i) const;
  37. CvBonusClassInfo* getBonusClassInfo(int i) const;
  38. CvBonusInfo* getBonusInfo(int i) const;
  39. CvFeatureInfo* getFeatureInfo(int i) const;
  40. CvCivilizationInfo* getCivilizationInfo(int idx) const;
  41. CvLeaderHeadInfo* getLeaderHeadInfo(int i) const;
  42. CvTraitInfo* getTraitInfo(int i) const;
  43. CvUnitInfo* getUnitInfo(int i) const;
  44. CvSpecialUnitInfo* getSpecialUnitInfo(int i) const;
  45. CvYieldInfo* getYieldInfo(int i) const;
  46. CvCommerceInfo* getCommerceInfo(int i) const;
  47. CvRouteInfo* getRouteInfo(int i) const;
  48. CvImprovementInfo* getImprovementInfo(int i) const;
  49. CvGoodyInfo* getGoodyInfo(int i) const;
  50. CvBuildInfo* getBuildInfo(int i) const;
  51. CvHandicapInfo* getHandicapInfo(int i) const;
  52. CvGameSpeedInfo* getGameSpeedInfo(int i) const;
  53. CvTurnTimerInfo* getTurnTimerInfo(int i) const;
  54. CvBuildingClassInfo* getBuildingClassInfo(int i) const;
  55. CvMissionInfo* getMissionInfo(int i) const;
  56. CvCommandInfo* getCommandInfo(int i) const;
  57. CvAutomateInfo* getAutomateInfo(int i) const;
  58. CvActionInfo* getActionInfo(int i) const;
  59. CvUnitClassInfo* getUnitClassInfo(int i) const;
  60. CvInfoBase* getUnitCombatInfo(int i) const;
  61. CvInfoBase* getDomainInfo(int i) const;
  62. CvBuildingInfo* getBuildingInfo(int i) const;
  63. CvCivicOptionInfo* getCivicOptionInfo(int i) const;
  64. CvCivicInfo* getCivicInfo(int i) const;
  65. CvDiplomacyInfo* getDiplomacyInfo(int i) const;
  66. CvProjectInfo* getProjectInfo(int i) const;
  67. CvVoteInfo* getVoteInfo(int i) const;
  68. CvProcessInfo* getProcessInfo(int i) const;
  69. CvSpecialistInfo* getSpecialistInfo(int i) const;
  70. CvReligionInfo* getReligionInfo(int i) const;
  71. CvCorporationInfo* getCorporationInfo(int i) const;
  72. CvControlInfo* getControlInfo(int i) const;
  73. CvTechInfo* getTechInfo(int i) const;
  74. CvSpecialBuildingInfo* getSpecialBuildingInfo(int i) const;
  75. CvPromotionInfo* getPromotionInfo(int i) const;
  76. CvAnimationPathInfo * getAnimationPathInfo(int i) const;
  77. CvEmphasizeInfo * getEmphasizeInfo(int i) const;
  78. CvUpkeepInfo * getUpkeepInfo(int i) const;
  79. CvCultureLevelInfo * getCultureLevelInfo(int i) const;
  80. CvEraInfo * getEraInfo(int i) const;
  81. CvVictoryInfo * getVictoryInfo(int i) const;
  82. CvWorldInfo * getWorldInfo(int i) const;
  83. CvClimateInfo * getClimateInfo(int i) const;
  84. CvSeaLevelInfo * getSeaLevelInfo(int i) const;
  85. CvInfoBase * getUnitAIInfo(int i) const;
  86. CvColorInfo* getColorInfo(int i) const;
  87. //FfH Spell System: Added by Kael 07/23/2007
  88. CvSpellInfo* getSpellInfo(int i) const;
  89. //FfH: End Add
  90. CvUnitArtStyleTypeInfo* getUnitArtStyleTypeInfo(int i) const;
  91. int getInfoTypeForString(const char* szInfoType) const;
  92. // Special method provided for MapScripts to prevent them from triggering assertions.
  93. int getInfoTypeForStringNoAsserts(const char* szInfoType) const;
  94. // End
  95. int getTypesEnum(const char* szType) const;
  96. int getNumPlayerColorInfos() const { return GC.getNumPlayerColorInfos(); }
  97. CvPlayerColorInfo* getPlayerColorInfo(int i) const;
  98. CvInfoBase* getHints(int i) const;
  99. CvMainMenuInfo* getMainMenus(int i) const;
  100. CvInfoBase* getInvisibleInfo(int i) const;
  101. CvVoteSourceInfo* getVoteSourceInfo(int i) const;
  102. CvInfoBase* getAttitudeInfo(int i) const;
  103. CvInfoBase* getMemoryInfo(int i) const;
  104. CvInfoBase* getConceptInfo(int i) const;
  105. CvInfoBase* getNewConceptInfo(int i) const;
  106. CvInfoBase* getCityTabInfo(int i) const;
  107. CvInfoBase* getCalendarInfo(int i) const;
  108. CvInfoBase* getGameOptionInfo(int i) const;
  109. CvInfoBase* getMPOptionInfo(int i) const;
  110. CvInfoBase* getForceControlInfo(int i) const;
  111. CvInfoBase* getSeasonInfo(int i) const;
  112. CvInfoBase* getMonthInfo(int i) const;
  113. CvInfoBase* getDenialInfo(int i) const;
  114. CvQuestInfo* getQuestInfo(int i) const;
  115. CvTutorialInfo* getTutorialInfo(int i) const;
  116. CvEventTriggerInfo* getEventTriggerInfo(int i) const;
  117. CvEventInfo* getEventInfo(int i) const;
  118. CvEspionageMissionInfo* getEspionageMissionInfo(int i) const;
  119. CvHurryInfo* getHurryInfo(int i) const;
  120. CvPlayerOptionInfo* getPlayerOptionInfo(int i) const;
  121. CvPlayerOptionInfo* getPlayerOptionsInfoByIndex(int i) const;
  122. CvGraphicOptionInfo* getGraphicOptionInfo(int i) const;
  123. CvGraphicOptionInfo* getGraphicOptionsInfoByIndex(int i) const;
  124. // ArtInfos
  125. CvArtInfoInterface* getInterfaceArtInfo(int i) const;
  126. CvArtInfoMovie* getMovieArtInfo(int i) const;
  127. CvArtInfoMisc* getMiscArtInfo(int i) const;
  128. CvArtInfoUnit* getUnitArtInfo(int i) const;
  129. CvArtInfoBuilding* getBuildingArtInfo(int i) const;
  130. CvArtInfoCivilization* getCivilizationArtInfo(int i) const;
  131. CvArtInfoLeaderhead* getLeaderheadArtInfo(int i) const;
  132. CvArtInfoBonus* getBonusArtInfo(int i) const;
  133. CvArtInfoImprovement* getImprovementArtInfo(int i) const;
  134. CvArtInfoTerrain* getTerrainArtInfo(int i) const;
  135. CvArtInfoFeature* getFeatureArtInfo(int i) const;
  136. // Structs
  137. const char* getEntityEventTypes(int i) const { return GC.getEntityEventTypes((EntityEventTypes) i); }
  138. const char* getAnimationOperatorTypes(int i) const { return GC.getAnimationOperatorTypes((AnimationOperatorTypes) i); }
  139. const char* getFunctionTypes(int i) const { return GC.getFunctionTypes((FunctionTypes) i); }
  140. const char* getFlavorTypes(int i) const { return GC.getFlavorTypes((FlavorTypes) i); }
  141. const char* getArtStyleTypes(int i) const { return GC.getArtStyleTypes((ArtStyleTypes) i); }
  142. const char* getCitySizeTypes(int i) const { return GC.getCitySizeTypes(i); }
  143. const char* getContactTypes(int i) const { return GC.getContactTypes((ContactTypes) i); }
  144. const char* getDiplomacyPowerTypes(int i) const { return GC.getDiplomacyPowerTypes((DiplomacyPowerTypes) i); }
  145. const char *getFootstepAudioTypes(int i) { return GC.getFootstepAudioTypes(i); }
  146. const char *getFootstepAudioTags(int i) { return GC.getFootstepAudioTags(i); }
  147. int getNumEffectInfos() const { return GC.getNumEffectInfos(); }
  148. int getNumTerrainInfos() const { return GC.getNumTerrainInfos(); }
  149. int getNumSpecialBuildingInfos() const { return GC.getNumSpecialBuildingInfos(); }
  150. int getNumBonusInfos() const { return GC.getNumBonusInfos(); };
  151. int getNumPlayableCivilizationInfos() const { return GC.getNumPlayableCivilizationInfos(); }
  152. int getNumCivilizatonInfos() const { return GC.getNumCivilizationInfos(); }
  153. int getNumLeaderHeadInfos() const { return GC.getNumLeaderHeadInfos(); }
  154. int getNumTraitInfos() const { return GC.getNumTraitInfos(); }
  155. int getNumUnitInfos() const { return GC.getNumUnitInfos(); }
  156. int getNumSpecialUnitInfos() const { return GC.getNumSpecialUnitInfos(); }
  157. int getNumRouteInfos() const { return GC.getNumRouteInfos(); }
  158. int getNumFeatureInfos() const { return GC.getNumFeatureInfos(); }
  159. int getNumImprovementInfos() const { return GC.getNumImprovementInfos(); }
  160. int getNumGoodyInfos() const { return GC.getNumGoodyInfos(); }
  161. int getNumBuildInfos() const { return GC.getNumBuildInfos(); }
  162. int getNumHandicapInfos() const { return GC.getNumHandicapInfos(); }
  163. int getNumGameSpeedInfos() const { return GC.getNumGameSpeedInfos(); }
  164. int getNumTurnTimerInfos() const { return GC.getNumTurnTimerInfos(); }
  165. int getNumBuildingClassInfos() const { return GC.getNumBuildingClassInfos(); }
  166. int getNumBuildingInfos() const { return GC.getNumBuildingInfos(); }
  167. int getNumUnitClassInfos() const { return GC.getNumUnitClassInfos(); }
  168. int getNumUnitCombatInfos() const { return GC.getNumUnitCombatInfos(); }
  169. int getNumAutomateInfos() const { return GC.getNumAutomateInfos(); }
  170. int getNumCommandInfos() const { return GC.getNumCommandInfos(); }
  171. int getNumControlInfos() const { return GC.getNumControlInfos(); }
  172. int getNumMissionInfos() const { return GC.getNumMissionInfos(); }
  173. int getNumActionInfos() const { return GC.getNumActionInfos(); }
  174. int getNumPromotionInfos() const { return GC.getNumPromotionInfos(); }
  175. //FfH Spell System: Added by Kael 07/23/2007
  176. int getNumSpellInfos() const { return GC.getNumSpellInfos(); }
  177. //FfH: End Add
  178. int getNumTechInfos() const { return GC.getNumTechInfos(); }
  179. int getNumReligionInfos() const { return GC.getNumReligionInfos(); }
  180. int getNumCorporationInfos() const { return GC.getNumCorporationInfos(); }
  181. int getNumSpecialistInfos() const { return GC.getNumSpecialistInfos(); }
  182. int getNumCivicInfos() const { return GC.getNumCivicInfos(); }
  183. int getNumDiplomacyInfos() const { return GC.getNumDiplomacyInfos(); }
  184. int getNumCivicOptionInfos() const { return GC.getNumCivicOptionInfos(); }
  185. int getNumProjectInfos() const { return GC.getNumProjectInfos(); }
  186. int getNumVoteInfos() const { return GC.getNumVoteInfos(); }
  187. int getNumProcessInfos() const { return GC.getNumProcessInfos(); }
  188. int getNumEmphasizeInfos() const { return GC.getNumEmphasizeInfos(); }
  189. int getNumHurryInfos() const { return GC.getNumHurryInfos(); }
  190. int getNumUpkeepInfos() const { return GC.getNumUpkeepInfos(); }
  191. int getNumCultureLevelInfos() const { return GC.getNumCultureLevelInfos(); }
  192. int getNumEraInfos() const { return GC.getNumEraInfos(); }
  193. int getNumVictoryInfos() const { return GC.getNumVictoryInfos(); }
  194. int getNumWorldInfos() const { return GC.getNumWorldInfos(); }
  195. int getNumSeaLevelInfos() const { return GC.getNumSeaLevelInfos(); }
  196. int getNumClimateInfos() const { return GC.getNumClimateInfos(); }
  197. int getNumConceptInfos() const { return GC.getNumConceptInfos(); }
  198. int getNumNewConceptInfos() const { return GC.getNumNewConceptInfos(); }
  199. int getNumCityTabInfos() const { return GC.getNumCityTabInfos(); }
  200. int getNumCalendarInfos() const { return GC.getNumCalendarInfos(); }
  201. int getNumPlayerOptionInfos() const { return GC.getNumPlayerOptionInfos(); }
  202. int getNumGameOptionInfos() const { return GC.getNumGameOptionInfos(); }
  203. int getNumMPOptionInfos() const { return GC.getNumMPOptionInfos(); }
  204. int getNumForceControlInfos() const { return GC.getNumForceControlInfos(); }
  205. int getNumSeasonInfos() const { return GC.getNumSeasonInfos(); }
  206. int getNumMonthInfos() const { return GC.getNumMonthInfos(); }
  207. int getNumDenialInfos() const { return GC.getNumDenialInfos(); }
  208. int getNumQuestInfos() const { return GC.getNumQuestInfos(); }
  209. int getNumTutorialInfos() const { return GC.getNumTutorialInfos(); }
  210. int getNumEventTriggerInfos() const { return GC.getNumEventTriggerInfos(); }
  211. int getNumEventInfos() const { return GC.getNumEventInfos(); }
  212. int getNumEspionageMissionInfos() const { return GC.getNumEspionageMissionInfos(); }
  213. int getNumHints() const { return GC.getNumHints(); }
  214. int getNumMainMenus() const { return GC.getNumMainMenus(); }
  215. int getNumInvisibleInfos() const { return GC.getNumInvisibleInfos(); }
  216. int getNumVoteSourceInfos() const { return GC.getNumVoteSourceInfos(); }
  217. int getNumDamageTypeInfos() const { return GC.getNumDamageTypeInfos(); } // lfgr 04/2024
  218. // ArtInfos
  219. int getNumInterfaceArtInfos() const { return ARTFILEMGR.getNumInterfaceArtInfos(); }
  220. int getNumMovieArtInfos() const { return ARTFILEMGR.getNumMovieArtInfos(); }
  221. int getNumMiscArtInfos() const { return ARTFILEMGR.getNumMiscArtInfos(); }
  222. int getNumUnitArtInfos() const { return ARTFILEMGR.getNumUnitArtInfos(); }
  223. int getNumBuildingArtInfos() const { return ARTFILEMGR.getNumBuildingArtInfos(); }
  224. int getNumCivilizationArtInfos() const { return ARTFILEMGR.getNumCivilizationArtInfos(); }
  225. int getNumLeaderheadArtInfos() const { return ARTFILEMGR.getNumLeaderheadArtInfos(); }
  226. int getNumImprovementArtInfos() const { return ARTFILEMGR.getNumImprovementArtInfos(); }
  227. int getNumBonusArtInfos() const { return ARTFILEMGR.getNumBonusArtInfos(); }
  228. int getNumTerrainArtInfos() const { return ARTFILEMGR.getNumTerrainArtInfos(); }
  229. int getNumFeatureArtInfos() const { return ARTFILEMGR.getNumFeatureArtInfos(); }
  230. int getNumAnimationPathInfos() const { return GC.getNumAnimationPathInfos(); }
  231. int getNumAnimationCategoryInfos() const { return GC.getNumAnimationCategoryInfos(); }
  232. int getNumUnitArtStyleTypeInfos() const { return GC.getNumUnitArtStyleTypeInfos(); }
  233. int getNumEntityEventTypes() const { return GC.getNumEntityEventTypes(); }
  234. int getNumAnimationOperatorTypes() const { return GC.getNumAnimationOperatorTypes(); }
  235. int getNumArtStyleTypes() const { return GC.getNumArtStyleTypes(); }
  236. int getNumFlavorTypes() const { return GC.getNumFlavorTypes(); }
  237. int getNumCitySizeTypes() const { return GC.getNumCitySizeTypes(); }
  238. int getNumFootstepAudioTypes() const { return GC.getNumFootstepAudioTypes(); }
  239. //////////////////////
  240. // Globals Defines
  241. //////////////////////
  242. CyVariableSystem* getCyDefinesVarSystem();
  243. int getDefineINT( const char * szName ) const { return GC.getDefineINT( szName ); }
  244. float getDefineFLOAT( const char * szName ) const { return GC.getDefineFLOAT( szName ); }
  245. const char * getDefineSTRING( const char * szName ) const { return GC.getDefineSTRING( szName ); }
  246. void setDefineINT( const char * szName, int iValue ) { return GC.setDefineINT( szName, iValue ); }
  247. void setDefineFLOAT( const char * szName, float fValue ) { return GC.setDefineFLOAT( szName, fValue ); }
  248. void setDefineSTRING( const char * szName, const char * szValue ) { return GC.setDefineSTRING( szName, szValue ); }
  249. int getMOVE_DENOMINATOR() const { return GC.getMOVE_DENOMINATOR(); }
  250. int getNUM_UNIT_PREREQ_OR_BONUSES() const { return GC.getNUM_UNIT_PREREQ_OR_BONUSES(); }
  251. int getNUM_BUILDING_PREREQ_OR_BONUSES() const { return GC.getNUM_BUILDING_PREREQ_OR_BONUSES(); }
  252. int getFOOD_CONSUMPTION_PER_POPULATION() const { return GC.getFOOD_CONSUMPTION_PER_POPULATION(); }
  253. int getMAX_HIT_POINTS() const { return GC.getMAX_HIT_POINTS(); }
  254. int getHILLS_EXTRA_DEFENSE() const { return GC.getHILLS_EXTRA_DEFENSE(); }
  255. int getRIVER_ATTACK_MODIFIER() const { return GC.getRIVER_ATTACK_MODIFIER(); }
  256. int getAMPHIB_ATTACK_MODIFIER() const { return GC.getAMPHIB_ATTACK_MODIFIER(); }
  257. int getHILLS_EXTRA_MOVEMENT() const { return GC.getHILLS_EXTRA_MOVEMENT(); }
  258. int getMAX_PLOT_LIST_ROWS() const { return GC.getMAX_PLOT_LIST_ROWS(); }
  259. int getUNIT_MULTISELECT_MAX() const { return GC.getUNIT_MULTISELECT_MAX(); }
  260. int getPERCENT_ANGER_DIVISOR() const { return GC.getPERCENT_ANGER_DIVISOR(); }
  261. int getEVENT_MESSAGE_TIME() const { return GC.getEVENT_MESSAGE_TIME(); }
  262. int getROUTE_FEATURE_GROWTH_MODIFIER() const { return GC.getROUTE_FEATURE_GROWTH_MODIFIER(); }
  263. int getFEATURE_GROWTH_MODIFIER() const { return GC.getFEATURE_GROWTH_MODIFIER(); }
  264. int getMIN_CITY_RANGE() const { return GC.getMIN_CITY_RANGE(); }
  265. int getCITY_MAX_NUM_BUILDINGS() const { return GC.getCITY_MAX_NUM_BUILDINGS(); }
  266. int getNUM_UNIT_AND_TECH_PREREQS() const { return GC.getNUM_UNIT_AND_TECH_PREREQS(); }
  267. int getNUM_AND_TECH_PREREQS() const { return GC.getNUM_AND_TECH_PREREQS(); }
  268. int getNUM_OR_TECH_PREREQS() const { return GC.getNUM_OR_TECH_PREREQS(); }
  269. int getLAKE_MAX_AREA_SIZE() const { return GC.getLAKE_MAX_AREA_SIZE(); }
  270. int getNUM_ROUTE_PREREQ_OR_BONUSES() const { return GC.getNUM_ROUTE_PREREQ_OR_BONUSES(); }
  271. int getNUM_BUILDING_AND_TECH_PREREQS() const { return GC.getNUM_BUILDING_AND_TECH_PREREQS(); }
  272. int getMIN_WATER_SIZE_FOR_OCEAN() const { return GC.getMIN_WATER_SIZE_FOR_OCEAN(); }
  273. int getFORTIFY_MODIFIER_PER_TURN() const { return GC.getFORTIFY_MODIFIER_PER_TURN(); }
  274. int getMAX_CITY_DEFENSE_DAMAGE() const { return GC.getMAX_CITY_DEFENSE_DAMAGE(); }
  275. int getNUM_CORPORATION_PREREQ_BONUSES() const { return GC.getNUM_CORPORATION_PREREQ_BONUSES(); }
  276. int getPEAK_SEE_THROUGH_CHANGE() const { return GC.getPEAK_SEE_THROUGH_CHANGE(); }
  277. int getHILLS_SEE_THROUGH_CHANGE() const { return GC.getHILLS_SEE_THROUGH_CHANGE(); }
  278. int getSEAWATER_SEE_FROM_CHANGE() const { return GC.getSEAWATER_SEE_FROM_CHANGE(); }
  279. int getPEAK_SEE_FROM_CHANGE() const { return GC.getPEAK_SEE_FROM_CHANGE(); }
  280. int getHILLS_SEE_FROM_CHANGE() const { return GC.getHILLS_SEE_FROM_CHANGE(); }
  281. int getUSE_SPIES_NO_ENTER_BORDERS() const { return GC.getUSE_SPIES_NO_ENTER_BORDERS(); }
  282. float getCAMERA_MIN_YAW() const { return GC.getCAMERA_MIN_YAW(); }
  283. float getCAMERA_MAX_YAW() const { return GC.getCAMERA_MAX_YAW(); }
  284. float getCAMERA_FAR_CLIP_Z_HEIGHT() const { return GC.getCAMERA_FAR_CLIP_Z_HEIGHT(); }
  285. float getCAMERA_MAX_TRAVEL_DISTANCE() const { return GC.getCAMERA_MAX_TRAVEL_DISTANCE(); }
  286. float getCAMERA_START_DISTANCE() const { return GC.getCAMERA_START_DISTANCE(); }
  287. float getAIR_BOMB_HEIGHT() const { return GC.getAIR_BOMB_HEIGHT(); }
  288. float getPLOT_SIZE() const { return GC.getPLOT_SIZE(); }
  289. float getCAMERA_SPECIAL_PITCH() const { return GC.getCAMERA_SPECIAL_PITCH(); }
  290. float getCAMERA_MAX_TURN_OFFSET() const { return GC.getCAMERA_MAX_TURN_OFFSET(); }
  291. float getCAMERA_MIN_DISTANCE() const { return GC.getCAMERA_MIN_DISTANCE(); }
  292. float getCAMERA_UPPER_PITCH() const { return GC.getCAMERA_UPPER_PITCH(); }
  293. float getCAMERA_LOWER_PITCH() const { return GC.getCAMERA_LOWER_PITCH(); }
  294. float getFIELD_OF_VIEW() const { return GC.getFIELD_OF_VIEW(); }
  295. float getSHADOW_SCALE() const { return GC.getSHADOW_SCALE(); }
  296. float getUNIT_MULTISELECT_DISTANCE() const { return GC.getUNIT_MULTISELECT_DISTANCE(); }
  297. int getMAX_CIV_PLAYERS() const { return GC.getMAX_CIV_PLAYERS(); }
  298. int getMAX_PLAYERS() const { return GC.getMAX_PLAYERS(); }
  299. int getMAX_CIV_TEAMS() const { return GC.getMAX_CIV_TEAMS(); }
  300. int getMAX_TEAMS() const { return GC.getMAX_TEAMS(); }
  301. int getBARBARIAN_PLAYER() const { return GC.getBARBARIAN_PLAYER(); }
  302. int getBARBARIAN_TEAM() const { return GC.getBARBARIAN_TEAM(); }
  303. int getINVALID_PLOT_COORD() const { return GC.getINVALID_PLOT_COORD(); }
  304. int getNUM_CITY_PLOTS() const { return GC.getNUM_CITY_PLOTS(); }
  305. int getCITY_HOME_PLOT() const { return GC.getCITY_HOME_PLOT(); }
  306. // BUG - DLL Info - start
  307. bool isBull() const { return GC.isBull(); }
  308. int getBullApiVersion() const { return GC.getBullApiVersion(); }
  309. const wchar* getBullName() const { return GC.getBullName(); }
  310. const wchar* getBullVersion() const { return GC.getBullVersion(); }
  311. std::wstring pyGetBullName() { return getBullName(); } // Exposed to Python
  312. std::wstring pyGetBullVersion() { return getBullVersion(); } // Exposed to Python
  313. // BUG - DLL Info - end
  314. // BUG - BUG Info - start
  315. void setIsBug(bool bIsBug) { GC.setIsBug(bIsBug); } // Exposed to Python
  316. // BUG - BUG Info - end
  317. // ERA_FIX 09/2017 lfgr
  318. int getNumRealEras() const { return GC.getNumRealEras(); }
  319. // ERA_FIX end
  320. // BUFFY - DLL Info - start
  321. #ifdef _BUFFY
  322. bool isBuffy() const { return GC.isBuffy(); }
  323. int getBuffyApiVersion() const { return GC.getBuffyApiVersion(); }
  324. const wchar* getBuffyName() const { return GC.getBuffyName(); }
  325. const wchar* getBuffyVersion() const { return GC.getBuffyVersion(); }
  326. std::wstring pyGetBuffyName() { return getBuffyName(); } // Exposed to Python
  327. std::wstring pyGetBuffyVersion() { return getBuffyVersion(); } // Exposed to Python
  328. #endif
  329. // BUFFY - DLL Info - end
  330. // lfgr UI 11/2020: Allow cycling through units in plot help
  331. void changePlotHelpCycleIdx( int iChange ) { PlotHelpCyclingManager::getInstance().changeCycleIdx( iChange ); } // Exposed to Python
  332. };
  333. #endif // CyGlobalContext_h