Files
2025-09-29 00:52:08 +02:00

465 lines
23 KiB
XML
Executable File

USING "arcade_cabinet_minigame_common.sch"
CONST_INT ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE_TIME 1000
CONST_INT ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE_RANDOM_DELAY 10000
ENUM ARCADE_GAMES_POSTFX_LAYER
ARCADE_GAMES_POSTFX_LAYER_LINES = 0,
ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE,
ARCADE_GAMES_POSTFX_LAYER_FLICKERING,
ARCADE_GAMES_POSTFX_LAYER_GLARE_2,
ARCADE_GAMES_POSTFX_LAYER_GLARE_4,
ARCADE_GAMES_POSTFX_LAYER_GLARE_8,
ARCADE_GAMES_POSTFX_LAYER_GRID,
ARCADE_GAMES_POSTFX_LAYER_FLAT_SCREEN_1,
ARCADE_GAMES_POSTFX_LAYER_COUNT
ENDENUM
FUNC STRING ARCADE_GAMES_POSTFX_LAYER_TO_STRING(ARCADE_GAMES_POSTFX_LAYER eLayer)
SWITCH eLayer
CASE ARCADE_GAMES_POSTFX_LAYER_LINES RETURN "ARCADE_GAMES_POSTFX_LAYER_LINES"
CASE ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE RETURN "ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE"
CASE ARCADE_GAMES_POSTFX_LAYER_FLICKERING RETURN "ARCADE_GAMES_POSTFX_LAYER_FLICKERING"
CASE ARCADE_GAMES_POSTFX_LAYER_GLARE_2 RETURN "ARCADE_GAMES_POSTFX_LAYER_GLARE_2"
CASE ARCADE_GAMES_POSTFX_LAYER_GLARE_4 RETURN "ARCADE_GAMES_POSTFX_LAYER_GLARE_4"
CASE ARCADE_GAMES_POSTFX_LAYER_GLARE_8 RETURN "ARCADE_GAMES_POSTFX_LAYER_GLARE_8"
CASE ARCADE_GAMES_POSTFX_LAYER_GRID RETURN "ARCADE_GAMES_POSTFX_LAYER_GRID"
CASE ARCADE_GAMES_POSTFX_LAYER_FLAT_SCREEN_1 RETURN "ARCADE_GAMES_POSTFX_LAYER_FLAT_SCREEN_1"
CASE ARCADE_GAMES_POSTFX_LAYER_COUNT RETURN "ARCADE_GAMES_POSTFX_LAYER_COUNT"
ENDSWITCH
RETURN ""
ENDFUNC
STRUCT ARCADE_GAMES_POSTFX_LAYER_DATA
BOOL bShow = FALSE
BOOL bFlickColor = FALSE
BOOL bDelay = FALSE
BOOL bInvertX = FALSE
INT iTimer = 0
INT iFlickTimer = 0
INT iScreenTime = 0
INT iRandomDelay = 0
INT iFlickTime = 0
RGBA_COLOUR_STRUCT rgbaColor
RGBA_COLOUR_STRUCT rgbaColorFlick
ENDSTRUCT
STRUCT ARCADE_GAMES_POSTFX_DATA
ARCADE_GAMES_POSTFX_LAYER_DATA sFXLayers[ARCADE_GAMES_POSTFX_LAYER_COUNT]
CASINO_ARCADE_GAME eGame
#IF IS_DEBUG_BUILD
BOOL bDebugDisable
#ENDIF
ENDSTRUCT
ARCADE_GAMES_POSTFX_DATA sAGPostFXData
FUNC CASINO_ARCADE_GAME ARCADE_GAMES_POSTFX_GET_CASINO_ARCADE_GAME()
RETURN sAGPostFXData.eGame
ENDFUNC
FUNC STRING ARCADE_GAMES_POSTFX_GET_TEXTURE_DICTIONARY(ARCADE_GAMES_POSTFX_LAYER eEnum)
SWITCH eEnum
CASE ARCADE_GAMES_POSTFX_LAYER_LINES
RETURN "MPArcadeGamesFX05"
BREAK
CASE ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE
RETURN "MPArcadeGamesFX05"
BREAK
CASE ARCADE_GAMES_POSTFX_LAYER_FLICKERING
RETURN ""
BREAK
CASE ARCADE_GAMES_POSTFX_LAYER_GLARE_2
RETURN "MPArcadeGamesFX03"
BREAK
CASE ARCADE_GAMES_POSTFX_LAYER_GLARE_4
RETURN "MPArcadeGamesFX04"
BREAK
CASE ARCADE_GAMES_POSTFX_LAYER_GLARE_8
RETURN "MPArcadeGamesFX00"
BREAK
CASE ARCADE_GAMES_POSTFX_LAYER_GRID
RETURN "MPArcadeGamesFX02"
BREAK
CASE ARCADE_GAMES_POSTFX_LAYER_FLAT_SCREEN_1
RETURN "MPArcadeGamesFX01"
BREAK
ENDSWITCH
RETURN ""
ENDFUNC
FUNC STRING ARCADE_GAMES_POSTFX_GET_TEXTURE_NAME(ARCADE_GAMES_POSTFX_LAYER eEnum)
SWITCH eEnum
CASE ARCADE_GAMES_POSTFX_LAYER_LINES
RETURN "TV_LINE_OVERLAY_DEGENATRON"
BREAK
CASE ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE
RETURN "SCREEN_GRAD_100_50"
BREAK
CASE ARCADE_GAMES_POSTFX_LAYER_FLICKERING
RETURN ""
BREAK
CASE ARCADE_GAMES_POSTFX_LAYER_GLARE_2
RETURN "Screen_Overlay_2"
BREAK
CASE ARCADE_GAMES_POSTFX_LAYER_GLARE_4
RETURN "Screen_Overlay_4"
BREAK
CASE ARCADE_GAMES_POSTFX_LAYER_GLARE_8
RETURN "Screen_Overlay_8"
BREAK
CASE ARCADE_GAMES_POSTFX_LAYER_GRID
RETURN "Grid_1"
BREAK
CASE ARCADE_GAMES_POSTFX_LAYER_FLAT_SCREEN_1
RETURN "FlatScreen1"
BREAK
ENDSWITCH
RETURN ""
ENDFUNC
FUNC VECTOR_2D ARCADE_GAMES_GET_SCREEN_SIZE()
RETURN INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH,cfBASE_SCREEN_HEIGHT)
ENDFUNC
FUNC VECTOR_2D ARCADE_GAMES_GET_SCREEN_CENTER()
RETURN INIT_VECTOR_2D(cfBASE_SCREEN_WIDTH/2.0,cfBASE_SCREEN_HEIGHT/2.0)
ENDFUNC
FUNC BOOL ARCADE_GAMES_POSTFX_REQUESTING_DICTIONARY_FOR_LAYER(ARCADE_GAMES_POSTFX_LAYER eEnum)
REQUEST_STREAMED_TEXTURE_DICT(ARCADE_GAMES_POSTFX_GET_TEXTURE_DICTIONARY(eEnum))
IF NOT HAS_STREAMED_TEXTURE_DICT_LOADED(ARCADE_GAMES_POSTFX_GET_TEXTURE_DICTIONARY(eEnum))
//CDEBUG1LN(DEBUG_MINIGAME, "[ARCADE_GAMES] ARCADE_GAMES_POSTFX_REQUESTING_ASSETS - Loading ",ARCADE_GAMES_POSTFX_GET_TEXTURE_DICTIONARY(eEnum))
RETURN FALSE
ENDIF
RETURN TRUE
ENDFUNC
PROC ARCADE_GAMES_POSTFX_CLEANUP_DICTIONARY_FOR_LAYER(ARCADE_GAMES_POSTFX_LAYER eEnum)
SET_STREAMED_TEXTURE_DICT_AS_NO_LONGER_NEEDED(ARCADE_GAMES_POSTFX_GET_TEXTURE_DICTIONARY(eEnum))
//CDEBUG1LN(DEBUG_MINIGAME, "[ARCADE_GAMES] ARCADE_GAMES_POSTFX_CLEANUP_DICTIONARY_FOR_LAYER - Cleanup ",ARCADE_GAMES_POSTFX_GET_TEXTURE_DICTIONARY(eEnum))
ENDPROC
FUNC BOOL ARCADE_GAMES_POSTFX_REQUESTING_ASSETS()
RETURN ARCADE_GAMES_POSTFX_REQUESTING_DICTIONARY_FOR_LAYER(ARCADE_GAMES_POSTFX_LAYER_LINES)
AND ARCADE_GAMES_POSTFX_REQUESTING_DICTIONARY_FOR_LAYER(ARCADE_GAMES_POSTFX_LAYER_GRID)
AND ARCADE_GAMES_POSTFX_REQUESTING_DICTIONARY_FOR_LAYER(ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE)
AND ARCADE_GAMES_POSTFX_REQUESTING_DICTIONARY_FOR_LAYER(ARCADE_GAMES_POSTFX_LAYER_GLARE_2)
AND ARCADE_GAMES_POSTFX_REQUESTING_DICTIONARY_FOR_LAYER(ARCADE_GAMES_POSTFX_LAYER_GLARE_4)
AND ARCADE_GAMES_POSTFX_REQUESTING_DICTIONARY_FOR_LAYER(ARCADE_GAMES_POSTFX_LAYER_GLARE_8)
AND ARCADE_GAMES_POSTFX_REQUESTING_DICTIONARY_FOR_LAYER(ARCADE_GAMES_POSTFX_LAYER_FLAT_SCREEN_1)
ENDFUNC
PROC ARCADE_GAMES_POSTFX_CLEANUP_ASSETS()
ARCADE_GAMES_POSTFX_CLEANUP_DICTIONARY_FOR_LAYER(ARCADE_GAMES_POSTFX_LAYER_LINES)
ARCADE_GAMES_POSTFX_CLEANUP_DICTIONARY_FOR_LAYER(ARCADE_GAMES_POSTFX_LAYER_GRID)
ARCADE_GAMES_POSTFX_CLEANUP_DICTIONARY_FOR_LAYER(ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE)
ARCADE_GAMES_POSTFX_CLEANUP_DICTIONARY_FOR_LAYER(ARCADE_GAMES_POSTFX_LAYER_GLARE_2)
ARCADE_GAMES_POSTFX_CLEANUP_DICTIONARY_FOR_LAYER(ARCADE_GAMES_POSTFX_LAYER_GLARE_4)
ARCADE_GAMES_POSTFX_CLEANUP_DICTIONARY_FOR_LAYER(ARCADE_GAMES_POSTFX_LAYER_GLARE_8)
ARCADE_GAMES_POSTFX_CLEANUP_DICTIONARY_FOR_LAYER(ARCADE_GAMES_POSTFX_LAYER_FLAT_SCREEN_1)
ENDPROC
PROC ARCADE_GAMES_POSTFX_INIT(CASINO_ARCADE_GAME eGame)
#IF IS_DEBUG_BUILD
IF sAGPostFXData.bDebugDisable
EXIT
ENDIF
#ENDIF
sAGPostFXData.eGame = eGame
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_LINES].rgbaColor,255,255,255,255)
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].iScreenTime = ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE_TIME
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].iRandomDelay = ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE_RANDOM_DELAY
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].bFlickColor = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].iFlickTime = 40
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].rgbaColor,0,0,0,0)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GLARE_2].rgbaColor,255,255,255,127)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GLARE_4].rgbaColor,255,255,255,127)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GLARE_8].rgbaColor,255,255,255,127)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLAT_SCREEN_1].rgbaColor,255,255,255,255)
SWITCH sAGPostFXData.eGame
CASE CASINO_ARCADE_GAME_DEGENATRON_DEFENDER
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].rgbaColor,255,255,255,30)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].rgbaColor,255,255,255,20)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].rgbaColorFlick,0,0,0,30)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GLARE_4].rgbaColor,255,255,255,127)
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_LINES].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GLARE_2].bShow = TRUE
BREAK
CASE CASINO_ARCADE_GAME_DEGENATRON_MONKEY
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].rgbaColor,255,255,255,30)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].rgbaColor,255,255,255,20)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].rgbaColorFlick,0,0,0,30)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GLARE_4].rgbaColor,255,255,255,255)
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_LINES].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GLARE_4].bShow = TRUE
BREAK
CASE CASINO_ARCADE_GAME_DEGENATRON_PENETRATOR
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].rgbaColor,255,255,255,30)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].rgbaColor,255,255,255,20)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].rgbaColorFlick,0,0,0,30)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GLARE_8].rgbaColor,255,255,255,184)
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_LINES].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GLARE_8].bShow = TRUE
BREAK
CASE CASINO_ARCADE_GAME_INVADE_PERSUADE
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].rgbaColor,255,255,255,30)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].rgbaColor,255,255,255,20)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].rgbaColorFlick,0,0,0,10)
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_LINES].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GLARE_2].bShow = TRUE
BREAK
CASE CASINO_ARCADE_GAME_STREET_CRIMES
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].rgbaColor,255,255,255,30)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].rgbaColor,255,255,255,20)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].rgbaColorFlick,0,0,0,10)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GLARE_8].rgbaColor,255,255,255,255)
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_LINES].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GLARE_8].bShow = TRUE
BREAK
CASE CASINO_ARCADE_GAME_TLG
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].rgbaColor,255,255,255,10)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].rgbaColorFlick,0,0,0,8)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLAT_SCREEN_1].rgbaColor,255,255,255,100)
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_LINES].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLAT_SCREEN_1].bShow = TRUE
BREAK
CASE CASINO_ARCADE_GAME_THE_WIZARDS_RUIN
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].rgbaColorFlick,0,0,0,8)
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_LINES].bShow = TRUE
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GLARE_2].rgbaColor,255,255,255,180)
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GLARE_2].bShow = TRUE
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].rgbaColor,255,255,255,30)
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].bShow = TRUE
BREAK
CASE CASINO_ARCADE_GAME_GO_GO_SPACE_MONKEY_3
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].rgbaColor,255,255,255,30)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].rgbaColor,255,255,255,20)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].rgbaColorFlick,0,0,0,10)
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_LINES].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GLARE_2].bShow = TRUE
BREAK
CASE CASINO_ARCADE_GAME_RNC_STREET_LEGAL
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].bShow = FALSE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].bShow = FALSE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_LINES].bShow = TRUE
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_LINES].rgbaColor,0,0,255,90)
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].bShow = TRUE
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].rgbaColor,255,0,0,15)
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLAT_SCREEN_1].bShow = TRUE
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLAT_SCREEN_1].rgbaColor,255,255,255,115)
BREAK
CASE CASINO_ARCADE_GAME_RNC_CROTCH_ROCKETS
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].bShow = FALSE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].bShow = FALSE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_LINES].bShow = TRUE
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_LINES].rgbaColor,0,0,255,90)
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].bShow = TRUE
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].rgbaColor,255,0,0,15)
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLAT_SCREEN_1].bShow = TRUE
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLAT_SCREEN_1].rgbaColor,255,255,255,115)
BREAK
CASE CASINO_ARCADE_GAME_RNC_GET_TRUCKIN
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].bShow = FALSE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].bShow = FALSE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_LINES].bShow = TRUE
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_LINES].rgbaColor,0,0,255,90)
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].bShow = TRUE
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].rgbaColor,255,0,0,15)
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLAT_SCREEN_1].bShow = TRUE
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLAT_SCREEN_1].rgbaColor,255,255,255,115)
BREAK
CASE CASINO_ARCADE_GAME_QUB3D
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].rgbaColor,255,255,255,15)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].rgbaColor,255,255,255,10)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].rgbaColorFlick,0,0,0,5)
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_LINES].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GLARE_2].bShow = TRUE
BREAK
CASE CASINO_ARCADE_GAME_CAMHEDZ
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].rgbaColor,255,255,255,3)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].rgbaColorFlick,0,0,0,15)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_LINES].rgbaColor,0,0,255,90)
INIT_RGBA_STRUCT(sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].rgbaColor,255,255,255,15)
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_SCAN_LINE].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLICKERING].bShow = FALSE // To be toggled in-game
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_LINES].bShow = TRUE
sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_GRID].bShow = TRUE
//sAGPostFXData.sFXLayers[ARCADE_GAMES_POSTFX_LAYER_FLAT_SCREEN_1].bShow = TRUE
BREAK
ENDSWITCH
ENDPROC
PROC ARCADE_GAMES_POSTFX_DRAW_LAYER(ARCADE_GAMES_POSTFX_LAYER iLayer)
IF NOT sAGPostFXData.sFXLayers[iLayer].bShow
EXIT
ENDIF
VECTOR_2D vFXSize = ARCADE_GAMES_GET_SCREEN_SIZE()
VECTOR_2D vFXPos0
VECTOR_2D vFXPos1
RGBA_COLOUR_STRUCT color
IF sAGPostFXData.sFXLayers[iLayer].bInvertX
vFXSize.x = -vFXSize.x
ENDIF
vFXPos0 = ARCADE_GAMES_GET_SCREEN_CENTER()
IF NOT sAGPostFXData.sFXLayers[iLayer].bDelay
IF sAGPostFXData.sFXLayers[iLayer].iTimer > 0
vFXPos0.y = vFXPos0.y - vFXSize.y*(sAGPostFXData.sFXLayers[iLayer].iTimer % (sAGPostFXData.sFXLayers[iLayer].iScreenTime*1.0)) / (sAGPostFXData.sFXLayers[iLayer].iScreenTime*1.0)
vFXPos1 = vFXPos0
vFXPos1.y += vFXSize.y
ELSE
IF sAGPostFXData.sFXLayers[iLayer].iRandomDelay > 0
sAGPostFXData.sFXLayers[iLayer].iTimer = GET_RANDOM_INT_IN_RANGE(0, sAGPostFXData.sFXLayers[iLayer].iRandomDelay)
sAGPostFXData.sFXLayers[iLayer].bDelay = TRUE
ENDIF
ENDIF
ELSE
IF sAGPostFXData.sFXLayers[iLayer].iTimer > 0
ELSE
sAGPostFXData.sFXLayers[iLayer].iTimer = sAGPostFXData.sFXLayers[iLayer].iScreenTime
sAGPostFXData.sFXLayers[iLayer].bDelay = FALSE
ENDIF
ENDIF
IF sAGPostFXData.sFXLayers[iLayer].bFlickColor
FLOAT fFlickRatio = TO_FLOAT( sAGPostFXData.sFXLayers[iLayer].iFlickTimer ) / TO_FLOAT(sAGPostFXData.sFXLayers[iLayer].iFlickTime)
color.iR = LERP_INT(sAGPostFXData.sFXLayers[iLayer].rgbaColor.iR,sAGPostFXData.sFXLayers[iLayer].rgbaColorFlick.iR,fFlickRatio)
color.iG = LERP_INT(sAGPostFXData.sFXLayers[iLayer].rgbaColor.iG,sAGPostFXData.sFXLayers[iLayer].rgbaColorFlick.iG,fFlickRatio)
color.iB = LERP_INT(sAGPostFXData.sFXLayers[iLayer].rgbaColor.iB,sAGPostFXData.sFXLayers[iLayer].rgbaColorFlick.iB,fFlickRatio)
color.iA = LERP_INT(sAGPostFXData.sFXLayers[iLayer].rgbaColor.iA,sAGPostFXData.sFXLayers[iLayer].rgbaColorFlick.iA,fFlickRatio)
CDEBUG3LN(DEBUG_MINIGAME, "[DEGENATRON_GAMES] ARCADE_GAMES_POSTFX_DRAW_LAYER - fFlickRatio ",fFlickRatio," color (",color.iR,",",color.iG,",",color.iB,",",color.iA,")")
ELSE
color = sAGPostFXData.sFXLayers[iLayer].rgbaColor
ENDIF
IF IS_STRING_NULL_OR_EMPTY(ARCADE_GAMES_POSTFX_GET_TEXTURE_NAME(iLayer))
ARCADE_DRAW_PIXELSPACE_RECT(vFXPos0, vFXSize, color)
ELSE
ARCADE_DRAW_PIXELSPACE_SPRITE(ARCADE_GAMES_POSTFX_GET_TEXTURE_DICTIONARY(iLayer),ARCADE_GAMES_POSTFX_GET_TEXTURE_NAME(iLayer),vFXPos0, vFXSize,0.0,color)
ENDIF
IF NOT sAGPostFXData.sFXLayers[iLayer].bDelay AND sAGPostFXData.sFXLayers[iLayer].iTimer > 0
IF IS_STRING_NULL_OR_EMPTY(ARCADE_GAMES_POSTFX_GET_TEXTURE_NAME(ARCADE_GAMES_POSTFX_LAYER_LINES))
ARCADE_DRAW_PIXELSPACE_RECT(vFXPos1, vFXSize, color)
ELSE
ARCADE_DRAW_PIXELSPACE_SPRITE(ARCADE_GAMES_POSTFX_GET_TEXTURE_DICTIONARY(iLayer),ARCADE_GAMES_POSTFX_GET_TEXTURE_NAME(iLayer),vFXPos1, vFXSize,0.0,color)
ENDIF
ENDIF
sAGPostFXData.sFXLayers[iLayer].iFlickTimer -= ROUND(GET_FRAME_TIME() * 1000)
IF sAGPostFXData.sFXLayers[iLayer].iFlickTimer < 0
sAGPostFXData.sFXLayers[iLayer].iFlickTimer += sAGPostFXData.sFXLayers[iLayer].iFlickTime
ENDIF
sAGPostFXData.sFXLayers[iLayer].iTimer -= ROUND(GET_FRAME_TIME() * 1000)
IF sAGPostFXData.sFXLayers[iLayer].iTimer < 0
sAGPostFXData.sFXLayers[iLayer].iTimer = 0
ENDIF
ENDPROC
PROC ARCADE_GAMES_POSTFX_DRAW()
#IF IS_DEBUG_BUILD
IF sAGPostFXData.bDebugDisable
EXIT
ENDIF
#ENDIF
INT iLayer
REPEAT ARCADE_GAMES_POSTFX_LAYER_COUNT iLayer
ARCADE_GAMES_POSTFX_DRAW_LAYER(INT_TO_ENUM(ARCADE_GAMES_POSTFX_LAYER, iLayer))
ENDREPEAT
ENDPROC
#IF IS_DEBUG_BUILD
PROC ARCADE_GAMES_POSTFX_WIDGET_CREATE_LAYER(ARCADE_GAMES_POSTFX_LAYER eLayer)
START_WIDGET_GROUP(ARCADE_GAMES_POSTFX_LAYER_TO_STRING(eLayer))
ADD_WIDGET_BOOL("Debug Disabled", sAGPostFXData.bDebugDisable)
ADD_WIDGET_BOOL("Show", sAGPostFXData.sFXLayers[eLayer].bShow)
ADD_WIDGET_STRING(ARCADE_GAMES_POSTFX_GET_TEXTURE_NAME(eLayer))
ADD_WIDGET_BOOL("Invert X", sAGPostFXData.sFXLayers[eLayer].bInvertX)
ADD_WIDGET_INT_SLIDER("Screen Time", sAGPostFXData.sFXLayers[eLayer].iScreenTime,0,50000,1)
ADD_WIDGET_INT_SLIDER("Random Delay Time", sAGPostFXData.sFXLayers[eLayer].iRandomDelay,0,50000,1)
ADD_WIDGET_INT_READ_ONLY("Timer", sAGPostFXData.sFXLayers[eLayer].iTimer)
ADD_WIDGET_BOOL("On Delay", sAGPostFXData.sFXLayers[eLayer].bDelay)
ADD_WIDGET_INT_SLIDER("Color.R", sAGPostFXData.sFXLayers[eLayer].rgbaColor.iR,0,255,1)
ADD_WIDGET_INT_SLIDER("Color.G", sAGPostFXData.sFXLayers[eLayer].rgbaColor.iG,0,255,1)
ADD_WIDGET_INT_SLIDER("Color.B", sAGPostFXData.sFXLayers[eLayer].rgbaColor.iB,0,255,1)
ADD_WIDGET_INT_SLIDER("Color.A", sAGPostFXData.sFXLayers[eLayer].rgbaColor.iA,0,255,1)
ADD_WIDGET_BOOL("Flicker", sAGPostFXData.sFXLayers[eLayer].bFlickColor)
ADD_WIDGET_INT_SLIDER("Flick Time", sAGPostFXData.sFXLayers[eLayer].iFlickTime,0,1000,1)
ADD_WIDGET_INT_SLIDER("ColorFlick.R", sAGPostFXData.sFXLayers[eLayer].rgbaColorFlick.iR,0,255,1)
ADD_WIDGET_INT_SLIDER("ColorFlick.G", sAGPostFXData.sFXLayers[eLayer].rgbaColorFlick.iG,0,255,1)
ADD_WIDGET_INT_SLIDER("ColorFlick.B", sAGPostFXData.sFXLayers[eLayer].rgbaColorFlick.iB,0,255,1)
ADD_WIDGET_INT_SLIDER("ColorFlick.A", sAGPostFXData.sFXLayers[eLayer].rgbaColorFlick.iA,0,255,1)
STOP_WIDGET_GROUP()
ENDPROC
PROC ARCADE_GAMES_POSTFX_WIDGET_CREATE
START_WIDGET_GROUP("PostFX")
INT iLayer
REPEAT ARCADE_GAMES_POSTFX_LAYER_COUNT iLayer
ARCADE_GAMES_POSTFX_WIDGET_CREATE_LAYER(INT_TO_ENUM(ARCADE_GAMES_POSTFX_LAYER, iLayer))
ENDREPEAT
STOP_WIDGET_GROUP()
ENDPROC
PROC ARCADE_GAMES_POSTFX_WIDGET_UPDATE
ENDPROC
#ENDIF