#ifndef _NETGAME_H_
#define _NETGAME_H_
#include "brender/br_types.h"
#include "dr_types.h"
extern int gPowerup_cost[4];
extern int gGame_scores[6];
extern int gPed_target;
extern int gNot_shown_race_type_headup;
extern tU32 gLast_it_change;
extern tU32 gTime_for_punishment;
extern tNet_game_player_info* gLast_lepper;
extern int gInitialised_grid;
extern int gIt_or_fox;
void SendCarData(tU32 pNext_frame_time);
void ReceivedRecover(tNet_contents* pContents);
void CopyMechanics(tCar_spec* pCar, tNet_contents* pContents);
void ReceivedMechanics(tNet_contents* pContents);
void ReceivedCopInfo(tNet_contents* pContents);
void SendAllNonCarPositions(void);
void ReceivedNonCarPosition(tNet_contents* pContents);
void ReceivedNonCar(tNet_contents* pContents);
void SignalToStartRace2(int pIndex);
void SignalToStartRace(void);
void SetUpNetCarPositions(void);
void ReinitialiseCar(tCar_spec* pCar);
void RepositionPlayer(int pIndex);
void DisableCar(tCar_spec* pCar);
void EnableCar(tCar_spec* pCar);
void DoNetworkHeadups(int pCredits);
int SortNetHeadAscending(void* pFirst_one, void* pSecond_one);
int SortNetHeadDescending(void* pFirst_one, void* pSecond_one);
void ClipName(char* pName, tDR_font* pFont, int pMax_width);
void DoNetScores2(int pOnly_sort_scores);
void DoNetScores(void);
void InitNetHeadups(void);
void DisposeNetHeadups(void);
void EverybodysLost(void);
void DeclareWinner(int pWinner_index);
void PlayerIsIt(tNet_game_player_info* pPlayer);
int FarEnoughAway(tNet_game_player_info* pPlayer_1, tNet_game_player_info* pPlayer_2);
void CarInContactWithItOrFox(tNet_game_player_info* pPlayer);
void SelectRandomItOrFox(int pNot_this_one);
void CalcPlayerScores(void);
void SendPlayerScores(void);
void DoNetGameManagement(void);
void InitialisePlayerScore(tNet_game_player_info* pPlayer);
void InitPlayers(void);
void BuyPSPowerup(int pIndex);
void BuyArmour(void);
void BuyPower(void);
void BuyOffense(void);
void UseGeneralScore(int pScore);
void NetSendEnvironmentChanges(tNet_game_player_info* pPlayer);
void UpdateEnvironments(void);
void ReceivedGameplay(tNet_contents* pContents, tNet_message* pMessage, tU32 pReceive_time);
void SendGameplay(tPlayer_ID pPlayer, tNet_gameplay_mess pMess, int pParam_1, int pParam_2, int pParam_3, int pParam_4);
void SendGameplayToAllPlayers(tNet_gameplay_mess pMess, int pParam_1, int pParam_2, int pParam_3, int pParam_4);
void SendGameplayToHost(tNet_gameplay_mess pMess, int pParam_1, int pParam_2, int pParam_3, int pParam_4);
void InitNetGameplayStuff(void);
void DefaultNetName(void);
void NetSendPointCrush(tCar_spec* pCar, tU16 pCrush_point_index, br_vector3* pEnergy_vector);
void RecievedCrushPoint(tNet_contents* pContents);
void GetReducedMatrix(tReduced_matrix* m1, br_matrix34* m2);
void GetExpandedMatrix(br_matrix34* m1, tReduced_matrix* m2);
void NetEarnCredits(tNet_game_player_info* pPlayer, tS32 pCredits);
#endif