|
From: John D. <go...@us...> - 2003-09-05 03:19:45
|
Log Message:
-----------
Fixed crash when IDing a monster
Modified Files:
--------------
/cvsroot/decaldev/source/DecalFilters:
World.cpp
Revision Data
-------------
Index: World.cpp
===================================================================
RCS file: /cvsroot/decaldev/source/DecalFilters/World.cpp,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -d -r1.51 -r1.52
--- World.cpp 3 Sep 2003 02:10:58 -0000 1.51
+++ World.cpp 5 Sep 2003 03:19:42 -0000 1.52
@@ -895,7 +895,8 @@
CComPtr<IMessageIterator> pItems, pItem;
pMembers->get_NextObject(strdwords, &pItems);
- while (SUCCEEDED(pItems->get_NextObjectIndex(&pItem))) {
+
+ while (pItems != NULL && SUCCEEDED(pItems->get_NextObjectIndex(&pItem))) {
long key, value ;
pItem->get_NextInt(strkey, &key) ;
pItem->get_NextInt(strvalue, &value) ;
@@ -924,21 +925,17 @@
_DebugLog("\nGetting iterator") ;
pMembers->get_NextObject(strdoubles, &pItems);
- if (pItems == NULL) {
- _DebugLog("\nFailed getting iterator!") ;
- } else {
- _DebugLog("\nGetting object") ;
- while (SUCCEEDED(pItems->get_NextObjectIndex(&pItem))) {
- long key ;
- float value ;
- _DebugLog("\nGetting key") ;
- pItem->get_NextInt(strkey, &key) ;
- _DebugLog("\nGetting value") ;
- pItem->get_NextFloat(strvalue, &value) ;
- _DebugLog("\n key:%d value:%f || ", key, value) ;
- switch (key) {
- case 0x90: pData->m_ManaCMod = value ; _DebugLog("ManaCMod %f", value) ; break ;
- }
+ _DebugLog("\nGetting object") ;
+ while (pItems != NULL && SUCCEEDED(pItems->get_NextObjectIndex(&pItem))) {
+ long key ;
+ float value ;
+ _DebugLog("\nGetting key") ;
+ pItem->get_NextInt(strkey, &key) ;
+ _DebugLog("\nGetting value") ;
+ pItem->get_NextFloat(strvalue, &value) ;
+ _DebugLog("\n key:%d value:%f || ", key, value) ;
+ switch (key) {
+ case 0x90: pData->m_ManaCMod = value ; _DebugLog("ManaCMod %f", value) ; break ;
}
}
}
@@ -949,21 +946,17 @@
CComPtr<IMessageIterator> pItems, pItem;
pMembers->get_NextObject(strstrings, &pItems);
- if (pItems == NULL) {
- _DebugLog("\nNo strings") ;
- } else {
- while (SUCCEEDED(pItems->get_NextObjectIndex(&pItem))) {
- long key ;
- BSTR value ;
- pItem->get_NextInt(strkey, &key) ;
- pItem->get_NextString(strstring, &value) ;
- std::string sValue = OLE2A(value) ;
- _DebugLog("\n key:%d value:%s || ", key, sValue.c_str()) ;
+ while (pItems != NULL && SUCCEEDED(pItems->get_NextObjectIndex(&pItem))) {
+ long key ;
+ BSTR value ;
+ pItem->get_NextInt(strkey, &key) ;
+ pItem->get_NextString(strstring, &value) ;
+ std::string sValue = OLE2A(value) ;
+ _DebugLog("\n key:%d value:%s || ", key, sValue.c_str()) ;
- switch (key) {
- case 0x07: pData->m_Inscription = sValue ; _DebugLog("Inscription") ; break ;
- case 0x13: pData->m_RaceReq = sValue ; _DebugLog("RaceReq") ; break ;
- }
+ switch (key) {
+ case 0x07: pData->m_Inscription = sValue ; _DebugLog("Inscription") ; break ;
+ case 0x13: pData->m_RaceReq = sValue ; _DebugLog("RaceReq") ; break ;
}
}
}
@@ -973,23 +966,18 @@
CComPtr<IMessageIterator> pItems, pItem;
pMembers->get_NextObject(strspells, &pItems);
+ int ix=0 ;
+ while (pItems != NULL && SUCCEEDED(pItems->get_NextObjectIndex(&pItem))) {
+ long spellID, spellFlag ;
+ pItem->get_NextInt(strspellID, &spellID) ;
+ pItem->get_NextInt(strspellFlag, &spellFlag) ;
- if (pItems == NULL) {
- _DebugLog("\nNo spells") ;
- } else {
- int ix=0 ;
- while (SUCCEEDED(pItems->get_NextObjectIndex(&pItem))) {
- long spellID, spellFlag ;
- pItem->get_NextInt(strspellID, &spellID) ;
- pItem->get_NextInt(strspellFlag, &spellFlag) ;
-
- _DebugLog("\n key:%d value:%d || ", spellID, spellFlag) ;
- if (spellFlag == 0 && ix < 10) {
- pData->m_Spell[ix++] = spellID ;
- }
+ _DebugLog("\n key:%d value:%d || ", spellID, spellFlag) ;
+ if (spellFlag == 0 && ix < 10) {
+ pData->m_Spell[ix++] = spellID ;
}
- pData->m_SpellCount = ix ;
}
+ pData->m_SpellCount = ix ;
}
if (ObjectIdMask && 0x0020) {
_DebugLog("\nChecking damages") ;
|