summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Chapman <dave@dchapman.com>2006-04-08 22:53:26 +0000
committerDave Chapman <dave@dchapman.com>2006-04-08 22:53:26 +0000
commit2ee282396f8cf740db8b3d513f2826503ed2cb00 (patch)
tree36b8e0d510e9d0658e5c40117e32288dd0cbe382
parent3817a3ecc4ee657f1a38bb3c39f53a345ded04cc (diff)
downloadrockbox-2ee282396f8cf740db8b3d513f2826503ed2cb00.zip
rockbox-2ee282396f8cf740db8b3d513f2826503ed2cb00.tar.gz
rockbox-2ee282396f8cf740db8b3d513f2826503ed2cb00.tar.bz2
rockbox-2ee282396f8cf740db8b3d513f2826503ed2cb00.tar.xz
Add a simple header and version number to the default.dfg config file
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9570 a1c6a512-1295-4272-9138-f99709370657
-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