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;