rubidium@8298: /* $Id$ */ rubidium@8298: rubidium@8298: /** @file newgrf_string_type.h */ rubidium@8298: rubidium@8298: #ifndef NEWGRF_STRING_TYPE_H rubidium@8298: #define NEWGRF_STRING_TYPE_H rubidium@8298: rubidium@8298: #include "strings_type.h" rubidium@8298: rubidium@8298: /** rubidium@8298: * A string with the required information to perform a GRF string remapping. rubidium@8298: */ rubidium@8298: struct GRFMappedStringID rubidium@8298: { rubidium@8298: private: rubidium@8298: /** The GRF ID associated to the to-be-remapped string */ rubidium@8298: uint32 grfid; rubidium@8298: /** The string; when grfid != 0 it should be remapped */ rubidium@8298: StringID string; rubidium@8298: rubidium@8298: public: rubidium@8298: /** rubidium@8298: * Create the struct. rubidium@8298: * @param str the string to store (or remap) rubidium@8298: * @param grf_id the GRF to remap it with rubidium@8298: */ rubidium@8298: GRFMappedStringID(StringID str, uint32 grf_id) : grfid(grf_id), string(str) {} rubidium@8298: rubidium@8298: /** rubidium@8298: * An empty string. rubidium@8298: */ rubidium@8298: GRFMappedStringID() {} rubidium@8298: rubidium@8298: /** Cast operator, returns the string */ rubidium@8298: inline operator StringID() const rubidium@8298: { rubidium@8298: return string; rubidium@8298: } rubidium@8298: rubidium@8298: /** Assigns the string and resets the GRF ID. */ rubidium@8298: GRFMappedStringID& operator = (StringID str) rubidium@8298: { rubidium@8298: string = str; rubidium@8298: grfid = 0; rubidium@8298: return *this; rubidium@8298: } rubidium@8298: rubidium@8298: /** rubidium@8298: * Map the string. rubidium@8298: */ rubidium@8298: void MapString(); rubidium@8298: }; rubidium@8298: rubidium@8298: #endif /* NEWGRF_STRING_TYPE_H */