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

3877 commits

Author SHA1 Message Date
Chris Robinson
a8f0ce43a5 Add a run key 2013-02-06 17:51:47 -08:00
Chris Robinson
cbaf489eb6 Add running states 2013-02-06 16:53:52 -08:00
Chris Robinson
04524fbf92 Don't scale the movement vector up 2013-02-06 15:23:52 -08:00
Chris Robinson
bdda7278c4 Use 3/4ths of the physic actor's height to test if swimming 2013-02-06 12:56:30 -08:00
Chris Robinson
dfd16c4424 Fix movement rotations 2013-02-06 12:39:26 -08:00
Marc Zinnschlag
43912f927a Merge remote-tracking branch 'potatoesmaster/importer' into next
Conflicts:
	apps/openmw/mwworld/worldimp.cpp
2013-02-06 10:12:40 +01:00
Chris Robinson
9cf30f39bd Don't apply gravity when swimming 2013-02-05 19:45:51 -08:00
Chris Robinson
fc307e64b0 Add swimming states 2013-02-05 19:05:07 -08:00
Chris Robinson
18b7008409 Better fix some scaling issues 2013-02-05 18:25:09 -08:00
Chris Robinson
535cd8360f Load extra animations for NPCs 2013-02-05 18:09:43 -08:00
Chris Robinson
8b1e7b95ba Attempt to load the skeleton source if it doesn't yet exist 2013-02-05 17:55:12 -08:00
Chris Robinson
c839502743 Setup base_anim.nif as an initial skeleton source for biped creatures 2013-02-05 17:16:45 -08:00
Chris Robinson
054ef3113a Check existing skeleton sources if the current one has no animation root 2013-02-05 17:15:40 -08:00
Chris Robinson
16933e3926 Scale the accumulation root translation 2013-02-05 16:59:20 -08:00
Chris Robinson
600fe06f00 Use a vector of skeletons to handle animation sources 2013-02-05 16:29:51 -08:00
Chris Robinson
e217a3d25c Silence some console spam 2013-02-05 15:51:26 -08:00
Emanuel Guevel
a4f051e85a Fix game files import 2013-02-06 00:51:05 +01:00
Emanuel Guevel
6e3c016351 Add archives to settings imported by mwiniimporter
Add Morrowind.bsa by default.
2013-02-06 00:51:05 +01:00
Chris Robinson
ee3764e9b3 Increase max slope to 60. 45 is too low. 2013-02-05 15:07:48 -08:00
Chris Robinson
8c0bb1ff4d Rotate movement in the movement solver 2013-02-05 14:02:14 -08:00
Michal Sciubidlo
347a734364 Move OpenDialog to editor and use it in startup dialogue.
Remove debug output from DataFilesList.
2013-02-05 22:06:36 +01: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
Michal Sciubidlo
f7e5ea24f4 Merge branch 'startup' into cs_load.
Fix include in textinputdialog.cpp.
2013-02-05 21:23:49 +01: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
2cdda96798 Clear out some unneeded doPhysics stuff 2013-02-05 10:23:26 -08:00
Chris Robinson
3251796ba0 Fix left/right movement 2013-02-05 09:57:08 -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
4bd1e63ac1 Merge remote-tracking branch 'zini/master' into animation2
Conflicts:
	apps/openmw/mwworld/worldimp.cpp
2013-02-05 03:26:46 -08:00
Marc Zinnschlag
c409f1184e cleaned up object movement and fixed a bug regarding local scripts 2013-02-05 12:19:06 +01:00
Chris Robinson
786cb6e928 Merge remote-tracking branch 'zini/master' into animation2 2013-02-05 02:57:02 -08:00
Marc Zinnschlag
86fb3574a0 Merge remote-tracking branch 'wheybags/master' into next 2013-02-05 11:55:47 +01:00
Chris Robinson
bd4fdf47a3 Merge remote-tracking branch 'zini/master' into animation2
Conflicts:
	apps/openmw/mwrender/sky.cpp
2013-02-05 02:27:57 -08:00
scrawl
09180666b2 Merge branch 'master' of git://github.com/zinnschlag/openmw into terrainfix 2013-02-05 00:21:42 +01:00
scrawl
58cf182db2 better place for syncing 2013-02-05 00:21:29 +01:00
scrawl
596628d339 Fix terrain derived data update (bug 534, bug 544) 2013-02-04 23:13:01 +01:00
Chris Robinson
5ee298cdc1 Make sure the player updates last 2013-02-04 14:08:38 -08:00
Michal Sciubidlo
66ec4ca7d9 Split launcher specific code from DataFilesList back to DataFilesPage. 2013-02-04 22:14:14 +01: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
scrawl
bf037b7d29 Removed problematic ModVertexAlpha method, now done in shader 2013-02-04 18:03:03 +01: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
Marc Zinnschlag
ba0d13fc12 moved code for creating new base content records into the Document class 2013-02-04 13:50:38 +01:00
Marc Zinnschlag
4c973a0f67 constructing documents from a file list instead of a single name 2013-02-04 13:46:54 +01:00
Marc Zinnschlag
3f0a49a2f6 Merge branch 'master' into startup
Conflicts:
	apps/opencs/CMakeLists.txt
2013-02-04 10:22:37 +01: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
Mark Siewert
3e43db5f76 Merge remote-tracking branch 'upstream/master' into multiple_esm_esp 2013-02-03 16:14:41 +01:00
Tom Mason
ac112ef972 refactored special variable code 2013-02-03 13:27:27 +00:00
Marc Zinnschlag
c97553703a fixes for static build without cg 2013-02-03 13:47:55 +01:00
Marc Zinnschlag
a4872e3217 rewrote the opencs cmake scripts (more compact and no more annoying warnings) 2013-02-03 13:30:40 +01:00
Chris Robinson
23acf4b130 Don't break right away when the animation time remaining is 0 2013-02-03 01:38:42 -08:00
Chris Robinson
60a75cb5ee Make sure to keep the character preview animation updated 2013-02-03 00:54:50 -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
Tom Mason
f785659297 Implemented OnPCAdd special variable
Had to edit OpAddItem in miscextensions.cpp, as local variables were not being initialised
for items added through it.
Does not get reset on drop, as per original morrowind.
2013-02-02 17:36:12 +00:00
Michal Sciubidlo
155cca0c9a Upload missing files.
Fix folder name.
Keep Qt optional.
Move open dialogue from doc to tools.
Rename 'load' to 'open'.
Deleted wrong comment.
2013-02-02 18:36:01 +01:00
Marc Zinnschlag
67a1ec5166 added provisional startup dialogue 2013-02-02 16:14:58 +01:00
Chris Robinson
c23a96d606 Run an aniamtion update after "playing" the inventory idle
This is so all the NPC parts get updated correctly.
2013-02-02 06:08:03 -08:00
Chris Robinson
fc7590694d Revert "Revert "Use a child scene node for the accumulation root""
This reverts commit 376dfed15b.

I was wrong. It's needed at least for NPCs since they're attaching multiple
animated skeletons to an object, and they all need to be offset correctly.

Would be nice to use a Node, Bone, or TagPoint instead of a hefty SceneNode,
though.
2013-02-02 05:43:37 -08:00
Marc Zinnschlag
85697e4628 reverted to C++03 2013-02-02 13:24:28 +01:00
Chris Robinson
7f87c1873b Use an array to store the entity parts 2013-02-02 02:53:22 -08:00
Chris Robinson
376dfed15b Revert "Use a child scene node for the accumulation root"
This reverts commit d6f923f274.

We don't need it for any of the NIFs we're currently handling. As long as
there's no NIF files that would break it, we should require a stationary root
if an animation wants to accumulate. If we must, a better idea may be to inject
an extra bone into the skeleton instance and make that the accumulation root.
2013-02-01 08:50:32 -08:00
Michal Sciubidlo
492482de7f Add "open" option in opencs. 2013-02-01 00:42:03 +01:00
Tom Mason
0f58e03343 Unequipping items will reset OnPCEquip variable 2013-01-31 19:04:39 +00:00
Tom Mason
9ad08520fd Implemented OnPCDrop special variable
Scripts are responsible for resetting to 0, as investigation showed that is how vanilla handled it.
2013-01-31 18:45:32 +00:00
Tom Mason
0fc5ee5149 allow OnPCEquip special variable to be of any type 2013-01-31 17:46:16 +00:00
Chris Robinson
d6f923f274 Use a child scene node for the accumulation root 2013-01-30 22:28:18 -08:00
Tom Mason
09f9557ecb Implemented OnPCEquip special variable 2013-01-31 00:34:16 +00:00
Tom Mason
dc91211b12 Fixed Small bug where scripts were being removed when they shouldn't be.
Scripts should only be removed when the item is being moved to another cell, otherwise they should remain active.
2013-01-31 00:21:04 +00:00
Michal Sciubidlo
ac62dd050d Rename datafilespage to datafileslist 2013-01-30 21:08:27 +01:00
Michal Sciubidlo
f029a9011a Move datafilespage to shared space. 2013-01-30 20:21:03 +01:00
Chris Robinson
b6354c6282 Don't share skeleton instances between bounded parts on an NPC
However, a skeleton instance will still be shared between entities in an entity
list.
2013-01-30 09:29:16 -08:00
Chris Robinson
5c3a7f7d52 Avoid handling animation states
We don't need them anymore
2013-01-30 07:34:07 -08:00
Chris Robinson
360f7bfac8 Apply animations to bones manually
Couple reasons for this:

* This paves the way for allowing animations specified in other skeletons to
be applied to the character (NPCs and certain creatures can have multiple
animation sources, but Ogre is incredibly strict when it comes to sharing
animations between skeletons).

* It will allow for entities to be animated based on the character's skeleton,
without having to duplicate the mesh for each skeleton it can be used on.

This doesn't impact Ogre's ability to efficiently deform skinned meshes, nor
does it get in the way of hardware skinning.
2013-01-30 07:04:18 -08:00
Chris Robinson
600d3bf9eb Make sure the player node's visibility cascades 2013-01-30 02:38:50 -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
99efe4e494 Remove an unnecessary class member 2013-01-29 01:02:55 -08:00
Chris Robinson
879359f39d Set the animation state loop flag as appropriate 2013-01-29 00:50:52 -08:00
Chris Robinson
92d0c55f32 Add a flag to specify if an animation should be playing 2013-01-29 00:43:42 -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
7df4d0d19f Remove an unnecessary cast 2013-01-28 21:41:51 -08:00
Chris Robinson
7b71b4eb31 Add a missing include 2013-01-27 03:03:48 -08:00
Chris Robinson
0cd3880b20 Merge remote-tracking branch 'zini/master' into animation2 2013-01-26 04:54:52 -08:00
Chris Robinson
b1ffdf855f Reset the initial state of animated nodes on the skeleton instances
This is so the animation specifies node keyframe data based on the node's
parent. This will also be necessary for applying animations from different
skeleton sources, as they can have different binding positions (even native
.skeleton resources will need to specify animation data this way).
2013-01-26 04:48:53 -08:00
Mark Siewert
dca8dc4fdb Merge remote-tracking branch 'upstream/master' into multiple_esm_esp
Conflicts:
	apps/openmw/engine.cpp
	apps/openmw/mwworld/cellstore.cpp
	apps/openmw/mwworld/store.hpp
	apps/openmw/mwworld/worldimp.cpp
	apps/openmw/mwworld/worldimp.hpp
	components/esm/esmreader.hpp

- Quick hack: OMW::Engine::prepareEngine only loads translation data for the first master file.
2013-01-25 18:22:01 +01:00
Emanuel Guevel
19dff822f4 Dialogue: do not filter on disposition for creatures 2013-01-24 19:43:21 +01:00
Emanuel Guevel
ed9a9904b4 Dialogue filter: search script variables case-insensitively 2013-01-24 19:39:31 +01:00
Marc Zinnschlag
90d05858ef disabling dialogue sub-views for now 2013-01-22 11:50:08 +01:00
Marc Zinnschlag
cd662af634 Merge branch 'globals' 2013-01-22 11:47:24 +01:00
Chris Robinson
05f8b8c283 Specify the text key to reset animations to 2013-01-22 00:31:45 -08:00
Chris Robinson
37fe1bd3f0 Handle looping in the Animation object 2013-01-21 22:51:13 -08:00
Marc Zinnschlag
2756d3ee94 Merge remote-tracking branch 'wheybags/containerscripts' 2013-01-21 23:02:45 +01:00
Tom Mason
f5f3c2e62d enabling / disabling should not affect scripts 2013-01-21 20:06:08 +00: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
536f8104e6 Do not create an 'all' animation. 2013-01-20 17:24:43 -08:00
Chris Robinson
e1e76bde76 Combine a loop into another where it's used 2013-01-20 15:39:43 -08:00
Mark Siewert
713d324eeb - Minor code cleanup 2013-01-20 19:07:33 +01:00
Tom Mason
31c71c029d objects with scripts attached, that are inside containers will behave correctly when the container is moved 2013-01-20 17:01:30 +00:00
Emanuel Guevel
736e471613 Print a fallback text when no topic response is found 2013-01-20 17:44:09 +01:00
Emanuel Guevel
43e85ea0c6 Disallow redirection to info refusal for greetings 2013-01-20 17:44:09 +01:00
Emanuel Guevel
05796d85a4 NPC: take stats from NPDT12 into account
Some available stats (level, reputation and disposition) were not used
for NPC with auto-calculated stats.
2013-01-20 17:44:08 +01:00
Emanuel Guevel
951eb1b236 Dialogue: return a response from "Info Refusal" when disposition is not satisfied 2013-01-20 17:44:08 +01:00
Tom Mason
23dada0ee4 moved script handling on enable / disable into their own functions 2013-01-20 16:38:56 +00:00
Tom Mason
28c580d280 disabling and enabling containers causes scripts on contents to be disabled and enabled accordingly 2013-01-20 15:43:52 +00:00
Tom Mason
abe25c5f66 removed use of c++11 auto 2013-01-20 14:24:55 +00:00
Tom Mason
665a530e10 renamed realAdd to addImp 2013-01-20 14:14:34 +00:00
Tom Mason
3c6ddd7fa7 fixed isInCell method 2013-01-20 14:10:04 +00:00
Chris Robinson
85ca1e993f Properly check if an animation exists before playing it 2013-01-19 21:55:04 -08:00
Nathan Jeffords
f55da17933 made some journal accessor methods constant 2013-01-19 16:21:41 -08:00
Nathan Jeffords
4c7ae3d1ff prevent duplicate journal entries from being recorded 2013-01-19 16:21:15 -08:00
Nathan Jeffords
528c3da6da record heard topics in journal 2013-01-19 16:20:22 -08:00
Chris Robinson
68779375b2 Implement WalkLeft and WalkRight character states 2013-01-19 16:19:47 -08:00
Nathan Jeffords
d6b956cdcf fixed swapped day & month fields when created a stamped journal entry 2013-01-19 16:19:03 -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
Mark Siewert
a8e02779b2 - Add support for multiple plugins trying to modify the same reference
- Fix a small signed/unsigned warning
2013-01-19 23:33:18 +01:00
Chris Robinson
de2d084e61 Add a looping property to handle if an animation should loop 2013-01-19 14:22:15 -08:00
Marc Zinnschlag
2d96f52864 select correct record when opening a dialogue sub view 2013-01-19 14:29:14 +01: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
9123f4f2af Return the movement vector from runAnimation 2013-01-18 16:21:29 -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
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