329 lines
11 KiB
XML
Executable File
329 lines
11 KiB
XML
Executable File
|
|
//////////////////////////////////////////////////////////////////////
|
|
/* tennis_broadcast.sch */
|
|
/* Authors: Rob Pearsall */
|
|
/* Multiplayer definitions of broadcast msgs for tennis. */
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
USING "tennis_client.sch"
|
|
USING "net_events.sch"
|
|
USING "tennis.sch"
|
|
|
|
ENUM TENNIS_BALL_UPDATE_ENUM
|
|
TBU_INITIAL_POSITION = 0,
|
|
TBU_BALL_VELOCITY_VECTOR,
|
|
TBU_NET_RICOCHET,
|
|
TBU_MAKE_BALL
|
|
ENDENUM
|
|
|
|
ENUM BALL_UPDATE_IMPACT_TYPE
|
|
BALL_UPDATE_IMPACT_TYPE_SERVE,
|
|
BALL_UPDATE_IMPACT_TYPE_UPDATE,
|
|
BALL_UPDATE_IMPACT_TYPE_SCTV_CREATE,
|
|
BALL_UPDATE_IMPACT_TYPE_SCTV_LAUNCH,
|
|
BALL_UPDATE_IMPACT_TYPE_SCTV_UI_UPDATE_UTIL_FLAGS,
|
|
BALL_UPDATE_IMPACT_TYPE_SCTV_UI_UPDATE_UI_FLAGS,
|
|
BALL_UPDATE_IMPACT_TYPE_SCTV_UI_UPDATE_POINTS,
|
|
BALL_UPDATE_IMPACT_TYPE_SCTV_UI_SHOW_SERVE_MESSAGE,
|
|
BALL_UPDATE_IMPACT_TYPE_SCTV_UI_SHOW_SECOND_SERVE_MESSAGE,
|
|
BALL_UPDATE_IMPACT_TYPE_SCTV_UI_SHOW_SIDE_CHANGE,
|
|
BALL_UPDATE_IMPACT_TYPE_SCTV_UI_SET_CAMERA_STATE,
|
|
BALL_UPDATE_IMPACT_TYPE_SCTV_REQUEST_UPDATE,
|
|
BALL_UPDATE_IMPACT_TYPE_SCTV_UI_SHOW_PLAYER_CARD,
|
|
BALL_UPDATE_IMPACT_TYPE_SCTV_UI_SHOW_SCOREBOARD,
|
|
BALL_UPDATE_IMPACT_TYPE_SEQ_DONE,
|
|
BALL_UPDATE_IMPACT_TYPE_BALL_DESYNC
|
|
ENDENUM
|
|
|
|
FUNC STRING GET_STRING_FROM_TENNIS_BALL_UPDATE_IMPACT_TYPE(BALL_UPDATE_IMPACT_TYPE eType)
|
|
SWITCH eType
|
|
CASE BALL_UPDATE_IMPACT_TYPE_SERVE RETURN "BALL_UPDATE_IMPACT_TYPE_SERVE"
|
|
CASE BALL_UPDATE_IMPACT_TYPE_UPDATE RETURN "BALL_UPDATE_IMPACT_TYPE_UPDATE"
|
|
CASE BALL_UPDATE_IMPACT_TYPE_SCTV_CREATE RETURN "BALL_UPDATE_IMPACT_TYPE_SCTV_CREATE"
|
|
CASE BALL_UPDATE_IMPACT_TYPE_SCTV_LAUNCH RETURN "BALL_UPDATE_IMPACT_TYPE_SCTV_LAUNCH"
|
|
CASE BALL_UPDATE_IMPACT_TYPE_SCTV_UI_UPDATE_UTIL_FLAGS RETURN "BALL_UPDATE_IMPACT_TYPE_SCTV_UI_UPDATE_UTIL_FLAGS"
|
|
CASE BALL_UPDATE_IMPACT_TYPE_SCTV_UI_UPDATE_UI_FLAGS RETURN "BALL_UPDATE_IMPACT_TYPE_SCTV_UI_UPDATE_UI_FLAGS"
|
|
CASE BALL_UPDATE_IMPACT_TYPE_SCTV_UI_UPDATE_POINTS RETURN "BALL_UPDATE_IMPACT_TYPE_SCTV_UI_UPDATE_POINTS"
|
|
CASE BALL_UPDATE_IMPACT_TYPE_SCTV_UI_SHOW_SERVE_MESSAGE RETURN "BALL_UPDATE_IMPACT_TYPE_SCTV_UI_SHOW_SERVE_MESSAGE"
|
|
CASE BALL_UPDATE_IMPACT_TYPE_SCTV_UI_SHOW_SECOND_SERVE_MESSAGE RETURN "BALL_UPDATE_IMPACT_TYPE_SCTV_UI_SHOW_SECOND_SERVE_MESSAGE"
|
|
CASE BALL_UPDATE_IMPACT_TYPE_SCTV_UI_SHOW_SIDE_CHANGE RETURN "BALL_UPDATE_IMPACT_TYPE_SCTV_UI_SHOW_SIDE_CHANGE"
|
|
CASE BALL_UPDATE_IMPACT_TYPE_SCTV_UI_SET_CAMERA_STATE RETURN "BALL_UPDATE_IMPACT_TYPE_SCTV_UI_SET_CAMERA_STATE"
|
|
CASE BALL_UPDATE_IMPACT_TYPE_SCTV_REQUEST_UPDATE RETURN "BALL_UPDATE_IMPACT_TYPE_SCTV_REQUEST_UPDATE"
|
|
CASE BALL_UPDATE_IMPACT_TYPE_SCTV_UI_SHOW_PLAYER_CARD RETURN "BALL_UPDATE_IMPACT_TYPE_SCTV_UI_SHOW_PLAYER_CARD"
|
|
CASE BALL_UPDATE_IMPACT_TYPE_SCTV_UI_SHOW_SCOREBOARD RETURN "BALL_UPDATE_IMPACT_TYPE_SCTV_UI_SHOW_SCOREBOARD"
|
|
CASE BALL_UPDATE_IMPACT_TYPE_SEQ_DONE RETURN "BALL_UPDATE_IMPACT_TYPE_SEQ_DONE"
|
|
CASE BALL_UPDATE_IMPACT_TYPE_BALL_DESYNC RETURN "BALL_UPDATE_IMPACT_TYPE_BALL_DESYNC"
|
|
ENDSWITCH
|
|
RETURN "Unknown BALL_UPDATE_IMPACT_TYPE enum"
|
|
ENDFUNC
|
|
|
|
FUNC STRING GET_STRING_FROM_TENNIS_BALL_UPDATE_ENUM(TENNIS_BALL_UPDATE_ENUM eThisUpdate)
|
|
SWITCH eThisUpdate
|
|
CASE TBU_INITIAL_POSITION RETURN "TBU_INITIAL_POSITION"
|
|
CASE TBU_BALL_VELOCITY_VECTOR RETURN "TBU_BALL_VELOCITY_VECTOR"
|
|
CASE TBU_NET_RICOCHET RETURN "TBU_NET_RICOCHET"
|
|
ENDSWITCH
|
|
RETURN "Unknown TENNIS_BALL_UPDATE_ENUM"
|
|
ENDFUNC
|
|
|
|
STRUCT TENNIS_BROADCAST_EVENT
|
|
SCRIPTED_EVENT_TYPES eEventType
|
|
|
|
//-- Player ID added for B* 3600951
|
|
PLAYER_INDEX playerID
|
|
|
|
// Used for the ball impact event
|
|
VECTOR vPosition
|
|
VECTOR vVelocity
|
|
TENNIS_BALL_SPIN broadcastSpin
|
|
INT iImpactID
|
|
INT iLRAngle
|
|
INT iNetworkTime
|
|
INT iDummy0
|
|
INT iDummy1
|
|
FLOAT fDummy
|
|
BOOL bDummy
|
|
BALL_UPDATE_IMPACT_TYPE eBallUpdateType
|
|
|
|
ENDSTRUCT
|
|
|
|
ENUM TENNIS_GENERAL_EVENT_ENUM
|
|
TGEE_REACT_EVENT = 0,
|
|
TGEE_MAX_EVENT
|
|
ENDENUM
|
|
|
|
FUNC STRING GET_STRING_FROM_TENNIS_GENERAL_EVENT_ENUM(TENNIS_GENERAL_EVENT_ENUM eEvent)
|
|
SWITCH eEvent
|
|
CASE TGEE_REACT_EVENT RETURN "TGEE_REACT_EVENT"
|
|
CASE TGEE_MAX_EVENT RETURN "TGEE_MAX_EVENT"
|
|
ENDSWITCH
|
|
RETURN "Unknown TENNIS_GENERAL_EVENT_ENUM"
|
|
ENDFUNC
|
|
|
|
PROC SET_TENNIS_BROADCAST_TIME_DATATYPE(TENNIS_BROADCAST_EVENT &event, TIME_DATATYPE &newTimeData)
|
|
event.iNetworkTime = NATIVE_TO_INT(newTimeData)
|
|
CPRINTLN( DEBUG_TENNIS, "SET_TENNIS_BROADCAST_TIME_DATATYPE set to ", event.iNetworkTime )
|
|
ENDPROC
|
|
|
|
FUNC INT GET_TENNIS_BROADCAST_TIME_DATATYPE(TENNIS_BROADCAST_EVENT &event)
|
|
RETURN event.iNetworkTime
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// co-opts iLRAngle
|
|
/// PARAMS:
|
|
/// event -
|
|
/// launchGrade -
|
|
PROC SET_TENNIS_BROADCAST_BALL_UPDATE_ENUM(TENNIS_BROADCAST_EVENT &event, TENNIS_BALL_UPDATE_ENUM eNewUpdate)
|
|
event.iLRAngle = ENUM_TO_INT(eNewUpdate)
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// co-opts iLRAngle
|
|
/// PARAMS:
|
|
/// event -
|
|
/// RETURNS:
|
|
///
|
|
FUNC TENNIS_BALL_UPDATE_ENUM GET_TENNIS_BROADCAST_BALL_UPDATE_ENUM(TENNIS_BROADCAST_EVENT &event)
|
|
RETURN INT_TO_ENUM(TENNIS_BALL_UPDATE_ENUM, event.iLRAngle)
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// co-opts iImpactID
|
|
/// PARAMS:
|
|
/// event -
|
|
/// ePointWinner -
|
|
PROC SET_TENNIS_BROADCAST_POINT_WINNER(TENNIS_BROADCAST_EVENT &event, TENNIS_PLAYER_ID ePointWinner)
|
|
event.iImpactID = ENUM_TO_INT(ePointWinner)
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// co-opts iImpactID
|
|
/// PARAMS:
|
|
/// event -
|
|
/// RETURNS:
|
|
///
|
|
FUNC TENNIS_PLAYER_ID GET_TENNIS_BROADCAST_POINT_WINNER(TENNIS_BROADCAST_EVENT &event)
|
|
RETURN INT_TO_ENUM(TENNIS_PLAYER_ID, event.iImpactID)
|
|
ENDFUNC
|
|
|
|
PROC SET_TENNIS_BROADCAST_SERVE_ANGLE(TENNIS_BROADCAST_EVENT &event, INT iNewAngle)
|
|
event.iLRAngle = iNewAngle
|
|
ENDPROC
|
|
|
|
FUNC INT GET_TENNIS_BROADCAST_SERVE_ANGLE(TENNIS_BROADCAST_EVENT &event)
|
|
RETURN event.iLRAngle
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// co-opts iImpactID
|
|
/// PARAMS:
|
|
/// eventDetails -
|
|
/// eServeGrade -
|
|
PROC SET_TENNIS_BROADCAST_SERVE_GRADE(TENNIS_BROADCAST_EVENT &eventDetails, LAUNCH_DETAIL_ENUM eServeGrade)
|
|
eventDetails.iDummy0 = ENUM_TO_INT(eServeGrade)
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// co-opts iImpactID
|
|
/// PARAMS:
|
|
/// eventDetails -
|
|
/// RETURNS:
|
|
///
|
|
FUNC LAUNCH_DETAIL_ENUM GET_TENNIS_BROADCAST_SERVE_GRADE(TENNIS_BROADCAST_EVENT &eventDetails)
|
|
RETURN INT_TO_ENUM(LAUNCH_DETAIL_ENUM, eventDetails.iDummy0)
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// co-opts iImpactID
|
|
/// PARAMS:
|
|
/// eventDetails -
|
|
/// RETURNS:
|
|
///
|
|
FUNC INT GET_TENNIS_BROADCAST_OFFENDER(TENNIS_BROADCAST_EVENT &eventDetails)
|
|
RETURN eventDetails.iImpactID
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// co-opts iImpactID
|
|
/// PARAMS:
|
|
/// eventDetails -
|
|
/// iOffender -
|
|
PROC SET_TENNIS_BROADCAST_OFFENDER(TENNIS_BROADCAST_EVENT &eventDetails, INT iOffender)
|
|
eventDetails.iImpactID = iOffender
|
|
CPRINTLN(DEBUG_TENNIS, "iOffender: ", iOffender)
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Mutator for the serve count the sender sees
|
|
/// DO NOT CALL THIS AND SET_IMPACT_ID, one will overwrite the other
|
|
/// PARAMS:
|
|
/// eventDetails -
|
|
/// newServeCount -
|
|
PROC SET_TENNIS_BROADCAST_SERVE_COUNT(TENNIS_BROADCAST_EVENT &eventDetails, INT newServeCount)
|
|
eventDetails.iImpactID = newServeCount
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Accessor for the serve count
|
|
/// PARAMS:
|
|
/// eventDetails -
|
|
/// RETURNS:
|
|
///
|
|
FUNC INT GET_TENNIS_BROADCAST_SERVE_COUNT(TENNIS_BROADCAST_EVENT &eventDetails)
|
|
RETURN eventDetails.iImpactID
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Mutator for Broadcast Ball Spin
|
|
/// PARAMS:
|
|
/// eventDetails -
|
|
/// newSpin -
|
|
PROC SET_TENNIS_BROADCAST_SPIN(TENNIS_BROADCAST_EVENT &eventDetails, TENNIS_BALL_SPIN newSpin)
|
|
eventDetails.broadcastSpin = newSpin
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Accessor for the Broadcast Ball Spin
|
|
/// PARAMS:
|
|
/// eventDetails -
|
|
/// RETURNS:
|
|
///
|
|
FUNC TENNIS_BALL_SPIN GET_TENNIS_BROADCAST_SPIN(TENNIS_BROADCAST_EVENT &eventDetails)
|
|
RETURN eventDetails.broadcastSpin
|
|
ENDFUNC
|
|
|
|
// Accessor for the event type.
|
|
FUNC SCRIPTED_EVENT_TYPES GET_TENNIS_BROADCAST_EVENT_TYPE(TENNIS_BROADCAST_EVENT& eventDetails)
|
|
RETURN eventDetails.eEventType
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Mutator for the event type.
|
|
/// PARAMS:
|
|
/// eventDetails -
|
|
/// eType -
|
|
PROC SET_TENNIS_BROADCAST_EVENT_TYPE(TENNIS_BROADCAST_EVENT& eventDetails, SCRIPTED_EVENT_TYPES eType)
|
|
eventDetails.eEventType = eType
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Mutator to mark an event as a hit by bounce event
|
|
/// PARAMS:
|
|
/// eventDetails -
|
|
PROC SET_TENNIS_BEFORE_BOUNCE_HIT_BY_FLAG(TENNIS_BROADCAST_EVENT& eventDetails)
|
|
eventDetails.iImpactID = 1
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// returns whether an event is a hit by bounce event
|
|
/// PARAMS:
|
|
/// eventDetails -
|
|
/// RETURNS:
|
|
/// 1 if the sending player was hit by the ball
|
|
FUNC INT GET_TENNIS_BEFORE_BOUNCE_HIT_BY_FLAG(TENNIS_BROADCAST_EVENT& eventDetails)
|
|
RETURN eventDetails.iImpactID
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// mutator method
|
|
/// PARAMS:
|
|
/// eventDetails -
|
|
/// iServerMessage - use 1 to say this was sent by a server action, 0 otherwise
|
|
PROC SET_TENNIS_QUIT_EVENT_SERVER_FLAG(TENNIS_BROADCAST_EVENT& eventDetails, INT iServerMessage)
|
|
eventDetails.iImpactID = iServerMessage
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// accessor method
|
|
/// PARAMS:
|
|
/// eventDetails -
|
|
/// RETURNS:
|
|
/// 1 if this event was a server action, 0 otherwise
|
|
FUNC INT GET_TENNIS_QUIT_EVENT_SERVER_FLAG(TENNIS_BROADCAST_EVENT& eventDetails)
|
|
RETURN eventDetails.iImpactID
|
|
ENDFUNC
|
|
|
|
// Accessor for ball position.
|
|
FUNC VECTOR GET_TENNIS_BROADCAST_BALL_POSITION(TENNIS_BROADCAST_EVENT& eventDetails)
|
|
RETURN eventDetails.vPosition
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Mutator for ball position.
|
|
/// PARAMS:
|
|
/// eventDetails -
|
|
/// vBallPos -
|
|
PROC SET_TENNIS_BROADCAST_BALL_POSITION(TENNIS_BROADCAST_EVENT& eventDetails, VECTOR vBallPos)
|
|
eventDetails.vPosition = vBallPos
|
|
ENDPROC
|
|
|
|
// Accessor for ball velocity.
|
|
FUNC VECTOR GET_TENNIS_BROADCAST_BALL_VELOCITY(TENNIS_BROADCAST_EVENT& eventDetails)
|
|
RETURN eventDetails.vVelocity
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Mutator for ball velocity.
|
|
/// PARAMS:
|
|
/// eventDetails -
|
|
/// vBallVel -
|
|
PROC SET_TENNIS_BROADCAST_BALL_VELOCITY(TENNIS_BROADCAST_EVENT& eventDetails, VECTOR vBallVel)
|
|
eventDetails.vVelocity = vBallVel
|
|
ENDPROC
|
|
|
|
// Accessor for ball impact ID (used to play impact sfx).
|
|
FUNC INT GET_TENNIS_BROADCAST_IMPACT_ID(TENNIS_BROADCAST_EVENT& eventDetails)
|
|
RETURN eventDetails.iImpactID
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Mutator for ball impact ID (used to play impact sfx).
|
|
/// PARAMS:
|
|
/// eventDetails -
|
|
/// iImpactID -
|
|
PROC SET_TENNIS_BROADCAST_IMPACT_ID(TENNIS_BROADCAST_EVENT& eventDetails, INT iImpactID)
|
|
eventDetails.iImpactID = iImpactID
|
|
ENDPROC
|