Over 100 camangos Cata commits applied (to c12950)

Over 100 camangos Cata commits applied. up to and inclusing c12950.
This commit is contained in:
Charles A Edwards 2016-08-20 17:10:24 +01:00 committed by Antz
parent b4ec0440aa
commit eef77eadb9
117 changed files with 4314 additions and 3547 deletions

View file

@ -593,6 +593,7 @@ enum VehicleFlags
VEHICLE_FLAG_UNK12 = 0x00080000,
VEHICLE_FLAG_UNK13 = 0x00100000,
VEHICLE_FLAG_UNK14 = 0x00200000,
VEHICLE_FLAG_FIXED_POSITION = 0x00200000, // Used for vehicles that have a fixed position, such as cannons
VEHICLE_FLAG_DISABLE_SWITCH = 0x00400000, // Can't change seats, VEHICLE_ID = 335 chopper
VEHICLE_FLAG_UNK15 = 0x00800000,
VEHICLE_FLAG_UNK16 = 0x01000000,
@ -620,19 +621,19 @@ enum VehicleSeatFlags
SEAT_FLAG_UNK10 = 0x00000400, // "AllowsTurning"
SEAT_FLAG_CAN_CONTROL = 0x00000800, // Lua_UnitInVehicleControlSeat
SEAT_FLAG_UNK11 = 0x00001000, // "Can Cast Mount Spell"
SEAT_FLAG_UNK12 = 0x00002000, // "Uncontrolled"
SEAT_FLAG_UNCONTROLLED = 0x00002000, // "Uncontrolled"
SEAT_FLAG_CAN_ATTACK = 0x00004000, // Can attack, cast spells and use items from vehicle?
SEAT_FLAG_UNK13 = 0x00008000, // "ShouldUseVehicleSeatExitAnimationOnForcedExit"
SEAT_FLAG_UNK14 = 0x00010000,
SEAT_FLAG_UNK15 = 0x00020000,
SEAT_FLAG_UNK16 = 0x00040000, // "HasVehicleExitAnimForVoluntaryExit"
SEAT_FLAG_UNK17 = 0x00080000, // "HasVehicleExitAnimForForcedExit"
SEAT_FLAG_UNK18 = 0x00100000,
SEAT_FLAG_NOT_SELECTABLE = 0x00100000,
SEAT_FLAG_UNK19 = 0x00200000,
SEAT_FLAG_UNK20 = 0x00400000, // "RecHasVehicleEnterAnim"
SEAT_FLAG_UNK21 = 0x00800000, // Lua_IsUsingVehicleControls
SEAT_FLAG_UNK22 = 0x01000000, // "EnableVehicleZoom"
SEAT_FLAG_USABLE = 0x02000000, // Lua_CanExitVehicle
SEAT_FLAG_CAN_EXIT = 0x02000000, // Lua_CanExitVehicle
SEAT_FLAG_CAN_SWITCH = 0x04000000, // Lua_CanSwitchVehicleSeats
SEAT_FLAG_UNK23 = 0x08000000, // "HasStartWaitingForVehicleTransitionAnimEnter"
SEAT_FLAG_UNK24 = 0x10000000, // "HasStartWaitingForVehicleTransitionAnimExit"
@ -641,4 +642,16 @@ enum VehicleSeatFlags
SEAT_FLAG_UNK26 = 0x80000000, // "AllowsInteraction"
};
enum VehicleSeatFlagsB
{
SEAT_FLAG_B_USABLE_FORCED = 0x00000002,
SEAT_FLAG_B_TARGETS_IN_RAIDUI = 0x00000008, // Lua_UnitTargetsVehicleInRaidUI
SEAT_FLAG_B_EJECTABLE = 0x00000020, // Ejectable
SEAT_FLAG_B_USABLE_FORCED_2 = 0x00000040,
SEAT_FLAG_B_USABLE_FORCED_3 = 0x00000100,
SEAT_FLAG_B_USABLE_FORCED_4 = 0x02000000,
SEAT_FLAG_B_CAN_SWITCH = 0x04000000,
SEAT_FLAG_B_PLAYERFRAME_UI = 0x80000000 // Lua_UnitHasVehiclePlayerFrameUI
};
#endif

View file

@ -165,6 +165,7 @@ DBCStorage <QuestSortEntry> sQuestSortStore(QuestSortEntryfmt);
DBCStorage <QuestXPLevel> sQuestXPLevelStore(QuestXPLevelfmt);
DBCStorage <PhaseEntry> sPhaseStore(Phasefmt);
DBCStorage <PowerDisplayEntry> sPowerDisplayStore(PowerDisplayfmt);
DBCStorage <PvPDifficultyEntry> sPvPDifficultyStore(PvPDifficultyfmt);
DBCStorage <RandomPropertiesPointsEntry> sRandomPropertiesPointsStore(RandomPropertiesPointsfmt);
@ -599,6 +600,7 @@ void LoadDBCStores(const std::string& dataPath)
LoadDBC(availableDbcLocales, bar, bad_dbc_files, sQuestSortStore, dbcPath, "QuestSort.dbc");
LoadDBC(availableDbcLocales, bar, bad_dbc_files, sQuestXPLevelStore, dbcPath, "QuestXP.dbc");
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sPhaseStore, dbcPath,"Phase.dbc");
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sPowerDisplayStore, dbcPath,"PowerDisplay.dbc");
LoadDBC(availableDbcLocales, bar, bad_dbc_files, sPvPDifficultyStore, dbcPath, "PvpDifficulty.dbc");
for (uint32 i = 0; i < sPvPDifficultyStore.GetNumRows(); ++i)
if (PvPDifficultyEntry const* entry = sPvPDifficultyStore.LookupEntry(i))

View file

@ -206,6 +206,7 @@ extern DBCStorage <QuestFactionRewardEntry> sQuestFactionRewardStore;
extern DBCStorage <QuestSortEntry> sQuestSortStore;
extern DBCStorage <QuestXPLevel> sQuestXPLevelStore;
extern DBCStorage <PhaseEntry> sPhaseStore;
extern DBCStorage <PowerDisplayEntry> sPowerDisplayStore;
// extern DBCStorage <PvPDifficultyEntry> sPvPDifficultyStore; -- use GetBattlegroundSlotByLevel for access
extern DBCStorage <RandomPropertiesPointsEntry> sRandomPropertiesPointsStore;
extern DBCStorage <ScalingStatDistributionEntry> sScalingStatDistributionStore;

View file

@ -1456,6 +1456,16 @@ struct PhaseEntry
uint32 Flags; // 2 - 0x0, 0x4, 0x8
};
struct PowerDisplayEntry
{
uint32 id; // 0 m_ID
uint32 power; // 1 m_power
// uint32 unk1 // 2
// float unk2 // 3
// float unk3 // 4
// float unk4 // 5
};
struct PvPDifficultyEntry
{
//uint32 id; // 0 m_ID
@ -1807,32 +1817,31 @@ struct SpellCooldownsEntry
// SpellEffect.dbc
struct SpellEffectEntry
{
//uint32 Id; // 0 m_ID
uint32 Effect; // 73-75 m_effect
float EffectMultipleValue; // 106-108 m_effectAmplitude
uint32 EffectApplyAuraName; // 100-102 m_effectAura
uint32 EffectAmplitude; // 103-105 m_effectAuraPeriod
int32 EffectBasePoints; // 82-84 m_effectBasePoints (don't must be used in spell/auras explicitly, must be used cached Spell::m_currentBasePoints)
//float unk_320_4; // 169-171 3.2.0
float DmgMultiplier; // 156-158 m_effectChainAmplitude
uint32 EffectChainTarget; // 109-111 m_effectChainTargets
int32 EffectDieSides; // 76-78 m_effectDieSides
uint32 EffectItemType; // 112-114 m_effectItemType
uint32 EffectMechanic; // 85-87 m_effectMechanic
int32 EffectMiscValue; // 115-117 m_effectMiscValue
int32 EffectMiscValueB; // 118-120 m_effectMiscValueB
float EffectPointsPerComboPoint; // 124-126 m_effectPointsPerCombo
uint32 EffectRadiusIndex; // 94-96 m_effectRadiusIndex - spellradius.dbc
uint32 EffectRadiusMaxIndex; // 97-99 4.0.0
float EffectRealPointsPerLevel; // 79-81 m_effectRealPointsPerLevel
ClassFamilyMask EffectSpellClassMask; // 127-129 m_effectSpellClassMask
uint32 EffectTriggerSpell; // 121-123 m_effectTriggerSpell
uint32 EffectImplicitTargetA; // 88-90 m_implicitTargetA
uint32 EffectImplicitTargetB; // 91-93 m_implicitTargetB
uint32 EffectSpellId; // new 4.0.0
uint32 EffectIndex; // new 4.0.0
//uint32 unk; // 24 - 4.2.0
//uint32 Id; // 0 m_ID
uint32 Effect; // 1 m_effect
float EffectMultipleValue; // 2 m_effectAmplitude
uint32 EffectApplyAuraName; // 3 m_effectAura
uint32 EffectAmplitude; // 4 m_effectAuraPeriod
int32 EffectBasePoints; // 5 m_effectBasePoints (don't must be used in spell/auras explicitly, must be used cached Spell::m_currentBasePoints)
float EffectBonusMultiplier; // 6 m_effectBonus
float EffectDamageMultiplier; // 7 m_effectChainAmplitude
uint32 EffectChainTarget; // 8 m_effectChainTargets
int32 EffectDieSides; // 9 m_effectDieSides
uint32 EffectItemType; // 10 m_effectItemType
uint32 EffectMechanic; // 11 m_effectMechanic
int32 EffectMiscValue; // 12 m_effectMiscValue
int32 EffectMiscValueB; // 13 m_effectMiscValueB
float EffectPointsPerComboPoint; // 14 m_effectPointsPerCombo
uint32 EffectRadiusIndex; // 15 m_effectRadiusIndex - spellradius.dbc
uint32 EffectRadiusMaxIndex; // 16 4.0.0
float EffectRealPointsPerLevel; // 17 m_effectRealPointsPerLevel
ClassFamilyMask EffectSpellClassMask; // 18 19 20 m_effectSpellClassMask
uint32 EffectTriggerSpell; // 21 m_effectTriggerSpell
uint32 EffectImplicitTargetA; // 22 m_implicitTargetA
uint32 EffectImplicitTargetB; // 23 m_implicitTargetB
uint32 EffectSpellId; // 24 m_spellId - spell.dbc
uint32 EffectIndex; // 25 m_spellEffectIdx
//uint32 unk; // 26 4.2.0 only 0 or 1
// helpers
int32 CalculateSimpleValue() const { return EffectBasePoints; }
@ -2353,7 +2362,7 @@ struct VehicleEntry
uint32 m_uiLocomotionType; // 34
float m_msslTrgtImpactTexRadius; // 35
uint32 m_uiSeatIndicatorType; // 36 m_vehicleUIIndicatorID
uint32 m_powerType; // 37 m_powerDisplayID
uint32 m_powerDisplayID; // 37
// 38 new in 3.1
// 39 new in 3.1
};
@ -2421,9 +2430,6 @@ struct VehicleSeatEntry
//uint32 unk[6]; // 58-63
//uint32 unk2; // 64 4.0.0
//uint32 unk3; // 65 4.0.1
bool IsUsable() const { return m_flags & SEAT_FLAG_USABLE; }
};
struct WMOAreaTableEntry

View file

@ -104,7 +104,8 @@ const char OverrideSpellDatafmt[]="niiiiiiiiiixx";
const char QuestFactionRewardfmt[] = "niiiiiiiiii";
const char QuestSortEntryfmt[]="nx";
const char QuestXPLevelfmt[] = "niiiiiiiiii";
const char Phasefmt[]="nii";
const char Phasefmt[] = "nii";
const char PowerDisplayfmt[] = "nixxxx";
const char PvPDifficultyfmt[] = "diiiii";
const char RandomPropertiesPointsfmt[] = "niiiiiiiiiiiiiii";
const char ScalingStatDistributionfmt[]="niiiiiiiiiiiiiiiiiiiixi";

View file

@ -326,13 +326,13 @@ enum SpellAttributesEx
SPELL_ATTR_EX_UNAFFECTED_BY_SCHOOL_IMMUNE = 0x00010000,// 16 unaffected by school immunity
SPELL_ATTR_EX_UNK17 = 0x00020000,// 17 for auras SPELL_AURA_TRACK_CREATURES, SPELL_AURA_TRACK_RESOURCES and SPELL_AURA_TRACK_STEALTHED select non-stacking tracking spells
SPELL_ATTR_EX_UNK18 = 0x00040000,// 18
SPELL_ATTR_EX_UNK19 = 0x00080000,// 19
SPELL_ATTR_EX_CANT_TARGET_SELF = 0x00080000,// 19 spells with area effect or friendly targets that exclude the caster
SPELL_ATTR_EX_REQ_TARGET_COMBO_POINTS = 0x00100000,// 20 Req combo points on target
SPELL_ATTR_EX_UNK21 = 0x00200000,// 21
SPELL_ATTR_EX_REQ_COMBO_POINTS = 0x00400000,// 22 Use combo points (in 4.x not required combo point target selected)
SPELL_ATTR_EX_REQ_COMBO_POINTS = 0x00400000,// 22 Use combo points
SPELL_ATTR_EX_UNK23 = 0x00800000,// 23
SPELL_ATTR_EX_UNK24 = 0x01000000,// 24 Req fishing pole??
SPELL_ATTR_EX_UNK25 = 0x02000000,// 25 not set in 2.4.2
SPELL_ATTR_EX_UNK25 = 0x02000000,// 25
SPELL_ATTR_EX_UNK26 = 0x04000000,// 26
SPELL_ATTR_EX_UNK27 = 0x08000000,// 27
SPELL_ATTR_EX_UNK28 = 0x10000000,// 28
@ -896,11 +896,11 @@ enum SpellEffects
SPELL_EFFECT_LEAP_BACK = 138,
SPELL_EFFECT_CLEAR_QUEST = 139,
SPELL_EFFECT_FORCE_CAST = 140,
SPELL_EFFECT_141 = 141,
SPELL_EFFECT_FORCE_CAST_WITH_VALUE = 141,
SPELL_EFFECT_TRIGGER_SPELL_WITH_VALUE = 142,
SPELL_EFFECT_APPLY_AREA_AURA_OWNER = 143,
SPELL_EFFECT_KNOCKBACK_FROM_POSITION = 144,
SPELL_EFFECT_145 = 145,
SPELL_EFFECT_GRAVITY_PULL = 145,
SPELL_EFFECT_ACTIVATE_RUNE = 146,
SPELL_EFFECT_QUEST_FAIL = 147,
SPELL_EFFECT_148 = 148,
@ -1411,7 +1411,7 @@ enum Targets
TARGET_SELF = 1,
TARGET_RANDOM_ENEMY_CHAIN_IN_AREA = 2, // only one spell has that, but regardless, it's a target type after all
TARGET_RANDOM_FRIEND_CHAIN_IN_AREA = 3,
TARGET_4 = 4, // some plague spells that are infectious - maybe targets not-infected friends inrange
TARGET_RANDOM_UNIT_CHAIN_IN_AREA = 4, // some plague spells that are infectious - maybe targets not-infected friends inrange
TARGET_PET = 5,
TARGET_CHAIN_DAMAGE = 6,
TARGET_AREAEFFECT_INSTANT = 7, // targets around provided destination point
@ -1460,7 +1460,7 @@ enum Targets
TARGET_ALL_RAID_AROUND_CASTER = 56,
TARGET_SINGLE_FRIEND_2 = 57,
TARGET_58 = 58,
TARGET_59 = 59,
TARGET_FRIENDLY_FRONTAL_CONE = 59,
TARGET_NARROW_FRONTAL_CONE = 60,
TARGET_AREAEFFECT_PARTY_AND_CLASS = 61,
TARGET_DUELVSPLAYER_COORDINATES = 63,
@ -1503,12 +1503,12 @@ enum Targets
TARGET_VEHICLE_PASSENGER_6 = 102,
TARGET_VEHICLE_PASSENGER_7 = 103,
TARGET_IN_FRONT_OF_CASTER_30 = 104,
TARGET_105 = 105, // 1 spell
TARGET_105 = 105,
TARGET_106 = 106,
TARGET_107 = 107, // possible TARGET_WMO(GO?)_IN_FRONT_OF_CASTER(_30 ?) TODO: Verify the angle!
TARGET_GO_IN_FRONT_OF_CASTER_90 = 108,
TARGET_109 = 109, // spell 89008
TARGET_110 = 110, // front enemy aoe
TARGET_NARROW_FRONTAL_CONE_2 = 110,
TARGET_111 = 111, // not used
TARGET_112 = 112, // spell 89549
TARGET_113 = 113, // not used
@ -1597,8 +1597,10 @@ enum DamageEffectType
DOT = 2,
HEAL = 3,
/// used also in case when damage applied to health but not applied to spell channelInterruptFlags/etc
NODAMAGE = 4,
SELF_DAMAGE = 5
NODAMAGE = 4,
/// used to avoid rogue loosing stealth on falling damage
SELF_DAMAGE_ROGUE_FALL = 5,
SELF_DAMAGE = 6
};
enum GameobjectTypes

View file

@ -671,6 +671,51 @@ void WorldSession::SendNotification(int32 string_id, ...)
}
}
void WorldSession::SendSetPhaseShift(uint32 phaseMask, uint16 mapId)
{
ObjectGuid guid = _player->GetObjectGuid();
uint32 phaseFlags = 0;
for (uint32 i = 0; i < sPhaseStore.GetNumRows(); i++)
{
if (PhaseEntry const* phase = sPhaseStore.LookupEntry(i))
{
if (phase->PhaseShift == phaseMask)
{
phaseFlags = phase->Flags;
break;
}
}
}
WorldPacket data(SMSG_SET_PHASE_SHIFT, 30);
data.WriteGuidMask<2, 3, 1, 6, 4, 5, 0, 7>(guid);
data.WriteGuidBytes<7, 4>(guid);
data << uint32(0); // number of WorldMapArea.dbc entries to control world map shift * 2
data.WriteGuidBytes<1>(guid);
data << uint32(phaseMask ? phaseFlags : 8);
data.WriteGuidBytes<2, 6>(guid);
data << uint32(0); // number of inactive terrain swaps * 2
data << uint32(phaseMask ? 2 : 0); // WRONG: number of Phase.dbc ids * 2
if (phaseMask)
data << uint16(phaseMask);
data.WriteGuidBytes<3, 0>(guid);
data << uint32(mapId ? 2 : 0); // number of terrains swaps * 2
if (mapId)
data << uint16(mapId);
data.WriteGuidBytes<5>(guid);
SendPacket(&data);
}
/*
void WorldSession::SendSetPhaseShift(std::set<uint32> const& phaseIds, std::set<uint32> const& terrainswaps)
{
if (PlayerLoading())
@ -707,6 +752,7 @@ void WorldSession::SendSetPhaseShift(std::set<uint32> const& phaseIds, std::set<
data.WriteGuidBytes<5>(guid);
SendPacket(&data);
}
*/
const char* WorldSession::GetMangosString(int32 entry) const
{
@ -807,7 +853,7 @@ void WorldSession::LoadAccountData(QueryResult* result, uint32 mask)
delete result;
}
void WorldSession::SetAccountData(AccountDataType type, time_t time_, std::string data)
void WorldSession::SetAccountData(AccountDataType type, time_t time_, const std::string& data)
{
if ((1 << type) & GLOBAL_CACHE_MASK)
{
@ -828,7 +874,7 @@ void WorldSession::SetAccountData(AccountDataType type, time_t time_, std::strin
}
else
{
// _player can be NULL and packet received after logout but m_GUID still store correct guid
// _player can be nullptr and packet received after logout but m_GUID still store correct guid
if (!m_GUIDLow)
return;

View file

@ -277,7 +277,7 @@ class WorldSession
void SendGroupInvite(Player* player, bool alreadyInGroup = false);
void SendAreaTriggerMessage(const char* Text, ...) ATTR_PRINTF(2, 3);
void SendTransferAborted(uint32 mapid, uint8 reason, uint8 arg = 0);
void SendSetPhaseShift(std::set<uint32> const& phaseIds, std::set<uint32> const& terrainswaps);
void SendSetPhaseShift(uint32 phaseMask, uint16 mapId = 0);
void SendQueryTimeResponse();
void SendRedirectClient(std::string& ip, uint16 port);
@ -380,7 +380,7 @@ class WorldSession
// Account Data
AccountData* GetAccountData(AccountDataType type) { return &m_accountData[type]; }
void SetAccountData(AccountDataType type, time_t time_, std::string data);
void SetAccountData(AccountDataType type, time_t time_, const std::string& data);
void SendAccountDataTimes(uint32 mask);
void LoadGlobalAccountData();
void LoadAccountData(QueryResult* result, uint32 mask);
@ -778,8 +778,8 @@ class WorldSession
void HandleQuestPushResult(WorldPacket& recvPacket);
bool processChatmessageFurtherAfterSecurityChecks(std::string&, uint32);
void SendPlayerNotFoundNotice(std::string name);
void SendPlayerAmbiguousNotice(std::string name);
void SendPlayerNotFoundNotice(const std::string& name);
void SendPlayerAmbiguousNotice(const std::string& name);
void SendWrongFactionNotice();
void SendChatRestrictedNotice(ChatRestrictionType restriction);
void HandleMessagechatOpcode(WorldPacket& recvPacket);