Skip to content

Commit

Permalink
added base path aommand parsing;
Browse files Browse the repository at this point in the history
added getter for base path Engine_GetBasePath();
Engine_GetLevelScriptName(...) function uses base_path;
TODO: update ALL file manipulations, include scripts;
  • Loading branch information
TeslaRus committed Oct 9, 2016
1 parent f01cbc6 commit 82adcad
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 3 deletions.
31 changes: 28 additions & 3 deletions src/engine.cpp
Expand Up @@ -54,6 +54,7 @@ static SDL_GLContext sdl_gl_context = 0;
static ALCdevice *al_device = NULL;
static ALCcontext *al_context = NULL;

static char base_path[1024] = {0};
static volatile int engine_done = 0;
static int engine_set_zero_time = 0;
float time_scale = 1.0f;
Expand Down Expand Up @@ -120,11 +121,28 @@ void Engine_Start(int argc, char **argv)
}
++i;
}
else if(0 == strncmp(argv[i], "-data_path", 10))
else if(0 == strncmp(argv[i], "-base_path", 10))
{
if(i + 1 < argc)
{
printf("data path = \"%s\"\n", argv[i + 1]);
strncpy(base_path, argv[i + 1], sizeof(base_path) - 1);
if(base_path[0])
{
char *ch = base_path;
for(; *ch; ++ch)
{
if(*ch == '\\')
{
*ch = '/';
}
}
if(*(ch - 1) != '/')
{
*ch = '/';
++ch;
*ch = 0;
}
}
}
++i;
}
Expand All @@ -133,7 +151,7 @@ void Engine_Start(int argc, char **argv)
puts("usage:");
puts("-config \"path_to_config_file\"");
puts("-autoexec \"path_to_autoexec_file\"");
puts("-base_path \"path_to_base_folder_location --NOT IMPLEMENTED-- (contains data, resource, save and script folders)\"");
puts("-base_path \"path_to_base_folder_location (contains data, resource, save and script folders)\"");
exit(0);
}
}
Expand Down Expand Up @@ -234,6 +252,12 @@ void Engine_Shutdown(int val)
}


const char *Engine_GetBasePath()
{
return base_path;
}


void Engine_SetDone()
{
engine_done = 1;
Expand Down Expand Up @@ -1045,6 +1069,7 @@ void Engine_GetLevelScriptName(int game_version, char *name, const char *postfix

name[0] = 0;

strncat(name, base_path, buf_size);
strncat(name, "scripts/level/", buf_size);

if(game_version < TR_II)
Expand Down
1 change: 1 addition & 0 deletions src/engine.h
Expand Up @@ -116,6 +116,7 @@ engine_container_p Container_Create();

void Engine_Start(int argc, char **argv);
void Engine_Shutdown(int val) __attribute__((noreturn));
const char *Engine_GetBasePath();
void Engine_SetDone();
void Engine_LoadConfig(const char *filename);
void Engine_SaveConfig(const char *filename);
Expand Down

0 comments on commit 82adcad

Please sign in to comment.