From c3471ed88e33a35323497f611e95db9cac8c485c Mon Sep 17 00:00:00 2001 From: Arthur Ice Date: Sun, 30 Nov 2014 21:30:16 -0800 Subject: [PATCH] EntityList::CreateGroundObject converted to xyz_heading --- zone/entity.cpp | 29 +++++++++++++++-------------- zone/entity.h | 2 +- zone/questmgr.cpp | 2 +- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/zone/entity.cpp b/zone/entity.cpp index 7b427314b..da89e9397 100644 --- a/zone/entity.cpp +++ b/zone/entity.cpp @@ -3816,23 +3816,24 @@ void EntityList::GroupMessage(uint32 gid, const char *from, const char *message) } } -uint16 EntityList::CreateGroundObject(uint32 itemid, float x, float y, float z, - float heading, uint32 decay_time) +uint16 EntityList::CreateGroundObject(uint32 itemid, const xyz_heading& position, uint32 decay_time) { const Item_Struct *is = database.GetItem(itemid); - if (is) { - ItemInst *i = new ItemInst(is, is->MaxCharges); - if (i) { - Object *object = new Object(i, x, y, z, heading,decay_time); - entity_list.AddObject(object, true); + if (!is) + return 0; - safe_delete(i); - if (object) - return object->GetID(); - } - return 0; // fell through itemstruct - } - return 0; // fell through everything, this is bad/incomplete from perl + ItemInst *i = new ItemInst(is, is->MaxCharges); + if (!i) + return 0; + + Object *object = new Object(i, position.m_X, position.m_Y, position.m_Z, position.m_Heading,decay_time); + entity_list.AddObject(object, true); + + safe_delete(i); + if (!object) + return 0; + + return object->GetID(); } uint16 EntityList::CreateGroundObjectFromModel(const char *model, const xyz_heading& position, uint8 type, uint32 decay_time) diff --git a/zone/entity.h b/zone/entity.h index a992a3a5d..176aa1678 100644 --- a/zone/entity.h +++ b/zone/entity.h @@ -387,7 +387,7 @@ public: void SaveAllClientsTaskState(); void ReloadAllClientsTaskState(int TaskID=0); - uint16 CreateGroundObject(uint32 itemid, float x, float y, float z, float heading, uint32 decay_time = 300000); + uint16 CreateGroundObject(uint32 itemid, const xyz_heading& position, uint32 decay_time = 300000); uint16 CreateGroundObjectFromModel(const char *model, const xyz_heading& position, uint8 type = 0x00, uint32 decay_time = 0); uint16 CreateDoor(const char *model, const xyz_heading& position, uint8 type = 0, uint16 size = 100); void ZoneWho(Client *c, Who_All_Struct* Who); diff --git a/zone/questmgr.cpp b/zone/questmgr.cpp index 8c4de1aed..ccf4ef8ea 100644 --- a/zone/questmgr.cpp +++ b/zone/questmgr.cpp @@ -2345,7 +2345,7 @@ int QuestManager::getlevel(uint8 type) uint16 QuestManager::CreateGroundObject(uint32 itemid, float x, float y, float z, float heading, uint32 decay_time) { uint16 entid = 0; //safety check - entid = entity_list.CreateGroundObject(itemid, x, y, z, heading, decay_time); + entid = entity_list.CreateGroundObject(itemid, xyz_heading(x, y, z, heading), decay_time); return entid; }