peter1138@5108: /* $Id$ */ peter1138@5108: rubidium@9111: /** @file control_codes.h Control codes that are embedded in the translation strings. */ rubidium@9111: peter1138@5108: #ifndef CONTROL_CODES_H peter1138@5108: #define CONTROL_CODES_H peter1138@5108: rubidium@9111: /** rubidium@9111: * List of string control codes used for string formatting, displaying, and rubidium@9111: * by strgen to generate the language files. rubidium@9111: */ rubidium@7616: enum StringControlCode { peter1138@5108: SCC_CONTROL_START = 0xE000, peter1138@5108: SCC_CONTROL_END = 0xE1FF, peter1138@5108: peter1138@5108: SCC_SPRITE_START = 0xE200, peter1138@5108: SCC_SPRITE_END = SCC_SPRITE_START + 0xFF, peter1138@5108: peter1138@5108: /* Display control codes */ peter1138@5108: SCC_SETX = SCC_CONTROL_START, peter1138@5108: SCC_SETXY, rubidium@9773: SCC_TINYFONT, ///< Switch to small font rubidium@9773: SCC_BIGFONT, ///< Switch to large font peter1138@5108: peter1138@5108: /* Formatting control codes */ peter1138@5108: SCC_REVISION, peter1138@5108: SCC_STATION_FEATURES, peter1138@5108: SCC_INDUSTRY_NAME, peter1138@5108: SCC_WAYPOINT_NAME, peter1138@5108: SCC_STATION_NAME, peter1138@5108: SCC_TOWN_NAME, rubidium@6643: SCC_GROUP_NAME, peter1138@7049: SCC_VEHICLE_NAME, peter1138@7056: SCC_SIGN_NAME, peter1138@7058: SCC_COMPANY_NAME, peter1138@7058: SCC_COMPANY_NUM, peter1138@7058: SCC_PLAYER_NAME, peter1138@7059: SCC_ENGINE_NAME, peter1138@5108: peter1138@5108: SCC_CURRENCY_COMPACT, peter1138@5108: SCC_CURRENCY, peter1138@5108: peter1138@5108: SCC_CARGO, peter1138@5108: SCC_CARGO_SHORT, peter1138@5108: SCC_POWER, peter1138@5108: SCC_VOLUME, peter1138@5108: SCC_VOLUME_SHORT, peter1138@5108: SCC_WEIGHT, peter1138@5108: SCC_WEIGHT_SHORT, peter1138@5108: SCC_FORCE, peter1138@5108: SCC_VELOCITY, peter1138@5108: peter1138@5108: SCC_DATE_TINY, peter1138@5108: SCC_DATE_SHORT, peter1138@5108: SCC_DATE_LONG, peter1138@5108: peter1138@5108: SCC_STRING1, peter1138@5108: SCC_STRING2, peter1138@5108: SCC_STRING3, peter1138@5108: SCC_STRING4, peter1138@5108: SCC_STRING5, peter1138@5108: peter1138@5108: SCC_SKIP, peter1138@5108: SCC_STRING, peter1138@5108: SCC_COMMA, peter1138@5108: SCC_NUM, peter1138@5108: peter1138@5108: SCC_STRING_ID, rubidium@9648: SCC_RAW_STRING_POINTER, peter1138@5108: SCC_PLURAL_LIST, peter1138@5108: SCC_GENDER_LIST, peter1138@5108: SCC_GENDER_INDEX, peter1138@5108: SCC_ARG_INDEX, peter1138@5108: SCC_SETCASE, peter1138@5108: SCC_SWITCH_CASE, peter1138@5108: peter1138@5108: /* Colour codes */ peter1138@5108: SCC_BLUE, peter1138@5108: SCC_SILVER, peter1138@5108: SCC_GOLD, peter1138@5108: SCC_RED, peter1138@5108: SCC_PURPLE, peter1138@5108: SCC_LTBROWN, peter1138@5108: SCC_ORANGE, peter1138@5108: SCC_GREEN, peter1138@5108: SCC_YELLOW, peter1138@5108: SCC_DKGREEN, peter1138@5108: SCC_CREAM, peter1138@5108: SCC_BROWN, peter1138@5108: SCC_WHITE, peter1138@5108: SCC_LTBLUE, peter1138@5108: SCC_GRAY, peter1138@5108: SCC_DKBLUE, peter1138@5108: SCC_BLACK, rubidium@7422: SCC_PREVIOUS_COLOUR, peter1138@5108: rubidium@7616: /** rubidium@7616: * The next variables are part of a NewGRF subsystem for creating text strings. rubidium@7616: * It uses a "stack" of bytes and reads from there. rubidium@7616: */ rubidium@7616: SCC_NEWGRF_FIRST, rubidium@7616: SCC_NEWGRF_PRINT_DWORD = SCC_NEWGRF_FIRST, ///< Read 4 bytes from the stack rubidium@7616: SCC_NEWGRF_PRINT_SIGNED_WORD, ///< Read 2 bytes from the stack as signed value rubidium@7616: SCC_NEWGRF_PRINT_SIGNED_BYTE, ///< Read 1 bytes from the stack as signed value rubidium@7616: SCC_NEWGRF_PRINT_UNSIGNED_WORD, ///< Read 2 bytes from the stack as unsigned value rubidium@7616: SCC_NEWGRF_PRINT_DWORD_CURRENCY, ///< Read 4 bytes from the stack as currency rubidium@7616: SCC_NEWGRF_PRINT_STRING_ID, ///< Read 2 bytes from the stack as String ID rubidium@7616: SCC_NEWGRF_PRINT_DATE, ///< Read 2 bytes from the stack as base 1920 date rubidium@7616: SCC_NEWGRF_PRINT_MONTH_YEAR, ///< Read 2 bytes from the stack as base 1920 date rubidium@7616: SCC_NEWGRF_PRINT_WORD_SPEED, ///< Read 2 bytes from the stack as signed speed rubidium@7616: SCC_NEWGRF_PRINT_WORD_LITRES, ///< Read 2 bytes from the stack as signed litres rubidium@7616: SCC_NEWGRF_PRINT_QWORD_CURRENCY, ///< Read 8 bytes from the stack as currency rubidium@7616: SCC_NEWGRF_PUSH_WORD, ///< Pushes 2 bytes onto the stack rubidium@7616: SCC_NEWGRF_UNPRINT, ///< "Unprints" the given number of bytes from the string rubidium@7616: SCC_NEWGRF_DISCARD_WORD, ///< Discard the next two bytes rubidium@7616: SCC_NEWGRF_ROTATE_TOP_4_WORDS, ///< Rotate the top 4 words of the stack (W4 W1 W2 W3) rubidium@7616: SCC_NEWGRF_LAST = SCC_NEWGRF_ROTATE_TOP_4_WORDS, rubidium@7616: peter1138@5108: /* Special printable symbols. peter1138@5108: * These are mapped to the original glyphs */ peter1138@5108: SCC_LESSTHAN = SCC_SPRITE_START + 0x3C, peter1138@5108: SCC_GREATERTHAN = SCC_SPRITE_START + 0x3E, peter1138@8411: SCC_UPARROW = SCC_SPRITE_START + 0xA0, peter1138@5108: SCC_DOWNARROW = SCC_SPRITE_START + 0xAA, peter1138@5108: SCC_CHECKMARK = SCC_SPRITE_START + 0xAC, peter1138@5108: SCC_CROSS = SCC_SPRITE_START + 0xAD, peter1138@5108: SCC_RIGHTARROW = SCC_SPRITE_START + 0xAF, peter1138@8411: SCC_TRAIN = SCC_SPRITE_START + 0xB4, peter1138@8411: SCC_LORRY = SCC_SPRITE_START + 0xB5, peter1138@8411: SCC_BUS = SCC_SPRITE_START + 0xB6, peter1138@8411: SCC_PLANE = SCC_SPRITE_START + 0xB7, peter1138@8411: SCC_SHIP = SCC_SPRITE_START + 0xB8, peter1138@8411: SCC_SUPERSCRIPT_M1 = SCC_SPRITE_START + 0xB9, peter1138@8411: SCC_SMALLUPARROW = SCC_SPRITE_START + 0xBC, peter1138@8411: SCC_SMALLDOWNARROW = SCC_SPRITE_START + 0xBD, peter1138@5108: }; peter1138@5108: peter1138@5108: #endif /* CONTROL_CODES_H */