#ifndef _CONTROLS_H_
#define _CONTROLS_H_

#include "dr_types.h"

extern tToggle_element gToggle_array[43];
extern int gRepair_last_time;
extern int gHad_auto_recover;
extern tU32 gLast_repair_time;
extern tEdit_mode gWhich_edit_mode;
extern char* gEdit_mode_names[10];
extern tEdit_func* gEdit_funcs[10][18][8];
extern tCheat gKev_keys[44];
extern int gAllow_car_flying;
extern int gEntering_message;
extern tU32 gPalette_fade_time;
extern char* gAbuse_text[10];
extern char gString[84];
extern int gToo_late;
extern int gRecover_timer;
extern int gRecovery_voucher_count;
extern int gInstant_handbrake;
extern int gAuto_repair;

void AbortRace(void);

void F4Key(void);

void SetFlag(int i);

void FinishLap(int i);

void EnsureSpecialVolumesHidden(void);

void ShowSpecialVolumesIfRequ(void);

void DoEditModeKey(int pIndex);

void F5Key(void);

void F6Key(void);

void F7Key(void);

void F8Key(void);

void F10Key(void);

void F11Key(void);

void F12Key(void);

void NumberKey0(void);

void NumberKey1(void);

void NumberKey2(void);

void NumberKey3(void);

void NumberKey4(void);

void NumberKey5(void);

void NumberKey6(void);

void NumberKey7(void);

void NumberKey8(void);

void NumberKey9(void);

void LookLeft(void);

void LookForward(void);

void LookRight(void);

void DamageTest(void);

void TDamageEngine(void);

void TDamageDriver(void);

void TDamageTrans(void);

void TDamageSteering(void);

void TDamageLFWheel(void);

void TDamageLFBrake(void);

void TDamageLRBrake(void);

void TDamageLRWheel(void);

void TDamageRFWheel(void);

void TDamageRFBrake(void);

void TDamageRRBrake(void);

void TDamageRRWheel(void);

void MoveBonnetForward(void);

void SaveBonnet(void);

void MoveBonnetBackward(void);

void MoveBonnetLeft(void);

void ShrinkBonnetX(void);

void SwellBonnetX(void);

void ShrinkBonnetY(void);

void SwellBonnetY(void);

void ShrinkBonnetZ(void);

void SwellBonnetZ(void);

void MoveBonnetDown(void);

void MoveBonnetRight(void);

void MoveBonnetUp(void);

void TiltBonnetDownX(void);

void TiltBonnetUpX(void);

void TiltBonnetDownY(void);

void TiltBonnetUpY(void);

void TiltBonnetDownZ(void);

void TiltBonnetUpZ(void);

void ToggleCockpit(void);

void ToggleMirror(void);

void ConcussMe(void);

void CheckHelp(void);

void CheckLoadSave(void);

void CheckToggles(int pRacing);

int CarWorldOffFallenCheckThingy(tCar_spec* pCar, int pCheck_around);

int HasCarFallenOffWorld(tCar_spec* pCar);

void CheckForBeingOutOfThisWorld(void);

void CheckHornLocal(tCar_spec* pCar);

void CheckHorn3D(tCar_spec* pCar);

void CheckHorns(void);

void SetRecovery(void);

void RecoverCar(void);

void CheckMapRenderMove(void);

void ExplodeCar(tCar_spec* pCar);

void CheckRecoveryOfCars(tU32 pEndFrameTime);

void LoseSomePSPowerups(int pNumber);

void CheckOtherRacingKeys(void);

int CheckRecoverCost(void);

void SortOutRecover(tCar_spec* pCar);

void SetFlipUpCar(tCar_spec* pCar);

void FlipUpCar(tCar_spec* car);

void GetPowerup(int pNum);

void CheckSystemKeys(int pRacing);

void CheckKevKeys(void);

void BrakeInstantly(void);

void PollCarControls(tU32 pTime_difference);

void PollCameraControls(tU32 pTime_difference);

void SetFlag2(int i);

void ToggleFlying(void);

void ToggleInvulnerability(void);

void MoreTime(void);

void MuchMoreTime(void);

void ToggleTimerFreeze(void);

void EarnDosh(void);

void LoseDosh(void);

void ToggleMap(void);

int HornBlowing(void);

void ToggleArrow(void);

int GetRecoverVoucherCount(void);

void AddVouchers(int pCount);

void ResetRecoveryVouchers(void);

void CycleCarTexturingLevel(void);

void CycleWallTexturingLevel(void);

void CycleRoadTexturingLevel(void);

void CycleYonFactor(void);

void SetSoundDetailLevel(int pLevel);

void ReallySetSoundDetailLevel(int pLevel);

int GetSoundDetailLevel(void);

void CycleSoundDetailLevel(void);

void CycleCarSimplificationLevel(void);

void ToggleAccessoryRendering(void);

void ToggleSmoke(void);

void DrawSomeText2(tDR_font* pFont);

void DrawSomeText(void);

void SaySorryYouLittleBastard(void);

void UserSendMessage(void);

void EnterUserMessage(void);

void DisplayUserMessage(void);

void InitAbuseomatic(void);

void DisposeAbuseomatic(void);

#endif
