Fix nullptr and item_slot check

This commit is contained in:
Michael Cook (mackal) 2014-10-01 20:48:15 -04:00
parent e38268230f
commit 1024e327b5
2 changed files with 5 additions and 2 deletions

View File

@ -391,6 +391,8 @@ public:
void SetActivated(bool activated) { m_activated = activated; }
int8 GetEvolveLvl() const { return m_evolveLvl; }
void SetScaling(bool v) { m_scaling = v; }
void SetTimestamp(uint32 v) { m_timestamp = v; }
uint32 GetTimestamp() { return m_timestamp; }
void Initialize(SharedDatabase *db = nullptr);
void ScaleItem();
@ -435,6 +437,7 @@ protected:
Item_Struct* m_scaledItem;
EvolveInfo* m_evolveInfo;
bool m_scaling;
uint32 m_timestamp; // UNIX timestamp (GMT) of expiration
//
// Items inside of this item (augs or contents);

View File

@ -485,9 +485,9 @@ bool Mob::DoCastSpell(uint16 spell_id, uint16 target_id, uint16 slot,
}
// This needs a bit more work for saving timer to PP for zoning etc
if (IsClient() && item_slot) {
if (IsClient() && item_slot != INVALID_INDEX) {
ItemInst *itm = CastToClient()->GetInv().GetItem(item_slot);
if (itm->GetItem()->RecastDelay) {
if (itm && itm->GetItem()->RecastDelay) {
outapp = new EQApplicationPacket(OP_ItemRecastDelay, sizeof(ItemRecastDelay_Struct));
ItemRecastDelay_Struct *ird = (ItemRecastDelay_Struct *)outapp->pBuffer;
ird->recast_delay = itm->GetItem()->RecastDelay;