BehemothProgrammer

Turok 3 ScriptAPI

Sep 11th, 2024 (edited)
391
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 92.63 KB | None | 0 0
  1. uint kexTurokGetRandomValue();
  2. uint kexTurokGetRandomMaxValue(const uint);
  3. float kexTurokGetRandomFloat(const float);
  4. float kexTurokGetRandomFloatRange(const float, const float);
  5. float kexTurokGetRandomCFloat();
  6. kSys Sys;
  7. const float GAME_FRAME_TIME = 0.25f;
  8. const float GAME_DELTA_TIME = 0.016666668f;
  9. const float GAME_FRAME_UNIT = 4f;
  10. const float GAME_SECONDS = 0.06666667f;
  11. const float GAME_SCALE = 10.24f;
  12. const float GAME_FPS_TUROK = 15f;
  13. const float GAME_FPS_KEX = 60f;
  14. kexTurokNavData g_pTurokNavData;
  15. kexTurokHud g_pTurokHud;
  16. kexTurokWorld g_pTurokWorld;
  17. kexTurokObjectFactory g_pTurokObjectFactory;
  18. kexTurokGameInstance g_pTurokGame;
  19. kexTurokSoundFxManager g_pTurokSoundFxManager;
  20. kexTurokPhysicsWorld g_pTurokPhysicsWorld;
  21. kexTurokParticleManager g_pTurokParticleManager;
  22.  
  23. namespace Math
  24. {
  25.     float Sin(float);
  26.     float Cos(float);
  27.     float Tan(float);
  28.     float ATan2(float, float);
  29.     float Fabs(float);
  30.     float ACos(float);
  31.     float Sqrt(float);
  32.     int Abs(int);
  33.     float Ceil(float);
  34.     float Floor(float);
  35.     float Log(float);
  36.     float Pow(float, float);
  37.     float Deg2Rad(float);
  38.     float Rad2Deg(float);
  39.     float InvSqrt(float);
  40.     float IncMax(const float, const float, const float);
  41.     int SysRand();
  42.     int Rand();
  43.     uint8 RandByte();
  44.     int RandMax(const int);
  45.     float NLerp(const float, const float, const float);
  46.     float Accelerate(const float, const float, const float);
  47.     float RandFloat();
  48.     float RandCFloat();
  49.     float RandRange(const float, const float);
  50.     void Clamp(float&out, const float, const float);
  51.     float Lerp(float, const float, const float);
  52.     float CosTween(const float);
  53.     float CosArc(const float);
  54.     float SmoothStep(const float, const float, const float);
  55.     float HermiteBlend(const float, const float, const float);
  56.     float Min(const float, const float);
  57.     float Max(const float, const float);
  58.     float pi = 3.1415927f;
  59.     kVec3 vecZero(0f, 0f, 0f);
  60. }
  61.  
  62. class kDictMem
  63. {
  64. public:
  65.     bool GetFloat(const kStr&in, float&out, const float defaultValue = 0);
  66.     bool GetInt(const kStr&in, int&out, const int defaultValue = 0);
  67.     bool GetBool(const kStr&in, bool&out, const bool defaultValue = false);
  68.     bool GetString(const kStr&in, kStr&out);
  69.     bool GetVector(const kStr&in, kVec3&out);
  70. }
  71.  
  72. class turokResourceLink_s
  73. {
  74. public:
  75.     turokResourceLinkCauses_e m_eCauseFlags;
  76.     uint m_dwEffectInstance;
  77.     uint m_dwEffectData;
  78.     uint m_dwCinemaID;
  79.     uint m_dwEffectLevel;
  80.     float m_fUserValue;
  81.     float m_fUserTagID;
  82.     turokResourceEventLinkFlags_e m_eLinkFlags;
  83.     uint8 m_groupID;
  84.     int8 m_unknown3;
  85.     int8 m_unknown4;
  86.     uint8 m_textID;
  87.     uint8 m_effectIntelType;
  88.     uint8 m_effectType;
  89.     uint8 m_index;
  90. }
  91.  
  92. class kexTurokWeapon
  93. {
  94. public:
  95.     void Remove();
  96.     void Disable();
  97.     void Enable();
  98.     float GetCollisionRadius() const;
  99.     float GetCollisionHeight() const;
  100.     float GetCollisionWallRadius() const;
  101.     float GetCollisionHeightOffset() const;
  102.     float GetEyePosition() const;
  103.     bool HasCollision() const;
  104.     bool HasJointCollision() const;
  105.     void PlaySound(const uint dwSfxID, const kVec3&in vOffset);
  106.     void PlaySoundWithTactile(const uint dwSfxID, const kVec3&in vOffset, int channel, int pos, int node);
  107.     void StopSound();
  108.     void StopSound(const uint dwSfxID);
  109.     void AttachLoopingSound(const uint dwSfxID, const bool bLocal = false);
  110.     void AttachPositionedLoopingSound(const uint dwSfxID, const kVec3&in vPos, const bool bLocal = false);
  111.     void StopLoopingSound();
  112.     bool HasLoopingSound();
  113.     float GetDeltaFromPoint(const kVec3&in vLookAtPoint) const;
  114.     kVec3 GetRotatedDirection(const kVec3&in vDirection) const;
  115.     kQuat GetRotation() const;
  116.     kVec3 GetWorldSpacePositionFromLocalVector(const kVec3&in vLocalVector) const;
  117.     void SetTarget(kexTurokObject@ pTarget);
  118.     kexTurokObject@ GetTarget();
  119.     kVec3& GetOrigin();
  120.     const kVec3& GetOrigin() const;
  121.     kVec3& GetDesiredOrigin();
  122.     const kVec3& GetDesiredOrigin() const;
  123.     kVec3& GetPrevOrigin();
  124.     const kVec3& GetPrevOrigin() const;
  125.     turokAngles_s& GetAngles();
  126.     const turokAngles_s& GetAngles() const;
  127.     turokAngles_s& GetPrevAngles();
  128.     const turokAngles_s& GetPrevAngles() const;
  129.     bool IsStale() const;
  130.     turokRegion_s@ GetRegion();
  131.     const turokRegion_s@ GetRegion() const;
  132.     bool IsRemoving() const;
  133.     float GetWaterElevation() const;
  134.     turokWaterLevelType_e GetWaterLevel() const;
  135.     float GetWaterDepth() const;
  136.     turokObjectFlag_e& GetFlags();
  137.     const turokObjectFlag_e& GetFlags() const;
  138.     kVec3& GetVelocity();
  139.     const kVec3& GetVelocity() const;
  140.     kVec3& GetScale();
  141.     const kVec3& GetScale() const;
  142.     kVec3& GetClimbNormal();
  143.     const kVec3& GetClimbNormal() const;
  144.     uint GetUniqueObjectID() const;
  145.     turokImpactType_e& GetGroundMaterial();
  146.     const turokImpactType_e& GetGroundMaterial() const;
  147.     void UpdateWaterStatus();
  148.     void UpdateCrouchStatus();
  149.     void UpdateAntiGravityStatus();
  150.     void UpdateDeathRegionStatus();
  151.     bool IsBeingCountTracked() const;
  152.     void RunEvent(const turokEventType_e eEventType, const kVec3&in vOffset, const int bone, const float fParams1, const float fParams2, const float fParams3, const float fParams4, const float fParams5, const float fParams6, const float fParams7, const float fParams8);
  153.     void FlagPersistentData(const bool bFlag) const;
  154.     void FlagTriggeredPersistentData(const bool bFlag) const;
  155.     void InflictDamage(kexTurokObject@ pInflictor, const kVec3&in vPos, const float fRadius, const float fAmount, const turokDamageFlags_e eDamageFlags);
  156.     void TurnYaw(const float fSpeed, const float fDeltaAngle);
  157.     void SetTurnDeltaSpeed(const float fSpeed);
  158.     float GetTurnDeltaSpeed() const;
  159.     bool IsObstructed(const kVec3&in vTestPos);
  160.     bool IsPersistentFlagged() const;
  161.     bool IsPersistentTriggered() const;
  162.     turokObjectCrossResult_e ObjectCrosses(kexTurokObject@ pObject, const float fTouchRadius) const;
  163.     bool IsAllowedForCharacterMode() const;
  164.     void EnableIntelligence();
  165.     void DisableIntelligence();
  166.     bool IsIntelligenceEnabled() const;
  167.     bool IsIntelligenceEnabledForDifficulty() const;
  168.     void SetFaction(const uint dwValue);
  169.     uint GetFaction() const;
  170.     kexTurokRenderMeshComponent& GetRenderMeshComponent();
  171.     const kexTurokRenderMeshComponent& GetRenderMeshComponent() const;
  172.     int& GetResourceObjectID();
  173.     int GetResourceObjectID() const;
  174.     kexTurokModeComponent& GetModeComponent();
  175.     const kexTurokModeComponent& GetModeComponent() const;
  176.     float& GetHealth();
  177.     const float& GetHealth() const;
  178.     float& GetInitialHealth();
  179.     const float& GetInitialHealth() const;
  180.     kexTurokScriptComponent& GetScriptComponent();
  181.     const kexTurokScriptComponent& GetScriptComponent() const;
  182.     kexTurokAIComponent& GetAIComponent();
  183.     const kexTurokAIComponent& GetAIComponent() const;
  184.     const kexTurokObject@ GetObstructedObject() const;
  185.     const turokIntelligence_s@ GetIntelligence() const;
  186.     turokActorFlags_e& GetActorFlags();
  187.     const turokActorFlags_e& GetActorFlags() const;
  188.     bool CanDrawAlternateBlood() const;
  189.     int PlayTactile(const kStr&in strTactile, int channel, int position) const;
  190.     bool IsTactilePlaying(int channel) const;
  191.     bool IsNamedTactilePlaying(int channel, const kStr&in strFn) const;
  192.     void StopTactile(int channel) const;
  193.     bool IsTactileTarget() const;
  194.     int GetTactileNode() const;
  195.     void PutAway();
  196.     bool OwnerRequestingWeaponChange() const;
  197.     uint GetPriority() const;
  198.     int GetSlot() const;
  199.     kexTurokPuppet@ GetActorOwner();
  200.     const kexTurokPuppet@ GetActorOwner() const;
  201.     void Raise();
  202.     void Lower();
  203.     void Holdster();
  204.     void LockControls(const bool bToggle);
  205.     turokWeaponFlags_e& GetWeaponFlags();
  206.     const turokWeaponFlags_e& GetWeaponFlags() const;
  207.     const bool AllowUnderwater() const;
  208.     const bool AllowLand() const;
  209.     const bool AllowMultiplayer() const;
  210.     void ActivateScope(const bool bToggle);
  211.     const bool ScopeReady() const;
  212.     const bool HasScope() const;
  213.     const bool ScopeActive() const;
  214.     const float GetScopeZoomLevel() const;
  215.     const kVec3 GetScopeOffset() const;
  216.     const kVec3 GetScopeScale() const;
  217.     const uint8 GetScopeAxis() const;
  218.     const bool UserFiringWeapon();
  219.     kexTurokParticle@ FireProjectile(const uint dwID, const kVec3&in vOrigin, const bool bConsumeAmmo = true);
  220.     kexTurokCrosshair& GetCrosshair();
  221.     const kexTurokCrosshair& GetCrosshair() const;
  222.     void CenterSelf();
  223.     int GetChosenCharacterModeTextureIndex() const;
  224.     bool HasTrackingParticle() const;
  225.     turokButtonCmd_e GetPlayerButtons() const;
  226.     const uint GetPlayerButtonHeldTime(const turokInputActions_e dwButtonIndex) const;
  227.     kexTurokObject@ CastToObject();
  228.     kexTurokActor@ CastToActor();
  229. }
  230.  
  231. class turokIntelligenceDoor_s
  232. {
  233. public:
  234.     uint m_dwFlags;
  235.     float m_OpenDuration;
  236.     int8 m_OpenDoorEvent;
  237.     int8 m_CloseDoorEvent;
  238.     int16 m_ModelType;
  239.     float m_AutoOpenRadius;
  240.     float m_AutoCloseRadius;
  241.     uint m_dwUnknown3;
  242. }
  243.  
  244. class kexTurokAnimTrackComponent
  245. {
  246. public:
  247.     void Reset();
  248.     void Set(const int id, float animTime = 0, turokAnimTrackFlags_e animFlags = turokAnimTrackFlags_e :: NONE);
  249.     void Blend(const int id, float animTime = 0, float animBlendTime = 0, turokAnimTrackFlags_e animFlags = turokAnimTrackFlags_e :: NONE);
  250.     bool IsPlaying(const int animID) const;
  251.     const int PlayingID() const;
  252.     int PickRandomAnimID(const int baseAnimID, const int count) const;
  253.     bool CheckAnimID(const int id) const;
  254.     void SetLastFrame(const bool bExecActions = false);
  255.     const uint CurrentFrame() const;
  256.     const uint NumFrames() const;
  257.     const float PlayTime() const;
  258.     const float TrackTime() const;
  259.     const int GetCycleCount() const;
  260.     const bool OnLastFrame() const;
  261.     void Stop();
  262.     void Pause();
  263.     void Resume();
  264.     void ChangeSpeed(const float animTime);
  265.     void ChangeAccumulationScale(const float fScale);
  266.     const bool Stopped() const;
  267.     const bool Blending() const;
  268.     const bool Looping() const;
  269.     const bool CycleCompleted() const;
  270.     turokAnimTrackFlags_e& GetFlags();
  271.     turokAnimTrackFlags_e& GetPrevFlags();
  272.     const uint64 GetAnimCount() const;
  273.     const kVec3& GetAccumulation() const;
  274. }
  275.  
  276. class kexTurokPuppet
  277. {
  278. public:
  279.     void Remove();
  280.     void Disable();
  281.     void Enable();
  282.     float GetCollisionRadius() const;
  283.     float GetCollisionHeight() const;
  284.     float GetCollisionWallRadius() const;
  285.     float GetCollisionHeightOffset() const;
  286.     float GetEyePosition() const;
  287.     bool HasCollision() const;
  288.     bool HasJointCollision() const;
  289.     void PlaySound(const uint dwSfxID, const kVec3&in vOffset);
  290.     void PlaySoundWithTactile(const uint dwSfxID, const kVec3&in vOffset, int channel, int pos, int node);
  291.     void StopSound();
  292.     void StopSound(const uint dwSfxID);
  293.     void AttachLoopingSound(const uint dwSfxID, const bool bLocal = false);
  294.     void AttachPositionedLoopingSound(const uint dwSfxID, const kVec3&in vPos, const bool bLocal = false);
  295.     void StopLoopingSound();
  296.     bool HasLoopingSound();
  297.     float GetDeltaFromPoint(const kVec3&in vLookAtPoint) const;
  298.     kVec3 GetRotatedDirection(const kVec3&in vDirection) const;
  299.     kQuat GetRotation() const;
  300.     kVec3 GetWorldSpacePositionFromLocalVector(const kVec3&in vLocalVector) const;
  301.     void SetTarget(kexTurokObject@ pTarget);
  302.     kexTurokObject@ GetTarget();
  303.     kVec3& GetOrigin();
  304.     const kVec3& GetOrigin() const;
  305.     kVec3& GetDesiredOrigin();
  306.     const kVec3& GetDesiredOrigin() const;
  307.     kVec3& GetPrevOrigin();
  308.     const kVec3& GetPrevOrigin() const;
  309.     turokAngles_s& GetAngles();
  310.     const turokAngles_s& GetAngles() const;
  311.     turokAngles_s& GetPrevAngles();
  312.     const turokAngles_s& GetPrevAngles() const;
  313.     bool IsStale() const;
  314.     turokRegion_s@ GetRegion();
  315.     const turokRegion_s@ GetRegion() const;
  316.     bool IsRemoving() const;
  317.     float GetWaterElevation() const;
  318.     turokWaterLevelType_e GetWaterLevel() const;
  319.     float GetWaterDepth() const;
  320.     turokObjectFlag_e& GetFlags();
  321.     const turokObjectFlag_e& GetFlags() const;
  322.     kVec3& GetVelocity();
  323.     const kVec3& GetVelocity() const;
  324.     kVec3& GetScale();
  325.     const kVec3& GetScale() const;
  326.     kVec3& GetClimbNormal();
  327.     const kVec3& GetClimbNormal() const;
  328.     uint GetUniqueObjectID() const;
  329.     turokImpactType_e& GetGroundMaterial();
  330.     const turokImpactType_e& GetGroundMaterial() const;
  331.     void UpdateWaterStatus();
  332.     void UpdateCrouchStatus();
  333.     void UpdateAntiGravityStatus();
  334.     void UpdateDeathRegionStatus();
  335.     bool IsBeingCountTracked() const;
  336.     void RunEvent(const turokEventType_e eEventType, const kVec3&in vOffset, const int bone, const float fParams1, const float fParams2, const float fParams3, const float fParams4, const float fParams5, const float fParams6, const float fParams7, const float fParams8);
  337.     void FlagPersistentData(const bool bFlag) const;
  338.     void FlagTriggeredPersistentData(const bool bFlag) const;
  339.     void InflictDamage(kexTurokObject@ pInflictor, const kVec3&in vPos, const float fRadius, const float fAmount, const turokDamageFlags_e eDamageFlags);
  340.     void TurnYaw(const float fSpeed, const float fDeltaAngle);
  341.     void SetTurnDeltaSpeed(const float fSpeed);
  342.     float GetTurnDeltaSpeed() const;
  343.     bool IsObstructed(const kVec3&in vTestPos);
  344.     bool IsPersistentFlagged() const;
  345.     bool IsPersistentTriggered() const;
  346.     turokObjectCrossResult_e ObjectCrosses(kexTurokObject@ pObject, const float fTouchRadius) const;
  347.     bool IsAllowedForCharacterMode() const;
  348.     void EnableIntelligence();
  349.     void DisableIntelligence();
  350.     bool IsIntelligenceEnabled() const;
  351.     bool IsIntelligenceEnabledForDifficulty() const;
  352.     void SetFaction(const uint dwValue);
  353.     uint GetFaction() const;
  354.     kexTurokRenderMeshComponent& GetRenderMeshComponent();
  355.     const kexTurokRenderMeshComponent& GetRenderMeshComponent() const;
  356.     int& GetResourceObjectID();
  357.     int GetResourceObjectID() const;
  358.     kexTurokModeComponent& GetModeComponent();
  359.     const kexTurokModeComponent& GetModeComponent() const;
  360.     float& GetHealth();
  361.     const float& GetHealth() const;
  362.     float& GetInitialHealth();
  363.     const float& GetInitialHealth() const;
  364.     kexTurokScriptComponent& GetScriptComponent();
  365.     const kexTurokScriptComponent& GetScriptComponent() const;
  366.     kexTurokAIComponent& GetAIComponent();
  367.     const kexTurokAIComponent& GetAIComponent() const;
  368.     const kexTurokObject@ GetObstructedObject() const;
  369.     const turokIntelligence_s@ GetIntelligence() const;
  370.     turokActorFlags_e& GetActorFlags();
  371.     const turokActorFlags_e& GetActorFlags() const;
  372.     bool CanDrawAlternateBlood() const;
  373.     int PlayTactile(const kStr&in strTactile, int channel, int position) const;
  374.     bool IsTactilePlaying(int channel) const;
  375.     bool IsNamedTactilePlaying(int channel, const kStr&in strFn) const;
  376.     void StopTactile(int channel) const;
  377.     bool IsTactileTarget() const;
  378.     int GetTactileNode() const;
  379.     void ChangeState(turokPlayerState_e eNewState);
  380.     float GetEyeHeight() const;
  381.     float GetMaxBobHeight() const;
  382.     void ToggleNightVisionGoggles(const bool bEnable);
  383.     kexTurokPlayer@ GetPlayerOwner();
  384.     const kexTurokPlayer@ GetPlayerOwner() const;
  385.     turokPlayerState_e GetState() const;
  386.     kVec3& GetHeadWobbleRotOffset();
  387.     const kVec3& GetHeadWobbleRotOffset() const;
  388.     kVec3& GetHeadRotOffset();
  389.     const kVec3& GetHeadRotOffset() const;
  390.     kVec3& GetEyeOffset();
  391.     const kVec3& GetEyeOffset() const;
  392.     turokPlayerFlags_e& GetPlayerFlags();
  393.     const turokPlayerFlags_e& GetPlayerFlags() const;
  394.     float GetMoveSpeed() const;
  395.     float GetStrafeSpeed() const;
  396.     float GetTimeOffGround() const;
  397.     float GetViewBobFactor() const;
  398.     float GetWeaponBobFactor() const;
  399.     float GetMoveSpeedScaler() const;
  400.     float GetStrafeSpeedScaler() const;
  401.     float GetJumpScaler() const;
  402.     float GetSpeedScaler() const;
  403.     void OverrideJumpScaler(const bool bOverride, const float fValue);
  404.     void OverrideSpeedScaler(const bool bOverride, const float fValue);
  405.     bool IsCrouching() const;
  406.     kVec3& GetShakeAxis();
  407.     float GetCrouchOffset() const;
  408.     kexTurokObject@ CastToObject();
  409.     kexTurokActor@ CastToActor();
  410. }
  411.  
  412. class kAngle
  413. {
  414. public:
  415.     kAngle();
  416.     kAngle(float);
  417.     kAngle(const kAngle&in);
  418.     float Diff(const float) const;
  419.     float Diff(const kAngle&in) const;
  420.     float Interpolate(const float, const float) const;
  421.     kAngle opAdd(const float) const;
  422.     kAngle& opAddAssign(const float);
  423.     kAngle opSub(const float) const;
  424.     kAngle& opSubAssign(const float);
  425.     kAngle opAdd(const kAngle&in) const;
  426.     kAngle& opAddAssign(const kAngle&in);
  427.     kAngle opSub(const kAngle&in) const;
  428.     kAngle& opSubAssign(kAngle&in);
  429.     kAngle& opAssign(const float);
  430.     kAngle& opAssign(const kAngle&in);
  431.     kAngle opNeg() const;
  432.     float opImplConv();
  433. }
  434.  
  435. class kexTurokScriptComponent
  436. {
  437. public:
  438.     ref m_cObjHandle;
  439. }
  440.  
  441. class turokAITargetData_s
  442. {
  443. public:
  444.     ~turokAITargetData_s();
  445.     turokAITargetData_s();
  446.     turokAITargetData_s& opAssign(const turokAITargetData_s&in);
  447.     void Clear(const kVec3&in vTargetPos);
  448.     bool ValidTarget() const;
  449.     void SetTarget(kexTurokObject@ pObject);
  450.     void SetXYPositions();
  451.     turokTargetType_e m_eType;
  452.     float m_fDeltaAngle;
  453.     kVec3 m_vTargetPos;
  454.     kVec3 m_vDeltaTargetPos;
  455.     float m_fDistFrom;
  456.     float m_fXYDistFrom;
  457. }
  458.  
  459. class turokResourceRegionSet_s
  460. {
  461. public:
  462.     uint m_dwFogStart;
  463.     uint m_dwWaterStart;
  464.     float m_fFarClip;
  465.     float m_fFieldOfView;
  466.     float m_fWaterFarClip;
  467.     float m_fWaterFieldOfView;
  468.     float m_fWaterElevation;
  469.     float m_fTargetCeiling;
  470.     float m_fBlendLength;
  471.     float m_fDeathTimeDelay;
  472.     float m_fCameraVertEyeOffset;
  473.     float m_fCameraMovementScaler;
  474.     float m_fJumpPadEndX;
  475.     float m_fJumpPadEndY;
  476.     float m_fJumpPadEndZ;
  477.     float m_fJumpPadHeight;
  478.     turokResourceRegionAttributes1_e m_eFlags;
  479.     uint16 m_wWarpID;
  480.     uint16 m_wPressurePlateSoundNumber;
  481.     uint16 m_wSaveCheckpointID;
  482.     uint16 m_wPressureID;
  483.     uint16 m_wDeathHitPoints;
  484.     turokResourceRegionAttributes2_e m_eFlags2;
  485.     turokResourceRegionAttributes3_e m_eFlags3;
  486.     uint16 m_wSkyLayers;
  487.     uint8 m_groundMat;
  488.     uint8 m_objectiveID;
  489.     uint8 m_unknown1;
  490.     uint8 m_completeObjectiveID;
  491.     uint8 m_mapColor;
  492.     uint8 m_jumpPadTime;
  493.     uint8 m_musicID;
  494.     uint8 m_ambience;
  495.     uint8 m_unknown2;
  496.     uint8 m_currentStrength;
  497.     int8 m_unknown3;
  498.     int8 m_unknown4;
  499.     int8 m_unknown5;
  500.     int8 m_unknown6;
  501.     int8 m_unknown7;
  502.     int8 m_unknown8;
  503.     int8 m_unknown9;
  504.     int8 m_countdownType;
  505.     int8 m_padding2;
  506.     int8 m_unknown12;
  507.     int8 m_unknown13;
  508. }
  509.  
  510. class kexTurokPhysicsWorld
  511. {
  512. public:
  513.     turokCollisionSweepResult_s GetSlideMoveResult() const;
  514.     float GetCollisionMargin() const;
  515.     bool FindNamedCollisionInfoResource(const kStr&in strName, turokCollisionInfo_s&out outInfo);
  516.     bool SlideMove(kexTurokObject@ pObject, const turokCollisionInfo_s&in collisionInfo);
  517.     bool SweepTest(const turokCollisionSweepResult_s&in inResult, turokCollisionSweepResult_s&out outResult);
  518. }
  519.  
  520. class turokIntelligencePlatform_s
  521. {
  522. public:
  523.     turokIntelligencePlatformCommon_s m_Common;
  524.     uint m_dwFlags;
  525.     uint8 m_Type;
  526.     uint8 m_MotionStyle;
  527.     uint8 m_RotationType;
  528.     uint8 pad0;
  529.     float m_VertDist;
  530.     float m_HorizDist;
  531.     float m_HorizDir;
  532.     float m_MoveTime;
  533.     float m_Rotation;
  534.     float m_StartOffset;
  535.     float m_HoverAmplitude;
  536.     float m_HoverPeriod;
  537.     float m_GoDelayTime;
  538.     float m_ReturnDelayTime;
  539.     float m_SpecialDelay;
  540.     float m_SpecialSinkDist;
  541.     float m_SpecialSinkTime;
  542. }
  543.  
  544. class turokBoneInfo_s
  545. {
  546. public:
  547.     int m_parentBone;
  548.     int m_symbol;
  549.     int m_index;
  550.     kVec3 m_vBoundMin;
  551.     kVec3 m_vBoundMax;
  552.     float m_fMaxBoundSize;
  553.     float m_fDamageScalar;
  554.     uint m_dwFlags;
  555.     uint m_dwImpactType;
  556. }
  557.  
  558. class turokIntelligenceWeatherGenerator_s
  559. {
  560. public:
  561.     uint16 m_wFlags;
  562.     uint16 m_NumParticles;
  563.     float m_Radius;
  564.     float m_StartHeight;
  565.     uint16 m_MinFallVelocity;
  566.     uint16 m_MaxFallVelocity;
  567.     uint16 m_SlopeX;
  568.     uint16 m_SlopeZ;
  569.     uint16 m_MinLength;
  570.     uint16 m_MaxLength;
  571.     int16 m_nTexture;
  572.     int16 m_nImpactParticle;
  573.     uint16 m_MinWidth;
  574.     uint16 m_MaxWidth;
  575.     float m_Timeout;
  576.     uint m_dwUnknown2;
  577. }
  578.  
  579. class turokIntelligenceInteractiveAnim_s
  580. {
  581. public:
  582.     uint m_dwFlags;
  583.     int m_StartAnim;
  584. }
  585.  
  586. class kexTurokObjectFactory
  587. {
  588. public:
  589.     void SpawnPickupWithTypeID(const int typeID, const kVec3&in vPos, const turokIntelligence_s@ pIntelligence, const int regionIndex = - 1);
  590.     kexTurokActor@ SpawnActorWithPath(const kStr&in strModelFile, const kVec3&in vPos, const kVec3&in vAngles, const kVec3&in vScale, const turokIntelligence_s&in intelligence, const int regionIndex = - 1);
  591.     kexTurokActor@ SpawnActorWithTypeID(const int typeID, const kVec3&in vPos, const kVec3&in vAngles, const kVec3&in vScale, const turokIntelligence_s@ pIntelligence, const int regionIndex = - 1);
  592. }
  593.  
  594. class turokIntelligenceTurret_s
  595. {
  596. public:
  597.     turokIntelligenceEnemyCommon_s m_Common;
  598.     uint m_dwFlags;
  599.     int m_GunNode;
  600.     int m_RotNode;
  601.     float m_RotSpeed;
  602.     float m_RotLimit;
  603.     float m_SightRadius;
  604.     float m_SightAngle;
  605.     float m_FireRadius;
  606.     float m_FireAngle;
  607.     float m_VertDist;
  608.     float m_HorizDist;
  609.     float m_HorizDir;
  610.     float m_MoveSpeed;
  611.     float m_StartOffset;
  612.     uint8 m_TargetVisibleMotionType;
  613.     uint8 m_TargetNotVisibleMotionType;
  614. }
  615.  
  616. class turokRegion_s
  617. {
  618. public:
  619.     turokResourceRegionCorner_s@ GetCorner(const int idx);
  620.     turokRegion_s@ GetNeighbor(const int idx);
  621.     bool PointInside(const kVec3&in vOrigin) const;
  622.     float FloorHeight(const kVec3&in vPos) const;
  623.     float CeilingHeight(const kVec3&in vPos) const;
  624.     void FloodFillSetFlag(const turokResourceRegionAttributes1_e eSetFlag);
  625.     void FloodFillClearFlag(const turokResourceRegionAttributes1_e eSetFlag);
  626.     turokResourceRegionAttributes1_e m_eFlags;
  627.     turokResourceRegionSet_s@ m_pRegionSet;
  628.     uint m_dwResourceIndex;
  629. }
  630.  
  631. class turokIntelligenceMorpher_s
  632. {
  633. public:
  634.     uint m_dwFlags;
  635.     float m_CollisionRadius;
  636.     float m_CollisionHeight;
  637.     float m_AnimSpeed;
  638. }
  639.  
  640. class turokIntelligence_s
  641. {
  642. public:
  643.     const turokIntelligenceStatic_s@ GetStaticType() const;
  644.     const turokIntelligenceEnemy_s@ GetEnemyType() const;
  645.     const turokIntelligencePlatform_s@ GetPlatformType() const;
  646.     const turokIntelligenceGenerator_s@ GetGeneratorType() const;
  647.     const turokIntelligenceTurret_s@ GetTurretType() const;
  648.     const turokIntelligenceThrowable_s@ GetThrowableType() const;
  649.     const turokIntelligenceDoor_s@ GetDoorType() const;
  650.     const turokIntelligenceDestructible_s@ GetDestrucibleType() const;
  651.     const turokIntelligencePickup_s@ GetPickupType() const;
  652.     const turokIntelligenceInteractiveAnim_s@ GetInteractiveAnimType() const;
  653.     const turokIntelligenceAction_s@ GetActionType() const;
  654.     const turokIntelligencePlayer_s@ GetPlayerType() const;
  655.     const turokIntelligenceMorpher_s@ GetMorpherType() const;
  656.     const turokIntelligenceWarpEntrance_s@ GetWarpEntranceType() const;
  657.     const turokIntelligenceWeatherGenerator_s@ GetWeatherGeneratorType() const;
  658.     const turokIntelligenceCameraPlacement_s@ GetCameraPlacementType() const;
  659.     const turokIntelligenceEmpty_s@ GetEmptyType() const;
  660.     float GetCollisionRadius() const;
  661.     float GetCollisionWallRadius() const;
  662.     float GetCollisionHeight() const;
  663.     float GetCollisionHeightOffset() const;
  664.     float GetHealth() const;
  665.     int m_nType;
  666.     turokCommonIntelligenceFlags_e m_eFlags;
  667.     int8 m_nModel;
  668.     int16 m_nTag;
  669. }
  670.  
  671. class kexTurokObject
  672. {
  673. public:
  674.     void Remove();
  675.     void Disable();
  676.     void Enable();
  677.     float GetCollisionRadius() const;
  678.     float GetCollisionHeight() const;
  679.     float GetCollisionWallRadius() const;
  680.     float GetCollisionHeightOffset() const;
  681.     float GetEyePosition() const;
  682.     bool HasCollision() const;
  683.     bool HasJointCollision() const;
  684.     void PlaySound(const uint dwSfxID, const kVec3&in vOffset);
  685.     void PlaySoundWithTactile(const uint dwSfxID, const kVec3&in vOffset, int channel, int pos, int node);
  686.     void StopSound();
  687.     void StopSound(const uint dwSfxID);
  688.     void AttachLoopingSound(const uint dwSfxID, const bool bLocal = false);
  689.     void AttachPositionedLoopingSound(const uint dwSfxID, const kVec3&in vPos, const bool bLocal = false);
  690.     void StopLoopingSound();
  691.     bool HasLoopingSound();
  692.     float GetDeltaFromPoint(const kVec3&in vLookAtPoint) const;
  693.     kVec3 GetRotatedDirection(const kVec3&in vDirection) const;
  694.     kQuat GetRotation() const;
  695.     kVec3 GetWorldSpacePositionFromLocalVector(const kVec3&in vLocalVector) const;
  696.     void SetTarget(kexTurokObject@ pTarget);
  697.     kexTurokObject@ GetTarget();
  698.     kVec3& GetOrigin();
  699.     const kVec3& GetOrigin() const;
  700.     kVec3& GetDesiredOrigin();
  701.     const kVec3& GetDesiredOrigin() const;
  702.     kVec3& GetPrevOrigin();
  703.     const kVec3& GetPrevOrigin() const;
  704.     turokAngles_s& GetAngles();
  705.     const turokAngles_s& GetAngles() const;
  706.     turokAngles_s& GetPrevAngles();
  707.     const turokAngles_s& GetPrevAngles() const;
  708.     bool IsStale() const;
  709.     turokRegion_s@ GetRegion();
  710.     const turokRegion_s@ GetRegion() const;
  711.     bool IsRemoving() const;
  712.     float GetWaterElevation() const;
  713.     turokWaterLevelType_e GetWaterLevel() const;
  714.     float GetWaterDepth() const;
  715.     turokObjectFlag_e& GetFlags();
  716.     const turokObjectFlag_e& GetFlags() const;
  717.     kVec3& GetVelocity();
  718.     const kVec3& GetVelocity() const;
  719.     kVec3& GetScale();
  720.     const kVec3& GetScale() const;
  721.     kVec3& GetClimbNormal();
  722.     const kVec3& GetClimbNormal() const;
  723.     uint GetUniqueObjectID() const;
  724.     turokImpactType_e& GetGroundMaterial();
  725.     const turokImpactType_e& GetGroundMaterial() const;
  726.     void UpdateWaterStatus();
  727.     void UpdateCrouchStatus();
  728.     void UpdateAntiGravityStatus();
  729.     void UpdateDeathRegionStatus();
  730.     bool IsBeingCountTracked() const;
  731.     void RunEvent(const turokEventType_e eEventType, const kVec3&in vOffset, const int bone, const float fParams1, const float fParams2, const float fParams3, const float fParams4, const float fParams5, const float fParams6, const float fParams7, const float fParams8);
  732.     kexTurokObject@ CastToObject();
  733. }
  734.  
  735. class kexTurokEnemy
  736. {
  737. public:
  738.     void Remove();
  739.     void Disable();
  740.     void Enable();
  741.     float GetCollisionRadius() const;
  742.     float GetCollisionHeight() const;
  743.     float GetCollisionWallRadius() const;
  744.     float GetCollisionHeightOffset() const;
  745.     float GetEyePosition() const;
  746.     bool HasCollision() const;
  747.     bool HasJointCollision() const;
  748.     void PlaySound(const uint dwSfxID, const kVec3&in vOffset);
  749.     void PlaySoundWithTactile(const uint dwSfxID, const kVec3&in vOffset, int channel, int pos, int node);
  750.     void StopSound();
  751.     void StopSound(const uint dwSfxID);
  752.     void AttachLoopingSound(const uint dwSfxID, const bool bLocal = false);
  753.     void AttachPositionedLoopingSound(const uint dwSfxID, const kVec3&in vPos, const bool bLocal = false);
  754.     void StopLoopingSound();
  755.     bool HasLoopingSound();
  756.     float GetDeltaFromPoint(const kVec3&in vLookAtPoint) const;
  757.     kVec3 GetRotatedDirection(const kVec3&in vDirection) const;
  758.     kQuat GetRotation() const;
  759.     kVec3 GetWorldSpacePositionFromLocalVector(const kVec3&in vLocalVector) const;
  760.     void SetTarget(kexTurokObject@ pTarget);
  761.     kexTurokObject@ GetTarget();
  762.     kVec3& GetOrigin();
  763.     const kVec3& GetOrigin() const;
  764.     kVec3& GetDesiredOrigin();
  765.     const kVec3& GetDesiredOrigin() const;
  766.     kVec3& GetPrevOrigin();
  767.     const kVec3& GetPrevOrigin() const;
  768.     turokAngles_s& GetAngles();
  769.     const turokAngles_s& GetAngles() const;
  770.     turokAngles_s& GetPrevAngles();
  771.     const turokAngles_s& GetPrevAngles() const;
  772.     bool IsStale() const;
  773.     turokRegion_s@ GetRegion();
  774.     const turokRegion_s@ GetRegion() const;
  775.     bool IsRemoving() const;
  776.     float GetWaterElevation() const;
  777.     turokWaterLevelType_e GetWaterLevel() const;
  778.     float GetWaterDepth() const;
  779.     turokObjectFlag_e& GetFlags();
  780.     const turokObjectFlag_e& GetFlags() const;
  781.     kVec3& GetVelocity();
  782.     const kVec3& GetVelocity() const;
  783.     kVec3& GetScale();
  784.     const kVec3& GetScale() const;
  785.     kVec3& GetClimbNormal();
  786.     const kVec3& GetClimbNormal() const;
  787.     uint GetUniqueObjectID() const;
  788.     turokImpactType_e& GetGroundMaterial();
  789.     const turokImpactType_e& GetGroundMaterial() const;
  790.     void UpdateWaterStatus();
  791.     void UpdateCrouchStatus();
  792.     void UpdateAntiGravityStatus();
  793.     void UpdateDeathRegionStatus();
  794.     bool IsBeingCountTracked() const;
  795.     void RunEvent(const turokEventType_e eEventType, const kVec3&in vOffset, const int bone, const float fParams1, const float fParams2, const float fParams3, const float fParams4, const float fParams5, const float fParams6, const float fParams7, const float fParams8);
  796.     void FlagPersistentData(const bool bFlag) const;
  797.     void FlagTriggeredPersistentData(const bool bFlag) const;
  798.     void InflictDamage(kexTurokObject@ pInflictor, const kVec3&in vPos, const float fRadius, const float fAmount, const turokDamageFlags_e eDamageFlags);
  799.     void TurnYaw(const float fSpeed, const float fDeltaAngle);
  800.     void SetTurnDeltaSpeed(const float fSpeed);
  801.     float GetTurnDeltaSpeed() const;
  802.     bool IsObstructed(const kVec3&in vTestPos);
  803.     bool IsPersistentFlagged() const;
  804.     bool IsPersistentTriggered() const;
  805.     turokObjectCrossResult_e ObjectCrosses(kexTurokObject@ pObject, const float fTouchRadius) const;
  806.     bool IsAllowedForCharacterMode() const;
  807.     void EnableIntelligence();
  808.     void DisableIntelligence();
  809.     bool IsIntelligenceEnabled() const;
  810.     bool IsIntelligenceEnabledForDifficulty() const;
  811.     void SetFaction(const uint dwValue);
  812.     uint GetFaction() const;
  813.     kexTurokRenderMeshComponent& GetRenderMeshComponent();
  814.     const kexTurokRenderMeshComponent& GetRenderMeshComponent() const;
  815.     int& GetResourceObjectID();
  816.     int GetResourceObjectID() const;
  817.     kexTurokModeComponent& GetModeComponent();
  818.     const kexTurokModeComponent& GetModeComponent() const;
  819.     float& GetHealth();
  820.     const float& GetHealth() const;
  821.     float& GetInitialHealth();
  822.     const float& GetInitialHealth() const;
  823.     kexTurokScriptComponent& GetScriptComponent();
  824.     const kexTurokScriptComponent& GetScriptComponent() const;
  825.     kexTurokAIComponent& GetAIComponent();
  826.     const kexTurokAIComponent& GetAIComponent() const;
  827.     const kexTurokObject@ GetObstructedObject() const;
  828.     const turokIntelligence_s@ GetIntelligence() const;
  829.     turokActorFlags_e& GetActorFlags();
  830.     const turokActorFlags_e& GetActorFlags() const;
  831.     bool CanDrawAlternateBlood() const;
  832.     int PlayTactile(const kStr&in strTactile, int channel, int position) const;
  833.     bool IsTactilePlaying(int channel) const;
  834.     bool IsNamedTactilePlaying(int channel, const kStr&in strFn) const;
  835.     void StopTactile(int channel) const;
  836.     bool IsTactileTarget() const;
  837.     int GetTactileNode() const;
  838.     turokEnemyBehaviorState_e GetCurrentBehaviorState() const;
  839.     void SetCurrentBehaviorState(const turokEnemyBehaviorState_e eState);
  840.     turokEnemyBehaviorType_e GetBehaviorType(const turokEnemyBehaviorState_e eState) const;
  841.     turokEnemyBehaviorType_e GetCurrentBehaviorType() const;
  842.     void SetBehaviorType(const turokEnemyBehaviorState_e eState, const turokEnemyBehaviorType_e eType);
  843.     bool HasBehaviorType(const turokEnemyBehaviorState_e eState) const;
  844.     int GetIdleAnimation();
  845.     int GetCombatAnimation();
  846.     int GetDartAnimation();
  847.     int GetLeapAnimation();
  848.     int GetProjectileAnimation();
  849.     int GetWeaponAnimation();
  850.     int GetAlertAnimation();
  851.     int GetMoveAnimation();
  852.     int GetPatrolAnimation();
  853.     int GetFleeAnimation();
  854.     int GetTakeCoverAnimation();
  855.     int GetComboEndAnimation();
  856.     int GetLeftEvadeAnimation();
  857.     int GetRightEvadeAnimation();
  858.     int GetLeftWoundArmAnimation();
  859.     int GetRightWoundArmAnimation();
  860.     void Alert(const kVec3&in vPos, const turokEnemyAlertType_e eAlert);
  861.     float GetAgressionFactor(const float fMin, const float fMax) const;
  862.     turokEnemyFlags_e& GetEnemyFlags();
  863.     const turokEnemyFlags_e& GetEnemyFlags() const;
  864.     float& GetAggroTime();
  865.     const float& GetAggroTime() const;
  866.     turokEnemyActionType_e& GetActionType();
  867.     const turokEnemyActionType_e& GetActionType() const;
  868.     float& GetNoFireProjectileTime();
  869.     const float& GetNoFireProjectileTime() const;
  870.     float& GetMoveTime();
  871.     const float& GetMoveTime() const;
  872.     bool CheckForEvade();
  873.     bool CanBeAlerted() const;
  874.     float GetTurnSpeed() const;
  875.     void TurnToLookAtSightTarget();
  876.     int ChooseAttackMode(const turokAITargetInfo_s&in targetInfo);
  877.     void UpdateAction();
  878.     void CommonUpdateBehaviorState();
  879.     void UpdateAmbushState(turokAITargetInfo_s&out targetInfo);
  880.     kVec3& GetAlertPosition();
  881.     const kVec3& GetAlertPosition() const;
  882.     kVec3& GetPrevAlertPosition();
  883.     const kVec3& GetPrevAlertPosition() const;
  884.     const turokIntelligenceEnemy_s@ GetEnemyIntelligence() const;
  885.     turokEnemyEvadeType_e GetEvadeDirection(kexTurokActor@ pTarget, float fEvadeAngle);
  886.     float& GetOnFireTimer();
  887.     const float GetOnFireTimer() const;
  888.     float& GetAggression();
  889.     const float& GetAggression() const;
  890.     kexTurokObject@ CastToObject();
  891.     kexTurokActor@ CastToActor();
  892. }
  893.  
  894. class turokAITargetInfo_s
  895. {
  896. public:
  897.     ~turokAITargetInfo_s();
  898.     turokAITargetInfo_s();
  899.     turokAITargetInfo_s& opAssign(const turokAITargetInfo_s&in);
  900.     turokAITargetData_s m_cSight;
  901.     turokAITargetData_s m_cPath;
  902. }
  903.  
  904. class turokResourceNavLink_s
  905. {
  906. public:
  907.     int m_startNode;
  908.     int m_endNode;
  909.     turokResourceNavLinkType_e m_eType;
  910. }
  911.  
  912. class array
  913. {
  914. public:
  915.     T[]@ $list(int&in type, int&in list) { repeat T };
  916.     T& opIndex(uint index);
  917.     const T& opIndex(uint index) const;
  918.     T[]& opAssign(const T[]&in);
  919.     void insertAt(uint index, const T&in value);
  920.     void insertAt(uint index, const T[]&inout arr);
  921.     void insertLast(const T&in value);
  922.     void removeAt(uint index);
  923.     void removeLast();
  924.     void removeRange(uint start, uint count);
  925.     uint length() const;
  926.     void reserve(uint length);
  927.     void resize(uint length);
  928.     void sortAsc();
  929.     void sortAsc(uint startAt, uint count);
  930.     void sortDesc();
  931.     void sortDesc(uint startAt, uint count);
  932.     void reverse();
  933.     int find(const T&in value) const;
  934.     int find(uint startAt, const T&in value) const;
  935.     int findByRef(const T&in value) const;
  936.     int findByRef(uint startAt, const T&in value) const;
  937.     bool opEquals(const T[]&in) const;
  938.     bool isEmpty() const;
  939.     void sort(array::less&in, uint startAt = 0, uint count = uint ( - 1 ));
  940. }
  941.  
  942. class turokIntelligenceDestructible_s
  943. {
  944. public:
  945.     uint m_dwFlags;
  946.     int16 m_Health;
  947.     int16 pad;
  948.     float m_CollisionRadius;
  949.     float m_CollisionHeight;
  950.     int m_IdleAnim;
  951.     float m_AutoGoRadius;
  952.     int m_GoAnim;
  953.     int m_GoParticleEffect;
  954.     int m_GoSoundEffect;
  955.     uint m_dwGoPickupsFlag1;
  956.     uint m_dwGoPickupsFlag2;
  957.     int m_GoDeathAnim;
  958.     int m_GoDeathParticleEffect;
  959.     int m_GoDeathSoundEffect;
  960.     uint m_dwGoDeathPickupsFlag1;
  961.     uint m_dwGoDeathPickupsFlag2;
  962.     int m_TotemMissionDuration;
  963.     int16 m_EnemiesAttackingTurok;
  964.     int16 m_EnemiesToKillToSaveTotem;
  965. }
  966.  
  967. class kexTurokParticle
  968. {
  969. public:
  970.     void Remove();
  971.     void Disable();
  972.     void Enable();
  973.     float GetCollisionRadius() const;
  974.     float GetCollisionHeight() const;
  975.     float GetCollisionWallRadius() const;
  976.     float GetCollisionHeightOffset() const;
  977.     float GetEyePosition() const;
  978.     bool HasCollision() const;
  979.     bool HasJointCollision() const;
  980.     void PlaySound(const uint dwSfxID, const kVec3&in vOffset);
  981.     void PlaySoundWithTactile(const uint dwSfxID, const kVec3&in vOffset, int channel, int pos, int node);
  982.     void StopSound();
  983.     void StopSound(const uint dwSfxID);
  984.     void AttachLoopingSound(const uint dwSfxID, const bool bLocal = false);
  985.     void AttachPositionedLoopingSound(const uint dwSfxID, const kVec3&in vPos, const bool bLocal = false);
  986.     void StopLoopingSound();
  987.     bool HasLoopingSound();
  988.     float GetDeltaFromPoint(const kVec3&in vLookAtPoint) const;
  989.     kVec3 GetRotatedDirection(const kVec3&in vDirection) const;
  990.     kQuat GetRotation() const;
  991.     kVec3 GetWorldSpacePositionFromLocalVector(const kVec3&in vLocalVector) const;
  992.     void SetTarget(kexTurokObject@ pTarget);
  993.     kexTurokObject@ GetTarget();
  994.     kVec3& GetOrigin();
  995.     const kVec3& GetOrigin() const;
  996.     kVec3& GetDesiredOrigin();
  997.     const kVec3& GetDesiredOrigin() const;
  998.     kVec3& GetPrevOrigin();
  999.     const kVec3& GetPrevOrigin() const;
  1000.     turokAngles_s& GetAngles();
  1001.     const turokAngles_s& GetAngles() const;
  1002.     turokAngles_s& GetPrevAngles();
  1003.     const turokAngles_s& GetPrevAngles() const;
  1004.     bool IsStale() const;
  1005.     turokRegion_s@ GetRegion();
  1006.     const turokRegion_s@ GetRegion() const;
  1007.     bool IsRemoving() const;
  1008.     float GetWaterElevation() const;
  1009.     turokWaterLevelType_e GetWaterLevel() const;
  1010.     float GetWaterDepth() const;
  1011.     turokObjectFlag_e& GetFlags();
  1012.     const turokObjectFlag_e& GetFlags() const;
  1013.     kVec3& GetVelocity();
  1014.     const kVec3& GetVelocity() const;
  1015.     kVec3& GetScale();
  1016.     const kVec3& GetScale() const;
  1017.     kVec3& GetClimbNormal();
  1018.     const kVec3& GetClimbNormal() const;
  1019.     uint GetUniqueObjectID() const;
  1020.     turokImpactType_e& GetGroundMaterial();
  1021.     const turokImpactType_e& GetGroundMaterial() const;
  1022.     void UpdateWaterStatus();
  1023.     void UpdateCrouchStatus();
  1024.     void UpdateAntiGravityStatus();
  1025.     void UpdateDeathRegionStatus();
  1026.     bool IsBeingCountTracked() const;
  1027.     void RunEvent(const turokEventType_e eEventType, const kVec3&in vOffset, const int bone, const float fParams1, const float fParams2, const float fParams3, const float fParams4, const float fParams5, const float fParams6, const float fParams7, const float fParams8);
  1028.     float GetLifeFrames() const;
  1029.     void Kill();
  1030.     float GetLifeTimeFrac() const;
  1031.     void Revive();
  1032.     int GetFrame() const;
  1033.     turokParticleSpawnFlags_e GetSpawnFlags() const;
  1034.     turokParticleSpawnFlags_e& GetSpawnFlags();
  1035.     kVec3& GetDirection();
  1036.     const kVec3& GetDirection() const;
  1037.     uint GetResourceTypeID() const;
  1038.     kexTurokObject@ GetOwner();
  1039.     kexTurokParticle@ GetChildParticle();
  1040.     int& GetCollideBone();
  1041.     bool HasBounced() const;
  1042.     kexTurokObject@ CastToObject();
  1043. }
  1044.  
  1045. class turokPathList_t
  1046. {
  1047. public:
  1048.     ~turokPathList_t();
  1049.     turokPathList_t();
  1050.     const int& opIndex(uint64 index) const;
  1051.     int& opIndex(uint64 index);
  1052.     turokPathList_t& opAssign(const turokPathList_t&in);
  1053. }
  1054.  
  1055. class kexTurokPlayer
  1056. {
  1057. public:
  1058.     const turokButtonCmd_e GetButtons() const;
  1059.     const uint GetButtonHeldTime(turokInputActions_e dwButtonIndex) const;
  1060.     const kVec3 GetButtonAngles() const;
  1061.     const kVec3 GetButtonMovement() const;
  1062.     uint GetSplitNum() const;
  1063.     kexTurokPuppet@ GetActor();
  1064.     bool CanAllowWeaponInput() const;
  1065.     const int GetCurrentWeaponID() const;
  1066.     const int GetPendingWeaponID() const;
  1067.     float& GetZoomFOV();
  1068.     const float& GetZoomFOV() const;
  1069.     bool GiveHealth(const int amount, const bool bMortalWound);
  1070.     bool GiveHealthMin(const int amount);
  1071.     void ConsumeAmmo(const int amount);
  1072.     int GetAmmo(const int weaponSlot) const;
  1073.     bool GiveAmmoMin(const int amount);
  1074.     bool GiveAmmoMin(const float scalar);
  1075.     bool HasAmmo(const int weaponSlot);
  1076.     bool GiveAmmo(const int weaponSlot, const int amount);
  1077.     bool SetMaxAmmo(const int weaponSlot, const int amount);
  1078.     int GetMaxAmmo(const int weaponSlot);
  1079.     bool GiveWeapon(const int slot, const int giveAmmo, const bool bChangeWeapon = true);
  1080.     bool GiveWeaponDirect(const int weaponDefId, const int giveAmmo = 0);
  1081.     bool TakeWeapon(const int slot);
  1082.     void ChangeWeapon(const int setWeapon);
  1083.     void SetWeapon(const int setWeapon);
  1084.     bool CheckValidWeapon(const int weaponSlot, const bool bIgnoreWater = false) const;
  1085.     bool HasWeapon(const int weaponSlot) const;
  1086.     bool IsCurrentWeaponIdling() const;
  1087.     void UnlockAllWeaponControls();
  1088.     void CycleNextWeapon(const bool bCheckAmmo);
  1089.     void CyclePrevWeapon(const bool bCheckAmmo);
  1090.     void CycleBestWeapon(const bool bCheckAmmo);
  1091.     void SwitchToWaterWeapon();
  1092.     void SwitchToLandWeapon();
  1093.     kexTurokWeapon@ GetCurrentWeaponActor();
  1094.     void GiveNightVisionGoggles();
  1095.     bool HasNightVisionGoggles() const;
  1096.     void GiveLifeForce(const int amount, const bool bCheckMax = true);
  1097.     int GetLifeForces() const;
  1098.     bool InFullPossession() const;
  1099.     bool ActorInRenderView(kexTurokActor@ pActor) const;
  1100.     bool WarpPlayer(const uint dwDestID, const kVec3&in vWarpEntrancePos, const uint dwWarpEntranceFlags);
  1101.     float GetPlayTime() const;
  1102.     const uint8 GetPartFlags() const;
  1103.     void SetPartFlags(const uint8 parts);
  1104.     const float GetMaxHealth() const;
  1105.     void SetMaxHealth(const float amount);
  1106.     float GetMaxAllowedHealth() const;
  1107.     bool GiveInventoryKey(const uint dwKey);
  1108.     bool RemoveInventoryKey(const uint dwKey);
  1109.     void ClearInventoryKeys();
  1110.     bool HasInventoryKey(const uint dwKey) const;
  1111.     void TakePossessionOfEnemy(kexTurokActor@ pActor, const bool bFullPossession);
  1112.     void LosePossessionOfEnemy(const bool bRemoveEnemy);
  1113.     bool IsInPossessionOfEnemy() const;
  1114.     kexTurokActor@ GetPossessedActor() const;
  1115. }
  1116.  
  1117. class kDict
  1118. {
  1119. public:
  1120.     void Add(const kStr&in, const kStr&in);
  1121.     void Empty();
  1122.     void SetValue(const kStr&in, const kStr&in);
  1123.     const bool HasKey(const kStr&in);
  1124.     bool GetFloat(const kStr&in, float&out, const float defaultValue = 0);
  1125.     bool GetInt(const kStr&in, int&out, const int defaultValue = 0);
  1126.     bool GetBool(const kStr&in, bool&out, const bool defaultValue = false);
  1127.     bool GetString(const kStr&in, kStr&out);
  1128.     bool GetVector(const kStr&in, kVec3&out);
  1129. }
  1130.  
  1131. class turokCollisionInfo_s
  1132. {
  1133. public:
  1134.     float m_fGravityAcceleration;
  1135.     float m_fBounceReturnEnergy;
  1136.     float m_fGroundFriction;
  1137.     float m_fAirFriction;
  1138.     float m_fWaterFriction;
  1139.     float m_fProjectionStrength;
  1140.     turokSlideMoveBehavior_e m_eSlideBehavior;
  1141.     turokCollisionFaceFlags_e m_eFilterFlags;
  1142.     turokCollisionFaceFlags_e m_eFilterOutFlags;
  1143.     turokCollideBehaviorType_e m_eCollideObjectBehavior;
  1144.     turokCollideBehaviorType_e m_eCollideWallBehavior;
  1145.     turokCollideBehaviorType_e m_eCollideFloorBehavior;
  1146. }
  1147.  
  1148. class turokNavNode_s
  1149. {
  1150. public:
  1151.     const turokResourceNavNode_s@ m_pResource;
  1152.     bool m_bDisabled;
  1153. }
  1154.  
  1155. class turokIntelligenceEnemy_s
  1156. {
  1157. public:
  1158.     turokIntelligenceEnemyCommon_s m_Common;
  1159.     uint m_dwFlags;
  1160.     float m_AttackCombatRadius;
  1161.     float m_AttackLeapRadius;
  1162.     float m_AttackDartRadius;
  1163.     float m_AttackProjectileRadius;
  1164.     float m_AttackWeaponRadius;
  1165.     float m_AggroRadius;
  1166.     float m_ConeTurnAngle;
  1167.     float m_ConeTiltAngle;
  1168.     uint8 m_GroundBehavior;
  1169.     uint8 m_AirBehavior;
  1170.     uint8 m_UnderwaterBehavior;
  1171.     int8 m_ExtremeDeathModel;
  1172.     int8 m_PfmDeathModel;
  1173.     int8 m_HeadBlownOffDeathModel;
  1174.     int8 m_LeftArmBlownOffDeathModel;
  1175.     int8 m_RightArmBlownOffDeathModel;
  1176.     int8 m_BodyHoleDeathModel;
  1177.     int16 m_ExtremeDeathAnim;
  1178.     int16 m_PfmDeathAnim;
  1179.     int16 m_HeadBlownOffDeathAnim;
  1180.     int16 m_LeftArmBlownOffDeathAnim;
  1181.     int16 m_RightArmBlownOffDeathAnim;
  1182.     int16 m_BodyHoleDeathAnim;
  1183.     uint16 m_wIdleAnimFlags;
  1184.     uint16 m_wMoveAnimFlags;
  1185.     uint16 m_wPatroleAnimFlags;
  1186.     uint16 m_wEvadeAnimFlags;
  1187.     uint16 m_wCombatAnimFlags;
  1188.     uint16 m_wLeapAnimFlags;
  1189.     uint16 m_wDartAnimFlags;
  1190.     uint16 m_wProjectileAnimFlags;
  1191.     uint16 m_wWeaponAnimFlags;
  1192.     uint16 m_wComboEndAnimFlags;
  1193.     uint16 m_wNormalDeathAnimFlags;
  1194.     uint16 m_wMovingDeathAnimFlags;
  1195.     uint16 m_wViolentDeathAnimFlags;
  1196.     uint16 m_wExplosiveDeathAnimFlags;
  1197.     uint16 m_wAlertAnimFlags;
  1198.     uint16 m_wTakeCoverAnimFlags;
  1199.     uint16 m_wLeftArmWoundAnimFlags;
  1200.     uint16 m_wRightArmWoundAnimFlags;
  1201.     uint16 m_wFleeAnimFlags;
  1202. }
  1203.  
  1204. class kVec3
  1205. {
  1206. public:
  1207.     kVec3();
  1208.     kVec3(float, float, float);
  1209.     kVec3(const kVec3&in);
  1210.     kVec3& Normalize();
  1211.     kVec3 Cross(const kVec3&in) const;
  1212.     float Dot(const kVec3&in) const;
  1213.     float Length() const;
  1214.     float LengthSq() const;
  1215.     float DistanceSq(const kVec3&in) const;
  1216.     float ToYaw();
  1217.     float ToPitch();
  1218.     void Clear();
  1219.     void Set(const float, const float, const float);
  1220.     kVec3 Lerp(const kVec3&in, const float) const;
  1221.     kVec3& Lerp(const kVec3&in, const float);
  1222.     kVec3& Project(const kVec3&in, const float);
  1223.     kVec3& Reflect(const kVec3&in, const float);
  1224.     kVec3& Randomize(const float);
  1225.     kVec3& CubicCurve(const kVec3&in, const float, const kVec3&in);
  1226.     kVec3& QuadraticCurve(const kVec3&in, const float, const kVec3&in, const kVec3&in);
  1227.     kVec3 opAdd(const kVec3&in);
  1228.     kVec3& opAddAssign(const kVec3&in);
  1229.     kVec3 opNeg();
  1230.     kVec3 opSub(const kVec3&in);
  1231.     kVec3& opSubAssign(const kVec3&in);
  1232.     kVec3 opMul(const kVec3&in);
  1233.     kVec3 opMul(const float val);
  1234.     kVec3& opMulAssign(const kVec3&in);
  1235.     kVec3& opMulAssign(const float);
  1236.     kVec3 opDiv(const kVec3&in);
  1237.     kVec3 opDiv(const float val);
  1238.     kVec3& opDivAssign(const kVec3&in);
  1239.     kVec3& opAssign(const kVec3&in);
  1240.     float opIndex(uint) const;
  1241.     float opIndex(uint);
  1242.     float Distance(const kVec3&in) const;
  1243.     kStr ToString();
  1244.     kVec3 opMul(const kQuat&in);
  1245.     kVec3& opMulAssign(const kQuat&in);
  1246.     kQuat ToQuaternion() const;
  1247.     kQuat ToQuat() const;
  1248.     float x;
  1249.     float y;
  1250.     float z;
  1251. }
  1252.  
  1253. class kexTurokRenderMeshComponent
  1254. {
  1255. public:
  1256.     turokRenderMeshFlags_e& GetFlags();
  1257.     const turokRenderMeshFlags_e& GetFlags() const;
  1258.     kStr GetModelFileName() const;
  1259.     void SetRotationOffset(const int node, const float angle, const float x, const float y, const float z);
  1260.     void SetRotationOffset(const int node, const kQuat&in qRotation);
  1261.     void SetTranslationOffset(const int node, const kVec3&in vOffset);
  1262.     void SetScale(const int node, const kVec3&in vScale);
  1263.     void SetSectionAltTexture(const kStr&in strFindTextureName, const int altTexture);
  1264.     int& GetAltTexture();
  1265.     const int GetAltTexture() const;
  1266.     const int GetModelGroup() const;
  1267.     void SetModelGroup(const int modelGroup);
  1268.     const kQuat& GetGroundRotation() const;
  1269.     void ToggleHotPoint(const int nHotPoint, const bool bEnable);
  1270.     bool IsHotPointEnabled(const int nHotPoint) const;
  1271.     int GetHeadTrackNode() const;
  1272.     void SetHeadTrackNode(int node);
  1273.     float GetFlashValue() const;
  1274.     void SetFlashValue(float fValue);
  1275.     kexTurokAnimTrackComponent& GetAnimTrackComponent();
  1276.     const kexTurokAnimTrackComponent& GetAnimTrackComponent() const;
  1277.     const uint GetModelBits() const;
  1278.     void SetHeadTrackPosition(const kVec3&in vPos);
  1279.     kVec3 GetTransformedBonePosition(const int boneID) const;
  1280.     int GetAltTextureForSectionIndex(const int sectionIdx) const;
  1281.     bool IsBoneBlownOff(const int boneIndex) const;
  1282.     bool HasAttachedParticles() const;
  1283.     void KillAttachedParticles(const int boneIndex, const bool bNoArrows = false);
  1284. }
  1285.  
  1286. class kStr
  1287. {
  1288. public:
  1289.     ~kStr();
  1290.     kStr();
  1291.     kStr(const kStr&in);
  1292.     uint Hash() const;
  1293.     kStr& ToUpper();
  1294.     kStr& ToLower();
  1295.     kStr& opAssign(const kStr&in);
  1296.     kStr opAdd(const kStr&in) const;
  1297.     kStr opAdd(bool) const;
  1298.     kStr opAdd(int) const;
  1299.     kStr opAdd(uint) const;
  1300.     kStr opAdd(int64) const;
  1301.     kStr opAdd(uint64) const;
  1302.     kStr opAdd(float) const;
  1303.     kStr& opAddAssign(const kStr&in);
  1304.     kStr& opAddAssign(bool);
  1305.     int Atoi() const;
  1306.     float Atof() const;
  1307.     bool Contains(const kStr&in) const;
  1308.     bool ContainsNoCase(const kStr&in) const;
  1309.     int64 IndexOf(const kStr&in) const;
  1310.     int8 opIndex(const int64);
  1311.     uint64 Length();
  1312.     bool opEquals(const kStr&in);
  1313. }
  1314.  
  1315. class kexTurokActor
  1316. {
  1317. public:
  1318.     void Remove();
  1319.     void Disable();
  1320.     void Enable();
  1321.     float GetCollisionRadius() const;
  1322.     float GetCollisionHeight() const;
  1323.     float GetCollisionWallRadius() const;
  1324.     float GetCollisionHeightOffset() const;
  1325.     float GetEyePosition() const;
  1326.     bool HasCollision() const;
  1327.     bool HasJointCollision() const;
  1328.     void PlaySound(const uint dwSfxID, const kVec3&in vOffset);
  1329.     void PlaySoundWithTactile(const uint dwSfxID, const kVec3&in vOffset, int channel, int pos, int node);
  1330.     void StopSound();
  1331.     void StopSound(const uint dwSfxID);
  1332.     void AttachLoopingSound(const uint dwSfxID, const bool bLocal = false);
  1333.     void AttachPositionedLoopingSound(const uint dwSfxID, const kVec3&in vPos, const bool bLocal = false);
  1334.     void StopLoopingSound();
  1335.     bool HasLoopingSound();
  1336.     float GetDeltaFromPoint(const kVec3&in vLookAtPoint) const;
  1337.     kVec3 GetRotatedDirection(const kVec3&in vDirection) const;
  1338.     kQuat GetRotation() const;
  1339.     kVec3 GetWorldSpacePositionFromLocalVector(const kVec3&in vLocalVector) const;
  1340.     void SetTarget(kexTurokObject@ pTarget);
  1341.     kexTurokObject@ GetTarget();
  1342.     kVec3& GetOrigin();
  1343.     const kVec3& GetOrigin() const;
  1344.     kVec3& GetDesiredOrigin();
  1345.     const kVec3& GetDesiredOrigin() const;
  1346.     kVec3& GetPrevOrigin();
  1347.     const kVec3& GetPrevOrigin() const;
  1348.     turokAngles_s& GetAngles();
  1349.     const turokAngles_s& GetAngles() const;
  1350.     turokAngles_s& GetPrevAngles();
  1351.     const turokAngles_s& GetPrevAngles() const;
  1352.     bool IsStale() const;
  1353.     turokRegion_s@ GetRegion();
  1354.     const turokRegion_s@ GetRegion() const;
  1355.     bool IsRemoving() const;
  1356.     float GetWaterElevation() const;
  1357.     turokWaterLevelType_e GetWaterLevel() const;
  1358.     float GetWaterDepth() const;
  1359.     turokObjectFlag_e& GetFlags();
  1360.     const turokObjectFlag_e& GetFlags() const;
  1361.     kVec3& GetVelocity();
  1362.     const kVec3& GetVelocity() const;
  1363.     kVec3& GetScale();
  1364.     const kVec3& GetScale() const;
  1365.     kVec3& GetClimbNormal();
  1366.     const kVec3& GetClimbNormal() const;
  1367.     uint GetUniqueObjectID() const;
  1368.     turokImpactType_e& GetGroundMaterial();
  1369.     const turokImpactType_e& GetGroundMaterial() const;
  1370.     void UpdateWaterStatus();
  1371.     void UpdateCrouchStatus();
  1372.     void UpdateAntiGravityStatus();
  1373.     void UpdateDeathRegionStatus();
  1374.     bool IsBeingCountTracked() const;
  1375.     void RunEvent(const turokEventType_e eEventType, const kVec3&in vOffset, const int bone, const float fParams1, const float fParams2, const float fParams3, const float fParams4, const float fParams5, const float fParams6, const float fParams7, const float fParams8);
  1376.     void FlagPersistentData(const bool bFlag) const;
  1377.     void FlagTriggeredPersistentData(const bool bFlag) const;
  1378.     void InflictDamage(kexTurokObject@ pInflictor, const kVec3&in vPos, const float fRadius, const float fAmount, const turokDamageFlags_e eDamageFlags);
  1379.     void TurnYaw(const float fSpeed, const float fDeltaAngle);
  1380.     void SetTurnDeltaSpeed(const float fSpeed);
  1381.     float GetTurnDeltaSpeed() const;
  1382.     bool IsObstructed(const kVec3&in vTestPos);
  1383.     bool IsPersistentFlagged() const;
  1384.     bool IsPersistentTriggered() const;
  1385.     turokObjectCrossResult_e ObjectCrosses(kexTurokObject@ pObject, const float fTouchRadius) const;
  1386.     bool IsAllowedForCharacterMode() const;
  1387.     void EnableIntelligence();
  1388.     void DisableIntelligence();
  1389.     bool IsIntelligenceEnabled() const;
  1390.     bool IsIntelligenceEnabledForDifficulty() const;
  1391.     void SetFaction(const uint dwValue);
  1392.     uint GetFaction() const;
  1393.     kexTurokRenderMeshComponent& GetRenderMeshComponent();
  1394.     const kexTurokRenderMeshComponent& GetRenderMeshComponent() const;
  1395.     int& GetResourceObjectID();
  1396.     int GetResourceObjectID() const;
  1397.     kexTurokModeComponent& GetModeComponent();
  1398.     const kexTurokModeComponent& GetModeComponent() const;
  1399.     float& GetHealth();
  1400.     const float& GetHealth() const;
  1401.     float& GetInitialHealth();
  1402.     const float& GetInitialHealth() const;
  1403.     kexTurokScriptComponent& GetScriptComponent();
  1404.     const kexTurokScriptComponent& GetScriptComponent() const;
  1405.     kexTurokAIComponent& GetAIComponent();
  1406.     const kexTurokAIComponent& GetAIComponent() const;
  1407.     const kexTurokObject@ GetObstructedObject() const;
  1408.     const turokIntelligence_s@ GetIntelligence() const;
  1409.     turokActorFlags_e& GetActorFlags();
  1410.     const turokActorFlags_e& GetActorFlags() const;
  1411.     bool CanDrawAlternateBlood() const;
  1412.     int PlayTactile(const kStr&in strTactile, int channel, int position) const;
  1413.     bool IsTactilePlaying(int channel) const;
  1414.     bool IsNamedTactilePlaying(int channel, const kStr&in strFn) const;
  1415.     void StopTactile(int channel) const;
  1416.     bool IsTactileTarget() const;
  1417.     int GetTactileNode() const;
  1418.     kexTurokObject@ CastToObject();
  1419. }
  1420.  
  1421. class turokResourceNavNode_s
  1422. {
  1423. public:
  1424.     kVec3 m_vPos;
  1425.     turokResourceNavNodeFlags_e m_eFlags;
  1426.     uint m_dwType;
  1427. }
  1428.  
  1429. class turokIntelligenceEmpty_s
  1430. {
  1431. public:
  1432.     float m_fHealth;
  1433.     float m_CollisionRadius;
  1434.     float m_CollisionWallRadius;
  1435.     float m_CollisionHeight;
  1436.     float m_CollisionHeightOffset;
  1437.     int m_iArg0;
  1438.     int m_iArg1;
  1439.     int m_iArg2;
  1440.     int m_iArg3;
  1441.     int m_iArg4;
  1442.     int m_iArg5;
  1443.     int m_iArg6;
  1444.     int m_iArg7;
  1445.     float m_fArg0;
  1446.     float m_fArg1;
  1447.     float m_fArg2;
  1448.     float m_fArg3;
  1449.     float m_fArg4;
  1450.     float m_fArg5;
  1451.     float m_fArg6;
  1452.     float m_fArg7;
  1453. }
  1454.  
  1455. class kexTurokModeComponent
  1456. {
  1457. public:
  1458.     void ClearModeTable();
  1459.     bool SetMode(const int nNewMode, const bool bForceSet = false);
  1460.     bool ResetMode();
  1461.     void AddModeInfoToTable(const turokModeInfo_s&in modeInfo);
  1462.     const bool CheckModeIsValid(const int mode);
  1463.     const uint NumModeEntries() const;
  1464.     void ForgetAnimState();
  1465.     void SkipAnimUpdate();
  1466.     turokModeFlags_e& Flags();
  1467.     turokModeFlags_e GetFlags() const;
  1468.     float& ModeTime();
  1469.     float GetModeTime() const;
  1470.     const int Mode() const;
  1471.     int& PrevMode();
  1472.     int GetPrevMode() const;
  1473.     const int GetOverridedMode() const;
  1474.     turokModeTerrainType_e GetTerrainType() const;
  1475.     void SetTerrainType(turokModeTerrainType_e eNewType);
  1476. }
  1477.  
  1478. class turokIntelligenceAction_s
  1479. {
  1480. public:
  1481.     uint m_dwFlags;
  1482.     float m_CollisionRadius;
  1483.     float m_CollisionHeight;
  1484.     int16 m_IdleAnim;
  1485.     int8 m_IdleModel;
  1486.     int8 m_IdleTexture;
  1487.     float m_AutoGoRadius;
  1488.     int16 m_GoAnim;
  1489.     int16 m_GoPickupNeeded;
  1490.     int16 m_GoPickupNeededText;
  1491.     int8 m_GoModel;
  1492.     int8 m_GoTexture;
  1493.     uint16 m_CantGoSound;
  1494.     uint16 m_GoSound;
  1495. }
  1496.  
  1497. class turokResourceWarpPoint_s
  1498. {
  1499. public:
  1500.     int m_levelID;
  1501.     int m_region;
  1502.     float m_fRotZ;
  1503.     kVec3 m_vPos;
  1504. }
  1505.  
  1506. class turokIntelligenceWarpEntrance_s
  1507. {
  1508. public:
  1509.     uint m_dwFlags;
  1510.     float m_CollisionRadius;
  1511.     float m_CollisionHeight;
  1512.     uint m_DestinationID;
  1513. }
  1514.  
  1515. class kPlane
  1516. {
  1517. public:
  1518.     kPlane();
  1519.     kPlane(const float, const float, const float, const float);
  1520.     kPlane(const kVec3&in, const kVec3&in, const kVec3&in);
  1521.     kPlane(const kVec3&in, const kVec3&in);
  1522.     kPlane(const kAngle&in);
  1523.     const kVec3& Normal() const;
  1524.     kVec3& Normal();
  1525.     float Dot(const kVec3&in) const;
  1526.     float Dot(const kPlane&in) const;
  1527.     float Distance(const kVec3&in) const;
  1528.     float ToYaw() const;
  1529.     bool IsFacing(const float) const;
  1530.     const int PointOnSide(const kVec3&in) const;
  1531. }
  1532.  
  1533. class kexTurokPathTrack
  1534. {
  1535. public:
  1536.     const turokResourcePathPoint_s@ GetCurrentPathPoint() const;
  1537.     const turokResourcePathPoint_s@ GetPreviousPathPoint() const;
  1538.     const turokResourcePathPoint_s@ GetNextPathPoint() const;
  1539.     void GotoNextPoint();
  1540.     void SetClosestPathPoint(const kVec3&in vPos);
  1541.     bool IsValid() const;
  1542.     void ResetPreviousPathPoint();
  1543.     turokPathMode_e GetMode() const;
  1544.     void ChangeMode(const turokPathMode_e eNewMode);
  1545. }
  1546.  
  1547. class turokModeInfo_s
  1548. {
  1549. public:
  1550.     void SetNullCollisionInfoPtr();
  1551.     void SetCollisionInfoPtr(const turokCollisionInfo_s&in collisionInfo);
  1552.     uint m_dwMode;
  1553.     uint m_dwAnimID;
  1554.     float m_fAnimSpeed;
  1555.     float m_fAnimBlend;
  1556.     uint m_dwAnimEndOffset;
  1557.     turokModeFlags_e m_eModeFlags;
  1558.     uint m_dwOverrideMode;
  1559. }
  1560.  
  1561. class turokResourceRegionCorner_s
  1562. {
  1563. public:
  1564.     kVec3 m_vPos;
  1565.     float m_fCeiling;
  1566. }
  1567.  
  1568. class turokCollisionSweepResult_s
  1569. {
  1570. public:
  1571.     kexTurokObject@ m_pInstigator;
  1572.     float m_fRadius;
  1573.     float m_fHeight;
  1574.     kVec3 m_vFrom;
  1575.     kVec3 m_vDesired;
  1576.     turokCollisionSweepFlag_e m_eSweepFlags;
  1577.     turokCollisionFaceFlags_e m_eFilterFlags;
  1578.     turokCollisionFaceFlags_e m_eFilterOutFlags;
  1579.     float m_fClosestHitFraction;
  1580.     kVec3 m_vHitNormal;
  1581.     kVec3 m_vHitClimbNormal;
  1582.     kVec3 m_vHitPoint;
  1583.     int m_hitJointIndex;
  1584. }
  1585.  
  1586. class kexTurokParticleManager
  1587. {
  1588. public:
  1589.     kexTurokParticle@ SpawnParticle(const uint dwID, kexTurokObject@ pSource, const kVec3&in vVelocity, const kVec3&in vOrigin, const kQuat&in qRotation, turokRegion_s@ pRegion, const kexTurokParticle@ pParentParticle, const turokParticleAlignmentType_e eAlignment, const turokParticleSpawnFlags_e eSpawnFlags = turokParticleSpawnFlags_e :: NONE);
  1590. }
  1591.  
  1592. class turokAngles_s
  1593. {
  1594. public:
  1595.     const kAngle& opIndex(int index) const;
  1596.     kAngle& opIndex(int index);
  1597.     kAngle x;
  1598.     kAngle y;
  1599.     kAngle z;
  1600. }
  1601.  
  1602. class turokIntelligenceStatic_s
  1603. {
  1604. public:
  1605.     uint m_dwFlags;
  1606.     float m_CollisionRadius;
  1607.     float m_CollisionHeight;
  1608.     float m_CollisionHeightOffset;
  1609.     uint m_LODDistSquared;
  1610.     int m_unknown2;
  1611. }
  1612.  
  1613. class turokIntelligencePlatformCommon_s
  1614. {
  1615. public:
  1616.     uint m_dwFlags;
  1617.     uint16 m_CollisionType;
  1618.     float m_CollisionRadius;
  1619.     float m_CollisionWidth;
  1620.     float m_CollisionHeight;
  1621.     float m_CollisionLength;
  1622.     float m_CollisionXOffset;
  1623.     float m_CollisionYOffset;
  1624.     float m_CollisionZOffset;
  1625. }
  1626.  
  1627. class turokIntelligencePickup_s
  1628. {
  1629. public:
  1630.     uint m_dwFlags;
  1631.     float m_CollisionRadius;
  1632.     float m_CollisionHeight;
  1633.     float m_Time;
  1634. }
  1635.  
  1636. class kexTurokSoundFxManager
  1637. {
  1638. public:
  1639.     int PlayRax(const uint dwID, kexTurokObject@ pAudioSource);
  1640.     int PlayRaxDirect(const uint dwID);
  1641.     int PlaySound(const uint dwID);
  1642.     int PlaySound(const uint dwID, const kVec3&in vPos, kexTurokObject@ pSource);
  1643.     int PlaySoundWithTactile(const uint dwID, const kVec3&in vPos, kexTurokObject@ pSource, int channel, int pos, int node);
  1644.     void StopSound(kexTurokObject@ pSource);
  1645.     void StopSound(const int handle);
  1646.     void StopSoundID(const uint dwID);
  1647.     bool StopSound(const uint dwID, kexTurokObject@ pSource);
  1648.     void HaltAllSounds();
  1649.     void HaltAllSfxAndRax();
  1650.     void KillAllSfxAndRax();
  1651.     void HaltSoundByUniqueID(const int uniqueID);
  1652.     void ChangeSoundPosition(const int handle, const kVec3&in vPos);
  1653.     void PauseAllSounds(turokSoundFxPauseMode_e ePauseFlags);
  1654.     void ResumeAllSounds(turokSoundFxPauseMode_e ePauseFlags);
  1655. }
  1656.  
  1657. class turokIntelligenceEnemyCommon_s
  1658. {
  1659. public:
  1660.     uint m_dwFlags;
  1661.     uint m_Health;
  1662.     uint m_StartAnim;
  1663.     uint m_dwDeathFlag1Pickups;
  1664.     uint m_dwDeathFlag2Pickups;
  1665.     float m_CollisionRadius;
  1666.     float m_CollisionWallRadius;
  1667.     float m_CollisionHeight;
  1668.     float m_CollisionDeadHeight;
  1669.     float m_CollisionHeightOffset;
  1670.     float m_LeashRadius;
  1671.     uint8 m_Aggression;
  1672.     uint8 m_TranqHealth;
  1673.     uint16 m_StartSound;
  1674.     uint16 m_PainSound;
  1675.     uint8 m_HeadTextureIndex;
  1676.     uint8 m_BodyTextureIndex;
  1677.     uint8 m_ArmTextureIndex;
  1678.     uint8 m_BackOfHeadTextureIndex;
  1679.     uint8 m_LegTextureIndex;
  1680.     uint8 m_RightLegTextureIndex;
  1681. }
  1682.  
  1683. class ref
  1684. {
  1685. public:
  1686.     ~ref();
  1687.     ref();
  1688.     ref(const ref&in);
  1689.     ref(const ?&in);
  1690.     void opCast(?&out);
  1691.     ref& opHndlAssign(const ref&in);
  1692.     ref& opHndlAssign(const ?&in);
  1693.     bool opEquals(const ref&in) const;
  1694.     bool opEquals(const ?&in) const;
  1695. }
  1696.  
  1697. class kexTurokHud
  1698. {
  1699. public:
  1700.     void AddBossHealthBar(kexTurokActor@ pTargetActor, const kStr&in strDisplayTitle);
  1701.     void AddBossHealthStorageBar(const uint dwbarIndex, const float fBarPercent);
  1702.     void AddObjectiveText(const int objectiveMsgID, bool bCompleted);
  1703.     void AddMessage(const int localizedIndex, const int time = 120);
  1704.     void AddMessagePlayer(const uint dwSplitNum, const int localizedIndex, const int time = 120);
  1705.     void RefreshLifeForceDisplay();
  1706.     void AddMessage(const kStr&in szMsg, const int time = 120);
  1707.     void AddMessagePlayer(const uint dwSplitNum, const kStr&in szMsg, const int time = 120);
  1708.     void FlashPart(const uint8 partFlag, const uint8 activePartFlags);
  1709.     void SetBoreCountdown(const uint8 countdown);
  1710.     void HideCrosshairOverride(const bool bValue);
  1711.     void HideHealthOverride(const bool bValue);
  1712.     void HideAmmoOverride(const bool bValue);
  1713.     bool IsHideCrosshairOverrided() const;
  1714.     bool IsHideHealthOverrided() const;
  1715.     bool IsHideAmmoOverrided() const;
  1716.     bool AddImage(const uint id, const kStr&in path, const float x, const float y, const float w, const float h, const float s1, const float t1, const float s2, const float t2, const int order, const float r, const float g, const float b, const float a);
  1717.     bool ChangeImage(const uint id, const float x, const float y, const float w, const float h, const float s1, const float t1, const float s2, const float t2, const int order, const float r, const float g, const float b, const float a);
  1718.     bool RemoveImage(const uint id);
  1719.     void ClearImages();
  1720.     bool AddText(const uint id, const kStr&in strText, const float x, const float y, const float scale, const bool center, const int order, const float r, const float g, const float b, const float a, const float r2, const float g2, const float b2, const float a2);
  1721.     bool ChangeText(const uint id, const float x, const float y, const float scale, const int order, const float r, const float g, const float b, const float a, const float r2, const float g2, const float b2, const float a2);
  1722.     bool ChangeTextMessage(const uint id, const kStr&in strText);
  1723.     bool RemoveText(const uint id);
  1724.     void ClearTexts();
  1725.     void GetTextSize(const kStr&in text, const float scale, float&out outWidth, float&out outHeight) const;
  1726.     void AddColorFlashPlayer(const uint dwSplitNum, const float r, const float g, const float b, const float a, const uint8 attackTime, const uint8 sustainTime, const uint8 decayTime);
  1727. }
  1728.  
  1729. class turokDamageInfo_s
  1730. {
  1731. public:
  1732.     kexTurokObject@ m_pInflictor;
  1733.     kexTurokActor@ m_pSource;
  1734.     float m_fHits;
  1735.     float m_fRadius;
  1736.     turokDamageFlags_e m_eFlags;
  1737.     turokBoneInfo_s m_boneInfo;
  1738.     bool m_bHitBone;
  1739.     kVec3 m_vPos;
  1740. }
  1741.  
  1742. class turokIntelligenceCameraPlacement_s
  1743. {
  1744. public:
  1745.     uint m_dwFlags;
  1746.     float m_RotX;
  1747.     float m_RotZ;
  1748.     uint m_dwUnknown1;
  1749.     int m_nextTag;
  1750.     float m_fDelay;
  1751. }
  1752.  
  1753. class turokIntelligenceGenerator_s
  1754. {
  1755. public:
  1756.     uint m_dwFlags;
  1757.     int m_Type;
  1758.     int16 m_FiniteTotal;
  1759.     int16 m_MaxActive;
  1760.     float m_IntervalTime1;
  1761.     float m_IntervalTime2;
  1762.     int16 m_ObjectIndex;
  1763.     int16 m_VariationIndex;
  1764.     float m_ScaleX;
  1765.     float m_ScaleY;
  1766.     float m_ScaleZ;
  1767.     int16 m_ParticleType;
  1768.     int16 m_ObjectTypeID;
  1769. }
  1770.  
  1771. class kexTurokAIComponent
  1772. {
  1773. public:
  1774.     void UpdateCurrentNavNode();
  1775.     void SetClosestNavNodeToPosition();
  1776.     bool UpdatePath(kexTurokActor@ pTarget);
  1777.     turokTargetType_e GetTargetType(kexTurokActor@ pTarget);
  1778.     kexTurokActor@ GetNewTarget(const bool bCheckSight, const bool bCheckPath);
  1779.     void GetTargetInfo(turokAITargetInfo_s&out outInfo, bool bPathInfo, bool bSightInfo);
  1780.     bool TargetInFOV(kexTurokActor@ pTarget, const float fSightRadius, const float fSightTurnAngle, const float fSightTiltAngle) const;
  1781.     void SetTargetOverride(kexTurokActor@ pOverrideTarget, const float fTime);
  1782.     float GetAvoidanceAngle(const kVec3&in vDesiredPos, kexTurokActor@ pTarget, const float fRadiusFactor) const;
  1783.     bool PathFind(const kVec3&in vPos, kVec3&out vOutPathPos);
  1784.     int GetNavNodePathFlee(kexTurokActor@ pTarget);
  1785.     void RotateToFaceTarget(kexTurokActor@ pTarget, const float fTurnSpeed);
  1786.     void SetPathTarget(kexTurokActor@ pPathTarget);
  1787.     void SetSightTarget(kexTurokActor@ pSightTarget);
  1788.     void SetClosestNavNode(const int node);
  1789.     void SetPathNavNode(const int node);
  1790.     void SetTargetNavNode(const int node);
  1791.     void SetLeashNavNode(const int node);
  1792.     void SetLeashRadius(const float fRadius);
  1793.     const int GetClosestNavNode() const;
  1794.     const int GetNavPathNode() const;
  1795.     const int GetPreviousNavNode() const;
  1796.     const int GetTargetNavNode() const;
  1797.     const int GetLeashNavNode() const;
  1798.     turokPathList_t& GetPathNavNodes();
  1799.     const turokPathList_t& GetPathNavNodes() const;
  1800.     turokAIFlags_e& GetFlags();
  1801.     const turokAIFlags_e& GetFlags() const;
  1802.     kexTurokPathTrack& GetPathTrack();
  1803.     const kexTurokPathTrack& GetPathTrack() const;
  1804.     kVec3& GetLeashPos();
  1805.     const kVec3& GetLeashPos() const;
  1806.     kVec3& GetTargetOffset();
  1807.     const kVec3& GetTargetOffset() const;
  1808.     float& GetPathRotZ();
  1809.     const float& GetPathHeight() const;
  1810.     void SetPathHeight(float fValue);
  1811.     kexTurokActor@ GetSightTarget();
  1812.     kexTurokActor@ GetPathTarget();
  1813.     kexTurokActor@ GetOverrideTarget();
  1814.     const kexTurokActor@ GetSightTarget() const;
  1815.     const kexTurokActor@ GetPathTarget() const;
  1816.     const kexTurokActor@ GetOverrideTarget() const;
  1817.     kexTurokPuppet@ FindClosestPlayer(const kVec3&in vPos) const;
  1818.     bool IsPathBlocked(kexTurokActor@ pTarget) const;
  1819.     int GetTargetNavNode(kexTurokActor@ pTarget) const;
  1820.     void SetupPathTargetInfo(turokAITargetInfo_s&out outInfo);
  1821.     void SetupSightTargetInfo(turokAITargetInfo_s&out outInfo);
  1822.     kVec3 GetTakeCoverPosition(kexTurokActor@ pCoverObject, kexTurokActor@ pSightTarget) const;
  1823.     void SetOverrideTarget(kexTurokActor@ pTarget, const float fOverrideTime);
  1824. }
  1825.  
  1826. class kexTurokWorld
  1827. {
  1828. public:
  1829.     bool IsActorPersistentMarkedOnLevel(const uint dwLevelID, const uint dwResourceObjectID) const;
  1830.     turokRegion_s@ LookupRegion(const uint dwIndex);
  1831.     const turokRegion_s@ LookupRegion(const uint dwIndex) const;
  1832.     const int GetNumRegions() const;
  1833.     turokRegion_s@ GetNearestRegionToPos(const kVec3&in vPos, const int currentRegionID = - 1);
  1834.     kexTurokActor@ GetActorFromResourceID(const int resourceID) const;
  1835.     kexTurokActor@ GetActorFromTagID(const int tagID) const;
  1836.     void ProcessRegionLinks(const turokRegion_s@ pRegion, const turokResourceLinkCauses_e eCause, kexTurokActor@ pInstigator);
  1837.     void ProcessInstanceLinks(kexTurokActor@ pActor, const turokResourceLinkCauses_e eCause, kexTurokActor@ pInstigator);
  1838.     int GetCurrentLevelID() const;
  1839.     void TriggerTaggedObjects(const int userTagValue) const;
  1840.     void ToggleBlockerMeshesByModelType(const uint dwModelTypeID, const bool bDisableCollision);
  1841.     void ToggleBlockerMeshesByTagID(const int tagID, const bool bDisableCollision);
  1842.     void ChangeStaticMeshTextureFromTagID(const int tagID, const int8 newAltTexture);
  1843.     void ChangeStaticMeshIntelligenceFlagsFromTagID(const int tagID, const turokCommonIntelligenceFlags_e eFlags, const bool bEnable);
  1844.     void SetAmbience(const int soundID);
  1845.     void ChangeRegionCeilingsToTargetHeight();
  1846.     void ChangeRegionCeilingsToTargetHeightInstant();
  1847.     bool IsStaticMeshPersistentMarkedOnLevel(const uint dwLevelID, const uint dwResourceObjectID) const;
  1848.     bool IsStaticMeshPersistentMarkedByTagID(const int tagID) const;
  1849.     void FlagStaticMeshPersistentDataOnLevel(const uint dwLevelID, const uint dwResourceObjectID, const bool bFlag, const bool bRemove = true) const;
  1850.     void FlagStaticMeshPersistentDataByTagID(const int tagID, const bool bFlag, const bool bRemove = true) const;
  1851. }
  1852.  
  1853. class kexTurokNavData
  1854. {
  1855. public:
  1856.     const uint GetNavNodeCount() const;
  1857.     const turokResourceNavNode_s@ GetResourceNavNode(const int node) const;
  1858.     const turokResourceNavLink_s@ GetResourceNavLink(const int link) const;
  1859.     bool HasNodes() const;
  1860.     turokNavNode_s@ GetNavNode(const int node);
  1861.     const turokNavNode_s@ GetNavNode(const int node) const;
  1862.     const bool IsLinkTwoWay(const turokResourceNavLink_s@ pLink) const;
  1863.     int GetClosestNodeToPosition(const kVec3&in vPos) const;
  1864.     int GetFarthestNodeToPosition(const kVec3&in vPos) const;
  1865.     int GetClosestReachableNodeToPosition(kexTurokActor@ pActor, const kVec3&in vPos) const;
  1866.     int GetClosestNodeToPositionAndFlags(const kVec3&in vPos, const turokResourceNavNodeFlags_e eFlags) const;
  1867.     int GetLinkBetweenNodes(const int startNode, const int endNode) const;
  1868.     int GetConnectedNodes(const int originNode, turokPathList_t&out nNodes, turokPathList_t&out nLinks) const;
  1869.     void GetPathFindResult(turokPathList_t&out nNodes, const int numNodes) const;
  1870.     bool CanActorTravelToNode(kexTurokActor@ pActor, const int destNode) const;
  1871.     void UpdatePlayerCurrentNode(kexTurokPuppet@ pPlayer) const;
  1872.     void UpdateActorClosestNode(kexTurokActor@ pActor) const;
  1873.     bool PathFindBetweenNodes(kexTurokActor@ pActor, const int startNode, const int endNode);
  1874.     bool PathFindToGoal(kexTurokActor@ pActor, const int node);
  1875.     void ClearPathFindData();
  1876.     void ClearPathGoals();
  1877.     bool CheckNodeVisibility(const int startNode, const int endNode) const;
  1878.     int NumNavNodes() const;
  1879. }
  1880.  
  1881. class kQuat
  1882. {
  1883. public:
  1884.     kQuat();
  1885.     kQuat(float, float, float, float);
  1886.     kQuat(float, kVec3&in);
  1887.     kQuat(float, float, float);
  1888.     kQuat(const kQuat&in);
  1889.     kQuat& Normalize();
  1890.     kQuat opAdd(const kQuat&in);
  1891.     kQuat opSub(const kQuat&in);
  1892.     kQuat opMul(const kQuat&in);
  1893.     kQuat& opAssign(const kQuat&in);
  1894.     float x;
  1895.     float y;
  1896.     float z;
  1897.     float w;
  1898. }
  1899.  
  1900. class kexTurokCrosshair
  1901. {
  1902. public:
  1903.     const kVec3& GetSightPosition() const;
  1904.     const kVec3& GetCrosshairPosition() const;
  1905.     const kQuat& GetAutoAimRotation() const;
  1906.     kexTurokActor@ GetCrosshairTargetObject();
  1907.     kexTurokActor@ GetSightTargetObject();
  1908. }
  1909.  
  1910. class kexTurokGameInstance
  1911. {
  1912. public:
  1913.     uint GetActivePlayers() const;
  1914.     bool GameStateChanging() const;
  1915.     bool IsFading() const;
  1916.     void ChangeMap(const int id);
  1917.     turokResourceWarpPoint_s@ GetWarpPointFromID(const int warpID) const;
  1918.     float GetGameSpeed() const;
  1919.     void SetObjective(const uint8 objectiveID, bool bSilent);
  1920.     void CompleteObjective(const uint8 objectiveID);
  1921.     turokCheatFlags_e GetActiveCheats() const;
  1922.     void SetCheat(turokCheatFlags_e eCheatFlags);
  1923.     void AddCheat(turokCheatFlags_e eCheatFlags);
  1924.     void RemoveCheat(turokCheatFlags_e eCheatFlags);
  1925.     void EnableCheat(turokCheatFlags_e eCheatFlags);
  1926.     turokCheatFlags_e GetEnabledCheats() const;
  1927.     bool GameIsFrozen() const;
  1928.     turokCharacterMode_e GetCharacterMode() const;
  1929.     void SetCharacterMode(const turokCharacterMode_e eCharacterMode);
  1930.     bool IsIntelligenceAllowedForCharacterMode(const turokIntelligence_s&in intel) const;
  1931.     bool IsIntelligenceEnabledForDifficulty(const turokIntelligence_s&in intel) const;
  1932.     void SetMusic(const uint dwID);
  1933.     void FadeOutMusic(const int ms);
  1934.     const turokIntelligence_s@ GetLooseIntelligence(const uint dwVariationID) const;
  1935.     turokDifficultyMode_e GetDifficulty() const;
  1936.     void SetDifficulty(const turokDifficultyMode_e eDifficulty);
  1937.     turokGameMode_e GetGameMode() const;
  1938.     turokQuitMode_e GetActiveQuitMode() const;
  1939.     float GetInterpolatedFraction() const;
  1940.     void StopAllTactile() const;
  1941.     bool ChapterWarped() const;
  1942.     kexTurokPlayer@ GetPlayerPtr(const uint dwSplitNum);
  1943.     const kStr& GetUserPersistData(const kStr&in strKey);
  1944.     void SetUserPersistData(const kStr&in strKey, const kStr&in strValue);
  1945.     void RemoveUserPersistData(const kStr&in strKey);
  1946.     bool HasUserPersistData(const kStr&in strKey);
  1947.     void EmptyUserPersistData();
  1948.     uint64 CountUserPersistData();
  1949.     kStr TranslateString(const kStr&in s);
  1950.     void SetGameSpeed(const float speed);
  1951. }
  1952.  
  1953. class kBitDelta
  1954. {
  1955. public:
  1956.     bool WriteByte(const uint8 i);
  1957.     uint8 ReadByte();
  1958. }
  1959.  
  1960. class turokResourcePathPoint_s
  1961. {
  1962. public:
  1963.     kVec3 m_vPos;
  1964.     int region;
  1965.     float m_fRotZ;
  1966.     turokPathPointFlags_e m_eFlags;
  1967.     uint16 m_wIdleAnimFlags;
  1968.     uint16 m_wInteracativeIdleAnimFlags;
  1969.     uint16 m_wAdvanceAnimType;
  1970.     float m_fDistance;
  1971.     float m_fTurnDeltaTime;
  1972.     float m_fMoveSpeed;
  1973.     float m_fRotX;
  1974.     float m_fRotY;
  1975.     float m_fDeaccelerate;
  1976.     float m_fResumeTime;
  1977. }
  1978.  
  1979. class kSys
  1980. {
  1981. public:
  1982.     void Print(const kStr&in);
  1983.     void Warning(const kStr&in);
  1984.     int VideoWidth();
  1985.     int VideoHeight();
  1986.     int Mouse_X();
  1987.     int Mouse_Y();
  1988.     const bool GetCvarValue(const kStr&in, kStr&out);
  1989. }
  1990.  
  1991.  
  1992. enum EnumPlaneSide
  1993. {
  1994.     PSIDE_FRONT = 0,
  1995.     PSIDE_BACK = 1,
  1996.     PSIDE_ON = 2
  1997. }
  1998.  
  1999. enum turokDamageFlags_e
  2000. {
  2001.     NONE = 0,
  2002.     NORMAL = 1,
  2003.     VIOLENT = 2,
  2004.     EXPLOSIVE = 4,
  2005.     EXTREME = 8,
  2006.     LAVA = 16,
  2007.     DROWN = 32,
  2008.     ARROW = 64,
  2009.     LOOK = 128,
  2010.     SPLAT = 256
  2011. }
  2012.  
  2013. enum turokObjectCrossResult_e
  2014. {
  2015.     NONE = 0,
  2016.     ENTER = 1,
  2017.     EXIT = 2,
  2018.     INSIDE = 4
  2019. }
  2020.  
  2021. enum turokActorFlags_e
  2022. {
  2023.     NONE = 0,
  2024.     ALLOW_AUTOAIM = 1,
  2025.     WAS_HIDDEN = 2,
  2026.     WAS_OBSTRUCTED = 4,
  2027.     FADE_OUT = 8
  2028. }
  2029.  
  2030. enum tactileChannel_e
  2031. {
  2032.     WEAPON = 0,
  2033.     BODY = 1,
  2034.     DAMAGE = 2,
  2035.     WORLD = 3,
  2036.     MAX = 4
  2037. }
  2038.  
  2039. enum tactilePosition_e
  2040. {
  2041.     LEFT = 0,
  2042.     RIGHT = 1,
  2043.     NEUTRAL = 2
  2044. }
  2045.  
  2046. enum turokTargetType_e
  2047. {
  2048.     TARGET_TYPE_ATTACKER = 0,
  2049.     TARGET_TYPE_ATTACKER_FLEE = 1,
  2050.     TARGET_TYPE_LEADER = 2,
  2051.     TARGET_TYPE_LEASH = 3,
  2052.     TARGET_TYPE_PATH = 4,
  2053.     TARGET_TYPE_OBJECT = 5,
  2054.     TARGET_TYPE_DEATH = 6,
  2055.     TARGET_TYPE_TAKE_COVER = 7,
  2056.     TARGET_TYPE_UNKNOWN = 8
  2057. }
  2058.  
  2059. enum turokAIFlags_e
  2060. {
  2061.     NONE = 0,
  2062.     TARGET_THROWABLE = 1,
  2063.     TARGET_COVER = 2,
  2064.     TARGET_PLAYER = 4,
  2065.     SNIPER = 8,
  2066.     USE_LEASH_RADIUS = 16,
  2067.     RESTRICT_VISION = 32,
  2068.     PATROL = 64,
  2069.     NO_UPDATE_PATH_TARGET = 128,
  2070.     NO_UPDATE_SIGHT_TARGET = 256,
  2071.     LOOK_AT_PATH_TARGET = 512,
  2072.     TARGET_ENEMIES = 1024,
  2073.     ALWAYS_FLEEING = 2048,
  2074.     TARGET_LEASH_POS = 4096
  2075. }
  2076.  
  2077. enum turokAnimTrackFlags_e
  2078. {
  2079.     NONE = 0,
  2080.     BLEND = 1,
  2081.     LOOP = 2,
  2082.     STOPPED = 4,
  2083.     NOINTERRUPT = 8,
  2084.     ROOTMOTION = 16,
  2085.     PAUSED = 32,
  2086.     CYCLECOMPLETED = 64,
  2087.     LINEARBLEND = 128,
  2088.     NOACCUMULATION = 256
  2089. }
  2090.  
  2091. enum turokEnemyBehaviorState_e
  2092. {
  2093.     ENEMY_BEHAVIOR_STATE_GROUND = 0,
  2094.     ENEMY_BEHAVIOR_STATE_AIR = 1,
  2095.     ENEMY_BEHAVIOR_STATE_UNDERWATER = 2,
  2096.     NUM_ENEMY_BEHAVIOR_STATES = 3
  2097. }
  2098.  
  2099. enum turokEnemyBehaviorType_e
  2100. {
  2101.     ENEMY_BEHAVIOR_TYPE_NONE = 0,
  2102.     ENEMY_BEHAVIOR_TYPE_NORMAL = 1,
  2103.     ENEMY_BEHAVIOR_TYPE_SNIPER = 2,
  2104.     NUM_ENEMY_BEHAVIOR_TYPES = 3
  2105. }
  2106.  
  2107. enum turokEnemyActionType_e
  2108. {
  2109.     ENEMY_ACTION_TYPE_PATROL = 0,
  2110.     ENEMY_ACTION_TYPE_ATTACK = 1,
  2111.     ENEMY_ACTION_TYPE_NOP = 2
  2112. }
  2113.  
  2114. enum turokEnemyAlertType_e
  2115. {
  2116.     ENEMY_ALERT_TYPE_NONE = 0,
  2117.     ENEMY_ALERT_TYPE_LOW = 1,
  2118.     ENEMY_ALERT_TYPE_MEDIUM = 2,
  2119.     ENEMY_ALERT_TYPE_HIGH = 3
  2120. }
  2121.  
  2122. enum turokEnemyEvadeType_e
  2123. {
  2124.     ENEMY_EVADE_TYPE_NONE = 0,
  2125.     ENEMY_EVADE_TYPE_LEFT = 1,
  2126.     ENEMY_EVADE_TYPE_RIGHT = 2
  2127. }
  2128.  
  2129. enum turokEnemyMode_e
  2130. {
  2131.     MODE_ENEMY_WAIT_FOR_TRIGGER = 0,
  2132.     MODE_ENEMY_START_DELAY = 1,
  2133.     MODE_ENEMY_START = 2,
  2134.     MODE_ENEMY_MOVE_SLOW = 3,
  2135.     MODE_ENEMY_MOVE = 4,
  2136.     MODE_ENEMY_MOVE_TURN180 = 5,
  2137.     MODE_ENEMY_FLEE = 6,
  2138.     MODE_ENEMY_FLEE_TURN180 = 7,
  2139.     MODE_ENEMY_EVADE_LEFT = 8,
  2140.     MODE_ENEMY_EVADE_RIGHT = 9,
  2141.     MODE_ENEMY_IDLE = 10,
  2142.     MODE_ENEMY_INTERACTIVE_IDLE = 11,
  2143.     MODE_ENEMY_ALERT = 12,
  2144.     MODE_ENEMY_TAKE_COVER = 13,
  2145.     MODE_ENEMY_ATTACK_COMBAT = 14,
  2146.     MODE_ENEMY_ATTACK_LEAP = 15,
  2147.     MODE_ENEMY_ATTACK_DART = 16,
  2148.     MODE_ENEMY_ATTACK_WEAPON = 17,
  2149.     MODE_ENEMY_ATTACK_PROJECTILE = 18,
  2150.     MODE_ENEMY_COMBO = 19,
  2151.     MODE_ENEMY_COMBO_END = 20,
  2152.     MODE_ENEMY_PICKUP_THROW_OBJECT = 21,
  2153.     MODE_ENEMY_DROP_OBJECT = 22,
  2154.     MODE_ENEMY_TELEPORT_OUT = 23,
  2155.     MODE_ENEMY_TELEPORT_IN = 24,
  2156.     MODE_ENEMY_TELEPORT_CHASE = 25,
  2157.     MODE_ENEMY_CLOAK_ACTIVATE = 26,
  2158.     MODE_ENEMY_REGENERATE = 27,
  2159.     MODE_ENEMY_PUFFUP = 28,
  2160.     MODE_ENEMY_REACTION_EXPLOSION = 29,
  2161.     MODE_ENEMY_REACTION_FALL_DOWN = 30,
  2162.     MODE_ENEMY_REACTION_GETUP = 31,
  2163.     MODE_ENEMY_REACTION_BLINDED = 32,
  2164.     MODE_ENEMY_REACTION_SHOCKED = 33,
  2165.     MODE_ENEMY_REACTION_BORE = 34,
  2166.     MODE_ENEMY_REACTION_BORE_CLUNK = 35,
  2167.     MODE_ENEMY_REACTION_BORE_POSSESSED = 36,
  2168.     MODE_ENEMY_REACTION_BORE_BURST = 37,
  2169.     MODE_ENEMY_WOUNDED_GENERIC = 38,
  2170.     MODE_ENEMY_WOUNDED_LEFT_ARM = 39,
  2171.     MODE_ENEMY_WOUNDED_RIGHT_ARM = 40,
  2172.     MODE_ENEMY_GROUND_TO_AIR = 41,
  2173.     MODE_ENEMY_GROUND_TO_UNDERWATER = 42,
  2174.     MODE_ENEMY_AIR_TO_GROUND = 43,
  2175.     MODE_ENEMY_AIR_TO_UNDERWATER = 44,
  2176.     MODE_ENEMY_UNDERWATER_TO_GROUND = 45,
  2177.     MODE_ENEMY_UNDERWATER_TO_AIR = 46,
  2178.     MODE_ENEMY_FEIGN_DEATH = 47,
  2179.     MODE_ENEMY_DEATH = 48,
  2180.     MODE_ENEMY_EXTREME_DEATH_PART1 = 49,
  2181.     MODE_ENEMY_EXTREME_DEATH = 50,
  2182.     MODE_ENEMY_PFM_DEATH = 51,
  2183.     MODE_ENEMY_HEAD_BLOWN_OFF_DEATH = 52,
  2184.     MODE_ENEMY_LEFT_ARM_BLOWN_OFF_DEATH = 53,
  2185.     MODE_ENEMY_RIGHT_ARM_BLOWN_OFF_DEATH = 54,
  2186.     MODE_ENEMY_BODY_HOLE_DEATH = 55,
  2187.     MODE_ENEMY_DEATH_MELT = 56,
  2188.     MODE_ENEMY_VAMPIRE_REACTION = 57,
  2189.     MODE_ENEMY_POSSESSED = 58,
  2190.     NUM_ENEMY_MODES = 59
  2191. }
  2192.  
  2193. enum turokEnemyMessages_e
  2194. {
  2195.     MSG_ENEMY_TRIGGER_ACTION = 1,
  2196.     MSG_ENEMY_MAKE_VISIBLE = 2,
  2197.     MSG_ENEMY_TURN_INTO_NORMAL_BEHAVIOR = 3,
  2198.     MSG_ENEMY_TURN_INTO_SNIPER_BEHAVIOR = 4,
  2199.     MSG_ENEMY_PLAY_CINEMA = 5,
  2200.     MSG_ENEMY_PLAY_SOUND = 6,
  2201.     MSG_ENEMY_PLAY_MUSIC = 7,
  2202.     MSG_ENEMY_AMBIENT_SOUND = 8,
  2203.     MSG_ENEMY_DESTROY_SELF = 9,
  2204.     MSG_ENEMY_ACTIVATE_PLAYER_TARGETING = 10,
  2205.     MSG_ENEMY_SCRIPT_FUNCTION = 11,
  2206.     MSG_ENEMY_MAKE_STATIC = 12,
  2207.     MSG_ENEMY_SET_OBJECTIVE = 13,
  2208.     MSG_ENEMY_COMPLETE_OBJECTIVE = 14,
  2209.     MSG_ENEMY_TRIGGER_IDLE = 15,
  2210.     MSG_ENEMY_CLEAR_AMBUSH = 16,
  2211.     MSG_ENEMY_CLEAR_NO_TARGETING = 17,
  2212.     MSG_ENEMY_SET_NO_TARGETING = 18,
  2213.     MSG_ENEMY_ENABLE_COLLISION = 19,
  2214.     MSG_ENEMY_DISABLE_COLLISION = 20
  2215. }
  2216.  
  2217. enum turokEnemyFlags_e
  2218. {
  2219.     NONE = 0,
  2220.     LEADER = 1,
  2221.     FOLLOWER = 2,
  2222.     PASS_ON_LEADERSHIP = 4,
  2223.     FREE_FOLLOWERS = 8,
  2224.     USE_LEASH_RADIUS = 16,
  2225.     REGENERATE = 32,
  2226.     CAN_TELEPORT = 64,
  2227.     CAN_BE_BLINDED = 128,
  2228.     CAN_BE_SHOCKED = 256,
  2229.     CAN_BE_TRANQUALIZED = 512,
  2230.     CAN_BE_BORED = 1024,
  2231.     LINK_TRIGGERED = 2048,
  2232.     INITIALLY_INVISIBLE = 4096,
  2233.     CAN_BE_BORE_TRACKED = 8192,
  2234.     FACE_START_ROT_Z_LEASH = 16384,
  2235.     RESTRICT_VISION = 32768,
  2236.     VANISH_ON_DEATH = 65536,
  2237.     FEIGN_DEATH = 131072,
  2238.     AMBUSH = 262144,
  2239.     NO_FLINCHING = 524288,
  2240.     CAN_CLOAK = 1048576,
  2241.     USE_SKINS = 2097152,
  2242.     RANDOMIZE_FACE_TEXTURE = 4194304,
  2243.     RANDOMIZE_BODY_TEXTURE = 8388608,
  2244.     RANDOMIZE_LARM_TEXTURE = 16777216,
  2245.     RANDOMIZE_RARM_TEXTURE = 33554432,
  2246.     RANDOMIZE_LLEG_TEXTURE = 67108864,
  2247.     RANDOMIZE_RLEG_TEXTURE = 134217728,
  2248.     STOP_PATH_NODE_TRIGGERED = 268435456,
  2249.     NO_BLACK_HOLE_DRAGGING = 536870912,
  2250.     NO_LEACHING = 1073741824,
  2251.     NO_PERSIST_TRIGGER_ONVISIBLE = -2147483648
  2252. }
  2253.  
  2254. enum turokEventType_e
  2255. {
  2256.     EVENT_TYPE_PLAYSFX = 0,
  2257.     EVENT_TYPE_PARTICLE = 1,
  2258.     EVENT_TYPE_SDAMAGE = 2,
  2259.     EVENT_TYPE_MDAMAGE = 3,
  2260.     EVENT_TYPE_MDAMAGELOOK = 4,
  2261.     EVENT_TYPE_TRIGGER = 5,
  2262.     EVENT_TYPE_UNBLOCK = 6,
  2263.     EVENT_TYPE_BLOCK = 7,
  2264.     EVENT_TYPE_PARTICLE2 = 8,
  2265.     EVENT_TYPE_SCREEN_FLASH = 9,
  2266.     EVENT_TYPE_SPAWN_TRAILS = 10,
  2267.     EVENT_TYPE_WEAPON_FIRE_PROJECTILE = 11,
  2268.     EVENT_TYPE_SCREEN_SHAKE_SINEWAVE = 12,
  2269.     EVENT_TYPE_SCREEN_SHAKE_RANDOM = 13,
  2270.     EVENT_TYPE_DISPLAYTEXT = 14,
  2271.     EVENT_TYPE_MDAMAGE_VIOLENT = 15,
  2272.     EVENT_TYPE_MDAMAGE_VIOLENT_LOOK = 16,
  2273.     EVENT_TYPE_MDAMAGE_EXPLOSIVE = 17,
  2274.     EVENT_TYPE_MDAMAGE_EXPLOSIVE_LOOK = 18,
  2275.     EVENT_TYPE_MDAMAGE_EXTREME = 19,
  2276.     EVENT_TYPE_MDAMAGE_EXTREME_LOOK = 20,
  2277.     EVENT_TYPE_RUMBLE = 21,
  2278.     EVENT_TYPE_USER = 22,
  2279.     EVENT_TYPE_PLAYSFX_ON_MODEL = 23,
  2280.     EVENT_TYPE_PARTICLE_ON_MODEL = 24,
  2281.     EVENT_TYPE_MDAMAGE_GROUND_EXPLOSIVE = 25,
  2282.     EVENT_TYPE_HOTPOINT_ON = 26,
  2283.     EVENT_TYPE_HOTPOINT_OFF = 27,
  2284.     EVENT_TYPE_SPAWN = 28,
  2285.     EVENT_TYPE_PLAYSFX_ON_MATERIAL = 29,
  2286.     EVENT_TYPE_PLAYVOICE = 30,
  2287.     EVENT_TYPE_PLAY_LOOP_SOUND = 31,
  2288.     EVENT_TYPE_STOP_LOOP_SOUND = 32,
  2289.     EVENT_TYPE_UNKNOWN_1 = 33,
  2290.     EVENT_TYPE_UNKNOWN_2 = 34,
  2291.     EVENT_TYPE_CHANGE_MODEL = 35,
  2292.     EVENT_TYPE_DESTROY = 36,
  2293.     EVENT_TYPE_UNKNOWN_5 = 37,
  2294.     EVENT_TYPE_UNKNOWN_6 = 38,
  2295.     EVENT_TYPE_UNKNOWN_7 = 39,
  2296.     EVENT_TYPE_CREATE_SINE_SHOCKWAVE = 40,
  2297.     EVENT_TYPE_UNKNOWN_9 = 41,
  2298.     EVENT_TYPE_UNKNOWN_10 = 42,
  2299.     EVENT_TYPE_DIRECT_DAMAGE = 43,
  2300.     EVENT_TYPE_MDAMAGE2 = 44,
  2301.     EVENT_TYPE_CREATE_BLACKHOLE = 45,
  2302.     EVENT_TYPE_EVAPORATE_ACTORS = 46,
  2303.     EVENT_TYPE_FLAG_PERSISTENT = 47,
  2304.     EVENT_TYPE_PLAYVOICE_CHANCE = 48,
  2305.     EVENT_TYPE_PLAYSFX_LOCAL = 49,
  2306.     EVENT_TYPE_CREATE_SINE_BLACKHOLE_SHOCKWAVE = 50,
  2307.     NUM_EVENT_TYPES = 51
  2308. }
  2309.  
  2310. enum turokIntelligenceTypes_e
  2311. {
  2312.     STATIC_INTEL_TYPE = 0,
  2313.     ENEMY_INTEL_TYPE = 1,
  2314.     PLATFORM_INTEL_TYPE = 2,
  2315.     GENERATOR_INTEL_TYPE = 3,
  2316.     TURRET_INTEL_TYPE = 4,
  2317.     THROWABLE_INTEL_TYPE = 5,
  2318.     DOOR_INTEL_TYPE = 6,
  2319.     DESTRUCTIBLE_INTEL_TYPE = 7,
  2320.     PICKUP_INTEL_TYPE = 8,
  2321.     INTERACTIVE_ANIM_INTEL_TYPE = 9,
  2322.     ACTION_INTEL_TYPE = 10,
  2323.     PLAYER_INTEL_TYPE = 11,
  2324.     MORPHER_INTEL_TYPE = 12,
  2325.     WARP_ENTRANCE_INTEL_TYPE = 13,
  2326.     WEATHER_GENERATOR_INTEL_TYPE = 14,
  2327.     CAMERA_PLACEMENT_INTEL_TYPE = 15,
  2328.     EMPTY_INTEL_TYPE = 16,
  2329.     TOTAL_INTEL_TYPES = 17
  2330. }
  2331.  
  2332. enum turokIntelPickupFlags_e
  2333. {
  2334.     NONE = 0,
  2335.     ACTOR_ON_SAME_REGION = 1
  2336. }
  2337.  
  2338. enum turokCommonIntelligenceFlags_e
  2339. {
  2340.     NONE = 0,
  2341.     ALIASING_REDUCED = 1,
  2342.     ALIASING_FULL = 2,
  2343.     TRACK_GROUND = 4,
  2344.     EASY_DIFFICULTY = 8,
  2345.     MEDIUM_DIFFICULTY = 16,
  2346.     HARD_DIFFICULTY = 32,
  2347.     USE_STATIC_LIGHTING = 64,
  2348.     CAN_BE_LANDED_ON = 128,
  2349.     ENABLED = 256,
  2350.     ENABLED_CINEMA = 512,
  2351.     NO_TARGETING = 1024,
  2352.     UNKNOWN800 = 2048,
  2353.     BLOCKER = 4096,
  2354.     UNKNOWN2000 = 8192,
  2355.     UNKNOWN4000 = 16384,
  2356.     UNKNOWN8000 = 32768,
  2357.     UNKNOWN10000 = 65536,
  2358.     UNKNOWN20000 = 131072,
  2359.     UNKNOWN40000 = 262144,
  2360.     UNKNOWN80000 = 524288,
  2361.     UNKNOWN100000 = 1048576,
  2362.     NO_DAMAGE = 2097152,
  2363.     FLAG_NODES_ON_PATHS = 4194304,
  2364.     DRAW_IF_DANI = 8388608,
  2365.     DRAW_IF_JOSEPH = 16777216,
  2366.     BLOCK_AI = 33554432,
  2367.     UNKNOWN4000000 = 67108864,
  2368.     UNKNOWN8000000 = 134217728,
  2369.     DRAW_IF_JOSHUA = 268435456,
  2370.     DRAW_IF_RAPTOR = 536870912,
  2371.     OBLIVION_DIFFICULTY = 1073741824
  2372. }
  2373.  
  2374. enum turokGameState_e
  2375. {
  2376.     GS_NONE = 0,
  2377.     GS_TITLE = 1,
  2378.     GS_LEVEL = 2,
  2379.     GS_CHANGELEVEL = 3,
  2380.     GS_NEW_SINGLEPLAYER_GAME = 4,
  2381.     GS_CHOOSE_CHARACTER = 5,
  2382.     GS_OPENING_CINEMATIC = 6,
  2383.     GS_LOAD_GAME = 7,
  2384.     GS_EDITOR = 8,
  2385.     GS_CREDITS = 9,
  2386.     GS_WARNING = 10,
  2387.     GS_INTRO = 11,
  2388.     GS_NEW_CHEATWARP_GAME = 12,
  2389.     NUMGAMESTATES = 13
  2390. }
  2391.  
  2392. enum turokImpactType_e
  2393. {
  2394.     IMPACT_TYPE_DEFAULT = 0,
  2395.     IMPACT_TYPE_WATER = 1,
  2396.     IMPACT_TYPE_METAL = 2,
  2397.     IMPACT_TYPE_STONE = 3,
  2398.     IMPACT_TYPE_FLESH_HUMAN = 4,
  2399.     IMPACT_TYPE_FLESH_CREATURE = 5,
  2400.     IMPACT_TYPE_FLESH_WATER = 6,
  2401.     IMPACT_TYPE_LAVA = 7,
  2402.     IMPACT_TYPE_SLIME = 8,
  2403.     IMPACT_TYPE_FORCEFIELD = 9,
  2404.     IMPACT_TYPE_UNKNOWN1 = 10,
  2405.     IMPACT_TYPE_UNKNOWN2 = 11,
  2406.     IMPACT_TYPE_UNKNOWN3 = 12,
  2407.     IMPACT_TYPE_UNKNOWN4 = 13,
  2408.     IMPACT_TYPE_DESTROY = 14,
  2409.     IMPACT_TYPE_ACTIVE = 15,
  2410.     IMPACT_TYPE_DESTROYWATER = 16,
  2411.     IMPACT_TYPE_ACTIVEWATER = 17,
  2412.     IMPACT_TYPE_NUMIMPACTTYPES = 18
  2413. }
  2414.  
  2415. enum turokCheatFlags_e
  2416. {
  2417.     NONE = 0,
  2418.     BIG_HEADS = 1,
  2419.     TINY_ENEMY = 2,
  2420.     INFINITE_AMMO = 4,
  2421.     INVINCIBILITY = 8,
  2422.     BIG_LIMBS = 16,
  2423.     STICK_MODE = 32,
  2424.     ALL_WEAPONS = 64,
  2425.     DEMIGOD = 128,
  2426.     ALL_CHAR_WEAPONS = 256,
  2427.     PLAY_AS_JOSHUA = 512,
  2428.     PLAY_AS_RAPTOR = 1024,
  2429.     ALL_KEYS = 2048,
  2430.     GOURAUD = 4096,
  2431.     HEADLESS = 8192,
  2432.     CHAPTER1 = 16384,
  2433.     CHAPTER2 = 32768,
  2434.     CHAPTER3 = 65536,
  2435.     CHAPTER4 = 131072,
  2436.     CHAPTER5 = 262144,
  2437.     ANY_CHEAT = 67108864,
  2438.     BEATEN_AS_JOSHUA = 134217728,
  2439.     BEATEN_AS_RAPTOR = 268435456,
  2440.     BEATEN_AS_DANNI = 536870912,
  2441.     BEATEN_AS_JOSEPH = 1073741824
  2442. }
  2443.  
  2444. enum turokCharacterMode_e
  2445. {
  2446.     CHARACTER_MODE_DANNI = 0,
  2447.     CHARACTER_MODE_JOSEPH = 1,
  2448.     CHARACTER_MODE_JOSHUA = 2,
  2449.     CHARACTER_MODE_RAPTOR = 3,
  2450.     NUM_CHARACTER_MODES = 4,
  2451.     CHARACTER_MODE_ALL = -1
  2452. }
  2453.  
  2454. enum turokDifficultyMode_e
  2455. {
  2456.     DIFFICULTY_EASY = 0,
  2457.     DIFFICULTY_NORMAL = 1,
  2458.     DIFFICULTY_HARD = 2,
  2459.     DIFFICULTY_OBLIVION = 3,
  2460.     NUM_DIFFICULTIES = 4
  2461. }
  2462.  
  2463. enum turokGameMode_e
  2464. {
  2465.     GAME_MODE_SINGLE_PLAYER = 0,
  2466.     GAME_MODE_BLOODLUST = 1,
  2467.     GAME_MODE_CTF = 2,
  2468.     GAME_MODE_LAST_STAND = 3,
  2469.     GAME_MODE_GOLDEN_ARROW = 4,
  2470.     GAME_MODE_MONKEY_TAG = 5,
  2471.     GAME_MODE_ARSENAL_OF_WAR = 6,
  2472.     GAME_MODE_COLOR_TAG = 7,
  2473.     GAME_MODE_WEAPON_MASTER = 8
  2474. }
  2475.  
  2476. enum turokQuitMode_e
  2477. {
  2478.     QUIT_MODE_NONE = 0,
  2479.     QUIT_MODE_RETURN_TO_TITLE = 1,
  2480.     QUIT_MODE_RESTART_LEVEL = 2,
  2481.     QUIT_MODE_RESTART_CHAPTER = 3,
  2482.     QUIT_MODE_RESTART_COUNTDOWN = 4,
  2483.     NUM_QUIT_MODES = 5
  2484. }
  2485.  
  2486. enum turokModeFlags_e
  2487. {
  2488.     NONE = 0,
  2489.     INVINCIBLE = 1,
  2490.     HEADTRACK = 2,
  2491.     CLEARMOVEMENT = 4,
  2492.     NO_BLEND = 8,
  2493.     IDLE = 16,
  2494.     CLEARLOOPSOUNDS = 32,
  2495.     NOACCUMULATION = 64,
  2496.     NOROOTMOTION = 128,
  2497.     NO_LOOP = 256,
  2498.     TERRAIN_GROUND = 512,
  2499.     TERRAIN_AIR = 1024,
  2500.     TERRAIN_UNDERWATER = 2048,
  2501.     HAS_SCRIPT_SETUP = 4096,
  2502.     HAS_SCRIPT_UPDATE = 8192,
  2503.     HAS_SCRIPT_GETANIM = 16384
  2504. }
  2505.  
  2506. enum turokModeTerrainType_e
  2507. {
  2508.     MODE_TERRAIN_TYPE_GROUND = 0,
  2509.     MODE_TERRAIN_TYPE_AIR = 1,
  2510.     MODE_TERRAIN_TYPE_UNDERWATER = 2,
  2511.     NUM_MODE_TERRAIN_TYPES = 3
  2512. }
  2513.  
  2514. enum turokSectionFlags_e
  2515. {
  2516.     NONE = 0,
  2517.     FLAT_SHADED = 1,
  2518.     SELF_ILLUMINATED = 2,
  2519.     TWO_SIDED = 4,
  2520.     TEXTURE_MAP = 8,
  2521.     REFLECT_MAP = 16,
  2522.     DECAL_TEXTURE = 32,
  2523.     PRELIT = 64,
  2524.     MASK = 128,
  2525.     TRANSPARENCY = 256,
  2526.     INTERSECT = 512,
  2527.     PSEUDOCOLOR = 1024,
  2528.     MIRROR_TEXTURE = 2048,
  2529.     SHADE_ALPHA = 4096,
  2530.     MIPMAP = 8192,
  2531.     REFLECT_OVERLAY = 16384,
  2532.     SKINNED = 32768,
  2533.     LOCK_ANIM = 65536,
  2534.     UNKNOWN_0x20000 = 131072,
  2535.     UNKNOWN_0x40000 = 262144,
  2536.     UNKNOWN_0x80000 = 524288,
  2537.     UNKNOWN_0x100000 = 1048576,
  2538.     UNKNOWN_0x200000 = 2097152,
  2539.     UNKNOWN_0x400000 = 4194304,
  2540.     UNKNOWN_0x800000 = 8388608,
  2541.     GLOW = 16777216,
  2542.     UNKNOWN_0x2000000 = 33554432,
  2543.     UNKNOWN_0x4000000 = 67108864,
  2544.     UNKNOWN_0x8000000 = 134217728,
  2545.     UNKNOWN_0x10000000 = 268435456,
  2546.     UNKNOWN_0x20000000 = 536870912,
  2547.     UNKNOWN_0x40000000 = 1073741824
  2548. }
  2549.  
  2550. enum turokSectionFlags2_e
  2551. {
  2552.     NONE = 0,
  2553.     PART_BITS1 = 1,
  2554.     PART_BITS2 = 2,
  2555.     PART_MASK = 3,
  2556.     PART_FLAG = 4,
  2557.     FORMAT_CI4_IA = 8,
  2558.     DYNAMIC_LAYER = 16,
  2559.     PART_0 = 0,
  2560.     PART_1 = 1,
  2561.     PART_2 = 2,
  2562.     PART_3 = 3,
  2563.     NUM_PARTS = 4,
  2564.     PART_BODY = 0,
  2565.     PART_HEAD = 1,
  2566.     PART_ARMS = 2,
  2567.     PART_LEGS = 3
  2568. }
  2569.  
  2570. enum turokCollisionFaceFlags_e
  2571. {
  2572.     NONE = 0,
  2573.     FLAT_SHADED = 1,
  2574.     SELF_ILLUMINATED = 2,
  2575.     DOUBLE_SIDED = 4,
  2576.     STATIC = 8,
  2577.     REFLECTIVE = 16,
  2578.     DECAL = 32,
  2579.     PRELIT = 64,
  2580.     SHOOT_THROUGH = 128,
  2581.     SEE_THROUGH = 256,
  2582.     UNKNOWN200 = 512,
  2583.     WATER = 1024,
  2584.     IGNORE_SIGHT = 2048,
  2585.     SHADE_ALPHA = 4096,
  2586.     MIPMAP = 8192,
  2587.     REFLECT_OVERLAY = 16384,
  2588.     SKINNED = 32768,
  2589.     UNKNOWN10000 = 65536,
  2590.     UNKNOWN20000 = 131072,
  2591.     UNKNOWN40000 = 262144,
  2592.     NO_COLLISION = 524288,
  2593.     UNKNOWN100000 = 1048576,
  2594.     UNKNOWN200000 = 2097152,
  2595.     UNKNOWN400000 = 4194304,
  2596.     UNKNOWN800000 = 8388608,
  2597.     UNKNOWN1000000 = 16777216,
  2598.     UNKNOWN2000000 = 33554432,
  2599.     UNKNOWN4000000 = 67108864,
  2600.     UNKNOWN8000000 = 134217728,
  2601.     CLIMB = 268435456,
  2602.     UNKNOWN20000000 = 536870912,
  2603.     ALL_MASK = -1
  2604. }
  2605.  
  2606. enum turokHotPointFlags_e
  2607. {
  2608.     NONE = 1,
  2609.     PARTICLE1 = 2,
  2610.     UNUSED1 = 4,
  2611.     BLOOD_FOUNTAIN = 8,
  2612.     UNUSED2 = 16,
  2613.     UNUSED3 = 32,
  2614.     CBORE = 64,
  2615.     PARTICLE3 = 128,
  2616.     PARTICLE4 = 256,
  2617.     PARTICLE5 = 512,
  2618.     PARTICLE6 = 1024,
  2619.     PARTICLE7 = 2048,
  2620.     PARTICLE8 = 4096,
  2621.     PARTICLE9 = 8192,
  2622.     PARTICLE10 = 16384,
  2623.     PARTICLE11 = 32768,
  2624.     PARTICLE12 = 65536,
  2625.     PARTICLE13 = 131072,
  2626.     PARTICLE14 = 262144,
  2627.     PARTICLE15 = 524288,
  2628.     PARTICLE16 = 1048576,
  2629.     PARTICLE17 = 2097152,
  2630.     PARTICLE18 = 4194304,
  2631.     DAMAGE5 = 8388608,
  2632.     DAMAGE10 = 16777216,
  2633.     DAMAGE15 = 33554432,
  2634.     DAMAGE20 = 67108864,
  2635.     PARTICLE19 = 134217728,
  2636.     PARTICLE20 = 268435456,
  2637.     PARTICLE21 = 536870912,
  2638.     PARTICLE22 = 1073741824,
  2639.     PARTICLE23 = -2147483648,
  2640.     PARTICLE_ALL = -125829238
  2641. }
  2642.  
  2643. enum turokResourceNavLinkType_e
  2644. {
  2645.     NAVLINK_TYPE_UNKNOWN0 = 0,
  2646.     NAVLINK_TYPE_TWO_WAY = 1,
  2647.     NAVLINK_TYPE_ONE_WAY = 2,
  2648.     NAVLINK_TYPE_ONE_WAY_FALL = 3,
  2649.     NAVLINK_TYPE_LADDER = 4,
  2650.     NAVLINK_TYPE_PLATFORM = 5,
  2651.     NAVLINK_TYPE_COVER = 6,
  2652.     NAVLINK_TYPE_SWIM = 7,
  2653.     NAVLINK_TYPE_JUMP = 8,
  2654.     NAVLINK_TYPE_TRACKING = 9,
  2655.     NAVLINK_TYPE_TRACKING_FALL = 10
  2656. }
  2657.  
  2658. enum turokResourceNavNodeFlags_e
  2659. {
  2660.     NONE = 0,
  2661.     PICKUP = 1,
  2662.     COVER = 2,
  2663.     WARPPOINT = 4,
  2664.     SPAWNPOINT = 8,
  2665.     WATER_SURFACE = 16,
  2666.     UNDERWATER = 32,
  2667.     DEATHZONE = 64,
  2668.     KILLZONE = 128,
  2669.     UNKNOWN0x100 = 256,
  2670.     PLATFORM = 512,
  2671.     HAZARD = 1024
  2672. }
  2673.  
  2674. enum turokWaterLevelType_e
  2675. {
  2676.     WLT_INVALID = 0,
  2677.     WLT_OVER = 1,
  2678.     WLT_BETWEEN = 2,
  2679.     WLT_UNDER = 3
  2680. }
  2681.  
  2682. enum turokObjectFlag_e
  2683. {
  2684.     NONE = 0,
  2685.     ON_GROUND = 1,
  2686.     ON_WATER_SURFACE = 2,
  2687.     UNDERWATER = 4,
  2688.     ON_SHALLOW_WATER = 8,
  2689.     ON_CLIMB_SURFACE = 16,
  2690.     HIDDEN = 32,
  2691.     INACTIVE = 64,
  2692.     USE_COLLISION = 128,
  2693.     INFLICTED_DAMAGE = 256,
  2694.     ON_CRAWL_REGION = 512,
  2695.     ON_CRAWL_EXIT_REGION = 1024,
  2696.     ON_ANTI_GRAVITY_REGION = 2048,
  2697.     ALLOW_PICKUP = 4096,
  2698.     CAN_ENTER_WATER = 8192,
  2699.     CAN_EXIT_WATER = 16384,
  2700.     ON_DEATH_REGION = 32768
  2701. }
  2702.  
  2703. enum turokResourcePrtFlags1_e
  2704. {
  2705.     NONE = 0,
  2706.     FADEOUT = 1,
  2707.     RANDOMSTARTFRAME = 2,
  2708.     USERSCALE = 4,
  2709.     ALIGNONBOTTOM = 8,
  2710.     RETAINVELOCITY = 16,
  2711.     ADDSOURCEVELOCITY = 32,
  2712.     CANNOTHITSOURCE = 64,
  2713.     CREATEONCE = 128,
  2714.     MIRRORWIDTH = 256,
  2715.     MIRRORHEIGHT = 512,
  2716.     INTERSECTION = 1024,
  2717.     BOUNCEONLYONCE = 2048,
  2718.     SCALELINEAR = 4096,
  2719.     DRAWONBOTTOM = 8192,
  2720.     ZBUFFER = 16384,
  2721.     USESOURCEORIENTATION = 32768,
  2722.     FORWARDPROPSWOOSH = 65536,
  2723.     DIEONWATERSURFACE = 131072,
  2724.     AIMATPLAYER = 262144,
  2725.     HASLENSFLARE = 524288,
  2726.     SHADOW = 1048576,
  2727.     PLAYONLYWHENFAR = 2097152,
  2728.     PLAYONLYWHENNEAR = 4194304,
  2729.     BULLETHOLE = 8388608,
  2730.     GLOBALCOORD = 16777216,
  2731.     BLOODEFFECT = 33554432,
  2732.     IMPACTEFFECT = 67108864,
  2733.     RESTRICTAIMATPLAYER = 134217728,
  2734.     NOWALLSPAWN = 268435456,
  2735.     NOGRDSPAWN = 536870912,
  2736.     POLYGONCOLLISION = 1073741824,
  2737.     SCREENALIGNSWOOSH = -2147483648
  2738. }
  2739.  
  2740. enum turokResourcePrtFlags2_e
  2741. {
  2742.     NONE = 0,
  2743.     SINGLE_PLAYER = 1,
  2744.     MULTIPLAYER = 2,
  2745.     CAUSE_FLINCH = 4,
  2746.     UNKNOWN1 = 8,
  2747.     UNKNOWN2 = 16,
  2748.     UNKNOWN3 = 32,
  2749.     UNKNOWN4 = 64,
  2750.     UNKNOWN5 = 128,
  2751.     UNKNOWN6 = 256,
  2752.     UNKNOWN7 = 512,
  2753.     UNKNOWN8 = 1024,
  2754.     UNKNOWN9 = 2048,
  2755.     ATTACH_LOOP_SOUND = 4096,
  2756.     CAST_LIGHT_SHADOW = 8192,
  2757.     STICK_STATIC = 16384,
  2758.     CAUSE_FIRE = 32768,
  2759.     FIXED_FOV = 65536,
  2760.     CAUSE_SHOCK = 131072,
  2761.     STICK_CHAR = 262144,
  2762.     RIP_FLESH = 524288,
  2763.     STICK_PERSISTENT = 1048576,
  2764.     SAMPLE_LIGHTING = 2097152,
  2765.     STICK_NAPALM = 4194304,
  2766.     COLLISION_HEADONLY = 8388608,
  2767.     COLLISION_ALIVE_ENEMIES = 16777216,
  2768.     COLLISION_CHECK_IN_BOX = 33554432,
  2769.     AIMATPLAYER_LEAD = 67108864
  2770. }
  2771.  
  2772. enum turokParticleAlignmentType_e
  2773. {
  2774.     FXAT_INVALID = -10,
  2775.     FXAT_SURF_ROTATE = -9,
  2776.     FXAT_PLANE = -8,
  2777.     FXAT_DIR = -7,
  2778.     FXAT_BILLBOARD = -6,
  2779.     FXAT_UP = -5,
  2780.     FXAT_SCREEN = -4,
  2781.     FXAT_GROUND = -3,
  2782.     FXAT_CEILING = -2,
  2783.     FXAT_NOEDGE = -1,
  2784.     FXAT_EDGE0 = 0,
  2785.     FXAT_EDGE1 = 1,
  2786.     FXAT_EDGE2 = 2
  2787. }
  2788.  
  2789. enum turokParticleSpawnFlags_e
  2790. {
  2791.     NONE = 0,
  2792.     PERMANENT = 1,
  2793.     NOCOLLISION = 2,
  2794.     ONE_FRAME_ONLY = 4,
  2795.     NO_INBETWEENS = 8,
  2796.     STICK_CHAR = 16,
  2797.     STICK_STATIC = 32,
  2798.     NO_SOUND = 64,
  2799.     ATTACH_TO_PLAYER = 128,
  2800.     UNDERWATER = 256,
  2801.     DREW_BLOOD = 512,
  2802.     DREW_GREEN_BLOOD = 1024,
  2803.     BLOOD = 2048,
  2804.     ALTERNATE_BLOOD = 4096,
  2805.     PASSON = 64,
  2806.     NO_IMPACT_DESTROY_ONE_FRAME = 8192,
  2807.     CHILD_PARTICLE = 16384,
  2808.     NO_OBJECT_EVENTS = 32768
  2809. }
  2810.  
  2811. enum turokPathMode_e
  2812. {
  2813.     PATH_MODE_NONE = 0,
  2814.     PATH_MODE_FORWARD = 1,
  2815.     PATH_MODE_FORWARD_USE_PATHFIND = 2,
  2816.     PATH_MODE_REVERSE = 3,
  2817.     PATH_MODE_REVERSE_USE_PATHFIND = 4
  2818. }
  2819.  
  2820. enum turokCollideBehaviorType_e
  2821. {
  2822.     COLLIDE_BEHAVIOR_IGNORE = 0,
  2823.     COLLIDE_BEHAVIOR_SLIDE = 1,
  2824.     COLLIDE_BEHAVIOR_REDIRECT = 2,
  2825.     COLLIDE_BEHAVIOR_GREASE = 3,
  2826.     COLLIDE_BEHAVIOR_BOUNCE = 4,
  2827.     COLLIDE_BEHAVIOR_STICK = 5
  2828. }
  2829.  
  2830. enum turokCollisionSweepFlag_e
  2831. {
  2832.     NONE = 0,
  2833.     NO_OBJECT_COLLISION = 1,
  2834.     COLLIDE_JOINTS = 2,
  2835.     STEP_UP = 4,
  2836.     BACK_CULL_EJECTION = 8,
  2837.     IGNORE_BLOCKERS = 16,
  2838.     IGNORE_AI_BLOCKERS = 32,
  2839.     IGNORE_PLATFORMS = 64,
  2840.     IGNORE_FLOORS = 128,
  2841.     IGNORE_WALLS = 256,
  2842.     NO_COLLIDE_EDGES = 512,
  2843.     FILTER_INTELLIGENCE = 1024,
  2844.     EXPAND_JOINT_COLLISION = 2048,
  2845.     FAST_BOUND_INTERSECTIONS = 4096,
  2846.     NO_QUERY_FACE_SORTING = 8192,
  2847.     HEADONLY_COLLISION = 16384,
  2848.     COLLISION_ALIVE_ENEMIES = 32768,
  2849.     COLLISION_CHECK_IN_BOX = 65536,
  2850.     IGNORE_PICKUPS = 131072
  2851. }
  2852.  
  2853. enum turokSlideMoveBehavior_e
  2854. {
  2855.     NONE = 0,
  2856.     STEP_UP = 1,
  2857.     TRACK_GROUND = 2,
  2858.     CAN_CLIMB = 4,
  2859.     NO_COLLISION = 8,
  2860.     ITERATE_ONCE = 16,
  2861.     NO_OBJECT_COLLISION = 32,
  2862.     COLLIDE_JOINTS = 64,
  2863.     IGNORE_BLOCKERS = 128,
  2864.     IGNORE_AI_BLOCKERS = 256,
  2865.     ADD_CURRENTS = 512,
  2866.     IGNORE_PLATFORMS = 1024,
  2867.     BACK_CULL_EJECTION = 2048,
  2868.     NO_COLLIDE_EDGES = 4096,
  2869.     EXPAND_JOINT_COLLISION = 8192,
  2870.     HEADONLY_COLLISION = 16384,
  2871.     COLLISION_ALIVE_ENEMIES = 32768,
  2872.     COLLISION_CHECK_IN_BOX = 65536
  2873. }
  2874.  
  2875. enum turokPlayerFlags_e
  2876. {
  2877.     PF_NONE = 0,
  2878.     PF_GOD = 1,
  2879.     PF_FLOATCAM = 2,
  2880.     PF_JUST_WARPED = 4,
  2881.     PF_CROUCH_TOGGLED = 8,
  2882.     PF_CROUCHED = 16,
  2883.     PF_RESET_SPRING = 32,
  2884.     PF_ISSCARY = 64,
  2885.     PF_NO_TARGET = 128,
  2886.     PF_NV_GOGGLES = 256,
  2887.     PF_VAMPIRING = 512,
  2888.     PF_INDEATHFALL = 1024
  2889. }
  2890.  
  2891. enum turokPlayerState_e
  2892. {
  2893.     PS_IDLE = 0,
  2894.     PS_RUN = 1,
  2895.     PS_JUMP_UP = 2,
  2896.     PS_JUMPING = 3,
  2897.     PS_SIDE_SETUP_UP = 4,
  2898.     PS_SIDE_STEPPING = 5,
  2899.     PS_IDLE_ON_WATER = 6,
  2900.     PS_SWIM_ON_WATER = 7,
  2901.     PS_IDLE_UNDERWATER = 8,
  2902.     PS_SWIM_UNDERWATER = 9,
  2903.     PS_CLIMB = 10,
  2904.     PS_DEATH = 11,
  2905.     PS_NOCLIP = 12,
  2906.     PS_FLY = 13,
  2907.     PS_CBORED = 14,
  2908.     PS_CAMERAVIEW = 15,
  2909.     PS_ANTIGRAVITY_IDLE = 16,
  2910.     PS_ANTIGRAVITY_MOVE = 17,
  2911.     PS_USER_STATE_1 = 18,
  2912.     PS_USER_STATE_2 = 19,
  2913.     PS_USER_STATE_3 = 20,
  2914.     PS_USER_STATE_4 = 21,
  2915.     PS_USER_STATE_5 = 22,
  2916.     PS_USER_STATE_6 = 23,
  2917.     PS_USER_STATE_7 = 24,
  2918.     PS_USER_STATE_8 = 25,
  2919.     PS_USER_STATE_9 = 26,
  2920.     PS_USER_STATE_10 = 27,
  2921.     PS_USER_STATE_11 = 28,
  2922.     PS_USER_STATE_12 = 29,
  2923.     PS_USER_STATE_13 = 30,
  2924.     PS_USER_STATE_14 = 31,
  2925.     PS_USER_STATE_15 = 32,
  2926.     PS_USER_STATE_16 = 33,
  2927.     NUMPLAYERSTATES = 34
  2928. }
  2929.  
  2930. enum turokInputActions_e
  2931. {
  2932.     IA_INVALID = -1,
  2933.     IA_ATTACK = 0,
  2934.     IA_JUMP = 1,
  2935.     IA_FORWARD = 2,
  2936.     IA_BACKWARD = 3,
  2937.     IA_STRAFELEFT = 4,
  2938.     IA_STRAFERIGHT = 5,
  2939.     IA_WEAPNEXT = 6,
  2940.     IA_WEAPPREV = 7,
  2941.     IA_CROUCH = 8,
  2942.     IA_TOGGLE_SCOPE = 9,
  2943.     IA_TOGGLE_NV_GOGGLES = 10,
  2944.     NUMINPUTACTIONS = 11
  2945. }
  2946.  
  2947. enum turokButtonCmd_e
  2948. {
  2949.     BC_NONE = 0,
  2950.     BC_ATTACK = 1,
  2951.     BC_JUMP = 2,
  2952.     BC_FORWARD = 4,
  2953.     BC_BACKWARD = 8,
  2954.     BC_STRAFELEFT = 16,
  2955.     BC_STRAFERIGHT = 32,
  2956.     BC_WEAPONRIGHT = 64,
  2957.     BC_WEAPONLEFT = 128,
  2958.     BC_CROUCH = 256,
  2959.     BC_TOGGLE_SCOPE = 512,
  2960.     BC_TOGGLE_NV_GOGGLES = 1024
  2961. }
  2962.  
  2963. enum turokResourceRegionAttributes1_e
  2964. {
  2965.     NONE = 0,
  2966.     WATER = 1,
  2967.     BLOCK = 2,
  2968.     OPENED = 4,
  2969.     CLIFF = 8,
  2970.     CLIMB = 16,
  2971.     ONESIDED = 32,
  2972.     CEILING = 64,
  2973.     CRAWL = 128,
  2974.     EXITCRAWL = 256,
  2975.     COUNTDOWN = 512,
  2976.     ENTERED = 1024,
  2977.     LEAPOFFAITH = 2048,
  2978.     RESTRICTED = 4096,
  2979.     SLOPETEST = 8192,
  2980.     DEATHPIT = 16384,
  2981.     MAPPED = 32768,
  2982.     TREMOR = 65536,
  2983.     WHISPERS = 131072,
  2984.     TELEPORT = 262144,
  2985.     DAMAGE = 524288,
  2986.     DRAWSKY = 1048576,
  2987.     COUNTDOWN_MESSAGE = 2097152,
  2988.     LAVA = 4194304,
  2989.     MOVE_CEILING = 8388608,
  2990.     ANTIGRAVITY = 16777216,
  2991.     LADDER = 33554432,
  2992.     CHECKPOINT = 67108864,
  2993.     SECRET = 134217728,
  2994.     COMPLETE_COUNTDOWN = 268435456,
  2995.     SHALLOWWATER = 536870912,
  2996.     DRAWSUN = 1073741824
  2997. }
  2998.  
  2999. enum turokResourceRegionAttributes2_e
  3000. {
  3001.     NONE = 0,
  3002.     NO_TRIGGER_ON_SPAWN = 1,
  3003.     UPDATEOBJECTIVES = 2,
  3004.     CAVE = 4,
  3005.     CAVERN = 8,
  3006.     FALLING = 16,
  3007.     COMPLETEOBJECTIVES = 32,
  3008.     QUICKSAND = 64,
  3009.     SWAMP = 128,
  3010.     CURRENT = 256,
  3011.     CURRENT_SWIRL_CW = 512,
  3012.     CURRENT_SWIRL_CCW = 1024,
  3013.     CAMERAAPPLYINAIR = 2048,
  3014.     JUMPPAD = 4096,
  3015.     ORIENTCAMERA = 8192,
  3016.     ALLOW_PLAYER_CTRL = 16384,
  3017.     STAYINCURRENT = 32768
  3018. }
  3019.  
  3020. enum turokResourceRegionAttributes3_e
  3021. {
  3022.     NONE = 0,
  3023.     PLAY_COUNTDOWN_CINEMA = 1,
  3024.     PLAYER_BLOCK = 2,
  3025.     NO_DAMAGE_AI = 4,
  3026.     DISMOUNT_AREA = 8,
  3027.     PLAY_SUCCESS_CINEMA = 16,
  3028.     LEASH_WEATHER = 32,
  3029.     UNLEASH_WEATHER = 64,
  3030.     PLAY_TIMED_OUT_CINEMA = 128,
  3031.     TRIGGER_CHARACTER_ONLY = 256
  3032. }
  3033.  
  3034. enum turokRenderMeshFlags_e
  3035. {
  3036.     NONE = 0,
  3037.     RENDER_AS_WEAPON = 1,
  3038.     CLOAKED = 2,
  3039.     HEADTRACK = 4,
  3040.     TINYMODE = 8,
  3041.     WAGGLE = 16,
  3042.     SHOCKED = 32,
  3043.     STICKMODE = 64,
  3044.     NOEXPANDJOINTS = 128,
  3045.     CAN_FLINCH = 256,
  3046.     RUNTIME_LIT = 512,
  3047.     HIDE_HEAD = 1024,
  3048.     HIDE_BODY = 2048,
  3049.     HIDE_LARM = 4096,
  3050.     HIDE_RARM = 8192,
  3051.     HIDE_LLEG = 16384,
  3052.     HIDE_RLEG = 32768,
  3053.     ALLOW_BLOWN_OFF_PARTS = 65536,
  3054.     LEACHED = 131072,
  3055.     HAS_ALT_TEXTURES_PER_SECTION = 262144,
  3056.     NO_PRECISE_BOUNDS = 524288,
  3057.     HAS_ATTACHED_PARTICLES = 1048576,
  3058.     NO_OCCLUSION = 2097152
  3059. }
  3060.  
  3061. enum turokSoundFxPauseMode_e
  3062. {
  3063.     NONE = 0,
  3064.     WINDOW_UNFOCUSED = 1,
  3065.     MENU = 2
  3066. }
  3067.  
  3068. enum turokWeaponFlags_e
  3069. {
  3070.     NONE = 0,
  3071.     ALLOWUNDERWATER = 1,
  3072.     ALLOWLAND = 2,
  3073.     ALLOWMULTIPLAYER = 4,
  3074.     CHARGETYPE = 8,
  3075.     LOCKCONTROLS = 16,
  3076.     HASSCOPE = 32,
  3077.     SCOPEACTIVE = 64,
  3078.     CANSEVER = 128,
  3079.     NOGIVECHEAT = 256,
  3080.     JUSTFIREDPROJECTILE = 512,
  3081.     SKIP_MODE_UPDATE = 1024,
  3082.     PROJECTILE_ACTIVE = 2048,
  3083.     NOWEAPONCHANGE_ONCOSUMEALLAMMO = 4096
  3084. }
  3085.  
  3086. enum turokWeaponMode_e
  3087. {
  3088.     MODE_WEAPON_IDLE = 0,
  3089.     MODE_WEAPON_BOB_IDLE = 1,
  3090.     MODE_WEAPON_RAISE = 2,
  3091.     MODE_WEAPON_LOWER = 3,
  3092.     MODE_WEAPON_FIRE = 4,
  3093.     MODE_WEAPON_CHARGE = 5,
  3094.     MODE_WEAPON_HOLSTER = 6,
  3095.     MODE_WEAPON_DISCHARGE = 7,
  3096.     NUM_WEAPON_MODES = 8
  3097. }
  3098.  
  3099. enum turokResourceLinkCauses_e
  3100. {
  3101.     NONE = 0,
  3102.     REGION_PLAYER_ENTERING = 1,
  3103.     REGION_PLAYER_EXIT = 2,
  3104.     REGION_PLAYER_WALL = 4,
  3105.     REGION_PLAYER_WALL_BULLET = 8,
  3106.     REGION_PLAYER_WALL_ARROW = 16,
  3107.     REGION_PLAYER_WALL_EXP = 32,
  3108.     REGION_ACTOR_ENTER = 64,
  3109.     REGION_ACTOR_EXIT = 128,
  3110.     REGION_ACTOR_WALL_NORMAL = 256,
  3111.     REGION_ACTOR_WALL_EXP = 512,
  3112.     REGION_PLAYER_TOUCH = 1024,
  3113.     REGION_NEEDS_EYE_OF_TRUTH = 2048,
  3114.     REGION_NEEDS_WHISPERS = 4096,
  3115.     REGION_PLAYER_NEEDS_TO_BE_IT_FRAG_TAG = 8192,
  3116.     ACTOR_ON_DEATH = 1,
  3117.     ACTOR_PLAYER_ON_COLLIDE = 2,
  3118.     ACTOR_PLAYER_ON_SHOT_BULLET = 4,
  3119.     ACTOR_PLAYER_ON_SHOT_ARROW = 8,
  3120.     ACTOR_PLAYER_ON_SHOT_EXP = 16,
  3121.     ACTOR_ACTOR_ON_COLLIDE = 32,
  3122.     ACTOR_ACTOR_ON_SHOT_BULLET = 64,
  3123.     ACTOR_ACTOR_ON_SHOT_ARROW = 128,
  3124.     ACTOR_ACTOR_ON_SHOT_EXP = 256,
  3125.     ACTOR_DOOR_OPEN = 16384,
  3126.     ACTOR_DOOR_CLOSE = 32768,
  3127.     ACTOR_PLATFORM_TRIGGER = 65536,
  3128.     ACTOR_PLATFORM_RETURN = 131072,
  3129.     ACTOR_DESTRUCTIBLE_TRIGGER = 262144,
  3130.     ACTOR_ACTION_TRIGGER = 524288,
  3131.     ACTOR_DESTRUCTIBLE_IDLE = 1048576,
  3132.     ACTOR_ACTION_IDLE = 2097152,
  3133.     ACTOR_PLAYER_NEEDS_TO_BE_IT_FRAG_TAG = 4194304,
  3134.     ACTOR_DAMAGED = 8388608,
  3135.     ACTOR_UNKNOWN1 = 16777216,
  3136.     ACTOR_SEES_TARGET = 33554432,
  3137.     REGION_MASK = -2147483648,
  3138.     REGION_PLAYER_MASK = 1087,
  3139.     REGION_ACTOR_MASK = 960,
  3140.     SHOT_PLAYER_MASK = 28,
  3141.     SHOT_ACTOR_MASK = 448,
  3142.     ON_MASK = 868352,
  3143.     OFF_MASK = 3309568,
  3144.     INSTANCE_BITS = 62898687
  3145. }
  3146.  
  3147. enum turokResourceEventLinkFlags_e
  3148. {
  3149.     NONE = 0,
  3150.     REPEAT = 1,
  3151.     DELAY = 2,
  3152.     TRIGGER_BY_TAG = 4,
  3153.     TRIGGERED = 16,
  3154.     PRE_TRIGGERED = 32,
  3155.     ABOUT_TO_TRIGGER = 64,
  3156.     GROUP_PART_CAN_BE_TRIGGERED = 128
  3157. }
  3158.  
  3159. enum turokResourceObjectFlags_e
  3160. {
  3161.     NONE = 0,
  3162.     DEVICE = 1,
  3163.     AUTO_DEVICE = 2,
  3164.     TRANSPARENCY = 4,
  3165.     USE_STATIC_LIGHTING = 8,
  3166.     RUNTIME_LIT = 16,
  3167.     NO_FRUSTUM_CULL = 32,
  3168.     VERTICAL_ROOT_MOTION = 64,
  3169.     NO_DRAW = 128
  3170. }
  3171.  
  3172. enum turokPathPointFlags_e
  3173. {
  3174.     NONE = 0,
  3175.     STOP = 1,
  3176.     INCREMENTAL = 2,
  3177.     ROTATE_X = 4,
  3178.     ROTATE_Z = 8,
  3179.     ROTATE_Y = 16,
  3180.     LINEAR_X = 32,
  3181.     LINEAR_Z = 64,
  3182.     LINEAR_Y = 128,
  3183.     INTERPOLATE_TO_POS = 256,
  3184.     ENEMY_USE_DISTANCE = 512
  3185. }
  3186.  
  3187. enum turokPathType_e
  3188. {
  3189.     PATH_TYPE_PING_PONG = 0,
  3190.     PATH_TYPE_LOOPING = 1
  3191. }
  3192.  
  3193.  
  3194.  
Advertisement