Files
gtav-src/script/dev_ng/singleplayer/include/public/fake_cellphone_public.sch
T
2025-09-29 00:52:08 +02:00

87 lines
2.9 KiB
Scheme
Executable File

USING "globals.sch"
// fake cellphone - for drawing to player peds' cellphones in cutscenes / npcs' cellphones ingame and cutscenes. Rob B
ENUM FAKE_CELLPHONE_SCREEN_ENUM
FAKE_CELLPHONE_SCREEN_GENERIC_MENU = 0,
FAKE_CELLPHONE_SCREEN_JOSH2_GALLERY = 1,
FAKE_CELLPHONE_SCREEN_JOSH2_PHOTO = 2,
FAKE_CELLPHONE_SCREEN_GENERIC_CALL = 3,
FAKE_CELLPHONE_SCREEN_GENERIC_MENU_2 = 4,
FAKE_CELLPHONE_SCREEN_CALL_MARTIN_1 = 5,
FAKE_CELLPHONE_SCREEN_CALL_MARTIN_2 = 6,
FAKE_CELLPHONE_SCREEN_CALL_MARTIN_3 = 7,
FAKE_CELLPHONE_SCREEN_CALL_MARTIN_4 = 8,
FAKE_CELLPHONE_SCREEN_CALL_MARTIN_5 = 9,
FAKE_CELLPHONE_SCREEN_ARM_3_LARA = 11,
FAKE_CELLPHONE_SCREEN_M_CALL_T = 13,
FAKE_CELLPHONE_SCREEN_M_CALL_J = 15,
FAKE_CELLPHONE_SCREEN_BADGER_MENU = 20,
FAKE_CELLPHONE_SCREEN_BADGER_CALL = 21,
FAKE_CELLPHONE_SCREEN_FACADE_MENU = 30,
FAKE_CELLPHONE_SCREEN_FACADE_CALL = 31
ENDENUM
STRUCT FAKE_CELLPHONE_DATA
SCALEFORM_INDEX scaleformIndex
ENDSTRUCT
// release the rendertarget for the NPC phone
PROC RELEASE_NPC_PHONE_RENDERTARGET()
IF IS_NAMED_RENDERTARGET_REGISTERED("npcphone")
RELEASE_NAMED_RENDERTARGET("npcphone")
ENDIF
ENDPROC
// get the scalephone movie as a string
FUNC STRING GET_FAKE_CELLPHONE_MOVIE_NAME()
RETURN "CELLPHONE_CUTSCENE"
ENDFUNC
// request the fake cellphone movie
PROC REQUEST_FAKE_CELLPHONE_MOVIE(FAKE_CELLPHONE_DATA &fakeCellphoneData)
fakeCellphoneData.scaleformIndex = REQUEST_SCALEFORM_MOVIE(GET_FAKE_CELLPHONE_MOVIE_NAME())
ENDPROC
// request the fake cellphone movie
PROC RELEASE_FAKE_CELLPHONE_MOVIE(FAKE_CELLPHONE_DATA &fakeCellphoneData)
RELEASE_NPC_PHONE_RENDERTARGET()
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(fakeCellphoneData.scaleformIndex)
ENDPROC
// has the movie loaded?
FUNC BOOL HAS_FAKE_CELLPHONE_MOVIE_LOADED(FAKE_CELLPHONE_DATA &fakeCellphoneData)
IF HAS_SCALEFORM_MOVIE_LOADED(fakeCellphoneData.scaleformIndex)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
// draw fake cellphone
PROC DRAW_FAKE_CELLPHONE_SCREEN(FAKE_CELLPHONE_DATA &fakeCellphoneData, BOOL bIsPlayerCellphone, FAKE_CELLPHONE_SCREEN_ENUM screenEnum)
IF HAS_SCALEFORM_MOVIE_LOADED(fakeCellphoneData.scaleformIndex)
INT iCellphoneTarget
IF bIsPlayerCellphone
GET_MOBILE_PHONE_RENDER_ID(iCellphoneTarget)
ELSE
IF NOT IS_NAMED_RENDERTARGET_REGISTERED("npcphone")
REGISTER_NAMED_RENDERTARGET("npcphone")
LINK_NAMED_RENDERTARGET(PROP_NPC_PHONE)
ENDIF
iCellphoneTarget = GET_NAMED_RENDERTARGET_RENDER_ID("npcphone")
ENDIF
SET_TEXT_RENDER_ID(iCellphoneTarget)
BEGIN_SCALEFORM_MOVIE_METHOD(fakeCellphoneData.scaleformIndex, "DISPLAY_VIEW")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(screenEnum))
END_SCALEFORM_MOVIE_METHOD()
DRAW_SCALEFORM_MOVIE(fakeCellphoneData.scaleformIndex, g_SF_PhonePosX, g_SF_PhonePosY, g_SF_PhoneSizeX, g_SF_PhoneSizeY, 255, 255, 255, 255)
ENDIF
ENDPROC