Commit Graph

53 Commits

Author SHA1 Message Date
Machiavelli
dbbac0bdaa Core/Movement: Implement spline movement subsystem.
Spline movement controls movements of server-side controlled units (monster movement, taxi movement, etc).
Proper implementation of effects such as charge, jump, cyclic movement will rely on it.
However, need improve our states system before.

Technical changes:

* Added linear, catmullrom and bezier3 splines which based on client's algorthims. They can be reused for proper transport position interpolation.
* Precission increased. There are no more position desync issues since client's position calculation formulas used.
* Now possible to move by paths with multiple points, send whole path to client.

--
Original author of research and implementation: SilverIce. Massive kudos.
Original port for Trinity (ref #4629) Chaplain and Venugh
With the following incremental fixes during my review:

- Restore flightmaster end grid pre-loading
- Fix uninitialized Creature::m_path_id
- Add missing trinity_string entries for .movegens command
- Fix a bug in WaypointMovementGenerator that would trigger unexpected pausing at waypoints for various amounts of time

Known issues:
- Errors like WaypointMovementGenerator::LoadPath creature XXX (Entry: YYYYY GUID: ZZZZZZ) doesn't have waypoint path id: 0.
This is caused by bad DB data. This commit didn't "break" it.

Do not forget to re-run CMake before compiling.
2012-01-14 15:36:07 +01:00
kiper
8299627ed9 Update headers for 2012. HAPPY NEW YEAR!!! 2012-01-01 00:32:13 +01:00
Shauren
358b33239a Core: Fixed remaining C6246: Local declaration of 'x' hides declaration of the same name in outer scope. from previous commit 2011-11-23 19:17:33 +01:00
megamage
f091360940 Do not allow base map be accessed from outside if map is instanceable. 2011-11-23 13:14:59 -05:00
megamage
98be413ce0 Clean up very some confusing MapManager functions (create/find map/base map). 2011-11-23 12:45:59 -05:00
megamage
298c162c86 Do not allow an instance map to be created twice if it already exists. Fix #4018. 2011-11-23 09:34:08 -05:00
Kandera
04183cb8de Core/LFG: Fix being unable to enter an instance to retrieve body when you have 5 or more instances in the database. 2011-11-18 16:47:06 -05:00
megamage
462a2b9876 Change more ace_guard to trinity_guard 2011-11-08 10:48:49 -05:00
megamage
c29ff41001 Rename some classes in grid system.
Note: The naming of classes is still confusing. "cell" usually refers to class "Grid", and "grid" usually refers to class "NGrid". But it requires a lot of changes to clean this up.
2011-10-18 10:53:34 -04:00
Machiavelli
82dbe7bc17 Core: Fix some build errors after code style cleanup 2011-10-08 13:20:04 +02:00
Bootz
5b4c7783c2 REPO: Code-style clean-ups
* Fixed pMap->map
* Fixed pInstance->instance
* Fixed pInsta->instance
* Fixed pQuest->quest
* Fixed pWho->who
* Fixed pTarget->target
* Fixed pGo->go

~DEVNOTES: Handlers/QuestHandler.cpp still needs to be cleaned...
2011-10-07 19:45:43 -05:00
Spp
9e517c963b Cosmetic: Replace "* )" with "*)" and "* /*" with "* /*" 2011-09-29 09:32:55 +02:00
Spp
bf38cd8f3e Tab2spaces previous commit :S 2011-09-16 21:56:29 +02:00
Spp
d0f9406a10 Core/Instances: Resurrect a dead player (with corpse) before enter to instance. Original patch by Den 2011-09-16 21:54:45 +02:00
Spp
af05915b9e [Cosmetic] Apply codestyle "XXX * " and "XXX *" changed to "XXX* " (with some exceptions) 2011-09-15 14:12:57 +02:00
leak
1003f30448 Add spaces after commas 2011-04-29 20:47:02 +02:00
leak
5aeb4fe794 Core/ObjectMgr: Refactor sInstanceTemplate 2011-04-28 22:16:13 +02:00
Shauren
8898db8b27 Core: Corrected NULL usage, it should only be used with pointers, not integers 2011-04-23 15:53:48 +02:00
leak
2a34b41ce8 Core/Instances: Fix warning 2011-03-11 19:57:00 +01:00
leak
190ef1c2ef Core/Instances: Fix crash and allocation issue in instance id generation 2011-03-11 13:24:58 +01:00
leak
4569e4852a Core/Instances: Recycle instance IDs. Should fix instance ID shifting and related issues with instance binding.
fixes #736
2011-03-10 22:22:27 +01:00
Machiavelli
e07e20ffca Core/Log: Implement log masks for debug log level, to allow selective debug output. Update your worldserver.conf. 2011-02-20 20:16:34 +01:00
Shauren
464837077a Core/Instances: Implemented hourly instance limit: players are limited to entering 5 instances per hour (account wide limit) 2011-01-24 11:20:30 +01:00
Machiavelli
52cd2cbd7e Core/Maps: Unload transports in MapManager::UnloadAll instead of singleton destructor.
Core/Transports: Properly delink units from transports on transport desutruction. - Thanks to Shauren for help.
Core/ObjectAccessor: Unload corpse 'storage' in added UnloadAll method called in WorldRunnable postservice hook.
Core/Master: Change some postservice queries to syncrhonous (direct) execution to ensure execution on shutdown
Core/Master: Remove redundant calls to ACE::init and ACE::fini

These changes were made to fix crash/freeze issues on shutdown.
2011-01-16 00:08:52 +01:00
Machiavelli
957c69de83 Update copyright note for 2011.
Happy new year.
2011-01-01 15:01:13 +01:00
Shauren
928443d899 Core: Removed more operator workarounds for ACE_Singleton (missed previously because of inconsistent naming)
--HG--
branch : trunk
2010-12-23 23:25:44 +01:00
Machiavelli
7ba4caf3d0 Fix a real nasty typo that prevented people from using teleports/areatriggers
--HG--
branch : trunk
2010-12-22 21:56:43 +01:00
Shauren
0f3b9019a8 Core: Get rid of dirty operator workaround for ACE_Singleton class implementation
--HG--
branch : trunk
2010-12-22 21:25:23 +01:00
Shauren
7b4e1c6387 Core/ObjectMgr: Static members are no longer accessed through singleton
--HG--
branch : trunk
2010-12-22 20:23:47 +01:00
Spp
25ac835507 Core/Groups: Move all function definition from .h to .cpp
Core/Groups: Remove Group.h dependency from any .h file

--HG--
branch : trunk
2010-11-29 07:50:31 +01:00
linencloth
07fa1bcbdf Core/Creature: Implement FarTeleportTo (teleport to an other map)
Core/Transport: Cleanup and optimize transport and passenger handling
- Only transports will be active objects
  - Reduced cpu and memory usage
- Using FarTeleportTo for creature passengers at transport teleportation
  - Creatures won't be recreated on teleport

--HG--
branch : trunk
2010-10-24 02:55:50 +02:00
click
f0c4241ea4 Remove the accidental additions of CRLF-crap from the header updates
--HG--
branch : trunk
2010-10-07 15:35:36 +02:00
click
8ea4b32fab Update copyright headers (following the same standard in all files = good)
--HG--
branch : trunk
2010-10-07 12:41:56 +02:00
Machiavelli
a41e99223e Core/DBLayer:
* Rename QueryResult class to ResultSet
* Rename QueryResult_AutoPtr to QueryResult
* Declare ACE refcounted auto pointer for PreparedResultSet class

--HG--
branch : trunk
2010-09-11 21:10:54 +02:00
silinoron
c05d0722f4 Core/Game: forgotten changes from r3cc82905662712385f0d03895a426310e6cc96bd
--HG--
branch : trunk
2010-09-03 22:40:16 -07:00
silinoron
8649bee17f Replace World::getConfig with World::getFloatConfig, World::getIntConfig, and World::getBoolConfig.
Also fix a warning from a previous commit.

--HG--
branch : trunk
2010-08-23 19:56:47 -07:00
QAston
a630f78c98 *Remove transports from world on MapManager delete - thanks to click for help.
--HG--
branch : trunk
2010-08-12 18:06:40 +02:00
azazel
590199d8e1 * Rename InstanceData to InstanceScript
* Rename *mgr to their new names in scripts project
* Mass convert all the scripts (NEEDS THOROUGH TESTING, because it was done automatically) Please, report bugs on issue tracker.

--HG--
branch : trunk
rename : src/server/game/Instances/InstanceData.cpp => src/server/game/Instances/InstanceScript.cpp
rename : src/server/game/Instances/InstanceData.h => src/server/game/Instances/InstanceScript.h
2010-08-08 22:54:58 +06:00
XTZGZoReX
9083271a2f * Some singleton renames for consistency:
accmgr -> AccountMgr
objmgr -> ObjectMgr
auctionmgr -> sAuctionMgr
spellmgr -> sSpellMgr
CreatureEAI_Mgr -> sEventAIMgr
achievementmgr -> sAchievementMgr
gameeventmgr -> sGameEventMgr
sInstanceSaveManager -> sInstanceSaveMgr
poolhandler -> sPoolMgr

--HG--
branch : trunk
2010-08-08 05:25:45 +02:00
azazel
f9a51dc214 * Corpse related cleanup (author: Hunuza)
* Avoid saving of the corpse in arenas (author: VladimirMangos)

--HG--
branch : trunk
2010-08-06 00:15:29 +06:00
silinoron
71b1c781e3 Add basic support for NPCs on transports; DB data required.
Currently no support for combat while the transport is in motion.
Based on a patch by Socolin.
Fixes issue #168

--HG--
branch : trunk
2010-07-30 21:54:46 -07:00
QAston
48b360097c *use ASSERT macro instead of regular assert for better output.
--HG--
branch : trunk
2010-07-30 20:04:28 +02:00
QAston
c44b601ac7 *Allow some spell effects to target units not in caster's map - fixes SPELL_EFFECT_SUMMON_PLAYER
--HG--
branch : trunk
2010-07-29 19:48:40 +02:00
Shauren
ade1bbdd62 Remade access_requirement table, now each difficulty mode for each instance has its own entry (for future Dungeon Finder development)
Added completed achievement as new requirement type
Removed obsolete access_id from areatrigger_teleport table
Implemented automatic downscaling of raid difficulty when requested mode does not exist
Changed dungeon_difficulty in characters table to instance_mode_mask saving both dungeon and raid difficulty in form (dungeon diff | raid diff << 4)

--HG--
branch : trunk
2010-07-29 18:11:41 +02:00
click
3296a944e7 Convert to using ACE for reading configurationfiles, and remove dependency on dotconfpp configuration library and related files
(patch by astellar - and a thankyou to vladimir for being a russian teddybear)

--HG--
branch : trunk
2010-07-29 01:22:45 +02:00
Tartalo
aa9b52c67a bypass Map::CanEnter() checks on login (fixes a crash)
Need info about this bypass is exploitable or not

--HG--
branch : trunk
2010-06-29 15:41:39 +02:00
Tartalo
bb6d8a7e67 MapManager uses proper Map::CanEnter() function instead of rewriting the same
checks (we could move more code to there)

--HG--
branch : trunk
2010-06-28 20:31:20 +02:00
Tartalo
57687c5c40 Allow GMs to bypass instance entry requirements
--HG--
branch : trunk
2010-06-26 14:06:29 +02:00
Tartalo
26da69a544 Fix some deprecated checks on MapManager::CanPlayerEnter()
--HG--
branch : trunk
2010-06-26 13:32:24 +02:00
Machiavelli
0f7657b68c Get rid of Trinity Singleton and Threading patterns and replace them with ACE_Singletons and ACE_GUARD_x macro´s with ACE_Thread_Mutex´es respectively.
Also get rid of unused CountedReference class that used Trinity threading pattern.

--HG--
branch : trunk
2010-06-25 00:18:01 +02:00