- 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
		
	
		
			
				
	
	
		
			87 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* $Id$ */
 | 
						|
 | 
						|
#ifndef FIOS_H
 | 
						|
#define FIOS_H
 | 
						|
 | 
						|
/* Deals with finding savegames */
 | 
						|
typedef struct {
 | 
						|
	byte type;
 | 
						|
	uint64 mtime;
 | 
						|
	char title[64];
 | 
						|
	char name[256 - 12 - 64];
 | 
						|
} FiosItem;
 | 
						|
 | 
						|
enum {
 | 
						|
	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,
 | 
						|
};
 | 
						|
 | 
						|
/* 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);
 | 
						|
// Get a list of Heightmaps
 | 
						|
FiosItem *FiosGetHeightmapList(int mode);
 | 
						|
// 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);
 | 
						|
 | 
						|
/* 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 */
 |