diff options
Diffstat (limited to 'public/rope_shared.h')
| -rw-r--r-- | public/rope_shared.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/public/rope_shared.h b/public/rope_shared.h new file mode 100644 index 0000000..54c2882 --- /dev/null +++ b/public/rope_shared.h @@ -0,0 +1,69 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef ROPE_SHARED_H +#define ROPE_SHARED_H +#ifdef _WIN32 +#pragma once +#endif + + +// Shared definitions for rope. +#define ROPE_MAX_SEGMENTS 10 +#define ROPE_TYPE1_NUMSEGMENTS 4 +#define ROPE_TYPE2_NUMSEGMENTS 2 + +// Default rope gravity vector. +#define ROPE_GRAVITY 0, 0, -1500 + + +// Rope flags. +#define ROPE_RESIZE (1<<0) // Try to keep the rope dangling the same amount + // even as the rope length changes. +#define ROPE_BARBED (1<<1) // Hack option to draw like a barbed wire. +#define ROPE_COLLIDE (1<<2) // Collide with the world? +#define ROPE_SIMULATE (1<<3) // Is the rope valid? +#define ROPE_BREAKABLE (1<<4) // Can the endpoints detach? +#define ROPE_NO_WIND (1<<5) // No wind simulation on this rope. +#define ROPE_INITIAL_HANG (1<<6) // By default, ropes will simulate for a bit internally when they + // are created so they sag, but dynamically created ropes for things + // like harpoons don't want this. +#define ROPE_PLAYER_WPN_ATTACH (1<<7) // If this flag is set, then the second attachment must be a player. + // The rope will attach to "buff_attach" on the player's active weapon. + // (This is a flag because it requires special code on the client to + // find the weapon). +#define ROPE_NO_GRAVITY (1<<8) // Disable gravity on this rope. +#define ROPE_NUMFLAGS 9 + + +// This is added to all rope slacks so when a level designer enters a +// slack of zero in the entity, it doesn't dangle so low. +#define ROPESLACK_FUDGEFACTOR -100 + + +// Rope shader IDs. +#define ROPESHADER_BLACKCABLE 0 +#define ROPESHADER_ROPE 1 +#define ROPESHADER_CHAIN 2 + + +// Rope locked points +enum +{ + ROPE_LOCK_START_POINT = 0x1, + ROPE_LOCK_END_POINT = 0x2, + ROPE_LOCK_START_DIRECTION = 0x4, + ROPE_LOCK_END_DIRECTION = 0x8, +}; + + +// Rope attachment points. +#define ROPE_ATTACHMENT_START_POINT 1 +#define ROPE_ATTACHMENT_END_POINT 2 + + +#endif // ROPE_SHARED_H |