# HG changeset patch # User zipi # Date 1361145570 0 # Node ID bb9e946cbcbfb0c7d348770829e3ff5d10b53709 # Parent a6a8fa73b4ec6f88c808b9b169a4a88e25a7662d cleaning, ring fixed diff -r a6a8fa73b4ec -r bb9e946cbcbf mm7_1.cpp --- a/mm7_1.cpp Sun Feb 17 23:40:46 2013 +0000 +++ b/mm7_1.cpp Sun Feb 17 23:59:30 2013 +0000 @@ -5655,64 +5655,66 @@ && (v2 = pPlayers[uActiveCharacter]->AddItem(0xFFFFFFFFu, pParty->pPickedItem.uItemID)) != 0 ) { memcpy(&pPlayers[uActiveCharacter]->pInventoryItems[v2-1], &pParty->pPickedItem, 0x24u); + pMouse->RemoveHoldingItem(); } else { v12 = 0; v3 = pParty->pPlayers; - while ( 1 ) + while ( v3 <= &pParty->pPlayers[3] ) { v4 = v3->AddItem(0xFFFFFFFFu, pParty->pPickedItem.uItemID); if ( v4 ) - break; - ++v12; + { + memcpy(&pParty->pPlayers[v12].pInventoryItems[v4], &pParty->pPickedItem, 0x24u); + pMouse->RemoveHoldingItem(); + break; + } + ++v12; ++v3; - if ( (signed int)v3 >= (signed int)pParty->pHirelings ) - goto LABEL_10; - } - memcpy(&pParty->pPlayers[v12].spellbook.pDarkSpellbook.bIsSpellAvailable[36 * v4 + 5], &pParty->pPickedItem, 0x24u); - pMouse->RemoveHoldingItem(); -LABEL_10: - if ( v12 != 4 ) - goto LABEL_18; - v5 = pItemsTable->pItems[pParty->pPickedItem.uItemID].uSpriteID; - v6 = 0; - a1.uItemType = pItemsTable->pItems[pParty->pPickedItem.uItemID].uSpriteID; - if ( (signed int)pObjectList->uNumObjects <= 0 ) - { -LABEL_15: - LOWORD(v6) = 0; - } - else - { - v7 = (char *)&pObjectList->pObjects->uObjectID; - while ( v5 != *(short *)v7 ) - { - ++v6; - v7 += 56; - if ( v6 >= (signed int)pObjectList->uNumObjects ) - goto LABEL_15; - } - } - a1.field_58 = 4; - a1.uObjectDescID = v6; - a1.vPosition.y = pParty->vPosition.y; - a1.vPosition.x = pParty->vPosition.x; - a1.vPosition.z = pParty->sEyelevel + pParty->vPosition.z; - a1.uSoundID = 0; - a1.uFacing = 0; - a1.uAttributes = 8; - v8 = pIndoor->GetSector( - pParty->vPosition.x, - pParty->vPosition.y, - pParty->sEyelevel + pParty->vPosition.z); - a1.uSpriteFrameID = 0; - a1.uSectorID = v8; - memcpy(&a1.stru_24, &pParty->pPickedItem, sizeof(a1.stru_24)); - a1.Create(pParty->sRotationY, 184, 200, 0); - } - pMouse->RemoveHoldingItem(); -LABEL_18: + } + if ( v12 == 4 ) + { + v5 = pItemsTable->pItems[pParty->pPickedItem.uItemID].uSpriteID; + v6 = 0; + a1.uItemType = pItemsTable->pItems[pParty->pPickedItem.uItemID].uSpriteID; + if ( (signed int)pObjectList->uNumObjects <= 0 ) + { + LOWORD(v6) = 0; + } + else + { + v7 = (char *)&pObjectList->pObjects->uObjectID; + while ( v5 != *(short *)v7 ) + { + ++v6; + v7 += 56; + if ( v6 >= (signed int)pObjectList->uNumObjects ) + { + LOWORD(v6) = 0; + break; + } + } + } + a1.field_58 = 4; + a1.uObjectDescID = v6; + a1.vPosition.y = pParty->vPosition.y; + a1.vPosition.x = pParty->vPosition.x; + a1.vPosition.z = pParty->sEyelevel + pParty->vPosition.z; + a1.uSoundID = 0; + a1.uFacing = 0; + a1.uAttributes = 8; + v8 = pIndoor->GetSector( + pParty->vPosition.x, + pParty->vPosition.y, + pParty->sEyelevel + pParty->vPosition.z); + a1.uSpriteFrameID = 0; + a1.uSectorID = v8; + memcpy(&a1.stru_24, &pParty->pPickedItem, sizeof(a1.stru_24)); + a1.Create(pParty->sRotationY, 184, 200, 0); + pMouse->RemoveHoldingItem(); + } + } if ( !v11 ) { v1->Release(); diff -r a6a8fa73b4ec -r bb9e946cbcbf mm7_5.cpp --- a/mm7_5.cpp Sun Feb 17 23:40:46 2013 +0000 +++ b/mm7_5.cpp Sun Feb 17 23:59:30 2013 +0000 @@ -8586,7 +8586,7 @@ unsigned int v1; // ebx@1 Player *pPlayer; // edi@1 int v3; // ecx@1 - int v4; // edi@3 + int *v4; // edi@3 unsigned int v5; // ebx@3 int v6; // eax@3 LODFile_IconsBitmaps *v7; // ecx@7 @@ -8628,7 +8628,7 @@ int v43; // [sp+10h] [bp-20h]@47 unsigned int a3; // [sp+14h] [bp-1Ch]@3 unsigned int a2; // [sp+18h] [bp-18h]@3 - int v46; // [sp+1Ch] [bp-14h]@1 + unsigned int *v46; // [sp+1Ch] [bp-14h]@1 Player *v47; // [sp+20h] [bp-10h]@1 int v48; // [sp+24h] [bp-Ch]@1 int v49; // [sp+24h] [bp-Ch]@26 @@ -8643,17 +8643,17 @@ pRenderer->DrawTextureIndexed(pCharacterScreen_DetalizBtn->uX, pCharacterScreen_DetalizBtn->uY, (Texture *)(uTextureID_5118C8 != -1 ? &pIcons_LOD->pTextures[uTextureID_5118C8] : 0)); v3 = 0; - v46 = (int)&pPlayer->pEquipment.field_28; + v46 = &pPlayer->pEquipment.field_28; v48 = 0; do { - if ( !*(int *)v46 ) + if ( !*v46 ) goto LABEL_24; - v39 = *(int *)v46; - v4 = (int)&pPlayer->spellbook.pDarkSpellbook.bIsSpellAvailable[36 * *(int *)v46 + 5]; + v39 = *v46; + v4 = (int *)&pPlayer->pInventoryItems[*v46-1].uItemID; a3 = pPaperdollRingsY[v3]; a2 = pPaperdollRingsX[v3]; - v5 = pIcons_LOD->LoadTexture(pItemsTable->pItems[*(int *)v4].pIconName, TEXTURE_16BIT_PALETTE); + v5 = pIcons_LOD->LoadTexture(pItemsTable->pItems[*v4].pIconName, TEXTURE_16BIT_PALETTE); v6 = *(int *)(v4 + 20); if ( *(int *)(v4 + 20) & 0xF0 ) {