fileio.h File Reference

Declarations for Standard In/Out file operations. More...

#include <map>
#include <string>
#include "core/enum_type.hpp"

Go to the source code of this file.

Data Structures

struct  TarListEntry
 The define of a TarList. More...
struct  TarFileListEntry

Defines

#define FOR_ALL_SEARCHPATHS(sp)   for (sp = SP_FIRST_DIR; sp < NUM_SEARCHPATHS; sp++) if (IsValidSearchPath(sp))
 Iterator for all the search paths.
#define FOR_ALL_TARS(tar)   for (tar = _tar_filelist.begin(); tar != _tar_filelist.end(); tar++)

Typedefs

typedef std::map< std::string,
TarListEntry
TarList
typedef std::map< std::string,
TarFileListEntry > 
TarFileList
typedef bool FioTarFileListCallback (const char *filename, int size, void *userdata)

Enumerations

enum  Subdirectory {
  BASE_DIR, SAVE_DIR, AUTOSAVE_DIR, SCENARIO_DIR,
  HEIGHTMAP_DIR, GM_DIR, DATA_DIR, LANG_DIR,
  NUM_SUBDIRS, NO_DIRECTORY
}
 The different kinds of subdirectories OpenTTD uses. More...
enum  Searchpath {
  SP_FIRST_DIR, SP_WORKING_DIR = SP_FIRST_DIR, SP_PERSONAL_DIR, SP_SHARED_DIR,
  SP_BINARY_DIR, SP_INSTALLATION_DIR, SP_APPLICATION_BUNDLE_DIR, NUM_SEARCHPATHS
}
 Types of searchpaths OpenTTD might use. More...

Functions

void FioSeekTo (uint32 pos, int mode)
void FioSeekToFile (uint8 slot, uint32 pos)
uint32 FioGetPos ()
const char * FioGetFilename (uint8 slot)
byte FioReadByte ()
uint16 FioReadWord ()
uint32 FioReadDword ()
void FioCloseAll ()
void FioOpenFile (int slot, const char *filename)
void FioReadBlock (void *ptr, uint size)
void FioSkipBytes (int n)
void FioCreateDirectory (const char *filename)
 Create a directory with the given name.
 DECLARE_POSTFIX_INCREMENT (Searchpath)
static bool IsValidSearchPath (Searchpath sp)
 Checks whether the given search path is a valid search path.
FILE * FioTarFileList (const char *tar, const char *mode, size_t *filesize, FioTarFileListCallback *callback, void *userdata)
void FioFCloseFile (FILE *f)
 Close a file in a safe way.
FILE * FioFOpenFile (const char *filename, const char *mode="rb", Subdirectory subdir=DATA_DIR, size_t *filesize=NULL)
 Opens OpenTTD files somewhere in a personal or global directory.
bool FioCheckFileExists (const char *filename, Subdirectory subdir=DATA_DIR)
 Check whether the given file exists.
char * FioGetFullPath (char *buf, size_t buflen, Searchpath sp, Subdirectory subdir, const char *filename)
char * FioFindFullPath (char *buf, size_t buflen, Subdirectory subdir, const char *filename)
char * FioAppendDirectory (char *buf, size_t buflen, Searchpath sp, Subdirectory subdir)
char * FioGetDirectory (char *buf, size_t buflen, Subdirectory subdir)
static const char * FioGetSubdirectory (Subdirectory subdir)
void SanitizeFilename (char *filename)
 Sanitizes a filename, i.e.
void AppendPathSeparator (char *buf, size_t buflen)
 Appends, if necessary, the path separator character to the end of the string.
void DeterminePaths (const char *exe)
 Acquire the base paths (personal dir and game data dir), fill all other paths (save dir, autosave dir etc) and make the save and scenario directories.
void * ReadFileToMem (const char *filename, size_t *lenp, size_t maxsize)
bool FileExists (const char *filename)

Variables

const char * _searchpaths [NUM_SEARCHPATHS]
 The searchpaths OpenTTD could search through.
TarList _tar_list
TarFileList _tar_filelist
char * _personal_dir
 custom directory for personal settings, saves, newgrf, etc.


Detailed Description

Declarations for Standard In/Out file operations.

Definition in file fileio.h.


Enumeration Type Documentation

enum Searchpath

Types of searchpaths OpenTTD might use.

Enumerator:
SP_WORKING_DIR  Search in the working directory.
SP_PERSONAL_DIR  Search in the personal directory.
SP_SHARED_DIR  Search in the shared directory, like 'Shared Files' under Windows.
SP_BINARY_DIR  Search in the directory where the binary resides.
SP_INSTALLATION_DIR  Search in the installation directory.
SP_APPLICATION_BUNDLE_DIR  Search within the application bundle.

Definition at line 44 of file fileio.h.

The different kinds of subdirectories OpenTTD uses.

Enumerator:
BASE_DIR  Base directory for all subdirectories.
SAVE_DIR  Base directory for all savegames.
AUTOSAVE_DIR  Subdirectory of save for autosaves.
SCENARIO_DIR  Base directory for all scenarios.
HEIGHTMAP_DIR  Subdirectory of scenario for heightmaps.
GM_DIR  Subdirectory for all music.
DATA_DIR  Subdirectory for all data (GRFs, sample.cat, intro game).
LANG_DIR  Subdirectory for all translation files.
NUM_SUBDIRS  Number of subdirectories.
NO_DIRECTORY  A path without any base directory.

Definition at line 28 of file fileio.h.


Function Documentation

void AppendPathSeparator ( char *  buf,
size_t  buflen 
)

Appends, if necessary, the path separator character to the end of the string.

It does not add the path separator to zero-sized strings.

Parameters:
buf string to append the separator to
buflen the length of the buf

Definition at line 406 of file fileio.cpp.

Referenced by BuildWithFullPath(), and DetermineBasePaths().

void DeterminePaths ( const char *  exe  ) 

Acquire the base paths (personal dir and game data dir), fill all other paths (save dir, autosave dir etc) and make the save and scenario directories.

Parameters:
exe the path from the current path to the executable

Definition at line 711 of file fileio.cpp.

References AUTOSAVE_DIR, BASE_DIR, DetermineBasePaths(), FioCreateDirectory(), FOR_ALL_SEARCHPATHS, IsValidSearchPath(), SAVE_DIR, SP_BINARY_DIR, SP_INSTALLATION_DIR, SP_PERSONAL_DIR, SP_SHARED_DIR, and SP_WORKING_DIR.

bool FioCheckFileExists ( const char *  filename,
Subdirectory  subdir 
)

Check whether the given file exists.

Parameters:
filename the file to try for existance
subdir the subdirectory to look in
Returns:
true if and only if the file can be opened

Definition at line 228 of file fileio.cpp.

References FioFCloseFile(), and FioFOpenFile().

Referenced by DeterminePalette().

void FioCreateDirectory ( const char *  name  ) 

Create a directory with the given name.

Parameters:
name the new name of the directory

Definition at line 379 of file fileio.cpp.

References OTTD2FS().

Referenced by DeterminePaths().

static bool IsValidSearchPath ( Searchpath  sp  )  [inline, static]

Checks whether the given search path is a valid search path.

Parameters:
sp the search path to check
Returns:
true if the search path is valid

Definition at line 88 of file fileio.h.

References _searchpaths.

Referenced by DeterminePaths().

void SanitizeFilename ( char *  filename  ) 

Sanitizes a filename, i.e.

removes all illegal characters from it.

Parameters:
filename the "\0" terminated filename

Definition at line 774 of file fileio.cpp.


Variable Documentation

const char* _searchpaths[NUM_SEARCHPATHS]

The searchpaths OpenTTD could search through.

At least one of the slots has to be filled with a path. NULL paths tell that there is no such path for the current operating system.

Definition at line 218 of file fileio.cpp.

Referenced by IsValidSearchPath().


Generated on Mon Sep 22 20:34:22 2008 for openttd by  doxygen 1.5.6