diff options
Diffstat (limited to 'src/newgrf_string_type.h')
-rw-r--r-- | src/newgrf_string_type.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/newgrf_string_type.h b/src/newgrf_string_type.h new file mode 100644 index 000000000..4a0bdd790 --- /dev/null +++ b/src/newgrf_string_type.h @@ -0,0 +1,54 @@ +/* $Id$ */ + +/** @file newgrf_string_type.h */ + +#ifndef NEWGRF_STRING_TYPE_H +#define NEWGRF_STRING_TYPE_H + +#include "strings_type.h" + +/** + * A string with the required information to perform a GRF string remapping. + */ +struct GRFMappedStringID +{ +private: + /** The GRF ID associated to the to-be-remapped string */ + uint32 grfid; + /** The string; when grfid != 0 it should be remapped */ + StringID string; + +public: + /** + * Create the struct. + * @param str the string to store (or remap) + * @param grf_id the GRF to remap it with + */ + GRFMappedStringID(StringID str, uint32 grf_id) : grfid(grf_id), string(str) {} + + /** + * An empty string. + */ + GRFMappedStringID() {} + + /** Cast operator, returns the string */ + inline operator StringID() const + { + return string; + } + + /** Assigns the string and resets the GRF ID. */ + GRFMappedStringID& operator = (StringID str) + { + string = str; + grfid = 0; + return *this; + } + + /** + * Map the string. + */ + void MapString(); +}; + +#endif /* NEWGRF_STRING_TYPE_H */ |