OpenTTD Source  20240917-master-g9ab0a47812
fileio_type.h File Reference
#include "core/enum_type.hpp"

Go to the source code of this file.

Data Structures

class  FileHandle
 
struct  FileHandle::FileDeleter
 Helper to close a FILE * with a std::unique_ptr. More...
 

Macros

#define MAKE_FIOS_TYPE(abstract, detailed)   ((abstract) | ((detailed) << FT_NUMBITS))
 Construct an enum value for FiosType as a combination of an abstract and a detailed file type. More...
 

Enumerations

enum  AbstractFileType {
  FT_NONE, FT_SAVEGAME, FT_SCENARIO, FT_HEIGHTMAP,
  FT_TOWN_DATA, FT_INVALID = 7, FT_NUMBITS = 3, FT_MASK = (1 << FT_NUMBITS) - 1
}
 The different abstract types of files that the system knows about. More...
 
enum  DetailedFileType {
  DFT_OLD_GAME_FILE, DFT_GAME_FILE, DFT_HEIGHTMAP_BMP, DFT_HEIGHTMAP_PNG,
  DFT_TOWN_DATA_JSON, DFT_FIOS_DRIVE, DFT_FIOS_PARENT, DFT_FIOS_DIR,
  DFT_FIOS_DIRECT, DFT_END, DFT_INVALID = 255
}
 Kinds of files in each AbstractFileType. More...
 
enum  SaveLoadOperation { SLO_CHECK, SLO_LOAD, SLO_SAVE, SLO_INVALID }
 Operation performed on the file. More...
 
enum  FiosType {
  FIOS_TYPE_DRIVE = MAKE_FIOS_TYPE(FT_NONE, DFT_FIOS_DRIVE), FIOS_TYPE_PARENT = MAKE_FIOS_TYPE(FT_NONE, DFT_FIOS_PARENT), FIOS_TYPE_DIR = MAKE_FIOS_TYPE(FT_NONE, DFT_FIOS_DIR), FIOS_TYPE_DIRECT = MAKE_FIOS_TYPE(FT_NONE, DFT_FIOS_DIRECT),
  FIOS_TYPE_FILE = MAKE_FIOS_TYPE(FT_SAVEGAME, DFT_GAME_FILE), FIOS_TYPE_OLDFILE = MAKE_FIOS_TYPE(FT_SAVEGAME, DFT_OLD_GAME_FILE), FIOS_TYPE_SCENARIO = MAKE_FIOS_TYPE(FT_SCENARIO, DFT_GAME_FILE), FIOS_TYPE_OLD_SCENARIO = MAKE_FIOS_TYPE(FT_SCENARIO, DFT_OLD_GAME_FILE),
  FIOS_TYPE_PNG = MAKE_FIOS_TYPE(FT_HEIGHTMAP, DFT_HEIGHTMAP_PNG), FIOS_TYPE_BMP = MAKE_FIOS_TYPE(FT_HEIGHTMAP, DFT_HEIGHTMAP_BMP), FIOS_TYPE_JSON = MAKE_FIOS_TYPE(FT_TOWN_DATA, DFT_TOWN_DATA_JSON), FIOS_TYPE_INVALID = MAKE_FIOS_TYPE(FT_INVALID, DFT_INVALID)
}
 Elements of a file system that are recognized. More...
 
enum  Subdirectory {
  BASE_DIR, SAVE_DIR, AUTOSAVE_DIR, SCENARIO_DIR,
  HEIGHTMAP_DIR, OLD_GM_DIR, OLD_DATA_DIR, BASESET_DIR,
  NEWGRF_DIR, LANG_DIR, AI_DIR, AI_LIBRARY_DIR,
  GAME_DIR, GAME_LIBRARY_DIR, SCREENSHOT_DIR, SOCIAL_INTEGRATION_DIR,
  NUM_SUBDIRS, NO_DIRECTORY
}
 The different kinds of subdirectories OpenTTD uses. More...
 
enum  Searchpath : unsigned {
  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, SP_AUTODOWNLOAD_DIR,
  SP_AUTODOWNLOAD_PERSONAL_DIR, SP_AUTODOWNLOAD_PERSONAL_DIR_XDG, NUM_SEARCHPATHS
}
 Types of searchpaths OpenTTD might use. More...
 

Functions

AbstractFileType GetAbstractFileType (FiosType fios_type)
 Extract the abstract file type from a FiosType. More...
 
DetailedFileType GetDetailedFileType (FiosType fios_type)
 Extract the detailed file type from a FiosType. More...
 

Detailed Description

Types for Standard In/Out file operations

Definition in file fileio_type.h.

Macro Definition Documentation

◆ MAKE_FIOS_TYPE

#define MAKE_FIOS_TYPE (   abstract,
  detailed 
)    ((abstract) | ((detailed) << FT_NUMBITS))

Construct an enum value for FiosType as a combination of an abstract and a detailed file type.

Parameters
abstractAbstract file type (one of AbstractFileType).
detailedDetailed file type (one of DetailedFileType).

Definition at line 66 of file fileio_type.h.

Enumeration Type Documentation

◆ AbstractFileType

The different abstract types of files that the system knows about.

Enumerator
FT_NONE 

nothing to do

FT_SAVEGAME 

old or new savegame

FT_SCENARIO 

old or new scenario

FT_HEIGHTMAP 

heightmap file

FT_TOWN_DATA 

town data file

FT_INVALID 

Invalid or unknown file type.

FT_NUMBITS 

Number of bits required for storing a AbstractFileType value.

FT_MASK 

Bitmask for extracting an abstract file type.

Definition at line 16 of file fileio_type.h.

◆ DetailedFileType

Kinds of files in each AbstractFileType.

Enumerator
DFT_OLD_GAME_FILE 

Old save game or scenario file.

DFT_GAME_FILE 

Save game or scenario file.

DFT_HEIGHTMAP_BMP 

BMP file.

DFT_HEIGHTMAP_PNG 

PNG file.

DFT_TOWN_DATA_JSON 

JSON file.

DFT_FIOS_DRIVE 

A drive (letter) entry.

DFT_FIOS_PARENT 

A parent directory entry.

DFT_FIOS_DIR 

A directory entry.

DFT_FIOS_DIRECT 

Direct filename.

DFT_END 

End of this enum. Supports a compile time size check against _fios_colours in fios_gui.cpp.

DFT_INVALID 

Unknown or invalid file.

Definition at line 29 of file fileio_type.h.

◆ FiosType

enum FiosType

Elements of a file system that are recognized.

Values are a combination of AbstractFileType and DetailedFileType.

See also
GetAbstractFileType GetDetailedFileType

Definition at line 73 of file fileio_type.h.

◆ SaveLoadOperation

Operation performed on the file.

Enumerator
SLO_CHECK 

Load file for checking and/or preview.

SLO_LOAD 

File is being loaded.

SLO_SAVE 

File is being saved.

SLO_INVALID 

Unknown file operation.

Definition at line 53 of file fileio_type.h.

◆ Searchpath

enum Searchpath : unsigned

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.

SP_AUTODOWNLOAD_DIR 

Search within the autodownload directory.

SP_AUTODOWNLOAD_PERSONAL_DIR 

Search within the autodownload directory located in the personal directory.

SP_AUTODOWNLOAD_PERSONAL_DIR_XDG 

Search within the autodownload directory located in the personal directory (XDG variant)

Definition at line 139 of file fileio_type.h.

◆ Subdirectory

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.

OLD_GM_DIR 

Old subdirectory for the music.

OLD_DATA_DIR 

Old subdirectory for the data.

BASESET_DIR 

Subdirectory for all base data (base sets, intro game)

NEWGRF_DIR 

Subdirectory for all NewGRFs.

LANG_DIR 

Subdirectory for all translation files.

AI_DIR 

Subdirectory for all AI files.

AI_LIBRARY_DIR 

Subdirectory for all AI libraries.

GAME_DIR 

Subdirectory for all game scripts.

GAME_LIBRARY_DIR 

Subdirectory for all GS libraries.

SCREENSHOT_DIR 

Subdirectory for all screenshots.

SOCIAL_INTEGRATION_DIR 

Subdirectory for all social integration plugins.

NUM_SUBDIRS 

Number of subdirectories.

NO_DIRECTORY 

A path without any base directory.

Definition at line 115 of file fileio_type.h.

Function Documentation

◆ GetAbstractFileType()

AbstractFileType GetAbstractFileType ( FiosType  fios_type)
inline

Extract the abstract file type from a FiosType.

Parameters
fios_typeType to query.
Returns
The Abstract file type of the fios_type.

Definition at line 97 of file fileio_type.h.

References FT_MASK.

Referenced by FileToSaveLoad::SetMode().

◆ GetDetailedFileType()

DetailedFileType GetDetailedFileType ( FiosType  fios_type)
inline

Extract the detailed file type from a FiosType.

Parameters
fios_typeType to query.
Returns
The Detailed file type of the fios_type.

Definition at line 107 of file fileio_type.h.

References FT_NUMBITS.

Referenced by FileToSaveLoad::SetMode().