#pragma once#include <ctype.h>#include "WindowManager.h"#define FULLSCREENRESNOCHANGE -1enum controlReferences {  FULLSCREENRESMENU,  STARTINFULLSCREENCHECKBOX,  NOPOLYGONFILLCHECKBOX,  LOOKLEFTKEYDISPLAY,  SETLOOKLEFTKEYBUTTON,  LOOKRIGHTKEYDISPLAY,  SETLOOKRIGHTKEYBUTTON,  LOOKDOWNKEYDISPLAY,  SETLOOKDOWNKEYBUTTON,  LOOKUPKEYDISPLAY,  SETLOOKUPKEYBUTTON,  MOVEFORWARDKEYDISPLAY,  SETMOVEFORWARDKEYBUTTON,  MOVEBACKWARDKEYDISPLAY,  SETMOVEBACKWARDKEYBUTTON,  BULLETKEYDISPLAY,  SETBULLETKEYBUTTON,  ROCKETKEYDISPLAY,  SETROCKETKEYBUTTON,  BRAKEKEYDISPLAY,  SETBRAKEKEYBUTTON,  PAUSEKEYDISPLAY,  SETPAUSEKEYBUTTON};typedef struct ScreenResolution {  int Width;  int Height;  int RefreshRate;  int ColorDepth;  struct ScreenResolution * next; /* Linked list */} ScreenResolution;typedef struct VSettings {  /* Keys */  UInt16 Left;  UInt16 Right;  UInt16 Down;  UInt16 Up;  UInt16 Forward;  UInt16 Backward;  UInt16 Bullet;  UInt16 Rocket;  UInt16 Brake;  UInt16 Pause;    UInt16 * KeyBeingSet;    /* Other settings */  Boolean NoFilledPolys;  Boolean StartInFullScreen;  int FullScreenResolution;    int NumberOfResolutions;  ScreenResolution * Resolutions;  WindowRef Window;} VSettings;void InitSettings(VSettings * s);void CleanUpSettings(VSettings * s);void OpenSettingsWindow(VSettings * s);#define SetSettings(s) (SettingsAccessor((s)))#define GetSettings() (SettingsAccessor(NULL))VSettings * SettingsAccessor(VSettings * s);void GetFullscreenSettings(VSettings * s, int * Width, int * Height, int * RefreshRate);SInt16 KeyWithModifiers(unsigned char charCode, UInt32 modifiers);Boolean SettingsIsEquivalentKey(VSettings * s, SInt16 pressedKey, SInt16 setKey);