Commit Graph

2540 Commits

Author SHA1 Message Date
Shauren
88659dcebf Core/Gossip: Sync naming and db structure with 3.3.5 2022-01-26 23:49:42 +01:00
Giacomo Pozzoni
864d775280 Core/Misc: Fix static analysis issues (#25194)
(cherry picked from commit 07fd84b679)
2022-01-26 14:06:40 +01:00
Shauren
a9b4f9aca0 Core/Mail: Load mails at login instead of on demand when queried by packets (logging in always sends one of the packets that cause mail loading anyway)
(cherry picked from commit 57eaab80d9)
2022-01-24 14:45:54 +01:00
Gildor
8847f37b5b Core/Loot: Prevent loot already looted item (#25084)
(cherry picked from commit 586c00fe2e)
2022-01-24 13:20:49 +01:00
Peter Keresztes Schmidt
44ea32ace4 Build: Enable -Wimplicit-fallthrough on clang (#25056)
* Misc: Use [[fallthrough]] attribute instead of comment to mark intentional fallthroughs

Related: #25006

* Misc: Add some missing breaks (no-ops) to satisfy clang

Related: #25006
Closes #25055

* Build: Enable -Wimplicit-fallthrough on clang

Closes #25006
2022-01-23 22:16:15 +01:00
Treeston
d11c3807b3 Core/Time: Rename GetGameTime{System, Steady}Point methods
The names are a bit unhandy. Rename them (shorter but still meaningful).

GetGameTimeSystemPoint() -> GetSystemTime()
GetGameTimeSteadyPoint() -> Now()

Also add 2 new typedefs:

typedef std::chrono::steady_clock::time_point TimePoint;
typedef std::chrono::system_clock::time_point SystemTimePoint;

Closes #25042

(cherry picked from commit 896b68d5c2)
2022-01-23 21:36:03 +01:00
Shauren
596bf2b772 Core/Misc: Replace boost::optional with std::optional part 2 2022-01-23 20:31:52 +01:00
NoName
fdd06dc1dd Core/Misc: Port refactors 9fe6756cf2
* + For SMSG_DEATH_RELEASE_LOC
G3D::Vector3 -> TaggedPosition<Position::XYZ>
+ removed non 3.3.5 packets

Co-authored-by: Peter Keresztes Schmidt <carbenium@outlook.com>
Co-authored-by: Mogadischu <cgnad@live.de>
Co-authored-by: Shauren <shauren.trinity@gmail.com>
(cherry picked from commit 9fe6756cf2)
2022-01-23 16:07:06 +01:00
Peter Keresztes Schmidt
365ae6ff25 Fix some compiler warnings reported by GCC (#25007)
* Core/AI: Remove unneeded null checks

GetMap() can never return NULL.

Fixes additionally -Wunused-variable warnings
reported by GCC.

* Core/GameObject: Fix a -Wunused-variable warning reported by GCC

* Core/Player: Fix a -Wunused-variable warning reported by GCC

* Scritps/CavernsOfTime: Fix -Wimplicit-fallthrough warnings reported by GCC

* Scritps/CavernsOfTime: Fix a -Wmaybe-uninitialized warning reported by GCC

Warning:

/home/peterke/DEV/TrinityCore/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp: In member function ‘virtual void npc_arthas_stratholme::npc_arthas_stratholmeAI::UpdateAI(uint32)’:
/home/peterke/DEV/TrinityCore/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/npc_arthas.cpp:1119:58: warning: ‘emote’ may be used uninitialized in this function [-Wmaybe-uninitialized]
 1119 |                                 (*it)->HandleEmoteCommand(emote);
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~

* Scritps/PitOfSaron: Fix -Wunused-variable warnings reported by GCC

* Scritps/EyeOfEternity: Fix a -Wclass-memaccess warning reported by GCC

Warning:

/home/peterke/DEV/TrinityCore/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp: In member function ‘virtual void boss_malygos::boss_malygosAI::UpdateAI(uint32)’:
/home/peterke/DEV/TrinityCore/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp:950:81: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘class ObjectGuid’; use assignment or value-initialization instead [-Wclass-memaccess]
  950 |                             memset(_surgeTargetGUID, 0, sizeof(_surgeTargetGUID));
      |

* Scritps/CoilfangReservoir: Fix a -Wclass-memaccess warning reported by GCC

Warning:

/home/peterke/DEV/TrinityCore/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp: In member function ‘void boss_leotheras_the_blind::boss_leotheras_the_blindAI::Initialize()’:
/home/peterke/DEV/TrinityCore/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp:220:55: warning: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘class ObjectGuid’; use assignment or value-initialization instead [-Wclass-memaccess]
  220 |             memset(InnderDemon, 0, sizeof(InnderDemon));
      |                                                       ^

* Scritps/Naxx: Fix a -Wimplicit-fallthrough warning reported by GCC

For discussion see https://github.com/TrinityCore/TrinityCore/pull/25007

(cherry picked from commit 10be49bdfe)
2022-01-23 00:16:31 +01:00
Peter Keresztes Schmidt
1e1679a1f7 Core/DataStores: Port refactors from Update DBC field names to generated ones (#24999)
(cherry picked from commit c92950b3e1)
2022-01-23 00:06:16 +01:00
Max Drosdo.www
b7353fb927 Core/Player: Introduce separate level caps for each expansion (#24989)
(cherry picked from commit 3529442668)
2022-01-22 16:00:49 +01:00
Shauren
96137fb30f Core/Misc: Future msvc warning fixes 2022-01-21 13:40:48 +01:00
jackpoz
68faf5bc4b Core/Common: Replace ASSERT(false, "...") with ABORT_MSG("...")
(cherry picked from commit 54c701cf0d)
2022-01-19 22:17:42 +01:00
Rothend
abc490f677 Core/Player: do not consider FLAG_EXTRA_NO_XP_AT_KILL or pet status when deciding if a creature counts as a "gives experience or honor" target. (#24884)
Closes #23860

(cherry picked from commit e3bac11837)
2022-01-18 00:18:15 +01:00
ModoX
d342be8c79 Core/Spells: Using hearthstone will teleport caster to map again
Closes #27623
2022-01-17 17:02:44 +01:00
Aqua Deus
a3b2e4d987 Core/Items: Reagent bank (#27592) 2022-01-16 22:31:24 +01:00
ModoX
16a80656c5 Core/Conditions: Update phases when quest objective is updated (#27583) 2022-01-14 19:53:32 +01:00
Shauren
1989c68fb6 Core/Items: Change missed enchantment flag checks to use enum instead of raw number 2022-01-13 16:43:44 +01:00
ModoX
4772b55368 Core/Player: Fixed home position for fresh created characters
Closes #27588
2022-01-11 03:47:43 +01:00
Shauren
241193cd02 Core/Items: Implemented many new enchantment flags 2022-01-09 16:31:12 +01:00
Carbenium
49523a74a4 Battlefields: Move BF scripts out of game
This commit introduces the usual script interface
for battlefields.

(cherry picked from commit f7faf20254)
2022-01-07 00:20:57 +01:00
Carbenium
ca62d93481 Core/Misc: Move WorldState enum to SharedDefines
Move WG battlefield world states to the global enum

(cherry picked from commit 22c12e7123)
2022-01-06 23:50:34 +01:00
Carbenium
60b48ad046 Core/Misc: Create new enum for AreaIds
Move Wintergrasp BF related values there

(cherry picked from commit 6a8c12587e)
2022-01-06 23:42:15 +01:00
Ovahlord
ab46d25d0c Core/Players: do not update position data on character creation
Retail does not have a zone id for newly created character until their first login so we do the same as well. This will drastically improve performance on character creations as we no longer unnecessarily load grids and map data.

(cherry picked from commit c50bb00ac7)
2022-01-06 22:32:41 +01:00
NoName
a4b3e694e8 Entities/Player: Restore old checks for UpdatePvPFlag (#24372)
Partly revert 671052575a
+ implemented timer reset to 300s after relog never worked, therefore removing that part;
+ reverting other parts with 300s timer changes, as not needed;

(cherry picked from commit 2efaf1dda8)
2022-01-06 19:05:04 +01:00
Shauren
b1a1e552d2 Core/Quests: Fixed gameobject sparkle state for lootable quest items by moving ItemAddedQuestCheck/ItemRemovedQuestCheck after item is added/removed
This is neccessary so that GameObject::BuildValuesUpdate from BuildValuesUpdateBlockForPlayer picks up correct inventory state and sets GO_DYNFLAG_LO_ACTIVATE

(cherry picked from commit 449bd9058b)
2022-01-06 00:30:02 +01:00
Shauren
d30e4a20e5 Core/Misc: Define and use ChrRacesFlag and CreatureModelDataFlags (ref 772f506a3b) 2022-01-02 19:14:32 +01:00
ForesterDev
9d38eeec7e Core/Player: add helper methods for PLAYER_FLAGS_DEVELOPER (#24511)
* Core/Player: add helper methods for PLAYER_FLAGS_DEVELOPER. Update .dev command to new command model

* Rename _player -> player

(cherry picked from commit 8128bb97db)
2022-01-01 23:18:04 +01:00
HelloKitty
a20526077d Core/DataStores: Use ResSicknessSpellID from ChrRaces instead of hardcoding it (#24504)
(cherry picked from commit f1ad04b31b)
2022-01-01 21:45:52 +01:00
Alan Deutscher
68e1dc8adb Core/Players: Improve trade exchange calculations (#24435)
* Add some comments to Player::CanStoreItems to help me wrap my head around how the method works.

* Experimental fix for incoming trade-stack problem.

* Only add to stacks that aren't already full.

* Use remaining_count instead of static 1.

* Remove debug logging from exploration.

* More uses of remaining_count for consistency.

* Correct space count check

* Correct overflow problem.

* Remove redundant check, handled in existing for statement.

* Store Item pointers in order to be able to merge in multiple incoming stacks.

* Build fix - was continually working locally, but failing in CI.

* Break build in order to keep PR focused on Player.cpp changes.

* Adjust phrasing of how arrays are initialized.

* Fix phrasing of comments to avoid sounding like a ToDo item

* In the spirit of b649273d5f, rephrase an old comment to be a statement rather than a question.

(cherry picked from commit e11a13c755)
2022-01-01 16:29:06 +01:00
ForesterDev
e73735fa61 Core/PacketIO: updated SMSG_DURABILITY_DAMAGE_DEATH (#24442)
- use RATE_DURABILITY_LOSS_ON_DEATH for death from falling
- add note, that RATE_DURABILITY_LOSS_ON_DEATH doesn't change log message

(cherry picked from commit a1831e0c1e)

Co-authored-by: MitchesD <majklprofik@seznam.cz>
(cherry picked from commit e1a8ebc064)
2022-01-01 15:25:11 +01:00
Ovah
d18d2b84f2 Core/Objects: cache current liquid status of objects when updating position data and use it to replace unnecessary vmap lookups (#24399)
* dropped unneeded IsUnderwater override for players since the default position data update considers collision height already so we don't have to rely on that tempfix anymore. This actually fixes breathing bars showing up depending on your characters size (gnomes get their breathing bar earlier, taurens later etc)

(cherry picked from commit bea850fb73)
2022-01-01 12:42:17 +01:00
Giacomo Pozzoni
a9e325f6b7 Core/Logs: Log full guid instead of just low guid, part 2
(cherry picked from commit 3def52c1c4)
2022-01-01 00:51:54 +01:00
Giacomo Pozzoni
6ec933f281 Core/Logs: Log full guid instead of just low guid
(cherry picked from commit 468ecb7252)
2021-12-31 21:56:40 +01:00
Shauren
3c12a189e4 Core/Items: Fixed heirloom items counting for item set bonuses past their max scaling level and implemented new heirloom upgrade levels 2021-12-28 20:13:12 +01:00
Shauren
9c90a18ee5 Core/Players: Fixed pvp talents being reset on login if player is below level 110 (pre level squish code) 2021-12-28 14:06:33 +01:00
Matan Shukry
8fabe5a3aa Core/Phasing: Implemented db spawns in personal phases (#26345)
Co-authored-by: Shauren <shauren.trinity@gmail.com>
2021-12-28 13:24:10 +01:00
Matan Shukry
b821a72973 Core/Player: Initial War Mode support (#25926)
* Enable PvP talents
* War Mode buff aura
* Forced PvP flagging

Co-authored-by: Shauren <shauren.trinity@gmail.com>
2021-12-26 19:14:46 +01:00
Shauren
2a4c7c1e27 Core/Spells: Corrected SPELL_ATTR8_MASTERY_AFFECTS_POINTS attribute implementation, it is no longer used to restrict if the spell should be cast or not (SpecializationSpells.db2 takes care of that)
Closes #19640
Closes #27458
2021-12-25 10:30:50 +01:00
ForesterDev
08c61bb9d1 Core/PacketIO: update some combat packets to new system (#24236)
(cherry picked from commit af6d207add)
2021-12-22 23:36:18 +01:00
Giacomo Pozzoni
7779a33142 Core/Combat: Improve sanctuary combat stop (#24266)
Stop combat when a Player moves to a Sanctuary area only if there is any PvP combat (it would be nice to keep PvE combat but that's still an issue)

(cherry picked from commit c7974bdf90)
2021-12-22 22:36:20 +01:00
Shauren
2c78f4dd1f Core/Misc: Resolve c++17 TODOs left in code as comments 2021-12-21 18:29:52 +01:00
ForesterDev
9124fd1f1f Core/Items: implement some helper methods for easier readability (#24113)
(cherry picked from commit 573ddf4d22)
2021-12-21 00:46:13 +01:00
Michael
72e61625bc additional output for additem command (#24006)
* additional output for additem command

when removing items with additem:

if the user provides an amount too large of a negative amount, the command will now output the amount of items that could not be destroyed.

* renamed sql file to hopefully avoid conflicts

* added clarification to failure string

* changed unneeded else if condition to else

* code style; braces

* Update and rename 9999_99_99_99_world.sql to 2019_12_28_01_world.sql

(cherry picked from commit 6b19f4a0ab)
2021-12-19 15:46:20 +01:00
ForesterDev
915d13020a Core/Achievements: fixed bug with counting honorless units for achievement type ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL (#23844)
* Core/Achievements: fixed bug with counting honorless units for achievement type ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL

* Remove codestyle changes

* Remove codestyle changes

(cherry picked from commit f4be544629)
2021-12-18 22:47:37 +01:00
AlιAѕѕaѕѕιN
e1598fa1d6 [3.3.5] Fix spell_area not checking for zoneID for quests (#23719)
* Fix spell_area not checking for zoneID for quests

* Addendum to bdffe0a4a641414fe26c9b75b00f8e70ff0f1cb8

* Fix spell_area handle same spell with the same quests

Also fix not checking for quest_end at all.

* Addendum to 2d6b0545e3762b3a25005726d4093cf4a7945a8d

* Better commenting for 7a50189de3104f000d8b31fa6c415bb69cf1a3e7

* Addendum to 2d6b0545e3762b3a25005726d4093cf4a7945a8d

(cherry picked from commit 92d83c3c2e)
2021-12-18 21:31:17 +01:00
Treeston
f434241305 Core/Channels: Fix a bug that would cause channel settings to disappear in certain settings. Fix a bug that would cause channels to not be saved on .server shutdown without delay. Closes #23699.
(cherry picked from commit 464b0b059b)
2021-12-18 19:16:47 +01:00
Treeston
51fbda4223 Core/Pooling: Quest pooling rewrite: (PR#23627)
- Split quest pooling from PoolMgr (into QuestPoolMgr)
- Proper saving/restoring on server restart
- No more hacking into sObjectMgr to insert/remove available quests

(cherry picked from commit a5e73e41c0)
2021-12-18 15:28:45 +01:00
Giacomo Pozzoni
92fc09b1b5 3.3.5 Don't allow to summon dead hunter pets (#23271)
* Core/Player: Add support to SMSG_PET_TAME_FAILURE

* Core/Pet: Don't summon dead pets when using "Call pet"

(cherry picked from commit a0f8ce14e9)
2021-12-17 23:56:51 +01:00
Shauren
e8b3dda4a0 Core/BattlePets: Wrap battle pet related code in a separate namespace 2021-12-17 14:23:43 +01:00