diff --git a/library/include/dfhack/modules/Creatures.h b/library/include/dfhack/modules/Creatures.h index 1f08b1aa4..2e27ff3b9 100644 --- a/library/include/dfhack/modules/Creatures.h +++ b/library/include/dfhack/modules/Creatures.h @@ -379,7 +379,8 @@ namespace DFHack /* Write Functions */ // write labors of a creature (for Dwarf Therapist) bool WriteLabors(const uint32_t index, uint8_t labors[NUM_CREATURE_LABORS]); - bool WriteHappiness(const uint32_t index, const uint32_t happinessValue); + bool WriteHappiness(const uint32_t index, const uint32_t happinessValue); + bool WriteFlags(const uint32_t index, const uint32_t flags1, const uint32_t flags2); private: struct Private; diff --git a/library/modules/Creatures.cpp b/library/modules/Creatures.cpp index d882e1d7f..e9193e9dc 100644 --- a/library/modules/Creatures.cpp +++ b/library/modules/Creatures.cpp @@ -371,6 +371,20 @@ bool Creatures::WriteHappiness(const uint32_t index, const uint32_t happinessVal return true; } +bool Creatures::WriteFlags(const uint32_t index, + const uint32_t flags1, + const uint32_t flags2) +{ + if(!d->Started) + return false; + + uint32_t temp = d->p_cre->at (index); + Process * p = d->owner; + p->writeDWord (temp + d->creatures.flags1_offset, flags1); + p->writeDWord (temp + d->creatures.flags2_offset, flags1); + return true; +} + uint32_t Creatures::GetDwarfRaceIndex() { if(!d->Inited) return 0;