2006-08-04 23:41:13 +00:00
|
|
|
/* $Id$ */
|
|
|
|
|
|
|
|
#ifndef FIOS_H
|
|
|
|
#define FIOS_H
|
|
|
|
|
2006-08-05 00:59:45 +00:00
|
|
|
/* Deals with finding savegames */
|
|
|
|
typedef struct {
|
|
|
|
byte type;
|
|
|
|
uint64 mtime;
|
|
|
|
char title[64];
|
|
|
|
char name[256 - 12 - 64];
|
|
|
|
} FiosItem;
|
|
|
|
|
|
|
|
enum {
|
2006-08-22 14:38:37 +00:00
|
|
|
FIOS_TYPE_DRIVE = 0,
|
|
|
|
FIOS_TYPE_PARENT = 1,
|
|
|
|
FIOS_TYPE_DIR = 2,
|
|
|
|
FIOS_TYPE_FILE = 3,
|
|
|
|
FIOS_TYPE_OLDFILE = 4,
|
|
|
|
FIOS_TYPE_SCENARIO = 5,
|
|
|
|
FIOS_TYPE_OLD_SCENARIO = 6,
|
|
|
|
FIOS_TYPE_DIRECT = 7,
|
|
|
|
FIOS_TYPE_PNG = 8,
|
|
|
|
FIOS_TYPE_BMP = 9,
|
|
|
|
FIOS_TYPE_INVALID = 255,
|
2006-08-05 00:59:45 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
/* Variables to display file lists */
|
|
|
|
extern FiosItem *_fios_list; // defined in misc_gui.c
|
|
|
|
extern int _fios_num; // defined in fios.c, read_only version of _fios_count
|
|
|
|
extern int _saveload_mode; // defined in misc_gui.c
|
|
|
|
|
|
|
|
// Get a list of savegames
|
|
|
|
FiosItem *FiosGetSavegameList(int mode);
|
|
|
|
// Get a list of scenarios
|
|
|
|
FiosItem *FiosGetScenarioList(int mode);
|
(svn r5946) -Add: merged the TGP branch to mainline. TGP adds:
- New optional landscape generator (TerraGenesis Perlin)
- Load heightmaps (either BMP or PNG)
- Progress dialog while generating worlds (no longer a 'hanging' screen)
- New dialogs for NewGame, Create Scenario and Play Heightmap
- Easier to configure your landscape
- More things to configure (tree-placer, ..)
- Speedup of world generation
- New console command 'restart': restart the map EXACTLY as it was when you
first started it (needs a game made after or with this commit)
- New console command 'getseed': get the seed of your map and share it with
others (of course only works with generated maps)
- Many new, world generation related, things
- Many internal cleanups and rewrites
Many tnx to those people who helped making this:
Belugas, DaleStan, glx, KUDr, RichK67, Rubidium, and TrueLight (alfabetic)
Many tnx to those who helped testing:
Arnau, Bjarni, and tokai (alfabetic)
And to all other people who helped testing and sending comments / bugs
Stats: 673 lines changed, 3534 new lines, 79 new strings
2006-08-19 10:00:30 +00:00
|
|
|
// Get a list of Heightmaps
|
|
|
|
FiosItem *FiosGetHeightmapList(int mode);
|
2006-08-05 00:59:45 +00:00
|
|
|
// Free the list of savegames
|
|
|
|
void FiosFreeSavegameList(void);
|
|
|
|
// Browse to. Returns a filename w/path if we reached a file.
|
|
|
|
char *FiosBrowseTo(const FiosItem *item);
|
|
|
|
// Return path, free space and stringID
|
|
|
|
StringID FiosGetDescText(const char **path, uint32 *total_free);
|
|
|
|
// Delete a name
|
|
|
|
bool FiosDelete(const char *name);
|
|
|
|
// Make a filename from a name
|
|
|
|
void FiosMakeSavegameName(char *buf, const char *name, size_t size);
|
|
|
|
// Allocate a new FiosItem
|
|
|
|
FiosItem *FiosAlloc(void);
|
|
|
|
|
|
|
|
int CDECL compare_FiosItems(const void *a, const void *b);
|
|
|
|
|
2006-08-04 23:41:13 +00:00
|
|
|
/* Implementation of opendir/readdir/closedir for Windows */
|
|
|
|
#if defined(WIN32)
|
|
|
|
#include <windows.h>
|
|
|
|
typedef struct DIR DIR;
|
|
|
|
|
|
|
|
typedef struct dirent { // XXX - only d_name implemented
|
|
|
|
char *d_name; /* name of found file */
|
|
|
|
/* little hack which will point to parent DIR struct which will
|
|
|
|
* save us a call to GetFileAttributes if we want information
|
|
|
|
* about the file (for example in function fio_bla */
|
|
|
|
DIR *dir;
|
|
|
|
} dirent;
|
|
|
|
|
|
|
|
struct DIR {
|
|
|
|
HANDLE hFind;
|
|
|
|
/* the dirent returned by readdir.
|
|
|
|
* note: having only one global instance is not possible because
|
|
|
|
* multiple independent opendir/readdir sequences must be supported. */
|
|
|
|
dirent ent;
|
|
|
|
WIN32_FIND_DATA fd;
|
|
|
|
/* since opendir calls FindFirstFile, we need a means of telling the
|
|
|
|
* first call to readdir that we already have a file.
|
|
|
|
* that's the case iff this is true */
|
|
|
|
bool at_first_entry;
|
|
|
|
};
|
|
|
|
|
|
|
|
DIR *opendir(const char *path);
|
|
|
|
struct dirent *readdir(DIR *d);
|
|
|
|
int closedir(DIR *d);
|
|
|
|
|
|
|
|
#endif /* defined(WIN32) */
|
|
|
|
|
|
|
|
#endif /* FIOS_H */
|