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

14646 commits

Author SHA1 Message Date
David Cernat
38363eee0d Add OpenMW 0.47 commits up to 4 Dec 2021 2021-12-05 16:12:09 +02:00
elsid
7f1e5b368e
Fix deadlock in physics system
* Reorder unlock and notify_all calls to avoid notifying when not all worker
  threads are waiting.
* Make sure main thread does not attempt to exclusively lock mSimulationMutex
  while not all workers are done with previous frame.
* Replace mNewFrame flag by counter to avoid modification from multiple
  threads.
2021-11-26 20:23:49 +01:00
David Cernat
dbae0bddc2 [Client] Only play sounds from active cells when receiving ObjectSound 2021-10-21 19:20:02 +02:00
David Cernat
48de84ec32 [Client] Send ObjectSound packets with spellcasting sounds 2021-10-20 07:44:16 +02:00
David Cernat
538ccf15cf [Client] Use higher interpolation distance for DedicatedPlayers
This makes up for the laggier-looking jumps since the changes to OpenMW's physics system.
2021-10-17 20:14:21 +02:00
David Cernat
20e37204d0 [Client] Ensure physics actor is valid in World::setOnGround()
Do the same in World::setInertialForce()
2021-10-17 18:20:52 +02:00
David Cernat
e010c61167 Add OpenMW 0.47 commits up to 10 Oct 2021 2021-10-16 06:49:12 +02:00
David Cernat
efc0b88058 [Client] Don't reload Ptr for DedicatedActor after adding active spells
This prevents non-continuous spell GFX from immediately vanishing.
2021-10-16 02:00:05 +02:00
David Cernat
3e582199fb [Client] Add createSpellGfx() method to MechanicsHelper
Use it to create spell GFX when adding active spells to dedicated players and actors.
2021-10-16 01:35:30 +02:00
David Cernat
eb005a5c33 [Client] Stop processing CastSpell::inflict() in more appropriate place
This preserves the functionality of Reflect effects, which relies on inflict() getting far enough for a dedicated player or actor, without also processing parts of inflict() that should be skipped for them.
2021-10-16 00:01:06 +02:00
David Cernat
7f017217c7 [Client] Fix position sync for falling actors 2021-10-15 17:11:03 +02:00
David Cernat
fb49b62753 [Client] Fix crash when receiving ActiveSpells for uninitialized players 2021-10-12 03:51:14 +02:00
David Cernat
63c956e1d2 [Client] Fix active spell sync using actor IDs tracked in ActiveSpells 2021-10-12 02:01:05 +02:00
David Cernat
e6a1f0889f [Client] Add isStackingSpell() method to MechanicsHelper 2021-10-12 01:26:12 +02:00
David Cernat
f03a87df3c [Client] Remove previous placeholders for tracking ActiveSpells actors 2021-10-12 01:20:38 +02:00
David Cernat
c027862609 [Client] Track actor IDs in ActiveSpells 2021-10-12 00:34:15 +02:00
David Cernat
3e81371e53 [General] Fix jump synchronization for players
This had been broken by fr3dz10's physics rewrites from the earlier part of the year that made it so dedicated players were always regarded by the movement solver as being on the ground.
2021-10-09 18:11:57 +02:00
Evil Eye
f902efbfcc Absorb spells per effect 2021-10-09 16:39:49 +02:00
psi29a
b81df8af9c Merge branch 'cursorspeedmerge' into 'master'
Updated: Change cursor speed with settings.cfg (#6312)

Closes #6312

See merge request OpenMW/openmw!1255

(cherry picked from commit 1d342f80ed1af25d3cf1f70759be7fba1c9237b2)

b5af1928 gamepad cursor speed fix
2021-10-01 11:24:15 +00:00
David Cernat
06451c13d5 [Client] Update 3rd person model of local player when setting character 2021-10-01 03:27:40 +02:00
David Cernat
1ba36076f3 [Client] Update 3rd person model of local player when unequipping
This had apparently been broken by the fact that I had made inventory listeners get run only for actors in active cells in 385ef55848. Strangely, the player Ptr passed to fireEquipmentChangedEvent() when unequipping items has as its cell the player's original spawn cell instead of the current cell, causing the active cell check to return false in most locations for the player.
2021-10-01 03:09:14 +02:00
fredzio
32108adc31 Change projectile behaviour to be like in vanilla wrt. water plane:
- enchanted arrow explode upon hit the water plane
- non enchanted arrow disappear (or more accurately, they hit nothingness)
- enchanted arrow shot underwater explode immediately
- non enchanted arrow disappear immediately

Also, solve a bug that occured previously and could theoritically still happens where we use the last tested collision position for instead of the last registered hit:
Use the hit position as saved inside Projectile::hit() instead of the last position saved inside the callback.
If a projectile collides with several objects (bottom of the sea and water surface for instance), the last collision tested won't necessarily be the impact position as we have no control over the order in which the tests are performed.
2021-09-24 20:32:00 +02:00
David Cernat
a01c874613 Add OpenMW 0.47 commits up to 23 Sep 2021 2021-09-23 19:24:45 +02:00
psi29a
f0a77a48df Merge branch 'check_pathgrid' into 'master'
Make sure PathFinder::getClosestPoint is not called with failing precondition (#6294)

Closes #6294

See merge request OpenMW/openmw!1236

(cherry picked from commit baa33799de3cb27d9d3805e164b9d7ccea6a3e4d)

d36595e0 Make sure PathFinder::getClosestPoint is not called with failing precondition
2021-09-23 12:50:46 +00:00
elsid
56869ec296 Merge branch 'fix_6296' into 'master'
Ignore time to destination when giving way (#6296)

See merge request OpenMW/openmw!1234

(cherry picked from commit 14516b9fd603bf603ca2ae366bc0884106fd368c)

5893b884 Ignore time to destination when giving way (#6296)
2021-09-23 08:09:59 +00:00
David Cernat
6e95604627 [Client] Remove credits check on Windows client 2021-09-20 05:55:51 +02:00
David Cernat
7393e3def6 [General] Add and use getShortDescription() for ESM::Cell
ESM::Cell's getDescription() method was modified by aa5161f99e despite being used heavily by TES3MP. All instances of it in the TES3MP code have now been changed into the newly added getShortDescription() that is identical to the previous getDescription().
2021-09-17 19:14:55 +02:00
psi29a
ad703d7470 Merge branch 'fix_pathgrid_path' into 'master'
Use pathgrid path when destination is closer to different graph component node

See merge request OpenMW/openmw!1155

(cherry picked from commit 4bf22f3ca0e5e5776c09cb8d5ad9793986373975)

9112c65a Use pathgrid path when destination is closer to different graph component node
2021-09-08 09:56:37 +00:00
David Cernat
2f98f31af2 [General] Use model variable already included in PlayerBaseInfo packets
The variable has been included since TES3MP's earliest proof of concept, but never used for anything. It is now possible to get and set it, due to semi-popular demand.
2021-09-02 15:44:11 +02:00
David Cernat
26033ff7e7 Add OpenMW 0.47 commits up to 4 Aug 2021 2021-08-04 22:02:39 +02:00
elsid
08b026e907
Store copies of ref_ptr for btCollisionShape wrappers in Navigator
To keep btCollisionShape lifetime.
2021-08-04 13:16:31 +02:00
psi29a
10b799653b Merge branch 'opt-out-compose' into 'master'
Make it possible to opt out of composing variables

Closes #6186

See merge request OpenMW/openmw!1076

(cherry picked from commit 15d278de554818fef6fecf300456800523e91adf)

4727ae4b Make it possible to opt out of composing variables
04e9b6d2 Abort on duplicate content file
2021-08-01 08:54:11 +00:00
David Cernat
6bdc2b2b06 [Client] Fix rotation sync 2021-07-26 08:50:19 +02:00
David Cernat
0567dc1fd4 Add OpenMW 0.47 commits up to 25 Jul 2021 2021-07-25 22:29:47 +02:00
David Cernat
6baee12bc4 [Client] Don't print unilateral message about targets resisting spells 2021-07-25 19:49:23 +02:00
fredzio
9d17cece3a Set mCanWaterWalk and mOnGround when adding Actor to the scene.
mCanWaterWalk was set to false and updated during next frame's simulation
mOnGround is set to true but then was updated as part of the scene
loading logic.
2021-07-24 15:04:17 +02:00
fredzio
744cfc6a51 Do not store a btTransform into Projectile class: reduce its size by 112 bytes 2021-07-23 19:40:42 +02:00
fredzio
20aefb5f5f Do not store btTransform into Object class: reduce its size by 104 bytes 2021-07-23 19:40:42 +02:00
fredzio
8861d53809 Do not store a btTransform into Actor class: reduce its size by 128 bytes 2021-07-23 18:10:23 +02:00
David Cernat
3f3fe66fde [General] Track casters of spells in SpellsActive packets
Also simplify sending of SpellsActive packets slightly.
2021-07-21 18:14:31 +02:00
David Cernat
4492a7a768 [Client] Add MechanicsHelper method to get actorId of an mwmp::Target
Also clean up MechanicsHelper::getPlayerPtr() slightly.
2021-07-21 14:57:55 +02:00
David Cernat
a78a88ed6d [Client] Make World::searchPtrViaActorId() also find DedicatedPlayers 2021-07-20 03:43:25 +02:00
David Cernat
9817d3a563 [Client] Add method to PlayerList for getting players by their actorId 2021-07-20 03:22:16 +02:00
David Cernat
fe4a761ffe [General] Implement game setting records for RecordDynamic packets
Remove unused placeholder for variants from RecordDynamic.
2021-07-18 11:36:07 +02:00
psi29a
59da0a0da9 Merge branch 'skip_async' into 'master'
Don't put player in the air after going out of tcl

See merge request OpenMW/openmw!1009

(cherry picked from commit 6d08a1d7318ae076839738d173b884fcc7b1a348)

6ad2cf8e Skip simulation result after calling Actor::updatePosition(). Otherwise
2021-07-16 17:05:52 +00:00
psi29a
d1c0cfa524 Merge branch 'lifetime' into 'master'
Maybe fix #6071

Closes #6071

See merge request OpenMW/openmw!1010

(cherry picked from commit 64750820957773a00d449d29551bb15fbf5fe08b)

1650dabe Assign the return value of weak_ptr::lock() to a variable, so that the
2021-07-12 14:11:30 +00:00
psi29a
8530bc5cf5 Merge branch 'fix_debugbatch_colors' into 'master'
Fix black objects in object paging debug view

See merge request OpenMW/openmw!1011

(cherry picked from commit 5287c9627c92b77c25581dbb9ac9d0b0dc4c9698)

389b8300 fix black objects with OP batch debug due to unitialized uniform
2021-07-12 09:14:09 +00:00
psi29a
a21da63464 Merge branch 'FixLODIssueWithObjectPaging' into 'master'
LOD issue with object paging

See merge request OpenMW/openmw!1007

(cherry picked from commit 5688b7b4d8df93fbf28307d2259c57f8d878eeb8)

269cd310 Use same world coordinates to compute distances
2021-07-10 21:03:32 +00:00
David Cernat
3222afc8b7 [General] Implement PlayerCooldowns packet
Although this packet may be used for other kinds of cooldowns in the future, it currently only handles cooldowns for magical powers.
2021-07-10 22:15:19 +02:00
David Cernat
a4b180f65a [Client] Don't send SpellsActive packets for spells received from server 2021-07-06 17:22:19 +02:00