summaryrefslogtreecommitdiffstats
path: root/src/core/Frontend_PS2.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/Frontend_PS2.h')
-rw-r--r--src/core/Frontend_PS2.h244
1 files changed, 244 insertions, 0 deletions
diff --git a/src/core/Frontend_PS2.h b/src/core/Frontend_PS2.h
new file mode 100644
index 00000000..2f226dc3
--- /dev/null
+++ b/src/core/Frontend_PS2.h
@@ -0,0 +1,244 @@
+#pragma once
+#include "Sprite2d.h"
+
+enum
+{
+ PAGE_STATS,
+ PAGE_LOAD,
+ PAGE_BRIEFS,
+ PAGE_CONTROLS,
+ PAGE_AUDIO,
+ PAGE_DISPLAY,
+ PAGE_LANGUAGE,
+
+ NUM_PAGES,
+ PAGE_FIRST = PAGE_STATS,
+ PAGE_LAST = PAGE_LANGUAGE,
+};
+
+enum
+{
+ PAGESTATE_NORMAL = 0,
+ PAGESTATE_HIGHLIGHTED,
+ PAGESTATE_SELECTED
+};
+
+
+enum eFrontendSprites
+{
+ FE2_MAINPANEL_UL,
+ FE2_MAINPANEL_UR,
+ FE2_MAINPANEL_DL,
+ FE2_MAINPANEL_DR,
+ FE2_MAINPANEL_DR2,
+ FE2_TABACTIVE,
+ FE_ICONBRIEF,
+ FE_ICONSTATS,
+ FE_ICONCONTROLS,
+ FE_ICONSAVE,
+ FE_ICONAUDIO,
+ FE_ICONDISPLAY,
+ FE_ICONLANGUAGE,
+ FE_CONTROLLER,
+ FE_CONTROLLERSH,
+ FE_ARROWS1,
+ FE_ARROWS2,
+ FE_ARROWS3,
+ FE_ARROWS4,
+ FE_RADIO1,
+ FE_RADIO2,
+ FE_RADIO3,
+ FE_RADIO4,
+ FE_RADIO5,
+ FE_RADIO6,
+ FE_RADIO7,
+ FE_RADIO8,
+ FE_RADIO9,
+
+ NUM_FE_SPRITES
+};
+
+
+class CSprite2d;
+class CVector2D;
+
+#ifdef GTA_PC
+enum eControlMethod
+{
+ CONTROL_STANDARD = 0,
+ CONTROL_CLASSIC,
+};
+#endif
+
+class CMenuManager
+{
+public:
+ enum LANGUAGE
+ {
+ LANGUAGE_AMERICAN,
+ LANGUAGE_FRENCH,
+ LANGUAGE_GERMAN,
+ LANGUAGE_ITALIAN,
+ LANGUAGE_SPANISH,
+#ifdef MORE_LANGUAGES
+ LANGUAGE_POLISH,
+ LANGUAGE_RUSSIAN,
+ LANGUAGE_JAPANESE,
+#endif
+ };
+
+ enum CONTRCONFIG
+ {
+ CONFIG_1 = 0,
+ CONFIG_2,
+ CONFIG_3,
+ CONFIG_4,
+ };
+
+ enum
+ {
+ NUM_SPRIRES = 28,
+ };
+
+ enum
+ {
+ PAGESTATE_NORMAL = 0,
+ PAGESTATE_HIGHLIGHTED = 1,
+ PAGESTATE_SELELECTED = 2,
+ };
+
+ enum
+ {
+ SLIDE_TO_BOTTOM = 0,
+ SLIDE_TO_RIGHT,
+ SLIDE_TO_TOP,
+ SLIDE_TO_LEFT,
+ SLIDE_MAX
+ };
+
+ int32 m_currentPage;
+ int32 m_newPage;
+ int32 m_pageState;
+ uint32 m_nPageLeftTimer;
+ uint32 m_nPageRightTimer;
+ uint32 m_nChangePageTimer;
+ int field_18;
+ uint8 m_fade;
+ uint8 m_someAlpha;
+ //char field_1E; // unused ?
+ //char field_1F; // unused ?
+ uint32 m_nStartPauseTimer;
+ uint32 m_nEndPauseTimer;
+ CVector2D m_position;
+ uint8 m_nSlidingDir;
+ //char field_31; // unused ?
+ //char field_32; // unused ?
+ //char field_33; // unused ?
+ bool m_bInitialised;
+ bool m_bWantToUpdateContent;
+ bool m_bMenuActive;
+ bool m_bWantToRestart;
+ //char field_38; //unused ?
+ bool m_bRenderGameInMenu;
+ bool m_bSaveMenuActive;
+ bool m_bInSaveZone;
+ char field_3C;
+ bool m_bTexturesLoaded;
+ //char field_3E; //unused ?
+ //char field_3F; //unused ?
+ CSprite2d m_sprites[NUM_SPRIRES];
+
+ static int32 m_PrefsSfxVolume;
+ static int32 m_PrefsMusicVolume;
+ static int32 m_PrefsBrightness;
+ static bool m_PrefsShowTrails;
+ static bool m_PrefsShowSubtitles;
+ static bool m_PrefsAllowNastyGame;
+ static int32 m_PrefsRadioStation;
+ static int32 m_PrefsStereoMono;
+ static int8 m_PrefsUseWideScreen;
+ static int32 m_PrefsLanguage;
+ static CONTRCONFIG m_PrefsControllerConfig;
+ static bool m_PrefsUseVibration;
+
+
+#ifdef GTA_PC
+ bool m_bQuitGameNoCD;
+
+ int32 m_nMouseTempPosX;
+ int32 m_nMouseTempPosY;
+ int32 m_nPrefsVideoMode;
+ int32 m_nDisplayVideoMode;
+ int8 m_nPrefsAudio3DProviderIndex;
+
+ static int32 OS_Language;
+ static int8 m_PrefsVsync;
+ static int8 m_PrefsVsyncDisp;
+ static int8 m_PrefsFrameLimiter;
+ static int8 m_PrefsSpeakers;
+ static int32 m_ControlMethod;
+ static int8 m_PrefsDMA;
+ static float m_PrefsLOD;
+ static char m_PrefsSkinFile[256];
+
+#ifndef MASTER
+ static bool m_PrefsMarketing;
+ static bool m_PrefsDisableTutorials;
+#endif // !MASTER
+
+#ifdef MENU_MAP
+ static bool bMenuMapActive;
+ static float fMapSize;
+ static float fMapCenterY;
+ static float fMapCenterX;
+#endif
+
+#ifdef IMPROVED_VIDEOMODE
+ int32 m_nPrefsWidth = 640;
+ int32 m_nPrefsHeight = 480;
+ int32 m_nPrefsDepth = 32;
+ int32 m_nPrefsWindowed = 1;
+ int32 m_nPrefsSubsystem;
+ int32 m_nSelectedScreenMode;
+#endif
+
+ void WaitForUserCD() { }
+#endif
+
+ bool GetIsMenuActive() {return !!m_bMenuActive;}
+
+ CMenuManager(void);
+#ifdef FIX_BUGS
+ ~CMenuManager(void)
+ {
+ UnloadTextures();
+ }
+#endif
+
+ void LoadAllTextures(void);
+ void UnloadTextures(void);
+
+ void InitialiseMenusOnce(void);
+ void InitialiseChangedLanguageSettings(void);
+ void InitialiseMenuContents(void);
+ void AnaliseMenuContents(void);
+ void InitialiseMenuContentsAfterLoadingGame(void);
+ void DrawFrontEnd(void);
+ void DrawFrontEndNormal(void);
+ void DrawFrontEndSaveZone(void);
+ void DrawMemoryCardStartUpMenus(void);
+ void Process(void);
+ void WorkOutMenuState(uint8 bExit);
+ void ProcessControllerInput(void);
+ void ProcessDPadLeftJustDown(void);
+ void ProcessDPadRightJustDown(void);
+ void ProcessDPadUpJustDown(void);
+ void ProcessDPadDownJustDown(void);
+ void ProcessDPadTriangleJustDown(void);
+ void ProcessDPadCrossJustDown(void);
+ void DoHackingMenusAtPageBrowse(void);
+ void SetSoundLevelsForMusicMenu(void);
+ void FilterOutColorMarkersFromString(wchar *string, CRGBA &color);
+};
+
+extern CMenuManager FrontEndMenuManager; \ No newline at end of file