Marc Zinnschlag
5e3529783d
Merge remote-tracking branch 'ace/win-fixes' into next
2013-02-12 15:42:45 +01:00
Alexander "Ace" Olofsson
bbb845824d
Added typedef for ssize_t in windows and fixed a use of __PRETTY_FUNCTION__
2013-02-12 13:59:24 +01:00
Sergey Shambir
7d7a1119da
Fixed book text misalignment, at least in some cases
...
https://bugs.openmw.org/issues/284
2013-02-12 11:49:20 +04:00
Sergey Shambir
03803f19b5
BookTextParser: moved to Ogre::UTFString
...
Font height and unicode characters glyph width now accounted correctly.
2013-02-12 11:22:19 +04:00
Sergey Shambir
3b64389668
BookTextParser: fixed infinitive loop
2013-02-12 11:14:30 +04:00
Marc Zinnschlag
1a079ec8d3
Merge branch 'master' into next
2013-02-11 19:53:51 +01:00
Marc Zinnschlag
64d9d9e2ce
Merge remote-tracking branch 'wheybags/master' into next
2013-02-10 17:29:28 +01:00
Tom Mason
c32c31f6d6
break after activating button
2013-02-10 15:41:02 +00:00
Tom Mason
158c6fc9fa
pressing enter when a messagebox is prompting for "ok", will activate ok button
2013-02-10 14:58:46 +00:00
Sergey Shambir
59808c3e10
GUI: Birth and Class dialogs now both select 1st item in list at first
...
time.
2013-02-10 08:59:38 +04:00
Sergey Shambir
725bfe6372
TradeWindow: balance now changes per time if user holds +/- button
...
pressed
2013-02-10 08:50:36 +04:00
Sergey Shambir
bba024d6ad
Right mouse button click now stops Container GuiMode.
2013-02-10 08:37:45 +04:00
Chris Robinson
4ee5857bae
Filter accumulation axis for mLastPosition as needed
2013-02-09 19:09:56 -08:00
Chris Robinson
8d6f017f17
Remove an unneeded Animation field
2013-02-09 13:25:39 -08:00
Chris Robinson
34ddf69a31
Merge remote-tracking branch 'zini/next' into animation2
2013-02-09 09:46:57 -08:00
Marc Zinnschlag
f19fbaa293
Merge remote-tracking branch 'mark76/multiple_esm_esp' into next
2013-02-09 15:30:29 +01:00
Mark Siewert
55bd9eef66
Merge remote-tracking branch 'upstream/master' into multiple_esm_esp
2013-02-09 13:03:35 +01:00
Mark Siewert
eefbdde6de
- For pull request: remove all instances of maps used to track refnumbers.
...
- new file: apps/openmw/mwworld/store.cpp, had to move reference merging method out of the header file to prevent three-way recursion/unresolved forward references in custom compare operators.
2013-02-09 13:00:57 +01:00
Chris Robinson
f5afa43db5
Remove an unneeded parameter
2013-02-07 17:45:41 -08:00
Chris Robinson
d47d2216f2
Use some const references where appropriate
2013-02-07 16:33:44 -08:00
Chris Robinson
cbdd459500
Remove unneeded playerMove from PhysicActor
2013-02-07 15:48:41 -08:00
Chris Robinson
ca6f8b6d88
Reorganize a bit of code in the movement solver
2013-02-07 13:18:16 -08:00
Chris Robinson
fe0e6c452d
Remove the unneeded playerMove object from PhysicsSystem
2013-02-07 12:11:10 -08:00
Nikolay Kasyanov
0d4b0bfd93
Trying to resolve sound issues on OS X with ffmpeg backend
2013-02-07 23:40:20 +04:00
Chris Robinson
8de2d24d0e
Restore old ground check
2013-02-06 21:57:59 -08:00
Chris Robinson
923d0d6eb4
Fix up some header includes
2013-02-06 21:47:09 -08:00
Chris Robinson
e577ee2de8
Add a method to set/retrieve being on the ground
2013-02-06 21:44:58 -08:00
Chris Robinson
ebc7bc9427
Rename A_AlwaysRun to A_Run
...
Note that there is an "always run" key, but its functionality is handled by
A_ToggleWalk.
2013-02-06 18:22:16 -08:00
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
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
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
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
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
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
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
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
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
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
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
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