From da2fb1cb1adb9f4d8f36e6b6e263c7fec6aad2ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sat, 28 May 2011 10:18:50 +0200 Subject: [PATCH] Fix creature owned items vector offset on Windows, added support for owned items to more versions. --- CMake/Modules/FindCurses.cmake | 2 +- Memory.xml | 12 ++++++++---- library/modules/Creatures.cpp | 6 +++++- library/modules/Items.cpp | 6 ++++++ 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/CMake/Modules/FindCurses.cmake b/CMake/Modules/FindCurses.cmake index 44e8ec3e3..98adf9815 100644 --- a/CMake/Modules/FindCurses.cmake +++ b/CMake/Modules/FindCurses.cmake @@ -5,7 +5,7 @@ ENDIF() FIND_PATH(Curses_INCLUDE_PATH NAMES ncurses.h curses.h PATH_SUFFIXES ncurses - PATHS /usr/include /usr/local/include /usr/pkg/include + PATHS /usr/include/ncursesw /usr/include /usr/local/include /usr/pkg/include ) FIND_LIBRARY(Curses_LIBRARY diff --git a/Memory.xml b/Memory.xml index 25a1db8c8..c61576bcf 100644 --- a/Memory.xml +++ b/Memory.xml @@ -2010,6 +2010,7 @@ + THIS IS TOTAL BS DT: 0x3C4, I don't believe that's OK' @@ -2243,6 +2244,11 @@ + + + + +
@@ -2880,6 +2886,7 @@ + @@ -2889,6 +2896,7 @@ + @@ -3021,10 +3029,6 @@ Address name="vector" value="0x0940b174" - - - - diff --git a/library/modules/Creatures.cpp b/library/modules/Creatures.cpp index fc6615616..6f86855a6 100644 --- a/library/modules/Creatures.cpp +++ b/library/modules/Creatures.cpp @@ -724,7 +724,11 @@ bool Creatures::ReadOwnedItemsPtr(const uint32_t temp, std::vector & it bool Creatures::RemoveOwnedItemIdx(const uint32_t index, int32_t id) { - if(!d->Started || !d->Ft_owned_items) return false; + if(!d->Started || !d->Ft_owned_items) + { + cerr << "!d->Started || !d->Ft_owned_items FAIL" << endl; + return false; + } uint32_t temp = d->p_cre->at (index); return this->RemoveOwnedItemPtr(temp, id); } diff --git a/library/modules/Items.cpp b/library/modules/Items.cpp index b9529c840..9f9e4446e 100644 --- a/library/modules/Items.cpp +++ b/library/modules/Items.cpp @@ -592,10 +592,16 @@ bool Items::removeItemOwner(dfh_item &item, Creatures *creatures) int32_t ix = creatures->FindIndexById(oid); if (ix < 0 || !creatures->RemoveOwnedItemIdx(ix, item.id)) + { + cerr << "RemoveOwnedItemIdx: CREATURE " << ix << " ID " << item.id << " FAILED!" << endl; return false; + } if (!p_refs.remove(i--)) + { + cerr << "p_refs.remove FAILED!" << endl; return false; + } } item.base.flags.owned = 0;