1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 |
CvDLLInterfaceIFaceBase.h // 3.13 不能使用 //virtual bool isDebugMenuCreated() const = 0; ================================================================== CvDLLUtilityIFaceBase.h // 3.13 不能使用 //virtual void enumerateModuleFiles(std::vector& aszFiles, const CvString& refcstrRootDirectory, const CvString& refcstrModularDirectory, const CvString& refcstrExtension, bool bSearchSubdirectories) = 0; ================================================================== CvDLLButtonPopup.cpp else if (pPopupReturn->getButtonClicked() == 1) { // exit to main menu if (GC.getGameINLINE().isNetworkMultiPlayer() && GC.getGameINLINE().canDoControl(CONTROL_RETIRE) && GC.getGameINLINE().countHumanPlayersAlive() > 1) { GC.getGameINLINE().doControl(CONTROL_RETIRE); } // 下面是3.13的 else { gDLL->getInterfaceIFace()->exitingToMainMenu(); } // 下面是3.17的 /* else if (!gDLL->getInterfaceIFace()->isDebugMenuCreated()) { gDLL->getInterfaceIFace()->exitingToMainMenu(); } else { gDLL->SetDone(true); } */ } -------------------------------------------------------------------------------------------- // 下面是3.13的 gDLL->getInterfaceIFace()->popupAddGenericButton(pPopup, gDLL->getText("TXT_KEY_POPUP_EXIT_TO_MAIN_MENU").c_str(), NULL, 1, WIDGET_GENERAL, 1, 0, true, POPUP_LAYOUT_STRETCH, DLL_FONT_CENTER_JUSTIFY); /* 下面是3.17的 if (!gDLL->getInterfaceIFace()->isDebugMenuCreated()) { gDLL->getInterfaceIFace()->popupAddGenericButton(pPopup, gDLL->getText("TXT_KEY_POPUP_EXIT_TO_MAIN_MENU").c_str(), NULL, 1, WIDGET_GENERAL, 1, 0, true, POPUP_LAYOUT_STRETCH, DLL_FONT_CENTER_JUSTIFY); } */ -------------------------------------------------------------------------------------------- // 下面是3.13的 gDLL->getInterfaceIFace()->popupAddGenericButton(pPopup, gDLL->getText("TXT_KEY_EXTENDED_GAME_NO_MENU"), NULL, 1, WIDGET_GENERAL); /* 下面是3.17的 if (!gDLL->getInterfaceIFace()->isDebugMenuCreated()) { gDLL->getInterfaceIFace()->popupAddGenericButton(pPopup, gDLL->getText("TXT_KEY_EXTENDED_GAME_NO_MENU"), NULL, 1, WIDGET_GENERAL); } else { gDLL->getInterfaceIFace()->popupAddGenericButton(pPopup, gDLL->getText("TXT_KEY_EXTENDED_GAME_NO_DESKTOP"), NULL, 1, WIDGET_GENERAL); } */ ================================================================== CvInitCore.cpp // 下面是3.13的 pStream->Read(NUM_GAMEOPTION_TYPES, m_abOptions); /* 下面是3.17的 if (uiSaveFlag > 0) { pStream->Read(NUM_GAMEOPTION_TYPES, m_abOptions); } else { pStream->Read(NUM_GAMEOPTION_TYPES-1, m_abOptions); m_abOptions[NUM_GAMEOPTION_TYPES-1] = false; } */ -------------------------------------------------------------------------------------------- void CvInitCore::write(FDataStreamBase* pStream) { // 下面是3.13的 uint uiSaveFlag=0; // 下面是3.17的 //uint uiSaveFlag=1; pStream->Write(uiSaveFlag); // flag for expansion, see SaveBits) ================================================================== CvPlayer.h // 下面是3.17的,要加 const //DllExport bool canTradeItem(PlayerTypes eWhoTo, TradeData item, bool bTestDenial = false) const; // Exposed to Python //DllExport DenialTypes getTradeDenial(PlayerTypes eWhoTo, TradeData item) const; // Exposed to Python // 下面是3.13的,不能有 const DllExport bool canTradeItem(PlayerTypes eWhoTo, TradeData item, bool bTestDenial = false); // Exposed to Python DllExport DenialTypes getTradeDenial(PlayerTypes eWhoTo, TradeData item); -------------------------------------------------------------------------------------------- // 下面是3.17的,3.13不需要,删除或注释掉 //DllExport void buildTradeTable(PlayerTypes eOtherPlayer, CLinkList& ourList) const; //DllExport bool getHeadingTradeString(PlayerTypes eOtherPlayer, TradeableItems eItem, CvWString& szString, CvString& szIcon) const; //DllExport bool getItemTradeString(PlayerTypes eOtherPlayer, bool bOffer, bool bShowingCurrent, const TradeData& zTradeData, CvWString& szString, CvString& szIcon) const; //DllExport void updateTradeList(PlayerTypes eOtherPlayer, CLinkList& ourInventory, const CLinkList& ourOffer, const CLinkList& theirOffer) const; -------------------------------------------------------------------------------------------- // 下面是3.17的,要加 const //virtual DenialTypes AI_bonusTrade(BonusTypes eBonus, PlayerTypes ePlayer) const = 0; // 下面是3.13的,不能有 const virtual DenialTypes AI_bonusTrade(BonusTypes eBonus, PlayerTypes ePlayer) = 0; -------------------------------------------------------------------------------------------- // 下面是3.17的,要加 const //virtual DenialTypes AI_cityTrade(CvCity* pCity, PlayerTypes ePlayer) const = 0; //virtual DenialTypes AI_stopTradingTrade(TeamTypes eTradeTeam, PlayerTypes ePlayer) const = 0; //virtual DenialTypes AI_civicTrade(CivicTypes eCivic, PlayerTypes ePlayer) const = 0; //virtual DenialTypes AI_religionTrade(ReligionTypes eReligion, PlayerTypes ePlayer) const = 0; // 下面是3.13的,不能有 const virtual DenialTypes AI_cityTrade(CvCity* pCity, PlayerTypes ePlayer) = 0; virtual DenialTypes AI_stopTradingTrade(TeamTypes eTradeTeam, PlayerTypes ePlayer) = 0; virtual DenialTypes AI_civicTrade(CivicTypes eCivic, PlayerTypes ePlayer) = 0; virtual DenialTypes AI_religionTrade(ReligionTypes eReligion, PlayerTypes ePlayer) = 0; -------------------------------------------------------------------------------------------- // 下面是3.17的,3.13不需要 //virtual int AI_maxGoldPerTurnTrade(PlayerTypes ePlayer) const = 0; //virtual int AI_maxGoldTrade(PlayerTypes ePlayer) const = 0; ================================================================== CvPlayer.cpp 3.13不需要下面这四个函数,删除或注释掉 buildTradeTable,getHeadingTradeString,getItemTradeString,updateTradeList ================================================================== CvPlayerAI.h // 下面是3.17的,要加 const //DllExport int AI_maxGoldTrade(PlayerTypes ePlayer) const; //DllExport int AI_maxGoldPerTurnTrade(PlayerTypes ePlayer) const; // 下面是3.13的,不能有 const DllExport int AI_maxGoldTrade(PlayerTypes ePlayer); DllExport int AI_maxGoldPerTurnTrade(PlayerTypes ePlayer); -------------------------------------------------------------------------------------------- // 下面是3.17的,要加 const //DenialTypes AI_bonusTrade(BonusTypes eBonus, PlayerTypes ePlayer) const; //int AI_corporationBonusVal(BonusTypes eBonus) const; // 下面是3.13的,不能有 const DenialTypes AI_bonusTrade(BonusTypes eBonus, PlayerTypes ePlayer); int AI_corporationBonusVal(BonusTypes eBonus); -------------------------------------------------------------------------------------------- // 下面是3.17的,要加 const //DenialTypes AI_cityTrade(CvCity* pCity, PlayerTypes ePlayer) const; // 下面是3.13的,不能有 const DenialTypes AI_cityTrade(CvCity* pCity, PlayerTypes ePlayer); -------------------------------------------------------------------------------------------- // 下面是3.17的,要加 const //DenialTypes AI_stopTradingTrade(TeamTypes eTradeTeam, PlayerTypes ePlayer) const; // 下面是3.13的,不能有 const DenialTypes AI_stopTradingTrade(TeamTypes eTradeTeam, PlayerTypes ePlayer); -------------------------------------------------------------------------------------------- // 下面是3.17的,要加 const //DenialTypes AI_civicTrade(CivicTypes eCivic, PlayerTypes ePlayer) const; // 下面是3.13的,不能有 const DenialTypes AI_civicTrade(CivicTypes eCivic, PlayerTypes ePlayer); -------------------------------------------------------------------------------------------- // 下面是3.17的,要加 const //DenialTypes AI_religionTrade(ReligionTypes eReligion, PlayerTypes ePlayer) const; // 下面是3.13的,不能有 const DenialTypes AI_religionTrade(ReligionTypes eReligion, PlayerTypes ePlayer); -------------------------------------------------------------------------------------------- // 下面是3.17的,要加 const //int AI_getGoldTradedTo(PlayerTypes eIndex) const; // 下面是3.13的,不能有 const int AI_getGoldTradedTo(PlayerTypes eIndex); ================================================================== CvPlayerAI.cpp 根据 CvPlayerAI.h 的定义,将对应的函数后尾的 const 去掉 ================================================================== CvXMLLoadUtility.h CvXMLLoadUtilitySet.cpp CvInfos.h CvInfos.cpp 以上这四个文件必需使用3.13的结构,否则换语言会跳出。 自己根据操作量来判断是将其修改至3.13版结构,还是将增加的结构加到3.13版的文件上。 ================================================================== CyInfoInterface1.cpp .def("getButton", &CvInfoBase::getButton, "string ()") // 3.13版要加入下面这行 .def("getXmlVal", &CvInfoBase::getXmlVal, "string ()") -------------------------------------------------------------------------------------------- // 3.13版用的是 pyGetQuote .def("getQuote", &CvTechInfo::pyGetQuote, "wstring ()") ================================================================== CvPlayerAI.cpp pDiplo->setDiploComment((DiploCommentTypes)GC.getInfoTypeForString("AI_DIPLOCOMMENT_CIVIC_PRESSURE"), GC.getCivicInfo(eFavoriteCivic).getTextKey()); // 3.17用的是 getTextKeyWide,3.13 的是getTextKey |
至此完毕,再花4分钟来编译就可以在3.13上运行