nofAttacker::nofAttacker(SerializedGameData& sgd, const unsigned obj_id) : nofActiveSoldier(sgd, obj_id) { if(state != STATE_WALKINGHOME && state != STATE_FIGUREWORK) { attacked_goal = sgd.PopObject<nobBaseMilitary>(GOT_UNKNOWN); mayBeHunted = sgd.PopBool(); sgd.PopContainer(canPlayerSendAggDefender); RTTR_Assert(canPlayerSendAggDefender.size() == gwg->GetNumPlayers()); huntingDefender = sgd.PopObject<nofAggressiveDefender>(GOT_NOF_AGGRESSIVEDEFENDER); radius = sgd.PopUnsignedShort(); if(state == STATE_ATTACKING_WAITINGFORDEFENDER) blocking_event = sgd.PopEvent(); else blocking_event = nullptr; harborPos = sgd.PopMapPoint(); shipPos = sgd.PopMapPoint(); ship_obj_id = sgd.PopUnsignedInt(); } else { attacked_goal = nullptr; mayBeHunted = false; canPlayerSendAggDefender.resize(gwg->GetNumPlayers(), 2); huntingDefender = nullptr; radius = 0; blocking_event = nullptr; harborPos = MapPoint::Invalid(); shipPos = MapPoint::Invalid(); //-V656 ship_obj_id = 0; } }
TradePath::TradePath(SerializedGameData& sgd): start(sgd.PopMapPoint()), goal(sgd.PopMapPoint()), route(sgd.PopContainer(route)){}