All file access involving resource indices to operate on or create subtrees

git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@3105 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
mcmartin
2009-01-03 22:16:29 +00:00
parent a0a5815884
commit a53862ce81
8 changed files with 47 additions and 27 deletions
+7 -3
View File
@@ -150,7 +150,7 @@ initKeyConfig (void)
int i;
/* First, load in the menu keys */
res_LoadFilename (contentDir, "menu.key");
res_LoadFilename (contentDir, "menu.key", NULL);
for (i = 0; i < NUM_MENU_KEYS; i++)
{
if (!menu_res_names[i])
@@ -178,7 +178,9 @@ initKeyConfig (void)
}
}
res_LoadFile (fp);
res_LoadFile (fp, NULL);
// TODO RES070
// res_LoadFile (fp, "keys.");
res_CloseResFile (fp);
register_flight_controls ();
@@ -457,7 +459,9 @@ SaveKeyConfiguration (uio_DirHandle *path, const char *fname)
f = res_OpenResFile (path, fname, "wb");
if (f)
{
res_SaveFile (f, "keys.");
res_SaveFile (f, "keys.", FALSE);
// TODO RES070
// res_SaveFile (f, "keys.", TRUE);
res_CloseResFile (f);
}
}
+4 -4
View File
@@ -99,11 +99,11 @@ extern DIRENTRY_REF LoadDirEntryTable (uio_DirHandle *dirHandle,
/* Key-Value resources */
void res_ClearTables (void);
void res_LoadFilename (uio_DirHandle *path, const char *fname);
void res_SaveFilename (uio_DirHandle *path, const char *fname, const char *root);
void res_LoadFilename (uio_DirHandle *path, const char *fname, const char *prefix);
void res_SaveFilename (uio_DirHandle *path, const char *fname, const char *root, BOOLEAN strip_root);
void res_LoadFile (uio_Stream *fname);
void res_SaveFile (uio_Stream *fname, const char *root);
void res_LoadFile (uio_Stream *fname, const char *prefix);
void res_SaveFile (uio_Stream *fname, const char *root, BOOLEAN strip_root);
BOOLEAN res_HasKey (const char *key);
+12 -8
View File
@@ -178,7 +178,7 @@ res_HasKey (const char *key)
}
void
res_LoadFile (uio_Stream *s)
res_LoadFile (uio_Stream *s, const char *prefix)
{
check_map_init ();
@@ -187,11 +187,11 @@ res_LoadFile (uio_Stream *s)
return;
}
PropFile_from_file (s, res_PutString);
PropFile_from_file (s, res_PutString, prefix);
}
void
res_LoadFilename (uio_DirHandle *path, const char *fname)
res_LoadFilename (uio_DirHandle *path, const char *fname, const char *prefix)
{
check_map_init ();
@@ -200,11 +200,11 @@ res_LoadFilename (uio_DirHandle *path, const char *fname)
return;
}
PropFile_from_filename (path, fname, res_PutString);
PropFile_from_filename (path, fname, res_PutString, prefix);
}
void
res_SaveFile (uio_Stream *f, const char *prefix)
res_SaveFile (uio_Stream *f, const char *prefix, BOOLEAN strip_root)
{
CharHashTable_Iterator *i;
int prefix_len = 0;
@@ -220,7 +220,11 @@ res_SaveFile (uio_Stream *f, const char *prefix)
const char *key = CharHashTable_iteratorKey (i);
const char *value = (const char *)CharHashTable_iteratorValue (i);
if (!prefix || !strncmp (prefix, key, prefix_len)) {
WriteResFile (key, 1, strlen (key), f);
if (prefix && strip_root) {
WriteResFile (key+prefix_len, 1, strlen (key) - prefix_len, f);
} else {
WriteResFile (key, 1, strlen (key), f);
}
PutResFileChar(' ', f);
PutResFileChar('=', f);
PutResFileChar(' ', f);
@@ -233,14 +237,14 @@ res_SaveFile (uio_Stream *f, const char *prefix)
}
void
res_SaveFilename (uio_DirHandle *path, const char *fname, const char *prefix)
res_SaveFilename (uio_DirHandle *path, const char *fname, const char *prefix, BOOLEAN strip_root)
{
uio_Stream *f;
check_map_init ();
f = res_OpenResFile (path, fname, "wb");
if (f) {
res_SaveFile (f, prefix);
res_SaveFile (f, prefix, strip_root);
res_CloseResFile (f);
}
}
+13 -6
View File
@@ -24,7 +24,7 @@
#include "reslib.h"
void
PropFile_from_string (char *d, PROPERTY_HANDLER handler)
PropFile_from_string (char *d, PROPERTY_HANDLER handler, const char *prefix)
{
int len, i;
@@ -84,12 +84,19 @@ PropFile_from_string (char *d, PROPERTY_HANDLER handler)
make a new map entry. */
d[key_end] = '\0';
d[value_end] = '\0';
handler (d+key_start, d+value_start);
if (prefix) {
char buf[256];
snprintf(buf, 255, "%s%s", prefix, d+key_start);
buf[255]=0;
handler(buf, d+value_start);
} else {
handler (d+key_start, d+value_start);
}
}
}
void
PropFile_from_file (uio_Stream *f, PROPERTY_HANDLER handler)
PropFile_from_file (uio_Stream *f, PROPERTY_HANDLER handler, const char *prefix)
{
long flen;
char *data;
@@ -104,17 +111,17 @@ PropFile_from_file (uio_Stream *f, PROPERTY_HANDLER handler)
flen = ReadResFile (data, 1, flen, f);
data[flen] = '\0';
PropFile_from_string (data, handler);
PropFile_from_string (data, handler, prefix);
free (data);
}
void
PropFile_from_filename (uio_DirHandle *path, const char *fname, PROPERTY_HANDLER handler)
PropFile_from_filename (uio_DirHandle *path, const char *fname, PROPERTY_HANDLER handler, const char *prefix)
{
uio_Stream *f = res_OpenResFile (path, fname, "rt");
if (!f) {
return;
}
PropFile_from_file (f, handler);
PropFile_from_file (f, handler, prefix);
res_CloseResFile(f);
}
+3 -3
View File
@@ -23,8 +23,8 @@
typedef void (*PROPERTY_HANDLER) (const char *, const char *);
void PropFile_from_string (char *d, PROPERTY_HANDLER handler);
void PropFile_from_file (uio_Stream *f, PROPERTY_HANDLER handler);
void PropFile_from_filename (uio_DirHandle *path, const char *fname, PROPERTY_HANDLER handler);
void PropFile_from_string (char *d, PROPERTY_HANDLER handler, const char *prefix);
void PropFile_from_file (uio_Stream *f, PROPERTY_HANDLER handler, const char *prefix);
void PropFile_from_filename (uio_DirHandle *path, const char *fname, PROPERTY_HANDLER handler, const char *prefix);
#endif
+1 -1
View File
@@ -192,7 +192,7 @@ InitResourceSystem (void)
void
LoadResourceIndex (uio_DirHandle *dir, const char *rmpfile)
{
PropFile_from_filename (dir, rmpfile, process_resource_desc);
PropFile_from_filename (dir, rmpfile, process_resource_desc, NULL);
}
void
+3 -1
View File
@@ -1371,6 +1371,8 @@ SetGlobalOptions (GLOBALOPTS *opts)
res_PutString ("keys.5.name", input_templates[4].name);
res_PutString ("keys.6.name", input_templates[5].name);
res_SaveFilename (configDir, "uqm.cfg", "config.");
res_SaveFilename (configDir, "uqm.cfg", "config.", FALSE);
// TODO RES070
// res_SaveFilename (configDir, "uqm.cfg", "config.", TRUE);
SaveKeyConfiguration (configDir, "flight.cfg");
}
+4 -1
View File
@@ -210,7 +210,10 @@ main (int argc, char *argv[])
PlayerControls[1] = CONTROL_TEMPLATE_JOY_1;
// Fill in the options struct based on uqm.cfg
res_LoadFilename (configDir, "uqm.cfg");
res_LoadFilename (configDir, "uqm.cfg", NULL);
// TODO RES070
// res_LoadFilename (configDir, "uqm.cfg", "config.");
if (res_HasKey ("config.reswidth"))
{
options.width = res_GetInteger ("config.reswidth");