Commit graph

3315 commits

Author SHA1 Message Date
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
613529f1d6 Merge remote-tracking branch 'zini/master' into animation2 2013-01-18 01:02:53 -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
00879ab20e Fix player rendering 2013-01-17 15:48:09 -08:00
Chris Robinson
fef6284f15 Only reset the animation time if a new state was set 2013-01-17 15:47:25 -08:00
Chris Robinson
fc0f9e2159 The animation state tracks the animation time for us 2013-01-17 14:49:42 -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
Marc Zinnschlag
82b790770d Merge remote-tracking branch 'potatoesmaster/dialogue-creatures' 2013-01-17 10:21:01 +01:00
Chris Robinson
82d549e22f Don't update the animation if time is the same 2013-01-16 21:39:14 -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
4dd01b81c6 Update mTime when updating or reseting the animation, and refactor the animation loop 2013-01-16 20:14:49 -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
Emanuel Guevel
4feaa66897 Do not open the dialogue window if no greeting is found 2013-01-17 01:58:44 +01: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
Chris Robinson
3c32385e17 Avoid trying to animate things that don't have animations 2013-01-16 15:00:06 -08:00
Chris Robinson
94b93227d3 Treat activators as actors for rendering and mechanics
Kinda hacky, but it's the only way to get animated activators (flags, silt
striders, etc) to work properly.
2013-01-16 14:37:32 -08:00
Chris Robinson
d2fc3c7b33 Add a method to tell the character controller of new text keys 2013-01-16 13:09:21 -08:00
Marc Zinnschlag
7b568cbb15 Merge remote-tracking branch 'potatoesmaster/dialogue' 2013-01-16 22:03:40 +01:00
Chris Robinson
0a2f92f679 Keep track of the current text key in the animation 2013-01-16 11:57:08 -08:00
Chris Robinson
f46587c383 Store an character controller in the animation 2013-01-16 11:01:08 -08:00
Chris Robinson
3c487e6019 Play an animation when changing states 2013-01-16 10:45:18 -08:00
Chris Robinson
b378bc92a0 Store an animation object in the character controller 2013-01-16 10:16:37 -08:00
Chris Robinson
63e685ea39 Add a method to get the Animation from a Ptr 2013-01-16 09:59:19 -08:00
Chris Robinson
c1b32d6006 Remove outdated comments 2013-01-16 08:24:20 -08:00
Chris Robinson
3c02e1ccc9 Run physics right after updating the actors 2013-01-16 08:22:38 -08:00
Chris Robinson
1ce8eaf52c Merge remote-tracking branch 'zini/master' into animation2
Conflicts:
	apps/openmw/mwrender/actors.cpp
	apps/openmw/mwrender/actors.hpp
2013-01-16 07:36:56 -08:00
Marc Zinnschlag
312f68bf9c Merge remote-tracking branch 'thoronador/fix-spelling' 2013-01-16 12:28:33 +01:00
Thoronador
3220330ce0 fix spelling in comment 2013-01-16 04:19:16 +01:00
Chris Robinson
94e30199d1 Merge remote-tracking branch 'zini/master' into animation2
Conflicts:
	components/nifogre/ogre_nif_loader.cpp
2013-01-15 14:59:30 -08:00
Emanuel Guevel
9e00c6694f Allow only ID filtered topics for dialogue with creatures 2013-01-15 21:40:44 +01:00
Chris Robinson
8a073c113e Use const references where appropriate 2013-01-15 12:07:15 -08:00
Chris Robinson
8361192b64 Use typedefs for some maps and some cleanup 2013-01-15 11:10:41 -08:00
Marc Zinnschlag
3053440462 Issue #539: fixed AiWander 2013-01-15 12:40:44 +01:00
Emanuel Guevel
82287445af DialogueWindow: do not execute onFrame() when not visible 2013-01-15 00:59:48 +01:00
Emanuel Guevel
f1f9173f24 Prevent closing dialogue window when an answer is expected 2013-01-15 00:53:32 +01:00
Tom Mason
6fc64e8a4e scripts run for items added to containers, and scripted items in player inv handled correctly 2013-01-13 19:49:56 +00:00
Tom Mason
7c8b3f1239 Merge remote-tracking branch 'real/master' 2013-01-13 17:07:18 +00:00
Tom Mason
c138e00aa2 objects scripts are now stopped when they are removed from a container 2013-01-13 17:05:12 +00:00
Marc Zinnschlag
654cd3ab9b Issue #479: Use magnitude specified when adding disease 2013-01-13 14:52:55 +01:00
Tom Mason
d4ca954d47 scripts on items in containers added to script list on cell change 2013-01-12 18:31:57 +00:00
Chris Robinson
94b24f07e1 Keep track of the state in the character controller, and don't remove dead actors from the map 2013-01-12 10:10:27 -08:00
Chris Robinson
4890d901a2 Store an MWWorld::Ptr in the character controller 2013-01-12 08:49:08 -08:00
Chris Robinson
35d17fdaf6 Associate a character controller with each MWWorld::Ptr 2013-01-12 07:12:12 -08:00
Marc Zinnschlag
f4ee8e2642 Issue #479: Added additional magnitude parameter to known spells 2013-01-12 13:10:20 +01:00
scrawl
ed3c23ad9a Fixed crash on changing cell due to Utf8Encoder going out of scope 2013-01-12 01:18:36 +01:00
Marc Zinnschlag
101810d1e8 Merge remote-tracking branch 'scrawl/ingredients' 2013-01-11 11:12:07 +01:00
Nathan Jeffords
d5ebd6654d cache loaded NIF files to eliminate reloads
Created a NIF file caching mechanism to prevent the system from
reloading a NIF during a startup and cell changes.
2013-01-10 21:47:02 -08:00
Nathan Jeffords
d469415e59 factored out two function from OMW::Engine::go
The initialization code inside Engine::go is now in two function it
calls prior to running the main loop.
2013-01-10 21:32:24 -08:00
scrawl
c71656493d Ingredient effects now correctly hide until the player has discovered them 2013-01-11 01:23:24 +01:00
Chris Robinson
97f8c73d91 Remove some useless parameters
SceneNode::setVisibility merely passes the value to its attached object, of
which there are none at the point it would be called. Additionally, the method
is always called with enabled=true anyway.
2013-01-10 11:09:33 -08:00
Chris Robinson
771a5f7316 Add the beginnings of a character controller 2013-01-10 08:35:24 -08:00
Chris Robinson
e8ac3976b5 Fix some subentity assumptions 2013-01-10 06:35:06 -08:00
Chris Robinson
7f2d71554e Use the correct offset when building static geometry from an entity 2013-01-10 04:16:18 -08:00
Marc Zinnschlag
274ff530dc Merge remote-tracking branch 'wheybags/master' 2013-01-10 11:53:42 +01:00
Chris Robinson
23ac1c2de5 Merge remote-tracking branch 'zini/master' into animation2
Conflicts:
	components/nifogre/ogre_nif_loader.cpp
2013-01-09 20:52:12 -08:00
Marc Zinnschlag
6e0b86c6f9 Merge remote-tracking branch 'potatoesmaster/getdisposition' 2013-01-10 01:29:02 +01:00
Tom Mason
8486a51535 fixed drop amounts thanks to zinnschlag 2013-01-09 22:55:28 +00:00
Tom Mason
3517635cfd added Drop and DropSoulGem functions 2013-01-09 21:16:45 +00:00
Marc Zinnschlag
4defb1a476 Merge remote-tracking branch 'trombonecot/lowerstring'
Conflicts:
	apps/openmw/mwgui/loadingscreen.cpp
2013-01-09 22:13:59 +01:00
eduard
2dc0064cc2 more string lowercase 2013-01-09 20:51:52 +01:00
Chris Robinson
a14132b5a0 Merge remote-tracking branch 'zini/master' into animation2 2013-01-09 11:12:26 -08:00
Tom Mason
5bfdb2449d allowed dropObjectOnGround to be used on npcs, not just player 2013-01-09 18:53:14 +00:00
Chris Robinson
c4c8295e0b Rename NIFLoader to Loader, and update some comments 2013-01-09 09:10:59 -08:00
Nathan Jeffords
6ca87e108f updated loading screen to use the resource managers pattern matching when finding files 2013-01-09 08:54:03 -08:00
Nathan Jeffords
44031ec3d7 fleshed out BSAArchive and DirArchive.
Implemented both lists & finds, with pattern matching.

Conflicts:
	components/bsa/bsa_archive.cpp
2013-01-09 08:53:27 -08:00
Chris Robinson
be74859f05 Avoid some unnecessary copying when calling addPartGroup 2013-01-09 08:03:28 -08:00
Marc Zinnschlag
6567bf38f8 Merge remote-tracking branch 'wheybags/master' 2013-01-09 17:01:47 +01:00
Chris Robinson
9fedaf18d6 Make some methods private 2013-01-09 07:55:55 -08:00
Chris Robinson
625a538f03 Combine part selection into a single loop 2013-01-09 07:43:10 -08:00
Emanuel Guevel
3e41a1118a GetDisposition: return calculated disposition instead of base disposition 2013-01-09 15:14:17 +01:00
Tom Mason
375961fe5e small fix 2013-01-09 13:27:12 +00:00
Tom Mason
b035a5aa4a beast races cannot equip anything they oughtn't to be able to equip 2013-01-09 13:18:05 +00:00
Chris Robinson
1e38e381a4 Use text keys for each animation 2013-01-09 03:30:55 -08:00
Marc Zinnschlag
649ae645f3 Merge remote-tracking branch 'blunted2night/bug_495_v2' 2013-01-09 12:12:41 +01:00
Chris Robinson
bb98542c5a Build separate animations for each group 2013-01-09 01:40:38 -08:00
Chris Robinson
e44729cd43 Make the text keys lower-case when extracting them
I think it's safe to assume all text keys are treated in a case-insensitive
manner. So far the only known NiTextKeyExtraData records are for animation
keys, which effectively are.
2013-01-09 00:17:42 -08:00
Jordan Milne
857bb42297 Create a separate scenemanager for each CharacterPreview instance 2013-01-09 01:44:15 -04:00
Nathan Jeffords
719663d86e added option to override the activation distance
The command line option '--activate-dist <int>' can be used to override
the in game activation distance.
2013-01-08 20:00:06 -08:00
Tom Mason
62a2ba1cc6 beast races cannot equip shoes/boots 2013-01-09 03:03:14 +00:00
Tom Mason
135f0870f7 in actionequip, was ignoring actor param, and always using player 2013-01-09 02:16:17 +00:00
Nathan Jeffords
39d27b87c9 fixed build error with Audiere coded enabled 2013-01-08 09:14:56 -08:00
Chris Robinson
9675a6d04a Merge remote-tracking branch 'zini/master' into animation2 2013-01-08 02:25:37 -08:00
Marc Zinnschlag
c6ff58d5b5 Merge remote-tracking branch 'scrawl/videoplayback'
Conflicts:
	apps/openmw/mwscript/docs/vmformat.txt
2013-01-08 11:17:19 +01:00
Nathan Jeffords
b3932e3dea added a separate activation distance for NPCs 2013-01-07 23:40:17 -08:00
Nathan Jeffords
b9fbd6ae4b Factored faced object lookups into MWRender::World
* Renamed MWWorld::World::getFacedHandle to getFacedObject.
 * Changed it to return an object pointer
 * Updated clients to use return object directly.
2013-01-07 23:38:08 -08:00
Nathan Jeffords
05dad29005 update MWWord::World to track distances while performing occlusion queries.
This allows checking the activation distance against what is stored in GameSettings. Experimentation suggests that a second distance is required for NPCs.
2013-01-07 23:11:15 -08:00
Nathan Jeffords
0108be2e4f updated MWWorld::PhysicsSystem::getFacedXXX functions
* changed the names and return values to be consistent
 * made the distance to search a parameter
 * change the distance returned to world units instead of percentage of query distance
2013-01-07 23:00:00 -08:00