From 70ac99cbfa7cd9e8c65db10d82a1e007d7e39892 Mon Sep 17 00:00:00 2001 From: lethosor Date: Sun, 21 Aug 2016 20:58:40 -0400 Subject: [PATCH] Fix Buildings::setOwner() persistence Needed to set bld->owner_id for changes to persist across save/load Fixes #983, thanks to Quietust --- NEWS.rst | 4 ++++ library/modules/Buildings.cpp | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/NEWS.rst b/NEWS.rst index 97daeee32..0715ccae4 100644 --- a/NEWS.rst +++ b/NEWS.rst @@ -41,6 +41,10 @@ New Scripts ----------- - `load-save`: loads a save non-interactively +Fixes +----- +- Buildings::setOwner() changes now persist properly when saved + DFHack 0.43.03-r1 ================= diff --git a/library/modules/Buildings.cpp b/library/modules/Buildings.cpp index b7933f6ef..9d672cd58 100644 --- a/library/modules/Buildings.cpp +++ b/library/modules/Buildings.cpp @@ -239,6 +239,7 @@ bool Buildings::setOwner(df::building *bld, df::unit *unit) if (unit) { + bld->owner_id = unit->id; unit->owned_buildings.push_back(bld); if (auto spouse = df::unit::find(unit->relationship_ids[df::unit_relationship_type::Spouse])) @@ -248,6 +249,10 @@ bool Buildings::setOwner(df::building *bld, df::unit *unit) blist.push_back(bld); } } + else + { + bld->owner_id = -1; + } return true; }