// Open SanAndreas
// (c) 2006-2008 Stanislav "listener" Golovin
// 
// game menu

struct CTexture; 

#pragma pack(push, 1)
class CMenuManager {
public:
	//protected:
	DWORD	_f0;					// 0000
	DWORD	statsScrollSpeed;		// 0004
	BYTE	_8[0x18];				// 0008 - 
	BYTE	_f20;					// 0020
	BYTE	_f21;					// 0021
	WORD	_pad1;					// 0022 -
	DWORD	drawRadar;				// 0024
	DWORD	_f28;					// 0028 -
	DWORD	_f2C;					// 002C
	char	_f30;					// 0030
	BYTE	_f31;					// 0031
	BYTE	_f32;					// 0032
	BYTE	activateMenu;			// 0033
	BYTE	menuAccessWidescreen;	// 0034
	BYTE	_f35;					// 0035
	WORD	_36;					// 0036 -
	DWORD	_f38;					// 0038
	DWORD	brightness;				// 003C
	DWORD	drawDistance;			// 0040
	BYTE	subtitlesOn;			// 0044
	DWORD	_f45;					// 0045 ?
	BYTE	_f49;					// 0049
	BYTE	legend;					// 004A
	BYTE	widescreenOn;			// 004B
	BYTE	frameLimiterOn;			// 004C
	BYTE	_f4D;					// 004D
	BYTE	_f4E;					// 004E
	BYTE	sfxVolume;				// 004F
	BYTE	radioVolume;			// 0050
	BYTE	radioEq;				// 0051
	BYTE	radioStation;			// 0052
	BYTE	_pad2;					// 0053
	DWORD	_f54;					// 0054
	BYTE	_f58;					// 0058
	BYTE	drawRadarOrMap;			// 0059
	BYTE	_f5A;					// 005A
	BYTE	_f5B;					// 005B
	BYTE	menuActive;				// 005C
	BYTE	doGameReload;			// 005D
	BYTE	_f5E;					// 005E
	BYTE	isSaveDone;				// 005F
	BYTE	_f60;					// 0060
	BYTE	_61[3];					// 0061 -
	float	_f64;					// 0064
	float	_f68;					// 0068
	float	_f6C;					// 006C
	DWORD	_f70;					// 0070
	DWORD	_f74;					// 0074
	BYTE	_f78;					// 0078
	BYTE	_79[3];					// 0079
	DWORD	titleLanguage;			// 007C
	DWORD	textLanguage;			// 0080
	BYTE	language;				// 0084
	BYTE	prevLanguage;			// 0085
	BYTE	_86[2];					// 0086 -
	DWORD	_f88;					// 0088
	BYTE	_f8C;					// 008C
	BYTE	_8D[3];					// 008D -
	DWORD	_f90;					// 0090
	BYTE	_94[24];				// 0094 -
	DWORD	_fAC;					// 00AC
	BYTE	_fB0;					// 00B0
	BYTE	invertPadX1;			// 00B1
	BYTE	invertPadY1;			// 00B2
	BYTE	invertPadX2;			// 00B3
	BYTE	invertPadY2;			// 00B4
	BYTE	swapPadAxis1;			// 00B5
	BYTE	swapPadAxis2;			// 00B6
	BYTE	_fB7;					// 00B7
	BYTE	_fB8;					// 00B8
	BYTE	_B9[3];					// 00B9 -
	DWORD	mousePosLeft;			// 00BC
	DWORD	mousePosTop;			// 00C0
	BYTE	_fC4;					// 00C4
	BYTE	_fC5;					// 00C5
	BYTE	_C6[2];					// 00C6
	DWORD	multisamplingLevel;		// 00C8
	DWORD	_fCC;					// 00CC
	BYTE	useKeyboardAndMouse;	// 00D0
	BYTE	_D1[3];					// 00D1 -
	DWORD	videoMode;				// 00D4
	DWORD	prevVideoMode;			// 00D8
	DWORD	_fDC;					// 00DC
	DWORD	mousePosLeftA;			// 00E0
	DWORD	mousePosTopA;			// 00E4
	BYTE	_fE8;					// 00E8
	BYTE	_fE9;					// 00E9	show menu on setfocus ?
	BYTE	playerNumber;			// 00EA
	BYTE	_fEB;					// 00EB
	DWORD	_fEC;					// 00EC
	DWORD	_fF0;					// 00F0
	BYTE	_fF4;					// 00F4
	BYTE	_F5[3];					// 00F5
	CTexture * textures[25];		// 00F8 -- TODO: на самом деле, здесь был массив объектов CSprite, содержащих ссылку на RwTexture
	BYTE	texturesLoaded;			// 015C
	BYTE	currentMenuItem;		// 015D
	BYTE	_f15E;					// 015E
	BYTE	_f15F;					// 015F
	BYTE	_f160;					// 0160
	BYTE	_f161;					// 0161
	char	mpackName[8];			// 0162
	BYTE	_16A[6486];				// 016A
	DWORD	_f1AC0;					// 1AC0
	DWORD	_f1AC4;					// 1AC4
	DWORD	_f1AC8;					// 1AC8
	DWORD	_f1ACC;					// 1ACC
	DWORD	_f1AD0;					// 1AD0
	DWORD	_f1AD4;					// 1AD4
	DWORD	_f1AD8;					// 1AD8
	WORD	_f1ADC;					// 1ADC
	BYTE	_f1ADE;					// 1ADE
	BYTE	_f1ADF;					// 1ADF
	DWORD	_f1AE0;					// 1AE0
	DWORD	_f1AE4;					// 1AE4
	BYTE	_f1AE8;					// 1AE8
	BYTE	_f1AE9;					// 1AE9
	BYTE	_f1AEA;					// 1AEA
	BYTE	_f1AEB;					// 1AEB
	int		_f1AEC;					// 1AEC
	BYTE	_f1AF0;					// 1AF0
	BYTE	_f1AF1;					// 1AF1
	BYTE	_f1AF2;					// 1AF2
	BYTE	_f1AF3;					// 1AF3
	DWORD	_f1AF4;					// 1AF4
	DWORD	_f1AF8;					// 1AF8
	DWORD	_f1AFC;					// 1AFC
	DWORD	_f1B00;					// 1B00
	DWORD	_f1B04;					// 1B04
	BYTE	_f1B08;					// 1B08
	BYTE	_f1B09;					// 1B09
	BYTE	_f1B0A;					// 1B0A
	BYTE	_f1B0B;					// 1B0B
	DWORD	_f1B0C;					// 1B0C
	BYTE	_f1B10;					// 1B10
	BYTE	_f1B11;					// 1B11
	BYTE	_f1B12;					// 1B12
	BYTE	_f1B13;					// 1B13
	BYTE	_f1B14;					// 1B14
	BYTE	_f1B15;					// 1B15
	BYTE	_f1B16;					// 1B16
	BYTE	_f1B17;					// 1B17
	DWORD	_f1B18;					// 1B18
	DWORD	_f1B1C;					// 1B1C
	BYTE	_f1B20;					// 1B20
	BYTE	_f1B21;					// 1B21
	WORD	_1B22;					// 1B22 -
	DWORD	_f1B24;					// 1B24
	BYTE	_f1B28;					// 1B28
	BYTE	_f1B29;					// 1B29
	WORD	_1B2A;					// 1B2A -
	DWORD	_f1B2C;					// 1B2C
	DWORD	_f1B30;					// 1B30
	WORD	_f1B34;					// 1B34
	WORD	_f1B36;					// 1B36
	DWORD	_f1B38;					// 1B38
	BYTE	_f1B3C;					// 1B3C
	BYTE	_f1B3D;					// 1B3D
	BYTE	_f1B3E;					// 1B3E
	BYTE	_f1B3F;					// 1B3F
	DWORD	_f1B40;					// 1B40
	BYTE	_f1B44;					// 1B44
	BYTE	_f1B45;					// 1B45
	WORD	_f1B46;					// 1B46
	DWORD	_f1B48;					// 1B48
	DWORD	_f1B4C;					// 1B4C
	BYTE	_f1B50;					// 1B50
	BYTE	_f1B51;					// 1B51
	WORD	_f1B52;					// 1B52
	DWORD	_f1B54;					// 1B54
	DWORD	_f1B58;					// 1B58
	BYTE	_f1B5C;					// 1B5C
	BYTE	_f1B5D;					// 1B5D
	WORD	_f1B5E;					// 1B5E
	DWORD	_f1B60;					// 1B60
	DWORD	_f1B64;					// 1B64
	DWORD	_f1B68;					// 1B68
	DWORD	_f1B6C;					// 1B6C
	DWORD	_f1B70;					// 1B70
	DWORD	_f1B74;					// 1B74
};
#pragma pack(pop)

extern CMenuManager * menu;	// TODO: временно вынесено в ogSystem.cpp