Commit Graph

41 Commits (main)

Author SHA1 Message Date
Joshua Ashton 50cef39716 vpc: Fix SSE4.2/AVX2 leaking into other builds
continuous-integration/drone/push Build is passing Details
Closes: #138
Closes: #182
2023-08-01 02:59:22 -07:00
Joshua Ashton 17b5e73799 environment, spring: Use StiffnessAndDamping for springs
continuous-integration/drone/push Build encountered an error Details
Should improve springs significantly.
2023-08-01 02:27:27 -07:00
Joshua Ashton 2242614d4a vehicle: Use StiffnessAndDamping for spring
Removes my todo here, and improves vehicles a lot.
2023-08-01 02:27:21 -07:00
Joshua Ashton 457a95fca5 Rebase against latest JoltPhysics w/ CCD fix
Closes: #1
Closes: #28
Closes: #86
2023-08-01 02:27:16 -07:00
Josh Dowell 562458200c If we fail to create a convex hull from the supplied points, substitute it for a small sphere.
continuous-integration/drone/push Build encountered an error Details
I found exactly one model in a single map for gmod that causes this to happen, a better solution would be to re-calculate a valid hull from the supplied points, but this'll do since it's such a rare case.
2023-04-11 07:15:10 +01:00
Joshua Ashton ae995e24bf compat: Support for GMod mini-source-sdk
continuous-integration/drone/push Build encountered an error Details
2023-04-10 01:24:51 +01:00
Joshua Ashton a7fece4d4e player: Only push objects if the normal < -0.7 (grounded)
continuous-integration/drone/push Build encountered an error Details
Improves: #3

Closes: #118
2023-03-29 19:04:23 +01:00
Joshua Ashton be6b64b31e all: Rebase against latest VPhysics Jolt
continuous-integration/drone/push Build encountered an error Details
Bump submodule to 172a99c718bded5faa169ac440517286684fa2f0 and fixup our code to support the latest version.

Additionally, some water changes/fixes.
2023-03-29 18:31:20 +01:00
Jeremy Lorelli 6c3e224561 object: Convert sphere radius to Source units
continuous-integration/drone/push Build encountered an error Details
2022-12-31 07:18:35 +00:00
JJL772 860c66d09a environment: Fix GetBroadPhaseLayerName BroadPhaseLayers -> string mapping
continuous-integration/drone/push Build is passing Details
2022-09-28 17:28:12 +01:00
Magnus Larsen 0c55d0082d collide: Deconstruct CPhysCollide properly
It is necessary to dispatch the correct JPH::Shape dtor, even though
it's stored as a a CPhysCollide*.

This should fix #58
2022-09-21 19:26:07 +01:00
Joshua Ashton 6c1ec77980 environment: Add stub for Get/SetPerformanceSettings
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/tag Build is passing Details
2022-09-09 02:22:04 +01:00
Joshua Ashton 23bbdea910 util: Remove our impls of popcnt and tzcnt
continuous-integration/drone/push Build is passing Details
2022-09-09 02:00:43 +01:00
Joshua Ashton 6636409b10 listener_contact: Use JPH CountTrailingZeros 2022-09-09 02:00:33 +01:00
Joshua Ashton cfae6a7997 constraints: Use JPH CountBits and CountTrailingZeros 2022-09-09 02:00:20 +01:00
Joshua Ashton 6767ca8f32 object: Unmark body as dirty when destroyed
Fixes some crashes since this was introduced.
2022-09-09 01:59:56 +01:00
Joshua Ashton 954d301a2b constraints: Fix refcountning of constraint pt
continuous-integration/drone/push Build is failing Details
Closes: #17
2022-09-09 01:42:31 +01:00
Josh Dowell 327a96ca54 all: Add multiple builds for different CPU feature sets and a wrapper DLL to go along with them
Closes: #46
2022-09-08 23:43:01 +01:00
Joshua Ashton 08c0934acc cbase: Undef offsetof if present
Fixes Linux builds in SDK.
2022-09-02 18:28:19 +01:00
Joshua Ashton d923d9a5b5 misc: Add compat defines for Alien Swarm 2022-09-02 10:59:04 +01:00
Joshua Ashton b01f9f5c0c environment: Use std::vector for m_pPhysicsControllers 2022-09-02 10:56:58 +01:00
Joshua Ashton ae9b5dcc8e controller_motion: Use std::vector for m_pObjects 2022-09-02 10:56:21 +01:00
Joshua Ashton 143b5b166c environment: Add list of dirty static bodies
Adds a vector of objects that were awake, and changed their
motion type from Dynamic -> Static, so that they can be
retrieved in GetActiveObjects, and have their visuals updated.

If we don't do this, objects that get moved, woken, and their
movement type changed to static will not get their transforms
updated on the game side.

Closes: #59
Closes: #63
2022-09-02 10:09:30 +01:00
Joshua Ashton 36711271be constraints: Use Erase helper in RemoveConstraint 2022-09-02 10:09:30 +01:00
Joshua Ashton 52ff0b3629 fluid: Use new Erase helper 2022-09-02 10:09:30 +01:00
Joshua Ashton bdd5b2ca9b objectpairhash: Use Contains helper 2022-09-02 10:09:30 +01:00
Joshua Ashton 9946d6847c util: Add Contains helper
2022-09-02 10:09:30 +01:00
Joshua Ashton cb10f30fd8 util: Add Erase and EraseIf helpers
No std::erase_if in C++17 which is handy to have!
2022-09-02 10:09:30 +01:00
Joshua Ashton 2812b58680
collide: Use std::swap instead of Swap
Swap is something that was added to Desolation's basetypes.h, not present in SDK 2013.
Just use std::swap from STL.
2022-09-01 12:29:36 +01:00
Joshua Ashton c6c1a6dba1 collide: Flip triangle winding in CreateDebugMesh
Closes: #44
2022-09-01 07:34:12 +01:00
Joshua Ashton db13ffba6e environment: Use resize when updating m_CachedObjects
This was a typo, otherwise the size is always 0.
2022-08-31 15:39:23 +01:00
Joshua Ashton d6e1214a19 listener: Re-target pInternalData on JoltPhysicsCollisionEvent copy/move
Needs this to match the parent structure, not some other object that
may be going to be destroyed.

Closes: #51
2022-08-31 15:39:15 +01:00
Jeremy Lorelli 347e78d122 state_recorder: Prefix call to move with std:: to silence warning 2022-08-30 06:11:40 +01:00
Joshua Ashton 25eecb1f35 collide: Support legacy style .phy files
These legacy style .phy files are literally just serialized compact surfaces
and nothing else, with some misc. data shoved into some dummy compartment.

Some props in shipping HL2 still use this format, as they have a .phy, even after their
.qc had the $collisionmodel removed, as they didn't get the stale .phy in the game files deleted.

Closes: #35
2022-08-30 06:06:58 +01:00
Joshua Ashton d75827b05e parse: Add dummy fallback KV for when parsing fails
There are lots of really broken models floating about, with complete garbage KV contents.

If we fail to parse the KV, use a dummy fallback instead of returning a NULL parser, which always just crashes.
2022-08-30 04:32:01 +01:00
Josh Dowell c9604f710f listener: Fix a typo causing collision damage to be applied in full
There was a typo in vjolt_listener_contact.h where it would get the velocity of the first object twice, which was wrong, and this was causing damage to be applied in full
2022-08-29 23:34:20 +01:00
Joshua Ashton 6d81c04454 pch: Use correctly cased KeyValues.h per-branch 2022-08-29 08:24:44 +01:00
Arthurdead 457b9923f5
build: Fix compiling with C++17 on Linux 2022-08-29 08:23:11 +01:00
Joshua Ashton 65bc5bd2fd vehicle: Implement per-wheel brake torque
Based upon the same calculations that regular VPhysics does, calculate the per-wheel brake torque.

Improves vehicle feel and matches it more closely.
2022-08-29 08:02:10 +01:00
Joshua Ashton a7209f3766 compat: Add GAME_L4D2_OR_NEWER define 2022-08-29 07:57:31 +01:00
Joshua Ashton 11adbb57bd Initial commit 2022-08-29 00:21:50 +01:00