summaryrefslogtreecommitdiffstats
path: root/src/Frontend.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/Frontend.h177
1 files changed, 168 insertions, 9 deletions
diff --git a/src/Frontend.h b/src/Frontend.h
index 2e95d582..2f68fdcd 100644
--- a/src/Frontend.h
+++ b/src/Frontend.h
@@ -2,6 +2,43 @@
#include "Sprite2d.h"
+#define HEADER_POS_X 35.0f
+#define HEADER_POS_Y 93.0f
+#define HEADER_WIDTH 0.84f
+#define HEADER_HEIGHT 1.6f
+
+#define ACTION_POS_X 20.0f
+#define ACTION_POS_Y 37.5f
+#define ACTION_WIDTH 0.675f
+#define ACTION_HEIGHT 0.81f
+
+#define COLUMN_POS_X HEADER_POS_X + 16.0f
+#define COLUMN_MAX_Y 149.0f
+#define COLUMN_MID_Y 100.0f
+#define COLUMN_MIN_Y 110.0f
+#define COLUMN_PAUSE_Y 25.0f
+#define COLUMN_START_Y 9.0f
+#define COLUMN_FEDS 139.0f
+
+#define COLUMN_SAVE_X 121.0f
+#define COLUMN_SAVE_Y 111.0f
+
+#define COLUMN_SPACING_MAX 24.0f
+#define COLUMN_SPACING_MIN 20.0f
+
+#define SELECT_BOX_MAX 20.5f
+#define SELECT_BOX_MIN 17.0f
+
+#define FE_RADIO_ICON_X 31.5f
+#define FE_RADIO_ICON_Y 29.5f
+#define FE_RADIO_ICON_W 60.0f
+#define FE_RADIO_ICON_H 60.0f
+
+#define DROP_COLOR_A 150
+#define DROP_COLOR_SIZE -1
+
+#define SLIDER_X 306.0f
+
enum {
LANGUAGE_AMERICAN,
LANGUAGE_FRENCH,
@@ -10,6 +47,70 @@ enum {
LANGUAGE_SPANISH,
};
+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,
+};
+
+enum eMenuSprites {
+ MENU_CONNECTION,
+ MENU_FINDGAME,
+ MENU_HOSTGAME,
+ MENU_MAINMENU,
+ MENU_PLAYERSET,
+ MENU_SINGLEPLAYER,
+ MENU_MULTIPLAYER,
+ MENU_DMALOGO,
+ MENU_GTALOGO,
+ MENU_RSTARLOGO,
+ MENU_GAMESPY,
+ MENU_MOUSE,
+ MENU_MOUSET,
+ MENU_MP3LOGO,
+ MENU_DOWNOFF,
+ MENU_UPOFF,
+ MENU_DOWNON,
+ MENU_UPON,
+ MENU_GTA3LOGO,
+};
+
+enum eMenuActions {
+ MENU_ACTION_SAVE_1 = 1,
+ MENU_ACTION_SAVE_2,
+ MENU_ACTION_SAVE_3,
+ MENU_ACTION_SAVE_4,
+ MENU_ACTION_SAVE_5,
+ MENU_ACTION_SAVE_6,
+ MENU_ACTION_SAVE_7,
+ MENU_ACTION_SAVE_8,
+};
+
enum eMenuScreen {
MENU_NONE = 0,
MENU_STATS = 1,
@@ -72,6 +173,11 @@ enum eMenuScreen {
MENU_58 = 58,
};
+enum eCheckHover {
+ ACTIVATE_OPTION = 2,
+ IGNORE_OPTION = 42,
+};
+
struct tSkinInfo
{
int field_0;
@@ -81,6 +187,20 @@ struct tSkinInfo
int field_304;
};
+struct CMenuScreen {
+ char m_ScreenName[8];
+ int32 m_PreviousPage[3]; //
+ int32 m_ParentEntry[2];
+
+ struct CMenuEntry
+ {
+ int32 m_Action;
+ char m_EntryName[8];
+ int32 m_ActionSlot;
+ int32 m_TargetMenu;
+ } m_aEntries[18];
+};
+
class CMenuManager
{
public:
@@ -136,10 +256,10 @@ public:
int m_nHelperTextAlpha;
int m_nMouseOldPosX;
int m_nMouseOldPosY;
- int field_544;
+ int m_nHoverOption;
int m_nCurrScreen;
int m_nCurrOption;
- int field_550;
+ int m_nCurrentInput;
int m_nPrevScreen;
int field_558;
int m_nCurrSaveSlot;
@@ -165,17 +285,56 @@ public:
static int8 &m_bFrontEnd_ReloadObrTxtGxt;
static int32 &m_PrefsMusicVolume;
static int32 &m_PrefsSfxVolume;
+ static bool &m_bStartUpFrontEndRequested;
+ static bool &m_bShutDownFrontEndRequested;
static bool &m_PrefsAllowNastyGame;
- static bool &m_bStartUpFrontEndRequested;
- void Process(void);
- void DrawFrontEnd(void);
- void UnloadTextures(void);
- void LoadAllTextures(void);
- void LoadSettings(void);
- void WaitForUserCD(void);
+private:
+ enum eColumns { L, R, COLUMNS, };
+
+public:
+ void BuildStatLine(char *, void *, uint16, void *);
+ static void CentreMousePointer();
+ void CheckCodesForControls(int, int);
+ bool CheckHover(int x1, int x2, int y1, int y2);
+ int CostructStatLine(int);
+ void DisplayHelperText();
+ float DisplaySlider(float, float, float, float, float, float);
+ void DoSettingsBeforeStartingAGame();
+ void Draw();
+ void DrawControllerBound(int, int, int, uint8);
+ void DrawControllerScreenExtraText(int, int, int);
+ void DrawControllerSetupScreen();
+ void DrawFrontEnd();
+ void DrawFrontEndNormal();
+ void DrawPlayerSetupScreen();
int FadeIn(int alpha);
+ void FilterOutColorMarkersFromString(uint16, CRGBA &);
+ int GetStartOptionsCntrlConfigScreens();
+ static void InitialiseChangedLanguageSettings();
+ void LoadAllTextures();
+ void LoadSettings();
+ static void MessageScreen(char *);
+ static void PickNewPlayerColour();
+ void PrintBriefs();
+ static void PrintErrorMessage();
+ void PrintStats();
+ void Process();
+ void ProcessButtonPresses();
+ void ProcessOnOffMenuOptions();
+ static void RequestFrontEndShutdown();
+ static void RequestFrontEndStartUp();
+ void ResetHelperText();
+ void SaveLoadFileError_SetUpErrorScreen();
+ void SaveSettings();
+ void SetHelperText(int text);
+ void ShutdownJustMenu();
+ static float StretchX(float);
+ static float StretchY(float );
+ void SwitchMenuOnAndOff();
+ void UnloadTextures();
+ void WaitForUserCD();
};
static_assert(sizeof(CMenuManager) == 0x564, "CMenuManager: error");