summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ControllerConfig.cpp5
-rw-r--r--src/ControllerConfig.h1
-rw-r--r--src/Frontend.cpp1321
-rw-r--r--src/Frontend.h21
-rw-r--r--src/MenuScreens.h84
-rw-r--r--src/PCSave.cpp8
-rw-r--r--src/PCSave.h7
-rw-r--r--src/Pad.cpp3
-rw-r--r--src/PlayerSkin.cpp5
-rw-r--r--src/PlayerSkin.h7
-rw-r--r--src/Radar.h7
-rw-r--r--src/audio/DMAudio.cpp9
-rw-r--r--src/audio/DMAudio.h8
-rw-r--r--src/common.h1
-rw-r--r--src/config.h4
-rw-r--r--src/entities/Vehicle.cpp3
-rw-r--r--src/entities/Vehicle.h1
-rw-r--r--src/main.cpp7
-rw-r--r--src/main.h1
-rw-r--r--src/render/Draw.cpp65
-rw-r--r--src/render/Draw.h12
-rw-r--r--src/render/Hud.cpp18
-rw-r--r--src/skel/win/win.cpp12
-rw-r--r--src/skel/win/win.h4
24 files changed, 126 insertions, 1488 deletions
diff --git a/src/ControllerConfig.cpp b/src/ControllerConfig.cpp
index d7567ac4..a401e093 100644
--- a/src/ControllerConfig.cpp
+++ b/src/ControllerConfig.cpp
@@ -50,8 +50,3 @@ void CControllerConfigManager::LoadSettings(int32 file)
}
}
}
-
-WRAPPER void CControllerConfigManager::SaveSettings(int32 file)
-{
- EAXJMP(0x58B800);
-}
diff --git a/src/ControllerConfig.h b/src/ControllerConfig.h
index 581efe05..00cab82e 100644
--- a/src/ControllerConfig.h
+++ b/src/ControllerConfig.h
@@ -42,7 +42,6 @@ public:
int32 GetJoyButtonJustDown();
void LoadSettings(int32 file);
- void SaveSettings(int32 file);
void MakeControllerActionsBlank();
void InitDefaultControlConfiguration();
void InitDefaultControlConfigMouse(CMouseControllerState const &mousestate);
diff --git a/src/Frontend.cpp b/src/Frontend.cpp
index c16c8c25..8eff0324 100644
--- a/src/Frontend.cpp
+++ b/src/Frontend.cpp
@@ -20,10 +20,6 @@
#include "Script.h"
#include "Camera.h"
#include "MenuScreens.h"
-#include "ControllerConfig.h"
-#include "Vehicle.h"
-#include "MBlur.h"
-#include "PlayerSkin.h"
int32 &CMenuManager::OS_Language = *(int32*)0x5F2F78;
int8 &CMenuManager::m_PrefsUseVibration = *(int8*)0x95CD92;
@@ -51,36 +47,8 @@ int8 &CMenuManager::m_bFrontEnd_ReloadObrTxtGxt = *(int8*)0x628CFC;
int32 &CMenuManager::m_PrefsMusicVolume = *(int32*)0x5F2E4C;
int32 &CMenuManager::m_PrefsSfxVolume = *(int32*)0x5F2E48;
-uint8 *CMenuManager::m_PrefsSkinFile = (uint8*)0x5F2E74;
-
CMenuManager &FrontEndMenuManager = *(CMenuManager*)0x8F59D8;
-// Move this somewhere else.
-float lodMultiplier = *(float*)0x5F726C;
-
-// Stuff not in CMenuManager:
-int VibrationTime;
-char* pEditString;
-int32 pControlEdit;
-int8 DisplayComboButtonErrMsg;
-bool MouseButtonJustClicked;
-bool JoyButtonJustClicked;
-
-// Frontend inputs.
-bool GetPadBack();
-bool GetPadForward();
-bool GetPadMoveUp();
-bool GetPadMoveDown();
-bool GetPadMoveLeft();
-bool GetPadMoveRight();
-bool GetMouseForward();
-bool GetMouseBack();
-bool GetMousePos();
-bool GetMouseMoveLeft();
-bool GetMouseMoveRight();
-bool GetPadInput();
-bool GetMouseInput();
-
char *FrontendFilenames[] = {
"fe2_mainpanel_ul",
"fe2_mainpanel_ur",
@@ -182,78 +150,6 @@ bool CMenuManager::CheckHover(int x1, int x2, int y1, int y2)
}
#endif
-void CMenuManager::CheckSliderMovement(int value)
-{
- float fBrightness = 0.0f;
- float fDrawDistance = 0.0f;
- float fRadioVolume = 0.0f;
- float fSfxVolume = 0.0f;
- float fMouseSens = 0.0f;
-
- switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) {
- case MENUACTION_BRIGHTNESS:
- fBrightness = m_PrefsBrightness + (value * (512.0f) / 16.0f);
-
- if (fBrightness > 511.0f)
- fBrightness = 511.0f;
- else if (fBrightness < 0.0f)
- fBrightness = 0.0f;
-
- m_PrefsBrightness = fBrightness;
- SaveSettings();
- break;
- case MENUACTION_DRAWDIST:
- fDrawDistance = m_PrefsLOD + (value * (1.8f - 0.8f) / 16.0f);
-
- if (fDrawDistance > 1.8f)
- fDrawDistance = 1.8f;
- else if (fDrawDistance < 0.8f)
- fDrawDistance = 0.8f;
-
- m_PrefsLOD = fDrawDistance;
- SaveSettings();
- break;
- case MENUACTION_MUSICVOLUME:
- fRadioVolume = m_PrefsMusicVolume + (value * (128.0f) / 16.0f);
-
- if (fRadioVolume > 127.0f)
- fRadioVolume = 127.0f;
- else if (fRadioVolume < 0.0f)
- fRadioVolume = 0.0f;
-
- m_PrefsMusicVolume = fRadioVolume;
- DMAudio.SetMusicMasterVolume(fRadioVolume);
- SaveSettings();
- break;
- case MENUACTION_SFXVOLUME:
- fSfxVolume = m_PrefsSfxVolume + (value * (128.0f) / 16.0f);
-
- if (fSfxVolume > 127)
- fSfxVolume = 127;
- else if (fSfxVolume < 0.0f)
- fSfxVolume = 0.0f;
-
- m_PrefsSfxVolume = fSfxVolume;
- DMAudio.SetEffectsMasterVolume(fSfxVolume);
- SaveSettings();
- break;
- case MENUACTION_MOUSESENS:
- fMouseSens = TheCamera.m_fMouseAccelHorzntl + (value * (0.005f - 0.0003125f) / 16.0f);
-
- if (fMouseSens > 0.005f)
- fMouseSens = 0.005f;
- else if (fMouseSens < 0.0003125f)
- fMouseSens = 0.0003125f;
-
- TheCamera.m_fMouseAccelHorzntl = fMouseSens;
-
- // BUG: game doesn't set Y Axis.
- TheCamera.m_fMouseAccelVertical = fMouseSens;
- SaveSettings();
- break;
- };
-}
-
#if 1
WRAPPER int CMenuManager::CostructStatLine(int) { EAXJMP(0x482800); }
#else
@@ -268,38 +164,22 @@ WRAPPER void CMenuManager::DisplayHelperText() { EAXJMP(0x48B490); }
#else
void CMenuManager::DisplayHelperText()
{
- static int32 AlphaText = 255;
- static int32 Time = 0;
-
- if (m_nHelperTextMsgId && m_nHelperTextMsgId != 1) {
- if (CTimer::GetTimeInMillisecondsPauseMode() - Time > 10) {
- Time = CTimer::GetTimeInMillisecondsPauseMode();
- m_nHelperTextAlpha -= 2;
-
- if (AlphaText < 1)
- ResetHelperText();
-
- AlphaText = m_nHelperTextAlpha > 255 ? 255 : m_nHelperTextAlpha;
- }
- }
-
- wchar *HelperTextToPrint = nil;
- // TODO: name this cases?
+ wchar *str = nil;
switch (m_nHelperTextMsgId) {
case 0:
- HelperTextToPrint = TheText.Get("FET_MIG");
+ str = TheText.Get("FET_MIG");
break;
case 1:
- HelperTextToPrint = TheText.Get("FET_APP");
+ str = TheText.Get("FET_APP");
break;
case 2:
- HelperTextToPrint = TheText.Get("FET_HRD");
+ str = TheText.Get("FET_HRD");
break;
case 3:
- HelperTextToPrint = TheText.Get("FET_RSO");
+ str = TheText.Get("FET_RSO");
break;
case 4:
- HelperTextToPrint = TheText.Get("FET_RSC");
+ str = TheText.Get("FET_RSC");
break;
default:
break;
@@ -308,11 +188,11 @@ void CMenuManager::DisplayHelperText()
CFont::SetAlignment(ALIGN_CENTER);
CFont::SetScale(SCREEN_SCALE_X(0.4f), SCREEN_SCALE_Y(0.6f));
CFont::SetFontStyle(FONT_HEADING);
- CFont::SetDropColor(CRGBA(0, 0, 0, AlphaText));
+ CFont::SetDropColor(CRGBA(0, 0, 0, MENUDROP_COLOR_A));
CFont::SetDropShadowPosition(MENUDROP_COLOR_SIZE);
- CFont::SetColor(CRGBA(255, 255, 255, AlphaText));
- CFont::PrintString(SCREEN_WIDTH / 2, SCREEN_SCALE_FROM_BOTTOM(120.0f), HelperTextToPrint);
+ CFont::SetColor(CRGBA(255, 255, 255, 255));
+ CFont::PrintString(SCREEN_WIDTH / 2, SCREEN_SCALE_FROM_BOTTOM(120.0f), str);
}
#endif
@@ -347,22 +227,12 @@ float CMenuManager::DisplaySlider(float x, float y, float leftSize, float rightS
}
#endif
-#if 0
+#if 1
WRAPPER void CMenuManager::DoSettingsBeforeStartingAGame() { EAXJMP(0x48AB40); }
#else
-void CMenuManager::DoSettingsBeforeStartingAGame()
+WRAPPER void CMenuManager::DoSettingsBeforeStartingAGame()
{
- CCamera::m_bUseMouse3rdPerson = m_ControlMethod == 0;
- if (m_PrefsVsyncDisp != m_PrefsVsync)
- m_PrefsVsync = m_PrefsVsyncDisp;
-
- m_bStartGameLoading = true;
- ShutdownJustMenu();
- UnloadTextures();
- DMAudio.SetEffectsFadeVol(0);
- DMAudio.SetMusicFadeVol(0);
- DMAudio.ResetTimers(CTimer::GetTimeInMilliseconds());
}
#endif
@@ -441,7 +311,6 @@ void CMenuManager::Draw()
for (int i = 0; i < MENUROWS; ++i) {
if (aScreens[m_nCurrScreen].m_aEntries[i].m_Action != MENUACTION_LABEL && aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName[0]) {
wchar *textToPrint[MENUCOLUMNS] = { nil, nil };
- bool Locked = false;
if (aScreens[m_nCurrScreen].m_aEntries[i].m_SaveSlot >= SAVESLOT_1 && aScreens[m_nCurrScreen].m_aEntries[i].m_SaveSlot <= SAVESLOT_8) {
textToPrint[MENUCOLUMN_LEFT] = GetNameOfSavedGame(i - 1);
@@ -454,13 +323,6 @@ void CMenuManager::Draw()
}
else {
textToPrint[MENUCOLUMN_LEFT] = TheText.Get(aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName);
-
- if (aScreens[m_nCurrScreen].m_aEntries[i].m_Action == MENUACTION_SCREENRES) {
- if (m_bGameNotLoaded)
- Locked = false;
- else
- Locked = true;
- }
}
switch (aScreens[m_nCurrScreen].m_aEntries[i].m_Action) {
@@ -497,39 +359,7 @@ void CMenuManager::Draw()
textToPrint[MENUCOLUMN_RIGHT] = TheText.Get(m_PrefsShowSubtitles ? "FEM_ON" : "FEM_OFF");
break;
case MENUACTION_WIDESCREEN:
-#ifndef HOR_PLUS
textToPrint[MENUCOLUMN_RIGHT] = TheText.Get(m_PrefsUseWideScreen ? "FEM_ON" : "FEM_OFF");
-#else
- switch (m_PrefsUseWideScreen) {
- case AR_AUTO:
- textToPrint[MENUCOLUMN_RIGHT] = (wchar*)L"AUTO";
- break;
- case AR_3_2:
- textToPrint[MENUCOLUMN_RIGHT] = (wchar*)L"3:2";
- break;
- case AR_4_3:
- textToPrint[MENUCOLUMN_RIGHT] = (wchar*)L"4:3";
- break;
- case AR_5_3:
- textToPrint[MENUCOLUMN_RIGHT] = (wchar*)L"5:3";
- break;
- case AR_5_4:
- textToPrint[MENUCOLUMN_RIGHT] = (wchar*)L"5:4";
- break;
- case AR_15_9:
- textToPrint[MENUCOLUMN_RIGHT] = (wchar*)L"15:9";
- break;
- case AR_16_9:
- textToPrint[MENUCOLUMN_RIGHT] = (wchar*)L"16:9";
- break;
- case AR_16_10:
- textToPrint[MENUCOLUMN_RIGHT] = (wchar*)L"16:10";
- break;
- case AR_64_27:
- textToPrint[MENUCOLUMN_RIGHT] = (wchar*)L"64:27";
- break;
- };
-#endif
break;
case MENUACTION_RADIO:
sprintf(gString, "FEA_FM%d", m_PrefsRadioStation);
@@ -556,16 +386,16 @@ void CMenuManager::Draw()
}
break;
case MENUACTION_AUDIOHW:
- if (m_nPrefsAudio3DProviderIndex == -1)
+ if (FrontEndMenuManager.m_nPrefsAudio3DProviderIndex == -1)
textToPrint[MENUCOLUMN_RIGHT] = TheText.Get("FEA_NAH");
else {
- char *provider = MusicManager.Get3DProviderName(m_nPrefsAudio3DProviderIndex);
+ char *provider = MusicManager.Get3DProviderName(FrontEndMenuManager.m_nPrefsAudio3DProviderIndex);
AsciiToUnicode(provider, gUString);
textToPrint[MENUCOLUMN_RIGHT] = gUString;
}
break;
case MENUACTION_SPEAKERCONF:
- if (m_nPrefsAudio3DProviderIndex == -1)
+ if (FrontEndMenuManager.m_nPrefsAudio3DProviderIndex == -1)
textToPrint[MENUCOLUMN_RIGHT] = TheText.Get("FEA_NAH");
else {
switch (m_PrefsSpeakers) {
@@ -596,7 +426,7 @@ void CMenuManager::Draw()
break;
case MENUACTION_MOUSESTEER:
textToPrint[MENUCOLUMN_RIGHT] = TheText.Get(m_bDisableMouseSteering ? "FEM_ON" : "FEM_OFF");
- break;
+ break;
};
CFont::SetDropShadowPosition(MENUDROP_COLOR_SIZE);
@@ -666,7 +496,6 @@ void CMenuManager::Draw()
case MENUPAGE_LANGUAGE_SETTINGS:
vecPositions.y = (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(MENUCOLUMN_MIN_Y);
break;
- case MENUPAGE_MOUSE_CONTROLS:
case MENUPAGE_GRAPHICS_SETTINGS:
vecPositions.y = (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(MENUCOLUMN_MAX_Y);
break;
@@ -696,7 +525,7 @@ void CMenuManager::Draw()
CFont::SetColor(CRGBA(255, 217, 106, FadeIn(255)));
CSprite2d::DrawRect(CRect(SCREEN_STRETCH_X(11.0f), vecPositions.y - SCREEN_STRETCH_Y(fBarSize * 0.13f), SCREEN_STRETCH_FROM_RIGHT(11.0f), vecPositions.y + SCREEN_STRETCH_Y(fBarSize)), CRGBA(100, 200, 50, 50));
}
- else
+ else
CFont::SetColor(CRGBA(235, 170, 50, FadeIn(255)));
// Draw
@@ -704,43 +533,32 @@ void CMenuManager::Draw()
CFont::PrintString(vecPositions.x, vecPositions.y, textToPrint[MENUCOLUMN_LEFT]);
if (textToPrint[MENUCOLUMN_RIGHT]) {
- if (Locked)
- CFont::SetColor(CRGBA(190, 130, 40, FadeIn(255)));
-
CFont::SetAlignment(ALIGN_RIGHT);
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(SavePageSlot ? MENUCOLUMN_SAVE_X : MENUCOLUMN_POS_X), vecPositions.y, textToPrint[MENUCOLUMN_RIGHT]);
}
- // Mouse support.
- // TODO: inputs for these pages.
- if (m_nCurrScreen == MENUPAGE_SKIN_SELECT) {
- }
- else if (m_nCurrScreen == MENUPAGE_KEYBOARD_CONTROLS) {
-
- }
- else {
- static bool bIsMouseInPosition = false;
- if (m_nMenuFadeAlpha >= 255 && GetMouseInput()) {
- CVector2D vecInputSize = { SCREEN_SCALE_X(20.0f), SCREEN_SCALE_FROM_RIGHT(20.0f) };
- if (m_bShowMouse &&
- ((CheckHover(vecInputSize.x, vecInputSize.y, vecPositions.y, vecPositions.y + SCREEN_STRETCH_Y(20.0f)))))
- bIsMouseInPosition = true;
- else
- bIsMouseInPosition = false;
+ // Mouse support.
+ bool bIsMouseInPosition = false;
+ if (m_nMenuFadeAlpha >= 255) {
+ CVector2D vecInputSize = { SCREEN_SCALE_X(20.0f), SCREEN_SCALE_FROM_RIGHT(20.0f) };
+ if (m_bShowMouse &&
+ ((CheckHover(vecInputSize.x, vecInputSize.y, vecPositions.y, vecPositions.y + SCREEN_STRETCH_Y(20.0f)))))
+ bIsMouseInPosition = true;
+ else
+ bIsMouseInPosition = false;
- if (bIsMouseInPosition) {
- if (m_nCurrOption != i) {
- m_nCurrOption = i;
- DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_DENIED, 0);
- }
+ if (bIsMouseInPosition) {
+ if (m_nCurrOption != i) {
+ m_nCurrOption = i;
+ DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_DENIED, 0);
+ }
- m_nPrevOption = m_nCurrOption;
+ m_nCurrentInput = m_nCurrOption;
- if (GetMouseForward())
- m_nHoverOption = IGNORE_OPTION;
- else
- m_nHoverOption = ACTIVATE_OPTION;
- }
+ if (CPad::GetPad(0)->NewMouseControllerState.LMB && !CPad::GetPad(0)->OldMouseControllerState.LMB)
+ m_nHoverOption = IGNORE_OPTION;
+ else
+ m_nHoverOption = ACTIVATE_OPTION;
}
}
@@ -768,21 +586,14 @@ void CMenuManager::Draw()
float fIconSpacing = 59.52f;
if (m_nCurrScreen == MENUPAGE_SOUND_SETTINGS) {
for (int i = 0; i < POLICE_RADIO; i++) {
-#ifndef MID_RADIOICONS
- if (i < USERTRACK)
- m_aFrontEndSprites[i + FE_RADIO1].Draw(SCREEN_STRETCH_X(MENURADIO_ICON_X + fIconSpacing * i), (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(MENURADIO_ICON_Y), SCREEN_SCALE_X(MENURADIO_ICON_W), SCREEN_SCALE_Y(MENURADIO_ICON_H), i == m_PrefsRadioStation ? CRGBA(255, 255, 255, 255) : CRGBA(225, 0, 0, 170));
- if (i > CHATTERBOX && DMAudio.IsMP3RadioChannelAvailable())
- m_aMenuSprites[MENUSPRITE_MP3LOGO].Draw(SCREEN_STRETCH_X(MENURADIO_ICON_X + fIconSpacing * i), (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(MENURADIO_ICON_Y), SCREEN_SCALE_X(MENURADIO_ICON_W), SCREEN_SCALE_Y(MENURADIO_ICON_H), i == m_PrefsRadioStation ? CRGBA(255, 255, 255, 255) : CRGBA(225, 0, 0, 170));
-#else
- float fMp3Pos = 0.0f;
- if (DMAudio.IsMP3RadioChannelAvailable())
- fMp3Pos = 34.0f;
+
+ if (i == MSX_FM)
+ fIconSpacing -= 1.5f;
if (i < USERTRACK)
- m_aFrontEndSprites[i + FE_RADIO1].Draw((SCREEN_WIDTH * 0.5) + SCREEN_SCALE_X(-fMp3Pos + MENURADIO_ICON_X + (fIconSpacing * i)), (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(MENURADIO_ICON_Y), SCREEN_SCALE_X(MENURADIO_ICON_W), SCREEN_SCALE_Y(MENURADIO_ICON_H), i == m_PrefsRadioStation ? CRGBA(255, 255, 255, 255) : CRGBA(225, 0, 0, 170));
- if (i > CHATTERBOX && DMAudio.IsMP3RadioChannelAvailable())
- m_aMenuSprites[MENUSPRITE_MP3LOGO].Draw((SCREEN_WIDTH * 0.5) + SCREEN_SCALE_X(-fMp3Pos + MENURADIO_ICON_X + (fIconSpacing * i)), (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(MENURADIO_ICON_Y), SCREEN_SCALE_X(MENURADIO_ICON_W), SCREEN_SCALE_Y(MENURADIO_ICON_H), i == m_PrefsRadioStation ? CRGBA(255, 255, 255, 255) : CRGBA(225, 0, 0, 170));
-#endif
+ m_aFrontEndSprites[i + FE_RADIO1].Draw(SCREEN_STRETCH_X(MENURADIO_ICON_X + fIconSpacing * i), (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(MENURADIO_ICON_Y), SCREEN_SCALE_X(MENURADIO_ICON_W), SCREEN_SCALE_Y(MENURADIO_ICON_H), i == m_PrefsRadioStation ? CRGBA(255, 255, 255, 255) : CRGBA(225, 0, 0, 170));
+ if (i > CHATTERBOX)
+ m_aMenuSprites[MENUSPRITE_MP3LOGO].Draw(SCREEN_STRETCH_X(MENURADIO_ICON_X + fIconSpacing * i), (SCREEN_HEIGHT / 2) - SCREEN_SCALE_Y(MENURADIO_ICON_Y), SCREEN_SCALE_X(MENURADIO_ICON_W), SCREEN_SCALE_Y(MENURADIO_ICON_H), i == m_PrefsRadioStation ? CRGBA(255, 255, 255, 255) : CRGBA(225, 0, 0, DMAudio.IsMP3RadioChannelAvailable() ? 170 : 25));
}
}
@@ -1065,31 +876,12 @@ int CMenuManager::GetStartOptionsCntrlConfigScreens()
}
#endif
-#if 0
+#if 1
WRAPPER void CMenuManager::InitialiseChangedLanguageSettings() { EAXJMP(0x47A4D0); }
#else
void CMenuManager::InitialiseChangedLanguageSettings()
{
- if (m_bFrontEnd_ReloadObrTxtGxt) {
- CTimer::Stop();
- TheText.Unload();
- TheText.Load();
- CTimer::Update();
- CGame::frenchGame = false;
- CGame::germanGame = false;
- switch (CMenuManager::m_PrefsLanguage) {
- case LANGUAGE_FRENCH:
- CGame::frenchGame = true;
- break;
- case LANGUAGE_GERMAN:
- CGame::germanGame = true;
- break;
- default:
- return;
- };
- m_bFrontEnd_ReloadObrTxtGxt = false;
- }
}
#endif
@@ -1151,103 +943,12 @@ void CMenuManager::LoadAllTextures()
}
#endif
-#if 0
+#if 1
WRAPPER void CMenuManager::LoadSettings() { EAXJMP(0x488EE0); }
#else
void CMenuManager::LoadSettings()
{
- CFileMgr::SetDirMyDocuments();
-
- uint8 prevLang = m_PrefsLanguage;
- MousePointerStateHelper.bInvertVertically = true;
-
- static char Ver;
- int fileHandle = CFileMgr::OpenFile("gta3.set", "rb");
- if (fileHandle) {
- CFileMgr::Read(fileHandle, buf(&Ver), sizeof(Ver));
-
- if (strncmp(&Ver, "THIS FILE IS NOT VALID YET", 26)) {
- CFileMgr::Seek(fileHandle, 0, 0);
- ControlsManager.LoadSettings(fileHandle);
- CFileMgr::Read(fileHandle, buf(&gString), 20);
- CFileMgr::Read(fileHandle, buf(&gString), 20);
- CFileMgr::Read(fileHandle, buf(&gString), 4);
- CFileMgr::Read(fileHandle, buf(&gString), 4);
- CFileMgr::Read(fileHandle, buf(&gString), 1);
- CFileMgr::Read(fileHandle, buf(&gString), 1);
- CFileMgr::Read(fileHandle, buf(&gString), 1);
- CFileMgr::Read(fileHandle, buf(&TheCamera.m_bHeadBob), sizeof(TheCamera.m_bHeadBob));
- CFileMgr::Read(fileHandle, buf(&TheCamera.m_fMouseAccelHorzntl), sizeof(TheCamera.m_fMouseAccelHorzntl));
- CFileMgr::Read(fileHandle, buf(&TheCamera.m_fMouseAccelVertical), sizeof(TheCamera.m_fMouseAccelVertical));
- CFileMgr::Read(fileHandle, buf(&MousePointerStateHelper.bInvertVertically), sizeof(MousePointerStateHelper.bInvertVertically));
- CFileMgr::Read(fileHandle, buf(&CVehicle::m_bDisableMouseSteering), sizeof(CVehicle::m_bDisableMouseSteering));
- CFileMgr::Read(fileHandle, buf(&m_PrefsSfxVolume), sizeof(m_PrefsSfxVolume));
- CFileMgr::Read(fileHandle, buf(&m_PrefsMusicVolume), sizeof(m_PrefsMusicVolume));
- CFileMgr::Read(fileHandle, buf(&m_PrefsRadioStation), sizeof(m_PrefsRadioStation));
- CFileMgr::Read(fileHandle, buf(&m_PrefsSpeakers), sizeof(m_PrefsSpeakers));
- CFileMgr::Read(fileHandle, buf(&m_nPrefsAudio3DProviderIndex), sizeof(m_nPrefsAudio3DProviderIndex));
- CFileMgr::Read(fileHandle, buf(&m_PrefsDMA), sizeof(m_PrefsDMA));
- CFileMgr::Read(fileHandle, buf(&m_PrefsBrightness), sizeof(m_PrefsBrightness));
- CFileMgr::Read(fileHandle, buf(&m_PrefsLOD), sizeof(m_PrefsLOD));
- CFileMgr::Read(fileHandle, buf(&m_PrefsShowSubtitles), sizeof(m_PrefsShowSubtitles));
- CFileMgr::Read(fileHandle, buf(&m_PrefsUseWideScreen), sizeof(m_PrefsUseWideScreen));
- CFileMgr::Read(fileHandle, buf(&m_PrefsVsyncDisp), sizeof(m_PrefsVsyncDisp));
- CFileMgr::Read(fileHandle, buf(&m_PrefsFrameLimiter), sizeof(m_PrefsFrameLimiter));
- CFileMgr::Read(fileHandle, buf(&m_nDisplayVideoMode), sizeof(m_nPrefsVideoMode));
- CFileMgr::Read(fileHandle, buf(&BlurOn), sizeof(BlurOn));
- CFileMgr::Read(fileHandle, buf(&m_PrefsSkinFile), sizeof(m_PrefsSkinFile));
- CFileMgr::Read(fileHandle, buf(&m_ControlMethod), sizeof(m_ControlMethod));
- CFileMgr::Read(fileHandle, buf(&m_PrefsLanguage), sizeof(m_PrefsLanguage));
- }
- }
-
- CFileMgr::CloseFile(fileHandle);
- CFileMgr::SetDir("");
-
-#ifndef HOR_PLUS
-#else
- if (m_PrefsUseWideScreen < AR_AUTO || m_PrefsUseWideScreen > AR_64_27)
- m_PrefsUseWideScreen = AR_AUTO;
-#endif
-
- m_PrefsVsync = m_PrefsVsyncDisp;
- lodMultiplier = m_PrefsLOD;
-
- if (m_nPrefsAudio3DProviderIndex == -1)
- m_nPrefsAudio3DProviderIndex = -2;
-
- if (m_PrefsLanguage == prevLang)
- m_bLanguageLoaded = false;
- else {
- m_bLanguageLoaded = true;
- TheText.Unload();
- TheText.Load();
- m_bFrontEnd_ReloadObrTxtGxt = true;
- InitialiseChangedLanguageSettings();
-
- debug("The previously saved language is now in use");
- }
-
- /*struct _WIN32_FIND_DATAA FindFileData;
- HANDLE H = FindFirstFileA("skins\*.bmp", &FindFileData);
- char Dest;
- bool SkinFound = false;
-
- for (int i = 1; H != (HANDLE)-1 && i; i = FindNextFileA(H, &FindFileData)) {
- strcpy(&Dest, buf(m_PrefsSkinFile));
- strcat(&Dest, ".bmp");
- if (!strcmp(FindFileData.cFileName, &Dest))
- SkinFound = true;
- }
-
- FindClose(H);
-
- if (!SkinFound) {
- debug("Default skin set as no other skins are available OR saved skin not found!");
- strcpy((char *)CMenuManager::m_PrefsSkinFile, "$$\"\"");
- strcpy(m_aSkinName, "$$\"\"");
- }*/
}
#endif
@@ -1311,623 +1012,31 @@ void CMenuManager::PrintStats()
}
#endif
-#if 0
+
+#if 1
WRAPPER void CMenuManager::Process(void) { EAXJMP(0x485100); }
#else
void CMenuManager::Process(void)
{
- if (m_bSaveMenuActive && TheCamera.GetScreenFadeStatus())
- return;
-
- field_113 = 0;
- InitialiseChangedLanguageSettings();
-
- SwitchMenuOnAndOff();
-
- if (m_bMenuActive) {
- LoadAllTextures();
-
- if (m_nCurrScreen == MENUPAGE_DELETING) {
- bool SlotPopulated = false;
-
- if (PcSaveHelper.DeleteSlot(m_nCurrSaveSlot)) {
- PcSaveHelper.PopulateSlotInfo();
- SlotPopulated = true;
- }
- if (SlotPopulated) {
- m_nPrevScreen = m_nCurrScreen;
- m_nCurrScreen = MENUPAGE_DELETE_SUCCESS;
- m_nCurrOption = 0;
- m_nScreenChangeDelayTimer = CTimer::GetTimeInMillisecondsPauseMode();
- }
- else
- SaveLoadFileError_SetUpErrorScreen();
- }
- if (m_nCurrScreen == MENUPAGE_SAVING_IN_PROGRESS) {
- int8 SaveSlot = PcSaveHelper.SaveSlot(m_nCurrSaveSlot);
- PcSaveHelper.PopulateSlotInfo();
- if (SaveSlot) {
- m_nPrevScreen = m_nCurrScreen;
- m_nCurrScreen = MENUPAGE_SAVE_SUCCESSFUL;
- m_nCurrOption = 0;
- m_nScreenChangeDelayTimer = CTimer::GetTimeInMillisecondsPauseMode();
- }
- else
- SaveLoadFileError_SetUpErrorScreen();
- }
- if (m_nCurrScreen == MENUPAGE_LOADING_IN_PROGRESS) {
- if (CheckSlotDataValid(m_nCurrSaveSlot)) {
- TheCamera.m_bUseMouse3rdPerson = m_ControlMethod == 0;
- if (m_PrefsVsyncDisp != m_PrefsVsync)
- m_PrefsVsync = m_PrefsVsyncDisp;
- DMAudio.Service();
- m_bStartGameLoading = 1;
- RequestFrontEndShutdown();
- m_bLoadingSavedGame = 1;
- b_FoundRecentSavedGameWantToLoad = 1;
- DMAudio.SetEffectsFadeVol(0);
- DMAudio.SetMusicFadeVol(0);
- DMAudio.ResetTimers(CTimer::GetTimeInMilliseconds());
- }
- else
- SaveLoadFileError_SetUpErrorScreen();
- }
-
- ProcessButtonPresses();
- m_nScreenChangeDelayTimer = CTimer::GetTimeInMillisecondsPauseMode();
- }
- else {
- if (GetPadBack())
- RequestFrontEndStartUp();
-
- UnloadTextures();
- m_nPrevScreen = MENUPAGE_NONE;
- m_nCurrScreen = m_nPrevScreen;
- m_nCurrOption = MENUROW_0;
- m_nScreenChangeDelayTimer = CTimer::GetTimeInMilliseconds();
- }
}
#endif
-#if 0
+#if 1
WRAPPER void CMenuManager::ProcessButtonPresses() { EAXJMP(0x4856F0); }
#else
void CMenuManager::ProcessButtonPresses()
{
- // Update Mouse Position
- m_nMouseOldPosX = m_nMousePosX;
- m_nMouseOldPosY = m_nMousePosY;
-
- m_nMousePosX = m_nMouseTempPosX;
- m_nMousePosY = m_nMouseTempPosY;
-
- if (m_nMousePosX < 0)
- m_nMousePosX = 0;
- if (m_nMousePosX > SCREEN_WIDTH)
- m_nMousePosX = SCREEN_WIDTH;
- if (m_nMousePosY < 0)
- m_nMousePosY = 0;
- if (m_nMousePosY > SCREEN_HEIGHT)
- m_nMousePosY = SCREEN_HEIGHT;
-
- // Show/hide mouse cursor.
- if (GetMouseInput())
- m_bShowMouse = true;
- else if (GetPadInput())
- m_bShowMouse = false;
-
- // Get number of menu options.
- uint8 NumberOfMenuOptions = GetNumberOfMenuOptions();
-
- // Select next/previous option with pad. Mouse is done in drawing function.
- if (GetPadMoveUp()) {
- m_nPrevOption = m_nCurrOption;
- m_nCurrOption -= 1;
-
- if (aScreens[m_nCurrScreen].m_aEntries[0].m_Action == MENUACTION_LABEL) {
- if (m_nCurrOption < MENUROW_1)
- m_nCurrOption = NumberOfMenuOptions;
- }
- else {
- if (m_nCurrOption < MENUROW_0)
- m_nCurrOption = NumberOfMenuOptions;
- }
-
- DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_DENIED, 0);
- }
- else if (GetPadMoveDown()) {
- m_nPrevOption = m_nCurrOption;
- m_nCurrOption += 1;
-
- if (aScreens[m_nCurrScreen].m_aEntries[0].m_Action == MENUACTION_LABEL) {
- if (m_nCurrOption > NumberOfMenuOptions)
- m_nCurrOption = MENUROW_1;
- }
- else {
- if (m_nCurrOption > NumberOfMenuOptions)
- m_nCurrOption = MENUROW_0;
- }
-
- DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_DENIED, 0);
- }
-
- // Set what happens if ESC is pressed.
- if (GetPadBack()) {
- bool PlayEscSound = false;
- switch (m_nCurrScreen) {
- case MENUPAGE_START_MENU:
- break;
- case MENUPAGE_CHOOSE_SAVE_SLOT:
- case MENUPAGE_PAUSE_MENU:
- RequestFrontEndShutdown();
- PlayEscSound = true;
- break;
- default:
- SwitchToNewScreen(aScreens[m_nCurrScreen].m_PreviousPage[0]);
- PlayEscSound = true;
- break;
- };
-
- if (PlayEscSound)
- DMAudio.PlayFrontEndSound(SOUND_FRONTEND_EXIT, 0);
- }
-
- // TODO: finish hover options.
- // Set mouse buttons.
- if (GetMouseForward()) {
- switch (m_nHoverOption) {
- case ACTIVATE_OPTION:
- if (m_nCurrOption || m_nCurrScreen != MENUPAGE_PAUSE_MENU)
- m_nCurrOption = m_nPrevOption;
- m_nHoverOption = ACTIVATE_OPTION;
- break;
- default:
- break;
- };
- }
-
- // Process all menu options here, but first check if it's an option or a redirect.
- int32 CurrAction = aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action;
- if ((GetPadForward() || GetMouseForward()) ||
- ((GetPadMoveLeft() || GetMouseMoveRight()) || (GetPadMoveRight() || GetMouseMoveLeft())) &&
- (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_TargetMenu == m_nCurrScreen &&
- CurrAction != MENUACTION_CHANGEMENU &&
- CurrAction != MENUACTION_LOADRADIO &&
- CurrAction != MENUACTION_RESTOREDEF &&
- CurrAction != MENUACTION_PLAYERSETUP)) {
-
- if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEDS_TB"))
- DMAudio.PlayFrontEndSound(SOUND_FRONTEND_EXIT, 0);
- else
- DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SUCCESS, 0);
-
- ProcessOnOffMenuOptions();
- }
-
- // Process screens that may redirect you somewhere, or may not.
- switch (m_nCurrScreen) {
- case MENUPAGE_LOAD_SLOT_CONFIRM:
- break;
- case MENUPAGE_NEW_GAME_RELOAD:
- if (m_bGameNotLoaded)
- DoSettingsBeforeStartingAGame();
- break;
- case MENUPAGE_CHOOSE_DELETE_SLOT:
- case MENUPAGE_CHOOSE_SAVE_SLOT:
- case MENUPAGE_CHOOSE_LOAD_SLOT:
- PcSaveHelper.PopulateSlotInfo();
- break;
- default:
- break;
- };
-
- // Reset pad shaking.
- if (VibrationTime != 0) {
- if (CTimer::GetTimeInMillisecondsPauseMode() > VibrationTime) {
- CPad::GetPad(0)->StopShaking(0);
- VibrationTime = 0;
- }
- }
}
#endif
-#if 0
+#if 1
WRAPPER void CMenuManager::ProcessOnOffMenuOptions() { EAXJMP(0x48AE60); }
#else
void CMenuManager::ProcessOnOffMenuOptions()
{
- int8 InputDirection = (GetPadMoveLeft() || GetMouseMoveLeft()) && (!GetPadForward() && !GetMouseForward()) ? -1 : 1;
- int8 InputEnter = GetPadForward();
-
- uint8 NumberOfMenuOptions = GetNumberOfMenuOptions();
-
- // In numerical order.
- switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) {
- case MENUACTION_CHANGEMENU:
- SwitchToNewScreen(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_TargetMenu);
- break;
- case MENUACTION_CTRLVIBRATION:
- if (!m_PrefsUseVibration)
- m_PrefsUseVibration = true;
-
- if (m_PrefsUseVibration) {
- CPad::GetPad(0)->StartShake(350, 150);
- VibrationTime = CTimer::GetTimeInMillisecondsPauseMode() + 500;
- }
- SaveSettings();
- break;
- case MENUACTION_FRAMESYNC:
- m_PrefsVsync = m_PrefsVsync == false;
- SaveSettings();
- break;
- case MENUACTION_FRAMELIMIT:
- m_PrefsFrameLimiter = m_PrefsFrameLimiter == false;
- SaveSettings();
- break;
- case MENUACTION_TRAILS:
- BlurOn = BlurOn == false;
- if (!BlurOn)
- CMBlur::MotionBlurClose();
- else
- CMBlur::MotionBlurOpen(Scene.camera);
-
- SaveSettings();
- break;
- case MENUACTION_SUBTITLES:
- m_PrefsShowSubtitles = m_PrefsShowSubtitles == false;
- SaveSettings();
- break;
- case MENUACTION_WIDESCREEN:
-#ifndef HOR_PLUS
- m_PrefsUseWideScreen = m_PrefsUseWideScreen == false;
-#else
- if (InputDirection < 0) {
- switch (m_PrefsUseWideScreen) {
- case AR_AUTO:
- m_PrefsUseWideScreen = AR_64_27;
- break;
- case AR_3_2:
- m_PrefsUseWideScreen = AR_AUTO;
- break;
- case AR_4_3:
- m_PrefsUseWideScreen = AR_3_2;
- break;
- case AR_5_3:
- m_PrefsUseWideScreen = AR_4_3;
- break;
- case AR_5_4:
- m_PrefsUseWideScreen = AR_5_3;
- break;
- case AR_15_9:
- m_PrefsUseWideScreen = AR_5_4;
- break;
- case AR_16_9:
- m_PrefsUseWideScreen = AR_15_9;
- break;
- case AR_16_10:
- m_PrefsUseWideScreen = AR_16_9;
- break;
- case AR_64_27:
- m_PrefsUseWideScreen = AR_16_10;
- break;
- };
- }
- else {
- switch (m_PrefsUseWideScreen) {
- case AR_AUTO:
- m_PrefsUseWideScreen = AR_3_2;
- break;
- case AR_3_2:
- m_PrefsUseWideScreen = AR_4_3;
- break;
- case AR_4_3:
- m_PrefsUseWideScreen = AR_5_3;
- break;
- case AR_5_3:
- m_PrefsUseWideScreen = AR_5_4;
- break;
- case AR_5_4:
- m_PrefsUseWideScreen = AR_15_9;
- break;
- case AR_15_9:
- m_PrefsUseWideScreen = AR_16_9;
- break;
- case AR_16_9:
- m_PrefsUseWideScreen = AR_16_10;
- break;
- case AR_16_10:
- m_PrefsUseWideScreen = AR_64_27;
- break;
- case AR_64_27:
- m_PrefsUseWideScreen = AR_AUTO;
- break;
- };
- }
-#endif
- SaveSettings();
- break;
- case MENUACTION_BRIGHTNESS:
- case MENUACTION_DRAWDIST:
- case MENUACTION_MUSICVOLUME:
- case MENUACTION_SFXVOLUME:
- case MENUACTION_MOUSESENS:
- if (InputDirection > 0)
- CheckSliderMovement(1.0f);
- else
- CheckSliderMovement(-1.0f);
- break;
- case MENUACTION_RADIO:
- if (InputDirection < 0)
- m_PrefsRadioStation -= 1;
- else
- m_PrefsRadioStation += 1;
-
- if (DMAudio.IsMP3RadioChannelAvailable()) {
- if (m_PrefsRadioStation > USERTRACK)
- m_PrefsRadioStation = HEAD_RADIO;
- else if (m_PrefsRadioStation < HEAD_RADIO)
- m_PrefsRadioStation = USERTRACK;
- }
- else {
- if (m_PrefsRadioStation > CHATTERBOX)
- m_PrefsRadioStation = HEAD_RADIO;
- else if (m_PrefsRadioStation < HEAD_RADIO)
- m_PrefsRadioStation = CHATTERBOX;
- }
-
- SaveSettings();
- DMAudio.SetRadioInCar(m_PrefsRadioStation);
- DMAudio.PlayFrontEndTrack(m_PrefsRadioStation, 1);
- break;
- case MENUACTION_LANG_ENG:
- if (m_PrefsLanguage != LANGUAGE_AMERICAN) {
- m_PrefsLanguage = LANGUAGE_AMERICAN;
- m_bFrontEnd_ReloadObrTxtGxt = true;
- InitialiseChangedLanguageSettings();
- SaveSettings();
- }
- break;
- case MENUACTION_LANG_FRE:
- if (m_PrefsLanguage != LANGUAGE_FRENCH) {
- m_PrefsLanguage = LANGUAGE_FRENCH;
- m_bFrontEnd_ReloadObrTxtGxt = true;
- InitialiseChangedLanguageSettings();
- SaveSettings();
- }
- break;
- case MENUACTION_LANG_GER:
- if (m_PrefsLanguage != LANGUAGE_GERMAN) {
- m_PrefsLanguage = LANGUAGE_GERMAN;
- m_bFrontEnd_ReloadObrTxtGxt = true;
- InitialiseChangedLanguageSettings();
- SaveSettings();
- }
- break;
- case MENUACTION_LANG_ITA:
- if (m_PrefsLanguage != LANGUAGE_ITALIAN) {
- m_PrefsLanguage = LANGUAGE_ITALIAN;
- m_bFrontEnd_ReloadObrTxtGxt = true;
- InitialiseChangedLanguageSettings();
- SaveSettings();
- }
- break;
- case MENUACTION_LANG_SPA:
- if (m_PrefsLanguage != LANGUAGE_SPANISH) {
- m_PrefsLanguage = LANGUAGE_SPANISH;
- m_bFrontEnd_ReloadObrTxtGxt = true;
- InitialiseChangedLanguageSettings();
- SaveSettings();
- }
- break;
- case MENUACTION_UPDATESAVE:
- PcSaveHelper.PopulateSlotInfo();
- if (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_SaveSlot >= SAVESLOT_1 && aScreens[m_nCurrOption].m_aEntries[m_nCurrOption].m_SaveSlot <= SAVESLOT_8) {
- m_nCurrSaveSlot = aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_SaveSlot - 2;
-
- SwitchToNewScreen(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_TargetMenu);
- }
- break;
- case MENUACTION_CHECKSAVE:
- if (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_SaveSlot >= SAVESLOT_1 && aScreens[m_nCurrOption].m_aEntries[m_nCurrOption].m_SaveSlot <= SAVESLOT_8) {
- m_nCurrSaveSlot = aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_SaveSlot - 2;
-
- if (Slots[m_nCurrSaveSlot] != 1 && Slots[m_nCurrSaveSlot] != 2)
- SwitchToNewScreen(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_TargetMenu);
- }
- break;
- case MENUACTION_NEWGAME:
- DoSettingsBeforeStartingAGame();
- break;
- case MENUACTION_SETDBGFLAG:
- CTheScripts::DbgFlag = CTheScripts::DbgFlag == false;
- break;
- case MENUACTION_UPDATEMEMCARDSAVE:
- RequestFrontEndShutdown();
- break;
- case MENUACTION_INVVERT:
- MousePointerStateHelper.bInvertVertically = MousePointerStateHelper.bInvertVertically == false;
- return;
- case MENUACTION_CANCLEGAME:
- DMAudio.Service();
- RsEventHandler(rsQUITAPP, 0);
- break;
- case MENUACTION_RESUME:
- RequestFrontEndShutdown();
- break;
- case MENUACTION_SCREENRES:
- if (m_bGameNotLoaded) {
- if (InputEnter) {
- if (m_nDisplayVideoMode != m_nPrefsVideoMode) {
- m_nPrefsVideoMode = m_nDisplayVideoMode;
- _psSelectScreenVM(m_nPrefsVideoMode);
- CentreMousePointer();
- m_PrefsUseWideScreen = AR_AUTO;
- SaveSettings();
- }
- }
- else {
- char** VideoModeList = _psGetVideoModeList();
- int NumVideoModes = _psGetNumVideModes();
-
- if (InputDirection > 0) {
- int nCurrentVidMode = m_nDisplayVideoMode + 1;
-
- if (nCurrentVidMode >= NumVideoModes)
- nCurrentVidMode = 0;
-
- while (!VideoModeList[nCurrentVidMode]) {
- ++nCurrentVidMode;
-
- if (nCurrentVidMode >= NumVideoModes)
- nCurrentVidMode = 0;
- }
-
- m_nDisplayVideoMode = nCurrentVidMode;
- }
- else {
- int nCurrentVidMode = m_nDisplayVideoMode - 1;
-
- if (nCurrentVidMode < 0)
- nCurrentVidMode = NumVideoModes - 1;
-
- while (!VideoModeList[nCurrentVidMode]) {
- --nCurrentVidMode;
-
- if (nCurrentVidMode < 0)
- nCurrentVidMode = NumVideoModes - 1;
- }
- m_nDisplayVideoMode = nCurrentVidMode;
- }
- }
- }
- break;
- case MENUACTION_AUDIOHW:
- {
- int8 AudioHardware = m_nPrefsAudio3DProviderIndex;
- if (m_nPrefsAudio3DProviderIndex == -1)
- break;
-
- if (InputDirection > 0) {
- switch (m_nPrefsAudio3DProviderIndex) {
- case 0:
- m_nPrefsAudio3DProviderIndex = 1;
- break;
- case 1:
- m_nPrefsAudio3DProviderIndex = 2;
- break;
- case 2:
- m_nPrefsAudio3DProviderIndex = 3;
- break;
- case 3:
- m_nPrefsAudio3DProviderIndex = 4;
- break;
- case 4:
- m_nPrefsAudio3DProviderIndex = 5;
- break;
- case 5:
- m_nPrefsAudio3DProviderIndex = 6;
- break;
- case 6:
- m_nPrefsAudio3DProviderIndex = 0;
- break;
- }
- }
- else {
- switch (m_nPrefsAudio3DProviderIndex) {
- case 0:
- m_nPrefsAudio3DProviderIndex = 6;
- break;
- case 1:
- m_nPrefsAudio3DProviderIndex = 0;
- break;
- case 2:
- m_nPrefsAudio3DProviderIndex = 1;
- break;
- case 3:
- m_nPrefsAudio3DProviderIndex = 2;
- break;
- case 4:
- m_nPrefsAudio3DProviderIndex = 3;
- break;
- case 5:
- m_nPrefsAudio3DProviderIndex = 4;
- break;
- case 6:
- m_nPrefsAudio3DProviderIndex = 5;
- break;
- }
- }
-
- DMAudio.SetCurrent3DProvider(m_nPrefsAudio3DProviderIndex);
-
- if (AudioHardware == m_nPrefsAudio3DProviderIndex)
- SetHelperText(0);
- else
- SetHelperText(4);
-
- SaveSettings();
- break;
- }
- case MENUACTION_SPEAKERCONF:
- if (m_nPrefsAudio3DProviderIndex == -1)
- break;
-
- if (InputDirection > 0) {
- switch (m_PrefsSpeakers) {
- case 0:
- m_PrefsSpeakers = 1;
- break;
- case 1:
- m_PrefsSpeakers = 2;
- break;
- case 2:
- m_PrefsSpeakers = 0;
- break;
- };
- }
- else {
- switch (m_PrefsSpeakers) {
- case 0:
- m_PrefsSpeakers = 2;
- break;
- case 1:
- m_PrefsSpeakers = 0;
- break;
- case 2:
- m_PrefsSpeakers = 1;
- break;
- };
- }
-
- DMAudio.SetSpeakerConfig(m_PrefsSpeakers);
- SaveSettings();
- break;
- case MENUACTION_RESTOREDEF:
- SetDefaultPreferences(m_nCurrScreen);
- SetHelperText(2);
- SaveSettings();
- break;
- case MENUACTION_CTRLMETHOD:
- if (m_ControlMethod) {
- TheCamera.m_bUseMouse3rdPerson = 1;
- m_ControlMethod = 0;
- }
- else {
- TheCamera.m_bUseMouse3rdPerson = 0;
- m_ControlMethod = 1;
- }
- SaveSettings();
- break;
- case MENUACTION_DYNAMICACOUSTIC:
- m_PrefsDMA = m_PrefsDMA == false;
- break;
- case MENUACTION_MOUSESTEER:
- m_bDisableMouseSteering = m_bDisableMouseSteering == false;
- return;
- };
}
#endif
@@ -1960,41 +1069,12 @@ void CMenuManager::ResetHelperText()
}
#endif
-#if 0
+#if 1
WRAPPER void CMenuManager::SaveLoadFileError_SetUpErrorScreen() { EAXJMP(0x488930); }
#else
void CMenuManager::SaveLoadFileError_SetUpErrorScreen()
{
- switch (PcSaveHelper.m_nHelper) {
- case 1:
- case 2:
- case 3:
- m_nPrevScreen = m_nCurrScreen;
- m_nCurrScreen = MENUPAGE_SAVE_FAILED;
- break;
- break;
- case 4:
- case 5:
- case 6:
- this->m_nPrevScreen = m_nCurrScreen;
- this->m_nCurrScreen = MENUPAGE_LOAD_FAILED;
- break;
- case 7:
- this->m_nPrevScreen = m_nCurrScreen;
- this->m_nCurrScreen = MENUPAGE_LOAD_FAILED_2;
- break;
- case 8:
- case 9:
- case 10:
- m_nPrevScreen = m_nCurrScreen;
- m_nCurrScreen = MENUPAGE_DELETE_FAILED;
- break;
- default:
- return;
- }
- m_nCurrOption = MENUROW_0;
- m_nScreenChangeDelayTimer = CTimer::GetTimeInMillisecondsPauseMode();
}
#endif
@@ -2008,50 +1088,12 @@ void CMenuManager::SetHelperText(int text)
}
#endif
-#if 0
+#if 1
WRAPPER void CMenuManager::SaveSettings() { EAXJMP(0x488CC0); }
#else
void CMenuManager::SaveSettings()
{
- CFileMgr::SetDirMyDocuments();
-
- int fileHandle = CFileMgr::OpenFile("gta3.set", "wb");
- if (fileHandle) {
-
- ControlsManager.SaveSettings(fileHandle);
- CFileMgr::Write(fileHandle, buf("stuffmorestuffevenmorestuff etc"), 20);
- CFileMgr::Write(fileHandle, buf("stuffmorestuffevenmorestuff etc"), 20);
- CFileMgr::Write(fileHandle, buf("stuffmorestuffevenmorestuff etc"), 4);
- CFileMgr::Write(fileHandle, buf("stuffmorestuffevenmorestuff etc"), 4);
- CFileMgr::Write(fileHandle, buf("stuffmorestuffevenmorestuff etc"), 1);
- CFileMgr::Write(fileHandle, buf("stuffmorestuffevenmorestuff etc"), 1);
- CFileMgr::Write(fileHandle, buf("stuffmorestuffevenmorestuff etc"), 1);
- CFileMgr::Write(fileHandle, buf(&TheCamera.m_bHeadBob), sizeof(TheCamera.m_bHeadBob));
- CFileMgr::Write(fileHandle, buf(&TheCamera.m_fMouseAccelHorzntl), sizeof(TheCamera.m_fMouseAccelHorzntl));
- CFileMgr::Write(fileHandle, buf(&TheCamera.m_fMouseAccelVertical), sizeof(TheCamera.m_fMouseAccelVertical));
- CFileMgr::Write(fileHandle, buf(&MousePointerStateHelper.bInvertVertically), sizeof(MousePointerStateHelper.bInvertVertically));
- CFileMgr::Write(fileHandle, buf(&CVehicle::m_bDisableMouseSteering), sizeof(CVehicle::m_bDisableMouseSteering));
- CFileMgr::Write(fileHandle, buf(&m_PrefsSfxVolume), sizeof(m_PrefsSfxVolume));
- CFileMgr::Write(fileHandle, buf(&m_PrefsMusicVolume), sizeof(m_PrefsMusicVolume));
- CFileMgr::Write(fileHandle, buf(&m_PrefsRadioStation), sizeof(m_PrefsRadioStation));
- CFileMgr::Write(fileHandle, buf(&m_PrefsSpeakers), sizeof(m_PrefsSpeakers));
- CFileMgr::Write(fileHandle, buf(&m_nPrefsAudio3DProviderIndex), sizeof(m_nPrefsAudio3DProviderIndex));
- CFileMgr::Write(fileHandle, buf(&m_PrefsDMA), sizeof(m_PrefsDMA));
- CFileMgr::Write(fileHandle, buf(&m_PrefsBrightness), sizeof(m_PrefsBrightness));
- CFileMgr::Write(fileHandle, buf(&m_PrefsLOD), sizeof(m_PrefsLOD));
- CFileMgr::Write(fileHandle, buf(&m_PrefsShowSubtitles), sizeof(m_PrefsShowSubtitles));
- CFileMgr::Write(fileHandle, buf(&m_PrefsUseWideScreen), sizeof(m_PrefsUseWideScreen));
- CFileMgr::Write(fileHandle, buf(&m_PrefsVsyncDisp), sizeof(m_PrefsVsyncDisp));
- CFileMgr::Write(fileHandle, buf(&m_PrefsFrameLimiter), sizeof(m_PrefsFrameLimiter));
- CFileMgr::Write(fileHandle, buf(&m_nDisplayVideoMode), sizeof(m_nPrefsVideoMode));
- CFileMgr::Write(fileHandle, buf(&BlurOn), sizeof(BlurOn));
- CFileMgr::Write(fileHandle, buf(&m_PrefsSkinFile), sizeof(m_PrefsSkinFile));
- CFileMgr::Write(fileHandle, buf(&m_ControlMethod), sizeof(m_ControlMethod));
- CFileMgr::Write(fileHandle, buf(&m_PrefsLanguage), sizeof(m_PrefsLanguage));
- }
- CFileMgr::CloseFile(fileHandle);
- CFileMgr::SetDir("");
}
#endif
@@ -2065,7 +1107,6 @@ void CMenuManager::ShutdownJustMenu()
}
#endif
-// We won't ever use this again.
#if 0
WRAPPER float CMenuManager::StretchX(float) { EAXJMP(0x48ABE0); }
#else
@@ -2095,44 +1136,7 @@ WRAPPER void CMenuManager::SwitchMenuOnAndOff() { EAXJMP(0x488790); }
#else
void CMenuManager::SwitchMenuOnAndOff()
{
- // Just what the function name says.
- if (m_bShutDownFrontEndRequested || m_bStartUpFrontEndRequested) {
- if (!m_bMenuActive)
- m_bMenuActive = true;
-
- if (m_bShutDownFrontEndRequested)
- m_bMenuActive = false;
- if (m_bStartUpFrontEndRequested)
- m_bMenuActive = true;
-
- if (m_bMenuActive) {
- CTimer::StartUserPause();
- }
- else {
- ShutdownJustMenu();
- SaveSettings();
- m_bStartUpFrontEndRequested = false;
- pControlEdit = 0;
- m_bShutDownFrontEndRequested = false;
- DisplayComboButtonErrMsg = 0;
- CPad::GetPad(0)->Clear(0);
- CPad::GetPad(1)->Clear(0);
- SwitchToNewScreen(0);
- }
- }
- if (m_bSaveMenuActive && !m_bQuitGameNoCD) {
- m_bSaveMenuActive = false;
- m_bMenuActive = true;
- CTimer::StartUserPause();
- SwitchToNewScreen(MENUPAGE_CHOOSE_SAVE_SLOT);
- PcSaveHelper.PopulateSlotInfo();
- }
-
- if (!m_bMenuActive)
- field_112 = 1;
- m_bStartUpFrontEndRequested = false;
- m_bShutDownFrontEndRequested = false;
}
#endif
@@ -2161,241 +1165,18 @@ void CMenuManager::UnloadTextures()
}
#endif
-#if 0
+#if 1
WRAPPER void CMenuManager::WaitForUserCD(void) { EAXJMP(0x48ADD0); }
#else
void CMenuManager::WaitForUserCD()
{
- LoadSplash(0);
- if (!RsGlobal.quit) {
- HandleExit();
- CPad::UpdatePads();
- MessageScreen("NO_PCCD");
-
- if (GetPadBack()) {
- m_bQuitGameNoCD = true;
- RsEventHandler(rsQUITAPP, 0);
- }
- }
-}
-#endif
-
-// New content:
-uint8 CMenuManager::GetNumberOfMenuOptions()
-{
- uint8 Rows = MENUROW_NONE;
- for (int i = 0; i < MENUROWS; i++) {
- if (aScreens[m_nCurrScreen].m_aEntries[i].m_Action == MENUACTION_NOTHING)
- break;
- ++Rows;
- };
- return Rows;
-}
-
-void CMenuManager::SwitchToNewScreen(int8 screen)
-{
- ResetHelperText();
-
- // Return to - behaviour.
- if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEDS_TB") ||
- (screen == aScreens[m_nCurrScreen].m_PreviousPage[0])) {
- if (m_bGameNotLoaded) {
- m_nCurrOption = aScreens[m_nCurrScreen].m_ParentEntry[0];
- m_nCurrScreen = aScreens[m_nCurrScreen].m_PreviousPage[0];
- }
- else {
- m_nCurrOption = aScreens[m_nCurrScreen].m_ParentEntry[1];
- m_nCurrScreen = aScreens[m_nCurrScreen].m_PreviousPage[1];
- }
-
- m_nMenuFadeAlpha = 0;
- }
- else {
- // Go through - behaviour.
- if (screen) {
- m_nPrevScreen = m_nCurrScreen;
- m_nCurrScreen = screen;
- m_nCurrOption = MENUROW_0;
- m_nMenuFadeAlpha = 0;
- }
- else {
- m_nPrevScreen = MENUPAGE_NONE;
- m_nCurrScreen = MENUPAGE_NONE;
- m_nCurrOption = MENUROW_0;
- }
- }
-
- // Set player skin.
- if (m_nCurrScreen == MENUPAGE_SKIN_SELECT) {
- CPlayerSkin::BeginFrontEndSkinEdit();
- field_535 = 19;
- m_bSkinsFound = false;
- }
-
- // Set radio station.
- if (m_nCurrScreen == MENUPAGE_SOUND_SETTINGS) {
- DMAudio.PlayFrontEndTrack(m_PrefsRadioStation, 1);
- OutputDebugStringA("FRONTEND AUDIO TRACK STOPPED");
- }
- else
- DMAudio.StopFrontEndTrack();
-}
-
-void CMenuManager::SetDefaultPreferences(int8 screen)
-{
- switch (screen) {
- case MENUPAGE_SOUND_SETTINGS:
- m_PrefsMusicVolume = 102;
- m_PrefsSfxVolume = 102;
- m_PrefsSpeakers = 0;
- m_nPrefsAudio3DProviderIndex = 6;
- m_PrefsDMA = true;
- DMAudio.SetMusicMasterVolume(m_PrefsMusicVolume);
- DMAudio.SetEffectsMasterVolume(m_PrefsSfxVolume);
- DMAudio.SetCurrent3DProvider(m_nPrefsAudio3DProviderIndex);
- break;
- case MENUPAGE_GRAPHICS_SETTINGS:
- m_PrefsBrightness = 256;
- m_PrefsFrameLimiter = true;
- m_PrefsVsync = true;
- m_PrefsLOD = 1.2f;
- m_PrefsVsyncDisp = true;
- lodMultiplier = 1.2;
- BlurOn = true;
- CMBlur::MotionBlurOpen(Scene.camera);
- m_PrefsUseVibration = false;
- m_PrefsShowSubtitles = true;
- m_nDisplayVideoMode = m_nPrefsVideoMode;
- m_PrefsUseWideScreen = AR_AUTO;
- break;
- case MENUPAGE_CONTROLLER_PC:
- ControlsManager.MakeControllerActionsBlank();
- ControlsManager.InitDefaultControlConfiguration();
-
- CMouseControllerState state = MousePointerStateHelper.GetMouseSetUp();
- ControlsManager.InitDefaultControlConfigMouse(state);
-
- if (1) {
- //TODO: JoyPad stuff.
- }
- m_ControlMethod = 0;
- MousePointerStateHelper.bInvertVertically = true;
- TheCamera.m_fMouseAccelHorzntl = 0.25f;
- CVehicle::m_bDisableMouseSteering = true;
- TheCamera.m_bHeadBob = false;
- break;
- };
-}
-
-// Frontend inputs.
-bool GetPadBack()
-{
- return
- (CPad::GetPad(0)->NewKeyState.ESC && !CPad::GetPad(0)->OldKeyState.ESC) ||
- (CPad::GetPad(0)->NewState.Start && !CPad::GetPad(0)->OldState.Start) ||
- (CPad::GetPad(0)->NewState.Triangle && !CPad::GetPad(0)->OldState.Triangle);
-}
-
-bool GetPadForward()
-{
- return
- (CPad::GetPad(0)->NewKeyState.EXTENTER && !CPad::GetPad(0)->OldKeyState.EXTENTER) ||
- (CPad::GetPad(0)->NewKeyState.ENTER && !CPad::GetPad(0)->OldKeyState.ENTER) ||
- (CPad::GetPad(0)->NewState.Cross && !CPad::GetPad(0)->OldState.Cross);
-}
-
-bool GetPadMoveUp()
-{
- return
- (CPad::GetPad(0)->NewState.DPadUp && !CPad::GetPad(0)->OldState.DPadUp) ||
- (CPad::GetPad(0)->NewKeyState.UP && !CPad::GetPad(0)->OldKeyState.UP) ||
- (CPad::GetPad(0)->NewState.LeftStickY < 0 && !CPad::GetPad(0)->OldState.LeftStickY < 0);
-}
-
-bool GetPadMoveDown()
-{
- return
- (CPad::GetPad(0)->NewState.DPadDown && !CPad::GetPad(0)->OldState.DPadDown) ||
- (CPad::GetPad(0)->NewKeyState.DOWN && !CPad::GetPad(0)->OldKeyState.DOWN) ||
- (CPad::GetPad(0)->NewState.LeftStickY > 0 && !CPad::GetPad(0)->OldState.LeftStickY > 0);
-}
-
-bool GetPadMoveLeft()
-{
- return
- (CPad::GetPad(0)->NewState.DPadLeft && !CPad::GetPad(0)->OldState.DPadLeft) ||
- (CPad::GetPad(0)->NewKeyState.LEFT && !CPad::GetPad(0)->OldKeyState.LEFT) ||
- (CPad::GetPad(0)->NewState.LeftStickX < 0 && !CPad::GetPad(0)->OldState.LeftStickX < 0);
-}
-
-bool GetPadMoveRight()
-{
- return
- (CPad::GetPad(0)->NewState.DPadRight && !CPad::GetPad(0)->OldState.DPadRight) ||
- (CPad::GetPad(0)->NewKeyState.RIGHT && !CPad::GetPad(0)->OldKeyState.RIGHT) ||
- (CPad::GetPad(0)->NewState.LeftStickX > 0 && !CPad::GetPad(0)->OldState.LeftStickX > 0);
-}
-
-bool GetMouseForward()
-{
- return
- (CPad::GetPad(0)->NewMouseControllerState.LMB && !CPad::GetPad(0)->OldMouseControllerState.LMB);
-}
-
-bool GetMouseBack()
-{
- return
- (CPad::GetPad(0)->NewMouseControllerState.RMB && !CPad::GetPad(0)->OldMouseControllerState.RMB);
-}
-
-bool GetMousePos()
-{
- return
- (CPad::GetPad(0)->NewMouseControllerState.x != 0.0f || CPad::GetPad(0)->OldMouseControllerState.y != 0.0f);
-}
-
-bool GetMouseMoveLeft()
-{
- return
- (CPad::GetPad(0)->NewMouseControllerState.WHEELDN && !CPad::GetPad(0)->OldMouseControllerState.WHEELDN != 0.0f);
-}
-
-bool GetMouseMoveRight()
-{
- return
- (CPad::GetPad(0)->NewMouseControllerState.WHEELUP && !CPad::GetPad(0)->OldMouseControllerState.WHEELUP != 0.0f);
-}
-
-bool GetPadInput()
-{
- return
- GetPadBack() ||
- GetPadForward() ||
- GetPadMoveUp() ||
- GetPadMoveDown() ||
- GetPadMoveLeft() ||
- GetPadMoveRight();
-}
-
-bool GetMouseInput()
-{
- return
- GetMouseForward() ||
- GetMouseBack() ||
- GetMousePos() ||
- GetMouseMoveLeft() ||
- GetMouseMoveRight();
}
+#endif
STARTPATCHES
InjectHook(0x47A230, &CMenuManager::LoadAllTextures, PATCH_JUMP);
InjectHook(0x47A440, &CMenuManager::UnloadTextures, PATCH_JUMP);
- InjectHook(0x485100, &CMenuManager::Process, PATCH_JUMP);
- InjectHook(0x4856F0, &CMenuManager::ProcessButtonPresses, PATCH_JUMP);
- InjectHook(0x48AE60, &CMenuManager::ProcessOnOffMenuOptions, PATCH_JUMP);
- InjectHook(0x488EE0, &CMenuManager::LoadSettings, PATCH_JUMP);
- InjectHook(0x488CC0, &CMenuManager::SaveSettings, PATCH_JUMP);
for (int i = 1; i < ARRAY_SIZE(aScreens); i++)
Patch(0x611930 + sizeof(CMenuScreen) * i, aScreens[i]);
diff --git a/src/Frontend.h b/src/Frontend.h
index a833254a..dd6464b8 100644
--- a/src/Frontend.h
+++ b/src/Frontend.h
@@ -29,11 +29,7 @@
#define MENUSELECT_BOX_MAX 20.5f
#define MENUSELECT_BOX_MIN 17.0f
-#ifndef MID_RADIOICONS
#define MENURADIO_ICON_X 31.5f
-#else
-#define MENURADIO_ICON_X -262.0f
-#endif
#define MENURADIO_ICON_Y 29.5f
#define MENURADIO_ICON_W 60.0f
#define MENURADIO_ICON_H 60.0f
@@ -43,8 +39,6 @@
#define MENUSLIDER_X 306.0f
-#define buf(a) (char*)(a)
-
enum eLanguages
{
LANGUAGE_AMERICAN,
@@ -320,7 +314,6 @@ enum eMenuColumns
enum eMenuRow
{
- MENUROW_NONE = -1,
MENUROW_0,
MENUROW_1,
MENUROW_2,
@@ -354,8 +347,7 @@ struct tSkinInfo
struct CMenuScreen
{
char m_ScreenName[8];
- int32 unk;
- int32 m_PreviousPage[2]; // eMenuScreen
+ int32 m_PreviousPage[3]; // eMenuScreen
int32 m_ParentEntry[2]; // eMenuRow
struct CMenuEntry
@@ -425,7 +417,7 @@ public:
int m_nHoverOption;
int m_nCurrScreen;
int m_nCurrOption;
- int m_nPrevOption;
+ int m_nCurrentInput;
int m_nPrevScreen;
int field_558;
int m_nCurrSaveSlot;
@@ -451,8 +443,6 @@ public:
static int8 &m_bFrontEnd_ReloadObrTxtGxt;
static int32 &m_PrefsMusicVolume;
static int32 &m_PrefsSfxVolume;
- static uint8 *m_PrefsSkinFile;
-
static bool &m_bStartUpFrontEndRequested;
static bool &m_bShutDownFrontEndRequested;
static bool &m_PrefsAllowNastyGame;
@@ -462,7 +452,6 @@ public:
static void CentreMousePointer();
void CheckCodesForControls(int, int);
bool CheckHover(int x1, int x2, int y1, int y2);
- void CheckSliderMovement(int);
int CostructStatLine(int);
void DisplayHelperText();
float DisplaySlider(float, float, float, float, float, float);
@@ -500,12 +489,6 @@ public:
void SwitchMenuOnAndOff();
void UnloadTextures();
void WaitForUserCD();
-
- // New content:
- uint8 GetNumberOfMenuOptions();
- void SwitchToNewScreen(int8 screen);
- void SetDefaultPreferences(int8 screen);
-
};
static_assert(sizeof(CMenuManager) == 0x564, "CMenuManager: error");
diff --git a/src/MenuScreens.h b/src/MenuScreens.h
index 362d4909..640952ed 100644
--- a/src/MenuScreens.h
+++ b/src/MenuScreens.h
@@ -12,7 +12,7 @@ const CMenuScreen aScreens[] = {
// MENUPAGE_NEW_GAME = 2
{ "FET_SGA", MENUPAGE_NONE, MENUPAGE_NONE, MENUPAGE_NONE, MENUROW_0, MENUROW_1,
MENUACTION_CHANGEMENU, "FES_SNG", SAVESLOT_NONE, MENUPAGE_NEW_GAME_RELOAD,
- MENUACTION_CHANGEMENU, "GMLOAD", SAVESLOT_NONE, MENUPAGE_CHOOSE_LOAD_SLOT,
+ MENUACTION_UPDATESAVE, "GMLOAD", SAVESLOT_NONE, MENUPAGE_CHOOSE_LOAD_SLOT,
MENUACTION_CHANGEMENU, "FES_DGA", SAVESLOT_NONE, MENUPAGE_CHOOSE_DELETE_SLOT,
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
},
@@ -43,7 +43,7 @@ const CMenuScreen aScreens[] = {
{ "FET_DIS", MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, MENUROW_2, MENUROW_2,
MENUACTION_BRIGHTNESS, "FED_BRI", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
MENUACTION_DRAWDIST, "FEM_LOD", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
- //MENUACTION_FRAMESYNC, "FEM_VSC", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
+ MENUACTION_FRAMESYNC, "FEM_VSC", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
MENUACTION_FRAMELIMIT, "FEM_FRM", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
MENUACTION_TRAILS, "FED_TRA", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
MENUACTION_SUBTITLES, "FED_SUB", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
@@ -55,45 +55,45 @@ const CMenuScreen aScreens[] = {
// MENUPAGE_LANGUAGE_SETTINGS = 7
{ "FET_LAN", MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, MENUROW_3, MENUROW_3,
- MENUACTION_LANG_ENG, "FEL_ENG", SAVESLOT_NONE, MENUPAGE_NONE,
- MENUACTION_LANG_FRE, "FEL_FRE", SAVESLOT_NONE, MENUPAGE_NONE,
- MENUACTION_LANG_GER, "FEL_GER", SAVESLOT_NONE, MENUPAGE_NONE,
- MENUACTION_LANG_ITA, "FEL_ITA", SAVESLOT_NONE, MENUPAGE_NONE,
- MENUACTION_LANG_SPA, "FEL_SPA", SAVESLOT_NONE, MENUPAGE_NONE,
+ MENUACTION_LANG_ENG, "FEL_ENG", SAVESLOT_NONE, MENUPAGE_LANGUAGE_SETTINGS,
+ MENUACTION_LANG_FRE, "FEL_FRE", SAVESLOT_NONE, MENUPAGE_LANGUAGE_SETTINGS,
+ MENUACTION_LANG_GER, "FEL_GER", SAVESLOT_NONE, MENUPAGE_LANGUAGE_SETTINGS,
+ MENUACTION_LANG_ITA, "FEL_ITA", SAVESLOT_NONE, MENUPAGE_LANGUAGE_SETTINGS,
+ MENUACTION_LANG_SPA, "FEL_SPA", SAVESLOT_NONE, MENUPAGE_LANGUAGE_SETTINGS,
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
},
// MENUPAGE_CHOOSE_LOAD_SLOT = 8
{ "FET_LG", MENUPAGE_NEW_GAME, MENUPAGE_NEW_GAME, MENUPAGE_NEW_GAME, MENUROW_1, MENUROW_1,
MENUACTION_CHANGEMENU, "FESZ_CA", SAVESLOT_NONE, MENUPAGE_NEW_GAME,
- MENUACTION_CHECKSAVE, "FEM_SL1", SAVESLOT_1, MENUPAGE_LOAD_SLOT_CONFIRM,
- MENUACTION_CHECKSAVE, "FEM_SL2", SAVESLOT_2, MENUPAGE_LOAD_SLOT_CONFIRM,
- MENUACTION_CHECKSAVE, "FEM_SL3", SAVESLOT_3, MENUPAGE_LOAD_SLOT_CONFIRM,
- MENUACTION_CHECKSAVE, "FEM_SL4", SAVESLOT_4, MENUPAGE_LOAD_SLOT_CONFIRM,
- MENUACTION_CHECKSAVE, "FEM_SL5", SAVESLOT_5, MENUPAGE_LOAD_SLOT_CONFIRM,
- MENUACTION_CHECKSAVE, "FEM_SL6", SAVESLOT_6, MENUPAGE_LOAD_SLOT_CONFIRM,
- MENUACTION_CHECKSAVE, "FEM_SL7", SAVESLOT_7, MENUPAGE_LOAD_SLOT_CONFIRM,
- MENUACTION_CHECKSAVE, "FEM_SL8", SAVESLOT_8, MENUPAGE_LOAD_SLOT_CONFIRM,
+ MENUACTION_CHECKSAVE, "FEM_SL1", SAVESLOT_1, MENUPAGE_LOAD_SLOT_CONFIRM,
+ MENUACTION_CHECKSAVE, "FEM_SL2", SAVESLOT_2, MENUPAGE_LOAD_SLOT_CONFIRM,
+ MENUACTION_CHECKSAVE, "FEM_SL3", SAVESLOT_3, MENUPAGE_LOAD_SLOT_CONFIRM,
+ MENUACTION_CHECKSAVE, "FEM_SL4", SAVESLOT_4, MENUPAGE_LOAD_SLOT_CONFIRM,
+ MENUACTION_CHECKSAVE, "FEM_SL5", SAVESLOT_5, MENUPAGE_LOAD_SLOT_CONFIRM,
+ MENUACTION_CHECKSAVE, "FEM_SL6", SAVESLOT_6, MENUPAGE_LOAD_SLOT_CONFIRM,
+ MENUACTION_CHECKSAVE, "FEM_SL7", SAVESLOT_7, MENUPAGE_LOAD_SLOT_CONFIRM,
+ MENUACTION_CHECKSAVE, "FEM_SL8", SAVESLOT_8, MENUPAGE_LOAD_SLOT_CONFIRM,
},
// MENUPAGE_CHOOSE_DELETE_SLOT = 9
{ "FET_DG", MENUPAGE_NEW_GAME, MENUPAGE_NEW_GAME, MENUPAGE_NEW_GAME, MENUROW_2, MENUROW_2,
- MENUACTION_CHANGEMENU, "FESZ_CA", SAVESLOT_NONE, MENUPAGE_NEW_GAME,
- MENUACTION_CHECKSAVE, "FEM_SL1", SAVESLOT_1, MENUPAGE_DELETE_SLOT_CONFIRM,
- MENUACTION_CHECKSAVE, "FEM_SL2", SAVESLOT_2, MENUPAGE_DELETE_SLOT_CONFIRM,
- MENUACTION_CHECKSAVE, "FEM_SL3", SAVESLOT_3, MENUPAGE_DELETE_SLOT_CONFIRM,
- MENUACTION_CHECKSAVE, "FEM_SL4", SAVESLOT_4, MENUPAGE_DELETE_SLOT_CONFIRM,
- MENUACTION_CHECKSAVE, "FEM_SL5", SAVESLOT_5, MENUPAGE_DELETE_SLOT_CONFIRM,
- MENUACTION_CHECKSAVE, "FEM_SL6", SAVESLOT_6, MENUPAGE_DELETE_SLOT_CONFIRM,
- MENUACTION_CHECKSAVE, "FEM_SL7", SAVESLOT_7, MENUPAGE_DELETE_SLOT_CONFIRM,
- MENUACTION_CHECKSAVE, "FEM_SL8", SAVESLOT_8, MENUPAGE_DELETE_SLOT_CONFIRM,
+ MENUACTION_CHANGEMENU, "FESZ_CA", SAVESLOT_NONE, MENUPAGE_NEW_GAME,
+ MENUACTION_CHANGEMENU, "FEM_SL1", SAVESLOT_1, MENUPAGE_DELETE_SLOT_CONFIRM,
+ MENUACTION_CHANGEMENU, "FEM_SL2", SAVESLOT_2, MENUPAGE_DELETE_SLOT_CONFIRM,
+ MENUACTION_CHANGEMENU, "FEM_SL3", SAVESLOT_3, MENUPAGE_DELETE_SLOT_CONFIRM,
+ MENUACTION_CHANGEMENU, "FEM_SL4", SAVESLOT_4, MENUPAGE_DELETE_SLOT_CONFIRM,
+ MENUACTION_CHANGEMENU, "FEM_SL5", SAVESLOT_5, MENUPAGE_DELETE_SLOT_CONFIRM,
+ MENUACTION_CHANGEMENU, "FEM_SL6", SAVESLOT_6, MENUPAGE_DELETE_SLOT_CONFIRM,
+ MENUACTION_CHANGEMENU, "FEM_SL7", SAVESLOT_7, MENUPAGE_DELETE_SLOT_CONFIRM,
+ MENUACTION_CHANGEMENU, "FEM_SL8", SAVESLOT_8, MENUPAGE_DELETE_SLOT_CONFIRM,
},
// MENUPAGE_NEW_GAME_RELOAD = 10
{ "FET_NG", MENUPAGE_NEW_GAME, MENUPAGE_NEW_GAME, MENUPAGE_NEW_GAME, MENUROW_0, MENUROW_0,
MENUACTION_LABEL, "FESZ_QR", SAVESLOT_NONE, MENUPAGE_NONE,
MENUACTION_CHANGEMENU, "FEM_NO", SAVESLOT_NONE, MENUPAGE_NEW_GAME,
- MENUACTION_NEWGAME, "FEM_YES", SAVESLOT_NONE, MENUPAGE_NONE,
+ MENUACTION_NEWGAME, "FEM_YES", SAVESLOT_NONE, MENUPAGE_NEW_GAME_RELOAD,
},
// MENUPAGE_LOAD_SLOT_CONFIRM = 11
@@ -181,14 +181,14 @@ const CMenuScreen aScreens[] = {
// MENUPAGE_CHOOSE_SAVE_SLOT = 26
{ "FET_SG", MENUPAGE_DISABLED, MENUPAGE_DISABLED, MENUPAGE_DISABLED, MENUROW_0, MENUROW_0,
MENUACTION_UPDATEMEMCARDSAVE, "FESZ_CA", SAVESLOT_NONE, MENUPAGE_NONE,
- MENUACTION_UPDATESAVE, "FEM_SL1", SAVESLOT_1, MENUPAGE_SAVE_OVERWRITE_CONFIRM,
- MENUACTION_UPDATESAVE, "FEM_SL2", SAVESLOT_2, MENUPAGE_SAVE_OVERWRITE_CONFIRM,
- MENUACTION_UPDATESAVE, "FEM_SL3", SAVESLOT_3, MENUPAGE_SAVE_OVERWRITE_CONFIRM,
- MENUACTION_UPDATESAVE, "FEM_SL4", SAVESLOT_4, MENUPAGE_SAVE_OVERWRITE_CONFIRM,
- MENUACTION_UPDATESAVE, "FEM_SL5", SAVESLOT_5, MENUPAGE_SAVE_OVERWRITE_CONFIRM,
- MENUACTION_UPDATESAVE, "FEM_SL6", SAVESLOT_6, MENUPAGE_SAVE_OVERWRITE_CONFIRM,
- MENUACTION_UPDATESAVE, "FEM_SL7", SAVESLOT_7, MENUPAGE_SAVE_OVERWRITE_CONFIRM,
- MENUACTION_UPDATESAVE, "FEM_SL8", SAVESLOT_8, MENUPAGE_SAVE_OVERWRITE_CONFIRM,
+ MENUACTION_CHANGEMENU, "FEM_SL1", SAVESLOT_1, MENUPAGE_SAVE_OVERWRITE_CONFIRM,
+ MENUACTION_CHANGEMENU, "FEM_SL2", SAVESLOT_2, MENUPAGE_SAVE_OVERWRITE_CONFIRM,
+ MENUACTION_CHANGEMENU, "FEM_SL3", SAVESLOT_3, MENUPAGE_SAVE_OVERWRITE_CONFIRM,
+ MENUACTION_CHANGEMENU, "FEM_SL4", SAVESLOT_4, MENUPAGE_SAVE_OVERWRITE_CONFIRM,
+ MENUACTION_CHANGEMENU, "FEM_SL5", SAVESLOT_5, MENUPAGE_SAVE_OVERWRITE_CONFIRM,
+ MENUACTION_CHANGEMENU, "FEM_SL6", SAVESLOT_6, MENUPAGE_SAVE_OVERWRITE_CONFIRM,
+ MENUACTION_CHANGEMENU, "FEM_SL7", SAVESLOT_7, MENUPAGE_SAVE_OVERWRITE_CONFIRM,
+ MENUACTION_CHANGEMENU, "FEM_SL8", SAVESLOT_8, MENUPAGE_SAVE_OVERWRITE_CONFIRM,
},
// MENUPAGE_SAVE_OVERWRITE_CONFIRM = 27
@@ -236,7 +236,7 @@ const CMenuScreen aScreens[] = {
// MENUPAGE_CONTROLLER_PC = 35
{ "FET_CTL", MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, MENUROW_0, MENUROW_0,
MENUACTION_CTRLMETHOD, "FET_CME", SAVESLOT_NONE, MENUPAGE_CONTROLLER_PC,
- MENUACTION_CHANGEMENU, "FET_RDK", SAVESLOT_NONE, MENUPAGE_KEYBOARD_CONTROLS,
+ MENUACTION_REDEFCTRL, "FET_RDK", SAVESLOT_NONE, MENUPAGE_KEYBOARD_CONTROLS,
MENUACTION_CHANGEMENU, "FET_AMS", SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS,
MENUACTION_RESTOREDEF, "FET_DEF", SAVESLOT_NONE, MENUPAGE_CONTROLLER_PC,
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
@@ -270,17 +270,17 @@ const CMenuScreen aScreens[] = {
// MENUPAGE_OPTIONS = 41
{ "FET_OPT", MENUPAGE_NONE, MENUPAGE_NONE, MENUPAGE_NONE, MENUROW_1, MENUROW_4,
MENUACTION_CHANGEMENU, "FET_CTL", SAVESLOT_NONE, MENUPAGE_CONTROLLER_PC,
- MENUACTION_CHANGEMENU, "FET_AUD", SAVESLOT_NONE, MENUPAGE_SOUND_SETTINGS,
+ MENUACTION_LOADRADIO, "FET_AUD", SAVESLOT_NONE, MENUPAGE_SOUND_SETTINGS,
MENUACTION_CHANGEMENU, "FET_DIS", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
MENUACTION_CHANGEMENU, "FET_LAN", SAVESLOT_NONE, MENUPAGE_LANGUAGE_SETTINGS,
- MENUACTION_CHANGEMENU, "FET_PSU", SAVESLOT_NONE, MENUPAGE_SKIN_SELECT,
+ MENUACTION_PLAYERSETUP, "FET_PSU", SAVESLOT_NONE, MENUPAGE_SKIN_SELECT,
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
},
// MENUPAGE_EXIT = 42
{ "FET_QG", MENUPAGE_NONE, MENUPAGE_NONE, MENUPAGE_NONE, MENUROW_2, MENUROW_5,
MENUACTION_LABEL, "FEQ_SRE", SAVESLOT_NONE, MENUPAGE_NONE,
- MENUACTION_CHANGEMENU, "FEM_NO", SAVESLOT_NONE, MENUPAGE_NONE,
+ MENUACTION_DONTCANCLE, "FEM_NO", SAVESLOT_NONE, MENUPAGE_NONE,
MENUACTION_CANCLEGAME, "FEM_YES", SAVESLOT_NONE, MENUPAGE_NONE,
},
@@ -352,19 +352,19 @@ const CMenuScreen aScreens[] = {
// MENUPAGE_SKIN_SELECT = 54
{ "FET_PSU", MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, MENUROW_4, MENUROW_4,
- //MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_MULTIPLAYER_MAIN,
+ MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_MULTIPLAYER_MAIN,
},
// MENUPAGE_KEYBOARD_CONTROLS = 55
{ "FET_STI", MENUPAGE_CONTROLLER_PC, MENUPAGE_CONTROLLER_PC, MENUPAGE_CONTROLLER_PC, MENUROW_1, MENUROW_1,
- //MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_CONTROLLER_PC,
+ MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_CONTROLLER_PC,
},
// MENUPAGE_MOUSE_CONTROLS = 56
{ "FET_MTI", MENUPAGE_CONTROLLER_PC, MENUPAGE_CONTROLLER_PC, MENUPAGE_CONTROLLER_PC, MENUROW_2, MENUROW_2,
- MENUACTION_MOUSESENS, "FEC_MSH", SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS,
- MENUACTION_INVVERT, "FEC_IVV", SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS,
- MENUACTION_MOUSESTEER, "FET_MST", SAVESLOT_NONE, MENUPAGE_MOUSE_CONTROLS,
+ MENUACTION_MOUSESENS, "FEC_MSH", SAVESLOT_NONE, MENUPAGE_CONTROLLER_PC,
+ MENUACTION_INVVERT, "FEC_IVV", SAVESLOT_NONE, MENUPAGE_CONTROLLER_PC,
+ MENUACTION_MOUSESTEER, "FET_MST", SAVESLOT_NONE, MENUPAGE_CONTROLLER_PC,
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
},
diff --git a/src/PCSave.cpp b/src/PCSave.cpp
index 628e1218..ae5e43b0 100644
--- a/src/PCSave.cpp
+++ b/src/PCSave.cpp
@@ -4,17 +4,9 @@
#include "PCSave.h"
WRAPPER void C_PcSave::SetSaveDirectory(const char *path) { EAXJMP(0x591EA0); }
-WRAPPER int8 C_PcSave::PopulateSlotInfo() { EAXJMP(0x592090); }
-WRAPPER int8 C_PcSave::DeleteSlot(int) { EAXJMP(0x5922F0); }
-WRAPPER int8 C_PcSave::SaveSlot(int) { EAXJMP(0x591EC0); }
-
-WRAPPER int8 CheckSlotDataValid(int) { EAXJMP(0x591A40); }
-
WRAPPER wchar *GetNameOfSavedGame(int counter) { EAXJMP(0x591B60); }
WRAPPER wchar *GetSavedGameDateAndTime(int counter) { EAXJMP(0x591B50); }
-
-C_PcSave PcSaveHelper = *(C_PcSave*)0x8E2C60;
int *Slots = (int*)0x728040;
int *SlotFileName = (int*)0x6F07C8;
int *SlotSaveDate = (int*)0x72B858;
diff --git a/src/PCSave.h b/src/PCSave.h
index 696e158a..79202bc9 100644
--- a/src/PCSave.h
+++ b/src/PCSave.h
@@ -3,19 +3,12 @@
class C_PcSave
{
public:
- int32 m_nHelper;
-
static void SetSaveDirectory(const char *path);
- int8 PopulateSlotInfo();
- int8 DeleteSlot(int);
- int8 SaveSlot(int);
};
-extern int8 CheckSlotDataValid(int);
extern wchar *GetNameOfSavedGame(int counter);
extern wchar *GetSavedGameDateAndTime(int counter);
-extern C_PcSave PcSaveHelper;
extern int *Slots;
extern int *SlotFileName;
extern int *SlotSaveDate;
diff --git a/src/Pad.cpp b/src/Pad.cpp
index 66bc3bf9..002e7180 100644
--- a/src/Pad.cpp
+++ b/src/Pad.cpp
@@ -25,7 +25,6 @@
#include "Weather.h"
#include "win.h"
-
CPad *Pads = (CPad*)0x6F0360; // [2]
CMousePointerStateHelper &MousePointerStateHelper = *(CMousePointerStateHelper*)0x95CC8C;
@@ -532,7 +531,7 @@ void CPad::AddToPCCheatString(char c)
// "NASTYLIMBSCHEAT"
if ( !_CHEATCMP("TAEHCSBMILYTSAN") )
NastyLimbsCheat();
-
+
#ifdef KANGAROO_CHEAT
// "KANGAROO"
if (!_CHEATCMP("OORAGNAK"))
diff --git a/src/PlayerSkin.cpp b/src/PlayerSkin.cpp
deleted file mode 100644
index 1c9ca2c6..00000000
--- a/src/PlayerSkin.cpp
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "common.h"
-#include "patcher.h"
-#include "PlayerSkin.h"
-
-WRAPPER void CPlayerSkin::BeginFrontEndSkinEdit() { EAXJMP(0x59BC70); }
diff --git a/src/PlayerSkin.h b/src/PlayerSkin.h
deleted file mode 100644
index 61e09cdf..00000000
--- a/src/PlayerSkin.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#pragma once
-
-class CPlayerSkin
-{
-public:
- static void BeginFrontEndSkinEdit();
-}; \ No newline at end of file
diff --git a/src/Radar.h b/src/Radar.h
index ac4e7392..e5396a50 100644
--- a/src/Radar.h
+++ b/src/Radar.h
@@ -63,17 +63,10 @@ struct CBlip
static_assert(sizeof(CBlip) == 0x30, "CBlip: error");
// Values for screen space
-#ifndef SA_STYLE_RADAR
#define RADAR_LEFT (40.0f)
#define RADAR_BOTTOM (47.0f)
#define RADAR_WIDTH (94.0f)
#define RADAR_HEIGHT (76.0f)
-#else
-#define RADAR_LEFT (34.0f)
-#define RADAR_BOTTOM (25.0f)
-#define RADAR_WIDTH (86.0f)
-#define RADAR_HEIGHT (82.0f)
-#endif
class CRadar
{
diff --git a/src/audio/DMAudio.cpp b/src/audio/DMAudio.cpp
index 824d5c39..b3887c70 100644
--- a/src/audio/DMAudio.cpp
+++ b/src/audio/DMAudio.cpp
@@ -17,13 +17,8 @@ WRAPPER bool cDMAudio::CheckForAnAudioFileOnCD() { EAXJMP(0x57CA70); }
WRAPPER void cDMAudio::ChangeMusicMode(uint8 mode) { EAXJMP(0x57CCF0); }
WRAPPER void cDMAudio::PlayFrontEndSound(uint32, uint32) { EAXJMP(0x57CC20); }
-WRAPPER void cDMAudio::PlayFrontEndTrack(uint32, uint32) { EAXJMP(0x57CC80); }
-WRAPPER void cDMAudio::StopFrontEndTrack() { EAXJMP(0x57CCB0); }
-WRAPPER void cDMAudio::PlayOneShot(int32, uint16, float) { EAXJMP(0x57C840); }
-WRAPPER void cDMAudio::SetMusicMasterVolume(int8) { EAXJMP(0x57C8C0); }
-WRAPPER void cDMAudio::SetEffectsMasterVolume(int8) { EAXJMP(0x57C890); }
-WRAPPER int8 cDMAudio::SetCurrent3DProvider(int8) { EAXJMP(0x57C9B0); }
-WRAPPER int32 cDMAudio::SetSpeakerConfig(int32) { EAXJMP(0x57C9D0); }
+WRAPPER void cDMAudio::PlayOneShot(int, uint16, float) { EAXJMP(0x57C840); }
+
WRAPPER int32 cDMAudio::GetRadioInCar() { EAXJMP(0x57CE40); }
WRAPPER uint8 cDMAudio::IsMP3RadioChannelAvailable() { EAXJMP(0x57C9F0); }
diff --git a/src/audio/DMAudio.h b/src/audio/DMAudio.h
index 46914aaa..46b40e37 100644
--- a/src/audio/DMAudio.h
+++ b/src/audio/DMAudio.h
@@ -188,13 +188,7 @@ public:
bool CheckForAnAudioFileOnCD(void);
void ChangeMusicMode(uint8 mode);
void PlayFrontEndSound(uint32, uint32);
- void PlayFrontEndTrack(uint32, uint32);
- void StopFrontEndTrack();
- void PlayOneShot(int32, uint16, float);
- void SetMusicMasterVolume(int8);
- void SetEffectsMasterVolume(int8);
- int8 SetCurrent3DProvider(int8);
- int32 SetSpeakerConfig(int32);
+ void PlayOneShot(int, uint16, float);
int32 GetRadioInCar(void);
void SetEffectsFadeVol(uint8);
void SetMusicFadeVol(uint8);
diff --git a/src/common.h b/src/common.h
index a8a99ec9..f959de42 100644
--- a/src/common.h
+++ b/src/common.h
@@ -82,7 +82,6 @@ extern void **rwengine;
#define SCREEN_STRETCH_FROM_BOTTOM(a) float(SCREEN_HEIGHT - SCREEN_STRETCH_Y(a))
#define SCREEN_MULTIPLIER (CDraw::GetScreenMult())
-#define SCREEN_COORD(a) (a * SCREEN_ASPECT_RATIO)
#define SCREEN_SCALE(a) float((a) * (4.0f / 3.0f) / SCREEN_ASPECT_RATIO)
#define SCREEN_SCALE_X(a) SCREEN_SCALE(SCREEN_STRETCH_X(a) * SCREEN_MULTIPLIER)
#define SCREEN_SCALE_Y(a) (SCREEN_STRETCH_Y(a) * SCREEN_MULTIPLIER)
diff --git a/src/config.h b/src/config.h
index 87cfd191..b43a3a9f 100644
--- a/src/config.h
+++ b/src/config.h
@@ -79,7 +79,3 @@ enum Config {
#define NASTY_GAME
#define PS2_MATFX
#define KANGAROO_CHEAT
-#define HOR_PLUS
-#define MID_RADIOICONS
-#define NO_ROCKET_BORDERS
-#define SA_STYLE_RADAR
diff --git a/src/entities/Vehicle.cpp b/src/entities/Vehicle.cpp
index f7c4b065..8c1ef515 100644
--- a/src/entities/Vehicle.cpp
+++ b/src/entities/Vehicle.cpp
@@ -12,8 +12,7 @@ bool &CVehicle::bAllDodosCheat = *(bool *)0x95CD75;
bool &CVehicle::bCheat3 = *(bool *)0x95CD66;
bool &CVehicle::bCheat4 = *(bool *)0x95CD65;
bool &CVehicle::bCheat5 = *(bool *)0x95CD64;
-bool &CVehicle::m_bDisableMouseSteering = *(bool *)0x60252C;
-
+
void *CVehicle::operator new(size_t sz) { return CPools::GetVehiclePool()->New(); }
void *CVehicle::operator new(size_t sz, int handle) { return CPools::GetVehiclePool()->New(handle); }
void CVehicle::operator delete(void *p, size_t sz) { CPools::GetVehiclePool()->Delete((CVehicle*)p); }
diff --git a/src/entities/Vehicle.h b/src/entities/Vehicle.h
index ba3e568e..27641e47 100644
--- a/src/entities/Vehicle.h
+++ b/src/entities/Vehicle.h
@@ -135,7 +135,6 @@ public:
static bool &bCheat3;
static bool &bCheat4;
static bool &bCheat5;
- static bool &m_bDisableMouseSteering;
};
static_assert(sizeof(CVehicle) == 0x288, "CVehicle: error");
diff --git a/src/main.cpp b/src/main.cpp
index a00447ef..307d0b66 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -341,11 +341,7 @@ Render2dStuff(void)
firstPersonWeapon = true;
// Draw black border for sniper and rocket launcher
-#ifndef NO_ROCKET_BORDERS
if((weaponType == WEAPONTYPE_SNIPERRIFLE || weaponType == WEAPONTYPE_ROCKETLAUNCHER) && firstPersonWeapon){
-#else
- if (weaponType == WEAPONTYPE_SNIPERRIFLE && firstPersonWeapon) {
-#endif
CRGBA black(0, 0, 0, 255);
// top and bottom strips
@@ -361,7 +357,6 @@ Render2dStuff(void)
CSprite2d::DrawRect(CRect(SCREENW / 2 + SCREEN_SCALE_X(210), 0.0f, SCREENW, SCREENH), black);
}
-
MusicManager.DisplayRadioStationName();
// TheConsole.Display();
/*
@@ -787,7 +782,7 @@ AppEventHandler(RsEvent event, void *param)
{
CameraSize(Scene.camera, (RwRect *)param,
- DEFAULT_VIEWWINDOW, SCREEN_ASPECT_RATIO);
+ DEFAULT_VIEWWINDOW, DEFAULT_ASPECTRATIO);
return rsEVENTPROCESSED;
}
diff --git a/src/main.h b/src/main.h
index 7d3fad9b..c7914549 100644
--- a/src/main.h
+++ b/src/main.h
@@ -19,4 +19,3 @@ void LoadingIslandScreen(const char *levelName);
CSprite2d *LoadSplash(const char *name);
char *GetLevelSplashScreen(int level);
char *GetRandomSplashScreen(void);
-extern bool &b_FoundRecentSavedGameWantToLoad;
diff --git a/src/render/Draw.cpp b/src/render/Draw.cpp
index f1b2147f..90875299 100644
--- a/src/render/Draw.cpp
+++ b/src/render/Draw.cpp
@@ -16,70 +16,43 @@ uint8 &CDraw::FadeRed = *(uint8*)0x95CD90;
uint8 &CDraw::FadeGreen = *(uint8*)0x95CD71;
uint8 &CDraw::FadeBlue = *(uint8*)0x95CD53;
-void CDraw::CalculateAspectRatio()
+void
+CDraw::CalculateAspectRatio()
{
SetScreenMult(DEFAULT_SCALE);
-#ifndef HOR_PLUS
- if (FrontEndMenuManager.m_PrefsUseWideScreen)
- ms_fAspectRatio = 16.0f / 9.0f;
+ if(FrontEndMenuManager.m_PrefsUseWideScreen)
+ ms_fAspectRatio = 16.0f/9.0f;
else
- ms_fAspectRatio = 4.0f / 3.0f;
-#else
- switch (FrontEndMenuManager.m_PrefsUseWideScreen) {
- case AR_AUTO:
- ms_fAspectRatio = (float)SCREEN_WIDTH / (float)SCREEN_HEIGHT;
- return;
- case AR_3_2:
- ms_fAspectRatio = 3.0f / 2.0f;
- return;
- case AR_4_3:
- ms_fAspectRatio = 4.0f / 3.0f;
- return;
- case AR_5_3:
- ms_fAspectRatio = 5.0f / 3.0f;
- return;
- case AR_5_4:
- ms_fAspectRatio = 5.0f / 4.0f;
- return;
- case AR_15_9:
- ms_fAspectRatio = 15.0f / 9.0f;
- return;
- case AR_16_9:
- ms_fAspectRatio = 16.0f / 9.0f;
- return;
- case AR_16_10:
- ms_fAspectRatio = 16.0f / 10.0f;
- return;
- case AR_64_27:
- ms_fAspectRatio = 64.0f / 27.0f;
- return;
- };
-
-#endif
+ ms_fAspectRatio = 4.0f/3.0f;
}
-float
-HorToVert(float hfov)
+static float hFov2vFov(float hfov)
{
- float vfov = atan(tan(DEGTORAD(hfov) / 2) / (4.0 / 3.0)) * 2;
- return RADTODEG(hfov = atan(tan(vfov / 2) * CDraw::GetAspectRatio()) * 2);
+ float w = SCREENW;
+ float h = SCREENH;
+
+ // => tan(hFOV/2) = tan(vFOV/2)*aspectRatio
+ // => tan(vFOV/2) = tan(hFOV/2)/aspectRatio
+ float ar1 = 4.0/3.0;
+ float ar2 = w/h;
+ hfov = DEGTORAD(hfov);
+ float vfov = atan(tan(hfov/2) / ar1) *2;
+ hfov = atan(tan(vfov/2) * ar2) *2;
+ return RADTODEG(hfov);
}
void
CDraw::SetFOV(float fov)
{
-#ifndef HOR_PLUS
+// TODO: fix FOV here or somewhere else?
+// ms_fFOV = hFov2vFov(fov);
ms_fFOV = fov;
-#else
- ms_fFOV = HorToVert(fov);
-#endif
}
STARTPATCHES
InjectHook(0x4FE7B0, CDraw::SetFOV, PATCH_JUMP);
- // Some patches to fix aiming offset on "CCamera::Find3rdPersonCamTargetVector".
Nop(0x46B618, 2);
Patch<float>(0x5F0A64, 1.3333334f);
ENDPATCHES
diff --git a/src/render/Draw.h b/src/render/Draw.h
index 9e334d02..1fcb5212 100644
--- a/src/render/Draw.h
+++ b/src/render/Draw.h
@@ -3,18 +3,6 @@
#define HUD_SCALE 0.8f
#define DEFAULT_SCALE 1.0f
-enum eAspectRatio {
- AR_AUTO,
- AR_3_2,
- AR_4_3,
- AR_5_3,
- AR_5_4,
- AR_15_9,
- AR_16_9,
- AR_16_10,
- AR_64_27,
-};
-
class CDraw
{
private:
diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp
index 4b6094f1..2547ab2b 100644
--- a/src/render/Hud.cpp
+++ b/src/render/Hud.cpp
@@ -125,15 +125,6 @@ WRAPPER void CHud::Draw(void) { EAXJMP(0x5052A0); }
#else
void CHud::Draw()
{
- RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void*)FALSE);
- RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDSRCALPHA);
- RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDINVSRCALPHA);
- RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE);
- RwRenderStateSet(rwRENDERSTATETEXTUREADDRESS, (void*)rwTEXTUREADDRESSMIRROR);
- RwRenderStateSet(rwRENDERSTATETEXTURERASTER, (void*)FALSE);
- RwRenderStateSet(rwRENDERSTATESHADEMODE, (void*)rwSHADEMODEFLAT);
- RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void*)rwFILTERLINEAR);
-
if (CReplay::IsPlayingBack())
return;
@@ -177,7 +168,6 @@ void CHud::Draw()
float fMultBright = SpriteBrightness * 0.03f * (0.25f * fStep + 0.75f);
CRect rect;
-#ifndef HOR_PLUS
float fWidescreenOffset[2] = { 0.0f, 0.0f };
if (FrontEndMenuManager.m_PrefsUseWideScreen) {
@@ -188,11 +178,7 @@ void CHud::Draw()
if (Mode_RunAround && TheCamera.Cams->Using3rdPersonMouseCam()) {
float f3rdX = SCREENW * TheCamera.m_f3rdPersonCHairMultX + fWidescreenOffset[0];
float f3rdY = SCREENH * TheCamera.m_f3rdPersonCHairMultY - fWidescreenOffset[1];
-#else
- if (Mode_RunAround && TheCamera.Cams->Using3rdPersonMouseCam()) {
- float f3rdX = (((TheCamera.m_f3rdPersonCHairMultX - 0.5f) / ((CDraw::GetAspectRatio()) / (4.0f / 3.0f))) + 0.5f) * SCREENW;
- float f3rdY = SCREENH * TheCamera.m_f3rdPersonCHairMultY;
-#endif
+
if (CWorld::Players[CWorld::PlayerInFocus].m_pPed && WeaponType == WEAPONTYPE_M16) {
rect.left = f3rdX - SCREEN_SCALE_X(32.0f * 0.6f);
rect.top = f3rdY - SCREEN_SCALE_Y(32.0f * 0.6f);
@@ -1457,7 +1443,7 @@ STARTPATCHES
InjectHook(0x5048F0, &CHud::Initialise, PATCH_JUMP);
InjectHook(0x504CC0, &CHud::ReInitialise, PATCH_JUMP);
InjectHook(0x50A250, &CHud::SetBigMessage, PATCH_JUMP);
- //InjectHook(0x5051E0, &CHud::SetHelpMessage, PATCH_JUMP);
+ InjectHook(0x5051E0, &CHud::SetHelpMessage, PATCH_JUMP);
InjectHook(0x50A210, &CHud::SetMessage, PATCH_JUMP);
InjectHook(0x50A320, &CHud::SetPagerMessage, PATCH_JUMP);
InjectHook(0x505290, &CHud::SetVehicleName, PATCH_JUMP);
diff --git a/src/skel/win/win.cpp b/src/skel/win/win.cpp
index 1b91af24..9638e53a 100644
--- a/src/skel/win/win.cpp
+++ b/src/skel/win/win.cpp
@@ -1355,14 +1355,10 @@ psSelectDevice()
{
while ( !modeFound && GcurSelVM < RwEngineGetNumVideoModes() )
{
- RECT Rect;
- GetWindowRect(GetDesktopWindow(), &Rect);
- printf(gString, "Cannot find %dx%dx32 video mode", Rect.right, Rect.bottom);
-
RwEngineGetVideoModeInfo(&vm, GcurSelVM);
- if ( defaultFullscreenRes && vm.width != Rect.right
- || vm.height != Rect.bottom
- || vm.depth != 32
+ if ( defaultFullscreenRes && vm.width != 640
+ || vm.height != 480
+ || vm.depth != 16
|| !(vm.flags & rwVIDEOMODEEXCLUSIVE) )
++GcurSelVM;
else
@@ -1371,7 +1367,7 @@ psSelectDevice()
if ( !modeFound )
{
- MessageBox(nil, gString, "GTA3", MB_OK);
+ MessageBox(nil, "Cannot find 640x480 video mode", "GTA3", MB_OK);
return FALSE;
}
}
diff --git a/src/skel/win/win.h b/src/skel/win/win.h
index 13564a7f..371b9e44 100644
--- a/src/skel/win/win.h
+++ b/src/skel/win/win.h
@@ -79,10 +79,6 @@ void CenterVideo(void);
void CloseClip(void);
RwChar **_psGetVideoModeList();
-RwInt32 _psGetNumVideModes();
-
-void _psSelectScreenVM(RwInt32 videoMode);
-void HandleExit();
#ifdef __cplusplus
}