| 233 | } |
| 234 | |
| 235 | LSError AIStatsCampaign::CampaignSerialize(ParamArchive& ar) |
| 236 | { |
| 237 | PARAM_CHECK(ar.Serialize("PlayerInfo", _playerInfo, 1)) |
| 238 | ar.SetParams(GWorld->GetGameState()); |
| 239 | PARAM_CHECK(ar.Serialize("Variables", _variables, 1)) |
| 240 | |
| 241 | PARAM_CHECK(ar.Serialize("casualities", _casualties, 1)) |
| 242 | PARAM_CHECK(ar.Serialize("inCombat", _inCombat, 1)) |
| 243 | |
| 244 | PARAM_CHECK(ar.Serialize("score", _score, 1, 0)) |
| 245 | PARAM_CHECK(ar.Serialize("lastScore", _lastScore, 1, 0)) |
| 246 | |
| 247 | PARAM_CHECK(ar.SerializeArray("awards", _awards, 1)) |
| 248 | PARAM_CHECK(ar.SerializeArray("penalties", _penalties, 1)) |
| 249 | |
| 250 | if (ar.GetArVersion() >= 3) |
| 251 | { |
| 252 | AutoArray<KillsItem> kills; |
| 253 | if (ar.IsSaving()) |
| 254 | { |
| 255 | kills.Resize(SKN); |
| 256 | for (int i = 0; i < SKN; i++) |
| 257 | { |
| 258 | kills[i].index = (AIStatsKills)i; |
| 259 | kills[i].value = _kills[i]; |
| 260 | } |
| 261 | PARAM_CHECK(ar.Serialize("Kills", kills, 3)) |
| 262 | } |
| 263 | else if (ar.GetPass() == ParamArchive::PassFirst) |
| 264 | { |
| 265 | PARAM_CHECK(ar.Serialize("Kills", kills, 3)) |
| 266 | for (int i = 0; i < kills.Size(); i++) |
| 267 | { |
| 268 | int index = kills[i].index; |
| 269 | if (index >= 0 && index < SKN) |
| 270 | { |
| 271 | _kills[index] = kills[i].value; |
| 272 | } |
| 273 | } |
| 274 | } |
| 275 | } |
| 276 | |
| 277 | PARAM_CHECK(ar.Serialize("date", (int&)_date, 1, 0)) |
| 278 | |
| 279 | return LSOK; |
| 280 | } |
| 281 | void AIStats::OnMPMissionEnd() |
| 282 | { |
| 283 | const bool automationMissionExit = AppConfig::Instance().IsSimulateMode() || |
no test coverage detected