mirror of
https://gitlab.com/GaryOderNichts/re3-wiiu.git
synced 2024-12-23 16:21:50 +01:00
Merge branch 'master' of github.com:gtamodding/re3
This commit is contained in:
commit
e3405f4be4
Binary file not shown.
@ -30,9 +30,9 @@ int8 CDarkel::InterruptedWeapon;
|
|||||||
* makes game handle sounds & messages instead of SCM (just like in GTA2)
|
* makes game handle sounds & messages instead of SCM (just like in GTA2)
|
||||||
* but it's never been used in the game. Has unused sliding text when frenzy completed etc.
|
* but it's never been used in the game. Has unused sliding text when frenzy completed etc.
|
||||||
*/
|
*/
|
||||||
int8 CDarkel::bStandardSoundAndMessages;
|
bool CDarkel::bStandardSoundAndMessages;
|
||||||
int8 CDarkel::bNeedHeadShot;
|
bool CDarkel::bNeedHeadShot;
|
||||||
int8 CDarkel::bProperKillFrenzy;
|
bool CDarkel::bProperKillFrenzy;
|
||||||
uint16 CDarkel::Status;
|
uint16 CDarkel::Status;
|
||||||
uint16 CDarkel::RegisteredKills[NUM_DEFAULT_MODELS];
|
uint16 CDarkel::RegisteredKills[NUM_DEFAULT_MODELS];
|
||||||
int32 CDarkel::ModelToKill;
|
int32 CDarkel::ModelToKill;
|
||||||
@ -108,9 +108,15 @@ CDarkel::DrawMessages()
|
|||||||
sprintf(gString, "%d", (CDarkel::KillsNeeded >= 0 ? CDarkel::KillsNeeded : 0));
|
sprintf(gString, "%d", (CDarkel::KillsNeeded >= 0 ? CDarkel::KillsNeeded : 0));
|
||||||
AsciiToUnicode(gString, gUString);
|
AsciiToUnicode(gString, gUString);
|
||||||
CFont::SetColor(CRGBA(0, 0, 0, 255));
|
CFont::SetColor(CRGBA(0, 0, 0, 255));
|
||||||
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(35.0f), SCREEN_SCALE_Y(144.0f), gUString);
|
#ifdef FIX_BUGS
|
||||||
|
#define DARKEL_COUNTER_HEIGHT 143.0f
|
||||||
|
#else
|
||||||
|
#define DARKEL_COUNTER_HEIGHT 128.0f
|
||||||
|
#endif
|
||||||
|
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(35.0f), SCREEN_SCALE_Y(DARKEL_COUNTER_HEIGHT + 1.0f), gUString);
|
||||||
CFont::SetColor(CRGBA(255, 128, 128, 255));
|
CFont::SetColor(CRGBA(255, 128, 128, 255));
|
||||||
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(34.0f), SCREEN_SCALE_Y(143.0f), gUString);
|
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(34.0f), SCREEN_SCALE_Y(DARKEL_COUNTER_HEIGHT), gUString);
|
||||||
|
#undef DARKEL_COUNTER_HEIGHT
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case KILLFRENZY_PASSED:
|
case KILLFRENZY_PASSED:
|
||||||
|
@ -24,9 +24,9 @@ private:
|
|||||||
static int32 AmmoInterruptedWeapon;
|
static int32 AmmoInterruptedWeapon;
|
||||||
static int32 KillsNeeded;
|
static int32 KillsNeeded;
|
||||||
static int8 InterruptedWeapon;
|
static int8 InterruptedWeapon;
|
||||||
static int8 bStandardSoundAndMessages;
|
static bool bStandardSoundAndMessages;
|
||||||
static int8 bNeedHeadShot;
|
static bool bNeedHeadShot;
|
||||||
static int8 bProperKillFrenzy;
|
static bool bProperKillFrenzy;
|
||||||
static uint16 Status;
|
static uint16 Status;
|
||||||
static uint16 RegisteredKills[NUM_DEFAULT_MODELS];
|
static uint16 RegisteredKills[NUM_DEFAULT_MODELS];
|
||||||
static int32 ModelToKill;
|
static int32 ModelToKill;
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#include "Timer.h"
|
#include "Timer.h"
|
||||||
#include "VehicleModelInfo.h"
|
#include "VehicleModelInfo.h"
|
||||||
#include "World.h"
|
#include "World.h"
|
||||||
|
#include "Frontend.h"
|
||||||
|
|
||||||
uint16 CRecordDataForGame::RecordingState;
|
uint16 CRecordDataForGame::RecordingState;
|
||||||
uint8* CRecordDataForGame::pDataBuffer;
|
uint8* CRecordDataForGame::pDataBuffer;
|
||||||
@ -439,10 +440,11 @@ void CRecordDataForChase::StartChaseScene(float startTime)
|
|||||||
Status = STATE_PLAYBACK;
|
Status = STATE_PLAYBACK;
|
||||||
AnimTime = startTime;
|
AnimTime = startTime;
|
||||||
AnimStartTime = CTimer::GetTimeInMilliseconds();
|
AnimStartTime = CTimer::GetTimeInMilliseconds();
|
||||||
#ifndef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_LOW)
|
||||||
|
#endif
|
||||||
RemoveUnusedCollision();
|
RemoveUnusedCollision();
|
||||||
CStreaming::RemoveIslandsNotUsed(LEVEL_SUBURBAN);
|
CStreaming::RemoveIslandsNotUsed(LEVEL_SUBURBAN);
|
||||||
#endif
|
|
||||||
CGame::TidyUpMemory(true, true);
|
CGame::TidyUpMemory(true, true);
|
||||||
CStreaming::ImGonnaUseStreamingMemory();
|
CStreaming::ImGonnaUseStreamingMemory();
|
||||||
CFileMgr::SetDir("data\\paths");
|
CFileMgr::SetDir("data\\paths");
|
||||||
|
@ -10017,15 +10017,21 @@ int8 CRunningScript::ProcessCommands1000To1099(int32 command)
|
|||||||
CollectParameters(&m_nIp, 1);
|
CollectParameters(&m_nIp, 1);
|
||||||
CTimer::Stop();
|
CTimer::Stop();
|
||||||
CGame::currLevel = (eLevelName)ScriptParams[0];
|
CGame::currLevel = (eLevelName)ScriptParams[0];
|
||||||
#ifndef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_LOW)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
CStreaming::RemoveUnusedBigBuildings(CGame::currLevel);
|
CStreaming::RemoveUnusedBigBuildings(CGame::currLevel);
|
||||||
CStreaming::RemoveUnusedBuildings(CGame::currLevel);
|
CStreaming::RemoveUnusedBuildings(CGame::currLevel);
|
||||||
#endif
|
}
|
||||||
CCollision::SortOutCollisionAfterLoad();
|
CCollision::SortOutCollisionAfterLoad();
|
||||||
#ifndef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading != CMenuManager::ISLAND_LOADING_HIGH)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
CStreaming::RequestIslands(CGame::currLevel);
|
CStreaming::RequestIslands(CGame::currLevel);
|
||||||
CStreaming::LoadAllRequestedModels(true);
|
CStreaming::LoadAllRequestedModels(true);
|
||||||
#endif
|
}
|
||||||
CTimer::Update();
|
CTimer::Update();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -10641,24 +10647,40 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command)
|
|||||||
CTimer::Stop();
|
CTimer::Stop();
|
||||||
CGame::currLevel = (eLevelName)ScriptParams[0];
|
CGame::currLevel = (eLevelName)ScriptParams[0];
|
||||||
if (CGame::currLevel != CCollision::ms_collisionInMemory) {
|
if (CGame::currLevel != CCollision::ms_collisionInMemory) {
|
||||||
#ifndef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_LOW)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
DMAudio.SetEffectsFadeVol(0);
|
DMAudio.SetEffectsFadeVol(0);
|
||||||
CPad::StopPadsShaking();
|
CPad::StopPadsShaking();
|
||||||
CCollision::LoadCollisionScreen(CGame::currLevel);
|
CCollision::LoadCollisionScreen(CGame::currLevel);
|
||||||
DMAudio.Service();
|
DMAudio.Service();
|
||||||
#endif
|
}
|
||||||
CPopulation::DealWithZoneChange(CCollision::ms_collisionInMemory, CGame::currLevel, false);
|
CPopulation::DealWithZoneChange(CCollision::ms_collisionInMemory, CGame::currLevel, false);
|
||||||
#ifndef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_LOW)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
CStreaming::RemoveUnusedBigBuildings(CGame::currLevel);
|
CStreaming::RemoveUnusedBigBuildings(CGame::currLevel);
|
||||||
CStreaming::RemoveUnusedBuildings(CGame::currLevel);
|
CStreaming::RemoveUnusedBuildings(CGame::currLevel);
|
||||||
#endif
|
}
|
||||||
CCollision::SortOutCollisionAfterLoad();
|
CCollision::SortOutCollisionAfterLoad();
|
||||||
#ifndef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
CStreaming::RequestIslands(CGame::currLevel);
|
if (CMenuManager::m_PrefsIslandLoading != CMenuManager::ISLAND_LOADING_HIGH)
|
||||||
CStreaming::RequestBigBuildings(CGame::currLevel);
|
|
||||||
CStreaming::LoadAllRequestedModels(true);
|
|
||||||
DMAudio.SetEffectsFadeVol(127);
|
|
||||||
#endif
|
#endif
|
||||||
|
CStreaming::RequestIslands(CGame::currLevel);
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_LOW)
|
||||||
|
#endif
|
||||||
|
CStreaming::RequestBigBuildings(CGame::currLevel);
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading != CMenuManager::ISLAND_LOADING_HIGH)
|
||||||
|
#endif
|
||||||
|
CStreaming::LoadAllRequestedModels(true);
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_LOW)
|
||||||
|
#endif
|
||||||
|
DMAudio.SetEffectsFadeVol(127);
|
||||||
}
|
}
|
||||||
CTimer::Update();
|
CTimer::Update();
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "SurfaceTable.h"
|
#include "SurfaceTable.h"
|
||||||
#include "Lines.h"
|
#include "Lines.h"
|
||||||
#include "Collision.h"
|
#include "Collision.h"
|
||||||
|
#include "Frontend.h"
|
||||||
|
|
||||||
|
|
||||||
// TODO: where do these go?
|
// TODO: where do these go?
|
||||||
@ -521,19 +522,30 @@ CCollision::LoadCollisionWhenINeedIt(bool forceChange)
|
|||||||
|
|
||||||
if (level == CGame::currLevel || forceChange) {
|
if (level == CGame::currLevel || forceChange) {
|
||||||
CTimer::Stop();
|
CTimer::Stop();
|
||||||
#ifndef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_LOW)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
DMAudio.SetEffectsFadeVol(0);
|
DMAudio.SetEffectsFadeVol(0);
|
||||||
CPad::StopPadsShaking();
|
CPad::StopPadsShaking();
|
||||||
LoadCollisionScreen(CGame::currLevel);
|
LoadCollisionScreen(CGame::currLevel);
|
||||||
DMAudio.Service();
|
DMAudio.Service();
|
||||||
#endif
|
}
|
||||||
|
|
||||||
CPopulation::DealWithZoneChange(ms_collisionInMemory, CGame::currLevel, false);
|
CPopulation::DealWithZoneChange(ms_collisionInMemory, CGame::currLevel, false);
|
||||||
|
|
||||||
#ifndef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading != CMenuManager::ISLAND_LOADING_HIGH)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
CStreaming::RemoveIslandsNotUsed(LEVEL_INDUSTRIAL);
|
CStreaming::RemoveIslandsNotUsed(LEVEL_INDUSTRIAL);
|
||||||
CStreaming::RemoveIslandsNotUsed(LEVEL_COMMERCIAL);
|
CStreaming::RemoveIslandsNotUsed(LEVEL_COMMERCIAL);
|
||||||
CStreaming::RemoveIslandsNotUsed(LEVEL_SUBURBAN);
|
CStreaming::RemoveIslandsNotUsed(LEVEL_SUBURBAN);
|
||||||
|
}
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_LOW)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
CStreaming::RemoveBigBuildings(LEVEL_INDUSTRIAL);
|
CStreaming::RemoveBigBuildings(LEVEL_INDUSTRIAL);
|
||||||
CStreaming::RemoveBigBuildings(LEVEL_COMMERCIAL);
|
CStreaming::RemoveBigBuildings(LEVEL_COMMERCIAL);
|
||||||
CStreaming::RemoveBigBuildings(LEVEL_SUBURBAN);
|
CStreaming::RemoveBigBuildings(LEVEL_SUBURBAN);
|
||||||
@ -541,41 +553,57 @@ CCollision::LoadCollisionWhenINeedIt(bool forceChange)
|
|||||||
CStreaming::RemoveUnusedModelsInLoadedList();
|
CStreaming::RemoveUnusedModelsInLoadedList();
|
||||||
CGame::TidyUpMemory(true, true);
|
CGame::TidyUpMemory(true, true);
|
||||||
CFileLoader::LoadCollisionFromDatFile(CGame::currLevel);
|
CFileLoader::LoadCollisionFromDatFile(CGame::currLevel);
|
||||||
#endif
|
}
|
||||||
|
|
||||||
ms_collisionInMemory = CGame::currLevel;
|
ms_collisionInMemory = CGame::currLevel;
|
||||||
CReplay::EmptyReplayBuffer();
|
CReplay::EmptyReplayBuffer();
|
||||||
#ifndef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_LOW)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
if (CGame::currLevel != LEVEL_GENERIC)
|
if (CGame::currLevel != LEVEL_GENERIC)
|
||||||
LoadSplash(GetLevelSplashScreen(CGame::currLevel));
|
LoadSplash(GetLevelSplashScreen(CGame::currLevel));
|
||||||
CStreaming::RemoveUnusedBigBuildings(CGame::currLevel);
|
CStreaming::RemoveUnusedBigBuildings(CGame::currLevel);
|
||||||
CStreaming::RemoveUnusedBuildings(CGame::currLevel);
|
CStreaming::RemoveUnusedBuildings(CGame::currLevel);
|
||||||
CStreaming::RequestBigBuildings(CGame::currLevel);
|
CStreaming::RequestBigBuildings(CGame::currLevel);
|
||||||
|
}
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
else if (CMenuManager::m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_MEDIUM)
|
||||||
|
CStreaming::RequestIslands(CGame::currLevel);
|
||||||
#endif
|
#endif
|
||||||
CStreaming::LoadAllRequestedModels(true);
|
CStreaming::LoadAllRequestedModels(true);
|
||||||
#ifndef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_LOW)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
CStreaming::HaveAllBigBuildingsLoaded(CGame::currLevel);
|
CStreaming::HaveAllBigBuildingsLoaded(CGame::currLevel);
|
||||||
|
|
||||||
CGame::TidyUpMemory(true, true);
|
CGame::TidyUpMemory(true, true);
|
||||||
#endif
|
}
|
||||||
CTimer::Update();
|
CTimer::Update();
|
||||||
#ifndef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
DMAudio.SetEffectsFadeVol(127);
|
if (CMenuManager::m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_LOW)
|
||||||
#endif
|
#endif
|
||||||
|
DMAudio.SetEffectsFadeVol(127);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
bool CCollision::bAlreadyLoaded = false;
|
||||||
|
#endif
|
||||||
void
|
void
|
||||||
CCollision::SortOutCollisionAfterLoad(void)
|
CCollision::SortOutCollisionAfterLoad(void)
|
||||||
{
|
{
|
||||||
if(ms_collisionInMemory == CGame::currLevel)
|
if(ms_collisionInMemory == CGame::currLevel)
|
||||||
return;
|
return;
|
||||||
#ifndef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
CModelInfo::RemoveColModelsFromOtherLevels(CGame::currLevel);
|
if (CMenuManager::m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_LOW)
|
||||||
#endif
|
#endif
|
||||||
|
CModelInfo::RemoveColModelsFromOtherLevels(CGame::currLevel);
|
||||||
|
|
||||||
if (CGame::currLevel != LEVEL_GENERIC) {
|
if (CGame::currLevel != LEVEL_GENERIC) {
|
||||||
#ifdef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
static bool bAlreadyLoaded = false;
|
if (CMenuManager::m_PrefsIslandLoading != CMenuManager::ISLAND_LOADING_LOW) {
|
||||||
if (bAlreadyLoaded) {
|
if (bAlreadyLoaded) {
|
||||||
ms_collisionInMemory = CGame::currLevel;
|
ms_collisionInMemory = CGame::currLevel;
|
||||||
return;
|
return;
|
||||||
@ -584,9 +612,9 @@ CCollision::SortOutCollisionAfterLoad(void)
|
|||||||
CFileLoader::LoadCollisionFromDatFile(LEVEL_INDUSTRIAL);
|
CFileLoader::LoadCollisionFromDatFile(LEVEL_INDUSTRIAL);
|
||||||
CFileLoader::LoadCollisionFromDatFile(LEVEL_COMMERCIAL);
|
CFileLoader::LoadCollisionFromDatFile(LEVEL_COMMERCIAL);
|
||||||
CFileLoader::LoadCollisionFromDatFile(LEVEL_SUBURBAN);
|
CFileLoader::LoadCollisionFromDatFile(LEVEL_SUBURBAN);
|
||||||
#else
|
} else
|
||||||
CFileLoader::LoadCollisionFromDatFile(CGame::currLevel);
|
|
||||||
#endif
|
#endif
|
||||||
|
CFileLoader::LoadCollisionFromDatFile(CGame::currLevel);
|
||||||
if(!CGame::playingIntro)
|
if(!CGame::playingIntro)
|
||||||
LoadSplash(GetLevelSplashScreen(CGame::currLevel));
|
LoadSplash(GetLevelSplashScreen(CGame::currLevel));
|
||||||
}
|
}
|
||||||
|
@ -212,6 +212,9 @@ class CCollision
|
|||||||
public:
|
public:
|
||||||
static eLevelName ms_collisionInMemory;
|
static eLevelName ms_collisionInMemory;
|
||||||
static CLinkList<CColModel*> ms_colModelCache;
|
static CLinkList<CColModel*> ms_colModelCache;
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
static bool bAlreadyLoaded;
|
||||||
|
#endif
|
||||||
|
|
||||||
static void Init(void);
|
static void Init(void);
|
||||||
static void Shutdown(void);
|
static void Shutdown(void);
|
||||||
|
@ -19,4 +19,5 @@ public:
|
|||||||
static bool ReadLine(int fd, char *buf, int len);
|
static bool ReadLine(int fd, char *buf, int len);
|
||||||
static int CloseFile(int fd);
|
static int CloseFile(int fd);
|
||||||
static int GetErrorReadWrite(int fd);
|
static int GetErrorReadWrite(int fd);
|
||||||
|
static char *GetRootDirName() { return ms_rootDirName; }
|
||||||
};
|
};
|
||||||
|
@ -36,7 +36,6 @@
|
|||||||
#include "Stats.h"
|
#include "Stats.h"
|
||||||
#include "Messages.h"
|
#include "Messages.h"
|
||||||
#include "FileLoader.h"
|
#include "FileLoader.h"
|
||||||
#include "frontendoption.h"
|
|
||||||
|
|
||||||
#define TIDY_UP_PBP // ProcessButtonPresses
|
#define TIDY_UP_PBP // ProcessButtonPresses
|
||||||
#define MAX_VISIBLE_LIST_ROW 30
|
#define MAX_VISIBLE_LIST_ROW 30
|
||||||
@ -116,6 +115,17 @@ int32 CMenuManager::m_PrefsSfxVolume = 102;
|
|||||||
bool CMenuManager::m_PrefsCutsceneBorders = true;
|
bool CMenuManager::m_PrefsCutsceneBorders = true;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef MULTISAMPLING
|
||||||
|
int8 CMenuManager::m_nPrefsMSAALevel = 0;
|
||||||
|
int8 CMenuManager::m_nDisplayMSAALevel = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
int8 CMenuManager::m_DisplayIslandLoading = ISLAND_LOADING_LOW;
|
||||||
|
int8 CMenuManager::m_PrefsIslandLoading = ISLAND_LOADING_LOW;
|
||||||
|
#endif
|
||||||
|
|
||||||
char CMenuManager::m_PrefsSkinFile[256] = DEFAULT_SKIN_NAME;
|
char CMenuManager::m_PrefsSkinFile[256] = DEFAULT_SKIN_NAME;
|
||||||
|
|
||||||
int32 CMenuManager::m_KeyPressedCode = -1;
|
int32 CMenuManager::m_KeyPressedCode = -1;
|
||||||
@ -149,6 +159,10 @@ int32 MouseButtonJustClicked;
|
|||||||
int32 JoyButtonJustClicked;
|
int32 JoyButtonJustClicked;
|
||||||
//int32 *pControlTemp = 0;
|
//int32 *pControlTemp = 0;
|
||||||
|
|
||||||
|
#ifdef PS2_ALPHA_TEST
|
||||||
|
extern bool gPS2alphaTest;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef MASTER
|
#ifndef MASTER
|
||||||
bool CMenuManager::m_PrefsMarketing = false;
|
bool CMenuManager::m_PrefsMarketing = false;
|
||||||
bool CMenuManager::m_PrefsDisableTutorials = false;
|
bool CMenuManager::m_PrefsDisableTutorials = false;
|
||||||
@ -399,8 +413,15 @@ CMenuManager::ThingsToDoBeforeGoingBack()
|
|||||||
DMAudio.StopFrontEndTrack();
|
DMAudio.StopFrontEndTrack();
|
||||||
OutputDebugString("FRONTEND AUDIO TRACK STOPPED");
|
OutputDebugString("FRONTEND AUDIO TRACK STOPPED");
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef GRAPHICS_MENU_OPTIONS
|
||||||
} else if (m_nCurrScreen == MENUPAGE_GRAPHICS_SETTINGS) {
|
} else if (m_nCurrScreen == MENUPAGE_GRAPHICS_SETTINGS) {
|
||||||
|
#else
|
||||||
|
} else if (m_nCurrScreen == MENUPAGE_DISPLAY_SETTINGS) {
|
||||||
|
#endif
|
||||||
m_nDisplayVideoMode = m_nPrefsVideoMode;
|
m_nDisplayVideoMode = m_nPrefsVideoMode;
|
||||||
|
#ifdef MULTISAMPLING
|
||||||
|
m_nDisplayMSAALevel = m_nPrefsMSAALevel;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_nCurrScreen == MENUPAGE_SKIN_SELECT) {
|
if (m_nCurrScreen == MENUPAGE_SKIN_SELECT) {
|
||||||
@ -410,46 +431,12 @@ CMenuManager::ThingsToDoBeforeGoingBack()
|
|||||||
if ((m_nCurrScreen == MENUPAGE_SKIN_SELECT) || (m_nCurrScreen == MENUPAGE_KEYBOARD_CONTROLS)) {
|
if ((m_nCurrScreen == MENUPAGE_SKIN_SELECT) || (m_nCurrScreen == MENUPAGE_KEYBOARD_CONTROLS)) {
|
||||||
m_nTotalListRow = 0;
|
m_nTotalListRow = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
|
||||||
for (int i = 0; i < numCustomFrontendOptions; i++) {
|
|
||||||
FrontendOption &option = customFrontendOptions[i];
|
|
||||||
if (option.type != FEOPTION_REDIRECT && option.type != FEOPTION_GOBACK && m_nCurrScreen == option.screen) {
|
|
||||||
if (option.returnPrevPageFunc)
|
|
||||||
option.returnPrevPageFunc();
|
|
||||||
|
|
||||||
if (m_nCurrOption == option.screenOptionOrder && option.type == FEOPTION_DYNAMIC)
|
|
||||||
option.buttonPressFunc(FEOPTION_ACTION_FOCUSLOSS);
|
|
||||||
|
|
||||||
if (option.onlyApplyOnEnter)
|
|
||||||
option.displayedValue = *option.value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int8
|
int8
|
||||||
CMenuManager::GetPreviousPageOption()
|
CMenuManager::GetPreviousPageOption()
|
||||||
{
|
{
|
||||||
#ifndef CUSTOM_FRONTEND_OPTIONS
|
|
||||||
return !m_bGameNotLoaded ? aScreens[m_nCurrScreen].m_ParentEntry[1] : aScreens[m_nCurrScreen].m_ParentEntry[0];
|
return !m_bGameNotLoaded ? aScreens[m_nCurrScreen].m_ParentEntry[1] : aScreens[m_nCurrScreen].m_ParentEntry[0];
|
||||||
#else
|
|
||||||
int8 prevPage = !m_bGameNotLoaded ? aScreens[m_nCurrScreen].m_PreviousPage[1] : aScreens[m_nCurrScreen].m_PreviousPage[0];
|
|
||||||
|
|
||||||
if (prevPage == -1) // Game also does same
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
prevPage = prevPage == MENUPAGE_NONE ? (!m_bGameNotLoaded ? MENUPAGE_PAUSE_MENU : MENUPAGE_START_MENU) : prevPage;
|
|
||||||
|
|
||||||
for (int i = 0; i < NUM_MENUROWS; i++) {
|
|
||||||
if (aScreens[prevPage].m_aEntries[i].m_TargetMenu == m_nCurrScreen) {
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Couldn't find current screen option on previous page, use default behaviour (maybe save-related screen?)
|
|
||||||
return !m_bGameNotLoaded ? aScreens[m_nCurrScreen].m_ParentEntry[1] : aScreens[m_nCurrScreen].m_ParentEntry[0];
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------ Functions not in the game/inlined ends
|
// ------ Functions not in the game/inlined ends
|
||||||
@ -848,7 +835,7 @@ CMenuManager::Draw()
|
|||||||
CFont::SetCentreOn();
|
CFont::SetCentreOn();
|
||||||
break;
|
break;
|
||||||
case MENUPAGE_SOUND_SETTINGS:
|
case MENUPAGE_SOUND_SETTINGS:
|
||||||
case MENUPAGE_GRAPHICS_SETTINGS:
|
case MENUPAGE_DISPLAY_SETTINGS:
|
||||||
case MENUPAGE_MULTIPLAYER_CREATE:
|
case MENUPAGE_MULTIPLAYER_CREATE:
|
||||||
case MENUPAGE_SKIN_SELECT_OLD:
|
case MENUPAGE_SKIN_SELECT_OLD:
|
||||||
case MENUPAGE_CONTROLLER_PC_OLD1:
|
case MENUPAGE_CONTROLLER_PC_OLD1:
|
||||||
@ -857,6 +844,9 @@ CMenuManager::Draw()
|
|||||||
case MENUPAGE_CONTROLLER_PC_OLD4:
|
case MENUPAGE_CONTROLLER_PC_OLD4:
|
||||||
case MENUPAGE_CONTROLLER_DEBUG:
|
case MENUPAGE_CONTROLLER_DEBUG:
|
||||||
case MENUPAGE_MOUSE_CONTROLS:
|
case MENUPAGE_MOUSE_CONTROLS:
|
||||||
|
#ifdef GRAPHICS_MENU_OPTIONS
|
||||||
|
case MENUPAGE_GRAPHICS_SETTINGS:
|
||||||
|
#endif
|
||||||
columnWidth = 50;
|
columnWidth = 50;
|
||||||
headerHeight = 0;
|
headerHeight = 0;
|
||||||
lineHeight = 20;
|
lineHeight = 20;
|
||||||
@ -965,14 +955,7 @@ CMenuManager::Draw()
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
|
||||||
static int lastOption = m_nCurrOption;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (int i = 0; i < NUM_MENUROWS; ++i) {
|
for (int i = 0; i < NUM_MENUROWS; ++i) {
|
||||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
|
||||||
bool isOptionDisabled = false;
|
|
||||||
#endif
|
|
||||||
if (aScreens[m_nCurrScreen].m_aEntries[i].m_Action != MENUACTION_LABEL && aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName[0] != '\0') {
|
if (aScreens[m_nCurrScreen].m_aEntries[i].m_Action != MENUACTION_LABEL && aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName[0] != '\0') {
|
||||||
wchar *rightText = nil;
|
wchar *rightText = nil;
|
||||||
wchar *leftText;
|
wchar *leftText;
|
||||||
@ -1155,6 +1138,40 @@ CMenuManager::Draw()
|
|||||||
AsciiToUnicode(_psGetVideoModeList()[m_nDisplayVideoMode], unicodeTemp);
|
AsciiToUnicode(_psGetVideoModeList()[m_nDisplayVideoMode], unicodeTemp);
|
||||||
rightText = unicodeTemp;
|
rightText = unicodeTemp;
|
||||||
break;
|
break;
|
||||||
|
#ifdef IMPROVED_VIDEOMODE
|
||||||
|
case MENUACTION_SCREENFORMAT:
|
||||||
|
rightText = TheText.Get(FrontEndMenuManager.m_nSelectedScreenMode ? "FED_WND" : "FED_FLS");
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef MULTISAMPLING
|
||||||
|
case MENUACTION_MULTISAMPLING:
|
||||||
|
switch (m_nDisplayMSAALevel) {
|
||||||
|
case 0:
|
||||||
|
rightText = TheText.Get("FEM_OFF");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
sprintf(gString, "%iX", 1 << (m_nDisplayMSAALevel));
|
||||||
|
AsciiToUnicode(gString, unicodeTemp);
|
||||||
|
rightText = unicodeTemp;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
case MENUACTION_ISLANDLOADING:
|
||||||
|
switch (m_DisplayIslandLoading) {
|
||||||
|
case ISLAND_LOADING_LOW:
|
||||||
|
rightText = TheText.Get("FEM_LOW");
|
||||||
|
break;
|
||||||
|
case ISLAND_LOADING_MEDIUM:
|
||||||
|
rightText = TheText.Get("FEM_MED");
|
||||||
|
break;
|
||||||
|
case ISLAND_LOADING_HIGH:
|
||||||
|
rightText = TheText.Get("FEM_HIG");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
case MENUACTION_AUDIOHW:
|
case MENUACTION_AUDIOHW:
|
||||||
if (m_nPrefsAudio3DProviderIndex == -1)
|
if (m_nPrefsAudio3DProviderIndex == -1)
|
||||||
rightText = TheText.Get("FEA_NAH");
|
rightText = TheText.Get("FEA_NAH");
|
||||||
@ -1205,27 +1222,14 @@ CMenuManager::Draw()
|
|||||||
case MENUACTION_MOUSESTEER:
|
case MENUACTION_MOUSESTEER:
|
||||||
rightText = TheText.Get(CVehicle::m_bDisableMouseSteering ? "FEM_OFF" : "FEM_ON");
|
rightText = TheText.Get(CVehicle::m_bDisableMouseSteering ? "FEM_OFF" : "FEM_ON");
|
||||||
break;
|
break;
|
||||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
#ifdef CUTSCENE_BORDERS_SWITCH
|
||||||
case MENUACTION_TRIGGERFUNC:
|
case MENUACTION_CUTSCENEBORDERS:
|
||||||
FrontendOption& option = customFrontendOptions[aScreens[m_nCurrScreen].m_aEntries[i].m_TargetMenu];
|
rightText = TheText.Get(m_PrefsCutsceneBorders ? "FEM_ON" : "FEM_OFF");
|
||||||
if (m_nCurrScreen == option.screen && i == option.screenOptionOrder) {
|
break;
|
||||||
leftText = (wchar*)option.leftText;
|
#endif
|
||||||
if (option.type == FEOPTION_SELECT) {
|
#ifdef PS2_ALPHA_TEST
|
||||||
if (option.displayedValue >= option.numRightTexts || option.displayedValue < 0)
|
case MENUACTION_PS2_ALPHA_TEST:
|
||||||
option.displayedValue = 0;
|
rightText = TheText.Get(gPS2alphaTest ? "FEM_ON" : "FEM_OFF");
|
||||||
|
|
||||||
rightText = (wchar*)option.rightTexts[option.displayedValue];
|
|
||||||
|
|
||||||
} else if (option.type == FEOPTION_DYNAMIC) {
|
|
||||||
if (option.drawFunc) {
|
|
||||||
rightText = option.drawFunc(&isOptionDisabled);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
debug("A- screen:%d option:%d - totalCo: %d, coId: %d, coScreen:%d, coOption:%d\n", m_nCurrScreen, i, numCustomFrontendOptions, aScreens[m_nCurrScreen].m_aEntries[i].m_TargetMenu, option.screen, option.screenOptionOrder);
|
|
||||||
assert(0 && "Custom frontend options is borked");
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -1306,12 +1310,15 @@ CMenuManager::Draw()
|
|||||||
CFont::SetRightJustifyOn();
|
CFont::SetRightJustifyOn();
|
||||||
|
|
||||||
if(textLayer == 1)
|
if(textLayer == 1)
|
||||||
if(!strcmp(aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName, "FED_RES")
|
if((!strcmp(aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName, "FED_RES")
|
||||||
&& !m_bGameNotLoaded
|
#ifdef IMPROVED_VIDEOMODE
|
||||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
|| !strcmp(aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName, "FEM_SCF")
|
||||||
|| isOptionDisabled
|
#endif
|
||||||
|
#ifdef MULTISAMPLING
|
||||||
|
|| !strcmp(aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName, "FED_AAS")
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
|
&& !m_bGameNotLoaded)
|
||||||
CFont::SetColor(CRGBA(155, 117, 6, FadeIn(255)));
|
CFont::SetColor(CRGBA(155, 117, 6, FadeIn(255)));
|
||||||
|
|
||||||
CFont::PrintString(MENU_X_RIGHT_ALIGNED(columnWidth - textLayer), itemY, rightText);
|
CFont::PrintString(MENU_X_RIGHT_ALIGNED(columnWidth - textLayer), itemY, rightText);
|
||||||
@ -1331,6 +1338,24 @@ CMenuManager::Draw()
|
|||||||
if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_RES") && m_nHelperTextMsgId == 1)
|
if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_RES") && m_nHelperTextMsgId == 1)
|
||||||
ResetHelperText();
|
ResetHelperText();
|
||||||
}
|
}
|
||||||
|
#ifdef IMPROVED_VIDEOMODE
|
||||||
|
if (m_nSelectedScreenMode == m_nPrefsWindowed) {
|
||||||
|
if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEM_SCF") && m_nHelperTextMsgId == 1)
|
||||||
|
ResetHelperText();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef MULTISAMPLING
|
||||||
|
if (m_nDisplayMSAALevel == m_nPrefsMSAALevel) {
|
||||||
|
if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_AAS") && m_nHelperTextMsgId == 1)
|
||||||
|
ResetHelperText();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (m_DisplayIslandLoading == m_PrefsIslandLoading) {
|
||||||
|
if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEM_ISL") && m_nHelperTextMsgId == 1)
|
||||||
|
ResetHelperText();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (m_nPrefsAudio3DProviderIndex != DMAudio.GetCurrent3DProviderIndex()) {
|
if (m_nPrefsAudio3DProviderIndex != DMAudio.GetCurrent3DProviderIndex()) {
|
||||||
if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEA_3DH"))
|
if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEA_3DH"))
|
||||||
SetHelperText(1);
|
SetHelperText(1);
|
||||||
@ -1339,6 +1364,24 @@ CMenuManager::Draw()
|
|||||||
if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_RES"))
|
if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_RES"))
|
||||||
SetHelperText(1);
|
SetHelperText(1);
|
||||||
}
|
}
|
||||||
|
#ifdef IMPROVED_VIDEOMODE
|
||||||
|
if (m_nSelectedScreenMode != m_nPrefsWindowed) {
|
||||||
|
if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEM_SCF"))
|
||||||
|
SetHelperText(1);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef MULTISAMPLING
|
||||||
|
if (m_nDisplayMSAALevel != m_nPrefsMSAALevel) {
|
||||||
|
if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_AAS"))
|
||||||
|
SetHelperText(1);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (m_DisplayIslandLoading != m_PrefsIslandLoading) {
|
||||||
|
if (!strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEM_ISL"))
|
||||||
|
SetHelperText(1);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (m_nPrefsAudio3DProviderIndex != DMAudio.GetCurrent3DProviderIndex()) {
|
if (m_nPrefsAudio3DProviderIndex != DMAudio.GetCurrent3DProviderIndex()) {
|
||||||
if (strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEA_3DH") != 0
|
if (strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEA_3DH") != 0
|
||||||
&& m_nCurrScreen == MENUPAGE_SOUND_SETTINGS && m_nPrefsAudio3DProviderIndex != -1) {
|
&& m_nCurrScreen == MENUPAGE_SOUND_SETTINGS && m_nPrefsAudio3DProviderIndex != -1) {
|
||||||
@ -1349,22 +1392,38 @@ CMenuManager::Draw()
|
|||||||
}
|
}
|
||||||
if (m_nDisplayVideoMode != m_nPrefsVideoMode) {
|
if (m_nDisplayVideoMode != m_nPrefsVideoMode) {
|
||||||
if (strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_RES") != 0
|
if (strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_RES") != 0
|
||||||
|
#ifdef GRAPHICS_MENU_OPTIONS
|
||||||
&& m_nCurrScreen == MENUPAGE_GRAPHICS_SETTINGS) {
|
&& m_nCurrScreen == MENUPAGE_GRAPHICS_SETTINGS) {
|
||||||
|
#else
|
||||||
|
&& m_nCurrScreen == MENUPAGE_DISPLAY_SETTINGS) {
|
||||||
|
#endif
|
||||||
m_nDisplayVideoMode = m_nPrefsVideoMode;
|
m_nDisplayVideoMode = m_nPrefsVideoMode;
|
||||||
SetHelperText(3);
|
SetHelperText(3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef IMPROVED_VIDEOMODE
|
||||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
if (m_nSelectedScreenMode != m_nPrefsWindowed) {
|
||||||
if (aScreens[m_nCurrScreen].m_aEntries[i].m_Action == MENUACTION_TRIGGERFUNC) {
|
if (strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEM_SCF") != 0
|
||||||
FrontendOption &option = customFrontendOptions[aScreens[m_nCurrScreen].m_aEntries[i].m_TargetMenu];
|
#ifdef GRAPHICS_MENU_OPTIONS
|
||||||
if (option.onlyApplyOnEnter && m_nCurrOption != i)
|
&& m_nCurrScreen == MENUPAGE_GRAPHICS_SETTINGS) {
|
||||||
option.displayedValue = *option.value;
|
#else
|
||||||
|
&& m_nCurrScreen == MENUPAGE_DISPLAY_SETTINGS) {
|
||||||
if (m_nCurrOption != lastOption && lastOption == i) {
|
#endif
|
||||||
FrontendOption &oldOption = customFrontendOptions[aScreens[m_nCurrScreen].m_aEntries[lastOption].m_TargetMenu];
|
m_nSelectedScreenMode = m_nPrefsWindowed;
|
||||||
if (oldOption.type == FEOPTION_DYNAMIC)
|
SetHelperText(3);
|
||||||
oldOption.buttonPressFunc(FEOPTION_ACTION_FOCUSLOSS);
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#ifdef MULTISAMPLING
|
||||||
|
if (m_nSelectedScreenMode != m_nPrefsWindowed) {
|
||||||
|
if (strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FED_AAS") != 0
|
||||||
|
#ifdef GRAPHICS_MENU_OPTIONS
|
||||||
|
&& m_nCurrScreen == MENUPAGE_GRAPHICS_SETTINGS) {
|
||||||
|
#else
|
||||||
|
&& m_nCurrScreen == MENUPAGE_DISPLAY_SETTINGS) {
|
||||||
|
#endif
|
||||||
|
m_nDisplayMSAALevel = m_nPrefsMSAALevel;
|
||||||
|
SetHelperText(3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -1412,17 +1471,16 @@ CMenuManager::Draw()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
|
||||||
lastOption = m_nCurrOption;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
switch (m_nCurrScreen) {
|
switch (m_nCurrScreen) {
|
||||||
case MENUPAGE_CONTROLLER_SETTINGS:
|
case MENUPAGE_CONTROLLER_SETTINGS:
|
||||||
case MENUPAGE_SOUND_SETTINGS:
|
case MENUPAGE_SOUND_SETTINGS:
|
||||||
case MENUPAGE_GRAPHICS_SETTINGS:
|
case MENUPAGE_DISPLAY_SETTINGS:
|
||||||
case MENUPAGE_SKIN_SELECT:
|
case MENUPAGE_SKIN_SELECT:
|
||||||
case MENUPAGE_CONTROLLER_PC:
|
case MENUPAGE_CONTROLLER_PC:
|
||||||
case MENUPAGE_MOUSE_CONTROLS:
|
case MENUPAGE_MOUSE_CONTROLS:
|
||||||
|
#ifdef GRAPHICS_MENU_OPTIONS
|
||||||
|
case MENUPAGE_GRAPHICS_SETTINGS:
|
||||||
|
#endif
|
||||||
DisplayHelperText();
|
DisplayHelperText();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2079,7 +2137,7 @@ CMenuManager::DrawFrontEnd()
|
|||||||
bbNames[0] = { "FEB_SAV",MENUPAGE_NEW_GAME };
|
bbNames[0] = { "FEB_SAV",MENUPAGE_NEW_GAME };
|
||||||
bbNames[1] = { "FEB_CON",MENUPAGE_CONTROLLER_PC };
|
bbNames[1] = { "FEB_CON",MENUPAGE_CONTROLLER_PC };
|
||||||
bbNames[2] = { "FEB_AUD",MENUPAGE_SOUND_SETTINGS };
|
bbNames[2] = { "FEB_AUD",MENUPAGE_SOUND_SETTINGS };
|
||||||
bbNames[3] = { "FEB_DIS",MENUPAGE_GRAPHICS_SETTINGS };
|
bbNames[3] = { "FEB_DIS",MENUPAGE_DISPLAY_SETTINGS };
|
||||||
bbNames[4] = { "FEB_LAN",MENUPAGE_LANGUAGE_SETTINGS };
|
bbNames[4] = { "FEB_LAN",MENUPAGE_LANGUAGE_SETTINGS };
|
||||||
bbNames[5] = { "FESZ_QU",MENUPAGE_EXIT };
|
bbNames[5] = { "FESZ_QU",MENUPAGE_EXIT };
|
||||||
bbTabCount = 6;
|
bbTabCount = 6;
|
||||||
@ -2091,7 +2149,7 @@ CMenuManager::DrawFrontEnd()
|
|||||||
bbNames[2] = { "FEB_BRI",MENUPAGE_BRIEFS };
|
bbNames[2] = { "FEB_BRI",MENUPAGE_BRIEFS };
|
||||||
bbNames[3] = { "FEB_CON",MENUPAGE_CONTROLLER_PC };
|
bbNames[3] = { "FEB_CON",MENUPAGE_CONTROLLER_PC };
|
||||||
bbNames[4] = { "FEB_AUD",MENUPAGE_SOUND_SETTINGS };
|
bbNames[4] = { "FEB_AUD",MENUPAGE_SOUND_SETTINGS };
|
||||||
bbNames[5] = { "FEB_DIS",MENUPAGE_GRAPHICS_SETTINGS };
|
bbNames[5] = { "FEB_DIS",MENUPAGE_DISPLAY_SETTINGS };
|
||||||
bbNames[6] = { "FEB_LAN",MENUPAGE_LANGUAGE_SETTINGS };
|
bbNames[6] = { "FEB_LAN",MENUPAGE_LANGUAGE_SETTINGS };
|
||||||
bbNames[7] = { "FESZ_QU",MENUPAGE_EXIT };
|
bbNames[7] = { "FESZ_QU",MENUPAGE_EXIT };
|
||||||
bbTabCount = 8;
|
bbTabCount = 8;
|
||||||
@ -2212,7 +2270,7 @@ CMenuManager::DrawFrontEndNormal()
|
|||||||
case MENUPAGE_DELETE_SLOT_CONFIRM:
|
case MENUPAGE_DELETE_SLOT_CONFIRM:
|
||||||
currentSprite = FE_ICONSAVE;
|
currentSprite = FE_ICONSAVE;
|
||||||
break;
|
break;
|
||||||
case MENUPAGE_GRAPHICS_SETTINGS:
|
case MENUPAGE_DISPLAY_SETTINGS:
|
||||||
currentSprite = FE_ICONDISPLAY;
|
currentSprite = FE_ICONDISPLAY;
|
||||||
break;
|
break;
|
||||||
case MENUPAGE_SOUND_SETTINGS:
|
case MENUPAGE_SOUND_SETTINGS:
|
||||||
@ -3070,10 +3128,6 @@ CMenuManager::InitialiseChangedLanguageSettings()
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
|
||||||
CustomFrontendOptionsPopulate();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3225,6 +3279,17 @@ CMenuManager::LoadSettings()
|
|||||||
#ifdef CUTSCENE_BORDERS_SWITCH
|
#ifdef CUTSCENE_BORDERS_SWITCH
|
||||||
CFileMgr::Read(fileHandle, (char *)&CMenuManager::m_PrefsCutsceneBorders, 1);
|
CFileMgr::Read(fileHandle, (char *)&CMenuManager::m_PrefsCutsceneBorders, 1);
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef MULTISAMPLING
|
||||||
|
CFileMgr::Read(fileHandle, (char *)&m_nPrefsMSAALevel, 1);
|
||||||
|
m_nDisplayMSAALevel = m_nPrefsMSAALevel;
|
||||||
|
#endif
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
CFileMgr::Read(fileHandle, (char *)&CMenuManager::m_PrefsIslandLoading, 1);
|
||||||
|
CMenuManager::m_DisplayIslandLoading = CMenuManager::m_PrefsIslandLoading;
|
||||||
|
#endif
|
||||||
|
#ifdef PS2_ALPHA_TEST
|
||||||
|
CFileMgr::Read(fileHandle, (char *)&gPS2alphaTest, 1);
|
||||||
|
#endif // PS2_ALPHA_TEST
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3321,6 +3386,15 @@ CMenuManager::SaveSettings()
|
|||||||
#ifdef CUTSCENE_BORDERS_SWITCH
|
#ifdef CUTSCENE_BORDERS_SWITCH
|
||||||
CFileMgr::Write(fileHandle, (char *)&CMenuManager::m_PrefsCutsceneBorders, 1);
|
CFileMgr::Write(fileHandle, (char *)&CMenuManager::m_PrefsCutsceneBorders, 1);
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef MULTISAMPLING
|
||||||
|
CFileMgr::Write(fileHandle, (char *)&CMenuManager::m_nPrefsMSAALevel, 1);
|
||||||
|
#endif
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
CFileMgr::Write(fileHandle, (char *)&CMenuManager::m_PrefsIslandLoading, 1);
|
||||||
|
#endif
|
||||||
|
#ifdef PS2_ALPHA_TEST
|
||||||
|
CFileMgr::Write(fileHandle, (char *)&gPS2alphaTest, 1);
|
||||||
|
#endif // PS2_ALPHA_TEST
|
||||||
}
|
}
|
||||||
|
|
||||||
CFileMgr::CloseFile(fileHandle);
|
CFileMgr::CloseFile(fileHandle);
|
||||||
@ -4639,6 +4713,65 @@ CMenuManager::ProcessButtonPresses(void)
|
|||||||
SaveSettings();
|
SaveSettings();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
#ifdef IMPROVED_VIDEOMODE
|
||||||
|
case MENUACTION_SCREENFORMAT:
|
||||||
|
if (m_nSelectedScreenMode != m_nPrefsWindowed) {
|
||||||
|
m_nPrefsWindowed = m_nSelectedScreenMode;
|
||||||
|
_psSelectScreenVM(m_nPrefsVideoMode);
|
||||||
|
SetHelperText(0);
|
||||||
|
SaveSettings();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef MULTISAMPLING
|
||||||
|
case MENUACTION_MULTISAMPLING:
|
||||||
|
if (m_nDisplayMSAALevel != m_nPrefsMSAALevel) {
|
||||||
|
m_nPrefsMSAALevel = m_nDisplayMSAALevel;
|
||||||
|
_psSelectScreenVM(m_nPrefsVideoMode);
|
||||||
|
SetHelperText(0);
|
||||||
|
SaveSettings();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
case MENUACTION_ISLANDLOADING:
|
||||||
|
if (m_DisplayIslandLoading != m_PrefsIslandLoading) {
|
||||||
|
if (!m_bGameNotLoaded) {
|
||||||
|
if (m_DisplayIslandLoading > ISLAND_LOADING_LOW) {
|
||||||
|
if (m_DisplayIslandLoading == ISLAND_LOADING_HIGH)
|
||||||
|
CStreaming::RemoveIslandsNotUsed(LEVEL_GENERIC);
|
||||||
|
if (m_PrefsIslandLoading == ISLAND_LOADING_LOW) {
|
||||||
|
if (CGame::currLevel != LEVEL_INDUSTRIAL)
|
||||||
|
CFileLoader::LoadCollisionFromDatFile(LEVEL_INDUSTRIAL);
|
||||||
|
if (CGame::currLevel != LEVEL_COMMERCIAL)
|
||||||
|
CFileLoader::LoadCollisionFromDatFile(LEVEL_COMMERCIAL);
|
||||||
|
if (CGame::currLevel != LEVEL_SUBURBAN)
|
||||||
|
CFileLoader::LoadCollisionFromDatFile(LEVEL_SUBURBAN);
|
||||||
|
CCollision::bAlreadyLoaded = true;
|
||||||
|
m_PrefsIslandLoading = m_DisplayIslandLoading;
|
||||||
|
CStreaming::RequestBigBuildings(CGame::currLevel);
|
||||||
|
} else if (m_PrefsIslandLoading == ISLAND_LOADING_HIGH) {
|
||||||
|
m_PrefsIslandLoading = m_DisplayIslandLoading;
|
||||||
|
CStreaming::RequestIslands(CGame::currLevel);
|
||||||
|
} else
|
||||||
|
m_PrefsIslandLoading = m_DisplayIslandLoading;
|
||||||
|
} else { // low
|
||||||
|
m_PrefsIslandLoading = m_DisplayIslandLoading;
|
||||||
|
CCollision::bAlreadyLoaded = false;
|
||||||
|
CModelInfo::RemoveColModelsFromOtherLevels(CGame::currLevel);
|
||||||
|
CStreaming::RemoveUnusedBigBuildings(CGame::currLevel);
|
||||||
|
CStreaming::RemoveUnusedBuildings(CGame::currLevel);
|
||||||
|
CStreaming::RequestIslands(CGame::currLevel);
|
||||||
|
}
|
||||||
|
|
||||||
|
CStreaming::LoadAllRequestedModels(true);
|
||||||
|
} else
|
||||||
|
m_PrefsIslandLoading = m_DisplayIslandLoading;
|
||||||
|
SetHelperText(0);
|
||||||
|
SaveSettings();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
case MENUACTION_AUDIOHW:
|
case MENUACTION_AUDIOHW:
|
||||||
{
|
{
|
||||||
int selectedProvider = m_nPrefsAudio3DProviderIndex;
|
int selectedProvider = m_nPrefsAudio3DProviderIndex;
|
||||||
@ -4685,7 +4818,8 @@ CMenuManager::ProcessButtonPresses(void)
|
|||||||
DMAudio.SetRadioInCar(m_PrefsRadioStation);
|
DMAudio.SetRadioInCar(m_PrefsRadioStation);
|
||||||
DMAudio.PlayFrontEndTrack(m_PrefsRadioStation, 1);
|
DMAudio.PlayFrontEndTrack(m_PrefsRadioStation, 1);
|
||||||
SaveSettings();
|
SaveSettings();
|
||||||
} else if (m_nCurrScreen == MENUPAGE_GRAPHICS_SETTINGS) {
|
#ifndef GRAPHICS_MENU_OPTIONS
|
||||||
|
} else if (m_nCurrScreen == MENUPAGE_DISPLAY_SETTINGS) {
|
||||||
m_PrefsFrameLimiter = true;
|
m_PrefsFrameLimiter = true;
|
||||||
m_PrefsBrightness = 256;
|
m_PrefsBrightness = 256;
|
||||||
m_PrefsVsyncDisp = true;
|
m_PrefsVsyncDisp = true;
|
||||||
@ -4707,7 +4841,113 @@ CMenuManager::ProcessButtonPresses(void)
|
|||||||
#else
|
#else
|
||||||
CMBlur::BlurOn = true;
|
CMBlur::BlurOn = true;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef CUTSCENE_BORDERS_SWITCH
|
||||||
|
m_PrefsCutsceneBorders = true;
|
||||||
|
#endif
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
m_DisplayIslandLoading = ISLAND_LOADING_LOW;
|
||||||
|
if (!m_bGameNotLoaded) {
|
||||||
|
if (m_DisplayIslandLoading > ISLAND_LOADING_LOW) {
|
||||||
|
if (m_DisplayIslandLoading == ISLAND_LOADING_HIGH)
|
||||||
|
CStreaming::RemoveIslandsNotUsed(LEVEL_GENERIC);
|
||||||
|
if (m_PrefsIslandLoading == ISLAND_LOADING_LOW) {
|
||||||
|
if (CGame::currLevel != LEVEL_INDUSTRIAL)
|
||||||
|
CFileLoader::LoadCollisionFromDatFile(LEVEL_INDUSTRIAL);
|
||||||
|
if (CGame::currLevel != LEVEL_COMMERCIAL)
|
||||||
|
CFileLoader::LoadCollisionFromDatFile(LEVEL_COMMERCIAL);
|
||||||
|
if (CGame::currLevel != LEVEL_SUBURBAN)
|
||||||
|
CFileLoader::LoadCollisionFromDatFile(LEVEL_SUBURBAN);
|
||||||
|
CCollision::bAlreadyLoaded = true;
|
||||||
|
m_PrefsIslandLoading = m_DisplayIslandLoading;
|
||||||
|
CStreaming::RequestBigBuildings(CGame::currLevel);
|
||||||
|
} else if (m_PrefsIslandLoading == ISLAND_LOADING_HIGH) {
|
||||||
|
m_PrefsIslandLoading = m_DisplayIslandLoading;
|
||||||
|
CStreaming::RequestIslands(CGame::currLevel);
|
||||||
|
} else
|
||||||
|
m_PrefsIslandLoading = m_DisplayIslandLoading;
|
||||||
|
} else { // low
|
||||||
|
m_PrefsIslandLoading = m_DisplayIslandLoading;
|
||||||
|
CCollision::bAlreadyLoaded = false;
|
||||||
|
CModelInfo::RemoveColModelsFromOtherLevels(CGame::currLevel);
|
||||||
|
CStreaming::RemoveUnusedBigBuildings(CGame::currLevel);
|
||||||
|
CStreaming::RemoveUnusedBuildings(CGame::currLevel);
|
||||||
|
CStreaming::RequestIslands(CGame::currLevel);
|
||||||
|
}
|
||||||
|
|
||||||
|
CStreaming::LoadAllRequestedModels(true);
|
||||||
|
} else
|
||||||
|
m_PrefsIslandLoading = m_DisplayIslandLoading;
|
||||||
|
#endif // NO_ISLAND_LOADING
|
||||||
|
#ifdef PS2_ALPHA_TEST
|
||||||
|
gPS2alphaTest = false;
|
||||||
|
#endif // PS2_ALPHA_TEST
|
||||||
SaveSettings();
|
SaveSettings();
|
||||||
|
#else
|
||||||
|
} else if (m_nCurrScreen == MENUPAGE_DISPLAY_SETTINGS) {
|
||||||
|
m_PrefsBrightness = 256;
|
||||||
|
m_PrefsShowSubtitles = true;
|
||||||
|
#ifdef CUTSCENE_BORDERS_SWITCH
|
||||||
|
m_PrefsCutsceneBorders = true;
|
||||||
|
#endif
|
||||||
|
SaveSettings();
|
||||||
|
} else if (m_nCurrScreen == MENUPAGE_GRAPHICS_SETTINGS) {
|
||||||
|
m_PrefsFrameLimiter = true;
|
||||||
|
m_PrefsUseWideScreen = false;
|
||||||
|
m_PrefsVsyncDisp = true;
|
||||||
|
m_PrefsLOD = 1.2f;
|
||||||
|
m_PrefsVsync = true;
|
||||||
|
CRenderer::ms_lodDistScale = 1.2f;
|
||||||
|
m_nDisplayVideoMode = m_nPrefsVideoMode;
|
||||||
|
#ifdef GTA3_1_1_PATCH
|
||||||
|
if (_dwOperatingSystemVersion == OS_WIN98) {
|
||||||
|
CMBlur::BlurOn = false;
|
||||||
|
CMBlur::MotionBlurClose();
|
||||||
|
} else {
|
||||||
|
CMBlur::BlurOn = true;
|
||||||
|
CMBlur::MotionBlurOpen(Scene.camera);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
CMBlur::BlurOn = true;
|
||||||
|
#endif // GTA3_1_1_PATCH
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
m_DisplayIslandLoading = ISLAND_LOADING_LOW;
|
||||||
|
if (!m_bGameNotLoaded) {
|
||||||
|
if (m_DisplayIslandLoading > ISLAND_LOADING_LOW) {
|
||||||
|
if (m_DisplayIslandLoading == ISLAND_LOADING_HIGH)
|
||||||
|
CStreaming::RemoveIslandsNotUsed(LEVEL_GENERIC);
|
||||||
|
if (m_PrefsIslandLoading == ISLAND_LOADING_LOW) {
|
||||||
|
if (CGame::currLevel != LEVEL_INDUSTRIAL)
|
||||||
|
CFileLoader::LoadCollisionFromDatFile(LEVEL_INDUSTRIAL);
|
||||||
|
if (CGame::currLevel != LEVEL_COMMERCIAL)
|
||||||
|
CFileLoader::LoadCollisionFromDatFile(LEVEL_COMMERCIAL);
|
||||||
|
if (CGame::currLevel != LEVEL_SUBURBAN)
|
||||||
|
CFileLoader::LoadCollisionFromDatFile(LEVEL_SUBURBAN);
|
||||||
|
CCollision::bAlreadyLoaded = true;
|
||||||
|
m_PrefsIslandLoading = m_DisplayIslandLoading;
|
||||||
|
CStreaming::RequestBigBuildings(CGame::currLevel);
|
||||||
|
} else if (m_PrefsIslandLoading == ISLAND_LOADING_HIGH) {
|
||||||
|
m_PrefsIslandLoading = m_DisplayIslandLoading;
|
||||||
|
CStreaming::RequestIslands(CGame::currLevel);
|
||||||
|
} else
|
||||||
|
m_PrefsIslandLoading = m_DisplayIslandLoading;
|
||||||
|
} else { // low
|
||||||
|
m_PrefsIslandLoading = m_DisplayIslandLoading;
|
||||||
|
CCollision::bAlreadyLoaded = false;
|
||||||
|
CModelInfo::RemoveColModelsFromOtherLevels(CGame::currLevel);
|
||||||
|
CStreaming::RemoveUnusedBigBuildings(CGame::currLevel);
|
||||||
|
CStreaming::RemoveUnusedBuildings(CGame::currLevel);
|
||||||
|
CStreaming::RequestIslands(CGame::currLevel);
|
||||||
|
}
|
||||||
|
|
||||||
|
CStreaming::LoadAllRequestedModels(true);
|
||||||
|
} else
|
||||||
|
m_PrefsIslandLoading = m_DisplayIslandLoading;
|
||||||
|
#endif // NO_ISLAND_LOADING
|
||||||
|
#ifdef PS2_ALPHA_TEST
|
||||||
|
gPS2alphaTest = false;
|
||||||
|
#endif // PS2_ALPHA_TEST
|
||||||
|
SaveSettings();
|
||||||
|
#endif // GRAPHICS_MENU_OPTIONS
|
||||||
} else if ((m_nCurrScreen != MENUPAGE_SKIN_SELECT_OLD) && (m_nCurrScreen == MENUPAGE_CONTROLLER_PC)) {
|
} else if ((m_nCurrScreen != MENUPAGE_SKIN_SELECT_OLD) && (m_nCurrScreen == MENUPAGE_CONTROLLER_PC)) {
|
||||||
ControlsManager.MakeControllerActionsBlank();
|
ControlsManager.MakeControllerActionsBlank();
|
||||||
ControlsManager.InitDefaultControlConfiguration();
|
ControlsManager.InitDefaultControlConfiguration();
|
||||||
@ -4765,33 +5005,6 @@ CMenuManager::ProcessButtonPresses(void)
|
|||||||
RequestFrontEndShutDown();
|
RequestFrontEndShutDown();
|
||||||
RetryMission(2, 0);
|
RetryMission(2, 0);
|
||||||
return;
|
return;
|
||||||
#endif
|
|
||||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
|
||||||
case MENUACTION_TRIGGERFUNC:
|
|
||||||
FrontendOption& option = customFrontendOptions[aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_TargetMenu];
|
|
||||||
if (m_nCurrScreen == option.screen && m_nCurrOption == option.screenOptionOrder) {
|
|
||||||
if (option.type == FEOPTION_SELECT) {
|
|
||||||
if (!option.onlyApplyOnEnter) {
|
|
||||||
option.displayedValue++;
|
|
||||||
if (option.displayedValue >= option.numRightTexts || option.displayedValue < 0)
|
|
||||||
option.displayedValue = 0;
|
|
||||||
}
|
|
||||||
option.changeFunc(option.displayedValue);
|
|
||||||
*option.value = option.displayedValue;
|
|
||||||
|
|
||||||
} else if (option.type == FEOPTION_DYNAMIC) {
|
|
||||||
option.buttonPressFunc(FEOPTION_ACTION_SELECT);
|
|
||||||
} else if (option.type == FEOPTION_REDIRECT) {
|
|
||||||
ChangeScreen(option.to, option.option, true, option.fadeIn);
|
|
||||||
} else if (option.type == FEOPTION_GOBACK) {
|
|
||||||
goBack = true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
debug("B- screen:%d option:%d - totalCo: %d, coId: %d, coScreen:%d, coOption:%d\n", m_nCurrScreen, m_nCurrOption, numCustomFrontendOptions, aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_TargetMenu, option.screen, option.screenOptionOrder);
|
|
||||||
assert(0 && "Custom frontend options are borked");
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4966,6 +5179,41 @@ CMenuManager::ProcessButtonPresses(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
#ifdef IMPROVED_VIDEOMODE
|
||||||
|
case MENUACTION_SCREENFORMAT:
|
||||||
|
if (m_bGameNotLoaded) {
|
||||||
|
FrontEndMenuManager.m_nSelectedScreenMode = !FrontEndMenuManager.m_nSelectedScreenMode;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef MULTISAMPLING
|
||||||
|
case MENUACTION_MULTISAMPLING:
|
||||||
|
if (m_bGameNotLoaded) {
|
||||||
|
m_nDisplayMSAALevel += changeValueBy;
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
int maxAA = RwD3D8EngineGetMaxMultiSamplingLevels();
|
||||||
|
while (maxAA != 1) {
|
||||||
|
i++;
|
||||||
|
maxAA >>= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_nDisplayMSAALevel < 0)
|
||||||
|
m_nDisplayMSAALevel = i;
|
||||||
|
else if (m_nDisplayMSAALevel > i)
|
||||||
|
m_nDisplayMSAALevel = 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
case MENUACTION_ISLANDLOADING:
|
||||||
|
m_DisplayIslandLoading += changeValueBy;
|
||||||
|
if (m_DisplayIslandLoading > ISLAND_LOADING_HIGH)
|
||||||
|
m_DisplayIslandLoading = ISLAND_LOADING_LOW;
|
||||||
|
else if (m_DisplayIslandLoading < ISLAND_LOADING_LOW)
|
||||||
|
m_DisplayIslandLoading = ISLAND_LOADING_HIGH;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
case MENUACTION_AUDIOHW:
|
case MENUACTION_AUDIOHW:
|
||||||
if (m_nPrefsAudio3DProviderIndex != -1) {
|
if (m_nPrefsAudio3DProviderIndex != -1) {
|
||||||
m_nPrefsAudio3DProviderIndex += changeValueBy;
|
m_nPrefsAudio3DProviderIndex += changeValueBy;
|
||||||
@ -4988,36 +5236,6 @@ CMenuManager::ProcessButtonPresses(void)
|
|||||||
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0);
|
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0);
|
||||||
SaveSettings();
|
SaveSettings();
|
||||||
break;
|
break;
|
||||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
|
||||||
case MENUACTION_TRIGGERFUNC:
|
|
||||||
FrontendOption& option = customFrontendOptions[aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_TargetMenu];
|
|
||||||
if (m_nCurrScreen == option.screen && m_nCurrOption == option.screenOptionOrder) {
|
|
||||||
if (option.type == FEOPTION_SELECT) {
|
|
||||||
if (changeValueBy > 0) {
|
|
||||||
option.displayedValue++;
|
|
||||||
if (option.displayedValue >= option.numRightTexts)
|
|
||||||
option.displayedValue = 0;
|
|
||||||
} else {
|
|
||||||
option.displayedValue--;
|
|
||||||
if (option.displayedValue < 0)
|
|
||||||
option.displayedValue = option.numRightTexts - 1;
|
|
||||||
}
|
|
||||||
if (!option.onlyApplyOnEnter) {
|
|
||||||
option.changeFunc(option.displayedValue);
|
|
||||||
*option.value = option.displayedValue;
|
|
||||||
}
|
|
||||||
} else if (option.type == FEOPTION_DYNAMIC) {
|
|
||||||
option.buttonPressFunc(changeValueBy > 0 ? FEOPTION_ACTION_RIGHT : FEOPTION_ACTION_LEFT);
|
|
||||||
}
|
|
||||||
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
debug("C- screen:%d option:%d - totalCo: %d, coId: %d, coScreen:%d, coOption:%d\n", m_nCurrScreen, m_nCurrOption, numCustomFrontendOptions, aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_TargetMenu, option.screen, option.screenOptionOrder);
|
|
||||||
assert(0 && "Custom frontend options are borked");
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
ProcessOnOffMenuOptions();
|
ProcessOnOffMenuOptions();
|
||||||
if (m_nCurrScreen == MENUPAGE_KEYBOARD_CONTROLS) {
|
if (m_nCurrScreen == MENUPAGE_KEYBOARD_CONTROLS) {
|
||||||
@ -5131,6 +5349,20 @@ CMenuManager::ProcessOnOffMenuOptions()
|
|||||||
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0);
|
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0);
|
||||||
SaveSettings();
|
SaveSettings();
|
||||||
break;
|
break;
|
||||||
|
#ifdef CUTSCENE_BORDERS_SWITCH
|
||||||
|
case MENUACTION_CUTSCENEBORDERS:
|
||||||
|
m_PrefsCutsceneBorders = !m_PrefsCutsceneBorders;
|
||||||
|
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0);
|
||||||
|
SaveSettings();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef PS2_ALPHA_TEST
|
||||||
|
case MENUACTION_PS2_ALPHA_TEST:
|
||||||
|
gPS2alphaTest = !gPS2alphaTest;
|
||||||
|
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0);
|
||||||
|
SaveSettings();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -183,7 +183,7 @@ enum eMenuScreen
|
|||||||
MENUPAGE_BRIEFS = 3,
|
MENUPAGE_BRIEFS = 3,
|
||||||
MENUPAGE_CONTROLLER_SETTINGS = 4,
|
MENUPAGE_CONTROLLER_SETTINGS = 4,
|
||||||
MENUPAGE_SOUND_SETTINGS = 5,
|
MENUPAGE_SOUND_SETTINGS = 5,
|
||||||
MENUPAGE_GRAPHICS_SETTINGS = 6,
|
MENUPAGE_DISPLAY_SETTINGS = 6,
|
||||||
MENUPAGE_LANGUAGE_SETTINGS = 7,
|
MENUPAGE_LANGUAGE_SETTINGS = 7,
|
||||||
MENUPAGE_CHOOSE_LOAD_SLOT = 8,
|
MENUPAGE_CHOOSE_LOAD_SLOT = 8,
|
||||||
MENUPAGE_CHOOSE_DELETE_SLOT = 9,
|
MENUPAGE_CHOOSE_DELETE_SLOT = 9,
|
||||||
@ -238,6 +238,9 @@ enum eMenuScreen
|
|||||||
MENUPAGE_58 = 58,
|
MENUPAGE_58 = 58,
|
||||||
#ifdef MENU_MAP
|
#ifdef MENU_MAP
|
||||||
MENUPAGE_MAP = 59,
|
MENUPAGE_MAP = 59,
|
||||||
|
#endif
|
||||||
|
#ifdef GRAPHICS_MENU_OPTIONS
|
||||||
|
MENUPAGE_GRAPHICS_SETTINGS,
|
||||||
#endif
|
#endif
|
||||||
MENUPAGES
|
MENUPAGES
|
||||||
};
|
};
|
||||||
@ -359,8 +362,24 @@ enum eMenuAction
|
|||||||
MENUACTION_UNK112,
|
MENUACTION_UNK112,
|
||||||
MENUACTION_REJECT_RETRY,
|
MENUACTION_REJECT_RETRY,
|
||||||
MENUACTION_UNK114,
|
MENUACTION_UNK114,
|
||||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
#ifdef IMPROVED_VIDEOMODE
|
||||||
MENUACTION_TRIGGERFUNC
|
MENUACTION_SCREENFORMAT,
|
||||||
|
#endif
|
||||||
|
#ifdef ANISOTROPIC_FILTERING
|
||||||
|
MENUACTION_MIPMAPS,
|
||||||
|
MENUACTION_TEXTURE_FILTERING,
|
||||||
|
#endif
|
||||||
|
#ifdef MULTISAMPLING
|
||||||
|
MENUACTION_MULTISAMPLING,
|
||||||
|
#endif
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
MENUACTION_ISLANDLOADING,
|
||||||
|
#endif
|
||||||
|
#ifdef PS2_ALPHA_TEST
|
||||||
|
MENUACTION_PS2_ALPHA_TEST,
|
||||||
|
#endif
|
||||||
|
#ifdef CUTSCENE_BORDERS_SWITCH
|
||||||
|
MENUACTION_CUTSCENEBORDERS,
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -456,7 +475,7 @@ struct CMenuScreen
|
|||||||
int32 m_Action; // eMenuAction
|
int32 m_Action; // eMenuAction
|
||||||
char m_EntryName[8];
|
char m_EntryName[8];
|
||||||
int32 m_SaveSlot; // eSaveSlot
|
int32 m_SaveSlot; // eSaveSlot
|
||||||
int32 m_TargetMenu; // eMenuScreen // FrontendOption ID if it's a custom option
|
int32 m_TargetMenu; // eMenuScreen
|
||||||
} m_aEntries[NUM_MENUROWS];
|
} m_aEntries[NUM_MENUROWS];
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -532,6 +551,10 @@ public:
|
|||||||
int32 m_nPrefsSubsystem;
|
int32 m_nPrefsSubsystem;
|
||||||
int32 m_nSelectedScreenMode;
|
int32 m_nSelectedScreenMode;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef MULTISAMPLING
|
||||||
|
static int8 m_nPrefsMSAALevel;
|
||||||
|
static int8 m_nDisplayMSAALevel;
|
||||||
|
#endif
|
||||||
|
|
||||||
enum LANGUAGE
|
enum LANGUAGE
|
||||||
{
|
{
|
||||||
@ -602,6 +625,18 @@ public:
|
|||||||
void PrintMap();
|
void PrintMap();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
ISLAND_LOADING_LOW = 0,
|
||||||
|
ISLAND_LOADING_MEDIUM,
|
||||||
|
ISLAND_LOADING_HIGH
|
||||||
|
};
|
||||||
|
|
||||||
|
static int8 m_DisplayIslandLoading;
|
||||||
|
static int8 m_PrefsIslandLoading;
|
||||||
|
#endif
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static void BuildStatLine(Const char *text, void *stat, bool itsFloat, void *stat2);
|
static void BuildStatLine(Const char *text, void *stat, bool itsFloat, void *stat2);
|
||||||
static void CentreMousePointer();
|
static void CentreMousePointer();
|
||||||
|
@ -86,7 +86,6 @@
|
|||||||
#include "ZoneCull.h"
|
#include "ZoneCull.h"
|
||||||
#include "Zones.h"
|
#include "Zones.h"
|
||||||
#include "debugmenu.h"
|
#include "debugmenu.h"
|
||||||
#include "frontendoption.h"
|
|
||||||
#include "postfx.h"
|
#include "postfx.h"
|
||||||
#include "custompipes.h"
|
#include "custompipes.h"
|
||||||
|
|
||||||
@ -293,10 +292,6 @@ bool CGame::InitialiseOnceAfterRW(void)
|
|||||||
DMAudio.SetEffectsFadeVol(127);
|
DMAudio.SetEffectsFadeVol(127);
|
||||||
DMAudio.SetMusicFadeVol(127);
|
DMAudio.SetMusicFadeVol(127);
|
||||||
CWorld::Players[0].SetPlayerSkin(CMenuManager::m_PrefsSkinFile);
|
CWorld::Players[0].SetPlayerSkin(CMenuManager::m_PrefsSkinFile);
|
||||||
|
|
||||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
|
||||||
CustomFrontendOptionsPopulate();
|
|
||||||
#endif
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,14 +2,54 @@
|
|||||||
#include "Frontend.h"
|
#include "Frontend.h"
|
||||||
#ifdef PC_MENU
|
#ifdef PC_MENU
|
||||||
|
|
||||||
// If you want to add new options, please don't do that here and see CustomFrontendOptionsPopulate in re3.cpp.
|
#ifdef CUTSCENE_BORDERS_SWITCH
|
||||||
|
#define MENU_CUTSCENE_BORDERS_SWITCH(screen) MENUACTION_CUTSCENEBORDERS, "FEM_CSB", SAVESLOT_NONE, screen,
|
||||||
|
#else
|
||||||
|
#define MENU_CUTSCENE_BORDERS_SWITCH(screen)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef IMPROVED_VIDEOMODE
|
||||||
|
#define MENU_IMPROVED_VIDEOMODE(screen) MENUACTION_SCREENFORMAT, "FEM_SCF", SAVESLOT_NONE, screen,
|
||||||
|
#else
|
||||||
|
#define MENU_IMPROVED_VIDEOMODE(screen)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ANISOTROPIC_FILTERING
|
||||||
|
#define MENU_MIPMAPS(screen) MENUACTION_MIPMAPS, "FED_MIP", SAVESLOT_NONE, screen,
|
||||||
|
#define MENU_TEXTURE_FILTERING(screen) MENUACTION_TEXTURE_FILTERING, "FED_FIL", SAVESLOT_NONE, screen,
|
||||||
|
#else
|
||||||
|
#define MENU_MIPMAPS(screen)
|
||||||
|
#define MENU_TEXTURE_FILTERING(screen)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef MULTISAMPLING
|
||||||
|
#define MENU_MULTISAMPLING(screen) MENUACTION_MULTISAMPLING, "FED_AAS", SAVESLOT_NONE, screen,
|
||||||
|
#else
|
||||||
|
#define MENU_MULTISAMPLING(screen)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
#define MENU_ISLAND_LOADING(screen) MENUACTION_ISLANDLOADING, "FEM_ISL", SAVESLOT_NONE, screen,
|
||||||
|
#else
|
||||||
|
#define MENU_ISLAND_LOADING(screen)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef PS2_ALPHA_TEST
|
||||||
|
#define MENU_PS2_ALPHA_TEST(screen) MENUACTION_PS2_ALPHA_TEST, "FEM_2PR", SAVESLOT_NONE, screen,
|
||||||
|
#else
|
||||||
|
#define MENU_PS2_ALPHA_TEST(screen)
|
||||||
|
#endif
|
||||||
|
|
||||||
CMenuScreen aScreens[] = {
|
CMenuScreen aScreens[] = {
|
||||||
// MENUPAGE_NONE = 0
|
// MENUPAGE_NONE = 0
|
||||||
{ "", 1, MENUPAGE_DISABLED, MENUPAGE_DISABLED, 0, 0, },
|
{ "", 1, MENUPAGE_DISABLED, MENUPAGE_DISABLED, 0, 0, },
|
||||||
|
|
||||||
// MENUPAGE_STATS = 1
|
// MENUPAGE_STATS = 1
|
||||||
|
#ifdef MENU_MAP
|
||||||
|
{ "FET_STA", 1, MENUPAGE_NONE, MENUPAGE_NONE, 5, 3,
|
||||||
|
#else
|
||||||
{ "FET_STA", 1, MENUPAGE_NONE, MENUPAGE_NONE, 5, 2,
|
{ "FET_STA", 1, MENUPAGE_NONE, MENUPAGE_NONE, 5, 2,
|
||||||
|
#endif
|
||||||
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
|
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -22,7 +62,11 @@ CMenuScreen aScreens[] = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
// MENUPAGE_BRIEFS = 3
|
// MENUPAGE_BRIEFS = 3
|
||||||
|
#ifdef MENU_MAP
|
||||||
|
{ "FET_BRE", 1, MENUPAGE_NONE, MENUPAGE_NONE, 6, 4,
|
||||||
|
#else
|
||||||
{ "FET_BRE", 1, MENUPAGE_NONE, MENUPAGE_NONE, 6, 3,
|
{ "FET_BRE", 1, MENUPAGE_NONE, MENUPAGE_NONE, 6, 3,
|
||||||
|
#endif
|
||||||
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
|
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -46,19 +90,37 @@ CMenuScreen aScreens[] = {
|
|||||||
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
|
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
|
||||||
},
|
},
|
||||||
|
|
||||||
// MENUPAGE_GRAPHICS_SETTINGS = 6
|
// MENUPAGE_DISPLAY_SETTINGS = 6
|
||||||
|
#ifndef GRAPHICS_MENU_OPTIONS
|
||||||
{ "FET_DIS", 1, MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, 2, 2,
|
{ "FET_DIS", 1, MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, 2, 2,
|
||||||
MENUACTION_BRIGHTNESS, "FED_BRI", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
|
MENUACTION_BRIGHTNESS, "FED_BRI", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
|
||||||
MENUACTION_DRAWDIST, "FEM_LOD", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
|
MENUACTION_DRAWDIST, "FEM_LOD", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
|
||||||
MENUACTION_FRAMESYNC, "FEM_VSC", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
|
MENUACTION_FRAMESYNC, "FEM_VSC", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
|
||||||
MENUACTION_FRAMELIMIT, "FEM_FRM", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
|
MENUACTION_FRAMELIMIT, "FEM_FRM", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
|
||||||
MENUACTION_TRAILS, "FED_TRA", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
|
MENUACTION_TRAILS, "FED_TRA", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
|
||||||
MENUACTION_SUBTITLES, "FED_SUB", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
|
MENUACTION_SUBTITLES, "FED_SUB", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
|
||||||
MENUACTION_WIDESCREEN, "FED_WIS", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
|
MENU_CUTSCENE_BORDERS_SWITCH(MENUPAGE_DISPLAY_SETTINGS)
|
||||||
MENUACTION_SCREENRES, "FED_RES", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
|
MENU_MIPMAPS(MENUPAGE_DISPLAY_SETTINGS)
|
||||||
MENUACTION_RESTOREDEF, "FET_DEF", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
|
MENU_TEXTURE_FILTERING(MENUPAGE_DISPLAY_SETTINGS)
|
||||||
|
MENU_ISLAND_LOADING(MENUPAGE_DISPLAY_SETTINGS)
|
||||||
|
MENU_PS2_ALPHA_TEST(MENUPAGE_DISPLAY_SETTINGS)
|
||||||
|
MENU_MULTISAMPLING(MENUPAGE_DISPLAY_SETTINGS)
|
||||||
|
MENUACTION_WIDESCREEN, "FED_WIS", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
|
||||||
|
MENU_IMPROVED_VIDEOMODE(MENUPAGE_DISPLAY_SETTINGS)
|
||||||
|
MENUACTION_SCREENRES, "FED_RES", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
|
||||||
|
MENUACTION_RESTOREDEF, "FET_DEF", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
|
||||||
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
|
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
|
||||||
},
|
},
|
||||||
|
#else
|
||||||
|
{ "FET_DIS", 1, MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, 2, 2,
|
||||||
|
MENUACTION_BRIGHTNESS, "FED_BRI", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
|
||||||
|
MENUACTION_SUBTITLES, "FED_SUB", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
|
||||||
|
MENU_CUTSCENE_BORDERS_SWITCH(MENUPAGE_DISPLAY_SETTINGS)
|
||||||
|
MENUACTION_RESTOREDEF, "FET_DEF", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
|
||||||
|
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
|
||||||
|
},
|
||||||
|
#endif // GRAPHICS_MENU_OPTIONS
|
||||||
|
|
||||||
|
|
||||||
// MENUPAGE_LANGUAGE_SETTINGS = 7
|
// MENUPAGE_LANGUAGE_SETTINGS = 7
|
||||||
{ "FET_LAN", 1, MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, 3, 3,
|
{ "FET_LAN", 1, MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, 3, 3,
|
||||||
@ -319,17 +381,28 @@ CMenuScreen aScreens[] = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
// MENUPAGE_OPTIONS = 41
|
// MENUPAGE_OPTIONS = 41
|
||||||
|
#ifdef MENU_MAP
|
||||||
|
{ "FET_OPT", 1, MENUPAGE_NONE, MENUPAGE_NONE, 1, 5,
|
||||||
|
#else
|
||||||
{ "FET_OPT", 1, MENUPAGE_NONE, MENUPAGE_NONE, 1, 4,
|
{ "FET_OPT", 1, MENUPAGE_NONE, MENUPAGE_NONE, 1, 4,
|
||||||
|
#endif
|
||||||
MENUACTION_CHANGEMENU, "FET_CTL", SAVESLOT_NONE, MENUPAGE_CONTROLLER_PC,
|
MENUACTION_CHANGEMENU, "FET_CTL", SAVESLOT_NONE, MENUPAGE_CONTROLLER_PC,
|
||||||
MENUACTION_LOADRADIO, "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_DIS", SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS,
|
||||||
|
#ifdef GRAPHICS_MENU_OPTIONS
|
||||||
|
MENUACTION_CHANGEMENU, "FET_GRA", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
|
||||||
|
#endif
|
||||||
MENUACTION_CHANGEMENU, "FET_LAN", SAVESLOT_NONE, MENUPAGE_LANGUAGE_SETTINGS,
|
MENUACTION_CHANGEMENU, "FET_LAN", SAVESLOT_NONE, MENUPAGE_LANGUAGE_SETTINGS,
|
||||||
MENUACTION_PLAYERSETUP, "FET_PSU", SAVESLOT_NONE, MENUPAGE_SKIN_SELECT,
|
MENUACTION_PLAYERSETUP, "FET_PSU", SAVESLOT_NONE, MENUPAGE_SKIN_SELECT,
|
||||||
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
|
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
|
||||||
},
|
},
|
||||||
|
|
||||||
// MENUPAGE_EXIT = 42
|
// MENUPAGE_EXIT = 42
|
||||||
|
#ifdef MENU_MAP
|
||||||
|
{ "FET_QG", 1, MENUPAGE_NONE, MENUPAGE_NONE, 2, 6,
|
||||||
|
#else
|
||||||
{ "FET_QG", 1, MENUPAGE_NONE, MENUPAGE_NONE, 2, 5,
|
{ "FET_QG", 1, MENUPAGE_NONE, MENUPAGE_NONE, 2, 5,
|
||||||
|
#endif
|
||||||
MENUACTION_LABEL, "FEQ_SRE", SAVESLOT_NONE, MENUPAGE_NONE,
|
MENUACTION_LABEL, "FEQ_SRE", SAVESLOT_NONE, MENUPAGE_NONE,
|
||||||
MENUACTION_DONTCANCEL, "FEM_NO", SAVESLOT_NONE, MENUPAGE_NONE,
|
MENUACTION_DONTCANCEL, "FEM_NO", SAVESLOT_NONE, MENUPAGE_NONE,
|
||||||
MENUACTION_CANCELGAME, "FEM_YES", SAVESLOT_NONE, MENUPAGE_NONE,
|
MENUACTION_CANCELGAME, "FEM_YES", SAVESLOT_NONE, MENUPAGE_NONE,
|
||||||
@ -390,6 +463,9 @@ CMenuScreen aScreens[] = {
|
|||||||
{ "FET_PAU", 1, MENUPAGE_DISABLED, MENUPAGE_DISABLED, 0, 0,
|
{ "FET_PAU", 1, MENUPAGE_DISABLED, MENUPAGE_DISABLED, 0, 0,
|
||||||
MENUACTION_RESUME, "FEM_RES", SAVESLOT_NONE, MENUPAGE_NONE,
|
MENUACTION_RESUME, "FEM_RES", SAVESLOT_NONE, MENUPAGE_NONE,
|
||||||
MENUACTION_CHANGEMENU, "FEN_STA", SAVESLOT_NONE, MENUPAGE_NEW_GAME,
|
MENUACTION_CHANGEMENU, "FEN_STA", SAVESLOT_NONE, MENUPAGE_NEW_GAME,
|
||||||
|
#ifdef MENU_MAP
|
||||||
|
MENUACTION_CHANGEMENU, "FEG_MAP", SAVESLOT_NONE, MENUPAGE_MAP,
|
||||||
|
#endif
|
||||||
MENUACTION_CHANGEMENU, "FEP_STA", SAVESLOT_NONE, MENUPAGE_STATS,
|
MENUACTION_CHANGEMENU, "FEP_STA", SAVESLOT_NONE, MENUPAGE_STATS,
|
||||||
MENUACTION_CHANGEMENU, "FEP_BRI", SAVESLOT_NONE, MENUPAGE_BRIEFS,
|
MENUACTION_CHANGEMENU, "FEP_BRI", SAVESLOT_NONE, MENUPAGE_BRIEFS,
|
||||||
MENUACTION_CHANGEMENU, "FET_OPT", SAVESLOT_NONE, MENUPAGE_OPTIONS,
|
MENUACTION_CHANGEMENU, "FET_OPT", SAVESLOT_NONE, MENUPAGE_OPTIONS,
|
||||||
@ -446,6 +522,26 @@ CMenuScreen aScreens[] = {
|
|||||||
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
|
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef GRAPHICS_MENU_OPTIONS
|
||||||
|
// MENUPAGE_GRAPHICS_SETTINGS = 60
|
||||||
|
{ "FET_GRA", 1, MENUPAGE_OPTIONS, MENUPAGE_OPTIONS, 2, 2,
|
||||||
|
MENUACTION_DRAWDIST, "FEM_LOD", 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_WIDESCREEN, "FED_WIS", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
|
||||||
|
MENU_MIPMAPS(MENUPAGE_GRAPHICS_SETTINGS)
|
||||||
|
MENU_TEXTURE_FILTERING(MENUPAGE_GRAPHICS_SETTINGS)
|
||||||
|
MENU_ISLAND_LOADING(MENUPAGE_GRAPHICS_SETTINGS)
|
||||||
|
MENU_PS2_ALPHA_TEST(MENUPAGE_GRAPHICS_SETTINGS)
|
||||||
|
MENU_MULTISAMPLING(MENUPAGE_GRAPHICS_SETTINGS)
|
||||||
|
MENU_IMPROVED_VIDEOMODE(MENUPAGE_GRAPHICS_SETTINGS)
|
||||||
|
MENUACTION_SCREENRES, "FED_RES", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
|
||||||
|
MENUACTION_RESTOREDEF, "FET_DEF", SAVESLOT_NONE, MENUPAGE_GRAPHICS_SETTINGS,
|
||||||
|
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
|
||||||
|
},
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -32,6 +32,7 @@
|
|||||||
#include "Replay.h"
|
#include "Replay.h"
|
||||||
#endif
|
#endif
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
#include "Frontend.h"
|
||||||
|
|
||||||
bool CStreaming::ms_disableStreaming;
|
bool CStreaming::ms_disableStreaming;
|
||||||
bool CStreaming::ms_bLoadingBigModel;
|
bool CStreaming::ms_bLoadingBigModel;
|
||||||
@ -727,7 +728,9 @@ CStreaming::RequestBigBuildings(eLevelName level)
|
|||||||
for(i = n; i >= 0; i--){
|
for(i = n; i >= 0; i--){
|
||||||
b = CPools::GetBuildingPool()->GetSlot(i);
|
b = CPools::GetBuildingPool()->GetSlot(i);
|
||||||
if(b && b->bIsBIGBuilding
|
if(b && b->bIsBIGBuilding
|
||||||
#ifndef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
&& ((CMenuManager::m_PrefsIslandLoading != CMenuManager::ISLAND_LOADING_LOW) || (b->m_level == level))
|
||||||
|
#else
|
||||||
&& b->m_level == level
|
&& b->m_level == level
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
@ -740,7 +743,9 @@ CStreaming::RequestBigBuildings(eLevelName level)
|
|||||||
void
|
void
|
||||||
CStreaming::RequestIslands(eLevelName level)
|
CStreaming::RequestIslands(eLevelName level)
|
||||||
{
|
{
|
||||||
#ifndef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading != CMenuManager::ISLAND_LOADING_HIGH)
|
||||||
|
#endif
|
||||||
switch(level){
|
switch(level){
|
||||||
case LEVEL_INDUSTRIAL:
|
case LEVEL_INDUSTRIAL:
|
||||||
RequestModel(islandLODcomInd, BIGBUILDINGFLAGS);
|
RequestModel(islandLODcomInd, BIGBUILDINGFLAGS);
|
||||||
@ -756,7 +761,6 @@ CStreaming::RequestIslands(eLevelName level)
|
|||||||
break;
|
break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -942,14 +946,17 @@ CStreaming::RemoveBuildings(eLevelName level)
|
|||||||
void
|
void
|
||||||
CStreaming::RemoveUnusedBigBuildings(eLevelName level)
|
CStreaming::RemoveUnusedBigBuildings(eLevelName level)
|
||||||
{
|
{
|
||||||
#ifndef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_LOW)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
if (level != LEVEL_INDUSTRIAL)
|
if (level != LEVEL_INDUSTRIAL)
|
||||||
RemoveBigBuildings(LEVEL_INDUSTRIAL);
|
RemoveBigBuildings(LEVEL_INDUSTRIAL);
|
||||||
if (level != LEVEL_COMMERCIAL)
|
if (level != LEVEL_COMMERCIAL)
|
||||||
RemoveBigBuildings(LEVEL_COMMERCIAL);
|
RemoveBigBuildings(LEVEL_COMMERCIAL);
|
||||||
if (level != LEVEL_SUBURBAN)
|
if (level != LEVEL_SUBURBAN)
|
||||||
RemoveBigBuildings(LEVEL_SUBURBAN);
|
RemoveBigBuildings(LEVEL_SUBURBAN);
|
||||||
#endif
|
}
|
||||||
RemoveIslandsNotUsed(level);
|
RemoveIslandsNotUsed(level);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -969,7 +976,15 @@ DeleteIsland(CEntity *island)
|
|||||||
void
|
void
|
||||||
CStreaming::RemoveIslandsNotUsed(eLevelName level)
|
CStreaming::RemoveIslandsNotUsed(eLevelName level)
|
||||||
{
|
{
|
||||||
#ifndef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_HIGH) {
|
||||||
|
DeleteIsland(pIslandLODindustEntity);
|
||||||
|
DeleteIsland(pIslandLODcomIndEntity);
|
||||||
|
DeleteIsland(pIslandLODcomSubEntity);
|
||||||
|
DeleteIsland(pIslandLODsubIndEntity);
|
||||||
|
DeleteIsland(pIslandLODsubComEntity);
|
||||||
|
} else
|
||||||
|
#endif
|
||||||
switch(level){
|
switch(level){
|
||||||
case LEVEL_INDUSTRIAL:
|
case LEVEL_INDUSTRIAL:
|
||||||
DeleteIsland(pIslandLODindustEntity);
|
DeleteIsland(pIslandLODindustEntity);
|
||||||
@ -987,16 +1002,13 @@ CStreaming::RemoveIslandsNotUsed(eLevelName level)
|
|||||||
DeleteIsland(pIslandLODcomIndEntity);
|
DeleteIsland(pIslandLODcomIndEntity);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
#endif // !NO_ISLAND_LOADING
|
|
||||||
DeleteIsland(pIslandLODindustEntity);
|
DeleteIsland(pIslandLODindustEntity);
|
||||||
DeleteIsland(pIslandLODcomIndEntity);
|
DeleteIsland(pIslandLODcomIndEntity);
|
||||||
DeleteIsland(pIslandLODcomSubEntity);
|
DeleteIsland(pIslandLODcomSubEntity);
|
||||||
DeleteIsland(pIslandLODsubIndEntity);
|
DeleteIsland(pIslandLODsubIndEntity);
|
||||||
DeleteIsland(pIslandLODsubComEntity);
|
DeleteIsland(pIslandLODsubComEntity);
|
||||||
#ifndef NO_ISLAND_LOADING
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // !NO_ISLAND_LOADING
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -206,11 +206,17 @@ enum Config {
|
|||||||
#define PS2_ALPHA_TEST // emulate ps2 alpha test
|
#define PS2_ALPHA_TEST // emulate ps2 alpha test
|
||||||
#define IMPROVED_VIDEOMODE // save and load videomode parameters instead of a magic number
|
#define IMPROVED_VIDEOMODE // save and load videomode parameters instead of a magic number
|
||||||
#define DISABLE_LOADING_SCREEN // disable the loading screen which vastly improves the loading time
|
#define DISABLE_LOADING_SCREEN // disable the loading screen which vastly improves the loading time
|
||||||
//#define NO_ISLAND_LOADING // disable loadscreen between islands via loading all island data at once, consumes more memory and CPU
|
#define NO_ISLAND_LOADING // disable loadscreen between islands via loading all island data at once, consumes more memory and CPU
|
||||||
//#define USE_TEXTURE_POOL
|
//#define USE_TEXTURE_POOL
|
||||||
#define CUTSCENE_BORDERS_SWITCH
|
#define CUTSCENE_BORDERS_SWITCH
|
||||||
//#define EXTENDED_COLOURFILTER // more options for colour filter (replaces mblur)
|
//#define EXTENDED_COLOURFILTER // more options for colour filter (replaces mblur)
|
||||||
//#define EXTENDED_PIPELINES // custom render pipelines (includes Neo)
|
//#define EXTENDED_PIPELINES // custom render pipelines (includes Neo)
|
||||||
|
#define MULTISAMPLING // adds MSAA option
|
||||||
|
|
||||||
|
#ifdef LIBRW
|
||||||
|
// these are not supported with librw yet
|
||||||
|
# undef MULTISAMPLING
|
||||||
|
#endif
|
||||||
|
|
||||||
// Particle
|
// Particle
|
||||||
//#define PC_PARTICLE
|
//#define PC_PARTICLE
|
||||||
@ -235,14 +241,14 @@ enum Config {
|
|||||||
#ifndef PC_MENU
|
#ifndef PC_MENU
|
||||||
# define PS2_MENU
|
# define PS2_MENU
|
||||||
//# define PS2_MENU_USEALLPAGEICONS
|
//# define PS2_MENU_USEALLPAGEICONS
|
||||||
#else
|
|
||||||
# define PS2_SAVE_DIALOG // PS2 style save dialog with transparent black box
|
# define PS2_SAVE_DIALOG // PS2 style save dialog with transparent black box
|
||||||
//# define PS2_LIKE_MENU // An effort to recreate PS2 menu, cycling through tabs, different bg etc.
|
//# define PS2_LIKE_MENU // An effort to recreate PS2 menu, cycling through tabs, different bg etc.
|
||||||
|
#else
|
||||||
# define MENU_MAP // VC-like menu map. Make sure you have new menu.txd
|
# define MENU_MAP // VC-like menu map. Make sure you have new menu.txd
|
||||||
# define SCROLLABLE_STATS_PAGE // only draggable by mouse atm
|
# define SCROLLABLE_STATS_PAGE // only draggable by mouse atm
|
||||||
# define TRIANGLE_BACK_BUTTON
|
# define TRIANGLE_BACK_BUTTON
|
||||||
//# define CIRCLE_BACK_BUTTON
|
//# define CIRCLE_BACK_BUTTON
|
||||||
# define CUSTOM_FRONTEND_OPTIONS
|
# define GRAPHICS_MENU_OPTIONS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Script
|
// Script
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
#include "rpmatfx.h"
|
#include "rpmatfx.h"
|
||||||
#include "rphanim.h"
|
#include "rphanim.h"
|
||||||
#include "rpskin.h"
|
#include "rpskin.h"
|
||||||
|
#include "rtbmp.h"
|
||||||
|
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "CdStream.h"
|
#include "CdStream.h"
|
||||||
@ -61,6 +62,7 @@
|
|||||||
#include "MemoryCard.h"
|
#include "MemoryCard.h"
|
||||||
#include "SceneEdit.h"
|
#include "SceneEdit.h"
|
||||||
#include "debugmenu.h"
|
#include "debugmenu.h"
|
||||||
|
#include "Clock.h"
|
||||||
#include "custompipes.h"
|
#include "custompipes.h"
|
||||||
|
|
||||||
GlobalScene Scene;
|
GlobalScene Scene;
|
||||||
@ -289,6 +291,28 @@ DoFade(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
RwGrabScreen(RwCamera *camera, RwChar *filename)
|
||||||
|
{
|
||||||
|
char temp[255];
|
||||||
|
RwImage *pImage = RsGrabScreen(camera);
|
||||||
|
bool result = true;
|
||||||
|
|
||||||
|
if (pImage == nil)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
strcpy(temp, CFileMgr::GetRootDirName());
|
||||||
|
strcat(temp, filename);
|
||||||
|
|
||||||
|
if (RtBMPImageWrite(pImage, &temp[0]) == nil)
|
||||||
|
result = false;
|
||||||
|
RwImageDestroy(pImage);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define TILE_WIDTH 576
|
||||||
|
#define TILE_HEIGHT 432
|
||||||
|
|
||||||
void
|
void
|
||||||
DoRWStuffEndOfFrame(void)
|
DoRWStuffEndOfFrame(void)
|
||||||
{
|
{
|
||||||
@ -297,6 +321,20 @@ DoRWStuffEndOfFrame(void)
|
|||||||
FlushObrsPrintfs();
|
FlushObrsPrintfs();
|
||||||
RwCameraEndUpdate(Scene.camera);
|
RwCameraEndUpdate(Scene.camera);
|
||||||
RsCameraShowRaster(Scene.camera);
|
RsCameraShowRaster(Scene.camera);
|
||||||
|
#ifndef MASTER
|
||||||
|
char s[48];
|
||||||
|
if (CPad::GetPad(1)->GetLeftShockJustDown()) {
|
||||||
|
// try using both controllers for this thing... crazy bastards
|
||||||
|
if (CPad::GetPad(0)->GetRightStickY() > 0) {
|
||||||
|
sprintf(s, "screen%d%d.ras", CClock::ms_nGameClockHours, CClock::ms_nGameClockMinutes);
|
||||||
|
// TODO
|
||||||
|
//RtTileRender(Scene.camera, TILE_WIDTH * 2, TILE_HEIGHT * 2, TILE_WIDTH, TILE_HEIGHT, &NewTileRendererCB, nil, s);
|
||||||
|
} else {
|
||||||
|
sprintf(s, "screen%d%d.bmp", CClock::ms_nGameClockHours, CClock::ms_nGameClockMinutes);
|
||||||
|
RwGrabScreen(Scene.camera, s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif // !MASTER
|
||||||
}
|
}
|
||||||
|
|
||||||
static RwBool
|
static RwBool
|
||||||
|
112
src/core/re3.cpp
112
src/core/re3.cpp
@ -71,115 +71,6 @@ mysrand(unsigned int seed)
|
|||||||
myrand_seed = seed;
|
myrand_seed = seed;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
|
||||||
#include "frontendoption.h"
|
|
||||||
#include "platform.h"
|
|
||||||
|
|
||||||
void ReloadFrontendOptions(void)
|
|
||||||
{
|
|
||||||
CustomFrontendOptionsPopulate();
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef MORE_LANGUAGES
|
|
||||||
void LangPolSelect(int8 action)
|
|
||||||
{
|
|
||||||
if (action == FEOPTION_ACTION_SELECT) {
|
|
||||||
FrontEndMenuManager.m_PrefsLanguage = CMenuManager::LANGUAGE_POLISH;
|
|
||||||
FrontEndMenuManager.m_bFrontEnd_ReloadObrTxtGxt = true;
|
|
||||||
FrontEndMenuManager.InitialiseChangedLanguageSettings();
|
|
||||||
FrontEndMenuManager.SaveSettings();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void LangRusSelect(int8 action)
|
|
||||||
{
|
|
||||||
if (action == FEOPTION_ACTION_SELECT) {
|
|
||||||
FrontEndMenuManager.m_PrefsLanguage = CMenuManager::LANGUAGE_RUSSIAN;
|
|
||||||
FrontEndMenuManager.m_bFrontEnd_ReloadObrTxtGxt = true;
|
|
||||||
FrontEndMenuManager.InitialiseChangedLanguageSettings();
|
|
||||||
FrontEndMenuManager.SaveSettings();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void LangJapSelect(int8 action)
|
|
||||||
{
|
|
||||||
if (action == FEOPTION_ACTION_SELECT) {
|
|
||||||
FrontEndMenuManager.m_PrefsLanguage = CMenuManager::LANGUAGE_JAPANESE;
|
|
||||||
FrontEndMenuManager.m_bFrontEnd_ReloadObrTxtGxt = true;
|
|
||||||
FrontEndMenuManager.InitialiseChangedLanguageSettings();
|
|
||||||
FrontEndMenuManager.SaveSettings();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef IMPROVED_VIDEOMODE
|
|
||||||
void ScreenModeChange(int8 displayedValue)
|
|
||||||
{
|
|
||||||
if (displayedValue != FrontEndMenuManager.m_nPrefsWindowed) {
|
|
||||||
FrontEndMenuManager.m_nPrefsWindowed = displayedValue;
|
|
||||||
_psSelectScreenVM(FrontEndMenuManager.m_nPrefsVideoMode); // apply same resolution
|
|
||||||
FrontEndMenuManager.SetHelperText(0);
|
|
||||||
FrontEndMenuManager.SaveSettings();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef FREE_CAM
|
|
||||||
void ToggleFreeCam(int8 action)
|
|
||||||
{
|
|
||||||
if (action == FEOPTION_ACTION_SELECT) {
|
|
||||||
TheCamera.bFreeCam = !TheCamera.bFreeCam;
|
|
||||||
FrontEndMenuManager.SaveSettings();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CUTSCENE_BORDERS_SWITCH
|
|
||||||
void BorderModeChange(int8 displayedValue)
|
|
||||||
{
|
|
||||||
CMenuManager::m_PrefsCutsceneBorders = !!displayedValue;
|
|
||||||
FrontEndMenuManager.SaveSettings();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Reloaded on language change, so you can use hardcoded wchar* and TheText.Get with peace of mind
|
|
||||||
void
|
|
||||||
CustomFrontendOptionsPopulate(void)
|
|
||||||
{
|
|
||||||
RemoveCustomFrontendOptions(); // if exist
|
|
||||||
|
|
||||||
#ifdef MORE_LANGUAGES
|
|
||||||
FrontendOptionSetPosition(MENUPAGE_LANGUAGE_SETTINGS);
|
|
||||||
FrontendOptionAddDynamic(TheText.Get("FEL_POL"), nil, LangPolSelect, nil);
|
|
||||||
FrontendOptionAddDynamic(TheText.Get("FEL_RUS"), nil, LangRusSelect, nil);
|
|
||||||
FrontendOptionAddDynamic(TheText.Get("FEL_JAP"), nil, LangJapSelect, nil);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef IMPROVED_VIDEOMODE
|
|
||||||
static const wchar *screenModes[] = { (wchar*)L"FULLSCREEN", (wchar*)L"WINDOWED" };
|
|
||||||
FrontendOptionSetPosition(MENUPAGE_GRAPHICS_SETTINGS, 8);
|
|
||||||
FrontendOptionAddSelect(TheText.Get("SCRFOR"), screenModes, 2, (int8*)&FrontEndMenuManager.m_nPrefsWindowed, true, ScreenModeChange, nil);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef MENU_MAP
|
|
||||||
FrontendOptionSetPosition(MENUPAGE_PAUSE_MENU, 2);
|
|
||||||
FrontendOptionAddRedirect(TheText.Get("FEG_MAP"), MENUPAGE_MAP);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef FREE_CAM
|
|
||||||
static const wchar *text = (wchar*)L"TOGGLE FREE CAM";
|
|
||||||
FrontendOptionSetPosition(MENUPAGE_CONTROLLER_PC, 1);
|
|
||||||
FrontendOptionAddDynamic(text, nil, ToggleFreeCam, nil);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CUTSCENE_BORDERS_SWITCH
|
|
||||||
static const wchar *off_on[] = { TheText.Get("FEM_OFF"), TheText.Get("FEM_ON") };
|
|
||||||
FrontendOptionSetPosition(MENUPAGE_GRAPHICS_SETTINGS, 9);
|
|
||||||
FrontendOptionAddSelect((const wchar *)L"CUTSCENE BORDERS", off_on, 2, (int8 *)&CMenuManager::m_PrefsCutsceneBorders, false, BorderModeChange, nil);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef DEBUGMENU
|
#ifdef DEBUGMENU
|
||||||
void WeaponCheat();
|
void WeaponCheat();
|
||||||
void HealthCheat();
|
void HealthCheat();
|
||||||
@ -514,9 +405,6 @@ DebugMenuPopulate(void)
|
|||||||
DebugMenuAddCmd("Debug", "Catalina Fly Away", CHeli::MakeCatalinaHeliFlyAway);
|
DebugMenuAddCmd("Debug", "Catalina Fly Away", CHeli::MakeCatalinaHeliFlyAway);
|
||||||
DebugMenuAddVarBool8("Debug", "Script Heli On", &CHeli::ScriptHeliOn, nil);
|
DebugMenuAddVarBool8("Debug", "Script Heli On", &CHeli::ScriptHeliOn, nil);
|
||||||
|
|
||||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
|
||||||
DebugMenuAddCmd("Debug", "Reload custom frontend options", ReloadFrontendOptions);
|
|
||||||
#endif
|
|
||||||
DebugMenuAddVarBool8("Debug", "Toggle popping heads on headshot", &CPed::bPopHeadsOnHeadshot, nil);
|
DebugMenuAddVarBool8("Debug", "Toggle popping heads on headshot", &CPed::bPopHeadsOnHeadshot, nil);
|
||||||
DebugMenuAddCmd("Debug", "Start Credits", CCredits::Start);
|
DebugMenuAddCmd("Debug", "Start Credits", CCredits::Start);
|
||||||
DebugMenuAddCmd("Debug", "Stop Credits", CCredits::Stop);
|
DebugMenuAddCmd("Debug", "Stop Credits", CCredits::Stop);
|
||||||
|
@ -1,173 +0,0 @@
|
|||||||
#include "common.h"
|
|
||||||
|
|
||||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
|
||||||
#include "frontendoption.h"
|
|
||||||
|
|
||||||
int numCustomFrontendOptions = 0;
|
|
||||||
FrontendOption *customFrontendOptions;
|
|
||||||
|
|
||||||
int optionCursor = -1;
|
|
||||||
eMenuScreen currentMenu;
|
|
||||||
|
|
||||||
void ChangeScreen(eMenuScreen screen, int option, bool fadeIn)
|
|
||||||
{
|
|
||||||
FrontEndMenuManager.m_nPrevScreen = FrontEndMenuManager.m_nCurrScreen;
|
|
||||||
FrontEndMenuManager.m_nCurrScreen = screen;
|
|
||||||
FrontEndMenuManager.m_nCurrOption = option;
|
|
||||||
if (fadeIn)
|
|
||||||
FrontEndMenuManager.m_nMenuFadeAlpha = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GoBack(bool fadeIn)
|
|
||||||
{
|
|
||||||
int screen = !FrontEndMenuManager.m_bGameNotLoaded ?
|
|
||||||
aScreens[FrontEndMenuManager.m_nCurrScreen].m_PreviousPage[1] : aScreens[FrontEndMenuManager.m_nCurrScreen].m_PreviousPage[0];
|
|
||||||
int option = !FrontEndMenuManager.m_bGameNotLoaded ?
|
|
||||||
aScreens[FrontEndMenuManager.m_nCurrScreen].m_ParentEntry[1] : aScreens[FrontEndMenuManager.m_nCurrScreen].m_ParentEntry[0];
|
|
||||||
|
|
||||||
FrontEndMenuManager.ThingsToDoBeforeGoingBack();
|
|
||||||
|
|
||||||
ChangeScreen((eMenuScreen)screen, option, fadeIn);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8
|
|
||||||
GetNumberOfMenuOptions(int screen)
|
|
||||||
{
|
|
||||||
uint8 Rows = 0;
|
|
||||||
for (int i = 0; i < NUM_MENUROWS; i++) {
|
|
||||||
if (aScreens[screen].m_aEntries[i].m_Action == MENUACTION_NOTHING)
|
|
||||||
break;
|
|
||||||
|
|
||||||
++Rows;
|
|
||||||
}
|
|
||||||
return Rows;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Used before populating options, but effective in InitialiseChangedLanguageSettings and debugmenu
|
|
||||||
void
|
|
||||||
RemoveCustomFrontendOptions()
|
|
||||||
{
|
|
||||||
if (numCustomFrontendOptions == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
for (int i = 0; i < MENUPAGES; i++) {
|
|
||||||
for (int j = 0; j < NUM_MENUROWS; j++) {
|
|
||||||
if (aScreens[i].m_aEntries[j].m_Action == MENUACTION_TRIGGERFUNC) {
|
|
||||||
int k;
|
|
||||||
for (k = j; k < NUM_MENUROWS-1; k++) {
|
|
||||||
memcpy(&aScreens[i].m_aEntries[k], &aScreens[i].m_aEntries[k+1], sizeof(CMenuScreen::CMenuEntry));
|
|
||||||
}
|
|
||||||
aScreens[i].m_aEntries[k].m_Action = MENUACTION_NOTHING;
|
|
||||||
aScreens[i].m_aEntries[k].m_EntryName[0] = '\0';
|
|
||||||
j--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
free(customFrontendOptions);
|
|
||||||
numCustomFrontendOptions = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int8 RegisterNewOption(int screen)
|
|
||||||
{
|
|
||||||
numCustomFrontendOptions++;
|
|
||||||
if (numCustomFrontendOptions == 1)
|
|
||||||
customFrontendOptions = (FrontendOption*)malloc(5 * sizeof(FrontendOption));
|
|
||||||
else if (numCustomFrontendOptions % 5 == 1)
|
|
||||||
customFrontendOptions = (FrontendOption*)realloc(customFrontendOptions, (numCustomFrontendOptions + 4) * sizeof(FrontendOption));
|
|
||||||
|
|
||||||
assert(customFrontendOptions != nil && "Custom frontend options can't be allocated");
|
|
||||||
|
|
||||||
uint8 nth = GetNumberOfMenuOptions(screen);
|
|
||||||
if (optionCursor < 0) {
|
|
||||||
if (optionCursor == -1) {
|
|
||||||
if (!strcmp(aScreens[screen].m_aEntries[nth - 1].m_EntryName, "FEDS_TB") || !strcmp(aScreens[screen].m_aEntries[nth - 1].m_EntryName, "FESZ_CA")) {
|
|
||||||
// Move back button one below
|
|
||||||
memcpy(&aScreens[screen].m_aEntries[nth], &aScreens[screen].m_aEntries[nth - 1], sizeof(CMenuScreen::CMenuEntry));
|
|
||||||
nth--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (aScreens[screen].m_aEntries[optionCursor].m_Action != MENUACTION_NOTHING) {
|
|
||||||
for (int i = nth - 1; i >= optionCursor; i--) {
|
|
||||||
memcpy(&aScreens[screen].m_aEntries[i + 1], &aScreens[screen].m_aEntries[i], sizeof(CMenuScreen::CMenuEntry));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
nth = optionCursor;
|
|
||||||
optionCursor++;
|
|
||||||
}
|
|
||||||
|
|
||||||
aScreens[screen].m_aEntries[nth].m_Action = MENUACTION_TRIGGERFUNC;
|
|
||||||
aScreens[screen].m_aEntries[nth].m_TargetMenu = numCustomFrontendOptions - 1;
|
|
||||||
aScreens[screen].m_aEntries[nth].m_EntryName[0] = 1; // just something to fool it
|
|
||||||
return nth;
|
|
||||||
}
|
|
||||||
|
|
||||||
void FrontendOptionSetPosition(eMenuScreen screen, int8 option)
|
|
||||||
{
|
|
||||||
currentMenu = screen;
|
|
||||||
optionCursor = option;
|
|
||||||
}
|
|
||||||
|
|
||||||
void FrontendOptionAddSelect(const wchar* leftText, const wchar** rightTexts, int8 numRightTexts, int8 *var, bool onlyApplyOnEnter, ChangeFunc changeFunc, ReturnPrevPageFunc returnPrevPageFunc)
|
|
||||||
{
|
|
||||||
int8 screenOptionOrder = RegisterNewOption(currentMenu);
|
|
||||||
|
|
||||||
FrontendOption& option = customFrontendOptions[numCustomFrontendOptions - 1];
|
|
||||||
option.screen = currentMenu;
|
|
||||||
option.type = FEOPTION_SELECT;
|
|
||||||
option.leftText = leftText;
|
|
||||||
option.rightTexts = rightTexts;
|
|
||||||
option.numRightTexts = numRightTexts;
|
|
||||||
option.value = var;
|
|
||||||
option.displayedValue = *var;
|
|
||||||
option.onlyApplyOnEnter = onlyApplyOnEnter;
|
|
||||||
option.changeFunc = changeFunc;
|
|
||||||
option.screenOptionOrder = screenOptionOrder;
|
|
||||||
option.returnPrevPageFunc = returnPrevPageFunc;
|
|
||||||
}
|
|
||||||
|
|
||||||
void FrontendOptionAddDynamic(const wchar* leftText, DrawFunc drawFunc, ButtonPressFunc buttonPressFunc, ReturnPrevPageFunc returnPrevPageFunc)
|
|
||||||
{
|
|
||||||
int8 screenOptionOrder = RegisterNewOption(currentMenu);
|
|
||||||
|
|
||||||
FrontendOption& option = customFrontendOptions[numCustomFrontendOptions - 1];
|
|
||||||
option.screen = currentMenu;
|
|
||||||
option.type = FEOPTION_DYNAMIC;
|
|
||||||
option.drawFunc = drawFunc;
|
|
||||||
option.buttonPressFunc = buttonPressFunc;
|
|
||||||
option.leftText = leftText;
|
|
||||||
option.onlyApplyOnEnter = false;
|
|
||||||
option.screenOptionOrder = screenOptionOrder;
|
|
||||||
option.returnPrevPageFunc = returnPrevPageFunc;
|
|
||||||
}
|
|
||||||
|
|
||||||
void FrontendOptionAddRedirect(const wchar* text, eMenuScreen to, int8 selectedOption, bool fadeIn)
|
|
||||||
{
|
|
||||||
int8 screenOptionOrder = RegisterNewOption(currentMenu);
|
|
||||||
|
|
||||||
FrontendOption &option = customFrontendOptions[numCustomFrontendOptions - 1];
|
|
||||||
option.screen = currentMenu;
|
|
||||||
option.type = FEOPTION_REDIRECT;
|
|
||||||
option.to = to;
|
|
||||||
option.option = selectedOption;
|
|
||||||
option.fadeIn = fadeIn;
|
|
||||||
option.leftText = text;
|
|
||||||
option.onlyApplyOnEnter = false;
|
|
||||||
option.screenOptionOrder = screenOptionOrder;
|
|
||||||
option.returnPrevPageFunc = nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
void FrontendOptionAddBackButton(const wchar* text, bool fadeIn)
|
|
||||||
{
|
|
||||||
int8 screenOptionOrder = RegisterNewOption(currentMenu);
|
|
||||||
|
|
||||||
FrontendOption& option = customFrontendOptions[numCustomFrontendOptions - 1];
|
|
||||||
option.screen = currentMenu;
|
|
||||||
option.type = FEOPTION_GOBACK;
|
|
||||||
option.fadeIn = fadeIn;
|
|
||||||
option.leftText = text;
|
|
||||||
option.onlyApplyOnEnter = false;
|
|
||||||
option.screenOptionOrder = screenOptionOrder;
|
|
||||||
option.returnPrevPageFunc = nil;
|
|
||||||
}
|
|
||||||
#endif
|
|
@ -1,87 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include "common.h"
|
|
||||||
|
|
||||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
|
||||||
#include "Frontend.h"
|
|
||||||
|
|
||||||
// Warning: All of the code relies on that you won't use more then NUM_MENUROWS(18) options on one page. Also congrats if you can make 18 options visible at once.
|
|
||||||
|
|
||||||
|
|
||||||
// Static/select: User allocates variable, passes it to function and it's set automatically from input among the strings given to function,
|
|
||||||
// then you can handle ChangeFunc and ReturnPrevPageFunc if needed.
|
|
||||||
//
|
|
||||||
// Dynamic: Function doesn't accept value pointer, user should do operations with handling ButtonPressFunc.
|
|
||||||
// Right-side text can be set via DrawFunc, which is called on every draw. ReturnPrevPageFunc is also here if needed.
|
|
||||||
|
|
||||||
#define FEOPTION_SELECT 0
|
|
||||||
#define FEOPTION_DYNAMIC 1
|
|
||||||
#define FEOPTION_REDIRECT 2
|
|
||||||
#define FEOPTION_GOBACK 3
|
|
||||||
|
|
||||||
#define FEOPTION_ACTION_LEFT 0
|
|
||||||
#define FEOPTION_ACTION_RIGHT 1
|
|
||||||
#define FEOPTION_ACTION_SELECT 2
|
|
||||||
#define FEOPTION_ACTION_FOCUSLOSS 3
|
|
||||||
|
|
||||||
void RemoveCustomFrontendOptions();
|
|
||||||
void CustomFrontendOptionsPopulate();
|
|
||||||
|
|
||||||
// for static and dynamic options
|
|
||||||
typedef void (*ReturnPrevPageFunc)();
|
|
||||||
|
|
||||||
// for static options
|
|
||||||
typedef void (*ChangeFunc)(int8 displayedValue); // called before updating the value
|
|
||||||
|
|
||||||
// for dynamic options
|
|
||||||
typedef wchar* (*DrawFunc)(bool* disabled); // should return pointer to right text. *disabled = true will make it dark yellow
|
|
||||||
typedef void (*ButtonPressFunc)(int8 action); // see FEOPTION_ACTIONs above
|
|
||||||
|
|
||||||
struct FrontendOption
|
|
||||||
{
|
|
||||||
int8 type;
|
|
||||||
int8 screenOptionOrder;
|
|
||||||
eMenuScreen screen;
|
|
||||||
const wchar* leftText;
|
|
||||||
ReturnPrevPageFunc returnPrevPageFunc;
|
|
||||||
|
|
||||||
union {
|
|
||||||
// Only for dynamic
|
|
||||||
struct {
|
|
||||||
DrawFunc drawFunc;
|
|
||||||
ButtonPressFunc buttonPressFunc;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Only for static/select
|
|
||||||
struct {
|
|
||||||
const wchar** rightTexts;
|
|
||||||
int8 numRightTexts;
|
|
||||||
int8 *value;
|
|
||||||
int8 displayedValue; // if onlyApplyOnEnter enabled
|
|
||||||
bool onlyApplyOnEnter;
|
|
||||||
ChangeFunc changeFunc;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Only for redirect
|
|
||||||
struct {
|
|
||||||
eMenuScreen to;
|
|
||||||
int8 option;
|
|
||||||
bool fadeIn;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
extern int numCustomFrontendOptions;
|
|
||||||
extern FrontendOption* customFrontendOptions;
|
|
||||||
|
|
||||||
// To be used in ButtonPressFunc / ChangeFunc(but that would be weird):
|
|
||||||
void ChangeScreen(eMenuScreen screen, int option = 0, bool fadeIn = true);
|
|
||||||
void GoBack(bool fadeIn = true);
|
|
||||||
|
|
||||||
// If option is positive number, all calls will increase it before using it (you can think it as cursor). -1 means before the back button, -2 is end of page
|
|
||||||
void FrontendOptionSetPosition(eMenuScreen screen, int8 option = -1);
|
|
||||||
|
|
||||||
void FrontendOptionAddSelect(const wchar* leftText, const wchar** rightTexts, int8 numRightTexts, int8 *var, bool onlyApplyOnEnter, ChangeFunc changeFunc, ReturnPrevPageFunc returnPrevPageFunc);
|
|
||||||
void FrontendOptionAddDynamic(const wchar* leftText, DrawFunc rightTextDrawFunc, ButtonPressFunc buttonPressFunc, ReturnPrevPageFunc returnPrevPageFunc);
|
|
||||||
void FrontendOptionAddRedirect(const wchar* text, eMenuScreen to, int8 selectedOption = 0, bool fadeIn = true);
|
|
||||||
void FrontendOptionAddBackButton(const wchar* text, bool fadeIn = true);
|
|
||||||
#endif
|
|
@ -4,6 +4,7 @@
|
|||||||
#include "TempColModels.h"
|
#include "TempColModels.h"
|
||||||
#include "ModelIndices.h"
|
#include "ModelIndices.h"
|
||||||
#include "ModelInfo.h"
|
#include "ModelInfo.h"
|
||||||
|
#include "Frontend.h"
|
||||||
|
|
||||||
CBaseModelInfo *CModelInfo::ms_modelInfoPtrs[MODELINFOSIZE];
|
CBaseModelInfo *CModelInfo::ms_modelInfoPtrs[MODELINFOSIZE];
|
||||||
|
|
||||||
@ -217,7 +218,10 @@ CModelInfo::IsBikeModel(int32 id)
|
|||||||
void
|
void
|
||||||
CModelInfo::RemoveColModelsFromOtherLevels(eLevelName level)
|
CModelInfo::RemoveColModelsFromOtherLevels(eLevelName level)
|
||||||
{
|
{
|
||||||
#ifndef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_LOW)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
int i;
|
int i;
|
||||||
CBaseModelInfo *mi;
|
CBaseModelInfo *mi;
|
||||||
CColModel *colmodel;
|
CColModel *colmodel;
|
||||||
@ -230,7 +234,7 @@ CModelInfo::RemoveColModelsFromOtherLevels(eLevelName level)
|
|||||||
colmodel->RemoveCollisionVolumes();
|
colmodel->RemoveCollisionVolumes();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -10232,7 +10232,11 @@ CPed::ProcessControl(void)
|
|||||||
CPed::Chat();
|
CPed::Chat();
|
||||||
break;
|
break;
|
||||||
case PED_AIM_GUN:
|
case PED_AIM_GUN:
|
||||||
if (m_pPointGunAt && m_pPointGunAt->IsPed() && ((CPed*)m_pPointGunAt)->CanSeeEntity(this, CAN_SEE_ENTITY_ANGLE_THRESHOLD * 2)) {
|
if (m_pPointGunAt && m_pPointGunAt->IsPed()
|
||||||
|
#ifdef FIX_BUGS
|
||||||
|
&& !GetWeapon()->IsTypeMelee()
|
||||||
|
#endif
|
||||||
|
&& ((CPed*)m_pPointGunAt)->CanSeeEntity(this, CAN_SEE_ENTITY_ANGLE_THRESHOLD * 2)) {
|
||||||
((CPed*)m_pPointGunAt)->ReactToPointGun(this);
|
((CPed*)m_pPointGunAt)->ReactToPointGun(this);
|
||||||
}
|
}
|
||||||
PointGunAt();
|
PointGunAt();
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include "Shadows.h"
|
#include "Shadows.h"
|
||||||
#include "PointLights.h"
|
#include "PointLights.h"
|
||||||
#include "Renderer.h"
|
#include "Renderer.h"
|
||||||
|
#include "Frontend.h"
|
||||||
#include "custompipes.h"
|
#include "custompipes.h"
|
||||||
|
|
||||||
bool gbShowPedRoadGroups;
|
bool gbShowPedRoadGroups;
|
||||||
@ -720,15 +721,18 @@ CRenderer::ScanWorld(void)
|
|||||||
ScanSectorPoly(poly, 3, ScanSectorList);
|
ScanSectorPoly(poly, 3, ScanSectorList);
|
||||||
}
|
}
|
||||||
#ifdef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_HIGH) {
|
||||||
ScanBigBuildingList(CWorld::GetBigBuildingList(LEVEL_INDUSTRIAL));
|
ScanBigBuildingList(CWorld::GetBigBuildingList(LEVEL_INDUSTRIAL));
|
||||||
ScanBigBuildingList(CWorld::GetBigBuildingList(LEVEL_COMMERCIAL));
|
ScanBigBuildingList(CWorld::GetBigBuildingList(LEVEL_COMMERCIAL));
|
||||||
ScanBigBuildingList(CWorld::GetBigBuildingList(LEVEL_SUBURBAN));
|
ScanBigBuildingList(CWorld::GetBigBuildingList(LEVEL_SUBURBAN));
|
||||||
#else
|
} else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
#ifdef FIX_BUGS
|
#ifdef FIX_BUGS
|
||||||
if (CCollision::ms_collisionInMemory != LEVEL_GENERIC)
|
if (CCollision::ms_collisionInMemory != LEVEL_GENERIC)
|
||||||
#endif
|
#endif
|
||||||
ScanBigBuildingList(CWorld::GetBigBuildingList(CCollision::ms_collisionInMemory));
|
ScanBigBuildingList(CWorld::GetBigBuildingList(CCollision::ms_collisionInMemory));
|
||||||
#endif
|
}
|
||||||
ScanBigBuildingList(CWorld::GetBigBuildingList(LEVEL_GENERIC));
|
ScanBigBuildingList(CWorld::GetBigBuildingList(LEVEL_GENERIC));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -562,17 +562,23 @@ RestoreForStartLoad()
|
|||||||
ReadDataFromBufferPointer(_buf, TheCamera.GetMatrix().GetPosition().x);
|
ReadDataFromBufferPointer(_buf, TheCamera.GetMatrix().GetPosition().x);
|
||||||
ReadDataFromBufferPointer(_buf, TheCamera.GetMatrix().GetPosition().y);
|
ReadDataFromBufferPointer(_buf, TheCamera.GetMatrix().GetPosition().y);
|
||||||
ReadDataFromBufferPointer(_buf, TheCamera.GetMatrix().GetPosition().z);
|
ReadDataFromBufferPointer(_buf, TheCamera.GetMatrix().GetPosition().z);
|
||||||
#ifndef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_LOW)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
CStreaming::RemoveUnusedBigBuildings(CGame::currLevel);
|
CStreaming::RemoveUnusedBigBuildings(CGame::currLevel);
|
||||||
CStreaming::RemoveUnusedBuildings(CGame::currLevel);
|
CStreaming::RemoveUnusedBuildings(CGame::currLevel);
|
||||||
#endif
|
}
|
||||||
CCollision::SortOutCollisionAfterLoad();
|
CCollision::SortOutCollisionAfterLoad();
|
||||||
#ifndef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
|
if (CMenuManager::m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_LOW)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
CStreaming::RequestBigBuildings(CGame::currLevel);
|
CStreaming::RequestBigBuildings(CGame::currLevel);
|
||||||
CStreaming::LoadAllRequestedModels(false);
|
CStreaming::LoadAllRequestedModels(false);
|
||||||
CStreaming::HaveAllBigBuildingsLoaded(CGame::currLevel);
|
CStreaming::HaveAllBigBuildingsLoaded(CGame::currLevel);
|
||||||
CGame::TidyUpMemory(true, false);
|
CGame::TidyUpMemory(true, false);
|
||||||
#endif
|
}
|
||||||
if (CloseFile(file)) {
|
if (CloseFile(file)) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
|
@ -181,6 +181,22 @@ psCameraShowRaster(RwCamera *camera)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*****************************************************************************
|
||||||
|
*/
|
||||||
|
RwImage *
|
||||||
|
psGrabScreen(RwCamera *pCamera)
|
||||||
|
{
|
||||||
|
#ifndef LIBRW
|
||||||
|
RwRaster *pRaster = RwCameraGetRaster(pCamera);
|
||||||
|
if (RwImage *pImage = RwImageCreate(pRaster->width, pRaster->height, 32)) {
|
||||||
|
RwImageAllocatePixels(pImage);
|
||||||
|
RwImageSetFromRaster(pImage, pRaster);
|
||||||
|
return pImage;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
|
@ -22,6 +22,7 @@ extern void psTerminate(void);
|
|||||||
|
|
||||||
extern void psCameraShowRaster(RwCamera *camera);
|
extern void psCameraShowRaster(RwCamera *camera);
|
||||||
extern RwBool psCameraBeginUpdate(RwCamera *camera);
|
extern RwBool psCameraBeginUpdate(RwCamera *camera);
|
||||||
|
extern RwImage *psGrabScreen(RwCamera *camera);
|
||||||
|
|
||||||
extern void psMouseSetPos(RwV2d *pos);
|
extern void psMouseSetPos(RwV2d *pos);
|
||||||
|
|
||||||
|
@ -50,6 +50,15 @@ RsCameraBeginUpdate(RwCamera * camera)
|
|||||||
return psCameraBeginUpdate(camera);
|
return psCameraBeginUpdate(camera);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
*****************************************************************************
|
||||||
|
*/
|
||||||
|
RwImage*
|
||||||
|
RsGrabScreen(RwCamera *camera)
|
||||||
|
{
|
||||||
|
return psGrabScreen(camera);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
*/
|
*/
|
||||||
|
@ -274,6 +274,9 @@ RsCameraBeginUpdate(RwCamera *camera);
|
|||||||
//extern void
|
//extern void
|
||||||
//RsMouseSetVisibility(RwBool visible);
|
//RsMouseSetVisibility(RwBool visible);
|
||||||
|
|
||||||
|
extern RwImage*
|
||||||
|
RsGrabScreen(RwCamera *camera);
|
||||||
|
|
||||||
extern void
|
extern void
|
||||||
RsMouseSetPos(RwV2d *pos);
|
RsMouseSetPos(RwV2d *pos);
|
||||||
|
|
||||||
|
@ -238,6 +238,23 @@ psCameraShowRaster(RwCamera *camera)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
*****************************************************************************
|
||||||
|
*/
|
||||||
|
RwImage *
|
||||||
|
psGrabScreen(RwCamera *pCamera)
|
||||||
|
{
|
||||||
|
#ifndef LIBRW
|
||||||
|
RwRaster *pRaster = RwCameraGetRaster(pCamera);
|
||||||
|
if (RwImage *pImage = RwImageCreate(pRaster->width, pRaster->height, 32)) {
|
||||||
|
RwImageAllocatePixels(pImage);
|
||||||
|
RwImageSetFromRaster(pImage, pRaster);
|
||||||
|
return pImage;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*****************************************************************************
|
*****************************************************************************
|
||||||
*/
|
*/
|
||||||
@ -1580,7 +1597,9 @@ psSelectDevice()
|
|||||||
PSGLOBAL(fullScreen) = FALSE;
|
PSGLOBAL(fullScreen) = FALSE;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
#ifdef MULTISAMPLING
|
||||||
|
RwD3D8EngineSetMultiSamplingLevels(1 << FrontEndMenuManager.m_nPrefsMSAALevel);
|
||||||
|
#endif
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7957,6 +7957,9 @@ POLISH
|
|||||||
RUSSIAN
|
RUSSIAN
|
||||||
|
|
||||||
{ new display menus }
|
{ new display menus }
|
||||||
|
[FET_GRA]
|
||||||
|
GRAPHICS SETUP
|
||||||
|
|
||||||
[FED_MIP]
|
[FED_MIP]
|
||||||
MIP MAPPING
|
MIP MAPPING
|
||||||
|
|
||||||
@ -7972,6 +7975,33 @@ BILINEAR
|
|||||||
[FED_TRL]
|
[FED_TRL]
|
||||||
TRILINEAR
|
TRILINEAR
|
||||||
|
|
||||||
|
[FED_WND]
|
||||||
|
WINDOWED
|
||||||
|
|
||||||
|
[FED_FLS]
|
||||||
|
FULLSCREEN
|
||||||
|
|
||||||
|
[FEM_CSB]
|
||||||
|
CUTSCENE BORDERS
|
||||||
|
|
||||||
|
[FEM_SCF]
|
||||||
|
SCREEN FORMAT
|
||||||
|
|
||||||
|
[FEM_ISL]
|
||||||
|
MAP MEMORY USAGE
|
||||||
|
|
||||||
|
[FEM_LOW]
|
||||||
|
LOW
|
||||||
|
|
||||||
|
[FEM_MED]
|
||||||
|
MEDIUM
|
||||||
|
|
||||||
|
[FEM_HIG]
|
||||||
|
HIGH
|
||||||
|
|
||||||
|
[FEM_2PR]
|
||||||
|
PS2 ALPHA TEST
|
||||||
|
|
||||||
{ end of file }
|
{ end of file }
|
||||||
|
|
||||||
[DUMMY]
|
[DUMMY]
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user