* Saves the soldier to a YAML file. * @return YAML node. */
| 132 | * @return YAML node. |
| 133 | */ |
| 134 | YAML::Node Soldier::save() const |
| 135 | { |
| 136 | YAML::Node node; |
| 137 | node["id"] = _id; |
| 138 | node["name"] = Language::wstrToUtf8(_name); |
| 139 | node["initialStats"] = _initialStats; |
| 140 | node["currentStats"] = _currentStats; |
| 141 | node["rank"] = (int)_rank; |
| 142 | if (_craft != 0) |
| 143 | { |
| 144 | node["craft"] = _craft->saveId(); |
| 145 | } |
| 146 | node["gender"] = (int)_gender; |
| 147 | node["look"] = (int)_look; |
| 148 | node["missions"] = _missions; |
| 149 | node["kills"] = _kills; |
| 150 | if (_recovery > 0) |
| 151 | node["recovery"] = _recovery; |
| 152 | node["armor"] = _armor->getType(); |
| 153 | if (_psiTraining) |
| 154 | node["psiTraining"] = _psiTraining; |
| 155 | node["improvement"] = _improvement; |
| 156 | if (!_equipmentLayout.empty()) |
| 157 | { |
| 158 | for (std::vector<EquipmentLayoutItem*>::const_iterator i = _equipmentLayout.begin(); i != _equipmentLayout.end(); ++i) |
| 159 | node["equipmentLayout"].push_back((*i)->save()); |
| 160 | } |
| 161 | if (_death != 0) |
| 162 | { |
| 163 | node["death"] = _death->save(); |
| 164 | } |
| 165 | return node; |
| 166 | } |
| 167 | |
| 168 | /** |
| 169 | * Returns the soldier's full name (and, optionally, statString). |