Files
GTASource/game/vfx/VfxSettings.cpp
expvintl 419f2e4752 init
2025-02-23 17:40:52 +08:00

134 lines
3.3 KiB
C++

///////////////////////////////////////////////////////////////////////////////
//
// FILE: VfxHelper.cpp
// BY : Mark Nicholson
// FOR : Rockstar North
// ON : 12 Jun 2008
// WHAT:
//
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// INCLUDES
///////////////////////////////////////////////////////////////////////////////
#include "VfxSettings.h"
// rage
#include "file/token.h"
// framework
#include "vfx/channel.h"
// game
#include "Core/Game.h"
#include "Scene/DataFileMgr.h"
///////////////////////////////////////////////////////////////////////////////
// OPTIMISATIONS - TURN ON IN OPTIMISATIONS.H
///////////////////////////////////////////////////////////////////////////////
VFX_PTFX_OPTIMISATIONS()
VFX_DECAL_OPTIMISATIONS()
VFX_SYSTEM_OPTIMISATIONS()
///////////////////////////////////////////////////////////////////////////////
// DEFINES
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// GLOBAL VARIABLES
///////////////////////////////////////////////////////////////////////////////
CVfxSettings g_vfxSettings;
///////////////////////////////////////////////////////////////////////////////
// CODE
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// CLASS CVfxSettings
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Init
///////////////////////////////////////////////////////////////////////////////
bool CVfxSettings::Init (unsigned initMode)
{
if (initMode==INIT_AFTER_MAP_LOADED)
{
// init the settings variables
// strcpy(m_ptfxNameWindDebris, "");
m_ptfxAirResistance = 1.0f;
m_genWaterLevel = 0.0f;
m_genHorizonHeight = 0.0f;
// get the settings file name
const char* pFilename = NULL;
const CDataFileMgr::DataFile* pData = DATAFILEMGR.GetFirstFile(CDataFileMgr::VFX_SETTINGS_FILE);
while (DATAFILEMGR.IsValid(pData))
{
pFilename = pData->m_filename;
pData = DATAFILEMGR.GetNextFile(pData);
}
if (pFilename==NULL)
{
return false;
}
// open the settings file
fiStream* stream = fiStream::Open(pFilename, true);
if (stream)
{
// initialise the tokens
fiAsciiTokenizer token;
token.Init("vfxsettings", stream);
char settingName[128];
// char settingVal[128];
while (token.GetToken(settingName, 128)>0)
{
if(strcmp(settingName, "PTFX_AIR_RESISTANCE")==0)
{
m_ptfxAirResistance = token.GetFloat();
}
else if(strcmp(settingName, "GEN_WATERLEVEL")==0)
{
m_genWaterLevel = token.GetFloat();
}
else if(strcmp(settingName, "GEN_HORIZONHEIGHT")==0)
{
m_genHorizonHeight = token.GetFloat();
}
// else if (strcmp(settingName, "PTFXNAME_WINDDEBRIS")==0)
// {
// token.GetToken(settingVal, 32);
// strcpy(m_ptfxNameWindDebris, settingVal);
// }
else
{
vfxAssertf(0, "invalid setting name (%s) found in %s", settingName, pFilename);
}
}
stream->Close();
}
}
return true;
}