mirror of
https://github.com/voided/CollisionHook.git
synced 2025-12-06 18:28:22 +00:00
Merge pull request #8 from adriansmares/master
Support l4d and l4d2 SDKs
This commit is contained in:
commit
212ca95688
9
.github/workflows/ci.yml
vendored
9
.github/workflows/ci.yml
vendored
@ -29,7 +29,7 @@ jobs:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
PROJECT: "collisionhook"
|
PROJECT: "collisionhook"
|
||||||
SDKS: "css hl2dm dods tf2"
|
SDKS: "css hl2dm dods tf2 l4d l4d2"
|
||||||
MMSOURCE_VERSION: "1.11"
|
MMSOURCE_VERSION: "1.11"
|
||||||
SOURCEMOD_VERSION: "1.11"
|
SOURCEMOD_VERSION: "1.11"
|
||||||
CACHE_PATH: ${{ github.workspace }}/cache
|
CACHE_PATH: ${{ github.workspace }}/cache
|
||||||
@ -103,12 +103,7 @@ jobs:
|
|||||||
# Verify github cache, and see if we don't have the sdks already cloned and update them
|
# Verify github cache, and see if we don't have the sdks already cloned and update them
|
||||||
for sdk in ${{ env.SDKS }}
|
for sdk in ${{ env.SDKS }}
|
||||||
do
|
do
|
||||||
# TODO: remove these conditionals once https://github.com/alliedmodders/hl2sdk/pull/198 is merged
|
shallow_checkout "https://github.com/alliedmodders/hl2sdk" "${sdk}" "hl2sdk-${sdk}"
|
||||||
if [ "${sdk}" == "tf2" ]; then
|
|
||||||
shallow_checkout "https://github.com/Kenzzer/hl2sdk" "tf2_win64" "hl2sdk-tf2"
|
|
||||||
else
|
|
||||||
shallow_checkout "https://github.com/alliedmodders/hl2sdk" "${sdk}" "hl2sdk-${sdk}"
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
shallow_checkout "https://github.com/alliedmodders/ambuild" "master" "ambuild"
|
shallow_checkout "https://github.com/alliedmodders/ambuild" "master" "ambuild"
|
||||||
|
|||||||
@ -22,7 +22,11 @@ SMEXT_LINK( &g_CollisionHook );
|
|||||||
|
|
||||||
SH_DECL_HOOK0( IPhysics, CreateEnvironment, SH_NOATTRIB, 0 , IPhysicsEnvironment * );
|
SH_DECL_HOOK0( IPhysics, CreateEnvironment, SH_NOATTRIB, 0 , IPhysicsEnvironment * );
|
||||||
SH_DECL_HOOK1_void( IPhysicsEnvironment, SetCollisionSolver, SH_NOATTRIB, 0, IPhysicsCollisionSolver * );
|
SH_DECL_HOOK1_void( IPhysicsEnvironment, SetCollisionSolver, SH_NOATTRIB, 0, IPhysicsCollisionSolver * );
|
||||||
|
#if SOURCE_ENGINE == SE_LEFT4DEAD2
|
||||||
|
SH_DECL_HOOK6( IPhysicsCollisionSolver, ShouldCollide, SH_NOATTRIB, 0, int, IPhysicsObject *, IPhysicsObject *, void *, void *, const PhysicsCollisionRulesCache_t &, const PhysicsCollisionRulesCache_t & );
|
||||||
|
#else
|
||||||
SH_DECL_HOOK4( IPhysicsCollisionSolver, ShouldCollide, SH_NOATTRIB, 0, int, IPhysicsObject *, IPhysicsObject *, void *, void * );
|
SH_DECL_HOOK4( IPhysicsCollisionSolver, ShouldCollide, SH_NOATTRIB, 0, int, IPhysicsObject *, IPhysicsObject *, void *, void * );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
IGameConfig *g_pGameConf = NULL;
|
IGameConfig *g_pGameConf = NULL;
|
||||||
@ -175,7 +179,11 @@ void CollisionHook::SetCollisionSolver( IPhysicsCollisionSolver *pSolver )
|
|||||||
RETURN_META( MRES_IGNORED );
|
RETURN_META( MRES_IGNORED );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if SOURCE_ENGINE == SE_LEFT4DEAD2
|
||||||
|
int CollisionHook::VPhysics_ShouldCollide( IPhysicsObject *pObj1, IPhysicsObject *pObj2, void *pGameData1, void *pGameData2, const PhysicsCollisionRulesCache_t &objCache1, const PhysicsCollisionRulesCache_t &obhCache2 )
|
||||||
|
#else
|
||||||
int CollisionHook::VPhysics_ShouldCollide( IPhysicsObject *pObj1, IPhysicsObject *pObj2, void *pGameData1, void *pGameData2 )
|
int CollisionHook::VPhysics_ShouldCollide( IPhysicsObject *pObj1, IPhysicsObject *pObj2, void *pGameData1, void *pGameData2 )
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
if ( g_pCollisionFwd->GetFunctionCount() == 0 )
|
if ( g_pCollisionFwd->GetFunctionCount() == 0 )
|
||||||
RETURN_META_VALUE( MRES_IGNORED, 1 ); // no plugins are interested, let the game decide
|
RETURN_META_VALUE( MRES_IGNORED, 1 ); // no plugins are interested, let the game decide
|
||||||
|
|||||||
@ -9,6 +9,9 @@
|
|||||||
class IPhysicsEnvironment;
|
class IPhysicsEnvironment;
|
||||||
class IPhysicsCollisionSolver;
|
class IPhysicsCollisionSolver;
|
||||||
class IPhysicsObject;
|
class IPhysicsObject;
|
||||||
|
#if SOURCE_ENGINE == SE_LEFT4DEAD2
|
||||||
|
struct PhysicsCollisionRulesCache_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
class CollisionHook :
|
class CollisionHook :
|
||||||
@ -87,7 +90,11 @@ public:
|
|||||||
public: // hooks
|
public: // hooks
|
||||||
IPhysicsEnvironment *CreateEnvironment();
|
IPhysicsEnvironment *CreateEnvironment();
|
||||||
void SetCollisionSolver( IPhysicsCollisionSolver *pSolver );
|
void SetCollisionSolver( IPhysicsCollisionSolver *pSolver );
|
||||||
|
#if SOURCE_ENGINE == SE_LEFT4DEAD2
|
||||||
|
int VPhysics_ShouldCollide( IPhysicsObject *pObj1, IPhysicsObject *pObj2, void *pGameData1, void *pGameData2, const PhysicsCollisionRulesCache_t &objCache1, const PhysicsCollisionRulesCache_t &objCache2 );
|
||||||
|
#else
|
||||||
int VPhysics_ShouldCollide( IPhysicsObject *pObj1, IPhysicsObject *pObj2, void *pGameData1, void *pGameData2 );
|
int VPhysics_ShouldCollide( IPhysicsObject *pObj1, IPhysicsObject *pObj2, void *pGameData1, void *pGameData2 );
|
||||||
|
#endif
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user