diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-10-21 18:40:46 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-10-21 18:40:46 +0000 |
| commit | b49e4da20b25e130cfdce4c861f0bec901f9c057 (patch) | |
| tree | c053c256756ad24261ce83c6948585dd6ffe5b96 /src/engine | |
| parent | 39210c2501f99c4fcf60cefa77041ea2cb61c62c (diff) | |
| download | zcatch-b49e4da20b25e130cfdce4c861f0bec901f9c057.tar.gz zcatch-b49e4da20b25e130cfdce4c861f0bec901f9c057.zip | |
fixed editor saving, open and append. note that you can only save maps to your user directory
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/e_engine.c | 21 | ||||
| -rw-r--r-- | src/engine/e_engine.h | 10 |
2 files changed, 24 insertions, 7 deletions
diff --git a/src/engine/e_engine.c b/src/engine/e_engine.c index d73082db..e3dd4df1 100644 --- a/src/engine/e_engine.c +++ b/src/engine/e_engine.c @@ -88,20 +88,29 @@ void engine_init(const char *appname) } -void engine_listdir(const char *path, FS_LISTDIR_CALLBACK cb, void *user) +void engine_listdir(int types, const char *path, FS_LISTDIR_CALLBACK cb, void *user) { char buffer[1024]; /* list current directory */ - fs_listdir(path, cb, user); + if(types&LISTDIRTYPE_CURRENT) + { + fs_listdir(path, cb, user); + } /* list users directory */ - engine_savepath(path, buffer, sizeof(buffer)); - fs_listdir(buffer, cb, user); + if(types&LISTDIRTYPE_SAVE) + { + engine_savepath(path, buffer, sizeof(buffer)); + fs_listdir(buffer, cb, user); + } /* list datadir directory */ - str_format(buffer, sizeof(buffer), "%s/%s", datadir, path); - fs_listdir(buffer, cb, user); + if(types&LISTDIRTYPE_DATA) + { + str_format(buffer, sizeof(buffer), "%s/%s", datadir, path); + fs_listdir(buffer, cb, user); + } } void engine_getpath(char *buffer, int buffer_size, const char *filename, int flags) diff --git a/src/engine/e_engine.h b/src/engine/e_engine.h index f11ba5c5..0a5385cc 100644 --- a/src/engine/e_engine.h +++ b/src/engine/e_engine.h @@ -11,7 +11,15 @@ void engine_config_write_line(const char *line); void engine_config_write_stop(); -void engine_listdir(const char *path, FS_LISTDIR_CALLBACK cb, void *user); +enum +{ + LISTDIRTYPE_SAVE=1, + LISTDIRTYPE_CURRENT=2, + LISTDIRTYPE_DATA=4, + LISTDIRTYPE_ALL = ~0 +}; + +void engine_listdir(int types, const char *path, FS_LISTDIR_CALLBACK cb, void *user); IOHANDLE engine_openfile(const char *filename, int flags); void engine_getpath(char *buffer, int buffer_size, const char *filename, int flags); |