00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef _PLAYER_H_
00018 #define _PLAYER_H_
00019
00020 #include "ai_car.h"
00021
00022
00023
00024
00025
00026 typedef enum
00027 {
00028 PLAYER_NONE = 0,
00029 PLAYER_LOCAL,
00030 PLAYER_REMOTE,
00031 PLAYER_CPU,
00032 PLAYER_GHOST
00033 } PLAYER_TYPE;
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043 typedef struct PlayerStruct
00044 {
00045 long Slot;
00046 PLAYER_TYPE type;
00047 struct PlayerStruct *prev;
00048 struct PlayerStruct *next;
00049 CTRL_TYPE ctrltype;
00050 CTRL_HANDLER ctrlhandler;
00051 CON_HANDLER conhandler;
00052 CTRL controls;
00053
00054 long cartype;
00055 OBJECT *ownobj;
00056
00057 CAR car;
00058 CAR_MODEL carmodels;
00059 struct _CAR_AI CarAI;
00060
00061 long score;
00062 long lastscore;
00063 long raceswon;
00064
00065 REAL PickupCycleType;
00066 REAL PickupCycleSpeed;
00067 long PickupType;
00068 long PickupNum;
00069 OBJECT *PickupTarget;
00070
00071 #ifdef _PC
00072 long Ready;
00073 char PlayerName[MAX_PLAYER_NAME];
00074 DPID PlayerID;
00075 #endif
00076
00077 long ValidRailCamNode;
00078 long LastValidRailCamNode;
00079
00080 } PLAYER;
00081
00082
00083
00084
00085
00086 extern PLAYER Players[MAX_NUM_PLAYERS];
00087 extern PLAYER *PLR_PlayerHead, *PLR_PlayerTail;
00088
00089 extern long NumPlayers;
00090 extern PLAYER *PLR_LocalPlayer;
00091 extern CTRL_TYPE PLR_LocalCtrlType;
00092
00093
00094
00095
00096
00097 extern void PLR_InitPlayers(void);
00098 extern PLAYER *PLR_CreatePlayer(PLAYER_TYPE Type, CTRL_TYPE CtrlType, CAR_TYPE CarType, VEC *Pos, MAT *Mat);
00099 extern void PLR_KillPlayer(PLAYER *Player);
00100 extern void PLR_KillAllPlayers(void);
00101 extern void PLR_SetPlayerType(PLAYER *player, PLAYER_TYPE type);
00102
00103
00104 #endif