Commit Graph

247 Commits

Author SHA1 Message Date
Shauren e487d78ba7 Core/WorldStates: Move custom worldstates to separate table and move saving worldstate values to WorldStateMgr 2022-07-14 22:32:21 +02:00
Shauren 630b60eb0d Core/GameObjects: Transport (type 11) improvements
* Fully synchronize serverside animation progress with client
* Implemented updating passenger positions on elevators
* Removed visibility hack for elevators that always forced CreateObject packet to be sent to client
2022-05-25 22:14:32 +02:00
Giacomo Pozzoni a66b968f91 Core/Misc: Fix static analysis issues (#25924)
* Core/Misc: Fix static analysis issues

* Fix infinite loop in ".debug send opcode"
Fix using uninitialized memory in ".debug send opcode"

(cherry picked from commit 661f554b9e)
2022-03-06 01:35:01 +01:00
jackpoz 4e3d23188e Scripts/Commands: Improve ".debug objectcount"
Include the number of SetActive objects in ".debug objectcount" command

(cherry picked from commit d0231c5a8f)
2022-03-06 01:23:14 +01:00
jackpoz e7fc68d74b Core/Commands: Enable .debug loadcells on console and allow to load a specific tile
Specify the tile as XY. Note that this is not Grid XY

(cherry picked from commit 6f6cec89e5)
2022-02-28 12:18:19 +01:00
Treeston 3fd2eb126c [3.3.5] ChatCommands, the other half: chat command resolution refactor (PR #25463)
(cherry picked from commit 1eca51b417)
2022-02-27 20:08:41 +01:00
Shauren ad4f4bfab7 Core/Misc: Minor game include cleanup 2022-02-13 00:49:10 +01:00
Shauren d057e057d3 Core/Misc: Optimize ChatCommand includes (include only where neccessary) 2022-02-11 21:57:45 +01:00
Shauren cbcd149ce5 Core/Misc: Explicitly include required headers instead of relying on them to be included by other headers 2022-02-11 14:33:35 +01:00
Seyden 79c6054369 Core/Objects: Use player as summoner for personal clones (#27716)
* This allows clones to properly inherit phases
2022-02-08 00:03:02 +01:00
Treeston 013c9b2cb7 Core/ChatCommands: make ExactSequence more readable
(cherry picked from commit feaaa595ca)
2022-02-05 21:29:53 +01:00
Peter Keresztes Schmidt 26f3c25dae Scripts/Commands: Convert remaining debug commands (PR #25429)
(cherry picked from commit 062c55f1ab)
2022-02-05 20:50:33 +01:00
Treeston 45e9e94311 Core/ChatCommands: C++17 cleanup (again) (PR #25323)
(cherry picked from commit 2f7d2ef3e9)
2022-02-04 21:21:17 +01:00
Peter Keresztes Schmidt 3c82863c52 Core/ChatCommands: Check whether a passed numeric enum value is valid (#25285)
(cherry picked from commit 4286e7aa02)
2022-02-03 00:18:48 +01:00
Treeston eaa3c7e5a0 Core/Warden: Add .debug warden force, allowing you to force specific warden checks to be sent
(cherry picked from commit f04f4e91ff)
2022-02-02 22:47:55 +01:00
Peter Keresztes Schmidt ec26736e30 Scripts/Commands: Convert argument parsing of most debug commands to new system (PR #25260)
(cherry picked from commit 76f309b4e8)
2022-02-02 22:13:50 +01:00
Treeston e0ddc676d6 Scripts/Commands: Move .debug asan command bodies inside #ifdef ASAN
(cherry picked from commit e18f7aaa4d)
(cherry picked from commit 0b13fc1926)
(cherry picked from commit 5ecbe93f7d)
2022-02-02 21:27:52 +01:00
Treeston 673521bc87 Core/ChatCommands: Move Trinity::ChatCommands::Variant from boost::variant to std::variant (for real this time)
(cherry picked from commit ffc3e355fe)
2022-02-02 20:49:42 +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
Peter Keresztes Schmidt ec44c8296d Scripts/Commands: Use enum type arg for HandleDebugAnimCommand (PR #25256)
* Core/Shared: Make Emote enum smart
* Scripts/Commands: Use enum type arg for HandleDebugAnimCommand

(cherry picked from commit 86dc58974a)
2022-01-26 22:16:05 +01:00
Peter Keresztes Schmidt 2e3c612c80 Core/Unit: Make HandleEmoteCommand typesafe (#25249)
* Scripts/ScarletMonastery: Fix wrong emote during Headless Horseman encounter

* Scripts/HoR: Fix wrong emote during escape event

* Core/Unit: Make improve type safety of HandleEmoteCommand

Change argument type to the expected enum type Emote

* Scripts/CoS: Use SetUInt32Value to set UNIT_NPC_EMOTESTATE

UNIT_NPC_EMOTESTATE is no flag field

(cherry picked from commit 6c7837f947)
2022-01-26 21:46:51 +01:00
Giacomo Pozzoni ffd85f9139 Scripts/Comamnds: Improve ".debug objectcount" command (#25208)
* Scripts/Comamnds: Improve ".debug objectcount" command

Include the top 5 most common creatures in the map

* Use C++ features to copy data

* Fix build warnings

* Update src/server/scripts/Commands/cs_debug.cpp

Co-authored-by: Shauren <shauren.trinity@gmail.com>

* Update src/server/scripts/Commands/cs_debug.cpp

Co-authored-by: Shauren <shauren.trinity@gmail.com>

* Update src/server/scripts/Commands/cs_debug.cpp

Co-authored-by: Shauren <shauren.trinity@gmail.com>

* Move CreatureCountWorker out of function and use template for unhandled cases

* Code cleanup

Co-authored-by: Shauren <shauren.trinity@gmail.com>
(cherry picked from commit bd5e832a64)
2022-01-26 16:22:00 +01:00
Carbenium 310f996b1d Core/WorldObject: Partially std::chrono-ify SummonCreature overloads
TempSummon* SummonCreature(uint32 entry, float x, float y, float z, float o = 0, TempSummonType despawnType = TEMPSUMMON_MANUAL_DESPAWN, uint32 despawnTime = 0);
to
TempSummon* SummonCreature(uint32 entry, float x, float y, float z, float o = 0, TempSummonType despawnType = TEMPSUMMON_MANUAL_DESPAWN, Milliseconds despawnTime = 0s);

(cherry picked from commit 1131229ee9)
2022-01-24 11:55:32 +01:00
Shauren 596bf2b772 Core/Misc: Replace boost::optional with std::optional part 2 2022-01-23 20:31:52 +01:00
Peter Keresztes Schmidt 770fbcca0c Core/Misc: Replace boost::optional with std::optional (#25047)
C++17 is already mandatory, so it's a safe thing to do

(cherry picked from commit 202fd41389)
2022-01-23 18:05:59 +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
jackpoz 5886bf7484 Scripts/Commands: Add .debug objectcount <optional map id> chat command
Add .debug objectcount <optional map id> chat command to show the number of Creatures and GameObjects

(cherry picked from commit cd37a17103)
2022-01-06 20:49:28 +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
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
Treeston c13d83796f Core/AI: Finally move the "is creature engaged" flag to be a property of the creature AI, where it honestly always belonged. Fixes #17981 and #23602 for real this time.
(cherry picked from commit 0e7c66cb4c)
2021-12-17 00:23:33 +01:00
Treeston 6f6cf975e4 Scripts/Commands: Add .debug questreset to force daily/weekly/monthly quest reset.
(cherry picked from commit 293ba08d21)
2021-12-16 21:20:38 +01:00
jackpoz e7b94603f2 Core/Commands: Add .debug guidlimits <optional map id> chat command
Add .debug guidlimits <optional map id> chat command to show the highest low guid counter for Creature and GameObject, useful when reaching Respawn.GuidWarnLevel

(cherry picked from commit 7421ccaf7e)
2021-12-16 00:53:58 +01:00
ForesterDev 61cc88731c Scripts/Commands: update .wp commands to use orientation field from DB (PR #23566)
Closes #23330

(cherry picked from commit e71773140c)
2021-12-15 00:17:13 +01:00
Treeston 35e55f1089 Core/Entities: Kick engagement logic upstairs to Unit (from ThreatManager), since all Units with AI need it (not just those with threat list). Fixes #17981.
(cherry picked from commit dbe3bbefe7)
2021-12-12 00:31:15 +01:00
jackpoz c73fd0e6e3 Scripts/Commands: Add .debug asan commands
Add ".debug asan memoryleak" and ".debug asan outofbounds" commands to trigger Address Sanitizer warnings at runtime (or other dynamic analysis tools)

(cherry picked from commit 71d15ea25b)
2021-12-02 00:39:20 +01:00
Treeston 5ed891a0f0 Scripts/Commands: Add .debug dummy. It does nothing, which means you can make it do anything.
(cherry picked from commit 97ade1321b)
2021-11-08 23:18:32 +01:00
Treeston e4e8c1c59c Core/AI: Clean up charm AI handling, we now have two unique_ptr instead of a crapton of booleans
(cherry picked from commit 042f5515e4)
2021-10-22 23:47:51 +02:00
Shauren 3fe9b0a296 Core/Conversations: Replace _participants with generic personal object implementation 2021-10-09 13:30:47 +02:00
Shauren 2d7af28e9f Core/Transports: Store information about continent transports 2021-10-02 19:59:56 +02:00
Treeston 9f06cb63d2 Core/Threat: My dictionary informs me that "fixtate" is not, in fact, a word. Corrected to "fixate".
fd33b1c follow-up

(cherry picked from commit 1d27f83bda)
2021-09-26 16:13:15 +02:00
Treeston 16eb5032ad Core/Threat: Re-add fixtate system. I am being told Netherspite needs it.
(cherry picked from commit fd33b1cd02)
2021-09-26 16:12:33 +02:00
Treeston 809c38994a Core/Threat: Custom ThreatListIterator that transparently iterates over the backing map (instead of using heap iterators) when working with the unsorted threat list. This greatly reduces the range of actions that can cause iterator invalidation.
Also some minor adjustments to .debug threat, which no longer hides certain invalid states from view.

(cherry picked from commit 4cb13af4fa)
2021-06-19 23:33:24 +02:00
Treeston 7db3f7ca96 DB/SpawnGroup: Instance spawn group data for Tempest Keep: The Eye and Hellfire Citadel: Ramparts.
(also some minor adjustments to command output for convenience)

(cherry picked from commit 51e28ae76a)
2021-06-16 23:01:48 +02:00
Treeston 7c0ac5b959 Misc: assert -> ASSERT
(cherry picked from commit 6c3c200cc5)
2021-06-16 22:51:16 +02:00
Treeston 386ec58233 Scripts/Commands: new command '.debug instancespawn'
(cherry picked from commit 6ce078d8e8)
2021-06-16 22:50:04 +02:00
Treeston e090c9a00e Scripts/Commands: New command: .debug threatinfo
(cherry picked from commit f45c211987)
2021-05-16 21:57:35 +02:00
Treeston 5aee452943 Core/Misc: A variety of clean-up changes, mostly following up on 532ab1c to fix legacy bugs exposed by it:
- Triggers can no longer have a threat list (this may expose some ugliness in old legacy scripts)
- Threat entries are forced to OFFLINE if the AI refuses to attack the target
- Clean up passive creature evade behavior to be more consistent
- Fix a months old issue in spawn group management that would cause "Inactive" to incorrectly show in .list respawns for system groups outside of map 0
- Valithria script cleanups, remove old hacks and make it work with the new system. Closes #21174.
- Some strings cleanup

(cherry picked from commit 9f9507e6a1)
2021-05-16 21:56:05 +02:00
Treeston 34c7810fe5 Core: Combat/threat system rewrite (PR #19930)
- PvE combat is now always mutual. UNIT_FLAG_IN_COMBAT is backed by actual references to the units we're in combat with.
- PvP combat is now also tracked, and almost always mutual; spells like Vanish and Feign Death can break this rule. That means we can easily determine a list of players we're fighting.
- By extension, IsInCombatWith now has sensible behavior when invoked on nonplayers.
- Threat and combat systems are no longer the same.
  - They still have an enforced relationship (threat implies combat - clearing combat clears threat)...
  - ...but we can have combat without threat. A creature (with threat list) isn't considered to be engaged until it has an entry on its threat list...
  - ...which means we can now faithfully replicate retail engage behavior. Combat on projectile launch - engagement start on projectile impact. Yay for progress!
- AI method refactor, as already ported in 6113b9d - `JustEngagedWith`, `JustEnteredCombat` and `JustExitedCombat`.
- Vehicle threat is now properly pooled on the main vehicle body (fixes #16542).
- Various edge case bug fixes for threat redirects (Misdirection "cancelling" Vigilance and similar).
- Target re-selection is now significantly faster.
- Fixed a ton of other smaller edge case bugs, probably.

Closes #7951 and #19998.

(cherry picked from commit 532ab1c7f8)
2021-05-16 21:56:01 +02:00
Shauren d94f0d23b3 Core/Commands: Add optional broadcast text id argument to .debug play sound command 2020-12-30 23:01:37 +01:00