openmw-tes3coop/apps/openmw/mwmechanics
scrawl 783594033a Optimize MWMechanics::Spells
Use pointers as map keys instead of string IDs. Resolves a nasty performance bottleneck on functions like hasCommonDisease() that previously had to look up all contained spells from the ESM store on every call. hasCommonDisease() is called hundreds of times per frame by the AI target update since it's used to calculate target disposition.

The total cost of hasCommonDisease() was 2.7% of the frame loop, now it's negligible.
2015-11-27 01:07:15 +01:00
..
activespells.cpp Move rng to components 2015-04-22 17:58:55 +02:00
activespells.hpp fix: multi effect spell with different ranges (Fixes #2285) 2015-03-01 15:34:18 +13:00
actor.cpp MechanicsManager, frame update 2015-04-25 15:19:17 +02:00
actor.hpp Add MWMechanics::Actor class for temporary actor state, move AiState there 2014-12-24 15:45:14 +01:00
actors.cpp Replace Play_NoTrack with playManualSound3D, and rename the latter 2015-11-25 04:24:26 -08:00
actors.hpp Alert the user if attempting to play an animation fails 2015-07-30 08:00:26 -04:00
actorutil.cpp Added MWMechanics::isPlayerInCombat() 2015-09-10 18:48:34 +12:00
actorutil.hpp actorutil.hpp includes mwworld/ptr.hpp 2015-09-11 18:43:06 +12:00
aiactivate.cpp Include cleanup 2015-07-25 02:11:49 +02:00
aiactivate.hpp Pass the CharacterController to AiPackage::execute 2015-06-26 17:47:04 +02:00
aiavoiddoor.cpp extracted MWMechanics::getPlayer() 2015-08-21 21:12:39 +12:00
aiavoiddoor.hpp Pass the CharacterController to AiPackage::execute 2015-06-26 17:47:04 +02:00
aicombat.cpp AiCombat distance check takes into account collision box (Fixes #1699) 2015-11-18 19:00:43 +01:00
aicombat.hpp AiCombat use evadeObstacles() from AiPackage. 2015-09-14 19:57:22 +12:00
aicombataction.cpp Optimize MWMechanics::Spells 2015-11-27 01:07:15 +01:00
aicombataction.hpp Silence -Wreorder warnings. 2015-04-28 18:48:02 -05:00
aiescort.cpp Include cleanup 2015-07-25 02:11:49 +02:00
aiescort.hpp Pass the CharacterController to AiPackage::execute 2015-06-26 17:47:04 +02:00
aifollow.cpp Add a threshold to AiFollow distance 2015-09-26 02:02:50 +02:00
aifollow.hpp Pass the CharacterController to AiPackage::execute 2015-06-26 17:47:04 +02:00
aipackage.cpp Fix AI being able to open locked doors (Fixes #2948) 2015-10-13 19:05:17 +02:00
aipackage.hpp AiCombat use evadeObstacles() from AiPackage. 2015-09-14 19:57:22 +12:00
aipursue.cpp extracted function isTargetMagicallyHidden(). 2015-08-09 14:20:55 +12:00
aipursue.hpp Pass the CharacterController to AiPackage::execute 2015-06-26 17:47:04 +02:00
aisequence.cpp extracted MWMechanics::getPlayer() 2015-08-21 21:12:39 +12:00
aisequence.hpp Pass the CharacterController to AiPackage::execute 2015-06-26 17:47:04 +02:00
aistate.hpp Remove BOOST_STATIC_ASSERT to fix clang warnings 2015-06-04 20:11:40 +02:00
aitravel.cpp Include cleanup 2015-07-25 04:14:22 +02:00
aitravel.hpp Pass the CharacterController to AiPackage::execute 2015-06-26 17:47:04 +02:00
aiwander.cpp Fixed errors pointed out by Zini. 2015-09-12 14:17:46 +12:00
aiwander.hpp Unifiy evadeObstacles() logic between AiWander and AiPackage 2015-08-30 08:32:47 +12:00
alchemy.cpp Remove empty line at the beginning of files 2015-08-18 23:06:12 +02:00
alchemy.hpp Add automatic potion naming 2014-10-20 17:45:11 +02:00
autocalcspell.cpp Fixed rest of travis errors. 2015-08-21 22:41:31 +12:00
autocalcspell.hpp Traverse spells in record order from content files. bronrod_the_roarer is perfect now. Other NPCs have some differences. 2014-07-12 18:53:15 +02:00
character.cpp Use a single-precision PositionAttitudeTransform in speed critical places 2015-11-22 19:54:26 +01:00
character.hpp Don't play idlestorm animation when swimming 2015-11-03 17:48:35 +01:00
combat.cpp Use a single-precision PositionAttitudeTransform in speed critical places 2015-11-22 19:54:26 +01:00
combat.hpp Move attackStrength to the CharacterController, where it should have been to begin with 2015-06-26 05:15:07 +02:00
coordinateconverter.cpp Fixed errors pointed out by Zini. 2015-09-12 14:17:46 +12:00
coordinateconverter.hpp Fixed errors pointed out by Zini. 2015-09-12 14:17:46 +12:00
creaturestats.cpp extracted function CreatureStats::isParalyzed() 2015-08-20 18:12:37 +12:00
creaturestats.hpp extracted function CreatureStats::isParalyzed() 2015-08-20 18:12:37 +12:00
difficultyscaling.cpp extracted MWMechanics::getPlayer() 2015-08-21 21:12:39 +12:00
difficultyscaling.hpp Implement difficulty scaling (Fixes #1505) 2014-07-20 16:38:20 +02:00
disease.hpp Optimize MWMechanics::Spells 2015-11-27 01:07:15 +01:00
drawstate.hpp Savegame: store most of CreatureStats 2014-05-12 21:37:36 +02:00
enchanting.cpp extracted MWMechanics::getPlayer() 2015-08-21 21:12:39 +12:00
enchanting.hpp Enchanting: fix skill-based cast cost bonus being applied twice 2015-01-07 04:41:12 +01:00
levelledlist.hpp extracted MWMechanics::getPlayer() 2015-08-21 21:12:39 +12:00
magiceffects.cpp Remove empty line at the beginning of files 2015-08-18 23:06:12 +02:00
magiceffects.hpp Fix various MSVC warnings 2015-02-15 20:10:21 -06:00
mechanicsmanagerimp.cpp Use a single-precision PositionAttitudeTransform in speed critical places 2015-11-22 19:54:26 +01:00
mechanicsmanagerimp.hpp Alert the user if attempting to play an animation fails 2015-07-30 08:00:26 -04:00
movement.hpp Readded collision objects and movement physics 2015-05-12 03:02:15 +02:00
npcstats.cpp Remove empty line at the beginning of files 2015-08-18 23:06:12 +02:00
npcstats.hpp Don't use separate werewolf skills/attributes for non-player werewolves 2015-06-21 17:28:18 +02:00
objects.cpp Make an error message slightly more helpful 2015-08-19 01:24:54 +02:00
objects.hpp Alert the user if attempting to play an animation fails 2015-07-30 08:00:26 -04:00
obstacle.cpp Rotations: move doors via Rotation rather than LocalRotation 2015-11-12 00:58:29 +01:00
obstacle.hpp Rotations: move doors via Rotation rather than LocalRotation 2015-11-12 00:58:29 +01:00
pathfinding.cpp Moved pathfinding logic from AiCombat to Pathfinding. 2015-09-19 15:34:02 +12:00
pathfinding.hpp pass parameters as const & 2015-08-04 18:14:36 +12:00
pathgrid.cpp centralize the world/cell coordinate conversion logic. 2015-08-16 18:55:02 +12:00
pathgrid.hpp fixed warning C4099: 2015-03-06 21:36:42 +13:00
pickpocket.cpp Move rng to components 2015-04-22 17:58:55 +02:00
pickpocket.hpp Implement pickpocket detection. Play a voiced dialogue entry when detected. 2014-01-07 03:01:33 +01:00
repair.cpp extracted MWMechanics::getPlayer() 2015-08-21 21:12:39 +12:00
repair.hpp Added PC repair feature 2013-03-23 08:16:46 +01:00
security.cpp Don't attempt to lock or unlock unsuitable objects (Fixes #2826) 2015-08-13 17:08:21 +02:00
security.hpp Cleanup Security class 2013-05-19 23:19:48 +02:00
spellcasting.cpp Optimize MWMechanics::Spells 2015-11-27 01:07:15 +01:00
spellcasting.hpp Don't play magic effect sounds & visual effects for unsuitable targets (Fixes #2811) 2015-08-13 17:08:21 +02:00
spells.cpp Optimize MWMechanics::Spells 2015-11-27 01:07:15 +01:00
spells.hpp Optimize MWMechanics::Spells 2015-11-27 01:07:15 +01:00
stat.cpp Explicity instantiate MWMechanics::Stat 2015-07-09 14:41:37 +02:00
stat.hpp Explicity instantiate MWMechanics::Stat 2015-07-09 14:41:37 +02:00
steering.cpp Fixed bug in smoothTurn() 2015-09-06 17:39:48 +12:00
steering.hpp Fixes for building with unity build 2015-09-24 15:21:42 +02:00
summoning.cpp Remove last remains of Ogre 2015-06-03 23:04:35 +02:00
summoning.hpp Suppress warning about the lack of virtual destructor. 2015-02-16 16:41:53 +11:00