Commit Graph
218 Commits
Author SHA1 Message Date
Shauren ce55647c41 Core/Transports
* Rewritten path generation, now uses splines - timers are a lot more accurate now
* Implemented stopping transports
* Implemented spawning transports in instances
* Implemented spawning gameobjects as transport passengers
* Transport passengers are now stored in creature/gameobject table using gameobject_template.data6 from transport's template as map id
2013-10-16 18:37:29 +02:00
Shauren a368fae588 Core/Players: Fixed issues with incorrect targets being selected for spells 2013-10-03 17:07:25 +02:00
Discover- 80ce30ac7d Core/SAI: Add 'playerOnly' parameters to SMART_TARGET_CLOSEST_ENEMY and SMART_TARGET_CLOSEST_FRIENDLY. Wiki is updated accordingly. 2013-09-30 10:11:02 +02:00
Shauren 75cc4e7b25 Core/Auras
* Fixed unsafe removal of charm auras, it is now safe to remove them inside AI hooks
* Fixes crash in SmartAI::EnterEvadeMode

Closes #8679
2013-08-20 00:43:03 +02:00
Vincent-Michael da1e466bd5 Core/Misc: Implemented GetObjectScale function 2013-08-17 23:47:43 +02:00
Vlad 0b9a8ccef5 Core/Misc: Change creatures and gameobject phasemask from 16 to 32 bits
Signed-off-by: Nay <dnpd.dd@gmail.com>
2013-07-19 04:03:40 +01:00
Shauren 55fa58af19 Core/Movement: Prevent dynamic changes of movement flags for charmed creatures
Closes #10075
Closes #10079
2013-06-22 13:42:13 +02:00
Shauren d9df460694 Core/Movement
* Added wrapper methods for setting various movement flags and sending correct movement opcodes
* Made flying and falling spline flags exclusive with each other
2013-06-18 16:47:12 +02:00
Malcrom ec474a62e5 Core: More Function Renaming. 2013-06-11 21:25:12 -02:30
Malcrom 66978cfc3b Core: Some function renaming. 2013-06-11 19:54:27 -02:30
Malcrom 047608e7de Core/SAI: Add check so npc will not send text to pet. Also updated isPet() to IsPet(). 2013-06-11 18:39:51 -02:30
Shauren 9ec22fffa0 Core/Objects: Object scale will now also affect bounding radius and combat reach fields 2013-06-11 17:28:16 +02:00
Vincent-Michael cd24f8521c Core/Gossip: Revert unlearn and dual spec gossip stuff in c238cae7d0 2013-06-08 20:51:39 +02:00
Shauren 88bbff2236 Core/Creatures
* Refactored setting movement flags into separate method
* Falling creatures are no longer treated as flying for movement flag setting purposes
2013-06-07 16:05:39 +02:00
Malcrom c238cae7d0 Core: Remove some no longer needed gossip code. 2013-06-03 22:33:26 -02:30
Spp 9664c0ab5c Core/Misc: Another batch of fixes for issues found by static analysis 2013-05-30 13:18:29 +02:00
Spp d1677b2db0 Core/Logging: Performance-related tweaks to logging system
All sLog->out* functions (except outCommand atm) are replaced with TC_LOG_* macros.
    Memleak fix
2013-05-13 15:07:36 +02:00
Spp 69e81d46b1 Core/Misc: Define multiple functions const (+ code cleanup here and there) 2013-03-20 14:20:17 +01:00
Spp b4ee55dd05 Core/Misc: Do not use singleton when calling to static function ChooseDisplayId (and remove unused parameter) 2013-03-20 14:20:17 +01:00
Shauren 2c169bcca5 Core/Vehicles
* Fixed crash happening when passenger died on vehicle he was controlling
* Fixed crash happening if vehicle control aura was removed before passenger is fully added to vehicle

Closes #7160
2013-03-13 11:34:58 +01:00
Nefarion 49fd11ab5a First step of comment style refactoring to doxygen-style. 2013-03-08 21:55:37 +01:00
QAston 9fd6b7ee01 Core/Entities: Move complex function implementations from Creature.h to Creature.cpp 2013-03-04 12:41:17 +01:00
Nay 4ea31ce886 Core&SQL: Fix typos (RBAC and equips related) 2013-02-26 23:49:21 +00:00
Shauren 0ef974a9de Core/Creatures: Set hover movement flag if bytes1 have hover flag and creature cannot fly 2013-02-22 01:21:49 +01:00
Nay 65258666e0 Core/NPCs: Fix some equipment issues introduced with 028c72a9f2
Also changed equips defaults to 0 (no equipment) instead of 1.

It seems that some parts of the original commit were reverted locally, my bad.
2013-02-20 01:17:27 +00:00
Nay 028c72a9f2 Core/NPCs: Refactor equipments
- creature_template.equipment_id deleted
- creature_equip_template.entry == creature_template.entry
- id field added to creature_equip_template -> PK(entry, id)
- id field in creature_equip_template starts at 1
- creature.equipment_id references id of creature_equip_template
- creature.equipment_id = 0 means no equipment at all (default 1)
- creature.equipment_id = -1 means pick a random equipment from creature_equip_template
- add equipment info to .npc info command

While table creature_equip_template got bigger in size, this system is easier to mantain and allows creatures to have a random template from a group of equipments
2013-02-18 12:24:18 +00:00
Machiavelli 01fbbf3b93 Core/Vehicles: Refactor some parts of vehicle system
- Fix a few crashes:
Closes #9235
- Simplify and get rid of lots of redundant and silly code
- Optimisations in Unit::ChangeSeat
- More documentation
2013-02-18 00:39:58 +01:00
Shauren 944d7290ad Core/Loot: Minor change to previous commit, thanks Vincent_Michael for reminding me about this method in Map class 2013-02-14 11:41:20 +01:00
Shauren ca280dbe05 Core/Loot: Only 3 items of the same entry can drop on 25 man raid difficulties and 1 everywhere else (non-raid or 10 man) 2013-02-13 20:24:23 +01:00
Aokromes 134785f7f1 Core/Log: Change an error to contain DB table guid instead of low guid
Signed-off-by: Nay <dnpd.dd@gmail.com>
2013-01-16 01:17:13 +00:00
Vincent_Michael cc65aba789 Update copyright note for 2013.
Happy new year.
2013-01-01 00:41:01 +01:00
Subv 3d3a8107e0 Core/Entities: Account for creatures that are spawned below ground level when adding flying flags. (Triggers, mostly) 2012-12-29 14:23:23 -05:00
therzok 5c8c458d60 *Fixing a typo. 2012-12-29 21:14:12 +02:00
Subv 3ad9dafdb6 Core/Entities: Update movement flags for flying/swimming creatures on Creature::Update 2012-12-29 04:01:55 +01:00
Subv 873aa5f2a7 Core/Movement: Do not set movement flags for creatures based only on their InhabitType, check if they are actually on air/water. newline. Should allow us to fix some problems on ICC and the mmaps branch. 2012-12-27 19:31:34 +01:00
click aa3980c744 Core: Remove tabs, fix whitespace and fix nonPCH properly (5am, too late for this stuff...) 2012-12-17 05:39:04 +01:00
thesensei ed4bf13c44 Core/Creature: Update template - reinitialize spell bar for vehicles
* update template didn't change spell bar for players if on vehicle that updates it's template, initialize spells was needed
	* combined with faction changing, since when update is called player faction is ignored and it should be changed to his (based on sniffs)
	* the idea of this automated check inside fix SAI problems mainly, because there you have nothing to use to reinitialize the bar - closes #5254
2012-12-17 02:54:59 +02:00
CeIa b87cc31106 Scripts/Events/Achievement: fix 'Out With It'
Credits to @darkman1983

Closes #8211
Closes #8126

Signed-off-by: Nay <dnpd.dd@gmail.com>
2012-12-14 01:23:53 +00:00
MrSmite 777b287dff PetAI - Overhaul / bug fix
* Aggressive pets now use aggro radius check based on level diff of target
  * Aggro radius limited to max 45 yards (per wowwiki)
  * Pets no longer "dance" when fighting a creature
  * Pets returning will defend themselves (if not passive) if owner didn't click "follow"
  * Pets at stay will properly pick up their owner's attackers that pass within range
  * Fix "no empty line at end of file" warning in PetAI
  * Fix typo in GetAggroRange()
  * Fix spell "Eyes of the Beast" - player can move pet freely
  * Code style cleanup

  * Update commit comment

Closes #8398, #7455
2012-12-07 22:13:57 -05:00
Spp 2251d1bfae Core/Misc: Set mode 0644 for files 2012-11-27 13:03:12 +01:00
kaelima fc974d6fbe Core/Movement: Remove deprecated method Creature::AI_SendMoveToPacket. 2012-11-23 20:18:55 +01:00
Spp b5c9ab8802 Core/Misc: Reduction of header dependencies - Step II 2012-11-20 12:30:30 +01:00
Spp 013fb1f4d9 Core/Misc: reduced amount of string memory allocations (Step I) 2012-10-24 15:34:48 +02:00
Spp 380db44583 Core/Utilities: Use generic templates with AddPct, ApplyPct and CalculatePct 2012-10-02 12:17:42 +02:00
Vincent-Michael 06eff1644d Core/Vehicles: Fix warnings 2012-09-10 15:44:12 +02:00
Nay 21d43781ac Tabs to spaces... 2012-09-07 03:33:16 +01:00
Nay 340dc33b52 Fix some code style issues in previous PR merge 2012-09-06 19:59:27 +01:00
e 98f5d4ef4a [Core, Creature] Implement Creature/Pet Interrupts 2012-09-04 23:04:59 -04:00
kaelima bdfae83898 Core/Creature: Added DB support for UNIT_FIELD_FLAGS_2. Thanks cyberbrest
- Added more flags to UnitFlags2 enum (Thanks wpp)
2012-08-30 04:52:56 +02:00
Spp 55ce180f28 Core/Logging: Add Asyncronous logging with Loggers ("What to log") and Appenders ("Where to log") system. Will allow to select to full log some parts of core while others are not even logged.
- Logging System is asyncronous to improve performance.
- Each msg and Logger has a Log Type and Log Level assigned. Each msg is assigned the Logger of same Log Type or "root" Logger is selected if there is no Logger configured for the given Log Type
- Loggers have a list of Appenders to send the msg to. The Msg in the Logger is not sent to Appenders if the msg LogLevel is lower than Logger LogLevel.
- There are three (at the moment) types of Appenders: Console, File or DB (this is WIP, not working ATM). Msg is not written to the resource if msg LogLevel is lower than Appender LogLevel.
- Appender and Console Log levels can be changed while server is active with command '.set loglevel (a/l) name level'

Explanation of use with Sample config:

Appender.Console.Type=1       (1 = Console)
Appender.Console.Level=2      (2 = Debug)

Appender.Server.Type=2        (2 = File)
Appender.Server.Level=3       (3 = Info)
Appender.Server.File=Server.log

Appender.SQL.Type=2           (2 = File)
Appender.SQL.Level=1          (1 = Trace)
Appender.SQL.File=sql.log

Appenders=Console Server      (NOTE: SQL has not been included here... that will make core ignore the config for "SQL" as it's not in this list)

Logger.root.Type=0            (0 = Default - if it's not created by config, server will create it with LogLevel = DISABLED)
Logger.root.Level=5           (5 = Error)
Logger.root.Appenders=Console

Logger.SQL.Type=26            (26 = SQL)
Logger.SQL.Level=3            (2 = Debug)
Logger.SQL.Appenders=Console Server SQL

Logger.SomeRandomName.Type=24 (24 = Guild)
Logger.SomeRandomName.Level=5 (5 = Error)
Loggers=root SQL SomeRandomName

* At loading Appender SQL will be ignored, as it's not present on "Appenders"

* sLog->outDebug(LOG_FILTER_GUILD, "Some log msg related to Guilds")
  - Msg is sent to Logger of Type LOG_FILTER_GUILD (24). Logger with name SomeRandomName is found but it's LogLevel = 5 and Msg LogLevel=2... Msg is not logged

* sLog->outError(LOG_FILTER_GUILD, "Some error log msg related to Guilds")
  - Msg is sent to Logger of Type LOG_FILTER_GUILD (24). Logger with name SomeRandomeName is found with proper LogLevel but Logger does not have any Appenders assigned to that logger... Msg is not logged

* sLog->outDebug(LOG_FILTER_SQL, "Some msg related to SQLs")
  - Msg is sent to Logger SQL (matches type), as it matches LogLevel the msg is sent to Appenders Console, Server and SQL
    - Appender Console has lower Log Level: Msg is logged to Console
    - Appender Server has higher Log Level: Msg is not logged to file
    - Appender SQL has lower Log Level: Msg is logged to file sql.log

* sLog->outDebug(LOG_FILTER_BATTLEGROUND, "Some msg related to Battelgrounds")
  - Msg is sent to Logger root (Type 0) as no Logger was found with Type LOG_FILTER_BATTLEGROUND (13). As Logger has higher LogLevel msg is not sent to any appender

* sLog->outError(LOG_FILTER_BATTLEGROUND, "Some error msg related to Battelgrounds")
  - Msg is sent to Logger root (Type 0) as no Logger was found with Type LOG_FILTER_BATTLEGROUND (13). Msg has lower LogLevel and is sent to Appender Console
    - Appender Console has lower LogLevel: Msg is logged to Console
2012-08-03 14:20:18 +02:00