summaryrefslogtreecommitdiff
path: root/3dc/avp/DYNBLOCK.C
diff options
context:
space:
mode:
Diffstat (limited to '3dc/avp/DYNBLOCK.C')
-rw-r--r--3dc/avp/DYNBLOCK.C801
1 files changed, 0 insertions, 801 deletions
diff --git a/3dc/avp/DYNBLOCK.C b/3dc/avp/DYNBLOCK.C
deleted file mode 100644
index aed4cb0..0000000
--- a/3dc/avp/DYNBLOCK.C
+++ /dev/null
@@ -1,801 +0,0 @@
-#include "3dc.h"
-#include "dynblock.h"
-
-#define UseLocalAssert No
-#include "ourasert.h"
-
-
-/*KJL****************************************************************************************
-* P R O T O T Y P E S *
-****************************************************************************************KJL*/
-void InitialiseDynamicsBlocks(void);
-DYNAMICSBLOCK* AllocateDynamicsBlock(enum DYNAMICS_TEMPLATE_ID templateID);
-void DeallocateDynamicsBlock(DYNAMICSBLOCK *dynPtr);
-
-void InitialiseCollisionReports(void);
-COLLISIONREPORT* AllocateCollisionReport(DYNAMICSBLOCK* dynPtr);
-
-static DYNAMICSBLOCK DynBlockStorage[MAX_NO_OF_DYNAMICS_BLOCKS];
-static int NumFreeDynBlocks;
-static DYNAMICSBLOCK *FreeDynBlockList[MAX_NO_OF_DYNAMICS_BLOCKS];
-static DYNAMICSBLOCK **FreeDynBlockListPtr;
-
-static COLLISIONREPORT CollisionReportStorage[MAX_NO_OF_COLLISION_REPORTS];
-int NumFreeCollisionReports;
-
-static DYNAMICSBLOCK DynamicsTemplate[]=
-{
- /* DYNAMICS_TEMPLATE_MARINE_PLAYER */
- {
- {0,0,0},/* EULER OrientEuler - Euler Orientation */
- {0,0,0,0,0,0,0,0,0},/* MATRIXCH OrientMat - Local -> World Orientation Matrix */
- {0,0,0},/* EULER PrevOrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH PrevOrientMat - Local -> World Orientation Matrix */
-
- {0,0,0},/* VECTORCH Position */
- {0,0,0},/* VECTORCH PrevPosition */
-
- {0,0,0},/* VECTORCH LinVelocity */
- {0,0,0},/* VECTORCH LinImpulse */
-
- {0,0,0},/* EULER AngVelocity */
- {0,0,0},/* EULER AngImpulse */
-
- NULL, /* struct collisionreport *CollisionReportPtr; */
-
- {0,65536,0},/* VECTORCH GravityDirection */
- 0, /* int TimeNotInContactWithFloor */
-
- 0,/* int Friction; */
- 0,/* int Elasticity; */
- 80*2, /* int Mass */
-
- DYN_TYPE_NRBB_COLLISIONS,
- TOPPLE_FORCE_NONE,
-
- 1,/* GravityOn :1; */
- 1,/* UseStandardGravity :1 - ie. in direction of increasing Y */
- 0,/* StopOnCollision :1; */
- 1,/* CanClimbStairs :1; */
- 0,/* IsStatic :1; */
- 0,/* OnlyCollideWithObjects :1; */
- 0,/* IsNetGhost :1; */
- 0,/* IgnoreSameObjectsAsYou :1; */
- 0,/* IgnoreThePlayer :1; */
- 0,/* UseDisplacement :1; */
- 0,/* OnlyCollideWithEnvironment :1; */
-
-
- 0,/* IsInContactWithFloor :1 */
- 0,/* IsInContactWithNearlyFlatFloor */
- 0,/* RequestsToStandUp :1 */
- 0,/* IsFloating :1 */
- 0,/* IsPickupObject :1 */
- 0,/* IsInanimate :1; */
- 0,/* IgnoresNotVisPolys :1; */
- },
- /* DYNAMICS_TEMPLATE_ALIEN_NPC */
- {
- {0,0,0},/* EULER OrientEuler - Euler Orientation */
- {0,0,0,0,0,0,0,0,0},/* MATRIXCH OrientMat - Local -> World Orientation Matrix */
- {0,0,0},/* EULER PrevOrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH PrevOrientMat - Local -> World Orientation Matrix */
-
- {0,0,0},/* VECTORCH Position */
- {0,0,0},/* VECTORCH PrevPosition */
-
- {0,0,0},/* VECTORCH LinVelocity */
- {0,0,0},/* VECTORCH LinImpulse */
-
- {0,0,0},/* EULER AngVelocity */
- {0,0,0},/* EULER AngImpulse */
-
- NULL, /* struct collisionreport *CollisionReportPtr; */
-
- {0,65536,0},/* VECTORCH GravityDirection */
- 0, /* int TimeNotInContactWithFloor */
-
- 1,/* int Friction; */
- 0,/* int Elasticity; */
- 100, /* int Mass */
-
- DYN_TYPE_NRBB_COLLISIONS,
- TOPPLE_FORCE_ALIEN,
-
- 1,/* GravityOn :1; */
- 0,/* UseStandardGravity :1 - ie. in direction of increasing Y */
- 0,/* StopOnCollision :1; */
- 1,/* CanClimbStairs :1; */
- 0,/* IsStatic :1; */
- 0,/* OnlyCollideWithObjects :1; */
- 0,/* IsNetGhost :1; */
- 0,/* IgnoreSameObjectsAsYou :1; */
- 0,/* IgnoreThePlayer :1; */
- 0,/* UseDisplacement :1; */
- 0,/* OnlyCollideWithEnvironment :1; */
-
-
- 0,/* IsInContactWithFloor :1 */
- 0,/* IsInContactWithNearlyFlatFloor */
- 0,/* RequestsToStandUp :1 */
- 0,/* IsFloating :1 */
- 0,/* IsPickupObject :1 */
- 0,/* IsInanimate :1; */
- 0,/* IgnoresNotVisPolys :1; */
- },
- /* DYNAMICS_TEMPLATE_GRENADE */
- {
- {0,0,0},/* EULER OrientEuler - Euler Orientation */
- {0,0,0,0,0,0,0,0,0},/* MATRIXCH OrientMat - Local -> World Orientation Matrix */
- {0,0,0},/* EULER PrevOrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH PrevOrientMat - Local -> World Orientation Matrix */
-
- {0,0,0},/* VECTORCH Position */
- {0,0,0},/* VECTORCH PrevPosition */
-
- {0,0,0},/* VECTORCH LinVelocity */
- {0,0,0},/* VECTORCH LinImpulse */
-
- {0,0,0},/* EULER AngVelocity */
- {0,0,0},/* EULER AngImpulse */
-
- NULL, /* struct collisionreport *CollisionReportPtr; */
-
- {0,0,0},/* VECTORCH GravityDirection */
- 0, /* int TimeNotInContactWithFloor */
-
- 0,/* int Friction; */
- 32768/2,/* int Elasticity; */
- 20, /* int Mass */
-
- DYN_TYPE_NRBB_COLLISIONS,
- TOPPLE_FORCE_FULL,
-
- 1,/* GravityOn :1; */
- 1,/* UseStandardGravity :1 - ie. in direction of increasing Y */
- 0,/* StopOnCollision :1; */
- 0,/* CanClimbStairs :1; */
- 0,/* IsStatic :1; */
- 0,/* OnlyCollideWithObjects :1; */
- 0,/* IsNetGhost :1; */
- 0,/* IgnoreSameObjectsAsYou :1; */
- 1,/* IgnoreThePlayer :1; */
- 0,/* UseDisplacement :1; */
- 0,/* OnlyCollideWithEnvironment :1; */
-
- 0,/* IsInContactWithFloor :1 */
- 0,/* IsInContactWithNearlyFlatFloor */
- 0,/* RequestsToStandUp :1 */
- 0,/* IsFloating :1 */
- 0,/* IsPickupObject :1 */
- 0,/* IsInanimate :1; */
- 0,/* IgnoresNotVisPolys :1; */
- },
- /* DYNAMICS_TEMPLATE_ROCKET & predator disc weapon */
- {
- {0,0,0},/* EULER OrientEuler - Euler Orientation */
- {0,0,0,0,0,0,0,0,0},/* MATRIXCH OrientMat - Local -> World Orientation Matrix */
- {0,0,0},/* EULER PrevOrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH PrevOrientMat - Local -> World Orientation Matrix */
-
- {0,0,0},/* VECTORCH Position */
- {0,0,0},/* VECTORCH PrevPosition */
-
- {0,0,0},/* VECTORCH LinVelocity */
- {0,0,0},/* VECTORCH LinImpulse */
-
- {0,0,0},/* EULER AngVelocity */
- {0,0,0},/* EULER AngImpulse */
-
- NULL, /* struct collisionreport *CollisionReportPtr; */
-
- {0,0,0},/* VECTORCH GravityDirection */
- 0, /* int TimeNotInContactWithFloor */
-
- 0,/* int Friction; */
- 65536,/* int Elasticity; */
- 40, /* int Mass */
-
- DYN_TYPE_NRBB_COLLISIONS,
- TOPPLE_FORCE_NONE,
-
- 0,/* GravityOn :1; */
- 0,/* UseStandardGravity :1 - ie. in direction of increasing Y */
- 1,/* StopOnCollision :1; */
- 0,/* CanClimbStairs :1; */
- 0,/* IsStatic :1; */
- 0,/* OnlyCollideWithObjects :1; */
- 0,/* IsNetGhost :1; */
- 0,/* IgnoreSameObjectsAsYou :1; */
- 1,/* IgnoreThePlayer :1; */
- 0,/* UseDisplacement :1; */
- 0,/* OnlyCollideWithEnvironment :1; */
-
- 0,/* IsInContactWithFloor :1 */
- 0,/* IsInContactWithNearlyFlatFloor */
- 0,/* RequestsToStandUp :1 */
- 0,/* IsFloating :1 */
- 0,/* IsPickupObject :1 */
- 0,/* IsInanimate :1; */
- 0,/* IgnoresNotVisPolys :1; */
- },
- /* DYNAMICS_TEMPLATE_DEBRIS */
- {
- {0,0,0},/* EULER OrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH OrientMat - Local -> World Orientation Matrix */
- {0,0,0},/* EULER PrevOrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH PrevOrientMat - Local -> World Orientation Matrix */
-
- {0,0,0},/* VECTORCH Position */
- {0,0,0},/* VECTORCH PrevPosition */
-
- {0,0,0},/* VECTORCH LinVelocity */
- {0,0,0},/* VECTORCH LinImpulse */
-
- {0,0,0},/* EULER AngVelocity */
- {0,0,0},/* EULER AngImpulse */
-
- NULL, /* struct collisionreport *CollisionReportPtr; */
-
- {0,0,0},/* VECTORCH GravityDirection */
- 0, /* int TimeNotInContactWithFloor */
-
- 0,/* int Friction; */
- 0,/* int Elasticity; */
- 30, /* int Mass */
-
- DYN_TYPE_NO_COLLISIONS,
- TOPPLE_FORCE_NONE,
-
- 1,/* GravityOn :1; */
- 1,/* UseStandardGravity :1 - ie. in direction of increasing Y */
- 0,/* StopOnCollision :1; */
- 0,/* CanClimbStairs :1; */
- 0,/* IsStatic :1; */
- 0,/* OnlyCollideWithObjects :1; */
- 0,/* IsNetGhost :1; */
- 0,/* IgnoreSameObjectsAsYou :1; */
- 0,/* IgnoreThePlayer :1; */
- 0,/* UseDisplacement :1; */
- 1,/* OnlyCollideWithEnvironment :1; */
-
- 0,/* IsInContactWithFloor :1 */
- 0,/* IsInContactWithNearlyFlatFloor */
- 0,/* RequestsToStandUp :1 */
- 0,/* IsFloating :1 */
- 0,/* IsPickupObject :1 */
- 0,/* IsInanimate :1; */
- 0,/* IgnoresNotVisPolys :1; */
- },
- /* DYNAMICS_TEMPLATE_STATIC */
- {
- {0,0,0},/* EULER OrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH OrientMat - Local -> World Orientation Matrix */
- {0,0,0},/* EULER PrevOrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH PrevOrientMat - Local -> World Orientation Matrix */
-
- {0,0,0},/* VECTORCH Position */
- {0,0,0},/* VECTORCH PrevPosition */
-
- {0,0,0},/* VECTORCH LinVelocity */
- {0,0,0},/* VECTORCH LinImpulse */
-
- {0,0,0},/* EULER AngVelocity */
- {0,0,0},/* EULER AngImpulse */
-
- NULL, /* struct collisionreport *CollisionReportPtr; */
-
- {0,0,0},/* VECTORCH GravityDirection */
- 0, /* int TimeNotInContactWithFloor */
-
- 0,/* int Friction; */
- 0,/* int Elasticity; */
- 100, /* int Mass */
-
- DYN_TYPE_NRBB_COLLISIONS,
- TOPPLE_FORCE_NONE,
-
- 1,/* GravityOn :1; */
- 1,/* UseStandardGravity :1 - ie. in direction of increasing Y */
- 0,/* StopOnCollision :1; */
- 0,/* CanClimbStairs :1; */
- 1,/* IsStatic :1; */
- 0,/* OnlyCollideWithObjects :1; */
- 0,/* IsNetGhost :1; */
- 0,/* IgnoreSameObjectsAsYou :1; */
- 0,/* IgnoreThePlayer :1; */
- 0,/* UseDisplacement :1; */
- 0,/* OnlyCollideWithEnvironment :1; */
-
- 0,/* IsInContactWithFloor :1 */
- 0,/* IsInContactWithNearlyFlatFloor */
- 0,/* RequestsToStandUp :1 */
- 0,/* IsFloating :1 */
- 0,/* IsPickupObject :1 */
- 0,/* IsInanimate :1; */
- 0,/* IgnoresNotVisPolys :1; */
- },
- /* DYNAMICS_TEMPLATE_INANIMATE */
- {
- {0,0,0},/* EULER OrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH OrientMat - Local -> World Orientation Matrix */
- {0,0,0},/* EULER PrevOrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH PrevOrientMat - Local -> World Orientation Matrix */
-
- {0,0,0},/* VECTORCH Position */
- {0,0,0},/* VECTORCH PrevPosition */
-
- {0,0,0},/* VECTORCH LinVelocity */
- {0,0,0},/* VECTORCH LinImpulse */
-
- {0,0,0},/* EULER AngVelocity */
- {0,0,0},/* EULER AngImpulse */
-
- NULL, /* struct collisionreport *CollisionReportPtr; */
-
- {0,0,0},/* VECTORCH GravityDirection */
- 0, /* int TimeNotInContactWithFloor */
-
- 1,/* int Friction; */
- 16384,/* int Elasticity; */
- 65536, /* int Mass */
-
- DYN_TYPE_NRBB_COLLISIONS,
- TOPPLE_FORCE_FULL,
-
- 1,/* GravityOn :1; */
- 1,/* UseStandardGravity :1 - ie. in direction of increasing Y */
- 0,/* StopOnCollision :1; */
- 0,/* CanClimbStairs :1; */
- 0,/* IsStatic :1; */
- 0,/* OnlyCollideWithObjects :1; */
- 0,/* IsNetGhost :1; */
- 0,/* IgnoreSameObjectsAsYou :1; */
- 0,/* IgnoreThePlayer :1; */
- 0,/* UseDisplacement :1; */
- 0,/* OnlyCollideWithEnvironment :1; */
-
- 0,/* IsInContactWithFloor :1 */
- 0,/* IsInContactWithNearlyFlatFloor */
- 0,/* RequestsToStandUp :1 */
- 0,/* IsFloating :1 */
- 0,/* IsPickupObject :1 */
- 1,/* IsInanimate :1; */
- 0,/* IgnoresNotVisPolys :1; */
- },
- /* DYNAMICS_TEMPLATE_PICKUPOBJECT */
- {
- {0,0,0},/* EULER OrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH OrientMat - Local -> World Orientation Matrix */
- {0,0,0},/* EULER PrevOrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH PrevOrientMat - Local -> World Orientation Matrix */
-
- {0,0,0},/* VECTORCH Position */
- {0,0,0},/* VECTORCH PrevPosition */
-
- {0,0,0},/* VECTORCH LinVelocity */
- {0,0,0},/* VECTORCH LinImpulse */
-
- {0,0,0},/* EULER AngVelocity */
- {0,0,0},/* EULER AngImpulse */
-
- NULL, /* struct collisionreport *CollisionReportPtr; */
-
- {0,0,0},/* VECTORCH GravityDirection */
- 0, /* int TimeNotInContactWithFloor */
-
- 0,/* int Friction; */
- 16384,/* int Elasticity; */
- 20, /* int Mass */
-
- DYN_TYPE_NRBB_COLLISIONS,
- TOPPLE_FORCE_FULL,
-
- 0,/* GravityOn :1; */
- 1,/* UseStandardGravity :1 - ie. in direction of increasing Y */
- 0,/* StopOnCollision :1; */
- 0,/* CanClimbStairs :1; */
- 0,/* IsStatic :1; */
- 0,/* OnlyCollideWithObjects :1; */
- 0,/* IsNetGhost :1; */
- 0,/* IgnoreSameObjectsAsYou :1; */
- 0,/* IgnoreThePlayer :1; */
- 0,/* UseDisplacement :1; */
- 0,/* OnlyCollideWithEnvironment :1; */
-
- 0,/* IsInContactWithFloor :1 */
- 0,/* IsInContactWithNearlyFlatFloor */
- 0,/* RequestsToStandUp :1 */
- 0,/* IsFloating :1 */
- 1,/* IsPickupObject :1 */
- 0,/* IsInanimate :1; */
- 0,/* IgnoresNotVisPolys :1; */
- },
- /* DYNAMICS_TEMPLATE_SPRITE_NPC */
- {
- {0,0,0},/* EULER OrientEuler - Euler Orientation */
- {0,0,0,0,0,0,0,0,0},/* MATRIXCH OrientMat - Local -> World Orientation Matrix */
- {0,0,0},/* EULER PrevOrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH PrevOrientMat - Local -> World Orientation Matrix */
-
- {0,0,0},/* VECTORCH Position */
- {0,0,0},/* VECTORCH PrevPosition */
-
- {0,0,0},/* VECTORCH LinVelocity */
- {0,0,0},/* VECTORCH LinImpulse */
-
- {0,0,0},/* EULER AngVelocity */
- {0,0,0},/* EULER AngImpulse */
-
- NULL, /* struct collisionreport *CollisionReportPtr; */
-
- {0,65536,0},/* VECTORCH GravityDirection */
- 0, /* int TimeNotInContactWithFloor */
-
- 1,/* int Friction; */
- 0,/* int Elasticity; */
- 80*2, /* int Mass */
-
- DYN_TYPE_NRBB_COLLISIONS,
- TOPPLE_FORCE_NONE,
-
- 1,/* GravityOn :1; */
- 1,/* UseStandardGravity :1 - ie. in direction of increasing Y */
- 0,/* StopOnCollision :1; */
- 1,/* CanClimbStairs :1; */
- 0,/* IsStatic :1; */
- 0,/* OnlyCollideWithObjects :1; */
- 0,/* IsNetGhost :1; */
- 0,/* IgnoreSameObjectsAsYou :1; */
- 0,/* IgnoreThePlayer :1; */
- 0,/* UseDisplacement :1; */
- 0,/* OnlyCollideWithEnvironment :1; */
-
- 0,/* IsInContactWithFloor :1 */
- 0,/* IsInContactWithNearlyFlatFloor */
- 0,/* RequestsToStandUp :1 */
- 0,/* IsFloating :1 */
- 0,/* IsPickupObject :1 */
- 0,/* IsInanimate :1; */
- 0,/* IgnoresNotVisPolys :1; */
- },
- /* DYNAMICS_TEMPLATE_STATIC_SPRITE */
- {
- {0,0,0},/* EULER OrientEuler - Euler Orientation */
- {0,0,0,0,0,0,0,0,0},/* MATRIXCH OrientMat - Local -> World Orientation Matrix */
- {0,0,0},/* EULER PrevOrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH PrevOrientMat - Local -> World Orientation Matrix */
-
- {0,0,0},/* VECTORCH Position */
- {0,0,0},/* VECTORCH PrevPosition */
-
- {0,0,0},/* VECTORCH LinVelocity */
- {0,0,0},/* VECTORCH LinImpulse */
-
- {0,0,0},/* EULER AngVelocity */
- {0,0,0},/* EULER AngImpulse */
-
- NULL, /* struct collisionreport *CollisionReportPtr; */
-
- {0,65536,0},/* VECTORCH GravityDirection */
- 0, /* int TimeNotInContactWithFloor */
-
- 1,/* int Friction; */
- 0,/* int Elasticity; */
- 80*2, /* int Mass */
-
- DYN_TYPE_SPRITE_COLLISIONS,
- TOPPLE_FORCE_NONE,
-
- 1,/* GravityOn :1; */
- 1,/* UseStandardGravity :1 - ie. in direction of increasing Y */
- 0,/* StopOnCollision :1; */
- 1,/* CanClimbStairs :1; */
- 1,/* IsStatic :1; */
- 0,/* OnlyCollideWithObjects :1; */
- 0,/* IsNetGhost :1; */
- 0,/* IgnoreSameObjectsAsYou :1; */
- 0,/* IgnoreThePlayer :1; */
- 0,/* UseDisplacement :1; */
- 0,/* OnlyCollideWithEnvironment :1; */
-
- 0,/* IsInContactWithFloor :1 */
- 0,/* IsInContactWithNearlyFlatFloor */
- 0,/* RequestsToStandUp :1 */
- 0,/* IsFloating :1 */
- 0,/* IsPickupObject :1 */
- 0,/* IsInanimate :1; */
- 0,/* IgnoresNotVisPolys :1; */
- },
- /* DYNAMICS_TEMPLATE_PLATFORM_LIFT */
- {
- {0,0,0},/* EULER OrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH OrientMat - Local -> World Orientation Matrix */
- {0,0,0},/* EULER PrevOrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH PrevOrientMat - Local -> World Orientation Matrix */
-
- {0,0,0},/* VECTORCH Position */
- {0,0,0},/* VECTORCH PrevPosition */
-
- {0,0,0},/* VECTORCH LinVelocity */
- {0,0,0},/* VECTORCH LinImpulse */
-
- {0,0,0},/* EULER AngVelocity */
- {0,0,0},/* EULER AngImpulse */
-
- NULL, /* struct collisionreport *CollisionReportPtr; */
-
- {0,0,0},/* VECTORCH GravityDirection */
- 0, /* int TimeNotInContactWithFloor */
-
- 0,/* int Friction; */
- 0,/* int Elasticity; */
- 1, /* int Mass */
-
- DYN_TYPE_NRBB_COLLISIONS,
- TOPPLE_FORCE_NONE,
-
- 0,/* GravityOn :1; */
- 1,/* UseStandardGravity :1 - ie. in direction of increasing Y */
- 1,/* StopOnCollision :1; */
- 0,/* CanClimbStairs :1; */
- 0,/* IsStatic :1; */
- 1,/* OnlyCollideWithObjects :1; */
- 0,/* IsNetGhost :1; */
- 0,/* IgnoreSameObjectsAsYou :1; */
- 0,/* IgnoreThePlayer :1; */
- 1,/* UseDisplacement :1; */
- 0,/* OnlyCollideWithEnvironment :1; */
-
- 0,/* IsInContactWithFloor :1 */
- 0,/* IsInContactWithNearlyFlatFloor */
- 0,/* RequestsToStandUp :1 */
- 0,/* IsFloating :1 */
- 0,/* IsPickupObject :1 */
- 0,/* IsInanimate :1; */
- 0,/* IgnoresNotVisPolys :1; */
- },
- /* DYNAMICS_TEMPLATE_ALIEN_DEBRIS */
- {
- {0,0,0},/* EULER OrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH OrientMat - Local -> World Orientation Matrix */
- {0,0,0},/* EULER PrevOrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH PrevOrientMat - Local -> World Orientation Matrix */
-
- {0,0,0},/* VECTORCH Position */
- {0,0,0},/* VECTORCH PrevPosition */
-
- {0,0,0},/* VECTORCH LinVelocity */
- {0,0,0},/* VECTORCH LinImpulse */
-
- {0,0,0},/* EULER AngVelocity */
- {0,0,0},/* EULER AngImpulse */
-
- NULL, /* struct collisionreport *CollisionReportPtr; */
-
- {0,0,0},/* VECTORCH GravityDirection */
- 0, /* int TimeNotInContactWithFloor */
-
- 0,/* int Friction; */
- 0,/* int Elasticity; */
- 1, /* int Mass */
-
- DYN_TYPE_NRBB_COLLISIONS,
- TOPPLE_FORCE_NONE,
-
- 1,/* GravityOn :1; */
- 1,/* UseStandardGravity :1 - ie. in direction of increasing Y */
- 0,/* StopOnCollision :1; */
- 0,/* CanClimbStairs :1; */
- 0,/* IsStatic :1; */
- 0,/* OnlyCollideWithObjects :1; */
- 0,/* IsNetGhost :1; */
- 1,/* IgnoreSameObjectsAsYou :1; */
- 0,/* IgnoreThePlayer :1; */
- 0,/* UseDisplacement :1; */
- 1,/* OnlyCollideWithEnvironment :1; */
-
- 0,/* IsInContactWithFloor :1 */
- 0,/* IsInContactWithNearlyFlatFloor */
- 0,/* RequestsToStandUp :1 */
- 0,/* IsFloating :1 */
- 0,/* IsPickupObject :1 */
- 0,/* IsInanimate :1; */
- 0,/* IgnoresNotVisPolys :1; */
- },
- /* DYNAMICS_TEMPLATE_ACID_SMOKE */
- {
- {0,0,0},/* EULER OrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH OrientMat - Local -> World Orientation Matrix */
- {0,0,0},/* EULER PrevOrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH PrevOrientMat - Local -> World Orientation Matrix */
-
- {0,0,0},/* VECTORCH Position */
- {0,0,0},/* VECTORCH PrevPosition */
-
- {0,0,0},/* VECTORCH LinVelocity */
- {0,0,0},/* VECTORCH LinImpulse */
-
- {0,0,0},/* EULER AngVelocity */
- {0,0,0},/* EULER AngImpulse */
-
- NULL, /* struct collisionreport *CollisionReportPtr; */
-
- {0,-ONE_FIXED,0},/* VECTORCH GravityDirection */
- 0, /* int TimeNotInContactWithFloor */
-
- 0,/* int Friction; */
- 0,/* int Elasticity; */
- 1, /* int Mass */
-
- DYN_TYPE_NO_COLLISIONS,
- TOPPLE_FORCE_NONE,
-
- 1,/* GravityOn :1; */
- 0,/* UseStandardGravity :1 - ie. in direction of increasing Y */
- 0,/* StopOnCollision :1; */
- 0,/* CanClimbStairs :1; */
- 0,/* IsStatic :1; */
- 0,/* OnlyCollideWithObjects :1; */
- 0,/* IsNetGhost :1; */
- 0,/* IgnoreSameObjectsAsYou :1; */
- 0,/* IgnoreThePlayer :1; */
- 0,/* UseDisplacement :1; */
- 0,/* OnlyCollideWithEnvironment :1; */
-
- 0,/* IsInContactWithFloor :1 */
- 0,/* IsInContactWithNearlyFlatFloor */
- 0,/* RequestsToStandUp :1 */
- 0,/* IsFloating :1 */
- 0,/* IsPickupObject :1 */
- 0,/* IsInanimate :1; */
- 0,/* IgnoresNotVisPolys :1; */
- },
- /* DYNAMICS_TEMPLATE_NET_GHOST */
- {
- {0,0,0},/* EULER OrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH OrientMat - Local -> World Orientation Matrix */
- {0,0,0},/* EULER PrevOrientEuler - Euler Orientation */
- {65536,0,0,0,65536,0,0,0,65536},/* MATRIXCH PrevOrientMat - Local -> World Orientation Matrix */
-
- {0,0,0},/* VECTORCH Position */
- {0,0,0},/* VECTORCH PrevPosition */
-
- {0,0,0},/* VECTORCH LinVelocity */
- {0,0,0},/* VECTORCH LinImpulse */
-
- {0,0,0},/* EULER AngVelocity */
- {0,0,0},/* EULER AngImpulse */
-
- NULL, /* struct collisionreport *CollisionReportPtr; */
-
- {0,0,0},/* VECTORCH GravityDirection */
- 0, /* int TimeNotInContactWithFloor */
-
- 0,/* int Friction; */
- 0,/* int Elasticity; */
- 100, /* int Mass */
-
- DYN_TYPE_NRBB_COLLISIONS,
- TOPPLE_FORCE_NONE,
-
- 1,/* GravityOn :1; */
- 1,/* UseStandardGravity :1 - ie. in direction of increasing Y */
- 0,/* StopOnCollision :1; */
- 0,/* CanClimbStairs :1; */
- 0,/* IsStatic :1; */
- 0,/* OnlyCollideWithObjects :1; */
- 1,/* IsNetGhost :1; */
- 0,/* IgnoreSameObjectsAsYou :1; */
- 0,/* IgnoreThePlayer :1; */
- 0,/* UseDisplacement :1; */
- 0,/* OnlyCollideWithEnvironment :1; */
-
- 0,/* IsInContactWithFloor :1 */
- 0,/* IsInContactWithNearlyFlatFloor */
- 0,/* RequestsToStandUp :1 */
- 0,/* IsFloating :1 */
- 0,/* IsPickupObject :1 */
- 0,/* IsInanimate :1; */
- 0,/* IgnoresNotVisPolys :1; */
- },
-
-
-
-
-};
-
-
-/*KJL***************************************************************************
-* FUNCTIONS TO ALLOCATE AND DEALLOCATE DYNAMICS BLOCKS - KJL 12:02:14 11/13/96 *
-***************************************************************************KJL*/
-void InitialiseDynamicsBlocks(void)
-{
- DYNAMICSBLOCK *freeBlockPtr = DynBlockStorage;
- int blk;
-
- for(blk=0; blk < MAX_NO_OF_DYNAMICS_BLOCKS; blk++)
- {
- FreeDynBlockList[blk] = freeBlockPtr++;
- }
-
- FreeDynBlockListPtr = &FreeDynBlockList[MAX_NO_OF_DYNAMICS_BLOCKS-1];
- NumFreeDynBlocks = MAX_NO_OF_DYNAMICS_BLOCKS;
-}
-
-
-DYNAMICSBLOCK* AllocateDynamicsBlock(enum DYNAMICS_TEMPLATE_ID templateID)
-{
- DYNAMICSBLOCK *dynPtr = 0; /* Default to null ptr */
-
- if (NumFreeDynBlocks)
- {
- dynPtr = *FreeDynBlockListPtr--;
- NumFreeDynBlocks--;
- GLOBALASSERT(templateID>=0);
- GLOBALASSERT(templateID<MAX_NO_OF_DYNAMICS_TEMPLATES);
- *dynPtr = DynamicsTemplate[templateID];
- }
- else
- {
- /* unable to allocate a dynamics block I'm afraid;
- MAX_NO_OF_DYNAMICS_BLOCKS is too low */
- LOCALASSERT(NumFreeDynBlocks);
- }
-
- return dynPtr;
-}
-
-
-void DeallocateDynamicsBlock(DYNAMICSBLOCK *dynPtr)
-{
- GLOBALASSERT(dynPtr);
- *(++FreeDynBlockListPtr) = dynPtr;
- NumFreeDynBlocks++;
-}
-
-/*KJL***************************************************************************
-* FUNCTIONS TO INITIALISE & ALLOCATE COLLISION REPORTS - KJL 12:17:13 11/19/96 *
-***************************************************************************KJL*/
-void InitialiseCollisionReports(void)
-{
- NumFreeCollisionReports = MAX_NO_OF_COLLISION_REPORTS;
-}
-
-
-COLLISIONREPORT* AllocateCollisionReport(DYNAMICSBLOCK* dynPtr)
-{
- COLLISIONREPORT *newReportPtr = 0; /* Default to null ptr */
- GLOBALASSERT(dynPtr);
-
- if (NumFreeCollisionReports)
- {
- NumFreeCollisionReports--;
- newReportPtr = &CollisionReportStorage[NumFreeCollisionReports];
-
- if (dynPtr->CollisionReportPtr) /* already some reports */
- {
- COLLISIONREPORT *reportPtr = dynPtr->CollisionReportPtr;
-
- /* search for the last report */
- while(reportPtr->NextCollisionReportPtr)
- reportPtr = reportPtr->NextCollisionReportPtr;
- reportPtr->NextCollisionReportPtr = newReportPtr;
- }
- else /* object's first report */
- {
- dynPtr->CollisionReportPtr = newReportPtr;
- }
-
- /* make report the end of the list */
- newReportPtr->NextCollisionReportPtr=0;
- }
- else
- {
- /* unable to allocate a collision block I'm afraid */
- LOCALASSERT(1==0);
- }
-
- return newReportPtr;
-}
-