aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/hdb/ai-funcs.cpp2
-rw-r--r--engines/hdb/ai-inventory.cpp14
-rw-r--r--engines/hdb/ai.h8
3 files changed, 12 insertions, 12 deletions
diff --git a/engines/hdb/ai-funcs.cpp b/engines/hdb/ai-funcs.cpp
index 56b021a567..1cd1b23255 100644
--- a/engines/hdb/ai-funcs.cpp
+++ b/engines/hdb/ai-funcs.cpp
@@ -739,7 +739,7 @@ void AI::initAllEnts() {
int i;
for (i = 0; i < _numInventory; i++) {
- AIEntity *temp = _inventory[i].ent;
+ AIEntity *temp = &_inventory[i].ent;
// Clear out all ptrs in entity before writing
for (int j = 0; j < kMaxAnimFrames; j++) {
diff --git a/engines/hdb/ai-inventory.cpp b/engines/hdb/ai-inventory.cpp
index 65e84339f5..8ed6e9e28a 100644
--- a/engines/hdb/ai-inventory.cpp
+++ b/engines/hdb/ai-inventory.cpp
@@ -60,7 +60,7 @@ bool AI::addToInventory(AIEntity *e) {
return false;
}
- _inventory[_numInventory].ent = e;
+ _inventory[_numInventory].ent = *e;
_numInventory++;
// If weapon, ready it
@@ -106,7 +106,7 @@ void AI::clearInventory() {
AIEntity *AI::getInvItem(int which) {
if (which >= _numInventory)
return NULL;
- return _inventory[which].ent;
+ return &_inventory[which].ent;
}
int AI::queryInventory(const char *string) {
@@ -124,7 +124,7 @@ int AI::queryInventory(const char *string) {
count = 0;
for (i = _numInventory - 1; i >= 0; i--)
- if (_inventory[i].ent->entityName && strstr(_inventory[i].ent->entityName, string))
+ if (_inventory[i].ent.entityName && strstr(_inventory[i].ent.entityName, string))
count++;
return count;
@@ -153,7 +153,7 @@ bool AI::removeInvItem(const char *string, int amount) {
found = 0;
for (i = _numInventory - 1; i >= 0; i--)
- if (_inventory[i].ent->entityName && strstr(_inventory[i].ent->entityName, string)) {
+ if (_inventory[i].ent.entityName && strstr(_inventory[i].ent.entityName, string)) {
j = i;
memset(&_inventory[j], 0, sizeof(InvEnt));
while (j < _numInventory - 1) {
@@ -191,7 +191,7 @@ int AI::queryInventoryType(AIType which) {
count = 0;
for (i = 0; i < _numInventory; i++)
- if (_inventory[i].ent->type == which)
+ if (_inventory[i].ent.type == which)
count++;
return count;
@@ -219,7 +219,7 @@ bool AI::removeInvItemType(AIType which, int amount) {
found = 0;
for (i = 0; i < _numInventory; i++)
- if (_inventory[i].ent->type == which) {
+ if (_inventory[i].ent.type == which) {
j = i;
memset(&_inventory[j], 0, sizeof(InvEnt));
while (j < _numInventory - 1) {
@@ -258,7 +258,7 @@ bool AI::addItemToInventory(AIType type, int amount, const char *funcInit, const
void AI::keepInvItem(AIType type) {
for (int i = 0; i < _numInventory; i++)
- if (_inventory[i].ent->type == type)
+ if (_inventory[i].ent.type == type)
_inventory[i].keep = 1;
}
diff --git a/engines/hdb/ai.h b/engines/hdb/ai.h
index 02a928831a..e8bd20f047 100644
--- a/engines/hdb/ai.h
+++ b/engines/hdb/ai.h
@@ -581,9 +581,9 @@ struct AnimTarget {
struct InvEnt {
uint16 keep;
- AIEntity *ent;
+ AIEntity ent;
- InvEnt() : keep(0), ent(NULL) {}
+ InvEnt() : keep(0) {}
};
struct DlvEnt {
@@ -1013,10 +1013,10 @@ public:
return _numInventory;
}
AIType getInvItemType(int which) {
- return _inventory[which].ent->type;
+ return _inventory[which].ent.type;
}
Tile *getInvItemGfx(int which) {
- return _inventory[which].ent->standdownGfx[0];
+ return _inventory[which].ent.standdownGfx[0];
}
AIEntity *getInvItem(int which);