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

113 lines
3.3 KiB
Python
Executable File

USING "commands_script.sch"
USING "commands_graphics.sch"
USING "mp_icons.sch"
// MUST BE KEPT IN SYNC FROM CODE!
ENUM eOPERATION_TYPES
// Fire-and-die types
// These types should have NO WAITS; just instantly fall to the end of the block and die.
// Args filled out: MenuScreenId PreviousId UniqueIdentifier
kFill = 0, // Fill up the entire menu - - -
kLayoutChange = 1, // Layout was changed X X X
kTriggerEvent = 2, // Button was pressed X - X
// Continual update type
// Just run the script normally, full control
// including WAIT(0) and stuff
kUpdate = 3 // - - -
ENDENUM
// MUST BE KEPT IN SYNC FROM CODE!
STRUCT PAUSE_MENU_LAUNCH_DATA
eOPERATION_TYPES operation
INT MenuScreenId
INT PreviousId
INT UniqueIdentifier
ENDSTRUCT
PROC PM_SET_DATA_SLOT(INT iColumn, INT iMenuIndex, INT iMenuId, INT iUniqueId, BOOL bActive, STRING pszLabel )
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("SET_DATA_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn) // depth
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuIndex) // imenuindex
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMenuId) // menu id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iUniqueId) // unique id
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // menu type
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // initial index
IF bActive
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1) // active or not
ELSE
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0) // active or not
ENDIF
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(pszLabel) // text label
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
PROC PM_DISPLAY_DATA_SLOT(INT iColumn)
IF BEGIN_SCALEFORM_MOVIE_METHOD_ON_FRONTEND("DISPLAY_DATA_SLOT")
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColumn) // depth
END_SCALEFORM_MOVIE_METHOD()
ENDIF
ENDPROC
CONST_INT MIDDLE_COLUMN 1
CONST_INT MY_MENU HASH("PM_REPLAY")
CONST_INT SUBMENU HASH("PM_REPLAY_MISSIONS")
CONST_INT SILLY_OFFSET 1000
SCRIPT( PAUSE_MENU_LAUNCH_DATA args )
PRINTLN("SCRIPT LAUNCHED WITH OP: ", args.operation, ", Menu: ", args.MenuScreenId, ", Prev:", args.PreviousId, ", Unique: ", args.UniqueIdentifier)
PRINTLN("MY MENU HASH: ", MY_MENU)
PRINTLN("MY SUBMENU HASH: ", SUBMENU)
SWITCH args.operation
CASE kUpdate
WHILE TRUE
PRINTLN("Just Chillin' in Update()")
// perform any/all querying stuff here.
// not shown because I don't like it as much as the below stuff
WAIT(5000)
ENDWHILE
BREAK
/// ----------------------------------------------------------------
CASE kTriggerEvent
PRINTLN("Event Triggered for ", args.MenuScreenId, " and ", args.UniqueIdentifier)
IF args.MenuScreenId = SUBMENU
PRINTLN("Launching Mission: ", args.UniqueIdentifier)
ENDIF
BREAK
CASE kFill
CASE kLayoutChange
IF args.MenuScreenId = MY_MENU
PRINTLN("Acknowledged layout Changed!")
PM_SET_DATA_SLOT(MIDDLE_COLUMN,0,SUBMENU+SILLY_OFFSET,0,TRUE, "PM_PANE_AUD")
PM_SET_DATA_SLOT(MIDDLE_COLUMN,1,SUBMENU+SILLY_OFFSET,1,FALSE, "PM_PANE_DIS")
PM_DISPLAY_DATA_SLOT(MIDDLE_COLUMN)
ENDIF
IF args.MenuScreenId = SUBMENU
// FILL OUT CRAP IN NEXT COLUMN (once it exists)
ENDIF
BREAK
ENDSWITCH
TERMINATE_THIS_THREAD()
ENDSCRIPT