CvInfoUtils.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // InfoUtils 04/2020 lfgr
  2. #include "CvGameCoreDLL.h"
  3. #include "CvInfoUtils.h"
  4. namespace info_utils {
  5. int getRealSpellCost( PlayerTypes ePlayer, SpellTypes eSpell ) {
  6. CvSpellInfo& kSpellInfo = GC.getSpellInfo( eSpell );
  7. int iCost = kSpellInfo.getCost();
  8. // scale costs by gamespeed
  9. iCost *= GC.getGameSpeedInfo( GC.getGameINLINE().getGameSpeedType() ).getTrainPercent();
  10. iCost /= 100;
  11. if (kSpellInfo.getConvertUnitType() != NO_UNIT) {
  12. iCost += (iCost * GET_PLAYER( ePlayer ).getUpgradeCostModifier()) / 100;
  13. }
  14. return iCost;
  15. }
  16. CvWString getParametrizedVoteDescription( VoteTypes eVote,
  17. PlayerTypes ePlayer, int iCity, PlayerTypes eOtherPlayer ) {
  18. CvVoteInfo& kVote = GC.getVoteInfo( eVote );
  19. if( wcslen( kVote.getParamDescriptionKey() ) == 0 ) {
  20. return kVote.getDescription();
  21. }
  22. CvWString szPlayerName;
  23. if( ePlayer != NO_PLAYER ) {
  24. szPlayerName = GET_PLAYER( ePlayer ).getNameKey();
  25. }
  26. CvWString szCityName;
  27. if( ePlayer != NO_PLAYER && iCity != -1 ) {
  28. szCityName = GET_PLAYER( ePlayer ).getCity( iCity )->getNameKey();
  29. }
  30. CvWString szOtherPlayerName;
  31. if( eOtherPlayer != NO_PLAYER ) {
  32. szOtherPlayerName = GET_PLAYER( eOtherPlayer ).getNameKey();
  33. }
  34. return gDLL->getText( kVote.getParamDescriptionKey(),
  35. szPlayerName.c_str(), szCityName.c_str(), szOtherPlayerName.c_str() );
  36. }
  37. void setParametrizedVoteDescription( VoteSelectionSubData& kData ) {
  38. kData.szText = getParametrizedVoteDescription( kData.eVote,
  39. kData.ePlayer, kData.iCityId, kData.eOtherPlayer );
  40. }
  41. }