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;