1
0
Fork 0
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:
leo60228 2020-02-02 18:28:26 -05:00 committed by GitHub
parent 8260bb2696
commit 45491a03f3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 10 deletions

View file

@ -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 */
if (assetsPath) {
strcpy(output, assetsPath);
} else {
strcpy(output, PHYSFS_getBaseDir()); strcpy(output, PHYSFS_getBaseDir());
strcat(output, "data.zip"); 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!");

View file

@ -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();

View file

@ -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();