diff options
Diffstat (limited to 'src/engine/shared/storage.cpp')
| -rw-r--r-- | src/engine/shared/storage.cpp | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/src/engine/shared/storage.cpp b/src/engine/shared/storage.cpp index db19fcdc..d6f83dc8 100644 --- a/src/engine/shared/storage.cpp +++ b/src/engine/shared/storage.cpp @@ -21,7 +21,7 @@ public: char m_aDatadir[MAX_PATH_LENGTH]; char m_aUserdir[MAX_PATH_LENGTH]; char m_aCurrentdir[MAX_PATH_LENGTH]; - + CStorage() { mem_zero(m_aaStoragePaths, sizeof(m_aaStoragePaths)); @@ -29,7 +29,7 @@ public: m_aDatadir[0] = 0; m_aUserdir[0] = 0; } - + int Init(const char *pApplicationName, int NumArgs, const char **ppArguments) { // get userdir @@ -85,7 +85,7 @@ public: str_append(aBuffer, "/storage.cfg", sizeof(aBuffer)); File = io_open(aBuffer, IOFLAG_READ); } - + if(Pos >= MAX_PATH_LENGTH || !File) { dbg_msg("storage", "couldn't open storage.cfg"); @@ -151,7 +151,7 @@ public: } } } - + void FindDatadir(const char *pArgv0) { // 1) use data-dir in PWD if present @@ -160,35 +160,35 @@ public: str_copy(m_aDatadir, "data", sizeof(m_aDatadir)); return; } - + // 2) use compiled-in data-dir if present if(fs_is_dir(DATA_DIR "/mapres")) { str_copy(m_aDatadir, DATA_DIR, sizeof(m_aDatadir)); return; } - + // 3) check for usable path in argv[0] { unsigned int Pos = ~0U; for(unsigned i = 0; pArgv0[i]; i++) if(pArgv0[i] == '/' || pArgv0[i] == '\\') Pos = i; - + if(Pos < MAX_PATH_LENGTH) { char aBaseDir[MAX_PATH_LENGTH]; str_copy(aBaseDir, pArgv0, Pos+1); str_format(m_aDatadir, sizeof(m_aDatadir), "%s/data", aBaseDir); str_append(aBaseDir, "/data/mapres", sizeof(aBaseDir)); - + if(fs_is_dir(aBaseDir)) return; else m_aDatadir[0] = 0; } } - + #if defined(CONF_FAMILY_UNIX) // 4) check for all default locations { @@ -200,7 +200,7 @@ public: "/opt/teeworlds/data" }; const int DirsCount = sizeof(aDirs) / sizeof(aDirs[0]); - + int i; for (i = 0; i < DirsCount; i++) { @@ -214,7 +214,7 @@ public: } } #endif - + // no data-dir found dbg_msg("storage", "warning no data directory found"); } @@ -240,7 +240,7 @@ public: str_format(pBuffer, BufferSize, "%s%s%s", m_aaStoragePaths[Type], !m_aaStoragePaths[Type][0] ? "" : "/", pDir); return pBuffer; } - + virtual IOHANDLE OpenFile(const char *pFilename, int Flags, int Type, char *pBuffer = 0, int BufferSize = 0) { char aBuffer[MAX_PATH_LENGTH]; @@ -249,7 +249,7 @@ public: pBuffer = aBuffer; BufferSize = sizeof(aBuffer); } - + if(Flags&IOFLAG_WRITE) { return io_open(GetPath(TYPE_SAVE, pFilename, pBuffer, BufferSize), Flags); @@ -276,11 +276,11 @@ public: return Handle; } } - + pBuffer[0] = 0; - return 0; + return 0; } - + struct CFindCBData { CStorage *pStorage; @@ -321,7 +321,7 @@ public: { if(BufferSize < 1) return false; - + pBuffer[0] = 0; char aBuf[MAX_PATH_LENGTH]; CFindCBData Data; |