mirror of https://github.com/OpenRCT2/OpenRCT2.git
Extract format_codes to its own file
This commit is contained in:
parent
5c6e0b550b
commit
37c9bbd513
|
@ -102,6 +102,7 @@
|
|||
<ClCompile Include="src\localisation\convert.c" />
|
||||
<ClCompile Include="src\localisation\currency.c" />
|
||||
<ClCompile Include="src\localisation\date.c" />
|
||||
<ClCompile Include="src\localisation\format_codes.c" />
|
||||
<ClCompile Include="src\localisation\language.cpp" />
|
||||
<ClCompile Include="src\localisation\LanguagePack.cpp" />
|
||||
<ClCompile Include="src\localisation\localisation.c" />
|
||||
|
|
|
@ -0,0 +1,142 @@
|
|||
#pragma region Copyright (c) 2014-2016 OpenRCT2 Developers
|
||||
/*****************************************************************************
|
||||
* OpenRCT2, an open source clone of Roller Coaster Tycoon 2.
|
||||
*
|
||||
* OpenRCT2 is the work of many authors, a full list can be found in contributors.md
|
||||
* For more information, visit https://github.com/OpenRCT2/OpenRCT2
|
||||
*
|
||||
* OpenRCT2 is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* A full copy of the GNU General Public License can be found in licence.txt
|
||||
*****************************************************************************/
|
||||
#pragma endregion
|
||||
|
||||
#include "../common.h"
|
||||
#include "format_codes.h"
|
||||
#include "localisation.h"
|
||||
|
||||
#pragma region Format codes
|
||||
|
||||
typedef struct format_code_token {
|
||||
uint32 code;
|
||||
const char *token;
|
||||
} format_code_token;
|
||||
|
||||
format_code_token format_code_tokens[] = {
|
||||
{ FORMAT_MOVE_X, "MOVE_X" },
|
||||
{ FORMAT_ADJUST_PALETTE, "ADJUST_PALETTE" },
|
||||
{ FORMAT_NEWLINE, "NEWLINE" },
|
||||
{ FORMAT_NEWLINE_SMALLER, "NEWLINE_SMALLER" },
|
||||
{ FORMAT_TINYFONT, "TINYFONT" },
|
||||
{ FORMAT_BIGFONT, "BIGFONT" },
|
||||
{ FORMAT_MEDIUMFONT, "MEDIUMFONT" },
|
||||
{ FORMAT_SMALLFONT, "SMALLFONT" },
|
||||
{ FORMAT_OUTLINE, "OUTLINE" },
|
||||
{ FORMAT_OUTLINE_OFF, "OUTLINE_OFF" },
|
||||
{ FORMAT_WINDOW_COLOUR_1, "WINDOW_COLOUR_1" },
|
||||
{ FORMAT_WINDOW_COLOUR_2, "WINDOW_COLOUR_2" },
|
||||
{ FORMAT_WINDOW_COLOUR_3, "WINDOW_COLOUR_3" },
|
||||
{ FORMAT_NEWLINE_X_Y, "NEWLINE_X_Y" },
|
||||
{ FORMAT_INLINE_SPRITE, "INLINE_SPRITE" },
|
||||
{ FORMAT_ENDQUOTES, "ENDQUOTES" },
|
||||
{ FORMAT_COMMA32, "COMMA32" },
|
||||
{ FORMAT_INT32, "INT32" },
|
||||
{ FORMAT_COMMA2DP32, "COMMA2DP32" },
|
||||
{ FORMAT_COMMA16, "COMMA16" },
|
||||
{ FORMAT_UINT16, "UINT16" },
|
||||
{ FORMAT_CURRENCY2DP, "CURRENCY2DP" },
|
||||
{ FORMAT_CURRENCY, "CURRENCY" },
|
||||
{ FORMAT_STRINGID, "STRINGID" },
|
||||
{ FORMAT_STRINGID2, "STRINGID2" },
|
||||
{ FORMAT_STRING, "STRING" },
|
||||
{ FORMAT_MONTHYEAR, "MONTHYEAR" },
|
||||
{ FORMAT_MONTH, "MONTH" },
|
||||
{ FORMAT_VELOCITY, "VELOCITY" },
|
||||
{ FORMAT_POP16, "POP16" },
|
||||
{ FORMAT_PUSH16, "PUSH16" },
|
||||
{ FORMAT_DURATION, "DURATION" },
|
||||
{ FORMAT_REALTIME, "REALTIME" },
|
||||
{ FORMAT_LENGTH, "LENGTH" },
|
||||
{ FORMAT_SPRITE, "SPRITE" },
|
||||
{ FORMAT_BLACK, "BLACK" },
|
||||
{ FORMAT_GREY, "GREY" },
|
||||
{ FORMAT_WHITE, "WHITE" },
|
||||
{ FORMAT_RED, "RED" },
|
||||
{ FORMAT_GREEN, "GREEN" },
|
||||
{ FORMAT_YELLOW, "YELLOW" },
|
||||
{ FORMAT_TOPAZ, "TOPAZ" },
|
||||
{ FORMAT_CELADON, "CELADON" },
|
||||
{ FORMAT_BABYBLUE, "BABYBLUE" },
|
||||
{ FORMAT_PALELAVENDER, "PALELAVENDER" },
|
||||
{ FORMAT_PALEGOLD, "PALEGOLD" },
|
||||
{ FORMAT_LIGHTPINK, "LIGHTPINK" },
|
||||
{ FORMAT_PEARLAQUA, "PEARLAQUA" },
|
||||
{ FORMAT_PALESILVER, "PALESILVER" },
|
||||
{ FORMAT_AMINUSCULE, "AMINUSCULE" },
|
||||
{ FORMAT_UP, "UP" },
|
||||
{ FORMAT_POUND, "POUND" },
|
||||
{ FORMAT_YEN, "YEN" },
|
||||
{ FORMAT_COPYRIGHT, "COPYRIGHT" },
|
||||
{ FORMAT_DOWN, "DOWN" },
|
||||
{ FORMAT_LEFTGUILLEMET, "LEFTGUILLEMET" },
|
||||
{ FORMAT_TICK, "TICK" },
|
||||
{ FORMAT_CROSS, "CROSS" },
|
||||
{ FORMAT_RIGHT, "RIGHT" },
|
||||
{ FORMAT_DEGREE, "DEGREE" },
|
||||
{ FORMAT_SQUARED, "SQUARED" },
|
||||
{ FORMAT_OPENQUOTES, "OPENQUOTES" },
|
||||
{ FORMAT_EURO, "EURO" },
|
||||
{ FORMAT_APPROX, "APPROX" },
|
||||
{ FORMAT_POWERNEGATIVEONE, "POWERNEGATIVEONE" },
|
||||
{ FORMAT_BULLET, "BULLET" },
|
||||
{ FORMAT_RIGHTGUILLEMET, "RIGHTGUILLEMET" },
|
||||
{ FORMAT_SMALLUP, "SMALLUP" },
|
||||
{ FORMAT_SMALLDOWN, "SMALLDOWN" },
|
||||
{ FORMAT_LEFT, "LEFT" },
|
||||
{ FORMAT_INVERTEDQUESTION, "INVERTEDQUESTION" },
|
||||
{ FORMAT_COMMA1DP16, "COMMA1DP16" }
|
||||
};
|
||||
|
||||
uint32 format_get_code(const char *token)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < countof(format_code_tokens); i++)
|
||||
if (_strcmpi(token, format_code_tokens[i].token) == 0)
|
||||
return format_code_tokens[i].code;
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char *format_get_token(uint32 code)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < countof(format_code_tokens); i++)
|
||||
if (code == format_code_tokens[i].code)
|
||||
return format_code_tokens[i].token;
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool utf8_should_use_sprite_for_codepoint(int codepoint)
|
||||
{
|
||||
switch (codepoint) {
|
||||
case FORMAT_UP:
|
||||
case FORMAT_DOWN:
|
||||
case FORMAT_LEFTGUILLEMET:
|
||||
case FORMAT_TICK:
|
||||
case FORMAT_CROSS:
|
||||
case FORMAT_RIGHT:
|
||||
case FORMAT_RIGHTGUILLEMET:
|
||||
case FORMAT_SMALLUP:
|
||||
case FORMAT_SMALLDOWN:
|
||||
case FORMAT_LEFT:
|
||||
case FORMAT_OPENQUOTES:
|
||||
case FORMAT_ENDQUOTES:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma endregion
|
|
@ -323,129 +323,6 @@ const rct_string_id DateGameShortMonthNames[MONTH_COUNT] = {
|
|||
STR_MONTH_SHORT_OCT,
|
||||
};
|
||||
|
||||
#pragma region Format codes
|
||||
|
||||
typedef struct format_code_token {
|
||||
uint32 code;
|
||||
const char *token;
|
||||
} format_code_token;
|
||||
|
||||
format_code_token format_code_tokens[] = {
|
||||
{ FORMAT_MOVE_X, "MOVE_X" },
|
||||
{ FORMAT_ADJUST_PALETTE, "ADJUST_PALETTE" },
|
||||
{ FORMAT_NEWLINE, "NEWLINE" },
|
||||
{ FORMAT_NEWLINE_SMALLER, "NEWLINE_SMALLER" },
|
||||
{ FORMAT_TINYFONT, "TINYFONT" },
|
||||
{ FORMAT_BIGFONT, "BIGFONT" },
|
||||
{ FORMAT_MEDIUMFONT, "MEDIUMFONT" },
|
||||
{ FORMAT_SMALLFONT, "SMALLFONT" },
|
||||
{ FORMAT_OUTLINE, "OUTLINE" },
|
||||
{ FORMAT_OUTLINE_OFF, "OUTLINE_OFF" },
|
||||
{ FORMAT_WINDOW_COLOUR_1, "WINDOW_COLOUR_1" },
|
||||
{ FORMAT_WINDOW_COLOUR_2, "WINDOW_COLOUR_2" },
|
||||
{ FORMAT_WINDOW_COLOUR_3, "WINDOW_COLOUR_3" },
|
||||
{ FORMAT_NEWLINE_X_Y, "NEWLINE_X_Y" },
|
||||
{ FORMAT_INLINE_SPRITE, "INLINE_SPRITE" },
|
||||
{ FORMAT_ENDQUOTES, "ENDQUOTES" },
|
||||
{ FORMAT_COMMA32, "COMMA32" },
|
||||
{ FORMAT_INT32, "INT32" },
|
||||
{ FORMAT_COMMA2DP32, "COMMA2DP32" },
|
||||
{ FORMAT_COMMA16, "COMMA16" },
|
||||
{ FORMAT_UINT16, "UINT16" },
|
||||
{ FORMAT_CURRENCY2DP, "CURRENCY2DP" },
|
||||
{ FORMAT_CURRENCY, "CURRENCY" },
|
||||
{ FORMAT_STRINGID, "STRINGID" },
|
||||
{ FORMAT_STRINGID2, "STRINGID2" },
|
||||
{ FORMAT_STRING, "STRING" },
|
||||
{ FORMAT_MONTHYEAR, "MONTHYEAR" },
|
||||
{ FORMAT_MONTH, "MONTH" },
|
||||
{ FORMAT_VELOCITY, "VELOCITY" },
|
||||
{ FORMAT_POP16, "POP16" },
|
||||
{ FORMAT_PUSH16, "PUSH16" },
|
||||
{ FORMAT_DURATION, "DURATION" },
|
||||
{ FORMAT_REALTIME, "REALTIME" },
|
||||
{ FORMAT_LENGTH, "LENGTH" },
|
||||
{ FORMAT_SPRITE, "SPRITE" },
|
||||
{ FORMAT_BLACK, "BLACK" },
|
||||
{ FORMAT_GREY, "GREY" },
|
||||
{ FORMAT_WHITE, "WHITE" },
|
||||
{ FORMAT_RED, "RED" },
|
||||
{ FORMAT_GREEN, "GREEN" },
|
||||
{ FORMAT_YELLOW, "YELLOW" },
|
||||
{ FORMAT_TOPAZ, "TOPAZ" },
|
||||
{ FORMAT_CELADON, "CELADON" },
|
||||
{ FORMAT_BABYBLUE, "BABYBLUE" },
|
||||
{ FORMAT_PALELAVENDER, "PALELAVENDER" },
|
||||
{ FORMAT_PALEGOLD, "PALEGOLD" },
|
||||
{ FORMAT_LIGHTPINK, "LIGHTPINK" },
|
||||
{ FORMAT_PEARLAQUA, "PEARLAQUA" },
|
||||
{ FORMAT_PALESILVER, "PALESILVER" },
|
||||
{ FORMAT_AMINUSCULE, "AMINUSCULE" },
|
||||
{ FORMAT_UP, "UP" },
|
||||
{ FORMAT_POUND, "POUND" },
|
||||
{ FORMAT_YEN, "YEN" },
|
||||
{ FORMAT_COPYRIGHT, "COPYRIGHT" },
|
||||
{ FORMAT_DOWN, "DOWN" },
|
||||
{ FORMAT_LEFTGUILLEMET, "LEFTGUILLEMET" },
|
||||
{ FORMAT_TICK, "TICK" },
|
||||
{ FORMAT_CROSS, "CROSS" },
|
||||
{ FORMAT_RIGHT, "RIGHT" },
|
||||
{ FORMAT_DEGREE, "DEGREE" },
|
||||
{ FORMAT_SQUARED, "SQUARED" },
|
||||
{ FORMAT_OPENQUOTES, "OPENQUOTES" },
|
||||
{ FORMAT_EURO, "EURO" },
|
||||
{ FORMAT_APPROX, "APPROX" },
|
||||
{ FORMAT_POWERNEGATIVEONE, "POWERNEGATIVEONE" },
|
||||
{ FORMAT_BULLET, "BULLET" },
|
||||
{ FORMAT_RIGHTGUILLEMET, "RIGHTGUILLEMET" },
|
||||
{ FORMAT_SMALLUP, "SMALLUP" },
|
||||
{ FORMAT_SMALLDOWN, "SMALLDOWN" },
|
||||
{ FORMAT_LEFT, "LEFT" },
|
||||
{ FORMAT_INVERTEDQUESTION, "INVERTEDQUESTION" },
|
||||
{ FORMAT_COMMA1DP16, "COMMA1DP16" }
|
||||
};
|
||||
|
||||
uint32 format_get_code(const char *token)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < countof(format_code_tokens); i++)
|
||||
if (_strcmpi(token, format_code_tokens[i].token) == 0)
|
||||
return format_code_tokens[i].code;
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char *format_get_token(uint32 code)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < countof(format_code_tokens); i++)
|
||||
if (code == format_code_tokens[i].code)
|
||||
return format_code_tokens[i].token;
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool utf8_should_use_sprite_for_codepoint(int codepoint)
|
||||
{
|
||||
switch (codepoint) {
|
||||
case FORMAT_UP:
|
||||
case FORMAT_DOWN:
|
||||
case FORMAT_LEFTGUILLEMET:
|
||||
case FORMAT_TICK:
|
||||
case FORMAT_CROSS:
|
||||
case FORMAT_RIGHT:
|
||||
case FORMAT_RIGHTGUILLEMET:
|
||||
case FORMAT_SMALLUP:
|
||||
case FORMAT_SMALLDOWN:
|
||||
case FORMAT_LEFT:
|
||||
case FORMAT_OPENQUOTES:
|
||||
case FORMAT_ENDQUOTES:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
|
||||
#define format_push_char_safe(C) { *(*dest)++ = (C); --(*size); }
|
||||
#define format_handle_overflow(X) if ((*size) <= (X)) { *(*dest) = '\0'; (*size) = 0; return; }
|
||||
#define format_push_char(C) { format_handle_overflow(1); format_push_char_safe(C); }
|
||||
|
|
Loading…
Reference in New Issue