Skip to content

Commit b072915

Browse files
committed
- Fixed bugs in German translation.
- Fixed bugs in savegames.
1 parent 8837f7a commit b072915

8 files changed

Lines changed: 80 additions & 14 deletions

File tree

‎src/Basescape/BaseInfoState.cpp‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ BaseInfoState::BaseInfoState(Game *game, Base *base, BasescapeState *state) : St
261261
_txtShortRange->setText(_game->getLanguage()->getString("STR_SHORT_RANGE_DETECTION"));
262262

263263
_numShortRange->setColor(Palette::blockOffset(13));
264-
if (_game->getLanguage()->getName() == L"DEUTSCHE")
264+
if (_game->getLanguage()->getName() == L"DEUTSCH")
265265
{
266266
_numShortRange->setX(137);
267267
}
@@ -273,7 +273,7 @@ BaseInfoState::BaseInfoState(Game *game, Base *base, BasescapeState *state) : St
273273
_txtLongRange->setText(_game->getLanguage()->getString("STR_LONG_RANGE_DETECTION"));
274274

275275
_numLongRange->setColor(Palette::blockOffset(13));
276-
if (_game->getLanguage()->getName() == L"DEUTSCHE")
276+
if (_game->getLanguage()->getName() == L"DEUTSCH")
277277
{
278278
_numLongRange->setX(137);
279279
}

‎src/Geoscape/GeoscapeState.cpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ GeoscapeState::GeoscapeState(Game *game) : State(game), _pause(false), _music(fa
156156
_game->getResourcePack()->getSurface("GEOBORD.SCR")->blit(_bg);
157157

158158
Surface* sidebar = 0;
159-
if (_game->getLanguage()->getName() == L"DEUTSCHE")
159+
if (_game->getLanguage()->getName() == L"DEUTSCH")
160160
{
161161
sidebar = _game->getResourcePack()->getSurface("German.geo");
162162
}

‎src/Savegame/Base.cpp‎

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,16 @@ void Base::load(const YAML::Node &node, SavedGame *save)
160160
_items->load(node["items"]);
161161
node["scientists"] >> _scientists;
162162
node["engineers"] >> _engineers;
163+
164+
size = node["transfers"].size();
165+
for (unsigned int i = 0; i < size; i++)
166+
{
167+
int hours;
168+
node["transfers"][i]["hours"] >> hours;
169+
Transfer *t = new Transfer(hours);
170+
t->load(node["transfers"][i], this, _rule);
171+
_transfers.push_back(t);
172+
}
163173
}
164174

165175
/**
@@ -192,11 +202,16 @@ void Base::save(YAML::Emitter &out) const
192202
}
193203
out << YAML::EndSeq;
194204
out << YAML::Key << "items" << YAML::Value;
195-
out << YAML::BeginSeq;
196205
_items->save(out);
197-
out << YAML::EndSeq;
198206
out << YAML::Key << "scientists" << YAML::Value << _scientists;
199207
out << YAML::Key << "engineers" << YAML::Value << _engineers;
208+
out << YAML::Key << "transfers" << YAML::Value;
209+
out << YAML::BeginSeq;
210+
for (std::vector<Transfer*>::const_iterator i = _transfers.begin(); i != _transfers.end(); i++)
211+
{
212+
(*i)->save(out);
213+
}
214+
out << YAML::EndSeq;
200215
out << YAML::EndMap;
201216
}
202217

‎src/Savegame/Craft.cpp‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,7 @@ void Craft::save(YAML::Emitter &out) const
126126
}
127127
out << YAML::EndSeq;
128128
out << YAML::Key << "items" << YAML::Value;
129-
out << YAML::BeginSeq;
130129
_items->save(out);
131-
out << YAML::EndSeq;
132130
out << YAML::Key << "status" << YAML::Value << _status;
133131
out << YAML::Key << "lowFuel" << YAML::Value << _lowFuel;
134132
out << YAML::Key << "inBattlescape" << YAML::Value << _inBattlescape;

‎src/Savegame/ItemContainer.h‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
* You should have received a copy of the GNU General Public License
1717
* along with OpenXcom. If not, see <http://www.gnu.org/licenses/>.
1818
*/
19-
#ifndef OPENXCOM_ITEM_H
20-
#define OPENXCOM_ITEM_H
19+
#ifndef OPENXCOM_ITEMCONTAINER_H
20+
#define OPENXCOM_ITEMCONTAINER_H
2121

2222
#include <string>
2323
#include <map>

‎src/Savegame/Soldier.h‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,7 @@ class Soldier : public Unit
4444
private:
4545
std::wstring _name;
4646
RuleSoldier *_rules;
47-
UnitStats _initialStats;
48-
UnitStats _currentStats;
47+
UnitStats _initialStats, _currentStats;
4948
SoldierRank _rank;
5049
Craft *_craft;
5150
SoldierGender _gender;

‎src/Savegame/Transfer.cpp‎

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include "Craft.h"
2323
#include "ItemContainer.h"
2424
#include "../Engine/Language.h"
25+
#include "../Ruleset/Ruleset.h"
2526

2627
namespace OpenXcom
2728
{
@@ -39,14 +40,42 @@ Transfer::Transfer(int hours) : _hours(hours), _soldier(0), _craft(0), _itemId("
3940
*/
4041
Transfer::~Transfer()
4142
{
43+
delete _soldier;
44+
delete _craft;
4245
}
4346

4447
/**
4548
* Loads the transfer from a YAML file.
4649
* @param node YAML node.
4750
*/
48-
void Transfer::load(const YAML::Node &node)
51+
void Transfer::load(const YAML::Node &node, Base *base, Ruleset *rule)
4952
{
53+
node["hours"] >> _hours;
54+
if (const YAML::Node *pName = node.FindValue("soldier"))
55+
{
56+
_soldier = new Soldier();
57+
_soldier->load(*pName);
58+
}
59+
else if (const YAML::Node *pName = node.FindValue("craft"))
60+
{
61+
std::string type;
62+
(*pName)["type"] >> type;
63+
_craft = new Craft(rule->getCraft(type), base);
64+
_craft->load(*pName, rule);
65+
}
66+
else if (const YAML::Node *pName = node.FindValue("itemId"))
67+
{
68+
*pName >> _itemId;
69+
node["itemQty"] >> _itemQty;
70+
}
71+
else if (const YAML::Node *pName = node.FindValue("scientists"))
72+
{
73+
*pName >> _scientists;
74+
}
75+
else if (const YAML::Node *pName = node.FindValue("engineers"))
76+
{
77+
*pName >> _engineers;
78+
}
5079
}
5180

5281
/**
@@ -56,6 +85,30 @@ void Transfer::load(const YAML::Node &node)
5685
void Transfer::save(YAML::Emitter &out) const
5786
{
5887
out << YAML::BeginMap;
88+
out << YAML::Key << "hours" << YAML::Value << _hours;
89+
if (_soldier != 0)
90+
{
91+
out << YAML::Key << "soldier" << YAML::Value;
92+
_soldier->save(out);
93+
}
94+
else if (_craft != 0)
95+
{
96+
out << YAML::Key << "craft" << YAML::Value;
97+
_craft->save(out);
98+
}
99+
else if (_itemQty != 0)
100+
{
101+
out << YAML::Key << "itemId" << YAML::Value << _itemId;
102+
out << YAML::Key << "itemQty" << YAML::Value << _itemQty;
103+
}
104+
else if (_scientists != 0)
105+
{
106+
out << YAML::Key << "scientists" << YAML::Value << _scientists;
107+
}
108+
else if (_engineers != 0)
109+
{
110+
out << YAML::Key << "engineers" << YAML::Value << _engineers;
111+
}
59112
out << YAML::EndMap;
60113
}
61114

‎src/Savegame/Transfer.h‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,13 @@
2525
namespace OpenXcom
2626
{
2727

28-
enum TransferType { TRANSFER_SOLDIER, TRANSFER_CRAFT, TRANSFER_ITEM, TRANSFER_SCIENTIST, TRANSFER_ENGINEER };
28+
enum TransferType { TRANSFER_SOLDIER, TRANSFER_CRAFT, TRANSFER_ITEM, TRANSFER_SCIENTIST, TRANSFER_ENGINEER };
2929

3030
class Soldier;
3131
class Craft;
3232
class Language;
3333
class Base;
34+
class Ruleset;
3435

3536
/**
3637
* Represents an item transfer.
@@ -51,7 +52,7 @@ class Transfer
5152
/// Cleans up the transfer.
5253
~Transfer();
5354
/// Loads the transfer from YAML.
54-
void load(const YAML::Node& node);
55+
void load(const YAML::Node& node, Base *base, Ruleset *rule);
5556
/// Saves the transfer to YAML.
5657
void save(YAML::Emitter& out) const;
5758
/// Sets the soldier of the transfer.

0 commit comments

Comments
 (0)