// **************************************************************************
// **************************************************************************
// **************************************************************************
// **                                                                      **
// ** TeamData.h                                                    MODULE **
// **                                                                      **
// ** Definitions for team and player attribute and statistics data.       **
// **                                                                      **
// ** Last modified -Kobe 2: 28 Jul 1999 by Mike Knauer, et. al            **
// ** Last modified -Kobe 1: 28 Feb 1998 by John Brandwood                 **
// **                                                                      **
// **************************************************************************
// **************************************************************************
// **************************************************************************

#ifndef __TEAMDATA_h
#define __TEAMDATA_h

#ifndef __LFPTYPES_h
 #include "lfptypes.h"
#endif

//
// GLOBAL DATA STRUCTURES AND DEFINITIONS
//

//
// Conditional Compilation Equates
//

//
// Important constants.
//

#define	FIXEDP_MINUTE       4	// Minutes are stored in 0.25 minute increments.

//
// Player positions (from NBA, stored in rom data structure) ...
//

#define	POS_C               0x01
#define	POS_F               0x02
#define	POS_G               0x03

#define	POS_PF              (POS_F | 0x04)
#define	POS_SF              (POS_F | 0x08)
#define	POS_PG              (POS_G | 0x04)
#define	POS_SG              (POS_G | 0x08)

#define	POS_CF              ((POS_C) | (POS_F << 4))
#define	POS_FC              ((POS_F) | (POS_C << 4))
#define	POS_GF              ((POS_G) | (POS_F << 4))
#define	POS_FG              ((POS_F) | (POS_G << 4))

//
// Player positions on court in current match ...
//

#define	COURT_PG            0x00
#define	COURT_SG            0x01
#define	COURT_SF            0x02
#define	COURT_PF            0x03
#define	COURT_C             0x04

//
// Player attributes ... (ub___pHand)
//

#define	L_HANDED            1
#define	R_HANDED            2

//
// Player attributes ... (ub___pAcc0)
//

#define	PLYR_HAS_LAPAD		0x01
#define	PLYR_HAS_RAPAD		0x02
#define	PLYR_HAS_LWPAD		0x04
#define	PLYR_HAS_RWPAD		0x08
#define	PLYR_HAS_LKPAD		0x10
#define	PLYR_HAS_RKPAD		0x20
#define	PLYR_HAS_SOCKS		0x40

#define	PLYR_HAS_BAPAD		(PLYR_HAS_LAPAD | PLYR_HAS_RAPAD)
#define	PLYR_HAS_BWPAD		(PLYR_HAS_LWPAD | PLYR_HAS_RWPAD)
#define	PLYR_HAS_BKPAD		(PLYR_HAS_LKPAD | PLYR_HAS_RKPAD)

//
// Player attributes ... (ub___pAcc1)
//

#define	PLYR_PADS_MASK      0x07

#define	PLYR_PADS_TEAM      0x00
#define	PLYR_PADS_RED       0x01
#define	PLYR_PADS_WHITE     0x02
#define	PLYR_PADS_BLUE      0x03
#define	PLYR_PADS_BLACK     0x04

#define	PLYR_HEAD_MASK      0x38

#define	PLYR_HEAD_NORMAL    0x00
#define	PLYR_HEAD_BLOCK     0x08
#define	PLYR_HEAD_FLAT      0x10
#define	PLYR_HEAD_HAIR      0x18
#define	PLYR_HEAD_THIN      0x20

#define	PLYR_BODY_MASK      0x40

#define	PLYR_BODY_THIN      0x00
#define	PLYR_BODY_NORMAL    0x40
#define	PLYR_BODY_BUFF      0x80

//
// Team Divisions ...
//

#define CNF_EASTERN         1
#define CNF_WESTERN         2
#define CNF_ALLSTAR         3
#define CNF_SPECIAL         4
#define CNF_NONE            5

#define DIV_ATLANTIC        1
#define DIV_CENTRAL         2
#define DIV_MIDWEST         3
#define DIV_PACIFIC         4
#define DIV_ALLSTAR         5
#define DIV_SPECIAL         6
#define DIV_NONE            7

//
// Team Cities (in alphabetical order) ...
//

#define TEAM_NONE           0

#define TEAM_ATL            1					// Atlanta Hawks
#define TEAM_BOS            2					// Boston Celtics
#define TEAM_CHA            3					// Charlotte Hornets
#define TEAM_CHI            4					// Chicago Bulls
#define TEAM_CLE            5					// Cleveland Cavaliers
#define TEAM_DAL            6					// Dallas Mavericks
#define TEAM_DEN            7					// Denver Nuggets
#define TEAM_DET            8					// Detroit Pistons
#define TEAM_GS             9					// Golden State Warriors
#define TEAM_HOU           10					// Houston Rockets
#define TEAM_IND           11					// Indiana Pacers
#define TEAM_LAC           12					// Los Angeles Clippers
#define TEAM_LAL           13					// Los Angeles Lakers
#define TEAM_MIA           14					// Miami Heat
#define TEAM_MIL           15					// Milwaukee Bucks
#define TEAM_MIN           16					// Minnesota Timberwolves
#define TEAM_NJ            17					// New Jersey Nets
#define TEAM_NY            18					// New York Knicks
#define TEAM_ORL           19					// Orlando Magic
#define TEAM_PHI           20					// Philadelphia 76ers
#define TEAM_PHO           21					// Phoenix Suns
#define TEAM_POR           22					// Portland Trail Blazers
#define TEAM_SAC           23					// Sacramento Kings
#define TEAM_SA            24					// San Antonio Spurs
#define TEAM_SEA           25					// Seattle SuperSonics
#define TEAM_TOR           26					// Toronto Raptors
#define TEAM_UTA           27					// Utah Jazz
#define TEAM_VAN           28					// Vancouver Grizzlies
#define TEAM_WAS           29					// Washington Wizards

#define	TEAM_SSN           29					// Last season team

#define	TEAM_EAS           30					// Eastern All-Stars
#define	TEAM_WES           31					// Western All-Stars

#define	TEAM_LFP           32					// Left Field Lefties
#define	TEAM_NIN           33					// Nintendo Plumbers
#define	TEAM_NOA           34					// Nintendo Gamers

#define TEAM_3PT           35					// 3PT Contest

#define	TEAM_END           35					// Last normal team

#define	TEAM_XXX           36					// Custom Players

#define	TEAM_END_TOTAL     36

//
//
//

#define	MINIMUM_TEAM       TEAM_ATL
#define	MAXIMUM_TEAM       TEAM_NOA
#define	MINIMUM_DIVN       DIV_ATLANTIC
#define	MAXIMUM_DIVN       DIV_SPECIAL

#define	MIN_TEAM_PLYRS     8
#define	MAX_TEAM_PLYRS     12

#define	CUSTOM_PLYRS       20
#define	CUSTOM_HEADS       20

//
// Player Cities ...
//

//
// Mangle physical attributes to fit in a byte.
//

#define	HGT(f,i)            ((f<<4)+i)
#define	WGT(p)              (p-100)
#define	AGE(d,m,y)          (95-y)

//
// Let the compiler know about structures that we forward-reference.
//

struct	TeamRamData_S;
struct	PlyrRamData_S;

//
// Replacement for player stats (for custom players)
//

// For created players, the 1st 30 bytes (of 32) of PlyrCustomInfo_T
//  are saved to mempak along with 32 bytes from the PlyrROMdata
//  WARNING - must be same size as PlyrRamStat_S as it is a union
// for custom players in PlyrRomData_S

typedef struct PlyrCustomInfo_S
	{
	char                asb__pSName[14];		//
	char                asb__pCName[14];		//
	UB                  ub___pCustomHeadType;	// 0-20
// below added 7/13/99 - in place of ub___pChanged???
	UB                  ub___pCustomHairType;	// 0-20
// below removed 7/13/99 - was ub___pChanged ever used????
//	UB                  ub___pChanged;			// 1 if data needs saving
	UB                  ub___pPadding0;			// ** NOT SAVED TO BACKUP **
	UB                  ub___pPadding1;			// ** NOT SAVED TO BACKUP **
	} PlyrCustomInfo_T;

//
// Plyr Statistics.
//

typedef struct PlyrRamStat_S	// used as a pseudo-union with TeamRamStat_S when printing stats
{								// 
	UW                  uw___pGP;				//  0
	UW                  uw___pDQ;				//  2
	UW                  uw___pFGM;				//  4 (just FGM, not FGM+3PM)
	UW                  uw___pFGA;				//  6 (just FGA, not FGA+3PA)
	UW                  uw___p3PM;				//  8
	UW                  uw___p3PA;				// 10
	UW                  uw___pFTM;				// 12
	UW                  uw___pFTA;				// 14
	UW                  uw___pAST;				// 16
	UW                  uw___pSTL;				// 18
	UW                  uw___pBLK;				// 20
	UW                  uw___pDEF;				// 22
	UW                  uw___pOFF;				// 24
	UW                  uw___pPF;				// 26
	UW                  uw___pTO;				// 28
	UW                  uw___pMIN;				// 30 (1/4 minute resolution)
//	UW                  uw___pPadding;			// 30
	} PlyrRamStat_T;							// 32

//
// ROM Player Data Structure Definition
//


#define PLAYER_INDEX_MASK		0x01ffu		// lower 9 bits of roster,
#define	PLAYER_START_POS_MASK	0x0e00u		// bits 9,10,11 of roster
#define	PLAYER_START_POS_SHIFT	9			// 
#define	SHIFTED_PLAYER_START_POS_MASK	\
		(PLAYER_START_POS_MASK>>PLAYER_START_POS_SHIFT)		// now bits0-2


#define CREATED_PLAYER_SAVED_BYTES	(32+30)

typedef	struct PlyrRomData_S
	{
	char *              pcz__pSName;			//  0
	char *              pcz__pCName;			//  4

	UW                  uw___pIndx;				//  8
	UW                  pAttrOverall;			// 10

// for created players - the next 32 bytes are saved to mempak
// along with the 1st 30 bytes of cl___pStatNBA (which is really a union
// with PlyrCustomInfo_S)

	UB                  ub___pTeam;				// 12
	UB                  ub___pNum;				// 13
	UB                  ub___pPos;				// 14
	UB                  ub___pHgt;				// 15
	UB                  ub___pWgt;				// 16
	UB                  ub___pAge;				// 17
	UB                  ub___pExp;				// 18
	UB                  ub___pSkin;				// 19
	UB                  ub___pAcc0;				// 20
	UB                  ub___pAcc1;				// 21
	UB                  ub___pDunks;			// 22
	UB                  ub___pPostUps;		// 23

	UB                  ub___pAttrRange;	// 24
	UB                  ub___pAttrFG;			// 25
	UB                  ub___pAttr3P;			// 26
	UB                  ub___pAttrFT;			// 27
	UB                  ub___pAttrRebOff;		// 28
	UB                  ub___pAttrRebDef;		// 29
	UB                  ub___pAttrSteal;		// 30
	UB                  ub___pAttrPass;			// 31
	UB                  ub___pAttrBlock;		// 32
	UB                  ub___pAttrFoul;			// 33
	UB                  ub___pAttrDribble;		// 34
	UB                  ub___pAttrSpeed;		// 35
	UB                  ub___pAttrJump;			// 36
	UB                  ub___pAttrDunk;			// 37
	UB                  ub___pAttrGoto;			// 38
	UB                  ub___pAttrStrength;		// 39
	UB                  ub___pAttrStamina;		// 40
	UB                  ub___pAttrInjury;		// 41

	UB					pAttrDefense;			// 42
	UB					pad;					// 43

// NBA stats don't exist for created players, so we put their name here
// (i.e. it's a union with PlyrCustomInfo_T;)
	PlyrRamStat_T       cl___pStatNBA;			// 44

	} PlyrRomData_T;							// 76

//
// ROM Player Simulation Structure Definition
//

typedef struct PlyrSimData_S
	{
	UW                  uw___pMINpg;			//  0 (8.8 fixed-point)
	UW                  uw___pFGpct;			//  2 (8.8 fixed-point)
	UW                  uw___p3Ppct;			//  4 (8.8 fixed-point)
	UW                  uw___pFTpct;			//  6 (8.8 fixed-point)
	UW                  uw___pFGApm;			//  8 (8.8 fixed-point)
	UW                  uw___p3PApm;			// 10 (8.8 fixed-point)
	UW                  uw___pFTApm;			// 12 (8.8 fixed-point)
	UW                  uw___pASTpm;			// 14 (8.8 fixed-point)
	UW                  uw___pSTLpm;			// 16 (8.8 fixed-point)
	UW                  uw___pBLKpm;			// 18 (8.8 fixed-point)
	UW                  uw___pDEFpm;			// 20 (8.8 fixed-point)
	UW                  uw___pOFFpm;			// 22 (8.8 fixed-point)
	UW                  uw___pTOpm;				// 24 (8.8 fixed-point)
	UW                  uw___pPFpm;				// 26 (8.8 fixed-point)
	} PlyrSimData_T;							// 28


typedef struct _extraGameStats	
{
	UW	NumDunks;
	UW  NumFastBreakPoints;		
	UW	BasketsFromZones[6];

	UW  FlagrantFouls;
	UW	PadThisStructureTo32Bytes;	// 

// following used in Arcade Mode
	UW	Num5PA;
	UW	Num5PM;
	UW	Num10PA;
	UW	Num10PM;
	UW	Num15PA;
	UW	Num15PM;

}	ExtraGameStats_T;	// new for rookie mode(but all players can use 

//
// RAM Player Data Structure Definition
//

typedef struct PlyrRamData_S	// for the 24 players involved in a game
	{
	PlyrRomData_T *         pcl__pPlyrRom;
	struct TeamRamData_S *  pcl__pTeamRam;

	UB *                pub__pPlyrTex;		// Ptr to texture data
	UB *                pub__pPlyrImg;		// Ptr to photo

	SB                  sb___pRamTeam;		// Plyr's team (needed for All-Stars)
	SB                  sb___pRamIndx;		// Position 0-n in team list.
	SB                  sb___pOnCourt;		// Position 0-4 or -ve=none.
	SB                  sb___pChanged;		// NZ if just substituted in.

	SI                  si___pTimeOnCourt;	// Incremented at 30Hz.

	SW                  sw___pEnergy;		// 8.8 fixed point, 0-99.
	UW                  uw___pPoints;

	PlyrRamStat_T       cl___pStatGame;
	PlyrRamStat_T       cl___pStatSeason;
	PlyrRamStat_T       cl___pStatPlayoff;
	
	ExtraGameStats_T	ExtraPlayerGameStats;	// new for rookie mode & arcade mode

	} PlyrRamData_T;

#define MAX_PLAYER_ENERGY	((99<<8) + 255)	// in PlyrRamData_T->sw___pEnergy

//
// Team statistics.
//

//  changed tGP, tGW to 16 bit handle users teams 7/20/99- mjk
typedef struct TeamRamStat_S	// note - must match PlyrRamStat_S for correct stats displaying
	{
	UW                  uw___tGP;				//  0
	UW                  uw___tGW;				//  2
	UW                  uw___tFGM;				//  4 (just FGM, not FGM+3PM)
	UW                  uw___tFGA;				//  6 (just FGA, not FGA+3PA)
	UW                  uw___t3PM;				//  8
	UW                  uw___t3PA;				// 10
	UW                  uw___tFTM;				// 12
	UW                  uw___tFTA;				// 14
	UW                  uw___tAST;				// 16
	UW                  uw___tSTL;				// 18
	UW                  uw___tBLK;				// 20
	UW                  uw___tDEF;				// 22
	UW                  uw___tOFF;				// 24
	UW                  uw___tPF;				// 26
	UW                  uw___tTO;				// 28
	UW                  uw___tTF;				// 30 - team fouls (reset every qtr)

	} TeamRamStat_T;							// 32


/***********
typedef struct TeamEepStat_S		obsolete for Kobe 2
	{
	UB                  ub___tGP;				//  0
	UB                  ub___tGW;				//  1
	UW                  uw___tFGM;				//  2 (just FGM, not FGM+3PM)
	UW                  uw___tFGA;				//  4 (just FGA, not FGA+3PA)
	UW                  uw___t3PM;				//  6
	UW                  uw___t3PA;				//  8
	UW                  uw___tFTM;				// 10
	UW                  uw___tFTA;				// 12
	} TeamEepStat_T;							// 14
************/


//
// ROM Team Data Structure Definition
//

typedef struct TeamRomData_S
	{
	char *              pcz__tCity;				//  0
	char *              pcz__tName;				//  4
	char *              pcz__tAbbr;				//  8
	char *              pcz__tCityName;			// 12

	UB                  ub___tConference;		// 16
	UB                  ub___tDivision;			// 17
	UB                  ub___tTeam;				// 18
	UB					ub___tRatScoring;		// 19
	UB					ub___tRatRebound;		// 20
	UB					ub___tRatControl;		// 21
	UB					ub___tRatDefense;		// 22
	UB					ub___tRatOverall;		// 23

	UB					ub___tDefaultSet0;		// 24
	UB					ub___tDefaultSet1;		// 25

	UB					GnG;					// 26
	UB					OffRo;					// 27
	UB					SetPicks;					// 28

	UB					pad[3];					// 29

	TeamRamStat_T       cl___tStatNBA;			// 32

	} TeamRomData_T;							// 60

//
// RAM Team Data Structure Definition
//

typedef struct TeamRamData_S	// for the 2 teams in a game
	{
	TeamRomData_T *     pcl__tTeamRom;
	PlyrRamData_T *     pcl__tPlyrRam;	// Array of structs  in alpha order.
	PlyrSimData_T *     pcl__tPlyrSim;	// Array of structs  in court order.
	PlyrRamData_T **    ppcl_tPlyrLst;	// Array of pointers in court order.
	UB *                pub__tPlyrTex;
	UB *                pub__tPlyrImg;

// free agent team in draft mode has > 128 players 4/29/99 mjk
//	SB                  sb___tPlayers;
	SW                  sb___tPlayers;	
	SB					sb___padding0;	// keep even # of bytes in struct
	SB                  asb__tPlaying [5];
	SB                  asb__tStarter [5];

	UB                  ub___tInAMatch;
	UB                  ub___tTimeOuts;
	UB                  ub___tWon;
	UW                  uw___tPoints;

	TeamRamStat_T       cl___tStatGame;
	TeamRamStat_T       cl___tStatSeason;
	TeamRamStat_T       cl___tStatPlayoff;

	SI					si___tLastScored;
	SI					si___tLastDrought;

	ExtraGameStats_T		ExtraTeamGameStats;	// new for rookie mode & arcade mode

	} TeamRamData_T;

//
// Match Options Source (n.b. the order is important).
//

#define	SOURCE_GAM          0
#define	SOURCE_PRE          1
#define	SOURCE_SSN          2
#define	SOURCE_PLY          3
#define	SOURCE_PRF          4
#define	SOURCE_PRF1         5	// only for Preferences during PAUSE in practice mode

#define	SOURCE_NBA          1

//
// Match Options (currently 36 bytes long).
//

typedef	struct Options_S	//don't re-arrange these - order is highly important (see asb__sOptionPtr)
	{
	SB                  sb___OptionSrc;				// 0
	SB                  sb___OptionTyp;				// 1
	SB                  sb___SeasonLength;			// 2
	SB                  sb___TradeDeadline;			// 3
	SB                  sb___PlayoffSource;			// 4
	SB                  sb___PlayoffLength;			// 5
//	SB                  sb___CustomRoster;			// 6
	SB                  sb___GameSpeed;				// 6
	SB                  sb___QuarterLen;			// 7
	SB                  sb___Difficulty;			// 8
	SB                  sb___DefFouls;				// 9
	SB                  sb___OffFouls;				// 10
	SB                  sb___FoulOuts;				// 11
	SB                  sb___OutOfBounds;			// 12
	SB                  sb___BackCourt;				// 13
	SB                  sb___Traveling;				// 14
	SB                  sb___GoalTending;			// 15
	SB                  sb___IllegalDef;			// 16
	SB                  sb___3InTheKey;				// 17
	SB                  sb___5SecInbounds;			// 18
	SB                  sb___10SecHalfcourt;		// 19
	SB                  sb___ShotClock;				// 20
	SB                  sb___Fatigue;				// 21
	SB                  sb___Injuries;				// 22
	SB                  sb___DraftMode;				// 23 - new for Kobe 2

	SW                  sw___PlayoffIndx;			// 24
	SW                  sw___SeasonMatch;			// 26
	UD                  ud___SeasonTeams;			// 28
	UD                  ud___PlayoffTeams;			// 32
	} Options_T;									// 36

typedef	struct Preferences_S
	{
	UD                  ud___PrefChecksum;			// 0
	SB                  sb___PrefVersion;			// 4
	SB                  sb___PrefRandom;			// 5
	SB                  sb___VolMusic;				// 6
	SB                  sb___VolSound;				// 7
	SB                  sb___VolCrowd;				// 8
	SB                  sb___VolSpeech;				// 9
	SB                  sb___Mono;					// 10 - (Slo-mo dunks for Kobe 2)
	SB                  sb___SpecialCameras;		// 11
	SB                  sb___IndicatePlayer;		// 12
	SB                  sb___IndicatePassing;		// 13
	SB                  sb___IndicateRebound;		// 14
	SB                  sb___IndicateTurbo;			// 15
	SB                  sb___ShowClock;				// 16
	SB                  sb___ShowStatistics;		// 17
	SB                  sb___AutoPlyrSwitch;		// 18
	UB                  ub___ZoomSetting;			// 19
	SB                  sb___MomentumMeter;				// 20
	SB                  sb___Padding1;				// 21
	SB                  sb___Padding2;				// 22
	SB                  sb___Padding3;				// 23
	} Preferences_T;								// 24

//
// Current Match.
//

#define	HOME_TEAM           0
#define	AWAY_TEAM           1
#define	NULL_TEAM           2
#define	BOTH_TEAM           3					// Only used in the shell.
#define	EVERYBODY           4					// Only used in the shell.

typedef	struct ThisMatch_S
	{
	SB                      asb__mPads[4];		// 0=HOME 1=AWAY 2=NONE
	UD                      ud___mNewPads;		// NZ when pad asign changes
	SW                      asb__mTeam[2];		// need upper bits for easter flags
//	SB                      asb__mTeam[2];
	SB                      sb___mMaxTeamFouls;
	SB                      sb___mMaxPlyrFouls;
	SB                      sb___mQuarter;		// 0-3, or 4 for overtime
	SB                      sb___mEditing;		// 0=HOME 1=AWAY
//	SB                      sb___mPadding1; removed when Mteam became a WORD
//	SB                      sb___mPadding2;
	SI                      si___m30HzClk;		// (use Mike's instead)
	Options_T *             pcl__mOptions;
	TeamRomData_T *         apcl_mTeamRom[2];
	TeamRamData_T *         apcl_mTeamRam[2];
} ThisMatch_T;

#define	EASTER_TEAM_SHIFT	6		// references asb__mTeam[2];
#define	EASTER_TEAM_MASK	0x3f	// references asb__mTeam[2];




// ------------    User Team  stuff -----------------------------



#define USER_NAME_MAX_LEN	16
#define MAX_CUSTOM_USERS	20

typedef struct userteaminfo {

	char			UserName[USER_NAME_MAX_LEN];	//  0
	TeamRamStat_T	UserTeamStats;					// 16
	int				PadMode;						// 48	rookie or pro
} UserTeamInfo_T;									//52



typedef struct  saveCUData {

	UD		ud___Checksum;						// 0
	SB		sb___Version;						// 4	
	SB		sb___Random;						// 5
	SB		sb___Pad0;							// 6
	SB		sb___Pad1;							// 7

	UserTeamInfo_T UserTeams[MAX_CUSTOM_USERS];	 //8	

} saveCUData_T;									// 8 + (48*20) = 1048    //8 + (48*20) = 968






//
// Season Schedule.
//

// F E D C B A 9 8 7 6 5 4 3 2 1 0
//
// 1 h q c <away_team> <home_team>
//
// 0 <-y-> <-mon-> <--dat--> <day>
//
//   h==1 if match is included in half season
//   q==1 if match is included in quarter season
//   c==1 if match is included in conference-only season
//
//   y==(year-1997)
// day==1-7
// dat==1-31
// mon==1-12
//
// 0x8000u marks the end of the season

#define	SCHEDULE_END        0x0000u

#define	IS_A_GAME           0x8000u

#define	IS_IN_F_SEASON      0x8000u
#define	IS_IN_H_SEASON      0x4000u
#define	IS_IN_Q_SEASON      0x2000u
#define	IS_IN_C_SEASON      0x1000u

#define	SCHEDULE_HOME(x)    (0x003Fu & (x))
#define	SCHEDULE_AWAY(x)    (0x003Fu & (x >>  6))

#define	SCHEDULE_DAY(x)     (0x0007u & (x))
#define	SCHEDULE_DATE(x)    (0x001Fu & (x >>  3))
#define	SCHEDULE_MONTH(x)   (0x000Fu & (x >>  8))
#define	SCHEDULE_YEAR(x)    (0x0007u & (x >> 12))

//
// GLOBAL VARIABLES
//

//
// GLOBAL FUNCTION PROTOTYPES
//

//
// End Of __TEAMDATA_h
//

#endif



// **************************************************************************
// **************************************************************************
// **************************************************************************
//	END OF TEAMDATA.H
// **************************************************************************
// **************************************************************************
// **************************************************************************

