480 lines
13 KiB
Scheme
Executable File
480 lines
13 KiB
Scheme
Executable File
USING "commands_misc.sch"
|
|
USING "commands_script.sch"
|
|
USING "commands_audio.sch"
|
|
USING "globals.sch"
|
|
USING "flow_mission_data_public.sch"
|
|
|
|
ENUM TV_CHANNEL_PLAYLIST
|
|
TV_PLAYLIST_NONE=0,
|
|
|
|
TV_PLAYLIST_STD_CNT,
|
|
TV_PLAYLIST_STD_WEAZEL,
|
|
|
|
TV_PLAYLIST_LO_CNT,
|
|
TV_PLAYLIST_LO_WEAZEL,
|
|
|
|
TV_PLAYLIST_LO_RIGHTEOUS_SLAUGHTER,
|
|
TV_PLAYLIST_LO_RIGHTEOUS_SLAUGHTER_CUTSCENE,
|
|
|
|
TV_PLAYLIST_SPECIAL_WORKOUT,
|
|
TV_PLAYLIST_SPECIAL_INVADER,
|
|
TV_PLAYLIST_SPECIAL_INVADER_EXP,
|
|
TV_PLAYLIST_SPECIAL_PLSH1_INTRO,
|
|
TV_PLAYLIST_SPECIAL_LEST1_INTRO_FAME_OR_SHAME,
|
|
TV_PLAYLIST_STD_WEAZEL_FOS_EP2,
|
|
|
|
TV_PLAYLIST_SPECIAL_MP_WEAZEL,
|
|
TV_PLAYLIST_SPECIAL_MP_CCTV,
|
|
|
|
TV_PLAYLIST_END
|
|
ENDENUM
|
|
|
|
BOOL bBlockTVChannelControl, bBlockTVVolumeControl
|
|
INT iTVControlTimer
|
|
BOOL bAllowTVSoundFX = TRUE
|
|
|
|
FUNC STRING GET_XML_PLAYLIST_FOR_TV_PLAYLIST(TV_CHANNEL_PLAYLIST tvPlaylist)
|
|
STRING sReturn
|
|
SWITCH tvPlaylist
|
|
CASE TV_PLAYLIST_STD_CNT
|
|
sReturn = "PL_STD_CNT"
|
|
BREAK
|
|
CASE TV_PLAYLIST_STD_WEAZEL
|
|
sReturn = "PL_STD_WZL"
|
|
BREAK
|
|
CASE TV_PLAYLIST_LO_CNT
|
|
sReturn = "PL_LO_CNT"
|
|
BREAK
|
|
|
|
CASE TV_PLAYLIST_LO_WEAZEL
|
|
sReturn = "PL_LO_WZL"
|
|
BREAK
|
|
|
|
CASE TV_PLAYLIST_SPECIAL_WORKOUT
|
|
sReturn = "PL_SP_WORKOUT"
|
|
BREAK
|
|
CASE TV_PLAYLIST_SPECIAL_INVADER
|
|
sReturn = "PL_SP_INV"
|
|
BREAK
|
|
CASE TV_PLAYLIST_SPECIAL_INVADER_EXP
|
|
sReturn = "PL_SP_INV_EXP"
|
|
BREAK
|
|
CASE TV_PLAYLIST_LO_RIGHTEOUS_SLAUGHTER
|
|
sReturn = "PL_LO_RS"
|
|
BREAK
|
|
|
|
CASE TV_PLAYLIST_LO_RIGHTEOUS_SLAUGHTER_CUTSCENE
|
|
sReturn = "PL_LO_RS_CUTSCENE"
|
|
BREAK
|
|
|
|
CASE TV_PLAYLIST_SPECIAL_PLSH1_INTRO
|
|
sReturn = "PL_SP_PLSH1_INTRO"
|
|
BREAK
|
|
|
|
CASE TV_PLAYLIST_SPECIAL_LEST1_INTRO_FAME_OR_SHAME
|
|
sReturn = "PL_LES1_FAME_OR_SHAME"
|
|
BREAK
|
|
|
|
CASE TV_PLAYLIST_STD_WEAZEL_FOS_EP2
|
|
sReturn = "PL_STD_WZL_FOS_EP2"
|
|
BREAK
|
|
|
|
CASE TV_PLAYLIST_SPECIAL_MP_WEAZEL
|
|
sReturn = "PL_MP_WEAZEL"
|
|
BREAK
|
|
|
|
CASE TV_PLAYLIST_SPECIAL_MP_CCTV
|
|
sReturn = "PL_MP_CCTV"
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
PRINTLN("<", GET_THIS_SCRIPT_NAME(), "> GET_XML_PLAYLIST_FOR_TV_PLAYLIST() - PLAYLIST STRING = ", sReturn)
|
|
|
|
RETURN sReturn
|
|
ENDFUNC
|
|
|
|
FUNC INT SETUP_CUSTOM_TV_SCREEN( OBJECT_INDEX objectTV )
|
|
|
|
INT iRenderTarget
|
|
|
|
IF NOT IS_NAMED_RENDERTARGET_REGISTERED("tvscreen")
|
|
REGISTER_NAMED_RENDERTARGET("tvscreen")
|
|
LINK_NAMED_RENDERTARGET(GET_ENTITY_MODEL(objectTV))
|
|
IF NOT IS_NAMED_RENDERTARGET_LINKED(GET_ENTITY_MODEL(objectTV))
|
|
RELEASE_NAMED_RENDERTARGET("tvscreen")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
iRenderTarget = GET_NAMED_RENDERTARGET_RENDER_ID("tvscreen")
|
|
SET_TEXT_RENDER_ID(iRenderTarget)
|
|
|
|
RETURN iRenderTarget
|
|
|
|
ENDFUNC
|
|
|
|
PROC DRAW_TO_CUSTOM_TV_SCREEN( OBJECT_INDEX objectTV, INT iRenderTarget )
|
|
|
|
SET_TEXT_RENDER_ID(iRenderTarget)
|
|
DRAW_TV_CHANNEL(0.5,0.5,1.0,1.0,0.0,255,255,255,255)
|
|
|
|
IF GET_TV_CHANNEL() <> TVCHANNELTYPE_CHANNEL_NONE
|
|
ATTACH_TV_AUDIO_TO_ENTITY(objectTV)
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
|
|
PROC CLEANUP_CUSTOM_TV_SCREEN( OBJECT_INDEX objectTV, INT iRenderTarget )
|
|
|
|
IF NOT (iRenderTarget = -1)
|
|
SET_TEXT_RENDER_ID(iRenderTarget)
|
|
|
|
IF DOES_ENTITY_EXIST(objectTV)
|
|
|
|
IF GET_ENTITY_MODEL(objectTV) = V_ILEV_MM_SCREEN2
|
|
|
|
DRAW_RECT(0.5, 0.5, 1.0, 1.0, 255, 255, 255, 255) // Clears the projector render target to white.
|
|
|
|
IF IS_NAMED_RENDERTARGET_REGISTERED("big_disp")
|
|
RELEASE_NAMED_RENDERTARGET("big_disp")
|
|
ENDIF
|
|
|
|
ELSE
|
|
IF GET_ENTITY_MODEL(objectTV) = V_ILEV_MM_SCRE_OFF
|
|
//DRAW_RECT(0.5, 0.5, 1.0, 1.0, 255, 255, 255, 255) // Clears the projector render target to white.
|
|
ELSE
|
|
DRAW_RECT(0.5, 0.5, 1.0, 1.0, 0, 0, 0, 255) // Clears the render target to black.
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_NAMED_RENDERTARGET_REGISTERED("tvscreen")
|
|
RELEASE_NAMED_RENDERTARGET("tvscreen")
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
FUNC BOOL IS_THIS_TV_AVAILABLE_FOR_USE( TV_LOCATION eTVLocation )
|
|
|
|
IF eTVLocation != TV_LOC_NONE
|
|
IF g_TVStruct[ENUM_TO_INT(eTVLocation)].bAvailableForUse
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
|
|
ENDFUNC
|
|
|
|
|
|
FUNC BOOL IS_THIS_TV_ON( TV_LOCATION eTVLocation )
|
|
|
|
IF eTVLocation != TV_LOC_NONE
|
|
IF g_TVStruct[ENUM_TO_INT(eTVLocation)].bIsTVOn
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
|
|
ENDFUNC
|
|
|
|
FUNC BOOL IS_THIS_TV_FORCED_ON(TV_LOCATION eTVLocation)
|
|
|
|
IF eTVLocation != TV_LOC_NONE
|
|
IF g_TVStruct[ENUM_TO_INT(eTVLocation)].bForceStartAmbientTV
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
|
|
ENDFUNC
|
|
|
|
PROC RESTORE_STANDARD_CHANNELS()
|
|
|
|
SET_TV_CHANNEL_PLAYLIST(TVCHANNELTYPE_CHANNEL_1, GET_XML_PLAYLIST_FOR_TV_PLAYLIST(TV_PLAYLIST_STD_CNT))
|
|
#if not USE_CLF_DLC
|
|
#if not USE_NRM_DLC
|
|
IF GET_MISSION_COMPLETE_STATE(SP_MISSION_FAMILY_6)
|
|
SET_TV_CHANNEL_PLAYLIST(TVCHANNELTYPE_CHANNEL_2, GET_XML_PLAYLIST_FOR_TV_PLAYLIST(TV_PLAYLIST_STD_WEAZEL_FOS_EP2))
|
|
ELSE
|
|
SET_TV_CHANNEL_PLAYLIST(TVCHANNELTYPE_CHANNEL_2, GET_XML_PLAYLIST_FOR_TV_PLAYLIST(TV_PLAYLIST_STD_WEAZEL))
|
|
ENDIF
|
|
#endif
|
|
#endif
|
|
|
|
PRINTLN("<", GET_THIS_SCRIPT_NAME(), "> RESTORE_STANDARD_CHANNELS() - FOS EP2")
|
|
|
|
ENDPROC
|
|
|
|
PROC PLAY_TV_CHANNEL_WITH_PLAYLIST(TV_LOCATION eTVLocation, TVCHANNELTYPE tvChannel, TV_CHANNEL_PLAYLIST tvPlaylist, BOOL bFromStart=FALSE)
|
|
|
|
IF eTVLocation != TV_LOC_NONE
|
|
|
|
IF NOT IS_THIS_TV_AVAILABLE_FOR_USE(eTVlocation)
|
|
SCRIPT_ASSERT("PLAY_TV_CHANNEL_WITH_PLAYLIST() - TV script has not initialised! Please use IS_THIS_TV_AVAILABLE_FOR_USE() before attempting TV playback. ")
|
|
EXIT
|
|
ENDIF
|
|
|
|
SET_TV_CHANNEL_PLAYLIST(tvChannel, GET_XML_PLAYLIST_FOR_TV_PLAYLIST(tvPlaylist), bFromStart)
|
|
SET_TV_CHANNEL(tvChannel)
|
|
|
|
g_TVStruct[ENUM_TO_INT(eTVLocation)].iTVChannelType = ENUM_TO_INT(tvChannel)
|
|
g_TVStruct[ENUM_TO_INT(eTVLocation)].iTVChannelPlaylist = ENUM_TO_INT(tvPlaylist)
|
|
ENDIF
|
|
PRINTLN("<", GET_THIS_SCRIPT_NAME(), "> PLAY_TV_CHANNEL_WITH_PLAYLIST() = ")
|
|
ENDPROC
|
|
|
|
PROC PLAY_TV_CHANNEL(TV_LOCATION eTVLocation, TVCHANNELTYPE tvChannel )
|
|
|
|
IF tvChannel <> TVCHANNELTYPE_CHANNEL_SCRIPT
|
|
AND tvChannel <> TVCHANNELTYPE_CHANNEL_SPECIAL
|
|
|
|
IF eTVLocation != TV_LOC_NONE
|
|
SET_TV_CHANNEL(tvChannel)
|
|
g_TVStruct[ENUM_TO_INT(eTVLocation)].iTVChannelType = ENUM_TO_INT(tvChannel)
|
|
ENDIF
|
|
ENDIF
|
|
PRINTLN("<", GET_THIS_SCRIPT_NAME(), "> PLAY_TV_CHANNEL()")
|
|
ENDPROC
|
|
|
|
PROC FORCE_STOP_TV(TV_LOCATION eTVLocation)
|
|
|
|
IF eTVlocation != TV_LOC_NONE
|
|
g_TVStruct[ENUM_TO_INT(eTVLocation)].bForceStopTV = TRUE
|
|
ENDIF
|
|
|
|
PRINTLN("<", GET_THIS_SCRIPT_NAME(), "> FORCE_STOP_TV() = ")
|
|
|
|
ENDPROC
|
|
|
|
|
|
FUNC TV_LOCATION GET_TV_ENUM_FOR_INTERIOR_ROOM( TEXT_LABEL_31 RoomName )
|
|
|
|
IF IS_STRING_NULL_OR_EMPTY(RoomName)
|
|
RETURN TV_LOC_NONE
|
|
ENDIF
|
|
|
|
IF ARE_STRINGS_EQUAL(RoomName, "V_Michael_G_Lounge")
|
|
RETURN TV_LOC_MICHAEL_PROJECTOR
|
|
ENDIF
|
|
|
|
IF ARE_STRINGS_EQUAL(RoomName, "V_Michael_1_Son" )
|
|
RETURN TV_LOC_JIMMY_BEDROOM
|
|
ENDIF
|
|
|
|
RETURN TV_LOC_NONE
|
|
|
|
ENDFUNC
|
|
|
|
PROC START_AMBIENT_TV_PLAYBACK( TV_LOCATION eTVLocation, TVCHANNELTYPE eTVChannelType = TVCHANNELTYPE_CHANNEL_1, TV_CHANNEL_PLAYLIST eTVPlaylist = TV_PLAYLIST_STD_CNT, BOOL bAllowPlayerControl = FALSE, BOOL bPlayFromBeginning = FALSE )
|
|
|
|
IF eTVLocation != TV_LOC_NONE
|
|
|
|
IF NOT IS_THIS_TV_AVAILABLE_FOR_USE(eTVlocation)
|
|
SCRIPT_ASSERT("START_AMBIENT_TV_PLAYBACK() - TV script has not initialised! Please use IS_THIS_TV_AVAILABLE_FOR_USE() before attempting to start TV playback. ")
|
|
EXIT
|
|
ENDIF
|
|
|
|
g_TVStruct[ENUM_TO_INT(eTVLocation)].bForceStartAmbientTV = TRUE
|
|
g_TVStruct[ENUM_TO_INT(eTVLocation)].iTVChannelType = ENUM_TO_INT(eTVChannelType)
|
|
g_TVStruct[ENUM_TO_INT(eTVLocation)].iTVChannelPlaylist = ENUM_TO_INT(eTVPlaylist)
|
|
g_TVStruct[ENUM_TO_INT(eTVLocation)].bStartPlaylistFromBeginning = bPlayFromBeginning
|
|
g_TVStruct[ENUM_TO_INT(eTVLocation)].bIsPlayerControlled = bAllowPlayerControl
|
|
|
|
// If the TV is already on (even if player controlled) change the channel and playlist immediately.
|
|
IF IS_THIS_TV_ON(eTVLocation)
|
|
SET_TV_CHANNEL(TVCHANNELTYPE_CHANNEL_NONE)
|
|
SET_TV_CHANNEL_PLAYLIST(eTVChannelType, GET_XML_PLAYLIST_FOR_TV_PLAYLIST(eTVPlaylist), bPlayFromBeginning)
|
|
SET_TV_CHANNEL(eTVChannelType)
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
PRINTLN("<", GET_THIS_SCRIPT_NAME(), "> START_AMBIENT_TV_PLAYBACK() - TV ID: ", ENUM_TO_INT(eTVLocation) )
|
|
g_sTVPlaybackStartedByThisScript = GET_THIS_SCRIPT_NAME()
|
|
ENDPROC
|
|
|
|
PROC STOP_AMBIENT_TV_PLAYBACK(TV_LOCATION eTVLocation)
|
|
|
|
IF eTVLocation != TV_LOC_NONE
|
|
g_TVStruct[ENUM_TO_INT(eTVLocation)].bForceStopTV = TRUE
|
|
ENDIF
|
|
PRINTLN("<", GET_THIS_SCRIPT_NAME(), "> STOP_AMBIENT_TV_PLAYBACK()")
|
|
ENDPROC
|
|
|
|
PROC STOP_TV_PLAYBACK(BOOL bRestoreStandardChannels = TRUE, TV_LOCATION eTVLocation = TV_LOC_NONE )
|
|
|
|
SET_TV_CHANNEL(TVCHANNELTYPE_CHANNEL_NONE)
|
|
IF bRestoreStandardChannels
|
|
RESTORE_STANDARD_CHANNELS()
|
|
ENDIF
|
|
|
|
IF eTVLocation != TV_LOC_NONE
|
|
g_TVStruct[ENUM_TO_INT(eTVLocation)].bForceStopTV = TRUE
|
|
ENDIF
|
|
|
|
PRINTLN("<", GET_THIS_SCRIPT_NAME(), "> STOP_TV_PLAYBACK() for TV started by ", g_sTVPlaybackStartedByThisScript)
|
|
g_sTVPlaybackStartedByThisScript = "NULL"
|
|
ENDPROC
|
|
|
|
FUNC BOOL IS_TV_SCRIPT_AVAILABLE_FOR_USE(TV_LOCATION eTVLocation)
|
|
|
|
IF eTVLocation != TV_LOC_NONE
|
|
IF g_TVStruct[ENUM_TO_INT(eTVLocation)].bAvailableForUse = TRUE
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
PROC DISABLE_TV_CONTROLS( TV_LOCATION eTVLocation, BOOL bDisable )
|
|
|
|
IF eTVLocation != TV_LOC_NONE
|
|
g_TVStruct[ENUM_TO_INT(eTVLocation)].bTVControlsDisabled = bDisable
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
FUNC BOOL IS_INPUT_ATTEMPTING_TO_CHANGE_CHANNEL(BOOL bIgnoreTimer = FALSE)
|
|
INT iDeadzone = 64
|
|
INT iAxis
|
|
iAxis = GET_CONTROL_VALUE(FRONTEND_CONTROL, INPUT_SCRIPT_LEFT_AXIS_X ) -127
|
|
IF bIgnoreTimer
|
|
OR TIMERA() > 300
|
|
//change the channels.
|
|
IF iAxis > 0+iDeadzone
|
|
OR iAxis < 0-iDeadzone
|
|
SETTIMERA(0)
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
PROC RELEASE_TV_FOR_PLAYER_CONTROL(TV_LOCATION eTVLocation)
|
|
|
|
IF eTVLocation != TV_LOC_NONE
|
|
g_TVStruct[ENUM_TO_INT(eTVLocation)].bForceStartAmbientTV = FALSE
|
|
//g_TVStruct[ENUM_TO_INT(eTVLocation)].bForceStartTV = FALSE
|
|
IF g_TVStruct[ENUM_TO_INT(eTVLocation)].bIsTVOn
|
|
AND g_TVStruct[ENUM_TO_INT(eTVLocation)].bIsPlayerControlled = FALSE
|
|
g_TVStruct[ENUM_TO_INT(eTVLocation)].bIsPlayerControlled = TRUE
|
|
ENDIF
|
|
g_TVStruct[ENUM_TO_INT(eTVLocation)].bTVControlsDisabled = FALSE
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
PROC RUN_TV_TRANSPORT_CONTROLS(BOOL bAllowChannelChange=TRUE, BOOL bAllowVolumeChange=TRUE)
|
|
INT iDeadzone = 64
|
|
INT iAxis
|
|
FLOAT fTVVolume
|
|
IF bAllowChannelChange
|
|
IF IS_INPUT_ATTEMPTING_TO_CHANGE_CHANNEL()
|
|
IF NOT bBlockTVChannelControl
|
|
|
|
|
|
IF REQUEST_AMBIENT_AUDIO_BANK( "SAFEHOUSE_MICHAEL_SIT_SOFA" )
|
|
PLAY_SOUND_FRONTEND(-1, "MICHAEL_SOFA_TV_CHANGE_CHANNEL_MASTER")
|
|
ENDIF
|
|
|
|
IF GET_TV_CHANNEL() = TVCHANNELTYPE_CHANNEL_1
|
|
SET_TV_CHANNEL(TVCHANNELTYPE_CHANNEL_2)
|
|
PRINTLN(GET_THIS_SCRIPT_NAME(), " - RUN_TV_TRANSPORT_CONTROLS - SET_TV_CHANNEL(TVCHANNELTYPE_CHANNEL_2)")
|
|
ELSE
|
|
SET_TV_CHANNEL(TVCHANNELTYPE_CHANNEL_1)
|
|
PRINTLN(GET_THIS_SCRIPT_NAME(), " - RUN_TV_TRANSPORT_CONTROLS - SET_TV_CHANNEL(TVCHANNELTYPE_CHANNEL_1)")
|
|
ENDIF
|
|
bBlockTVChannelControl = TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF bBlockTVChannelControl
|
|
bBlockTVChannelControl = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF bAllowVolumeChange
|
|
iAxis = GET_CONTROL_VALUE(FRONTEND_CONTROL,INPUT_SCRIPT_LEFT_AXIS_Y) - 127
|
|
//PRINTLN(GET_THIS_SCRIPT_NAME(), " - iAxis = ", iAxis)
|
|
// // Movie Volume in dB -24 to 0.
|
|
IF NOT bBlockTVVolumeControl
|
|
|
|
IF iAxis > 0+iDeadzone
|
|
|
|
fTVVolume = GET_TV_VOLUME()
|
|
fTVVolume = (fTVVolume - 0.5)
|
|
|
|
IF fTVVolume < -36.0
|
|
fTVVolume = -36.0
|
|
ENDIF
|
|
|
|
SET_TV_VOLUME(fTVVolume)
|
|
PRINTLN(GET_THIS_SCRIPT_NAME(), " - RUN_TV_TRANSPORT_CONTROLS - SET_TV_VOLUME = ", fTVVolume)
|
|
iTVControlTimer = GET_GAME_TIMER()
|
|
bBlockTVVolumeControl = TRUE
|
|
|
|
ENDIF
|
|
|
|
//turn movie volume down.
|
|
IF iAxis < 0-iDeadzone
|
|
fTVVolume = GET_TV_VOLUME()
|
|
|
|
fTVVolume = (fTVVolume + 0.5)
|
|
|
|
IF fTVVolume > 0.0
|
|
fTVVolume = 0.0
|
|
ENDIF
|
|
|
|
SET_TV_VOLUME(fTVVolume)
|
|
PRINTLN(GET_THIS_SCRIPT_NAME(), " - RUN_TV_TRANSPORT_CONTROLS - SET_TV_VOLUME = ", fTVVolume)
|
|
iTVControlTimer = GET_GAME_TIMER()
|
|
bBlockTVVolumeControl = TRUE
|
|
|
|
ENDIF
|
|
|
|
IF iAxis < 0+iDeadzone
|
|
AND iAxis > 0-iDeadzone
|
|
bAllowTVSoundFX = TRUE
|
|
ELSE
|
|
IF bAllowTVSoundFX
|
|
|
|
IF REQUEST_AMBIENT_AUDIO_BANK( "SAFEHOUSE_MICHAEL_SIT_SOFA" )
|
|
IF fTVVolume != -36.0 AND fTVVolume != 0
|
|
PLAY_SOUND_FRONTEND(-1, "MICHAEL_SOFA_REMOTE_CLICK_VOLUME_MASTER")
|
|
ENDIF
|
|
bAllowTVSoundFX = FALSE
|
|
ENDIF
|
|
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
ENDIF
|
|
IF bBlockTVVolumeControl
|
|
IF iAxis = 0
|
|
OR GET_GAME_TIMER() > iTVControlTimer + 24
|
|
bBlockTVVolumeControl = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
|
|
PROC SET_TV_INDESTRUCTIBLE( TV_LOCATION eTVLocation, BOOL bIsIndestructible )
|
|
|
|
PRINTLN(GET_THIS_SCRIPT_NAME(), " - SET_TV_INDESTRUCTIBLE - TV: ", eTVLocation, " Status: ", bIsIndestructible)
|
|
g_TVStruct[ENUM_TO_INT(eTVLocation)].bIsIndestructible = bIsIndestructible
|
|
|
|
ENDPROC
|
|
|