ref: dc18cac1b8f7bff9b9f319cedab5d7995eba68b6
parent: 567d1451f21ba75d03cb73afed950ea89aad86c5
author: Fabien Sanglard <fabien.sanglard@gmail.com>
date: Wed Dec 19 14:09:45 EST 2012
Made game_dir encapsulated to filesystem module.
--- a/Engine/src/filesystem.c
+++ b/Engine/src/filesystem.c
@@ -13,6 +13,8 @@
#include "pragmas.h"
#include "global.h"
+char game_dir[512];
+
uint8_t toupperlookup[256] =
{
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
@@ -643,3 +645,17 @@
return result;
}
+
+
+void setGameDir(char* gameDir){
+ if (gameDir == NULL)
+ return;
+
+ stpncpy(game_dir,gameDir,sizeof(game_dir));
+}
+
+char* getGameDir(void){
+ return game_dir;
+}
+
+
--- a/Engine/src/filesystem.h
+++ b/Engine/src/filesystem.h
@@ -33,7 +33,9 @@
int32_t compress(uint8_t *lzwinbuf, int32_t uncompleng, uint8_t *lzwoutbuf);
int32_t uncompress(uint8_t *lzwinbuf, int32_t compleng, uint8_t *lzwoutbuf);
-extern char game_dir[512];
+extern char* getGameDir(void);
+extern void setGameDir(char* gameDir);
+
extern int32_t TCkopen4load(const char *filename, int readfromGRP);
#ifdef __APPLE__
--- a/Engine/src/macos_compat.h
+++ b/Engine/src/macos_compat.h
@@ -55,6 +55,6 @@
#include <sys/uio.h>
#include <unistd.h>
#include <fcntl.h>
-
+#include <string.h>
#endif
--- a/Game/src/config.c
+++ b/Game/src/config.c
@@ -101,11 +101,11 @@
setupfilename[0] = '\0';
// Are we trying to load a mod?
- if(game_dir[0] != '\0'){
+ if(getGameDir()[0] != '\0'){
FILE *fp = NULL;
//Yes
- sprintf(setupfilename, "%s\\%s", game_dir, SETUPFILENAME);
+ sprintf(setupfilename, "%s\\%s", getGameDir(), SETUPFILENAME);
// let's make sure it's actually there
fp = fopen(setupfilename, "r");
@@ -553,10 +553,10 @@
fn[4] = i+'0';
// Are we loading a TC?
- if(game_dir[0] != '\0')
+ if(getGameDir()[0] != '\0')
{
// Yes
- sprintf(fullpathsavefilename, "%s\\%s", game_dir, fn);
+ sprintf(fullpathsavefilename, "%s\\%s", getGameDir(), fn);
}
else
{
--- a/Game/src/duke3d.h
+++ b/Game/src/duke3d.h
@@ -92,7 +92,7 @@
extern uint8_t conVersion;
extern uint8_t grpVersion;
-extern int32_t* groupefil_crc32;
+extern int32_t groupefil_crc32[4];
#define RANCID_ID 1
#define XDUKE_ID 2
@@ -418,7 +418,7 @@
// FIX_00015: Backward compliance with older demos (down to demos v27, 28, 116 and 117 only)
uint8_t playing_demo_rev;
- uint32_t* groupefil_crc32[MAXPLAYERS];
+ uint32_t groupefil_crc32[MAXPLAYERS][4];
uint16_t conSize[MAXPLAYERS];
#ifdef CHECK_XDUKE_REV
--- a/Game/src/game.c
+++ b/Game/src/game.c
@@ -7147,7 +7147,7 @@
// Get the file name
i++;
c = argv[i];
- strncpy(game_dir, c, 512);
+ setGameDir(c);
// skip over the file name now that we have it.
i++;
@@ -7210,8 +7210,8 @@
c++;
if(*c)
{
- if(game_dir[0] != '\0'){
- sprintf(confilename, "%s\\%s", game_dir, c);
+ if(getGameDir()[0] != '\0'){
+ sprintf(confilename, "%s\\%s", getGameDir(), c);
}
else{
strcpy(confilename,c);
@@ -7234,8 +7234,8 @@
strcat(c,".grp"); // crap!
}
- if(game_dir[0] != '\0'){
- sprintf(fullpathgrpfile, "%s\\%s", game_dir, c);
+ if(getGameDir()[0] != '\0'){
+ sprintf(fullpathgrpfile, "%s\\%s", getGameDir(), c);
}
else{
strcpy(fullpathgrpfile, c);
@@ -7732,14 +7732,8 @@
puts("Loading art header.");
- if(game_dir[0] != '\0')
- {
- loadpics("tiles000.art", game_dir);
- }
- else
- {
- loadpics("tiles000.art", "\0");
- }
+ loadpics("tiles000.art", "\0");
+
readsavenames();
@@ -8036,9 +8030,9 @@
directoryToScan[0] = '\0';
- if (game_dir[0] != '\0')
+ if (getGameDir()[0] != '\0')
{
- strcat(directoryToScan,game_dir);
+ strcat(directoryToScan,getGameDir());
if (directoryToScan[strlen(directoryToScan)-1] != '/')
strcat(directoryToScan,"/");
}
@@ -8690,9 +8684,9 @@
ver = BYTEVERSION;
// Are we loading a TC?
- if(game_dir[0] != '\0'){
+ if(getGameDir()[0] != '\0'){
// Yes
- sprintf(fullpathdemofilename, "%s\\%s", game_dir, d);
+ sprintf(fullpathdemofilename, "%s\\%s", getGameDir(), d);
}
else{
// No
@@ -10608,11 +10602,11 @@
// If this is a TC save it to the TC's directory
- if(game_dir[0] != '\0')
+ if(getGameDir()[0] != '\0')
{
- sprintf(szFilename, "%s\\%s", game_dir, SCREENSHOTPATH);
+ sprintf(szFilename, "%s\\%s", getGameDir(), SCREENSHOTPATH);
mkdir(szFilename);
- sprintf(szFilename, "%s\\%s\\%s", game_dir, SCREENSHOTPATH, tempbuf);
+ sprintf(szFilename, "%s\\%s\\%s", getGameDir(), SCREENSHOTPATH, tempbuf);
}
// otherwise let's save it to the root.
else
--- a/Game/src/menues.c
+++ b/Game/src/menues.c
@@ -582,10 +582,10 @@
// Are we loading a TC?
- if(game_dir[0] != '\0')
+ if(getGameDir()[0] != '\0')
{
// Yes
- sprintf(fullpathsavefilename, "%s\\%s", game_dir, fnptr);
+ sprintf(fullpathsavefilename, "%s\\%s", getGameDir(), fnptr);
}
else
{
--- a/Game/src/premap.c
+++ b/Game/src/premap.c
@@ -1481,7 +1481,7 @@
{
if( boardfilename[0] != 0 && ud.m_level_number == 7 && ud.m_volume_number == 0 )
{
- sprintf(fulllevelfilename, "%s\\%s", game_dir, boardfilename);
+ sprintf(fulllevelfilename, "%s\\%s", getGameDir(), boardfilename);
if(!SafeFileExists(fulllevelfilename))
{
sprintf(fulllevelfilename, "%s", boardfilename);
@@ -1495,7 +1495,7 @@
}
else
{
- sprintf(fulllevelfilename, "%s\\%s", game_dir, level_file_names[ (ud.volume_number*11)+ud.level_number]);
+ sprintf(fulllevelfilename, "%s\\%s", getGameDir(), level_file_names[ (ud.volume_number*11)+ud.level_number]);
if(!SafeFileExists(fulllevelfilename))
{
sprintf(fulllevelfilename, "%s", level_file_names[ (ud.volume_number*11)+ud.level_number]);