load memory files without modname

This commit is contained in:
jeefo 2016-03-13 21:12:09 +03:00
commit 222195cc30
4 changed files with 36 additions and 18 deletions

View file

@ -1425,8 +1425,8 @@ public:
void SetGoalVisited (int index);
void ClearVisitedGoals (void);
const char *GetDataDir (void);
String CheckSubfolderFile (void);
const char *GetDataDir (bool isMemoryFile = false);
const char *GetFileName (bool isMemoryFile = false);
void SetBombPosition (bool shouldReset = false);
inline const Vector &GetBombPosition (void) { return m_foundBombOrigin; }

View file

@ -116,7 +116,7 @@ void Engine::ClientPrintf (edict_t *ent, const char *fmt, ...)
vsnprintf (string, SIZEOF_CHAR (string), TraslateMessage (fmt), ap);
va_end (ap);
if (IsNullEntity (ent) || ent == g_hostEntity)
if (IsDedicatedServer () || IsNullEntity (ent) || ent == g_hostEntity)
{
Printf (string);
return;

View file

@ -462,24 +462,35 @@ bool OpenConfig (const char *fileName, const char *errorIfNotExists, MemoryFile
if (outFile->IsValid ())
outFile->Close ();
// save config dir
const char *configDir = "addons/yapb/conf";
if (languageDependant)
{
const char *mod = engine.GetModName ();
extern ConVar yb_language;
if (strcmp (fileName, "lang.cfg") == 0 && strcmp (yb_language.GetString (), "en") == 0)
return false;
const char *languageDependantConfigFile = FormatBuffer ("%s/addons/yapb/conf/lang/%s_%s", mod, yb_language.GetString (), fileName);
const char *langConfig = FormatBuffer ("%s/lang/%s_%s", configDir, yb_language.GetString (), fileName);
// check file existence
int size = 0;
unsigned char *buffer = NULL;
// check is file is exists for this language
if (File::Accessible (languageDependantConfigFile))
outFile->Open (languageDependantConfigFile);
else
outFile->Open (FormatBuffer ("%s/addons/yapb/conf/lang/en_%s", mod, fileName));
if ((buffer = MemoryFile::Loader (langConfig, &size)) != NULL)
{
MemoryFile::Unloader (buffer);
// unload and reopen file using MemoryFile
outFile->Open (langConfig);
}
else
outFile->Open (FormatBuffer ("%s/addons/yapb/conf/%s", engine.GetModName (), fileName));
outFile->Open (FormatBuffer ("%s/lang/en_%s", configDir, fileName));
}
else
outFile->Open (FormatBuffer ("%s/%s", configDir, fileName));
if (!outFile->IsValid ())
{

View file

@ -1064,7 +1064,7 @@ bool Waypoint::Load (void)
return false;
}
MemoryFile fp (CheckSubfolderFile ());
MemoryFile fp (GetFileName (true));
WaypointHeader header;
memset (&header, 0, sizeof (header));
@ -1242,7 +1242,7 @@ void Waypoint::Save (void)
header.fileVersion = FV_WAYPOINT;
header.pointNumber = g_numWaypoints;
File fp (CheckSubfolderFile (), "wb");
File fp (GetFileName (), "wb");
// file was opened
if (fp.IsValid ())
@ -1260,19 +1260,19 @@ void Waypoint::Save (void)
AddLogEntry (true, LL_ERROR, "Error writing '%s.pwf' waypoint file", engine.GetMapName ());
}
String Waypoint::CheckSubfolderFile (void)
const char *Waypoint::GetFileName (bool isMemoryFile)
{
String returnFile = "";
if (!IsNullString (yb_wptsubfolder.GetString ()))
returnFile += (String (yb_wptsubfolder.GetString ()) + "/");
returnFile = FormatBuffer ("%s%s%s.pwf", GetDataDir (), returnFile.GetBuffer (), engine.GetMapName ());
returnFile = FormatBuffer ("%s%s%s.pwf", GetDataDir (isMemoryFile), returnFile.GetBuffer (), engine.GetMapName ());
if (File::Accessible (returnFile))
return returnFile;
return returnFile.GetBuffer ();
return FormatBuffer ("%s%s.pwf", GetDataDir (), engine.GetMapName ());
return FormatBuffer ("%s%s.pwf", GetDataDir (isMemoryFile), engine.GetMapName ());
}
float Waypoint::GetTravelTime (float maxSpeed, const Vector &src, const Vector &origin)
@ -2420,9 +2420,16 @@ void Waypoint::EraseFromHardDisk (void)
Init (); // reintialize points
}
const char *Waypoint::GetDataDir (void)
const char *Waypoint::GetDataDir (bool isMemoryFile)
{
return FormatBuffer ("%s/addons/yapb/data/", engine.GetModName ());
static char buffer[256];
if (isMemoryFile)
sprintf (buffer, "addons/yapb/data/");
else
sprintf (buffer, "%s/addons/yapb/data/", engine.GetModName ());
return &buffer[0];
}
void Waypoint::SetBombPosition (bool shouldReset)
@ -2625,7 +2632,7 @@ WaypointDownloadError Waypoint::RequestWaypoint (void)
recvPosition++;
}
File fp (waypoints.CheckSubfolderFile (), "wb");
File fp (waypoints.GetFileName (), "wb");
if (!fp.IsValid ())
{