Files
@ r8802:3a3f8a172f6c
Branch filter:
Location: cpp/openttd-patchpack/source/src/fios.h - annotation
r8802:3a3f8a172f6c
4.3 KiB
text/x-c
(svn r12542) -Fix [Makefile]: Don't install scenarios into the current user's homedir when running 'make install', that is silly. Simply always install scenarios system wide instead.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 | r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6179:c0508e7aefec r6179:c0508e7aefec r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r8264:d493cb51fe8a r8264:d493cb51fe8a r7805:7b5af263f275 r7805:7b5af263f275 r7805:7b5af263f275 r7805:7b5af263f275 r7805:7b5af263f275 r7805:7b5af263f275 r7805:7b5af263f275 r7805:7b5af263f275 r7805:7b5af263f275 r7805:7b5af263f275 r7805:7b5af263f275 r7805:7b5af263f275 r7805:7b5af263f275 r7805:7b5af263f275 r7805:7b5af263f275 r7805:7b5af263f275 r7805:7b5af263f275 r7805:7b5af263f275 r8149:8a97dd280f35 r8149:8a97dd280f35 r8149:8a97dd280f35 r8149:8a97dd280f35 r8149:8a97dd280f35 r8149:8a97dd280f35 r8149:8a97dd280f35 r8149:8a97dd280f35 r8149:8a97dd280f35 r8152:85dbf9d0e190 r8152:85dbf9d0e190 r8152:85dbf9d0e190 r8152:85dbf9d0e190 r8152:85dbf9d0e190 r8152:85dbf9d0e190 r8152:85dbf9d0e190 r8152:85dbf9d0e190 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r8151:3983fe61f8f0 r8151:3983fe61f8f0 r8151:3983fe61f8f0 r8151:3983fe61f8f0 r8151:3983fe61f8f0 r8151:3983fe61f8f0 r8151:3983fe61f8f0 r8151:3983fe61f8f0 r8151:3983fe61f8f0 r8151:3983fe61f8f0 r8151:3983fe61f8f0 r8152:85dbf9d0e190 r8151:3983fe61f8f0 r8151:3983fe61f8f0 r8151:3983fe61f8f0 r8151:3983fe61f8f0 r5475:3f5cd13d1b63 r6179:c0508e7aefec r6179:c0508e7aefec r8151:3983fe61f8f0 r8149:8a97dd280f35 r8149:8a97dd280f35 r8149:8a97dd280f35 r8149:8a97dd280f35 r5475:3f5cd13d1b63 r6179:c0508e7aefec r5475:3f5cd13d1b63 r6179:c0508e7aefec r5475:3f5cd13d1b63 r6179:c0508e7aefec r5475:3f5cd13d1b63 r6179:c0508e7aefec r6247:96e840dbefcc r6179:c0508e7aefec r5475:3f5cd13d1b63 r6179:c0508e7aefec r5475:3f5cd13d1b63 r6179:c0508e7aefec r5475:3f5cd13d1b63 r6179:c0508e7aefec r5475:3f5cd13d1b63 r6179:c0508e7aefec r6247:96e840dbefcc r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6248:b940b09d7ab8 r5475:3f5cd13d1b63 r6248:b940b09d7ab8 r6251:25d0134fe683 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6179:c0508e7aefec r5475:3f5cd13d1b63 r6248:b940b09d7ab8 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6251:25d0134fe683 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6251:25d0134fe683 r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6088:dd09788d020f r6088:dd09788d020f r6088:dd09788d020f r6088:dd09788d020f r5475:3f5cd13d1b63 r5475:3f5cd13d1b63 r6086:d8d6ec3e83d6 r6086:d8d6ec3e83d6 r6086:d8d6ec3e83d6 r6086:d8d6ec3e83d6 r6086:d8d6ec3e83d6 r6086:d8d6ec3e83d6 r6086:d8d6ec3e83d6 r6086:d8d6ec3e83d6 r6086:d8d6ec3e83d6 r6086:d8d6ec3e83d6 r6086:d8d6ec3e83d6 r6086:d8d6ec3e83d6 r5475:3f5cd13d1b63 | /* $Id$ */
/** @file fios.h Declarations for savegames operations */
#ifndef FIOS_H
#define FIOS_H
#include "strings_type.h"
enum {
/**
* Slot used for the GRF scanning and such. This slot cannot be reused
* as it will otherwise cause issues when pressing "rescan directories".
* It can furthermore not be larger than LAST_GRF_SLOT as that complicates
* the testing for "too much NewGRFs".
*/
CONFIG_SLOT = 0,
/** Slot for the sound. */
SOUND_SLOT = 1,
/** First slot useable for (New)GRFs used during the game. */
FIRST_GRF_SLOT = 2,
/** Last slot useable for (New)GRFs used during the game. */
LAST_GRF_SLOT = 63,
/** Maximum number of slots. */
MAX_FILE_SLOTS = 64
};
enum SaveLoadDialogMode{
SLD_LOAD_GAME,
SLD_LOAD_SCENARIO,
SLD_SAVE_GAME,
SLD_SAVE_SCENARIO,
SLD_LOAD_HEIGHTMAP,
SLD_NEW_GAME,
};
/* The different types of files been handled by the system */
enum FileType {
FT_NONE, ///< nothing to do
FT_SAVEGAME, ///< old or new savegame
FT_SCENARIO, ///< old or new scenario
FT_HEIGHTMAP, ///< heightmap file
};
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,
};
/* Deals with finding savegames */
struct FiosItem {
byte type;
uint64 mtime;
char title[64];
char name[256 - 12 - 64];
};
/* Deals with the type of the savegame, independent of extension */
struct SmallFiosItem {
int mode; ///< savegame/scenario type (old, new)
FileType filetype; ///< what type of file are we dealing with
char name[MAX_PATH]; ///< name
char title[255]; ///< internal name of the game
};
/* Variables to display file lists */
extern FiosItem *_fios_list; ///< defined in misc_gui.cpp
extern int _fios_num; ///< defined in fios.cpp, read_only version of _fios_count
extern SmallFiosItem _file_to_saveload;
extern SaveLoadDialogMode _saveload_mode; ///< defined in misc_gui.cpp
/* Launch save/load dialog */
void ShowSaveLoadDialog(SaveLoadDialogMode mode);
/* 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();
/* 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();
int CDECL compare_FiosItems(const void *a, const void *b);
/* Implementation of opendir/readdir/closedir for Windows */
#if defined(WIN32)
#include <windows.h>
struct DIR;
struct dirent { // XXX - only d_name implemented
TCHAR *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;
};
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 TCHAR *path);
struct dirent *readdir(DIR *d);
int closedir(DIR *d);
#else
/* Use system-supplied opendir/readdir/closedir functions */
# include <sys/types.h>
# include <dirent.h>
#endif /* defined(WIN32) */
/**
* A wrapper around opendir() which will convert the string from
* OPENTTD encoding to that of the filesystem. For all purposes this
* function behaves the same as the original opendir function
* @param path string to open directory of
* @return DIR pointer
*/
static inline DIR *ttd_opendir(const char *path)
{
return opendir(OTTD2FS(path));
}
#endif /* FIOS_H */
|