Skip to content

Commit ef29aba

Browse files
committed
Fixed width of Mission Details, sorted Psi related stats on kill screen
1 parent 4460a8c commit ef29aba

6 files changed

Lines changed: 63 additions & 22 deletions

File tree

bin/standard/Commendations/Commendations.rul

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -909,7 +909,7 @@ extraStrings:
909909
STR_AWARD_DECOR_7: "First Broche d'Or"
910910
STR_AWARD_DECOR_8: "Second Broche d'Or"
911911
STR_AWARD_DECOR_9: "Troisième Broche d'Or"
912-
STR_MISSION_DETAILS: "DETAILS DE MISSIONS POUR{NEWLINE}{0}"
912+
STR_MISSION_DETAILS: "DETAILS DE MISSIONS"
913913
STR_DETAILS_UC: "DETAILS"
914914
STR_TANK: "Blindé"
915915
STR_HEAVY_WEAPONS_PLATFORM_LC: "Plateforme d'armement lourde"
@@ -1049,7 +1049,7 @@ extraStrings:
10491049
STR_SCORE_VALUE: "ОЧКОВ> {ALT}{0}"
10501050
STR_WINS: "ПОБЕД> {ALT}{0}"
10511051
STR_STUNS: "ЗАДЕРЖАНО> {ALT}{0}"
1052-
STR_MISSION_DETAILS: "СВЕДЕНИЯ ОБ ОПЕРАЦИИ ДЛЯ{NEWLINE}{0}"
1052+
STR_MISSION_DETAILS: "СВЕДЕНИЯ ОБ ОПЕРАЦИИ"
10531053
STR_DETAILS_UC: "СВЕДЕНИЯ"
10541054
STR_TANK: "Танк"
10551055
STR_HEAVY_WEAPONS_PLATFORM_LC: "Тяжелая Боевая Платформа"
@@ -1175,7 +1175,7 @@ extraStrings:
11751175
STR_MISSIONS_BY_UFO: Missioni per UFO
11761176
STR_MISSIONS_TYPE: Missioni
11771177
STR_MISSIONS_UC: Missioni
1178-
STR_MISSION_DETAILS: "Dettagli Missione per {NEWLINE}{0}"
1178+
STR_MISSION_DETAILS: "Dettagli Missione"
11791179
STR_MISSION_LOSS: Sconfitte
11801180
STR_MISSION_TYPE: "Missione> {ALT}{0}"
11811181
STR_MISSION_WIN: Vittorie

bin/standard/xcom1/Language/en-US.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1057,7 +1057,7 @@ en-US:
10571057
STR_KILLED: "KILLED"
10581058
STR_STUNNED: "STUNNED"
10591059
STR_PANICKED: "PANICKED"
1060-
STR_MINDCONTROLLED: "MIND CONTROLLED"
1060+
STR_MINDCONTROLLED: "CONTROLLED"
10611061
STR_REGION_UNKNOWN: "Undisclosed location"
10621062
STR_WEAPON_UNKNOWN: "Improvisation"
10631063
STR_MISSION_WIN: "Victory"
@@ -1091,6 +1091,8 @@ en-US:
10911091
STR_SCORE_VALUE: "SCORE> {ALT}{0}"
10921092
STR_WINS: "WINS> {ALT}{0}"
10931093
STR_STUNS: "STUNS> {ALT}{0}"
1094+
STR_PANICKS: "PANICKS> {ALT}{0}"
1095+
STR_CONTROLS: "CONTROLS> {ALT}{0}"
10941096
STR_DETAILS_UC: "DETAILS"
10951097
STR_TANK: "Tank"
10961098
STR_HEAVY_WEAPONS_PLATFORM_LC: "Heavy Weapons Platform"

src/Basescape/SoldierDiaryMissionState.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,17 @@ SoldierDiaryMissionState::SoldierDiaryMissionState(Base *base, size_t soldierId,
5656
_screen = false;
5757

5858
// Create objects
59-
_window = new Window(this, 232, 128, 44, 36, POPUP_BOTH);
60-
_btnOk = new TextButton(180, 16, 70, 140);
59+
_window = new Window(this, 272, 128, 24, 36, POPUP_BOTH);
60+
_btnOk = new TextButton(220, 16, 50, 140);
6161
_txtTitle = new Text(222, 9, 49, 44);
62-
_txtScore = new Text(222, 9, 49, 62);
63-
_txtMissionType= new Text(222, 9, 49, 71);
64-
_txtUFO = new Text(222, 9, 49, 80);
65-
_txtKills = new Text(130, 9, 187, 62);
66-
_txtRace = new Text(130, 9, 187, 71);
67-
_txtDaylight = new Text(130, 9, 187, 80);
68-
_txtDaysWounded = new Text(130, 9, 187, 89);
69-
_lstKills = new TextList(200, 32, 49, 102);
62+
_txtScore = new Text(222, 9, 29, 62);
63+
_txtMissionType= new Text(222, 9, 29, 71);
64+
_txtUFO = new Text(222, 9, 29, 80);
65+
_txtKills = new Text(130, 9, 207, 62);
66+
_txtRace = new Text(130, 9, 207, 71);
67+
_txtDaylight = new Text(130, 9, 207, 80);
68+
_txtDaysWounded = new Text(130, 9, 207, 89);
69+
_lstKills = new TextList(240, 32, 29, 102);
7070

7171
// Set palette
7272
setPalette("PAL_BASESCAPE");
@@ -155,7 +155,7 @@ SoldierDiaryMissionState::SoldierDiaryMissionState(Base *base, size_t soldierId,
155155

156156
_lstKills->setColor(Palette::blockOffset(13));
157157
_lstKills->setArrowColor(Palette::blockOffset(13)+5);
158-
_lstKills->setColumns(3, 40, 90, 80);
158+
_lstKills->setColumns(3, 60, 90, 90);
159159
_lstKills->setSelectable(false);
160160
_lstKills->setBackground(_window);
161161
_lstKills->setMargin(8);
@@ -182,7 +182,7 @@ SoldierDiaryMissionState::SoldierDiaryMissionState(Base *base, size_t soldierId,
182182
count++;
183183
stunOrKill = true;
184184
}
185-
else if ((*j)->getUnitStatusString() == "STATUS_STUNNED")
185+
else if ((*j)->getUnitStatusString() == "STATUS_UNCONSCIOUS")
186186
{
187187
wssStatus << tr("STR_STUNNED").c_str();
188188
stunOrKill = true;

src/Basescape/SoldierDiaryPerformanceState.cpp

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ SoldierDiaryPerformanceState::SoldierDiaryPerformanceState(Base *base, size_t so
234234

235235
_lstKillTotals->setColor(Palette::blockOffset(15)+1);
236236
_lstKillTotals->setSecondaryColor(Palette::blockOffset(13)+10);
237-
_lstKillTotals->setColumns(2, 98, 98);
237+
_lstKillTotals->setColumns(4, 68, 68, 68, 84);
238238
_lstKillTotals->setMargin(8);
239239
_lstKillTotals->setBackground(_window);
240240

@@ -307,7 +307,6 @@ SoldierDiaryPerformanceState::~SoldierDiaryPerformanceState()
307307

308308
/**
309309
* Clears all the variables and reinitializes the list of kills or missions for the soldier.
310-
*
311310
*/
312311
void SoldierDiaryPerformanceState::init()
313312
{
@@ -379,8 +378,18 @@ void SoldierDiaryPerformanceState::init()
379378
_lstKillTotals->clearList();
380379
_lstMissionTotals->clearList();
381380
_commendationsListEntry.clear();
382-
_lstKillTotals->addRow(2, tr("STR_KILLS").arg(_soldier->getDiary()->getKillTotal()).c_str(),
383-
tr("STR_STUNS").arg(_soldier->getDiary()->getStunTotal()).c_str());
381+
if (_soldier->getCurrentStats()->psiSkill > 0 || (Options::psiStrengthEval && _game->getSavedGame()->isResearched(_game->getRuleset()->getPsiRequirements())))
382+
{
383+
_lstKillTotals->addRow(4, tr("STR_KILLS").arg(_soldier->getDiary()->getKillTotal()).c_str(),
384+
tr("STR_STUNS").arg(_soldier->getDiary()->getStunTotal()).c_str(),
385+
tr("STR_PANICKS").arg(_soldier->getDiary()->getPanickTotal()).c_str(),
386+
tr("STR_CONTROLS").arg(_soldier->getDiary()->getControlTotal()).c_str());
387+
}
388+
else
389+
{
390+
_lstKillTotals->addRow(2, tr("STR_KILLS").arg(_soldier->getDiary()->getKillTotal()).c_str(),
391+
tr("STR_STUNS").arg(_soldier->getDiary()->getStunTotal()).c_str());
392+
}
384393
_lstMissionTotals->addRow(4, tr("STR_MISSIONS").arg(_soldier->getDiary()->getMissionTotal()).c_str(),
385394
tr("STR_WINS").arg(_soldier->getDiary()->getWinTotal()).c_str(),
386395
tr("STR_SCORE_VALUE").arg(_soldier->getDiary()->getScoreTotal()).c_str(),

src/Savegame/SoldierDiary.cpp

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ SoldierDiary::SoldierDiary() : _killList(), _regionTotal(), _countryTotal(), _ty
4141
_lowAccuracyHitCounterTotal(0), _shotsFiredCounterTotal(0), _shotsLandedCounterTotal(0), _shotAtCounter10in1Mission(0), _hitCounter5in1Mission(0),
4242
_reactionFireTotal(0), _timesWoundedTotal(0), _valiantCruxTotal(0), _KIA(0), _trapKillTotal(0), _alienBaseAssaultTotal(0), _allAliensKilledTotal(0), _allAliensStunnedTotal(0),
4343
_woundsHealedTotal(0), _allUFOs(0), _allMissionTypes(0), _statGainTotal(0), _revivedUnitTotal(0), _wholeMedikitTotal(0), _braveryGainTotal(0), _bestOfRank(0),
44-
_bestSoldier(false), _MIA(0), _martyrKillsTotal(0), _postMortemKills(0), _globeTrotter(false), _slaveKillsTotal(0)
44+
_bestSoldier(false), _MIA(0), _martyrKillsTotal(0), _postMortemKills(0), _globeTrotter(false), _slaveKillsTotal(0), _panickTotal(0), _controlTotal(0)
4545
{
4646
}
4747
/**
@@ -123,6 +123,8 @@ void SoldierDiary::load(const YAML::Node& node)
123123
_postMortemKills = node["postMortemKills"].as<int>(_postMortemKills);
124124
_globeTrotter = node["globeTrotter"].as<bool>(_globeTrotter);
125125
_slaveKillsTotal = node["slaveKillsTotal"].as<int>(_slaveKillsTotal);
126+
_panickTotal = node["panickTotal"].as<int>(_panickTotal);
127+
_controlTotal = node["controlTotal"].as<int>(_controlTotal);
126128
}
127129
/**
128130
* Saves the diary to a YAML file.
@@ -184,6 +186,8 @@ YAML::Node SoldierDiary::save() const
184186
if (_postMortemKills) node["postMortemKills"] = _postMortemKills;
185187
if (_globeTrotter) node["globeTrotter"] = _globeTrotter;
186188
if (_slaveKillsTotal) node["slaveKillsTotal"] = _slaveKillsTotal;
189+
if (_panickTotal) node["panickTotal"] =_panickTotal;
190+
if (_controlTotal) node["controlTotal"] = _controlTotal;
187191
return node;
188192
}
189193
/**
@@ -208,6 +212,14 @@ void SoldierDiary::updateDiary(BattleUnitStatistics *unitStatistics, MissionStat
208212
{
209213
_stunTotal++;
210214
}
215+
else if ((*kill)->getUnitStatusString() == "STATUS_PANICKING")
216+
{
217+
_panickTotal++;
218+
}
219+
else if ((*kill)->getUnitStatusString() == "STATUS_TURNING")
220+
{
221+
_controlTotal++;
222+
}
211223
if ((*kill)->hostileTurn())
212224
{
213225
if (rules->getItem((*kill)->weapon)->getBattleType() == BT_GRENADE || rules->getItem((*kill)->weapon)->getBattleType() == BT_PROXIMITYGRENADE)
@@ -764,6 +776,20 @@ int SoldierDiary::getStunTotal() const
764776
{
765777
return _stunTotal;
766778
}
779+
/**
780+
*
781+
*/
782+
int SoldierDiary::getPanickTotal() const
783+
{
784+
return _panickTotal;
785+
}
786+
/**
787+
*
788+
*/
789+
int SoldierDiary::getControlTotal() const
790+
{
791+
return _controlTotal;
792+
}
767793
/**
768794
*
769795
*/

src/Savegame/SoldierDiary.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class SoldierDiary
7777
_importantMissionTotal, _longDistanceHitCounterTotal, _lowAccuracyHitCounterTotal, _shotsFiredCounterTotal, _shotsLandedCounterTotal, _shotAtCounter10in1Mission,
7878
_hitCounter5in1Mission, _reactionFireTotal, _timesWoundedTotal, _valiantCruxTotal, _KIA, _trapKillTotal, _alienBaseAssaultTotal, _allAliensKilledTotal, _allAliensStunnedTotal,
7979
_woundsHealedTotal, _allUFOs, _allMissionTypes, _statGainTotal, _revivedUnitTotal, _wholeMedikitTotal, _braveryGainTotal, _bestOfRank, _MIA, _martyrKillsTotal, _postMortemKills,
80-
_slaveKillsTotal;
80+
_slaveKillsTotal, _panickTotal, _controlTotal;
8181
bool _bestSoldier, _globeTrotter;
8282
void manageModularCommendations(std::map<std::string, int> &nextCommendationLevel, std::map<std::string, int> &modularCommendations, std::pair<std::string, int> statTotal, int criteria);
8383
void awardCommendation(std::string type, std::string noun = "noNoun");
@@ -120,6 +120,10 @@ class SoldierDiary
120120
int getWinTotal() const;
121121
/// Get the total number of stuns.
122122
int getStunTotal() const;
123+
/// Get the total number of psi panicks.
124+
int getPanickTotal() const;
125+
/// Get the total number of psi mind controls.
126+
int getControlTotal() const;
123127
/// Get the total number of days wounded.
124128
int getDaysWoundedTotal() const;
125129
/// Get the solder's commendations.

0 commit comments

Comments
 (0)