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

89 lines
3.0 KiB
XML
Executable File

USING "minigames_helpers.sch"
USING "minigame_UIInputs.sch"
USING "tennis_debug.sch"
/// PURPOSE:
ENUM PLAYING_COURT
TENNIS_COURT_MichaelHouse,
TENNIS_COURT_CountryClub,
TENNIS_COURT_VinewoodHotel1,
TENNIS_COURT_RichmanHotel1,
TENNIS_COURT_LSUCourt1,
TENNIS_COURT_VespucciHotel,
TENNIS_COURT_WeazelCourt1,
TENNIS_COURT_chumashHotel,
TENNIS_COURT_DamVista,
TENNIS_COURT_Ambient
ENDENUM
FUNC STRING GET_STRING_FROM_TENNIS_PLAYING_COURT(PLAYING_COURT eCourt)
RETURN PICK_STRING(eCourt = TENNIS_COURT_MichaelHouse, "TENNIS_COURT_MichaelHouse",
PICK_STRING(eCourt = TENNIS_COURT_CountryClub, "TENNIS_COURT_CountryClub",
PICK_STRING(eCourt = TENNIS_COURT_VinewoodHotel1, "TENNIS_COURT_VinewoodHotel1",
PICK_STRING(eCourt = TENNIS_COURT_RichmanHotel1, "TENNIS_COURT_RichmanHotel1",
PICK_STRING(eCourt = TENNIS_COURT_LSUCourt1, "TENNIS_COURT_LSUCourt1",
PICK_STRING(eCourt = TENNIS_COURT_VespucciHotel, "TENNIS_COURT_VespucciHotel",
PICK_STRING(eCourt = TENNIS_COURT_WeazelCourt1, "TENNIS_COURT_WeazelCourt1",
PICK_STRING(eCourt = TENNIS_COURT_chumashHotel, "TENNIS_COURT_chumashHotel",
"Unknown PLAYING_COURT_ENUM"))))))))
ENDFUNC
FUNC STRING GET_STRING_LABEL_FROM_TENNIS_PLAYING_COURT(PLAYING_COURT eCourt)
SWITCH eCourt
CASE TENNIS_COURT_CountryClub RETURN "VESP_HEADER"
CASE TENNIS_COURT_MichaelHouse RETURN "MIKE_HEADER"
CASE TENNIS_COURT_VespucciHotel RETURN "VESP_APTS"
CASE TENNIS_COURT_VinewoodHotel1 RETURN "VINE_APTS"
CASE TENNIS_COURT_LSUCourt1 RETURN "LSU_COURT"
CASE TENNIS_COURT_WeazelCourt1 RETURN "WEAZEL_COURT"
CASE TENNIS_COURT_chumashHotel RETURN "CHUMASH_HOTEL"
CASE TENNIS_COURT_RichmanHotel1 RETURN "RICHMAN_HOTEL"
ENDSWITCH
CDEBUG2LN(DEBUG_TENNIS, "GET_STRING_LABEL_FROM_TENNIS_PLAYING_COURT returning default, contact Rob Pearsall, eCourt=", eCourt)
RETURN "VESP_HEADER"
ENDFUNC
ENUM COURT_SIDE_ENUM
NEAR_COURT,
FAR_COURT
ENDENUM
STRUCT TENNIS_COURT
PLAYING_COURT eTennisCourt
FLOAT fWidth, fCourtServiceRatio
VECTOR vCourtCorners[4] // Coordinates 0 1 = baseline 1 2 = sideline 2 3 opp baseline 3 0 = sideline
VECTOR vServiceCorners[4]
VECTOR vCenterCourt
VECTOR vNetSideline[2]
VECTOR vNetTop[3]
VECTOR vForwardNorm, vRightNorm
VECTOR vLauncherPoint
ENDSTRUCT
PROC SET_TENNIS_COURT_SERVICE_RATIO(TENNIS_COURT &thisCourt, FLOAT fNewRatio)
thisCourt.fCourtServiceRatio = fNewRatio
ENDPROC
FUNC FLOAT GET_TENNIS_COURT_SERVICE_RATIO(TENNIS_COURT &thisCourt)
RETURN thisCourt.fCourtServiceRatio
ENDFUNC
PROC SET_TENNIS_COURT_WIDTH(TENNIS_COURT &thisCourt, FLOAT fNewWidth)
CPRINTLN(DEBUG_TENNIS, "SET_TENNIS_COURT_WIDTH called, fNewWidth=", fNewWidth)
thisCourt.fWidth = fNewWidth
ENDPROC
FUNC FLOAT GET_TENNIS_COURT_WIDTH(TENNIS_COURT &thisCourt)
RETURN thisCourt.fWidth
ENDFUNC
PROC SET_TENNIS_PLAYING_COURT(TENNIS_COURT &thisCourt, PLAYING_COURT newCourt)
thisCourt.eTennisCourt = newCourt
ENDPROC
FUNC PLAYING_COURT GET_TENNIS_PLAYING_COURT(TENNIS_COURT &thisCourt)
RETURN thisCourt.eTennisCourt
ENDFUNC