Mercurial > mm7
comparison Items.cpp @ 296:af7e848d6def
Merge
author | Nomad |
---|---|
date | Tue, 19 Feb 2013 13:31:50 +0200 |
parents | 640a176c030f a672f297c163 |
children | 2a09e1d6fc8f |
comparison
equal
deleted
inserted
replaced
295:640a176c030f | 296:af7e848d6def |
---|---|
1516 | 1516 |
1517 | 1517 |
1518 //----- (00456620) -------------------------------------------------------- | 1518 //----- (00456620) -------------------------------------------------------- |
1519 void ItemsTable::GenerateItem(int treasure_level, int a3, ItemGen *out_item) | 1519 void ItemsTable::GenerateItem(int treasure_level, int a3, ItemGen *out_item) |
1520 { | 1520 { |
1521 //ItemGen *v4; // esi@1 | 1521 |
1522 //ItemsTable *v5; // edi@1 | 1522 ItemGen *v4; // esi@1 |
1523 ItemsTable *v5; // edi@1 | |
1523 int v6; // ebx@3 | 1524 int v6; // ebx@3 |
1524 int *v7; // ecx@33 | 1525 int *v7; // ecx@33 |
1525 //int v8; // eax@34 | 1526 //int v8; // eax@34 |
1526 //int v9; // eax@39 | 1527 //int v9; // eax@39 |
1527 int v10; // ebx@43 | 1528 int v10; // ebx@43 |
1565 unsigned int v48; // ecx@123 | 1566 unsigned int v48; // ecx@123 |
1566 int v49; // eax@123 | 1567 int v49; // eax@123 |
1567 int v50; // eax@123 | 1568 int v50; // eax@123 |
1568 int Dst[800]; // [sp+Ch] [bp-C88h]@33 | 1569 int Dst[800]; // [sp+Ch] [bp-C88h]@33 |
1569 int v52; // [sp+C8Ch] [bp-8h]@33 | 1570 int v52; // [sp+C8Ch] [bp-8h]@33 |
1570 //int v53; // [sp+C90h] [bp-4h]@1 | 1571 int v53; // [sp+C90h] [bp-4h]@1 |
1571 //int v54; // [sp+C9Ch] [bp+8h]@3 | 1572 int v54; // [sp+C9Ch] [bp+8h]@3 |
1572 //int v55; // [sp+CA0h] [bp+Ch]@34 | 1573 //int v55; // [sp+CA0h] [bp+Ch]@34 |
1573 signed int v56; // [sp+CA0h] [bp+Ch]@55 | 1574 signed int v56; // [sp+CA0h] [bp+Ch]@55 |
1574 int v57; // [sp+CA0h] [bp+Ch]@62 | 1575 int v57; // [sp+CA0h] [bp+Ch]@62 |
1575 int *v58; // [sp+CA0h] [bp+Ch]@102 | 1576 int *v58; // [sp+CA0h] [bp+Ch]@102 |
1576 int v59; // [sp+CA0h] [bp+Ch]@123 | 1577 int v59; // [sp+CA0h] [bp+Ch]@123 |
1577 //signed int a2a; // [sp+CA4h] [bp+10h]@33 | 1578 //signed int a2a; // [sp+CA4h] [bp+10h]@33 |
1578 int a2b; // [sp+CA4h] [bp+10h]@101 | 1579 int a2b; // [sp+CA4h] [bp+10h]@101 |
1579 int a2c; // [sp+CA4h] [bp+10h]@120 | 1580 int a2c; // [sp+CA4h] [bp+10h]@120 |
1580 | 1581 |
1581 //v53 = -1; | 1582 v53 = -1; |
1582 //v4 = pItem; | 1583 v5 = this; |
1583 //v5 = this; | |
1584 if (!out_item) | 1584 if (!out_item) |
1585 out_item = (ItemGen *)pAllocator->AllocNamedChunk(out_item, sizeof(*out_item), "newItemGen"); | 1585 out_item = (ItemGen *)pAllocator->AllocNamedChunk(out_item, sizeof(*out_item), "newItemGen"); |
1586 memset(out_item, 0, sizeof(*out_item)); | 1586 memset(out_item, 0, sizeof(*out_item)); |
1587 | 1587 |
1588 auto v4 = out_item; | 1588 v4 = out_item; |
1589 v6 = treasure_level - 1; | 1589 v6 = treasure_level - 1; |
1590 //v54 = treasure_level - 1; | 1590 //v54 = treasure_level - 1; |
1591 if ( a3 ) | 1591 if ( a3 ) |
1592 { | 1592 { |
1593 ITEM_EQUIP_TYPE requested_equip; | 1593 ITEM_EQUIP_TYPE requested_equip; |
1703 v4->uItemID = v17 + 500; | 1703 v4->uItemID = v17 + 500; |
1704 SetSpecialBonus(v4); | 1704 SetSpecialBonus(v4); |
1705 return; | 1705 return; |
1706 } | 1706 } |
1707 v57 = 0; | 1707 v57 = 0; |
1708 v18 = rand() % 10;// v5->field_11684[v54]; | 1708 v18 = rand() % v5->uChanceByTreasureLvlSumm[v54];// v5->field_11684[v54]; |
1709 v4->uItemID = 0; | 1709 v4->uItemID = 0; |
1710 if ( v18 > 0 ) | 1710 if ( v18 > 0 ) |
1711 { | 1711 { |
1712 do | 1712 do |
1713 v57 += pItems[v4->uItemID++ + 1].uChanceByTreasureLvl[v6]; | 1713 v57 += pItems[v4->uItemID++ + 1].uChanceByTreasureLvl[v6]; |
1744 v4->_bonus_type = 0; | 1744 v4->_bonus_type = 0; |
1745 } | 1745 } |
1746 v20 = pItems[v4->uItemID].uEquipType; | 1746 v20 = pItems[v4->uItemID].uEquipType; |
1747 if ( v20 <= EQUIP_BOW ) | 1747 if ( v20 <= EQUIP_BOW ) |
1748 { | 1748 { |
1749 v37 = 10;//(int)&v5->field_1169C[4 * v54 + 48]; | 1749 v37 = v5->uBonusChanceWpSpecial[v54]; |
1750 if ( !*(unsigned int *)v37 ) | 1750 if ( !*(unsigned int *)v37 ) |
1751 return; | 1751 return; |
1752 v38 = rand() % 100; | 1752 v38 = rand() % 100; |
1753 v36 = __OFSUB__(v38, *(unsigned int *)v37); | 1753 v36 = __OFSUB__(v38, *(unsigned int *)v37); |
1754 v35 = v38 - *(unsigned int *)v37 < 0; | 1754 v35 = v38 - *(unsigned int *)v37 < 0; |