Commit Graph

430 Commits

Author SHA1 Message Date
ariel-
4596c17dae Core/Achievements: port realm first achievement handling from master
veeeery partial cherry-pick of c75fcbe20b
2017-03-02 01:07:05 -03:00
xinef1
7567cafec8 Ensure that all actions are compared to fixed point in time (ie. world update start) (#18910)
- Actions will not be dependent on processing moment
- Increased GameObjects cooldown resolution to milliseconds, fixes arming time of traps to be exactly one second and not something from range (1000, 1999)
- Created GameTime namespace and UpdateTime class and moved there some code out of world
2017-03-01 22:19:25 -03:00
Aokromes
da3e38d5ff Update MapScripts.cpp 2017-02-17 10:10:55 +01:00
Shauren
74bb92a582 Core/Maps: Adjusted WorldObject::GetGridActivationRange() to never be less than map visibility distance for active objects to ensure equal ranges for activation/deactivation of grids
Updates #19072
2017-02-08 20:23:37 +01:00
Rushor
85357c75c4 Game/Mapscripts: Implement SCRIPT_COMMAND_MOVEMENT 2017-02-07 00:54:32 +01:00
xinef1
14dfc377b4 Core/Misc: Various crash fixes (#19059)
* Replaced some FindPlayer calls with GetPlayer
Fixed some more crashes

* Correction
2017-02-05 23:42:31 +01:00
xinef1
b955456008 Few small optimizations here and there (#18684)
Changes list:
- Added CharacterGuidByNameContainer which contains name -> guid unordered map (updated along CharacterInfo)
- Extended CharacterInfo structure with GuildId
- Extended CharacterInfo structure with ArenaTeamId[3], for all possible teams (2v2, 3v3, 5v5)
- Removed CHAR_SEL_GUID_BY_NAME and CHAR_SEL_CHAR_GUID_BY_NAME synchronous queries, name -> guid can be now retrieved in World::GetCharacterGuidByName
- Removed CHAR_SEL_GUID_RACE_ACC_BY_NAME synchronous query, guid can be retrieved by name and rest of the data can be retrieved by guid
- Removed CHAR_SEL_CHAR_LEVEL synchronous query, level can be retrieved by guid
- Changed CHAR_SEL_CHARACTER_ACTIONS_SPEC to asynchronous query, action bars are now loaded asynchronously
- Removed CHAR_SEL_CHARACTER_NAME_CLASS synchronous query, guid can be retrieved by name and rest of the data can be retrieved by guid
- Removed CHAR_SEL_PLAYER_ARENA_TEAMS and CHAR_SEL_ARENA_TEAM_ID_BY_PLAYER_GUID synchronous queries, arena teams are now stored in CharacterInfo
- Replaced synchronous db calls with CharacterInfo lookups
- Removed ObjectMgr::GetPlayerGUIDByName, as it used db query
- Replaced some unnecessary UpdateObjectVisibility() calls because they were either duplicated (called few lines above in other function) or it is enough to call DestroyForNearbyPlayers because object is being removed or should be invisible and DestroyForNearbyPlayers is faster
- Corrected typo in Player::DestroyForPlayer, only items in slots 0 to EQUIPMENT_SLOT_END are sent to other players
- Renamed Player::GetGuildIdFromDB to Player::GetGuildIdFromCharacterInfo and changed the function to use CharacterInfo structure
- Renamed Player::GetArenaTeamIdFromDB to Player::GetArenaTeamIdFromCharacterInfo and changed the function to use CharacterInfo structure
- Renamed Player::GetLevelFromDB to Player::GetLevelFromCharacterInfo and changed the function to use CharacterInfo structure
- Removed GameEventMgr::_questToEventLinks and associated functions, eventId is now stored in Quest class under _eventIdForQuest variable
- Changed some functions checking quest status to use other functions for quest status check instead of duplicating code
- Removed callback from add friend, because we can get the guid from appropriate storage, no need to make db query
- Removed callback from add ignore, because we can get the guid from appropriate storage, no need to make db query
- Added callback to unwrap wrapped items asynchronously
- Removed synchronous select in tutorials to check if we have any entries in db, if any entry exists in db, m_TutorialsChanged variable will have TUTORIALS_FLAG_LOADED_FROM_DB flag added and it is no longer necessary to query database
2017-01-28 01:00:28 -03:00
Shauren
c90882ed6e Core/Vmaps: Changed error message when loading outdated vmaps
Closes #18431
Closes #18857
2017-01-22 12:06:02 +01:00
HelloKitty
01d715eaef Core/Vmaps: Stop M2s from occluding for spellcast LoS
Closes #18528
2017-01-21 14:44:31 +01:00
tkrokli
6a51a88767 Update Copyright notice for 2017
Happy new year!
2017-01-02 19:52:45 +01:00
ariel-
3b6fd226be Core/Misc: fix interaction of spells like Shadowmeld with Threat reducing effects
- SPELL_AURA_MOD_TOTAL_THREAT should be temporary and not added/subtracted from total, only computed
- Cleanup of reference related code
- Kill getLast() and reverse iterator obsevers, LinkedList iterator can't be used as a standard reverse_iterator (ie with operator++). They weren't used anyways
2016-10-06 23:14:51 -03:00
treeston
820e843391 Map/InstanceMap: Ease up on a somewhat overzealous error message regarding instance saves. 2016-09-21 15:36:21 +02:00
Treeston
cf628880d5 Map/Instances: Greatly simplify PermBindAllPlayers logic. (#17940) 2016-09-16 13:09:16 +02:00
treeston
a7afb47633 Maps/Boundary: Some code style clean-up in AreaBoundary code, as well as adding an additional utility overload to IsWithinBoundary (Position const&). 2016-09-14 01:54:15 +02:00
treeston
3c32086b81 Core/Maps: Add override to allow InstanceMap const* -> InstanceScript const*.
Also tighten const-ness on CanSpawn method of CreatureScript.
2016-09-09 18:08:43 +02:00
Aokromes
fad58ad099 Core/Misc: Even better description for logs 2016-07-02 22:31:11 +02:00
Aokromes
bd7dc87b02 Core/Misc: Even better description for a log 2016-06-22 14:32:48 +02:00
Aokromes
54d4769d4b Core/Misc: Better description for a log 2016-06-22 14:24:11 +02:00
jackpoz
1347d7cf7a Core/VMaps: Fix some vmap height edge cases
Fix Map::GetWaterOrGroundLevel() checking dynamic object only in phase 1 instead of current Unit phase.
Improve DynamicMapTree::getHeight() dynamic object check by casting the ray at +0.5f from the passed Z coordinate, this value will be tuned to improve even more the results.
2016-06-04 15:01:39 +02:00
Shauren
46c35ce651 Core/Misc: Warning fixes (/W4)
(cherry picked from commit c9ba5ce591)
2016-05-17 17:44:49 +02:00
Treeston
9ad952c3bc Merge pull request #16736 from r00ty-tc/map_height
Solve many of the creature falling through floor issues.
2016-04-16 10:43:57 +02:00
r00ty-tc
87b4533046 [Core/Maps] Activate creatures and objects during opening cinematics and other flyby
cameras (sunwell etc).

Requires re-running map extractor to extract camera m2 files from data
files. These are very small.

Closes #4755
Closes #16772
2016-04-14 01:34:17 +02:00
Naios
131ef5f2d6 Core/Maps: Fix non PCH build 2016-04-11 23:12:23 +02:00
Naios
775e0764e8 Core/Game: Move scheduled map scripts counter methods into MapManager
* Since those have nothing to do with core scripts and are
  not wished inside the ScriptMgr

(cherry picked from commit 59e3cf82ac)
2016-04-11 21:40:38 +02:00
Naios
518692b4cb Core/Game: Move MapScripts to game/Maps
* Since this class implements methods of the Map class

(cherry picked from commit 26dcde94b3)
2016-04-11 21:39:31 +02:00
Shauren
39abb8acb3 Core/Misc: MSVC warning fixes
(cherry picked from commit 70412e7e25)
2016-04-09 18:13:30 +02:00
Naios
9f61b72679 Core/Game: Converted the game library to a shared library.
* There is still the possibility to static link against game.

(cherry picked from commit bf33159a70)
2016-03-24 02:46:42 +01:00
r00ty-tc
971f4ccab8 Core/Maps: Implement optional pre-loading of maps.
- Option to preload basemaps upon server load (BaseMapLoadAllGrids)
- Option to preload instance maps upon map load (InstanceMapLoadAllGrids)
- Change default logging to only log mmap errors to server log
- Add new public to map to load all cells in map
- change debug loadcells to use new function instead
2016-03-15 02:05:13 +01:00
Naios
b7f936891a Core/Game: Move singleton instances into compilation units
* Fixes issues when building shared libraries
  (prevents gcc and clang from providing several instance)

(cherry picked from commit 329225b40d)
2016-03-11 20:03:12 +01:00
ccrs
6a339ed5c9 Core/TempSummons: avoid use MoveInLineOfSight before InitSummon 2016-03-01 21:20:47 +01:00
r00ty-tc
10550fe8cf Solve many of the creature falling through floor issues.
This seems entirely wrong to discount the returned map height if we're
already below it. In many cases this is exactly why we want the height!
2016-02-26 22:02:20 +00:00
Shauren
ff45a422c5 Warning fix. 2016-02-12 20:45:09 +01:00
Shauren
fa3f106693 Core/Maps: Use map.dbc zone fallback if no area is found in grid files, not only if grid files don't exist
Closes #16583
Closes #16584

Extracting new maps is NOT needed.
2016-02-12 20:39:25 +01:00
treeston
62aff401f6 Merge branch '3.3.5-instanceextend' into 3.3.5 (PR #16392) 2016-02-10 22:23:39 +01:00
Shauren
89d8d50b2e Core/Maps: Moved min height calculation to worldserver for more precise results
Closes #16530
2016-02-10 21:25:28 +01:00
treeston
6102a7937d Maps/Instances: Implement handling of CMSG_SET_SAVED_INSTANCE_EXTEND 2016-02-10 19:35:11 +01:00
Shauren
25cdc5d980 Core/Maps: Parse MFBO adt chunk to properly handle height where player counts as falling under the map
* This fixes the height at which player is instantly killed when falling from The Frozen Throne
* Set PLAYER_FLAGS_IS_OUT_OF_BOUNDS on players under the map to enable release spirit button while still falling

Note: Extracting new maps is required
(cherry picked from commit 4f78efd463)

# Conflicts:
#	dep/PackageList.txt
#	src/server/game/DataStores/DBCStructure.h
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Handlers/MovementHandler.cpp
#	src/tools/map_extractor/CMakeLists.txt
#	src/tools/map_extractor/System.cpp
#	src/tools/map_extractor/adt.h
#	src/tools/map_extractor/loadlib.cpp
2016-02-09 18:44:19 +01:00
Shauren
aa432db36d Core/Maps: Changed the way area data is stored in maps, it now uses ID field from AreaTable.dbc instead AreaBit used for exploration marker (and is not unique anymore on top of simply being stupidly confusing)
Note: Extracting maps is required
(cherry picked from commit db0b8bf24e)

# Conflicts:
#	src/server/game/Achievements/AchievementMgr.cpp
#	src/server/game/Chat/Chat.cpp
#	src/server/game/Conditions/ConditionMgr.cpp
#	src/server/game/DataStores/DBCStores.cpp
#	src/server/game/DataStores/DBCStores.h
#	src/server/game/DataStores/DBCfmt.h
#	src/server/game/Entities/Player/Player.cpp
#	src/server/game/Globals/ObjectMgr.cpp
#	src/server/game/Handlers/BattleGroundHandler.cpp
#	src/server/game/Handlers/MiscHandler.cpp
#	src/server/game/Maps/Map.cpp
#	src/server/game/Spells/Spell.cpp
#	src/server/game/Spells/SpellEffects.cpp
#	src/server/scripts/Commands/cs_go.cpp
#	src/server/scripts/Commands/cs_group.cpp
#	src/server/scripts/Commands/cs_lookup.cpp
#	src/server/scripts/Commands/cs_misc.cpp
#	src/tools/map_extractor/System.cpp
#	src/tools/mmaps_generator/TerrainBuilder.cpp
2016-02-09 18:19:28 +01:00
treeston
1050b68899 Merge branch '3.3.5-boundaryagain' into 3.3.5-base (PR #16270) 2016-01-18 18:35:20 +01:00
treeston
b945d01ee5 Instance boundary follow-up:
- Stop tools from complaining about leaks.
- Also, list -> vector.
- Fix an ambiguous constructor warning.
- Fix a bug with Gormok and Sindragosa (Fixes #16280).
2016-01-18 18:08:15 +01:00
treeston
0316dff245 Fix stuff™. 2016-01-14 11:42:12 +01:00
treeston
2da458c56d Scripts/Instances: Complete rewrite of the boundary system.
- Migrate boundary logic to Maps/AreaBoundary instead of having it sit in InstanceScript (to possibly allow use for other purposes).
- Implement the first five boundary types in Maps/AreaBoundary.cpp.
- Add boundary checks to Creature's update logic
- Add boundary data for all Northrend raids
- Add boundary initialization structures and methods to InstanceScript
- Modify EnterEvadeMode signature. It now passes a value from the EvadeReason enum as parameter to allow special casing depending on evade reason
- Remove previous (weird) boundary code that had them linked to GO spawns
2016-01-12 22:24:23 +01:00
treeston
0f0a51b87a Game/Maps: Instance handling follow-up:
- Fix a bug where a player could maintain a conflicting non-perm solo bind if they were in the instance when invited to group. Closes #16150.
- If a group is created while the leader is in an instance that nobody is bound to, the group will take over the instance and bind to it. This stops the homebind timer when reforming group after disconnects and the like.
2016-01-04 15:48:53 +01:00
Rushor
923a368ac7 Update copyright note for 2016 2016-01-01 12:02:33 +01:00
treeston
43fa7d48a5 Game/Maps: Clean up instance handling.
- Rename Map::CanEnter to Map::CannotEnter. Return value changed from boolean (true means player can enter) to enum Map::EnterState (CAN_ENTER=0 means player can enter, any other value is a reason for deny).
- Move hack-y player error messages from within Map::CanEnter to the function calling CanEnter as appropriate (primarily WorldSession::HandleAreaTriggerOpcode).
- Modify WorldSession::HandleAreaTriggerOpcode to properly revive the player upon touching the portal leading to the instance they died in even if they are currently unable to zone in. Fixes and closes #15758.
- Modify Player::LoadFromDB to properly spawn players in the instance they logged off in if possible. Fixes and closes #15561.
- Modify permanent save behavior to be blizzlike: Players can always enter an instance they are saved to (assuming there are no map constraints against it), but get a homebind timer if the instance is already in use.
2015-12-31 01:02:07 +01:00
Naios
3a3a6bbfd2 Core/Globals: Use std::string rather than char* to pass script names around.
(cherry picked from commit b7b49fe35f)

Conflicts:
	src/server/game/Battlegrounds/BattlegroundMgr.cpp
	src/server/game/Globals/ObjectMgr.cpp
2015-11-07 13:09:10 +01:00
Shauren
910fb00130 Core/Corpses: Fixed a possible crash adding bones to grid
Closes #15808

(cherry picked from commit ec1583df67)
2015-11-06 21:30:41 +01:00
MitchesD
a968595977 Core/PacketIO: fixed instance binding of gamemasters
(cherry picked from commit 231fb1d322)
2015-10-31 17:39:17 +01:00
Shauren
8c9ea7782a Core/Corpses: Fixed a crash happening when a corpse is added to a grid that was not yet fully loaded
Closes #15684
2015-10-30 17:53:00 +01:00
Shauren
a94bdd00a9 Core/Corpses: Prevent deleting corpses by ObjectGridUnloader, fixes accessing freed memory in multiple places due to the corpse still being registered in Map containers
Closes #15775
Closes #15781
2015-10-30 17:51:19 +01:00