Skip to content

Commit da2fb1c

Browse files
committed
Fix creature owned items vector offset on Windows, added support for owned items to more versions.
1 parent 6e00dc4 commit da2fb1c

File tree

4 files changed

+20
-6
lines changed

4 files changed

+20
-6
lines changed

CMake/Modules/FindCurses.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ ENDIF()
55
FIND_PATH(Curses_INCLUDE_PATH
66
NAMES ncurses.h curses.h
77
PATH_SUFFIXES ncurses
8-
PATHS /usr/include /usr/local/include /usr/pkg/include
8+
PATHS /usr/include/ncursesw /usr/include /usr/local/include /usr/pkg/include
99
)
1010

1111
FIND_LIBRARY(Curses_LIBRARY

Memory.xml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2010,6 +2010,7 @@
20102010
<Offset name="birth_year" value="0x224" />
20112011
<Offset name="birth_time" value="0x228" />
20122012
<Offset name="inventory_vector" value="0x288" />
2013+
<Offset name="owned_items_vector" value="0x298"/>
20132014
<Offset name="current_job" value="0x2f4" />
20142015
<Offset name="current_job_skill" value="0x2f8" /> THIS IS TOTAL BS
20152016
<Offset name="physical" value="0x3cc" /> DT: 0x3C4, I don't believe that's OK'
@@ -2243,6 +2244,11 @@
22432244
<PETimeStamp value="0x4D90764F" />
22442245
<MD5 value="6ada05fc94785b53efe6aa5728b3756b" />
22452246
<Offsets>
2247+
<Group name="Creatures">
2248+
<Group name="creature">
2249+
<Offset name="flags3" value="0xE8"/>
2250+
</Group>
2251+
</Group>
22462252
<Group name="Items" valid="true">
22472253
<Address name="items_vector" value="0x16c4540"/>
22482254
<Offset name="id" value="0x14"/>
@@ -2880,6 +2886,7 @@
28802886
<Offset name="birth_year" value="0x1A0" />
28812887
<Offset name="birth_time" value="0x1A4" />
28822888
<Offset name="inventory_vector" value="0x204" />
2889+
<Offset name="owned_items_vector" value="0x210"/>
28832890
<Offset name="current_job" value="0x25C" />
28842891
<Offset name="current_job_skill" value="0x260" />
28852892
<Offset name="physical" value="0x310" />
@@ -2889,6 +2896,7 @@
28892896
<Offset name="current_soul" value="0x53C" />
28902897
<Offset name="labors" value="0x54C" />
28912898
<Offset name="happiness" value="0x05dc" />
2899+
<Offset name="hist_figure_id" value="0x640"/>
28922900
</Group>
28932901
</Group>
28942902
<Group name="job">
@@ -3021,10 +3029,6 @@
30213029
Address name="vector" value="0x0940b174"
30223030
<Group name="creature">
30233031
<Offset name="flags3" value="0x94"/>
3024-
<Group name="advanced">
3025-
<Offset name="owned_items_vector" value="0x210"/>
3026-
<Offset name="hist_figure_id" value="0x640"/>
3027-
</Group>
30283032
</Group>
30293033
</Group>
30303034
<Group name="Position" valid="true">

library/modules/Creatures.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -724,7 +724,11 @@ bool Creatures::ReadOwnedItemsPtr(const uint32_t temp, std::vector<int32_t> & it
724724

725725
bool Creatures::RemoveOwnedItemIdx(const uint32_t index, int32_t id)
726726
{
727-
if(!d->Started || !d->Ft_owned_items) return false;
727+
if(!d->Started || !d->Ft_owned_items)
728+
{
729+
cerr << "!d->Started || !d->Ft_owned_items FAIL" << endl;
730+
return false;
731+
}
728732
uint32_t temp = d->p_cre->at (index);
729733
return this->RemoveOwnedItemPtr(temp, id);
730734
}

library/modules/Items.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -592,10 +592,16 @@ bool Items::removeItemOwner(dfh_item &item, Creatures *creatures)
592592
int32_t ix = creatures->FindIndexById(oid);
593593

594594
if (ix < 0 || !creatures->RemoveOwnedItemIdx(ix, item.id))
595+
{
596+
cerr << "RemoveOwnedItemIdx: CREATURE " << ix << " ID " << item.id << " FAILED!" << endl;
595597
return false;
598+
}
596599

597600
if (!p_refs.remove(i--))
601+
{
602+
cerr << "p_refs.remove FAILED!" << endl;
598603
return false;
604+
}
599605
}
600606

601607
item.base.flags.owned = 0;

0 commit comments

Comments
 (0)