From da0602dbb1846cc9a9c887ff7098e5212d3ed4d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Mon, 12 Apr 2010 18:19:53 +0200 Subject: [PATCH] Dirty bit for creature equipment pickup on labor setting --- dfhack/modules/Creatures.cpp | 5 +++++ dfhack/shm/mod-creature2010.h | 1 + output/Memory.xml | 1 + 3 files changed, 7 insertions(+) diff --git a/dfhack/modules/Creatures.cpp b/dfhack/modules/Creatures.cpp index 0b756e81d..3ab33f27b 100644 --- a/dfhack/modules/Creatures.cpp +++ b/dfhack/modules/Creatures.cpp @@ -83,6 +83,7 @@ Creatures::Creatures(APIPrivate* _d) creatures.default_soul_offset = minfo->getOffset("creature_default_soul"); creatures.physical_offset = minfo->getOffset("creature_physical"); creatures.mood_offset = minfo->getOffset("creature_mood"); + creatures.pickup_equipment_bit = minfo->getOffset("creature_pickup_equipment_bit"); // soul offsets creatures.soul_skills_vector_offset = minfo->getOffset("soul_skills_vector"); creatures.soul_mental_offset = minfo->getOffset("soul_mental"); @@ -294,6 +295,10 @@ bool Creatures::WriteLabors(const uint32_t index, uint8_t labors[NUM_CREATURE_LA if(!d->Started) return false; uint32_t temp = * (uint32_t *) d->p_cre->at (index); g_pProcess->write(temp + d->creatures.labors_offset, NUM_CREATURE_LABORS, labors); + uint32_t pickup_equip; + g_pProcess->readDWord(temp + d->creatures.pickup_equipment_bit, pickup_equip); + pickup_equip |= 1u; + g_pProcess->writeDWord(temp + d->creatures.pickup_equipment_bit, pickup_equip); return true; } diff --git a/dfhack/shm/mod-creature2010.h b/dfhack/shm/mod-creature2010.h index ae8a2ec4d..c17da3d53 100644 --- a/dfhack/shm/mod-creature2010.h +++ b/dfhack/shm/mod-creature2010.h @@ -49,6 +49,7 @@ typedef struct uint32_t artifact_name_offset; uint32_t physical_offset; uint32_t mood_offset; + uint32_t pickup_equipment_bit; uint32_t soul_vector_offset; uint32_t default_soul_offset; // soul offsets diff --git a/output/Memory.xml b/output/Memory.xml index 116a87c5c..93aa8a3a9 100644 --- a/output/Memory.xml +++ b/output/Memory.xml @@ -1132,6 +1132,7 @@ map_data_1b60_offset 0x1B9c 0x114 0X120 0X1F4 + 0X21C 0x238 0x464