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