Mercurial > mm7
diff mm7_5.cpp @ 109:01ab35c85832
9.02.13
author | Ritor1 |
---|---|
date | Sat, 09 Feb 2013 01:56:58 +0600 |
parents | 2baff1256844 |
children | aa9b34eb3da4 |
line wrap: on
line diff
--- a/mm7_5.cpp Fri Feb 08 23:05:14 2013 +0600 +++ b/mm7_5.cpp Sat Feb 09 01:56:58 2013 +0600 @@ -68,7 +68,7 @@ unsigned int v2; // edx@7 Actor *pActor; // ecx@13 int v4; // ecx@18 - NPCData *pNPCData; // eax@18 + NPCData *pNPCData0; // eax@18 int v6; // edx@20 int v7; // ecx@29 unsigned int v8; // edx@59 @@ -341,18 +341,18 @@ uAction = 0; uNumSeconds = uMessage - 134; v4 = 0; - pNPCData = pParty->pHirelings; + pNPCData0 = pParty->pHirelings; do { - if ( pNPCData->pName ) + if ( pNPCData0->pName ) { v6 = uAction++; pTmpBuf[v6] = v4; } - ++pNPCData; + ++pNPCData0; ++v4; } - while ( (signed int)pNPCData < (signed int)&pParty->pPickedItem ); + while ( (signed int)pNPCData0 < (signed int)&pParty->pPickedItem ); _this = 0; if ( (signed int)pNPCStats->uNumNewNPCs > 0 ) { @@ -15999,7 +15999,7 @@ //----- (00416B01) -------------------------------------------------------- -void __thiscall sub_416B01(void *_this) +void __thiscall sub_416B01(void *_this)//PopupWindowForBenefitAndJoinText { int v1; // edi@2 int v2; // ecx@2 @@ -16026,18 +16026,23 @@ v1 = 0; v2 = 0; v3 = pParty->pHirelings; - do + /*do { if ( v3->pName ) pTmpBuf[v1++] = v2; ++v3; ++v2; } - while ( (signed int)v3 < (signed int)&pParty->pPickedItem ); + while ( (signed int)v3 < (signed int)&pParty->pPickedItem );*/ + for (int i = 0; i < 2; ++i) + { + if (pParty->pHirelings[i].pName) + pTmpBuf[v1++] = i; + } lpsz = 0; if ( (signed int)pNPCStats->uNumNewNPCs > 0 ) { - v4 = pNPCStats->pNewNPCData; + /*v4 = pNPCStats->pNewNPCData; do { if ( v4->uFlags & 0x80 @@ -16047,7 +16052,18 @@ ++lpsz; ++v4; } - while ( (signed int)lpsz < (signed int)pNPCStats->uNumNewNPCs ); + while ( (signed int)lpsz < (signed int)pNPCStats->uNumNewNPCs );*/ + for (int i = 0; i < pNPCStats->uNumNewNPCs; ++i) + { + if (pNPCStats->pNewNPCData[i].uFlags & 0x80) + { + if (!pParty->pHirelings[0].pName || strcmp((char *)pNPCStats->pNewNPCData[i].pName, (char *)pParty->pHirelings[0].pName)) + { + if (!pParty->pHirelings[1].pName || strcmp((char *)pNPCStats->pNewNPCData[i].pName, (char *)pParty->pHirelings[1].pName)) + pTmpBuf[v1++] = i + 2; + } + } + } } if ( (signed int)((char *)v17 + (unsigned __int8)pParty->field_709) < v1 ) {