Commit Graph

2555 Commits

Author SHA1 Message Date
robinsch
f7c65960a5 Core/Player: Fixed incorrect prepared statement parameter types in Player::_SaveBGData
Merges #25379

(cherry picked from commit 6e8284a8da)
2022-02-04 23:46:43 +01:00
Treeston
9f97fdd31a Core/Common: Tokenizer -> Trinity::Tokenize (PR: #25327)
(cherry picked from commit 534a2388b7)
2022-02-04 00:27:14 +01:00
Peter Keresztes Schmidt
1a6564f42f Scripts/Commands: Convert argument parsing of some misc commands to new system (#25308)
* Core/Shared: Make WeatherType smart

* Scripts/Commands: Convert argument parsing of some misc commands to new system

(cherry picked from commit 5bab0e43c6)
2022-02-04 00:27:12 +01:00
Shauren
950db60435 Core/Pets: Updated pet summoning for latest client version (5 Call Pet spells and stable size 200) 2022-02-02 00:08:37 +01:00
Shauren
fd9eb28322 Core/Pets: Adjust pet slot saving logic after constant changes in 22e823b5f9 2022-01-31 23:30:00 +01:00
Shauren
8349444749 Core/Pets: Save last summoned pet number in characters table 2022-01-31 21:34:48 +01:00
Shauren
e458144442 Core/Pets: Removed storing stable slot count in db 2022-01-31 14:34:05 +01:00
Giacomo Pozzoni
40d882b754 Core/Pet: Attempt to fix assertions triggered when summoning pets (#26501)
* Core/Pet: Attempt to fix an assertion triggered when re-summoning the current pet

* Core/Pet: Attempt to fix an assertion triggered when stabling a pet while in a vehicle

* Core/Pet: Attempt to fix an assertion triggered when stabling a pet and casting spell 6962

* Core/Pet: Attempt to fix an assertion triggered when casting spell 6962 while being dead

* Core/Pet: Attempt to fix an assertion triggered when summoning a pet while on vehicle 34775

* Handle cases in a generic way

* Code cleanup

* Core/Pet: Attempt to fix an assertion triggered when summoning a pet while on vehicle 34775 with a new character

(cherry picked from commit e203ecda88)
2022-01-31 00:26:54 +01:00
Shauren
33e747bc8f Core/Pets: Add missing nullptr check
(cherry picked from commit 0152878de5)
2022-01-31 00:25:17 +01:00
Shauren
688d1d9533 Core/Pets: Fixed crash happening when current pet is forcibly removed while being temporarily unsummoned (like on a mount)
(cherry picked from commit d163735abd)
2022-01-31 00:24:51 +01:00
Shauren
ca92686b44 Core/Pets: Pet management refactoring (#25191)
* Core/Pets: Pet management refactoring

* Preload basic pet data on character login with async query
* Load additional pet data (declined names/auras/spells/cooldowns) using async query after we are sure pet loading will succeed
* Remove all select queries related to pet stable/unstable
* Remove all silent pet deletions except explicit UI-triggered abandons
* Fixed displaying stable master content when current pet is not summoned
* Allow to stable/swap unsummoned current pet

Closes #3610
Closes #21266

(cherry picked from commit 5c1fc5e387)
2022-01-31 00:17:21 +01:00
Shauren
7044204130 Core/Objects: Cleanup SmoothPhasing code - move to separate files and better integrate it with visibility system 2022-01-29 20:35:25 +01:00
Seyden
a5c713eaf2 Core/Objects: Implement SmoothPhasing part of CreateObject and replacing visible objects 2022-01-29 20:35:25 +01:00
Shauren
5a82a0381d Core/Objects: Properly choose between "Destroyed" or "OutOfRange" during visibility update 2022-01-29 16:01:57 +01:00
Shauren
4fbf6dacff Core/Spells: Exclude empty mods from affecting spells and ignore PointsIndexX mods for spells that don't have any effect at that index 2022-01-28 11:19:48 +01:00
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