1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-16 10:19:55 +00:00
Commit graph

880 commits

Author SHA1 Message Date
Alex "rainChu" Haddad
30ee3c5cf6 Equipped torches and lights run out of fuel 2013-10-15 21:50:14 -04:00
Emanuel Guevel
dcfff79460 Regenerate fatigue over time 2013-10-13 00:40:27 +02:00
Marc Zinnschlag
458c752425 Merge remote-tracking branch 'mckibbenta/tgm' 2013-10-12 13:38:10 +02:00
gus
94069e3a7e bugfix 2013-10-07 20:30:12 +02:00
gus
1ac3d99c78 pathfinding now works in AICombat. 2013-10-07 10:20:02 +02:00
Emanuel Guevel
2abe5c1c9a Acrobatics: do not apply fall damages when slowfalling spell effect is active
If spell effect ends up in mid-air, calculate fall height from then.
2013-10-02 23:34:25 +02:00
Emanuel Guevel
6e09a5fb4a Acrobatics: reinit fall height at current height rather than zero
To prevent problems.
2013-10-02 23:34:25 +02:00
Emanuel Guevel
2b992ef3b5 Acrobatics: use calculated fatigueTerm 2013-10-02 23:34:24 +02:00
Emanuel Guevel
4c151e59a2 Acrobatics: do not touch modified stats 2013-10-02 23:34:24 +02:00
Emanuel Guevel
4860514865 Acrobatics: cosmetic changes 2013-10-02 23:34:24 +02:00
mckibbenta
857deb3723 Merge branch 'master' into tgm 2013-10-02 13:54:03 -04:00
mckibbenta
073f64c8bb stop weapon condition degredation (for the player) with tgm on 2013-10-02 13:46:33 -04:00
Emanuel Guevel
b8c60dabb3 Reintroduce Acrobatics changes made by Glorf
Advance Acrobatics skill on jump and on landing,
apply fall damage on landing.
2013-10-01 23:35:34 +02:00
gus
83a375b55d AI now continue to hit you.
TODO: change the way time is handled
2013-09-28 21:17:06 +02:00
gus
2537384c50 bug fix 2013-09-28 12:25:37 +02:00
gus
9353f4d14f WIP AI combat 2013-09-25 18:01:36 +02:00
Marc Zinnschlag
94bb97e766 replacing tabs with spaces 2013-09-21 08:40:00 +02:00
Marc Zinnschlag
96b181bb54 Merge remote-tracking branch 'xethik/master' 2013-09-21 08:07:00 +02:00
Xethik
094e4d93b7 Generally speaking, you should never compare iterators from two different compilers
http://stackoverflow.com/questions/4657513/comparing-iterators-from-different-containers
It seems like this was just an overlook that happened to work on most systems. I was not able to thoroughly test this change, but it fixed an issue I was having in VC10.
It's possible the prev.end() was a copy paste error that was meant to be new.end() anyways.
2013-09-20 21:38:10 -04:00
mckibbenta
6bb6ba6372 added god mode comment 2013-09-15 16:12:59 -04:00
mckibbenta
89b7d6121d Initial toggleGodMod/tgm instruction. Currently only affects player health. 2013-09-12 08:30:00 -04:00
gus
f9bfbc8764 Merge branch 'master' of https://github.com/zinnschlag/openmw.git into AICombat 2013-09-10 16:18:39 +02:00
gus
46a734852b adding script instruction getLOS + some test about AI 2013-09-10 16:16:13 +02:00
mckibbenta
e545f49807 Merge branch 'master' of https://github.com/zinnschlag/openmw into tgm 2013-09-02 18:40:37 -04:00
Chris Robinson
82a09a988b Minor pathfinding cleanup 2013-08-29 19:17:27 -07:00
Chris Robinson
9499ac4fd5 Increase the distance for reaching a path node 2013-08-29 17:41:20 -07:00
Chris Robinson
f9dbce685a Avoid killing AIWander and AITravel when far away
This fixes the problem of certain NPCs not wandering because they
happened to spawn near a cell border away from the player, which
immediately "completed" the wander package.

AIWander can't cause NPCs to cross cell boundaries, so there's no risk
of them walking into an unloaded to. AITravel will now simply stop
moving, and resume later when the cell is loaded.
2013-08-29 17:41:20 -07:00
mckibbenta
f65172bdca Merge branch 'master' of https://github.com/zinnschlag/openmw into tgm 2013-08-29 20:26:36 -04:00
mckibbenta
eef9df504a fiddlings 2013-08-29 20:25:36 -04:00
Chris Robinson
84d259ab8e Avoid reconstructing strings for updating the dynamic stats
Attributes still do this, but they change infrequently enough that it doesn't
matter.
2013-08-28 10:50:29 -07:00
Chris Robinson
92082dae66 Modify the current magicka and fatigue when the base changes 2013-08-27 22:44:52 -07:00
Chris Robinson
305b5fec0f Avoid needlessly copying the MagicEffects 2013-08-27 21:40:31 -07:00
Chris Robinson
281fdbd81b Cleanup some redundancy 2013-08-27 17:56:47 -07:00
Chris Robinson
33c173a23a Update the watched Ptr when changing it 2013-08-27 17:22:07 -07:00
Chris Robinson
39af9a13fa Remove some unused functions 2013-08-27 17:13:49 -07:00
Chris Robinson
189541aa72 Apply drowning damage based on the update duration
1 damage every 0.33 seconds is 3 damage a second. Applying it this way avoid
having to track another stat.
2013-08-27 17:08:23 -07:00
Chris Robinson
cf6e3ab933 Fix a potential divide-by-zero 2013-08-19 09:36:51 -07:00
Chris Robinson
2ec39f3622 Don't start the jump animation until after the actor is airborn
A bit counter-intuitive, but otherwise certain jump animations will improperly
add an offset to the initial inertia.
2013-08-19 08:24:47 -07:00
Chris Robinson
ac3d3df9fc Implement jumping animations 2013-08-19 08:10:18 -07:00
Chris Robinson
6e9f15793d Implement a jumping state 2013-08-18 23:42:56 -07:00
Chris Robinson
b0f8045c72 Improve mid-air control 2013-08-18 05:59:06 -07:00
Chris Robinson
9d56e2d86d Apply movement by queueing it to do later 2013-08-17 22:34:38 -07:00
Chris Robinson
2353ac1739 Properly implement SetWerewolfAcrobatics 2013-08-13 04:54:41 -07:00
Chris Robinson
6fd4cdb5fb Play randomized werewolf sounds 2013-08-11 00:53:17 -07:00
Chris Robinson
180f0d0fe9 Restart from the loop point if replaying the same animation 2013-08-09 21:25:28 -07:00
Chris Robinson
5968165de0 Merge remote-tracking branch 'zini/master' into werewolf
Conflicts:
	apps/openmw/mwgui/windowmanagerimp.cpp
2013-08-09 07:00:00 -07:00
Chris Robinson
a28c36de17 Don't count as running if not actually moving along (local) X/Y 2013-08-09 06:53:07 -07:00
Chris Robinson
c2d8eb377f Play some appropriate sounds in werewolf form 2013-08-09 06:40:16 -07:00
Chris Robinson
ae183cb3e4 Handle werewolf stats 2013-08-09 05:14:58 -07:00
Chris Robinson
46bc7bd9c8 Some cleanup since NpcStats is now also CreatureStats
This isn't a thorough cleaning, so keep an eye out for more
2013-08-09 01:14:08 -07:00
Chris Robinson
75b6515915 Inherit NpcStats from CreatureStats 2013-08-08 23:28:02 -07:00
PLkolek
86020ad94d Added underwater and drowning sounds. 2013-08-08 20:57:15 +02:00
Chris Robinson
2bac4566c0 Merge remote-tracking branch 'PotatoesMaster/werewolf' into werewolf
Conflicts:
	apps/openmw/mwmechanics/actors.cpp
	apps/openmw/mwscript/statsextensions.cpp
2013-08-08 00:09:29 -07:00
PLkolek
8f4506f5b6 Implemented drowning.
Currently no visual effects on losing health, the breathing sound doesn't change (we don't have one),
the breath bar doesn't turn red when no breath left and it doesn't pulse from black to red.
2013-08-07 16:46:46 +02:00
Emanuel Guevel
48d2554ac3 Auto-equip when items are added to the inventory
We limit that to armor pieces and clothing items.
No auto-equiping for the player nor werewolves.
2013-08-07 15:17:55 +02:00
Emanuel Guevel
e0d0cdd18a Do not auto-equip items continuously
This was called every couple of frames.
2013-08-07 14:30:13 +02:00
Chris Robinson
8f69c51b24 Avoid some unnecessary references 2013-08-06 19:49:00 -07:00
Chris Robinson
eab4e09566 Handle the pick/probe in the character controller 2013-08-06 19:48:59 -07:00
Emanuel Guevel
20d40c4368 Implement MWWorld::World::setWerewolf() 2013-08-06 12:34:35 +02:00
scrawl
4caac0d859 Fix idle animations repeating 2013-08-05 02:06:23 +02:00
vorenon
76a1abe9fa Don't allow the use of the "jump" key while sneaking - Update 2013-08-04 20:10:33 +02:00
scrawl
982f743ddd Fix wrong idle animations played 2013-08-03 13:13:33 +02:00
vorenon
aa45127895 Adjusted swish sounds
Sorry Chris, I was wrong. The game actually uses SwishM for every attack, but at a different pitch depending on the force of the attack. I realized it after testing your changes.
2013-08-02 16:33:39 +02:00
Chris Robinson
f57c829cba Play the appropriate swish sound and follow-up animation 2013-08-02 00:21:02 -07:00
Chris Robinson
b70975a74d Move getEvasion to CreatureStats 2013-08-02 00:21:01 -07:00
scrawl
7dc30a01cd Some changes suggested by cppcheck 2013-07-31 18:46:32 +02:00
scrawl
16cacb338a Initialize MWMechanics::AiSequence from ESM::AiPackageList 2013-07-31 00:55:08 +02:00
Chris Robinson
3298eb1b37 Implement HitOnMe script function 2013-07-26 10:50:23 -07:00
Chris Robinson
4ad28ed369 Don't play a weapon-down sound when unreadying a spell 2013-07-25 00:46:20 -07:00
Chris Robinson
0db02af807 Set up the weapon state in the CharacterController constructor 2013-07-24 21:08:16 -07:00
Chris Robinson
705498ec24 Play a swish sound when attacking 2013-07-24 10:34:53 -07:00
Chris Robinson
bf1d907d07 Don't play casting animations for enchantments 2013-07-24 05:39:15 -07:00
Chris Robinson
cc8e8c1272 Use the attack strength as determined by how long the attack was held 2013-07-24 03:18:53 -07:00
Chris Robinson
11b094559f Play the appropriate casting animation sound 2013-07-23 11:12:19 -07:00
Chris Robinson
17282c69b1 Handle spell-casting animation sequences 2013-07-23 07:30:54 -07:00
Chris Robinson
4d157cb19a Handle marksmen weapon attack sequences 2013-07-23 06:13:08 -07:00
Chris Robinson
d5d832846e Rename the follow-up upper character state enum 2013-07-23 04:56:49 -07:00
Chris Robinson
24567294ff Move NPC state update handling into a separate method 2013-07-23 03:26:24 -07:00
Chris Robinson
22e07968af Store the current weapon group name 2013-07-23 02:50:52 -07:00
Chris Robinson
0240efa6cf Improve weapon attack logic to better handle picks, probes, and h2h 2013-07-23 02:28:58 -07:00
Marc Zinnschlag
ec575200e3 Merge remote-tracking branch 'gus/MeleeCombat2'
Conflicts:
	apps/openmw/mwrender/animation.cpp
2013-07-23 09:12:23 +02:00
Emanuel Guevel
48f0e64ec3 Fix health calculation at character creation 2013-07-21 11:02:03 +02:00
Emanuel Guevel
2356e6218e Complete health increase on level up 2013-07-20 22:14:10 +02:00
Emanuel Guevel
2a0644a7c3 Move some levelup logic from mwgui to mwmechanics 2013-07-20 22:14:10 +02:00
Emanuel Guevel
7837dcdc19 Calculate NPC health on loading instead of updating it continually
Only NPC with auto-calculated stats are concerned.
2013-07-20 22:14:10 +02:00
Emanuel Guevel
074e241c32 MWMechanics::DynamicStat: fix members initialization 2013-07-20 22:14:09 +02:00
Chris Robinson
9c13568bb7 Remove idles from the state list and rename it 2013-07-18 01:49:53 -07:00
Chris Robinson
e803cdbe7f Handle swimdeath and missing death animations 2013-07-18 01:13:53 -07:00
Chris Robinson
f01b0b48cc Don't start with an idle state if dead 2013-07-18 00:35:03 -07:00
Chris Robinson
e78bdd2a5d Clear 'swim' from the animation name as a backup instead of 'sneak' 2013-07-18 00:22:40 -07:00
Chris Robinson
d6324d71bf Ensure mechanics actors/objects are cleared before adding them 2013-07-17 21:39:21 -07:00
Chris Robinson
0cd4df3edf Stop playing idles on death 2013-07-17 02:19:22 -07:00
Chris Robinson
e2e278d06d Fix some animations not playing properly
Default movement animation speed multiplier should be 1, not 0. Only
randomize death1...death5 for NPCs.
2013-07-17 02:06:31 -07:00
scrawl
dfe912dcab Enum renaming 2013-07-16 23:38:55 +02:00
scrawl
91e95e1404 Use the correct slash, chop or thrust animation 2013-07-16 23:32:41 +02:00
gus
66e3eacace fix bows 2013-07-16 15:14:34 +01:00
gus
701ff94887 bugfix for lockpick 2013-07-16 14:46:44 +01:00
gus
20341ae8b7 simplification + taking into account weapon speed. Seems too fast, but i'm not sure 2013-07-16 14:10:14 +01:00
gus
8fc6e73649 post-merge fix 2013-07-16 11:51:18 +01:00
gus
ee47e99dad Merge branch 'master' of https://github.com/zinnschlag/openmw.git into MeleeCombat2
Conflicts:
	apps/openmw/mwmechanics/character.cpp
	apps/openmw/mwmechanics/character.hpp
2013-07-16 11:40:19 +01:00
gus
f6e3445414 Jittering gone + bugfix: chop animation works!
TODO: fix this unequip stuff
2013-07-16 09:50:59 +01:00
Chris Robinson
a932a89e02 Specify the velocity-based animation speed multiplier when playing it 2013-07-16 01:30:03 -07:00
Chris Robinson
f296d13c20 Add a speed multiplier to the animation state 2013-07-16 00:43:31 -07:00
Chris Robinson
3a1facefdf Store a pointer to the character controller for non-actor objects 2013-07-15 23:47:04 -07:00
Chris Robinson
06e631f213 Track death separately in the character controller 2013-07-15 23:43:33 -07:00
Chris Robinson
4ae65c20e6 Separate movement and idle states
This allows us to better handle cases of "missing" animations. Mainly for
first-person, but also for spells and certain weapon types.
2013-07-15 22:56:23 -07:00
gus
f7f23ac5d8 improvement of the chop animation. Still some jittering. 2013-07-15 17:18:16 +01:00
gus
076f98cbba change way animations keys are handled (thanks KittyCat!) 2013-07-15 16:37:25 +01:00
gus
3947f44aa3 Porting old work 2013-07-13 22:24:52 +01:00
Chris Robinson
7883087586 Store a pointer to the character controller in the map 2013-07-12 22:31:50 -07:00
Vincent Heuken
b095c24854 resize actor collision boxes on death 2013-06-27 14:11:20 -07:00
Glorf
88f8637145 Bugfix #795 2013-06-26 22:20:24 +02:00
Marc Zinnschlag
f586eef604 Merge remote-tracking branch 'torben/pathfindingoverhaul' 2013-06-01 10:44:23 +02:00
Torben Carrington
09beafd044 Pathfinding Overhaul - Master cleanup! Cleaned pathfinding entirely, all AI packages that are implemented as well, Increased buffer! This makes the intro guard no longer walk into you or go to far into the room (not tested against vanilla distances but it seems accurate enough until the next itteration of pathfinding fixes). 2013-05-31 17:49:52 -07:00
Torben Carrington
a4caec56cf Pathfinding Overhaul - Fixed selecting cells that are inaccessable from AIWander and pathfinding in general (sadly requires minor effort on the AI Packages implementation but it is the quickest way I can see), minor cleanup again (there is a lot to cleanup, this will prolly be in every commit). 2013-05-31 17:01:42 -07:00
scrawl
8bd712cc95 Fix being able to move slowly when over encumbered 2013-05-31 04:08:44 +02:00
Torben Carrington
73a9671742 Pathfinding Overhaul - Changed the name of checkIfNextPointReached to a more intuitive name considering what it does (checkPathCompleted) and fixed a minor bug in it, modified buildPath() to take one final parameter, a bool which dictates whether or not to always use pathfinding (like AIWander should be doing) or to allow for "shortcuts", modified all ai packages to work with these two changes. 2013-05-29 20:05:17 -07:00
Torben Carrington
c080785235 Pathfinding Overhaul - Finished cleaning, removed unnecessary parameter in one function, fixed use of the function in ai packages and added use of clearPath() function in aiwander, fixed algorithms and got rid of excess subtractions in getDistance functions (thanks to Chris!). 2013-05-29 19:26:45 -07:00
Torben Carrington
7b465ae4f1 Pathfinding Overhaul - Even more cleanup and spacing corrections, small renaming (more to come), removed a few unnecessary actions that wasted CPU time and tmp RAM. 2013-05-29 17:33:33 -07:00
Torben Carrington
96fdaf7410 Pathfinding Overhaul - More cleanup. 2013-05-29 16:10:15 -07:00
Torben Carrington
4838678944 Pathfinding Overhaul - Cleanup, removed unnecessary include, fixed spacing, added a function for clearing a path, overall preperation to begin working on fixing pathfinding. 2013-05-29 15:59:23 -07:00
Miroslav Puda
dc17fa1636 Removal of duplicit enumeration and unnecessary conditions. 2013-05-29 00:01:18 +02:00
Marc Zinnschlag
bbec3680c6 Merge remote-tracking branch 'pakanek/enchanting-mechanics' 2013-05-28 10:02:03 +02:00
Miroslav Puda
7a4a386cbe Removal of tab characters. 2013-05-27 20:47:53 +02:00
Torben Carrington
dbbc96f600 AIWander Segmentation Fault Fix - Fixes the segmentation fault that used to occur when there was no pathgrid in the cell and a range was passed to AIWander. 2013-05-27 11:44:46 -07:00
Miroslav Puda
b40e24c50c Refactorization 2013-05-27 20:23:04 +02:00
Miroslav Puda
4e17bc1499 Fix for display of cast cost decimal value 2013-05-27 20:16:57 +02:00
Miroslav Puda
9a9b075a02 Correct cast cost for enchantments. 2013-05-27 18:08:12 +02:00
Torben Carrington
ebc1fdd017 AIWander Patch - fixed another possibility of a bug occuring, best to fix it now then wait until it happens. 2013-05-27 09:05:42 -07:00
Miroslav Puda
1c7b94e94f Switching in nextCastStyle() is now based on enum CastingStyle. 2013-05-27 16:08:58 +02:00
Miroslav Puda
252a1d9223 Replacement of some magical constants 2013-05-27 15:50:47 +02:00
Miroslav Puda
9e1eb8b3b1 Merge branch 'master' of https://github.com/zinnschlag/openmw into enchanting-mechanics 2013-05-27 14:45:22 +02:00
Miroslav Puda
4788b5e226 Better formula for enchantment cost and code refactorization. 2013-05-27 14:42:08 +02:00
Miroslav Puda
56edc1b213 Correction of getting spell range "Target". 2013-05-27 12:26:06 +02:00
Torben Carrington
bd6d54cc8f AIWander Minor Patch - Forgot an else statement and another check on an empty node vector, previously no nodes in range or only one would cause the AIWander to not do anything, now they will play idles correctly still. 2013-05-27 03:24:41 -07:00
Marc Zinnschlag
bd8344b387 Merge remote-tracking branch 'torben/aiwander' 2013-05-27 10:16:37 +02:00
Torben Carrington
3b43ee751e AI Execute Fix - May as well not create the object either to save extra time. 2013-05-26 19:54:59 -07:00
Torben Carrington
feb180724c AI Execution Fix - Preiovusly AiExecute was being called even when in a menu, this was not correct behavior. 2013-05-26 19:33:45 -07:00
Torben Carrington
fd96d47fe4 AIWander Completed. Replicates vanilla as best possible, pathfinding needs fixing before this looks correct but once the pathfinding files are edited this will behave pretty much exactly as vanilla. Major credit to Hrnchamd for major research. 2013-05-26 11:30:42 -07:00
Torben Carrington
96daad7a22 AIWander - shortened some if statements and made super minor optimizations to others, now using proper GMST to load proper idlechance instead of hacky set value." 2013-05-26 09:31:56 -07:00
Torben Carrington
e37324b967 AIWander everything works. only two things to do: Implement limiting selection on z axis, and correcting decision algorithm. 2013-05-26 08:49:44 -07:00
Marc Zinnschlag
5fac75845c Merge remote-tracking branch 'torben/aiescortclean' 2013-05-25 15:35:56 +02:00
Torben Carrington
ddf28ca201 AIEscort Cleanup - Fixed spacing, removed unnecessary includes, fixed branch itself. The other pull requests were fine, it was just this one with the problem. 2013-05-25 04:36:21 -07:00
Marc Zinnschlag
94474e8952 Merge remote-tracking branch 'torben/checkidlecomplete' 2013-05-25 12:35:34 +02:00
Torben Carrington
c8c1ddd927 Adds functionality for checking if the animation group passed is currently playing on the actor passed. This is needed for AIWander. 2013-05-24 20:10:07 -07:00
Torben Carrington
56b1384c90 AITravel Cleanup - Removed unnecessary includes and other varius cleanups. 2013-05-24 18:16:35 -07:00
Torben Carrington
1cfe037d6b AIWander - Added support for the Repeat parameter to mimic vanilla. 2013-05-24 04:49:20 -07:00
scrawl
d9dd02c610 Security fixes 2013-05-20 12:42:11 +02:00
scrawl
2715520d6f Cleanup Security class 2013-05-19 23:19:48 +02:00
scrawl
5173779f4b Add sounds for security skill 2013-05-19 19:48:51 +02:00
scrawl
7a2d1cd8ce Security skill 2013-05-19 18:40:37 +02:00
Chris Robinson
e8bbb755c3 Play the left-arm torch animation when it's equipped 2013-05-17 06:21:59 -07:00
Chris Robinson
4b9a888d74 Use the PickProbe animation group as appropriate 2013-05-17 01:46:51 -07:00
Chris Robinson
6201cb0093 Add a method to clear the animation queue 2013-05-16 06:59:41 -07:00
Chris Robinson
6c6200efef Merge remote-tracking branch 'zini/master' into animations 2013-05-15 16:34:51 -07:00
scrawl
c41f119ba6 Added new game button 2013-05-15 17:54:18 +02:00
Chris Robinson
e069215583 Don't clear the last queued animation when it stops 2013-05-15 06:32:20 -07:00
Chris Robinson
66f55b3178 Play the item up/down sound when readying/unreadying weapons 2013-05-15 01:45:47 -07:00
Chris Robinson
b459a010b0 Fix vec.z being applied while not in the air 2013-05-14 23:03:28 -07:00
Chris Robinson
e8661794fe Avoid trying to find a state for non-actors.
They're only ever play idles, unless PlayGroup is called.
2013-05-14 07:29:07 -07:00
Chris Robinson
8ec722ac92 Use std::find_if instead of ugly for loops 2013-05-13 04:08:36 -07:00
Chris Robinson
f83ee5d316 Play ready/unready animations on the upper body 2013-05-13 03:32:00 -07:00
Chris Robinson
70dc2f77ad Move the priority enum to MWMechanics 2013-05-13 00:54:44 -07:00
Chris Robinson
7ba2508556 add a priority for death animations, and store it in the state list 2013-05-12 19:19:21 -07:00
Chris Robinson
4e389b5a8f Store whether a given animation loops in the state table 2013-05-12 05:59:39 -07:00
Chris Robinson
bbb38c61cc Fix queued animations 2013-05-12 05:08:01 -07:00
Chris Robinson
2c556e4036 Be smarter about handling non-moving animations
Don't rely on being told by the play method, so the animation can
automatically change without impacting the character controller.
2013-05-12 04:29:42 -07:00
Chris Robinson
6b8a687a79 Add methods to disable an animation
And rename WeaponState to WeaponType
2013-05-10 22:22:39 -07:00
Chris Robinson
abc676eedd Allow specifying which bone groups to play an animation on 2013-05-10 20:05:09 -07:00
Chris Robinson
7c3b014193 Figure out which animations to play based on priority
Bone group will also be taken into account later.
2013-05-10 18:37:44 -07:00
Chris Robinson
ccff364b52 Use a map of active layers instead of an array
A bit of an upheaval. Each animation is now a "layer", instead of each layer
having an animation. Incidentally, this is much closer to how Ogre handles
animation states.

In the future, each layer will have a priority, which will be used to determine
which one affects a given bone group (which we currently only have one of).
2013-05-10 03:08:07 -07:00
Chris Robinson
74ed1f73b4 Merge remote-tracking branch 'zini/master' into animations 2013-05-09 13:53:38 -07:00
Torben Carrington
4928c9d079 Removed sqrt function call (minor optimization thanks to Chris) 2013-05-08 20:47:31 -07:00
Torben Carrington
d20178dd56 Removed unnecessary std::cout messages 2013-05-08 20:05:45 -07:00
Torben Carrington
133964f0e4 AIEscort complete 2013-05-08 20:02:24 -07:00
Torben Carrington
c03dca47f5 AIEscort implemented and working - only touchups are needed. 2013-05-08 17:19:47 -07:00
Torben Carrington
10840765d9 Framework - duration and pathing implemented, no waiting for follower yet. 2013-05-08 15:27:20 -07:00
Marc Zinnschlag
51067698a8 minor cleanup 2013-05-08 21:26:39 +02:00
Chris Robinson
90e29c83c0 Merge remote-tracking branch 'zini/master' into animations
Conflicts:
	apps/openmw/mwmechanics/character.cpp
2013-05-06 19:17:39 -07:00
gus
006f25d1c0 First try to improve AI. Does not work yet due to strange bug in physicsystem 2013-05-06 00:46:50 +01:00
gus
7fe7111c19 Fargoth quest almost works. There is still a sall problem as the path taken is not exactly the same. I need to copy the exact way morrowind do pathfinding... 2013-05-03 17:09:09 +01:00
kpp
dcccfd9f22 Initialize values 2013-05-02 22:43:21 +04:00
Chris Robinson
a120653c38 Implement handling weapon states 2013-05-01 10:19:16 -07:00
Marc Zinnschlag
95eeea2a27 Revert "Merge remote-tracking branch 'glorf/acrobatics'"
This reverts commit 089ef7a2a0, reversing
changes made to 67422c397c.
2013-05-01 16:56:16 +02:00
Glorf
b8630239d7 Code cleanup 2013-05-01 12:25:02 +02:00
Glorf
236ec3409f Finished acrobatics 2013-05-01 12:21:59 +02:00
Chris Robinson
4b15da076b Move getStateInfo into the character controller 2013-04-30 19:26:41 -07:00
Glorf
d30e43784a Fatigue decrease when jumping, live decrease when falling 2013-04-30 23:39:56 +02:00
Glorf
5a8c1661be Jump acrobatics working, started falling acrobatics implementation 2013-04-30 20:44:17 +02:00
Glorf
add3cd6456 Advance acrobatics on jump 2013-04-30 18:22:59 +02:00
Chris Robinson
05060e57ec Add a weapon state to the character controller 2013-04-29 13:07:49 -07:00
scrawl
78596cad83 Fix enchantment points value 2013-04-29 10:19:09 +02:00
scrawl
07891fa213 Athletics skill increase 2013-04-28 07:53:04 +02:00
Chris Robinson
274f3c7b77 Force character state to update after switching view modes 2013-04-25 07:08:11 -07:00
Chris Robinson
e4eb4b7e30 Keep track of the character looping state 2013-04-25 06:29:17 -07:00
Chris Robinson
9da2c9153e Don't store the animation group string in the character controller 2013-04-25 06:12:37 -07:00
Chris Robinson
24f1eba902 Keep track of whether an animation supplies movement
Also handle it when it doesn't.
2013-04-24 22:45:43 -07:00
Chris Robinson
0817d59f23 Allow specifying where to start in an animation 2013-04-24 19:09:36 -07:00
Chris Robinson
333354fe62 Remove the character controller from the Animation class 2013-04-24 07:10:41 -07:00
Chris Robinson
b80891099e Don't use the character controller to handle text keys
The Animation class has the Ptr and can call to whatever subsystem is needed.
2013-04-24 06:48:34 -07:00
Chris Robinson
e8cabc9434 Pass the loop count from loopgroup to the play method
Instead of queueing each iteration separately.
2013-04-24 06:32:11 -07:00
Chris Robinson
c58dfbe921 Specify the loop count to Animation::play 2013-04-24 04:56:39 -07:00
Chris Robinson
8782ae6976 Separate some Animation fields into a separate AnimLayer class 2013-04-22 23:52:28 -07:00
Chris Robinson
bb64efc18e Improve looping behavior 2013-04-22 05:08:52 -07:00
Chris Robinson
6c85d6763a Pass "loop stop" to the character controller 2013-04-21 18:38:25 -07:00
Marc Zinnschlag
1b764e5d3c Merge remote-tracking branch 'gus/AI' 2013-04-18 22:17:49 +02:00
Glorf
f9deb593d1 Bugfix #578 2013-04-18 21:37:58 +02:00
gus
c753eb4c28 another way to do pathfinding. Slightly less powerfull algorithme in theory, but morrowind pathgrids are so simple it shouldn't be a problem. Hope it solves the bug for KittyCat 2013-04-18 18:35:01 +01:00
scrawl
2693b78536 Add initial player inventory when new game is started 2013-04-15 02:56:23 +02:00
scrawl
a57fbbb168 Fix wrong detection of diseases 2013-04-14 17:51:17 +02:00
gus
905cff2a94 anonymous namespace 2013-04-11 18:02:12 +01:00
gus
0a187e56aa bugfix 2013-04-11 17:58:11 +01:00
gus
6934b20abd actors are now updates every frame. This should not be the case, but this is a quickfix for AI. 2013-04-11 17:57:58 +01:00
gus
b5b0e7a656 Merge branch 'master' of https://github.com/zinnschlag/openmw.git into AI 2013-04-11 16:15:32 +01:00
Marc Zinnschlag
beb1858a57 Merge remote-tracking branch 'glorf/bugfix' 2013-04-10 17:39:19 +02:00
Glorf
194ca2584d Small azura's star fix 2013-04-08 17:53:41 +02:00
Chris Robinson
3768e04a0c Merge remote-tracking branch 'zini/master' into nifogre 2013-04-07 17:24:47 -07:00
scrawl
8bbfba3f43 Fix fatigue not being set to its maximum value when player is rebuilt 2013-04-07 16:18:40 +02:00
Chris Robinson
41e410347e Merge remote-tracking branch 'zini/master' into nifogre 2013-04-06 10:35:01 -07:00
Chris Robinson
1d934e3112 Reduce some stdout spam 2013-04-06 04:46:28 -07:00
Glorf
48d9885554 Started bugfix #691 2013-04-05 15:42:05 +02:00
Marc Zinnschlag
18e046e628 cleaned up race record struct 2013-04-04 13:50:36 +02:00
Glorf
08e9bb0236 Another small enchanting fix 2013-04-03 18:25:40 +02:00
Glorf
ae3e4ecf8b Finished enchanting 2013-04-03 18:02:30 +02:00
Glorf
7b7d3353a6 Exception for enchanting with Azura Star 2013-04-02 22:23:38 +02:00
Glorf
369cf0b4ca Enchanting price mechanics 2013-04-02 20:46:48 +02:00
Marc Zinnschlag
df658d29f0 Merge branch 'faction' 2013-04-02 14:21:51 +02:00
Marc Zinnschlag
f9f520df34 adjusted faction record to increase consistency with other records 2013-04-02 13:59:45 +02:00
gus
6a33170ca2 More bugfix, but I don't like this one. 2013-04-01 17:44:06 +00:00
gus
20af7d89a2 post master-merge fixes. Looks a little odd. 2013-04-01 17:30:40 +00:00
gus
2be9405c96 the sgn function is no longer in the global namespace 2013-04-01 15:44:08 +00:00
Marc Zinnschlag
751c679255 Merge remote-tracking branch 'glorf/enchanting' 2013-04-01 17:35:04 +02:00
Marc Zinnschlag
9dbd024076 another minor fix 2013-04-01 17:30:54 +02:00
Glorf
1bff6ed872 Enchaning values import, fixed constness 2013-04-01 17:12:47 +02:00
gus
1eb3d3e10e Merge branch 'master' of https://github.com/zinnschlag/openmw.git into AI
Conflicts:
	apps/openmw/CMakeLists.txt
2013-04-01 14:10:19 +00:00
gus
47cc945ef4 more refactoring 2013-04-01 12:38:13 +00:00
Marc Zinnschlag
26db983599 minor fix 2013-04-01 10:46:08 +02:00
Chris Robinson
d0703efd69 Another place to check the class' isActor method 2013-03-31 17:32:39 -07:00
Chris Robinson
04aeb3dd07 Rename Mechanics' Activators to Objects 2013-03-31 17:32:38 -07:00
Chris Robinson
10d04c928c Use the object's class to check if it's an actor 2013-03-31 17:32:38 -07:00
Glorf
d29a42dcbe Fixed enchanting mechanics 2013-03-31 23:18:23 +02:00
gus
63424ade56 refactoring 2013-03-31 17:30:03 +00:00
scrawl
1a2daa3bc1 Merge branch 'master' of git://github.com/zinnschlag/openmw into companion 2013-03-31 14:50:03 +02:00
scrawl
b0199c703c Companion UI 2013-03-31 13:13:46 +02:00
Chris Robinson
4836ba16f7 Implement turning states 2013-03-31 03:50:20 -07:00
Chris Robinson
7b02ec411b Apply the rotation when updating the character controller 2013-03-31 01:29:24 -07:00
Chris Robinson
466c0086b8 Use a full Movement to hand off to the world physics update 2013-03-31 00:13:56 -07:00
Chris Robinson
0ce188b7cc Store the position and rotation in MWMechanics::Movement 2013-03-30 19:00:46 -07:00
Chris Robinson
af65ecd841 Pass the movement vector in as a parameter to CharacterController::update 2013-03-30 18:37:40 -07:00
Glorf
7dbc779c3a Self-enchanting mechanics 2013-03-30 19:08:42 +01:00
scrawl
e7af718b55 Remove unnecessary WindowManager::messageBox arguments 2013-03-30 12:56:37 +01:00
Marc Zinnschlag
573368849b Merge remote-tracking branch 'glorf/enchanting'
Conflicts:
	apps/openmw/CMakeLists.txt
2013-03-29 16:48:21 +01:00
Glorf
86275e5bd4 Some enchanting fixes 2013-03-29 12:00:09 +01:00
Glorf
cc8f7f238e Enchanted item base ptr fix 2013-03-29 00:55:29 +01:00
Glorf
eb88463b94 Some enchanting fixes 2013-03-28 23:39:20 +01:00
Glorf
6643fe789c Enchanting system 2013-03-28 17:41:00 +01:00
scrawl
efe6a3ebee Fix compile error & warnings 2013-03-26 18:01:01 +01:00
scrawl
2ecd2f4ecd Merge branch 'next' into HEAD 2013-03-26 17:44:53 +01:00
scrawl
a2ca679beb Added PC repair feature 2013-03-23 08:16:46 +01:00
Marc Zinnschlag
fd2c07a6f4 delete death events on adding an actor to the scene 2013-03-18 10:54:47 +01:00
Marc Zinnschlag
61cb0f98a6 keep track of death events 2013-03-18 10:47:09 +01:00
scrawl
95e1cdc07d Move getArmorRating to MWWorld::Class. 2013-03-17 22:29:12 +01:00
scrawl
dd57eabc3e Better use an enum for magic effect IDs 2013-03-16 23:28:26 +01:00
scrawl
1666bc7740 Armor rating 2013-03-16 22:53:33 +01:00
gus
9efb073617 clean up + correct a bug 2013-03-14 18:05:00 +00:00
gus
80804fac35 check if the NPC is close from a non loaded cell. If yes, AITravel is simply ended. 2013-03-14 17:16:37 +00:00
gus
f943580138 Somehow manages to get from one cell to another, but this looks wrong... And I don't know how morrowind do it, because aitravel is completly buggy 2013-03-12 17:44:22 +00:00
gus
bbc4c23f7e AITravel now works correctly on exterior cells. As long as NPC don't try to leave cell, it's ok. 2013-03-10 15:07:22 +00:00
Emanuel Guevel
c020665cf2 Fix appending int to string in an exception message 2013-03-09 01:00:03 +01:00
gus
01908dbcc2 little improvement 2013-03-06 21:17:33 +00:00
gus
5fc7103425 First attempt at pathfinding using boost::graph 2013-03-06 20:31:47 +00:00
scrawl
8be9627c8d Fix method signatures 2013-03-06 21:26:41 +01:00
scrawl
f7d8f6456f Stats should never go below 0 2013-03-06 20:45:11 +01:00
scrawl
268bb23590 Implemented sneaking animation 2013-03-06 16:58:56 +01:00
scrawl
6f05c4229f Implemented potion & ingredient effect stacking 2013-03-03 12:41:37 +01:00
scrawl
cf87708c1f Magic effect icons for spells 2013-03-03 12:01:19 +01:00
Chris Robinson
000128d084 Merge remote-tracking branch 'zini/master' into misc-cleanup 2013-02-25 10:38:08 -08:00
Chris Robinson
48271e49ec Properly update the Ptr object in the mechanics manager when moving across cells 2013-02-25 09:57:34 -08:00
Marc Zinnschlag
88e8659a49 minor cleanup 2013-02-25 16:52:31 +01:00
scrawl
73d48a95f6 Add message box when the player tries to move when being overencumbered. 2013-02-25 16:31:48 +01:00
Chris Robinson
89d4c245e9 Better calculate jump velocity
The fatigue term isn't currently used correctly
2013-02-24 03:30:33 -08:00
Chris Robinson
d77d035d3a Handle the "sound" events in runAnimation 2013-02-23 14:15:11 -08:00
Chris Robinson
e6da9dfae5 Specify the animation key to stop playing at 2013-02-23 05:15:10 -08:00
Chris Robinson
f841576bba Don't override animations played with playgroup 2013-02-23 01:54:46 -08:00
Chris Robinson
7fcca180b6 Implement rudimentary jumping 2013-02-20 20:08:04 -08:00
Chris Robinson
1399a06c76 Update animation looping when setting the same state 2013-02-19 04:01:33 -08:00
Chris Robinson
17200cb226 Don't try to move when there's no speed 2013-02-18 20:43:55 -08:00
Chris Robinson
627b866744 Don't try to set a new state when dead 2013-02-18 06:29:16 -08:00
Chris Robinson
f2948ced23 Allow diagonal movement 2013-02-18 03:07:31 -08:00
Chris Robinson
e4341525c8 Add a jump state
Currently unused
2013-02-15 04:45:28 -08:00
Chris Robinson
ff0099fa6e Scale the animation speed based on the animation velocity and movement speed
This may not be totoally correct since it takes the whole animation into
account, rather than just the looping portion. But it's good enough for now.
2013-02-15 02:15:39 -08:00
Chris Robinson
3348e8a436 Clarify a comment 2013-02-14 22:41:14 -08:00
Chris Robinson
cbaf489eb6 Add running states 2013-02-06 16:53:52 -08:00
Chris Robinson
fc307e64b0 Add swimming states 2013-02-05 19:05:07 -08:00
Chris Robinson
8c0bb1ff4d Rotate movement in the movement solver 2013-02-05 14:02:14 -08:00
Chris Robinson
f7f1adfb9d Don't accumulate animations with activators 2013-02-05 12:55:06 -08:00
Chris Robinson
2c39760bd5 Move the movement solver code to mwworld's physics system 2013-02-05 12:45:10 -08:00
Chris Robinson
0a4568bd11 Move the PtrMovementList typedef to MWWorld
Use it for the doPhysics parameter, too
2013-02-05 11:03:39 -08:00
Chris Robinson
d50832081c Remove the unneeded PhysicActor field from MovementSolver 2013-02-05 09:37:02 -08:00
Chris Robinson
a782a9109b Store the vertical velocity in the physic actor 2013-02-05 09:24:22 -08:00
Chris Robinson
82e4da4e64 Get the half-extents from the physicactor 2013-02-05 07:41:57 -08:00
Chris Robinson
1c604445ba Store movement vectors as they get returned 2013-02-05 06:59:01 -08:00
Chris Robinson
5ee298cdc1 Make sure the player updates last 2013-02-04 14:08:38 -08:00
Chris Robinson
2f8affc955 Make sure the player's controller is properly updated when they change 2013-02-04 12:58:06 -08:00
Chris Robinson
ee9b19d2ed Make sure to remove a Ptr from the activators when requested 2013-02-04 12:04:06 -08:00
Chris Robinson
39cf7b0b42 Pass the Ptr of the object being moved to the move method
This prevents having to store another copy of it, which risks getting out of
sync.
2013-02-04 11:17:48 -08:00
Chris Robinson
1a5cb8760d Rotate movement vector to world space before passing to the movement solver 2013-02-04 11:04:20 -08:00
Chris Robinson
6b32fa7999 Use the correct position for the actor 2013-02-04 09:48:21 -08:00
Chris Robinson
1747c1e01a Integrate a new movement solver to handle object movement and collisions
Temporary, and pretty breoken. Needs some serious integration fixes.
2013-02-04 07:10:14 -08:00
Chris Robinson
91513206a0 Don't use per-animation accumulation values
This breaks walking diagonally and "jumping" (which technically wasn't jumping
anyway).
2013-02-03 12:02:51 -08:00
Chris Robinson
51d5efeeb2 Work out the state in the character controller update method 2013-02-03 07:15:34 -08:00
Chris Robinson
7fe877d8ea Add a couple more character states 2013-02-03 00:19:22 -08:00
Chris Robinson
007a5963de Handle most state changes in the character controller when setting the movement vector 2013-02-02 23:39:43 -08:00
Chris Robinson
04d4c125ba Print when an animation event is unhandled 2013-01-29 02:00:42 -08:00
Chris Robinson
d4ddaa3d95 Only register activators that have a MWRender::Animation object 2013-01-29 01:08:52 -08:00
Chris Robinson
fdabef65a1 Use a method to update an object's cell in the mechanics manager
This prevents destroying and recreating the object's character controller (and
messing up the current animation) when moving between cells.
2013-01-29 00:19:24 -08:00
Chris Robinson
8d98f3649c Use a separate class to handle activator mechanics 2013-01-28 23:39:11 -08:00
Chris Robinson
37fe1bd3f0 Handle looping in the Animation object 2013-01-21 22:51:13 -08:00
Chris Robinson
e956a1cbc0 Merge SpecialIdle character state into Idle 2013-01-21 03:24:52 -08:00
Chris Robinson
6905bd18ba Filter out the group name from the text keys
It's already in the animation name, and the text keys are animation-specific
anyway.
2013-01-21 02:59:12 -08:00
Chris Robinson
85ca1e993f Properly check if an animation exists before playing it 2013-01-19 21:55:04 -08:00
Chris Robinson
68779375b2 Implement WalkLeft and WalkRight character states 2013-01-19 16:19:47 -08:00
Chris Robinson
a7b07ee5cf Don't reset the animation when setting the same state
Unless looping is being toggled on.
2013-01-19 15:46:22 -08:00
Chris Robinson
e0541b52c4 Use a list to store and get state information 2013-01-19 14:56:24 -08:00
Chris Robinson
de2d084e61 Add a looping property to handle if an animation should loop 2013-01-19 14:22:15 -08:00
Chris Robinson
0b68953f0d Scale animation speed using the direction length
The direction length doesn't currently give a good speed, but it's something.
2013-01-18 21:40:47 -08:00
Chris Robinson
aecfc0829a Implement WalkForward and WalkBack character states 2013-01-18 18:04:00 -08:00
Chris Robinson
e33f59e0fe Ensure the direction vector is initialized and copied properly 2013-01-18 17:41:36 -08:00
Chris Robinson
1cdd64cd9b Return the animation movement from the character controller.
Consequently, dead actors don't move anymore. The doPhysics call apparently
isn't moving them.
2013-01-18 17:05:58 -08:00
Chris Robinson
9235fba770 Store the movement vector in the character controller 2013-01-18 16:00:51 -08:00
Chris Robinson
40f8e75763 Use a SpecialIdle state for PlayGroup/LoopGroup invoked animations
Note that actors will *not* automatically resume a normal idle state afterward.
Their AI will need to control what to do when the special idle is finished.
2013-01-18 15:39:28 -08:00
Chris Robinson
a527cb8349 Loop the current animation when not dead
This should be better, but it's not perfect. It misses the case where
start < loop start == loop stop <= stop
2013-01-18 15:22:14 -08:00
Chris Robinson
c7684cb979 Pass the key time to markerEvent 2013-01-18 14:50:55 -08:00
Chris Robinson
3e9b0a333c Allow specifying the accumulation for animations
Animations that move a character may do so either visually or physically. An
axis' accumuluation value specifies whether the movement is visual (0) or
physical (1). Idle animations, for instance, typically don't physically move a
character, while death animations may physically move them along the X and Y
planes, but not along Z (the vertical movement is purely visual).
2013-01-18 14:25:32 -08:00
Chris Robinson
5cafc24ee2 Rename CharState_Alive back to CharState_Idle 2013-01-18 13:43:45 -08:00
Chris Robinson
a94947029e Check the marker name before deciding what to do with it
Also, don't force 'idle' after a playgroup
2013-01-18 00:59:48 -08:00
Chris Robinson
9d7ccfda1f Rename CharState_Idle to CharState_Alive 2013-01-17 21:07:36 -08:00
Chris Robinson
8720433fa9 Do not automatically loop animations
There are 0 length idle animations that break this
2013-01-17 17:54:09 -08:00
Chris Robinson
8fa1b56efc Loop the current animation if there's nothing more queued 2013-01-17 16:34:26 -08:00
Chris Robinson
7cce44290e Handle the animation queue in mwmechanics 2013-01-17 13:18:40 -08:00
Chris Robinson
47c157303a Filter events that do not belong to the current group 2013-01-17 11:03:58 -08:00
Chris Robinson
da4f17859e Recognize soundgen animation markers 2013-01-17 10:16:36 -08:00
Chris Robinson
7ee389f3b2 Handle animation skipping in the character controller 2013-01-16 21:25:50 -08:00
Chris Robinson
852aa214cc Store the available animation names in the character controller 2013-01-16 21:16:22 -08:00
Chris Robinson
afbc9f3e41 Keep track of the animation group currently playing 2013-01-16 20:44:37 -08:00
Chris Robinson
685f219560 Return a movement vector from the character controller update 2013-01-16 18:56:13 -08:00
Chris Robinson
daad8d9859 Don't update the character controller while paused 2013-01-16 18:03:39 -08:00
Chris Robinson
d2f5a886c7 Handle playgroup and skipanim through mwmechanics 2013-01-16 17:53:18 -08:00
Chris Robinson
46fc61a4c1 Run animations from the character controller 2013-01-16 16:31:09 -08:00
Chris Robinson
46728ab27f Handle "sound:" animation events 2013-01-16 15:52:03 -08:00