Commit Graph
100 Commits
Author SHA1 Message Date
Ovahlord b0b81dd31b Misc: added cata_classic to the issue template branch selection 2024-08-04 14:24:04 +02:00
Ovahlord bebd02925d Core/Logging: fixed nopch build for msvc compilers (#30126) 2024-07-31 16:37:48 +02:00
Ovahlord a3db80ce58 Core/PacketIO: increased allowed storage size of ByteBuffer from ~10mb to ~100mb and fixed a logic mistake that was allowing first-time append calls to bypass that size limit (#30037) 2024-06-15 18:12:18 +02:00
Ovahlord 728e7c7fcf Core/Cryptography: dropped support for OpenSSL 1.1
OpenSSL 1.1 has been deprecated for quite some time now so it is time to put it to rest. Please upgrade to OpenSSL 3.x
2024-05-12 15:48:39 +02:00
Ovahlord 24bda9c73d Core/Combat: reset the ThreatManager update interval upon engaging the creature and move ThreatClear packet sending into the update cycle to mimic retail behavior (#29949) 2024-05-02 22:50:20 +02:00
Ovahlord 11f32a2427 Core/Creatures: moved combat pulse into heartbeat handling and implemented CREATURE_STATIC_FLAG_2_FORCE_PARTY_MEMBERS_INTO_COMBAT (#29946) 2024-04-28 16:09:43 +02:00
Ovahlord 55ce5b150f Core/Auras: Implemented OnHeartbeat AuraScript hook and refactored an aurascript to use it as example (#29945)
* Updated Amalgam's Seventh Spine dummy aura script to use the new AuraScript hook
2024-04-27 19:04:10 +02:00
Ovahlord 253f306a41 Core/Units: moved Vignette updating into Heartbeat handling 2024-04-27 14:51:56 +02:00
Ovahlord d60b4e5b19 Core/Auras: implemented PROC_FLAG_HEARTBEAT and moved food/drink emote mechanic into heartbeat handling (#29943)
* also fixed an false assumption that only one of the food emotes can be played. They can in fact be both done at the same time.
2024-04-27 13:43:50 +02:00
Ovahlord b5ce4a66df Core/Creature: implement overriding creature static flags based on spawnId and difficultyId (#29940) 2024-04-26 22:32:17 +02:00
Ovahlord 5a169f6eae Core/Player: moved indoors/outdoors aura interrupting mechanic into heartbeat and movement handling 2024-04-26 14:21:09 +02:00
Ovahlord c2fedbb6cc Core/Units: moved cyclic spline synchronization mechanic heartbeat handling 2024-04-26 14:21:09 +02:00
Ovahlord 80d72a2c91 Core/Player: moved the periodic group update mechanic into heartbeat handling 2024-04-26 14:21:09 +02:00
OvahlordandMykhailo Redko bf9cd88ceb Core/Objects: implement internal heartbeat timer for WorldObjects (#29941)
This is the first step of porting the functionality of #25822 by cutting each change into a nicely self-contained commit

---------

Co-authored-by: Mykhailo Redko <[email protected]>
2024-04-26 01:14:48 +02:00
Ovahlord 47c14bedef Core/Items: allow all soulbound common and poor items to unlock their appearance to reflect patch 10.0.5 changes 2024-03-01 01:39:41 +01:00
Ovahlord 70121171be DB/Creatures: added some movement static flags and wander distance data for some Kelp'thar Forest creatures 2024-03-01 00:17:00 +01:00
Ovahlord 4e8e3d8fb8 Core/Creature: corrected swimming toggle behavior for amphibious creatures 2024-03-01 00:15:14 +01:00
Ovahlord 465c1d682a DB: fixed query added in b04ab91edd 2024-02-29 20:41:45 +01:00
Ovahlord b04ab91edd DB/Creatures: fixed assignment of CREATURE_STATIC_FLAG_SESSILE, CREATURE_STATIC_FLAG_CAN_SWIM and CREATURE_STATIC_FLAG_3_CANNOT_SWIM static flags 2024-02-29 20:38:58 +01:00
Ovahlord fb3e6737da Core/Movement: require a minimum wander_distance value of 0.1 and check the path length of generated random movement (#29766)
this serves as a means to reduce the console spam caused by failed spline validation
2024-02-29 15:52:25 +01:00
Ovahlord c541eda54d Core/Creatures: implemented most movement related static flags and migrated existing movement data into static flags (#29541)
* implemented CREATURE_STATIC_FLAG_AQUATIC - creatures cannot leave liquids
* implemented CREATURE_STATIC_FLAG_AMPHIBIOUS - creatures can enter and leave liquids but remain on the ocean floor when swimming is not enabled until engaged
* implemented CREATURE_STATIC_FLAG_FLOATING - creatures have their gravity on spawn / reset disabled
* implemented CREATURE_STATIC_FLAG_SESSILE - creatures are rooted in place
* implemented CREATURE_STATIC_FLAG_CAN_SWIM - creature can swim in liquids
* implemented CREATURE_STATIC_FLAG_3_CANNOT_SWIM - Amphibious creatures cannot toggle on swimming
* implemented CREATURE_STATIC_FLAG_3_CANNOT_TURN - Creatures cannot turn at all
* implemented CREATURE_STATIC_FLAG_4_PREVENT_SWIM - Amphibious creatures won't toggle on swimming until their victim starts leaving the ocean floor
* partially implemented CREATURE_STATIC_FLAG_3_CANNOT_PENETRATE_WATER
* deprecated CREATURE_FLAG_EXTRA_NO_MOVE_FLAGS_UPDATE as this flag was a hackfix to a wrong implementation that is now gone
2024-02-29 14:43:37 +01:00
Ovahlord 6c15fb00e5 Core/Units: Update facing spline movement immediately after launching (#29494) 2024-02-25 15:12:46 +01:00
Ovahlord 7199ccf156 CMake: added MySQL 8.3 to FindMySQL cmake macro 2024-02-07 09:16:12 +01:00
Ovahlord 924efc89b2 Core/Players: fixed a possible crash in SendInitialPacketsBeforeAddToMap when uninstanced maps don't have a valid MapDifficulty entry 2024-01-29 16:44:23 +01:00
Ovahlord c4a03b9931 Scripts/Baradin Hold: cleaned up some leftovers from Argaloth's rework and applied some missing coding standards 2024-01-23 10:33:00 +01:00
Ovahlord ccc083593a Core/Loot: implemented a custom server config setting to enable or disable AE loot (#29602)
This config primarily serves as a means to reduce potential code differences between the master and classic branches as now we no longer have to meddle with code
2024-01-23 00:55:57 +01:00
Ovahlord b3ccf7b710 Scripts/Baradin Hold: rewrite Argaloth encounter (#29604)
* handle all missing mechanics and visuals
* modernized instance script
2024-01-22 12:33:11 +01:00
Ovahlord b81fa2e8a3 Core/Object: use the final keyword for several (World)Object classes that should not get derived from (#29585) 2024-01-22 08:57:06 +01:00
Ovahlord ba627c1d1c Core/Creatures: fixed a logic mistake in personal skinning loot that was causing creatures without loot to despawn instantly (#29586) 2024-01-16 23:49:03 +01:00
Ovahlord 2f6ed2c203 Core/Units: moved health and power ordering predicates from Unit header into CommonPredicates (#29584) 2024-01-16 20:18:25 +01:00
Ovahlord ea093fef27 Core/Units: moved CharmInfo class and its definitions into a own file (#29583) 2024-01-16 18:43:32 +01:00
Ovahlord 97af0c31af Core/Maps: implement LIQUID_MAP_OCEAN_FLOOR to identify units that are on the bottom of a liquid (#29545) 2024-01-02 19:46:44 +01:00
Ovahlord bfb9fd8a2c Core/Maps: restored a hack in gridmap liquid status code to solve precision issues (#29544)
Closes #29543
Closes #22020
2024-01-02 19:40:34 +01:00
Ovahlord 4a61675191 Scripts/Halls of Origination: modernized creature accessing via data type 2023-12-25 18:06:44 +01:00
Ovahlord 01b1216058 Scripts/Halls of Origination: implemented Lift of the Maker's console to allow players to control the elevator to reach the 2nd floor after defeating Anraphet or Earthrager Ptah 2023-12-25 17:52:05 +01:00
Ovahlord 5c6040feba Scripts/Halls of Origination: modernized scripting models to current standard
* dropped a deprecated hack spellscript from Anraphet
2023-12-25 17:16:03 +01:00
Ovahlord 75300c90b6 Scripts/Halls of Origination: updated boss state and npc enums to current standard 2023-12-25 17:02:56 +01:00
Ovahlord db9a460015 DB/RBAC: restored the RBAC permission entries for the .instance set/getbossstate commands 2023-12-24 06:30:33 +01:00
Ovahlord 0db162790c Core/Common: fixed nopch build for msvc compilers (#29516) 2023-12-24 06:01:47 +01:00
Ovahlord 8187625b27 DB: corrected file name of the sql file that has been added in 32df6ee550 2023-12-24 05:44:13 +01:00
Ovahlord 44921878f1 Scripts/Vortex Pinnacle: implemented Slipstreams and shortcuts 2023-12-24 05:41:44 +01:00
Ovahlord b6a35c7920 CMake: added MySQL 8.2 to FindMySQL cmake macro 2023-12-22 16:40:43 +01:00
Ovahlord 32df6ee550 Scripts/Vortex Pinnacle: added base instance script and definitions 2023-12-22 14:53:52 +01:00
Ovahlord 6e7a4e733a Scripts/Shadowfang Keep: added definitions for the doors and added a comment regarding their usage 2023-12-22 14:36:55 +01:00
Ovahlord 06917b6c43 Scripts/Shadowfang Keep: dropped deprecated scripts and updated instance script and definitions to Cataclysm 2023-12-22 14:29:48 +01:00
Ovahlord 50a2166fb1 Scripts/Deadmines: dropped deprecated scripts and updated instance script and definitions to Cataclysm 2023-12-22 12:51:05 +01:00
Ovahlord cb5eb983b0 Scripts/Grim Batol: added base instance script and definitions 2023-12-22 12:22:19 +01:00
Ovahlord 12f6ac21d9 Scripts/Well of Eternity: fixed a typo in the instance script class name 2023-12-22 12:09:42 +01:00
Ovahlord e8a9223566 Scripts/Throne of the Tides: added base instance script and definitions 2023-12-22 12:08:25 +01:00
Ovahlord ddcaaa61a5 Scripts/Bastion of Twilight: corrected dungeon encounter data for Sinestra 2023-12-22 11:42:55 +01:00
Ovahlord 9ece48a55c Scripts/Hour of Twilight: assign the correct scriptname to the instance 2023-12-22 11:35:28 +01:00
Ovahlord c336a6b53a Scripts/Misc: added base instance scripts and definitions for all 4.3 Cataclysm dungeons 2023-12-22 11:28:05 +01:00
Ovahlord 575a37a703 Scripts/Dragon Soul: added base instance script and definitions 2023-12-22 10:18:17 +01:00
Ovahlord 16b7c3cca9 Scripts/Misc: added instance scripts and base definitions for all Cataclysm 4.0 raids 2023-12-22 08:40:11 +01:00
Ovahlord 53ac8d3ef5 Core/Units: Allow self inflicted damage to bypass CREATURE_STATIC_FLAG_UNKILLABLE (#29502) 2023-12-19 18:21:45 +01:00
Ovahlord 27019a62a4 Core/Spells: Implement spell queue (#29409) 2023-11-25 00:00:10 +01:00
Ovahlord 30759beac7 Scripts/LCT: implement Lockmaw encounter 2023-11-07 16:17:55 +01:00
Ovahlord b606af8c4a Scripts/LCT: use the correct difficulty check to enable General Husam's heroic mechanics for Timewalking difficulty as well 2023-11-07 16:17:55 +01:00
Ovahlord a6c9e44c55 Scripts/LCT: gave General Husam's enums unique names to reduce linking time 2023-11-07 16:17:55 +01:00
Ovahlord 394940e0c5 Scripts/LCT: fixed spell validation for General Husam's Bad Intentions script effect 2023-11-06 16:53:45 +01:00
Ovahlord a457303f97 DB/SpawnGroup: The Lost City of the Tol'vir 2023-11-06 11:56:26 +01:00
Ovahlord 24dab9326d Scripts/LCT: implement General Husam encounter (#29414) 2023-11-06 11:51:37 +01:00
Ovahlord ecd54c07d8 Scripts/Antorus: prevent the Garothi Worldbreaker from falsely initiating an Apocalypse Drive phase when dealing damage would kill him instantly
* replaced some magic numbers in setting encounter frame indexes
* added a missing casting check to stay in line with current scripting standards
2023-11-04 15:05:47 +01:00
Ovahlord 38440996ee Core/Common: Use the [[unlikely]] keyword in all assert, warning and error macros to allow further compiler optimization (#29124) 2023-07-16 16:11:41 +02:00
Ovahlord ab33f35bb5 Core/Unit: modernize some pointers and arrays in unit class (#29104) 2023-07-15 21:47:31 +02:00
Ovahlord 252da139ad Scripts/Halls of Origination: fixed a deprecation warning 2023-07-11 20:11:44 +02:00
Ovahlord 45333fcc8f Core/Spells: fixed an underflow in SPELL_EFFECT_INEBRIATE when using drinks that sober the character up (such as Starfire Espresso) 2023-07-11 19:06:17 +02:00
Ovahlord ff9a23afab Core/Quests: allow QUEST_SPECIAL_FLAGS_AUTO_PUSH_TO_PARTY to be set in quest_template_addon 2023-07-11 18:54:05 +02:00
Ovahlord d535977c6d Build: moved MSVC warning C5054 from warning level 4 to 3 2023-07-11 18:49:52 +02:00
Ovahlord be81ff7133 Core/Player: Modernize some pointers and arrays in player class (#29098) 2023-06-28 17:39:55 +02:00
Ovahlord 58cd4e58f7 Scripts/DK: Implemented Howling Blast (#28761) 2023-01-26 18:38:10 +01:00
Ovahlord c1598d1ac3 Core/Creatures: improved error logging messages added in 6f835c233f7605d74926a2a3058634c9de478617 for creature_template_addon to avoid confusion
(cherry picked from commit 128339730cafefba04ca8b1b6c72ed4ea9315bd3)
2023-01-12 22:55:19 +01:00
Ovahlord 4119f69b21 Core/Creatures: Split creature_addon and creature_template_addon's byte columns into seperate ones (#28562)
* Instead of dumping raw byte values into these fields, we now only allow setting values which should be accessible to database devs. The remaining byte values should be handled by core internals and spells (pet talents and shapeshifting for example)

(cherry picked from commit 6f835c233f7605d74926a2a3058634c9de478617)
2023-01-12 22:55:19 +01:00
Ovahlord d03a5b802d Core/Units: ensure that we use valid iterators when providing spell Ids in Unit::RemoveAppliedAuras and Unit::RemoveOwnedAuras
(cherry picked from commit 4a1989269643a3a441f91c50da6c3153d95a15fe)
2023-01-12 22:55:18 +01:00
Ovah 298febaaf9 Scripts/Halls of Lightning: reworked General Bjarngrim Encounter (#28457)
* handle missing visuals
* reworked all AI scripts
* handle missing mechanic of Arc Weld
* reworked the whole waypoint and tempoary electrical charge handling
* moved Stormforged Lieutenants to their own spawn group to handle their spawning/despawning via boss
* moved the Tempoary Electrical Charge mechanic from spell_linked_spell to spell script instead
* replaced hacky virtual items for Bjarngrim's stances with sniffed ones

(cherry picked from commit f2fcd6746c72930dc0a951521e2f0fe78ce02690)
2023-01-12 22:55:17 +01:00
Ovahlord 4bd780b464 Scripts/HoO: fixed a crash in Temple Guardian Anhuur's script due to now supporting gameobject casters
(cherry picked from commit 3203f04ac1064d0812e3bcad12d0c25dc2e31593)
2023-01-09 12:06:04 +01:00
Ovahlord 83a8a540aa DB/Stormwind: added night time equipment to stormwind city guards and patrollers and moved waypoint scripts to smartAI
(cherry picked from commit https://github.com/The-Cataclysm-Preservation-Project/TrinityCore/commit/e619492a194bc09feb2fb30c50df4edbbcdc87bf)
2022-11-12 18:19:08 +01:00
Ovah 3be76db592 Scripts/DK: Fixed Rime talent (#28333) 2022-10-07 20:56:46 +02:00
Ovah ad2df01b2c Core/Spells: make Spell::CheckMovement respect the current spell state (#28315) 2022-10-03 15:52:49 +02:00
Ovah 9f08471827 Core/Spells: fixed up block mechanics (#28286)
* Ranged attacks can now be blocked
* Implement SPELL_ATTR3_COMPLETELY_BLOCKED
* Fixed a bug which was causing blocking to block entire spell effects regardless if the attribute was present or not
* Fixed a logic mistake which was causing blocks to roll twice (once for effect negation and once on hit)
* No longer send blocked miss conditions in spell_go packets when the spell is not completely blocked to match sniff data

(cherry picked from commit b47ef3ce90f6192784f8ce903b6738d568631809)
2022-10-01 18:42:04 +02:00
Ovah fd88a15f4c Scripts/Halls of Lightning: reworked Volkhan encounter (#28282)
* modernized the whole code
* moved several mechanics to spell script where they belong
* handle missing visuals for Volkhan's Anvil

(cherry picked from commit 9ef9b79e84594f6dc2016809a0212b3fc090a0ce)
2022-09-30 20:37:25 +02:00
Ovah 406663806d Scripts/Halls of Stone: Modernized Halls of Stone instance script (#28280)
(cherry picked from commit f82f97305d28247e80b9220479b59896de501b7c)
2022-09-30 20:29:10 +02:00
Ovahlord 9f09165481 Scripts/HoL: follow naming standards for boss enums and dropped unused overriden methods from instance script
(cherry picked from commit 8b87b6a0581a56dbb0cd61d557dede897d0a7072)
2022-09-30 20:25:37 +02:00
Ovahlord 8743c509e6 Scripts/HoO: removed a redudant summons.DespawnAll() call from Ionar's script
(cherry picked from commit 9dcb602138417d3ba031a0519a858c9bca56832e)
2022-09-30 20:25:30 +02:00
Ovahlord ffa0894199 Scripts/HoL: converted Ionar's AI to BossAI
(cherry picked from commit dfcc9c69e771658327897bc09be9f5946062150a)
2022-09-30 20:25:23 +02:00
Ovahlord ea97ce2a17 Scripts/HoL: converted General Bjarngrim's to BossAI
(cherry picked from commit 0efe2a0fa55e41184ea7878217fdd7826853ccdb)
2022-09-30 20:25:13 +02:00
Ovahlord 60a2215669 Scripts/HoL: modernized instance script
(cherry picked from commit 7a73b8412a4232eccb1986ec220ec9031b1e0bff)
2022-09-30 20:25:05 +02:00
Ovahlord 2556d6d705 Core/Players: assign forbidden skills to a proper position to no longer interfere with legit skills that have been stored as first element.
* This fixes aura-based skills to no longer invalidate legit skills that have been assigned to position 0, breaking them entirely in the process
2022-09-11 10:03:05 +02:00
Ovahlord 377799fd3c Core/Transports: remove an obsolete check that prevented vehicles from updating their passenger positions
Vehicles now share the TransportBase class with regular transports so they both update positions the same way
2022-07-10 01:19:51 +02:00
Ovahlord 919ada8d94 Core/Criteria: Implemented worldstate requirements for criteria updates 2022-06-25 23:17:10 +02:00
Ovah 8501fb572a Core/Movement: Allow waypoints to use 0 as valid facing value (#26655)
(cherry picked from commit 4747515872775553de35cc3267e1ccd5e0076ca4)
2022-06-10 16:50:17 +02:00
Ovah a5889ba3eb Core/Quests: check PreviousQuestID values as well when trying to make quest groups available to players (#26769)
* Core/Quests: check PreviousQuestID values as well when trying to make a quest available to support quest group requirements for another quest group

* checking for previous quests via NextQuestID only works for single followup quests. However, if we want to make multiple quests available after rewarding all quests of an exclusive group we have to consider PreviousQuestID values as well as every single quest of the next quest group has to check the rewarded exclusive group

* only check for previous quests that must be rewarded instead of being active

(cherry picked from commit a0aa9730e25197f8be2611f3b7800bdb979cad35)
2022-03-13 19:31:14 +01:00
Ovah 21177487ea Core/Spawns: prevent spawn groups from bypassing spawnMask restrictions (#26711)
* spawn groups have been able to spawn for all difficulties even when they should be restricted to a single difficulty only

(cherry picked from commit 48f63eda9029d4fe16b7a350059c8e26ba8484ce)
2022-03-11 19:28:56 +01:00
Ovahlord 209b90cfdd Core/DBLayer: escape MySQL keywords in page_text, page_text_locale, broadcast_text and broadcast_text_locale select queries
(cherry picked from commit d4f71131f032ecc68545acd838de5a3ccfadc331)

(cherry picked from commit edcaac6c959e944dc6d6dc224666b832521412b4)
2022-03-09 15:30:23 +01:00
Ovah 60119ba850 Core/Spells: implement SpellInfo helper to filter for relevant mechanic immunities in spell_start packet (#26183)
* Core/Spells: implement SpellInfo helper to filter for relevant mechanic immunities when sending SMSG_SPELL_START packets.

According to sniff analysis Blizzard does not send all mechanic immunities of creatures but instead only the ones that are responsible for actual interrupts which are MECHANIC_INTERRUPT  and MECHANIC_SILENCE. Additionally we no longer send immunities for instant cast spells as sniffs confirm that they are not sent for spells without a cast time.

(cherry picked from commit 6215cb4e0014fbe9df35a8c6b013e7801bd8ffec)
2022-03-08 00:31:02 +01:00
Ovah dde5a3e326 Core/SAI: implement new smart actions to change AI Animkits and to enable/disable hover movement (#25623)
SMART_ACTION_SET_HOVER (parameter1: enable/disable)

* added SMART_ACTION_SET_AI_ANIM_KIT as immediately deprecated

(cherry picked from commit b7ba856b63da4fa1b0f916de357ff85624b8b831)
2022-03-05 16:46:42 +01:00
Ovah 203dfec2a1 Core/Maps: add new FLAG_ALLIANCE_ONLY and FLAG_HORDE_ONLY for instance spawn groups (PR #25656)
(cherry picked from commit 4abbeb2a60370157bc9a72e5c566c1112ff904e9)
2022-03-01 21:46:43 +01:00
Ovah d1594c7295 Core/Spells: unify OnSpellCastInterrupt and OnSuccessfulSpellCast hooks into OnSpellCastFinished (#25522)
* added support for calling the hook when completing a channeled spell as well

(cherry picked from commit 77aa058504e1ee99b560176d70bcf452c7e3d4f7)
2022-02-28 14:21:08 +01:00
Ovah ac6e242bff Core/Movement: fix units falling through the ground when hover mode is disengaged (PR #25518)
(cherry picked from commit e811b9cdc2582cb1504e85b43d80696031fe2634)
2022-02-28 14:08:36 +01:00
Ovah eeac4a12f2 Core/Movement: add optional velocity argument for MoveLand and MoveTakeoff (PR #25516)
(cherry picked from commit 31abdc6ecfd84ef019880ffb531bf0298f921e77)
2022-02-28 14:08:22 +01:00