summaryrefslogtreecommitdiff
path: root/apps/plugins/doom
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/doom')
-rw-r--r--apps/plugins/doom/m_misc.c21
-rw-r--r--apps/plugins/doom/rockmacros.h9
2 files changed, 29 insertions, 1 deletions
diff --git a/apps/plugins/doom/m_misc.c b/apps/plugins/doom/m_misc.c
index 43e2a38..d3e6098 100644
--- a/apps/plugins/doom/m_misc.c
+++ b/apps/plugins/doom/m_misc.c
@@ -797,11 +797,16 @@ int numdefaults;
void M_SaveDefaults (void)
{
int i,fd;
+ uint32_t magic = DOOM_CONFIG_MAGIC;
+ uint32_t ver = DOOM_CONFIG_VERSION;
fd = open (GAMEBASE"default.dfg", O_WRONLY|O_CREAT|O_TRUNC);
if (fd<0)
return; // can't write the file, but don't complain
+ write(fd,&magic,sizeof(magic));
+ write(fd,&ver,sizeof(ver));
+
for (i=0 ; i<numdefaults ; i++)
if(defaults[i].location.pi)
write(fd,defaults[i].location.pi, sizeof(int));
@@ -833,7 +838,9 @@ struct default_s *M_LookupDefault(const char *name)
void M_LoadDefaults (void)
{
- int i;
+ int i;
+ uint32_t magic = 0;
+ uint32_t ver;
int fd;
// set everything to base values
@@ -849,6 +856,18 @@ void M_LoadDefaults (void)
if (fd<0)
return; // don't have anything to read
+ read(fd,&magic,sizeof(magic));
+ if (magic != DOOM_CONFIG_MAGIC) {
+ close(fd);
+ return;
+ }
+
+ read(fd,&ver,sizeof(ver));
+ if (ver != DOOM_CONFIG_VERSION) {
+ close(fd);
+ return;
+ }
+
for (i=0 ; i<numdefaults ; i++)
if(defaults[i].location.pi)
read(fd,defaults[i].location.pi, sizeof(int));
diff --git a/apps/plugins/doom/rockmacros.h b/apps/plugins/doom/rockmacros.h
index 8f028d4..047fa24 100644
--- a/apps/plugins/doom/rockmacros.h
+++ b/apps/plugins/doom/rockmacros.h
@@ -91,4 +91,13 @@ inline void* memcpy(void* dst, const void* src, size_t size);
#define NO_PREDEFINED_LUMPS
#define TABLES_AS_LUMPS // This frees up alot of space in the plugin buffer
//#define FANCY_MENU // This is a call to allow load_main_backdrop to run in doom
+
+#define MAKE_FOURCC(a,b,c,d) (uint32_t)((((a)<<24)|((b)<<16)|((c)<<8)|(d)))
+
+/* Config file magic - increment the version number whenever the settings
+ structure changes.
+ */
+#define DOOM_CONFIG_MAGIC MAKE_FOURCC('D','O','O','M')
+#define DOOM_CONFIG_VERSION 1
+
#endif