From e1e1850d8e49bffa8a93ccc3e4526e7186836e77 Mon Sep 17 00:00:00 2001 From: Simon Jackson Date: Tue, 22 Jun 2010 18:27:27 +0100 Subject: [PATCH] Position writing --- library/include/dfhack/modules/Creatures.h | 1 + library/modules/Creatures.cpp | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/library/include/dfhack/modules/Creatures.h b/library/include/dfhack/modules/Creatures.h index 2ac55ac0c..d566662e8 100644 --- a/library/include/dfhack/modules/Creatures.h +++ b/library/include/dfhack/modules/Creatures.h @@ -389,6 +389,7 @@ namespace DFHack bool WriteTraits(const uint32_t index, const t_soul &soul); bool WriteMood(const uint32_t index, const uint16_t mood); bool WriteMoodSkill(const uint32_t index, const uint16_t moodSkill); + bool WritePos(const uint32_t index, const t_creature &creature); private: struct Private; diff --git a/library/modules/Creatures.cpp b/library/modules/Creatures.cpp index de307e91c..5ed6ddeae 100644 --- a/library/modules/Creatures.cpp +++ b/library/modules/Creatures.cpp @@ -519,6 +519,19 @@ bool Creatures::WriteMoodSkill(const uint32_t index, const uint16_t moodSkill) return true; } +bool Creatures::WritePos(const uint32_t index, const t_creature &creature) +{ + if(!d->Started) + { + return false; + } + + uint32_t temp = d->p_cre->at (index); + Process * p = d->owner; + p->write (temp + d->creatures.pos_offset, 3 * sizeof (uint16_t), (uint8_t *) & (creature.x)); + return true; +} + uint32_t Creatures::GetDwarfRaceIndex() { if(!d->Inited) return 0;