ENUM TENNIS_MP_STATE TMPS_INVALID = 0, //0 TMPS_INIT, TMPS_STREAMING, TMPS_SETUP, TMPS_SYNC_OBJECTS, TMPS_SETUP_POST, //5 TMPS_WAIT_POST_MENU, TMPS_INIT_TUTORIAL, TMPS_RUN_TUTORIAL, TMPS_RUNNING, TMPS_SCTV, //10 TMPS_WAIT_POST_GAME, TMPS_WAIT_LOCKSTEP, TMPS_WAIT_FOR_PREPARE_SERVE, TMPS_WAIT_FOR_RALLY, TMPS_WAIT_FOR_POINT_WON, //15 TMPS_WAIT_FOR_POINT_CHECKS, TMPS_WAIT_FOR_CHANGE_SERVERS, TMPS_WAIT_FOR_INTERSTITIAL, TMPS_WAIT_FOR_SIDE_CHANGE, TMPS_WAIT_FOR_OUTRO, //20 TMPS_WAIT_FOR_FINISH, TMPS_WAIT_FOR_PREPARE_REMATCH, TMPS_NO_REMATCH, TMPS_QUIT_THE_GAME ENDENUM FUNC STRING GET_STRING_FROM_TENNIS_MP_STATE(TENNIS_MP_STATE eMPState) RETURN PICK_STRING(eMPState = TMPS_INVALID, "TMPS_INVALID", PICK_STRING(eMPState = TMPS_INIT, "TMPS_INIT", PICK_STRING(eMPState = TMPS_STREAMING, "TMPS_STREAMING", PICK_STRING(eMPState = TMPS_SETUP, "TMPS_SETUP", PICK_STRING(eMPState = TMPS_SYNC_OBJECTS, "TMPS_SYNC_OBJECTS", PICK_STRING(eMPState = TMPS_SETUP_POST, "TMPS_SETUP_POST", PICK_STRING(eMPState = TMPS_WAIT_POST_MENU, "TMPS_WAIT_POST_MENU", PICK_STRING(eMPState = TMPS_INIT_TUTORIAL, "TMPS_INIT_TUTORIAL", PICK_STRING(eMPState = TMPS_RUN_TUTORIAL, "TMPS_RUN_TUTORIAL", PICK_STRING(eMPState = TMPS_RUNNING, "TMPS_RUNNING", PICK_STRING(eMPState = TMPS_SCTV, "TMPS_SCTV", PICK_STRING(eMPState = TMPS_WAIT_POST_GAME, "TMPS_WAIT_POST_GAME", PICK_STRING(eMPState = TMPS_WAIT_LOCKSTEP, "TMPS_WAIT_LOCKSTEP", PICK_STRING(eMPState = TMPS_WAIT_FOR_PREPARE_SERVE, "TMPS_WAIT_FOR_PREPARE_SERVE", PICK_STRING(eMPState = TMPS_WAIT_FOR_RALLY, "TMPS_WAIT_FOR_RALLY", PICK_STRING(eMPState = TMPS_WAIT_FOR_POINT_WON, "TMPS_WAIT_FOR_POINT_WON", PICK_STRING(eMPState = TMPS_WAIT_FOR_POINT_CHECKS, "TMPS_WAIT_FOR_POINT_CHECKS", PICK_STRING(eMPState = TMPS_WAIT_FOR_CHANGE_SERVERS, "TMPS_WAIT_FOR_CHANGE_SERVERS", PICK_STRING(eMPState = TMPS_WAIT_FOR_INTERSTITIAL, "TMPS_WAIT_FOR_INTERSTITIAL", PICK_STRING(eMPState = TMPS_WAIT_FOR_SIDE_CHANGE, "TMPS_WAIT_FOR_SIDE_CHANGE", PICK_STRING(eMPState = TMPS_WAIT_FOR_OUTRO, "TMPS_WAIT_FOR_OUTRO", PICK_STRING(eMPState = TMPS_WAIT_FOR_FINISH, "TMPS_WAIT_FOR_FINISH", PICK_STRING(eMPState = TMPS_WAIT_FOR_PREPARE_REMATCH, "TMPS_WAIT_FOR_PREPARE_REMATCH", PICK_STRING(eMPState = TMPS_NO_REMATCH, "TMPS_NO_REMATCH", PICK_STRING(eMPState = TMPS_QUIT_THE_GAME, "TMPS_QUIT_THE_GAME", "Unknown TENNIS_MP_STATE enum"))))))))))))))))))))))))) ENDFUNC ENUM TENNIS_MP_SERVER_FLAGS TMS_MOVE_TO_GAME = BIT1, TMS_MOVE_TO_RALLY = BIT2, TMS_MOVE_TO_PREPARE_SERVE = BIT3, TMS_MOVE_TO_OUTRO = BIT4, TMS_MOVE_TO_POINT_WON = BIT5, TMS_MOVE_TO_INTERSTITIAL = BIT6, TMS_MOVE_TO_CHANGE_SERVERS = BIT7, TMS_PREPARE_FOR_DESYNC = BIT8, TMS_RECOVERING_FROM_DESYNC = BIT9, TMS_MOVE_TO_FINISH = BIT10, TMS_MOVE_TO_SIDE_CHANGE = BIT11, TMS_MOVE_TO_PREPARE_REMATCH = BIT12, TMS_MOVE_TO_POINT_CHECKS = BIT13, TMS_IS_REMATCH_FLAG = BIT14, TMS_SIDES_ARE_CHANGED = BIT15 ENDENUM FUNC STRING GET_STRING_FROM_TENNIS_SERVER_FLAG(TENNIS_MP_SERVER_FLAGS eFlag) SWITCH eFlag CASE TMS_MOVE_TO_GAME RETURN "TMS_MOVE_TO_GAME" CASE TMS_MOVE_TO_RALLY RETURN "TMS_MOVE_TO_RALLY" CASE TMS_MOVE_TO_PREPARE_SERVE RETURN "TMS_MOVE_TO_PREPARE_SERVE" CASE TMS_MOVE_TO_OUTRO RETURN "TMS_MOVE_TO_OUTRO" CASE TMS_MOVE_TO_POINT_WON RETURN "TMS_MOVE_TO_POINT_WON" CASE TMS_MOVE_TO_INTERSTITIAL RETURN "TMS_MOVE_TO_INTERSTITIAL" CASE TMS_MOVE_TO_CHANGE_SERVERS RETURN "TMS_MOVE_TO_CHANGE_SERVERS" CASE TMS_PREPARE_FOR_DESYNC RETURN "TMS_PREPARE_FOR_DESYNC" CASE TMS_RECOVERING_FROM_DESYNC RETURN "TMS_RECOVERING_FROM_DESYNC" CASE TMS_MOVE_TO_FINISH RETURN "TMS_MOVE_TO_FINISH" CASE TMS_MOVE_TO_SIDE_CHANGE RETURN "TMS_MOVE_TO_SIDE_CHANGE" CASE TMS_MOVE_TO_PREPARE_REMATCH RETURN "TMS_MOVE_TO_PREPARE_REMATCH" CASE TMS_MOVE_TO_POINT_CHECKS RETURN "TMS_MOVE_TO_POINT_CHECKS" CASE TMS_IS_REMATCH_FLAG RETURN "TMS_IS_REMATCH_FLAG" CASE TMS_SIDES_ARE_CHANGED RETURN "TMS_SIDES_ARE_CHANGED" ENDSWITCH RETURN "unknown TENNIS_MP_SERVER_FLAG" ENDFUNC ENUM TENNIS_MP_CLIENT_FLAGS TMC_BALL_SERVED = BIT0, TMC_INCREASE_SET = BIT1, TMC_SERVER_FAULTED = BIT2, TMC_SERVE_GRADE_FLAG = BIT3, TMC_SYNC_COMPLETE = BIT4, TMC_OPP_OUT_OF_TENNIS_MODE = BIT5, TMC_BALL_HIT = BIT6, TMC_SWITCHED_TO_RUNNING = BIT7, TMC_GAME_WAS_WON = BIT8, TMC_SERVE_PREPARED = BIT9, TMC_ANIM_PLAYING = BIT10, TMC_OOB = BIT11, TMC_FIRST_FAULT = BIT12, TMC_SHOW_QUIT_SCOREBOARD = BIT13, TMC_HIT_BEFORE_BOUNCE = BIT14, TMC_WATCH_THE_COURT = BIT15, //Bit used to tell if the player should be watching the court, set when a ball is hit to us and cleared when we hit the ball TMC_MATCH_IS_OVER = BIT16, TMC_TUT_SKIP = BIT17, TMC_OPP_SEQUENCE_DONE = BIT18, TMC_TB_CHANGE_SIDES = BIT19, TMC_OFF_COURT_MSG_SENT = BIT20, TMC_SHOW_QUIT_LEADERBOARD = BIT21, TMC_WALKING_TO_POS = BIT22, TMC_SPINNER_10SEC_UPDATE = BIT23, TMC_INITIAL_BALL_UPDATE_RECEIVED = BIT24, TMC_BALL_VELOCITY_UPDATE_RECEIVED = BIT25, TMC_BALL_LERP_TO_POS = BIT26, TMC_SEQUENCE_DONE_SENT = BIT27, TMC_MAKE_PLAYERS_INVISIBLE = BIT28, TMC_SC_WALK_STARTED = BIT29, TMC_SKYSWOOP_STARTED = BIT30 ENDENUM FUNC STRING GET_STRING_FROM_TENNIS_CLIENT_FLAG(TENNIS_MP_CLIENT_FLAGS eFlag) SWITCH eFlag CASE TMC_BALL_SERVED RETURN "TMC_BALL_SERVED" CASE TMC_INCREASE_SET RETURN "TMC_INCREASE_SET" CASE TMC_SERVER_FAULTED RETURN "TMC_SERVER_FAULTED" CASE TMC_SERVE_GRADE_FLAG RETURN "TMC_SERVE_GRADE_FLAG" CASE TMC_SYNC_COMPLETE RETURN "TMC_SYNC_COMPLETE" CASE TMC_OPP_OUT_OF_TENNIS_MODE RETURN "TMC_OPP_OUT_OF_TENNIS_MODE" CASE TMC_BALL_HIT RETURN "TMC_BALL_HIT" CASE TMC_SWITCHED_TO_RUNNING RETURN "TMC_SWITCHED_TO_RUNNING" CASE TMC_GAME_WAS_WON RETURN "TMC_GAME_WAS_WON" CASE TMC_SERVE_PREPARED RETURN "TMC_SERVE_PREPARED" CASE TMC_ANIM_PLAYING RETURN "TMC_ANIM_PLAYING" CASE TMC_OOB RETURN "TMC_OOB" CASE TMC_FIRST_FAULT RETURN "TMC_FIRST_FAULT" CASE TMC_SHOW_QUIT_SCOREBOARD RETURN "TMC_SHOW_QUIT_SCOREBOARD" CASE TMC_HIT_BEFORE_BOUNCE RETURN "TMC_HIT_BEFORE_BOUNCE" CASE TMC_WATCH_THE_COURT RETURN "TMC_WATCH_THE_COURT" CASE TMC_MATCH_IS_OVER RETURN "TMC_MATCH_IS_OVER" CASE TMC_TUT_SKIP RETURN "TMC_TUT_SKIP" CASE TMC_OPP_SEQUENCE_DONE RETURN "TMC_OPP_SEQUENCE_DONE" CASE TMC_TB_CHANGE_SIDES RETURN "TMC_TB_CHANGE_SIDES" CASE TMC_OFF_COURT_MSG_SENT RETURN "TMC_OFF_COURT_MSG_SENT" CASE TMC_SHOW_QUIT_LEADERBOARD RETURN "TMC_SHOW_QUIT_LEADERBOARD" CASE TMC_WALKING_TO_POS RETURN "TMC_WALKING_TO_POS" CASE TMC_SPINNER_10SEC_UPDATE RETURN "TMC_SPINNER_10SEC_UPDATE" CASE TMC_INITIAL_BALL_UPDATE_RECEIVED RETURN "TMC_INITIAL_BALL_UPDATE_RECEIVED" CASE TMC_BALL_VELOCITY_UPDATE_RECEIVED RETURN "TMC_BALL_VELOCITY_UPDATE_RECEIVED" CASE TMC_BALL_LERP_TO_POS RETURN "TMC_BALL_LERP_TO_POS" CASE TMC_SEQUENCE_DONE_SENT RETURN "TMC_SEQUENCE_DONE_SENT" CASE TMC_MAKE_PLAYERS_INVISIBLE RETURN "TMC_MAKE_PLAYERS_INVISIBLE" CASE TMC_SC_WALK_STARTED RETURN "TMC_SC_WALK_STARTED" CASE TMC_SKYSWOOP_STARTED RETURN "TMC_SKYSWOOP_STARTED" ENDSWITCH RETURN "Unknown TENNIS_CLIENT_FLAG enum" ENDFUNC