201 lines
6.2 KiB
XML
Executable File
201 lines
6.2 KiB
XML
Executable File
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Name: turret_cam_public.sch //
|
|
// Description: Enums, structs, consts, and look-up tables for the turret_cam system. //
|
|
// //
|
|
// Written by: Online Technical Team: Orlando C-H //
|
|
// Date: 12/09/2018 //
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
USING "types.sch"
|
|
USING "weapon_enums.sch"
|
|
USING "MP_globals_script_timers.sch"
|
|
USING "commands_pad.sch"
|
|
USING "commands_shapetest.sch"
|
|
USING "turret_cam_public_def.sch"
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
USING "commands_debug.sch"
|
|
#ENDIF
|
|
|
|
/// PURPOSE: Resource names required for a turret cam.
|
|
/// These should derived from config settings and
|
|
/// be set during CONFIG_LOAD.
|
|
STRUCT TURRET_CAM_RESOURCE_NAMES
|
|
STRING sStreamedHudTex
|
|
STRING sHudScaleformName
|
|
ENDSTRUCT
|
|
|
|
/// PURPOSE: Audio required for normal HUD implementations.
|
|
/// Derived from TURRET_CAM_HUD_SOUNDS config.
|
|
STRUCT TURRET_CAM_AUDIO_HUD
|
|
STRING sAudioBank
|
|
STRING sHudAudioScene
|
|
STRING sHudSoundSet
|
|
|
|
STRING sPan
|
|
STRING sZoom
|
|
STRING sBackground
|
|
|
|
STRING sTakeDamage
|
|
STRING sLowHealthLoop
|
|
|
|
INT iPanId
|
|
INT iZoomId
|
|
INT iBackgroundId
|
|
|
|
INT iTakeDamageId
|
|
INT iLowHealthLoopId
|
|
ENDSTRUCT
|
|
|
|
/// PURPOSE: Audio required for normal weapon implementations.
|
|
/// Derived from TURRET_CAM_WEAPON_SOUNDS config.
|
|
STRUCT TURRET_CAM_AUDIO_WEAPON
|
|
STRING sWeaponSoundSet
|
|
STRING sFire
|
|
INT iFireId
|
|
ENDSTRUCT
|
|
|
|
/// PURPOSE: Audio required for turret cam.
|
|
/// Derived from config settings.
|
|
STRUCT TURRET_CAM_AUDIO_STRUCT
|
|
TURRET_CAM_AUDIO_HUD hud
|
|
TURRET_CAM_AUDIO_WEAPON weapon
|
|
ENDSTRUCT
|
|
|
|
/// PURPOSE: Used to store turret local config, args, and config derived data/resource handles.
|
|
STRUCT TURRET_SETTINGS
|
|
TURRET_CAM_CONFIG cfg
|
|
|
|
// Resource names (derived from config)
|
|
TURRET_CAM_RESOURCE_NAMES res
|
|
|
|
// Placement data
|
|
VECTOR vTurretCoords
|
|
VECTOR vTurretRotation
|
|
|
|
// Parenting
|
|
TURRET_CAM_ATTACH_TYPE eAttachType
|
|
ENTITY_INDEX entParent
|
|
ENDSTRUCT
|
|
|
|
/// PURPOSE: Turret cam internal state enum
|
|
ENUM TURRET_CAM_STATE
|
|
TCS_LOAD,
|
|
TCS_UPDATE,
|
|
|
|
TCS_COUNT
|
|
ENDENUM
|
|
|
|
|
|
/// PURPOSE: Lock-on missile consts (could be config settings in future if required)
|
|
CONST_FLOAT cf_TARGET_ACQUISITION_RANGE_2 0.005 // Screen space radius ^2 from centre after which potential targets are ignored.
|
|
CONST_FLOAT cf_TARGET_VALIDITY_RANGE_2 0.04 // Screen space radius ^2 from centre after which an aquired target is lost.
|
|
CONST_INT ci_TARGET_ACQUISITION_TIME_MS 2000 // Time (ms) after LOS confirmation before lockon is "complete".
|
|
|
|
/// PURPOSE: PFX impact scale while in turret
|
|
CONST_FLOAT cf_TURRET_CAM_FULL_AUTO_IMPACT_SCALE 1.5
|
|
|
|
STRUCT HOMING_MISSILE_DATA
|
|
ENTITY_INDEX entShapetestHit // Entity we have clear LOS to.
|
|
SHAPETEST_INDEX shapetestId // Id of ongoing LOS shapetest (0 = no test).
|
|
SCRIPT_TIMER targetLockedTimer // This restarts when target is found and in LOS.
|
|
ENTITY_INDEX entTargetAttempt // Check this entity for LOS.
|
|
INT iAcquiringSoundId = -1
|
|
INT iLockedSoundId = -1
|
|
ENDSTRUCT
|
|
|
|
STRUCT PILOTED_MISSILE_DATA
|
|
BOOL bDoingMissileTransition // Doing transition to missile cam?
|
|
BOOL bRequestedMissileStart // Have we asked the missile script to start?
|
|
VECTOR vStartCoord // Coord to fire missile from
|
|
BOOL bLaunchedDroneScriptFromHere // Did we launch the drone script from this script?
|
|
ENDSTRUCT
|
|
|
|
STRUCT FULL_AUTO_DATA
|
|
SCRIPT_TIMER reloadTimer // duration of a reload
|
|
INT iAmmoTime // how long player has been shooting for
|
|
ENDSTRUCT
|
|
|
|
/// PURPOSE: Used for TURRET_CAM_LOCAL_DATA.iBsLocal
|
|
CONST_INT ci_TURRET_CAM_LOCAL_BS_LOAD_SCENE 0
|
|
CONST_INT ci_TURRET_CAM_LOCAL_BS_HIDE_HUD_THIS_FRAME 1
|
|
CONST_INT ci_TURRET_CAM_LOCAL_BS_FREEZE_CAM_THIS_FRAME 2
|
|
CONST_INT ci_TURRET_CAM_LCOAL_BS_SUPPRESS_HELP_THIS_FRAME 3
|
|
CONST_INT ci_TURRET_CAM_LOCAL_BS_DISABLED_PIM 4 // Did this script disable the interaction menu?
|
|
CONST_INT ci_TURRET_CAM_LOCAL_BS_LOADED_PC_CONTROLS 5 // Loaded PC input map?
|
|
CONST_INT ci_TURRET_CAM_LOCAL_BS_SUPPRESS_PC_CONTROLS_THIS_FRAME 6 // Forcing input map to be disabled?
|
|
CONST_INT ci_TURRET_CAM_LOCAL_BS_SUPPRESS_TIMECYCLE_RESET_THIS_FRAME 7 // Don't reload the timecycle modifier even if there's a mismatch
|
|
|
|
STRUCT TURRET_CAM_TRANSFORM_DATA
|
|
// Neither of these are updated if the attachement type is
|
|
// TCAT_NONE so you can safely use these values in all calculations
|
|
// without checking for parent...
|
|
VECTOR vParentWorldCoords // Cached parent world coords
|
|
VECTOR vParentWorldRot // Cached parent world rotation
|
|
|
|
VECTOR vCamWorldCoords
|
|
VECTOR vCamWorldRot
|
|
ENDSTRUCT
|
|
|
|
STRUCT TURRET_CAM_LOCAL_DATA
|
|
// Camera
|
|
CAMERA_INDEX turretCam
|
|
VECTOR vRelativeRotation // Relative offset to m_settings.vTurretRotation
|
|
|
|
TURRET_CAM_TRANSFORM_DATA transformData
|
|
|
|
// General
|
|
TURRET_CAM_STATE eState
|
|
|
|
// Weapon
|
|
SCRIPT_TIMER lastShotTime
|
|
FULL_AUTO_DATA fullAuto
|
|
HOMING_MISSILE_DATA homingMissile
|
|
PILOTED_MISSILE_DATA pilotedMissile
|
|
|
|
// Rendering
|
|
BOOL bHaveSetInstButtons
|
|
SCALEFORM_INDEX hudScaleformId
|
|
BOOL bHaveSetArenaHudWeaponType = FALSE // Arena Hud specific check
|
|
|
|
// Minimap
|
|
BLIP_INDEX blipForeground
|
|
BLIP_INDEX blipBackground
|
|
|
|
TURRET_CAM_AUDIO_STRUCT audio
|
|
|
|
INT iTimecycleModId = -1
|
|
BOOL bPopTimecycle = FALSE
|
|
|
|
// Loading
|
|
SCRIPT_TIMER loadSceneTimer
|
|
|
|
// Uses ci_TURRET_CAM_LOCAL_BS_
|
|
INT iBsLocal
|
|
|
|
TURRET_CAM_DAMAGE_ACCUMULATOR damageTaken
|
|
ENDSTRUCT
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
STRUCT ARENA_TURRET_DEBUG_DATA
|
|
BOOL bCreatedWidgets
|
|
INT iState
|
|
BOOL bDrawFiringLines = FALSE
|
|
VECTOR vFireStart
|
|
VECTOR vFireEndPoint
|
|
|
|
TEXT_WIDGET_ID tw_hudAudioBank
|
|
TEXT_WIDGET_ID tw_hudSoundSet
|
|
TEXT_WIDGET_ID tw_hudAudioScene
|
|
TEXT_WIDGET_ID tw_hudAudioZoom
|
|
TEXT_WIDGET_ID tw_hudAudioPan
|
|
TEXT_WIDGET_ID tw_hudAudioBackground
|
|
TEXT_WIDGET_ID tw_weaponAudioSoundSet
|
|
TEXT_WIDGET_ID tw_weaponAudioFire
|
|
|
|
INT iHomingMissileTargetEnt
|
|
INT iHomingMissileShapetestEnt
|
|
INT iHomingMissileShapetestId
|
|
ENDSTRUCT
|
|
#ENDIF // IS_DEBUG_BUILD
|