#ifndef _NEWGAME_H_
#define _NEWGAME_H_
#include "brender/br_types.h"
#include "dr_types.h"
extern tU8* gFrank_flic_data;
extern tU8* gAnne_flic_data;
extern int gNet_storage_allocated;
extern tRadio_bastards gRadio_bastards__newgame[11]; // suffix added to avoid duplicate symbol
extern char* gBasic_car_names[2];
extern tNet_game_options gNet_settings[8];
extern tJoinable_game gGames_to_join[6];
extern tNet_game_options* gOptions;
extern int gNet_target[7];
extern int gLast_graph_sel__newgame; // suffix added to avoid duplicate symbol
extern tInterface_spec* gThe_interface_spec__newgame; // suffix added to avoid duplicate symbol
extern tNet_sequence_type gNet_race_sequence__newgame; // suffix added to avoid duplicate symbol
extern tNet_game_type gLast_game_type;
extern int gCurrent_net_game_count;
extern tU32 gAnne_flic_data_length;
extern int gShifted_default_yet;
extern char* gNet_name;
extern tU32 gFrank_flic_data_length;
extern int gLast_net_choose_box;
extern int gCurrent_game_selection;
extern int gRace_index;
extern int gRadio_selected;
void StartRollingPlayerNamesIn(void);
void FrankAnneStart1(void);
void FrankAnneStart2(void);
void GetPlayerName(int pStarting_to_type, int pCurrent_choice, char* pString, int* pMax_length);
int FrankAnneDone(int pCurrent_choice, int pCurrent_mode, int pGo_ahead, int pEscaped, int pTimed_out);
void FrankAnneDraw(int pCurrent_choice, int pCurrent_mode);
int FrankieOrAnnie(void);
int SelectSkillLevel(void);
int DoOnePlayerStart(void);
int NewNetGameUp(int* pCurrent_choice, int* pCurrent_mode);
int NewNetGameDown(int* pCurrent_choice, int* pCurrent_mode);
void DisposeJoinableGame(int pIndex);
void DrawAnItem__newgame(int pX, int pY_index, int pFont_index, char* pText);
void DrawColumnHeading__newgame(int pStr_index, int pX);
void DrawGames(int pCurrent_choice, int pCurrent_mode);
void InitGamesToJoin(void);
void DisposeJoinList(int pExemption);
void AddToJoinList(tNet_game_details* pGame);
void NewNetStart1(void);
void NewNetStart2(void);
void NewNetGetName(int pStarting_to_type, int pCurrent_choice, char* pString, int* pMax_length);
int NewNetDone(int pCurrent_choice, int pCurrent_mode, int pGo_ahead, int pEscaped, int pTimed_out);
int NewNetGoAhead(int* pCurrent_choice, int* pCurrent_mode);
tJoin_or_host_result JoinOrHostGame(tNet_game_details** pGame_to_join);
void GetNetOptions(tNet_game_options* pGame_options);
void SetNetOptions(tNet_game_options* pGame_options);
void NetPlayCheckboxOn2(int pIndex);
void NetPlayCheckboxOff2(int pIndex);
void NetPlayCheckboxOn(int pIndex);
void NetPlayCheckboxOff(int pIndex);
void NetPlayRadioOn2(int pIndex, int pValue);
void NetPlayRadioOff2(int pIndex, int pValue);
void NetPlayRadioOn(int pIndex, int pValue);
void NetPlayRadioOff(int pIndex, int pValue);
void DrawNOptInitialRadios(void);
void NetRadioChanged(int pIndex, int pNew_value);
void NetCheckboxChanged(int pIndex);
int NetOptLeft(int* pCurrent_choice, int* pCurrent_mode);
int NetOptRight(int* pCurrent_choice, int* pCurrent_mode);
int NetOptUp(int* pCurrent_choice, int* pCurrent_mode);
int NetOptDown(int* pCurrent_choice, int* pCurrent_mode);
int NetRadioClick(int* pCurrent_choice, int* pCurrent_mode, int pX_offset, int pY_offset);
void RevertToDefaults(void);
void DefaultNetSettings(void);
int NetOptGoAhead(int* pCurrent_choice, int* pCurrent_mode);
void NetPlotAGraphBox(int pIndex, int pColour_value);
void NetDrawAGraphBox(int pIndex);
void NetEraseAGraphBox(int pIndex);
void DrawNetOptBox(int pCurrent_choice, int pCurrent_mode);
void DoNetOptions(tNet_game_options* pGame_options);
// Suffix added to avoid duplicate symbol
void PlayRadioOn__newgame(int pIndex);
// Suffix added to avoid duplicate symbol
void PlayRadioOff__newgame(int pIndex);
void SetOptions(tNet_game_type pGame_type, tNet_game_options* pGame_options);
void DrawNetChooseInitial(void);
int NetChooseGoAhead(int* pCurrent_choice, int* pCurrent_mode);
// Suffix added to avoid duplicate symbol
void PlotAGraphBox__newgame(int pIndex, int pColour_value);
// Suffix added to avoid duplicate symbol
void DrawAGraphBox__newgame(int pIndex);
// Suffix added to avoid duplicate symbol
void EraseAGraphBox__newgame(int pIndex);
void DrawNetChoose(int pCurrent_choice, int pCurrent_mode);
int NetChooseLR(int* pCurrent_choice, int* pCurrent_mode);
void SetGameTarget(tNet_game_type* pGame_type, tNet_game_options* pGame_options);
int NetGameChoices(tNet_game_type* pGame_type, tNet_game_options* pGame_options, int* pRace_index);
void ReadNetGameChoices(tNet_game_type* pGame_type, tNet_game_options* pGame_options, int* pRace_index);
int ChooseStartRace(int* pRank);
void SetUpOtherNetThings(tNet_game_details* pNet_game);
void RequestCarDetails(tNet_game_details* pNet_game);
int PickARandomCar(void);
void PollCarDetails(tNet_game_details* pNet_game);
void SetNetAvailability(tNet_game_options* pOptions);
int ChooseNetCar(tNet_game_details* pNet_game, tNet_game_options* pOptions, int* pCar_index, int pIm_the_host_so_fuck_off);
void InitNetStorageSpace(void);
void DisposeNetStorageSpace(void);
int DoMultiPlayerStart(void);
#endif