Core/DBC: added cloak mask to armorMod and did some cleanup in ScalingStatValuesEntry
This commit is contained in:
@@ -1393,60 +1393,63 @@ struct ScalingStatValuesEntry
|
|||||||
uint32 ssdMultiplier[4]; // 2-5 Multiplier for ScalingStatDistribution
|
uint32 ssdMultiplier[4]; // 2-5 Multiplier for ScalingStatDistribution
|
||||||
uint32 armorMod[4]; // 6-9 Armor for level
|
uint32 armorMod[4]; // 6-9 Armor for level
|
||||||
uint32 dpsMod[6]; // 10-15 DPS mod for level
|
uint32 dpsMod[6]; // 10-15 DPS mod for level
|
||||||
uint32 spellBonus; // 16 spell power for level
|
uint32 spellPower; // 16 spell power for level
|
||||||
uint32 ssdMultiplier2; // 17 there's data from 3.1 dbc ssdMultiplier[3]
|
uint32 ssdMultiplier2; // 17 there's data from 3.1 dbc ssdMultiplier[3]
|
||||||
uint32 ssdMultiplier3; // 18 3.3
|
uint32 ssdMultiplier3; // 18 3.3
|
||||||
//uint32 unk2; // 19 unk, probably also Armor for level (flag 0x80000?)
|
uint32 armorMod2[5]; // 20-23 Armor for level
|
||||||
uint32 armorMod2[4]; // 20-23 Armor for level
|
|
||||||
|
|
||||||
uint32 getssdMultiplier(uint32 mask) const
|
uint32 getssdMultiplier(uint32 mask) const
|
||||||
{
|
{
|
||||||
if (mask & 0x4001F)
|
if (mask & 0x4001F)
|
||||||
{
|
{
|
||||||
if (mask & 0x00000001) return ssdMultiplier[0];
|
if (mask & 0x00000001) return ssdMultiplier[0]; // Shoulder
|
||||||
if (mask & 0x00000002) return ssdMultiplier[1];
|
if (mask & 0x00000002) return ssdMultiplier[1]; // Trinket
|
||||||
if (mask & 0x00000004) return ssdMultiplier[2];
|
if (mask & 0x00000004) return ssdMultiplier[2]; // Weapon1H
|
||||||
if (mask & 0x00000008) return ssdMultiplier2;
|
if (mask & 0x00000008) return ssdMultiplier2;
|
||||||
if (mask & 0x00000010) return ssdMultiplier[3];
|
if (mask & 0x00000010) return ssdMultiplier[3]; // Ranged
|
||||||
if (mask & 0x00040000) return ssdMultiplier3;
|
if (mask & 0x00040000) return ssdMultiplier3;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 getArmorMod(uint32 mask) const
|
uint32 getArmorMod(uint32 mask) const
|
||||||
{
|
{
|
||||||
if (mask & 0x00F001E0)
|
if (mask & 0x00F001E0)
|
||||||
{
|
{
|
||||||
if (mask & 0x00000020) return armorMod[0];
|
if (mask & 0x00000020) return armorMod[0]; // Cloth shoulder
|
||||||
if (mask & 0x00000040) return armorMod[1];
|
if (mask & 0x00000040) return armorMod[1]; // Leather shoulder
|
||||||
if (mask & 0x00000080) return armorMod[2];
|
if (mask & 0x00000080) return armorMod[2]; // Mail shoulder
|
||||||
if (mask & 0x00000100) return armorMod[3];
|
if (mask & 0x00000100) return armorMod[3]; // Plate shoulder
|
||||||
|
|
||||||
if (mask & 0x00100000) return armorMod2[0]; // cloth
|
if (mask & 0x00080000) return armorMod2[0]; // cloak
|
||||||
if (mask & 0x00200000) return armorMod2[1]; // leather
|
if (mask & 0x00100000) return armorMod2[1]; // cloth
|
||||||
if (mask & 0x00400000) return armorMod2[2]; // mail
|
if (mask & 0x00200000) return armorMod2[2]; // leather
|
||||||
if (mask & 0x00800000) return armorMod2[3]; // plate
|
if (mask & 0x00400000) return armorMod2[3]; // mail
|
||||||
|
if (mask & 0x00800000) return armorMod2[4]; // plate
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 getDPSMod(uint32 mask) const
|
uint32 getDPSMod(uint32 mask) const
|
||||||
{
|
{
|
||||||
if (mask&0x7E00)
|
if (mask & 0x7E00)
|
||||||
{
|
{
|
||||||
if (mask & 0x00000200) return dpsMod[0];
|
if (mask & 0x00000200) return dpsMod[0]; // Weapon 1h
|
||||||
if (mask & 0x00000400) return dpsMod[1];
|
if (mask & 0x00000400) return dpsMod[1]; // Weapon 2h
|
||||||
if (mask & 0x00000800) return dpsMod[2];
|
if (mask & 0x00000800) return dpsMod[2]; // Caster dps 1h
|
||||||
if (mask & 0x00001000) return dpsMod[3];
|
if (mask & 0x00001000) return dpsMod[3]; // Caster dps 2h
|
||||||
if (mask & 0x00002000) return dpsMod[4];
|
if (mask & 0x00002000) return dpsMod[4]; // Ranged
|
||||||
if (mask & 0x00004000) return dpsMod[5]; // not used?
|
if (mask & 0x00004000) return dpsMod[5]; // Wand
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 getSpellBonus(uint32 mask) const
|
uint32 getSpellBonus(uint32 mask) const
|
||||||
{
|
{
|
||||||
if (mask & 0x00008000) return spellBonus;
|
if (mask & 0x00008000) return spellPower;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 getFeralBonus(uint32 mask) const // removed in 3.2.x?
|
uint32 getFeralBonus(uint32 mask) const // removed in 3.2.x?
|
||||||
{
|
{
|
||||||
if (mask & 0x00010000) return 0; // not used?
|
if (mask & 0x00010000) return 0; // not used?
|
||||||
@@ -1982,7 +1985,7 @@ struct WorldMapAreaEntry
|
|||||||
float x2; // 7
|
float x2; // 7
|
||||||
int32 virtual_map_id; // 8 -1 (map_id have correct map) other: virtual map where zone show (map_id - where zone in fact internally)
|
int32 virtual_map_id; // 8 -1 (map_id have correct map) other: virtual map where zone show (map_id - where zone in fact internally)
|
||||||
// int32 dungeonMap_id; // 9 pointer to DungeonMap.dbc (owerride x1, x2, y1, y2 coordinates)
|
// int32 dungeonMap_id; // 9 pointer to DungeonMap.dbc (owerride x1, x2, y1, y2 coordinates)
|
||||||
// uint32 someMapID; // 10
|
// uint32 parentMapID; // 10
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MAX_WORLD_MAP_OVERLAY_AREA_IDX 4
|
#define MAX_WORLD_MAP_OVERLAY_AREA_IDX 4
|
||||||
|
|||||||
Reference in New Issue
Block a user