mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-12-22 17:49:43 +01:00
Add -assets option to specify data.zip (#139)
This is useful for distributions, which may not want to put data.zip in the same directory as the binary. This can't be distribution-specific due to the license ("Altered source/binary versions must be plainly marked as such, and must not be misrepresented as being the original software.").
This commit is contained in:
parent
8260bb2696
commit
45491a03f3
3 changed files with 22 additions and 10 deletions
|
@ -39,7 +39,7 @@ void PLATFORM_getOSDirectory(char* output);
|
||||||
void PLATFORM_migrateSaveData(char* output);
|
void PLATFORM_migrateSaveData(char* output);
|
||||||
void PLATFORM_copyFile(const char *oldLocation, const char *newLocation);
|
void PLATFORM_copyFile(const char *oldLocation, const char *newLocation);
|
||||||
|
|
||||||
int FILESYSTEM_init(char *argvZero)
|
int FILESYSTEM_init(char *argvZero, char *assetsPath)
|
||||||
{
|
{
|
||||||
char output[MAX_PATH];
|
char output[MAX_PATH];
|
||||||
int mkdirResult;
|
int mkdirResult;
|
||||||
|
@ -79,8 +79,12 @@ int FILESYSTEM_init(char *argvZero)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Mount the stock content last */
|
/* Mount the stock content last */
|
||||||
strcpy(output, PHYSFS_getBaseDir());
|
if (assetsPath) {
|
||||||
strcat(output, "data.zip");
|
strcpy(output, assetsPath);
|
||||||
|
} else {
|
||||||
|
strcpy(output, PHYSFS_getBaseDir());
|
||||||
|
strcat(output, "data.zip");
|
||||||
|
}
|
||||||
if (!PHYSFS_mount(output, NULL, 1))
|
if (!PHYSFS_mount(output, NULL, 1))
|
||||||
{
|
{
|
||||||
puts("Error: data.zip missing!");
|
puts("Error: data.zip missing!");
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
#include "tinyxml.h"
|
#include "tinyxml.h"
|
||||||
|
|
||||||
int FILESYSTEM_init(char *argvZero);
|
int FILESYSTEM_init(char *argvZero, char* assetsPath);
|
||||||
void FILESYSTEM_deinit();
|
void FILESYSTEM_deinit();
|
||||||
|
|
||||||
char *FILESYSTEM_getUserSaveDirectory();
|
char *FILESYSTEM_getUserSaveDirectory();
|
||||||
|
|
|
@ -44,10 +44,6 @@ entityclass obj;
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
if(!FILESYSTEM_init(argv[0]))
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
SDL_Init(
|
SDL_Init(
|
||||||
SDL_INIT_VIDEO |
|
SDL_INIT_VIDEO |
|
||||||
SDL_INIT_AUDIO |
|
SDL_INIT_AUDIO |
|
||||||
|
@ -55,9 +51,21 @@ int main(int argc, char *argv[])
|
||||||
SDL_INIT_GAMECONTROLLER
|
SDL_INIT_GAMECONTROLLER
|
||||||
);
|
);
|
||||||
|
|
||||||
if (argc > 2 && strcmp(argv[1], "-renderer") == 0)
|
char* assets = NULL;
|
||||||
|
|
||||||
|
for (int i = 1; i < argc; ++i) {
|
||||||
|
if (strcmp(argv[i], "-renderer") == 0) {
|
||||||
|
++i;
|
||||||
|
SDL_SetHintWithPriority(SDL_HINT_RENDER_DRIVER, argv[i], SDL_HINT_OVERRIDE);
|
||||||
|
} else if (strcmp(argv[i], "-assets") == 0) {
|
||||||
|
++i;
|
||||||
|
assets = argv[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!FILESYSTEM_init(argv[0], assets))
|
||||||
{
|
{
|
||||||
SDL_SetHintWithPriority(SDL_HINT_RENDER_DRIVER, argv[2], SDL_HINT_OVERRIDE);
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
NETWORK_init();
|
NETWORK_init();
|
||||||
|
|
Loading…
Reference in a new issue