Commit Graph

149 Commits

Author SHA1 Message Date
Treeston 2f7d2ef3e9 Core/ChatCommands: C++17 cleanup (again) (PR #25323) 2020-08-30 02:50:25 +02:00
Treeston fd05a35341 Revert "[3.3.5] Core/ChatCommands: C++17 cleanup (if constexpr + std::string_view)"
This reverts commit 11c4a60fbe.
2020-08-24 16:38:39 +02:00
Treeston 11c4a60fbe [3.3.5] Core/ChatCommands: C++17 cleanup (if constexpr + std::string_view) 2020-08-24 16:17:56 +02:00
Peter Keresztes Schmidt 4286e7aa02 Core/ChatCommands: Check whether a passed numeric enum value is valid (#25285) 2020-08-20 00:46:52 +02:00
Treeston f04f4e91ff Core/Warden: Add .debug warden force, allowing you to force specific warden checks to be sent 2020-08-19 00:25:44 +02:00
Treeston 5ecbe93f7d [[maybe_unused]] to make CIs happy, 0b13fc1 follow-up 2020-08-17 23:13:41 +02:00
Treeston 0b13fc1926 Scripts/Commands: Revert e18f7aa, re-add .debug asan outofbounds, move bodies to #ifdef 2020-08-17 22:54:39 +02:00
Peter Keresztes Schmidt 76f309b4e8 Scripts/Commands: Convert argument parsing of most debug commands to new system (PR #25260) 2020-08-17 22:45:09 +02:00
Treeston e18f7aaa4d Scripts/Commands: Remove .debug asan outofbounds, because having reachable code that essentially says __builtin_unreachable in the core is making me twitchy. 2020-08-17 22:25:11 +02:00
Peter Keresztes Schmidt 86dc58974a Scripts/Commands: Use enum type arg for HandleDebugAnimCommand (PR #25256)
* Core/Shared: Make Emote enum smart
* Scripts/Commands: Use enum type arg for HandleDebugAnimCommand
2020-08-16 16:26:47 +02:00
Peter Keresztes Schmidt 6c7837f947 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
2020-08-15 15:29:43 +02:00
Giacomo Pozzoni bd5e832a64 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>
2020-08-06 14:58:39 +02:00
Carbenium 1131229ee9 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);
2020-07-26 23:30:32 +02:00
Peter Keresztes Schmidt 202fd41389 Core/Misc: Replace boost::optional with std::optional (#25047)
C++17 is already mandatory, so it's a safe thing to do
2020-07-15 10:22:29 +02:00
Peter Keresztes Schmidt c92950b3e1 Core/DataStores: Update DBC field names to generated ones (#24999) 2020-07-12 15:36:55 +02:00
jackpoz cd37a17103 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
2020-06-14 15:41:01 +02:00
Aokromes ed93932537 New year
Say bye bye to every year changing dates
2020-01-02 06:25:50 +01:00
Treeston a5e73e41c0 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
2019-08-04 12:22:57 +02:00
Treeston 0e7c66cb4c 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. 2019-07-21 01:50:52 +02:00
Treeston 293ba08d21 Scripts/Commands: Add .debug questreset to force daily/weekly/monthly quest reset. 2019-07-16 15:04:14 +02:00
jackpoz 7421ccaf7e 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
2019-07-13 18:15:39 +02:00
ForesterDev e71773140c Scripts/Commands: update .wp commands to use orientation field from DB (PR #23566)
Closes #23330
2019-07-08 14:16:10 +02:00
Treeston dbe3bbefe7 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. 2019-06-23 00:32:13 +02:00
jackpoz 71d15ea25b 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)
2019-04-27 20:11:48 +02:00
Treeston fcfcb0eb6f Happy New Year, folks. It's 2019! 2019-01-01 15:45:25 +01:00
Treeston 97ade1321b Scripts/Commands: Add .debug dummy. It does nothing, which means you can make it do anything. 2018-09-17 11:18:06 +02:00
Treeston 042f5515e4 Core/AI: Clean up charm AI handling, we now have two unique_ptr instead of a crapton of booleans 2018-08-23 16:34:42 +02:00
Treeston 1d27f83bda Core/Threat: My dictionary informs me that "fixtate" is not, in fact, a word. Corrected to "fixate".
fd33b1c follow-up
2018-05-04 21:57:18 +02:00
Treeston fd33b1cd02 Core/Threat: Re-add fixtate system. I am being told Netherspite needs it. 2018-05-04 14:49:08 +02:00
Treeston 4cb13af4fa 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.
2018-02-05 01:33:41 +01:00
Treeston 8f52664a37 nopch fix 2018-02-04 15:10:31 +01:00
Treeston 51e28ae76a DB/SpawnGroup: Instance spawn group data for Tempest Keep: The Eye and Hellfire Citadel: Ramparts.
(also some minor adjustments to command output for convenience)
2018-01-25 13:45:11 +01:00
Treeston 6c3c200cc5 Misc: assert -> ASSERT 2018-01-25 12:39:19 +01:00
Treeston 6ce078d8e8 Scripts/Commands: new command '.debug instancespawn' 2018-01-24 22:52:42 +01:00
ariel- f50a333418 Core/Misc: kill whitespace 2018-01-12 00:07:29 -03:00
Treeston 45168f9612 nopch fix 2018-01-09 22:04:35 +01:00
Treeston d283f96f70 missing return 2018-01-09 18:23:50 +01:00
Treeston f45c211987 Scripts/Commands: New command: .debug threatinfo 2018-01-09 18:09:24 +01:00
Treeston e0b609a178 Core/Map: Fix a crash that could happen if a player moved very far away from a creature they were in combat with. Closes #21177. 2018-01-04 15:19:37 +01:00
Treeston 9f9507e6a1 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
2018-01-04 04:46:41 +01:00
Treeston 532ab1c7f8 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.
2018-01-03 20:04:19 +01:00
tkrokli f6b6f57a6d Update copyright note for 2018
Best wishes for the new year.
2018-01-01 01:55:29 +01:00
r00ty-tc 59db2eeea0 Dynamic Creature/Go spawning:
- True blizzlike creature spawn/respawn behavior - new creature = new object
 - Toggleable spawn groups (with C++/SAI/command options to use them)
 - Custom feature: dynamic spawn rate scaling. Accelerates respawn rate based on players in the zone.
 - Backward compatibility mode (set via group and for summons)
   to support creatures/gos that currently don't work well with this
   (this should be removed once the exceptions are fixed)

Fixes and closes #2858
Tags #8661 as fixable.
Fixes and closes #13787
Fixes #15222.
2017-07-31 21:21:04 +02:00
Treeston e2a1ccd118 [3.3.5] Combat/Threat rewrite - prep & refactor (#19966)
* Combat/Threat rewrite (PR #19930) prep work. Mostly refactors, and a compatibility layer on ThreatManager/HostileReference that allows scripts to be changed already.
2017-07-01 20:18:02 +02:00
treeston e35092c6a1 Combat/threat rewrite prep - merge RBAC/DB changes. 2017-06-28 17:27:34 +02:00
ariel- 85a7d5ce9a Core: ported headers cleanup from master branch 2017-06-19 23:20:06 -03:00
Shauren d6201e5dbb Core/Grids: Ported cmangos/mangos-wotlk@ea99457e50
(cherry picked from commit 9299e9bde0)
2017-06-19 13:16:13 -03:00
treeston 41eddd59aa Correct some missing auth DB changes from b59ca1c. 2017-06-17 01:24:53 +02:00
treeston b59ca1cc81 Rename .debug uws to .debug worldstate (clarity change). 2017-06-15 16:56:15 +02:00
treeston d57307f63d So, I came in trying to fix gameobject LoS. So I restructured some stuff.
Then it turned out that gameobject LoS is already fixed. So all this does, really, is restructure some stuff.
And remove the hack from Sapphiron because I could.
2017-06-10 15:08:35 +02:00