From 1368f8759051d2450d4ed4831839257d9d44deb5 Mon Sep 17 00:00:00 2001 From: vladislavbelov Date: Fri, 24 Jul 2020 19:13:09 +0000 Subject: [PATCH] Fixes actor seed for deleted entities in Atlas. This was SVN commit r23882. --- .../atlas/GameInterface/Handlers/ObjectHandlers.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/source/tools/atlas/GameInterface/Handlers/ObjectHandlers.cpp b/source/tools/atlas/GameInterface/Handlers/ObjectHandlers.cpp index 2dfd5ecf3d..64e4de7649 100644 --- a/source/tools/atlas/GameInterface/Handlers/ObjectHandlers.cpp +++ b/source/tools/atlas/GameInterface/Handlers/ObjectHandlers.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2019 Wildfire Games. +/* Copyright (C) 2020 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -998,9 +998,10 @@ BEGIN_COMMAND(DeleteObjects) { entity_id_t entityID; CStr templateName; - int32_t owner; + player_id_t owner; CFixedVector3D pos; CFixedVector3D rot; + u32 actorSeed; }; std::vector oldObjects; @@ -1039,6 +1040,10 @@ BEGIN_COMMAND(DeleteObjects) obj.rot = cmpPosition->GetRotation(); } + CmpPtr cmpVisual(sim, obj.entityID); + if (cmpVisual) + obj.actorSeed = cmpVisual->GetActorSeed(); + oldObjects.push_back(obj); g_Game->GetSimulation2()->DestroyEntity(obj.entityID); } @@ -1069,6 +1074,10 @@ BEGIN_COMMAND(DeleteObjects) CmpPtr cmpOwnership(sim, oldObjects[i].entityID); if (cmpOwnership) cmpOwnership->SetOwner(oldObjects[i].owner); + + CmpPtr cmpVisual(sim, oldObjects[i].entityID); + if (cmpVisual) + cmpVisual->SetActorSeed(oldObjects[i].actorSeed); } }