mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-04 06:00:15 +00:00
(svn r21707) -Fix [FS#4371]: bit too strict assertion on validness of console colours
This commit is contained in:
parent
e1a6485c22
commit
830f334410
@ -32,4 +32,6 @@ void IConsoleError(const char *string);
|
||||
/* Parser */
|
||||
void IConsoleCmdExec(const char *cmdstr);
|
||||
|
||||
bool IsValidConsoleColour(TextColour c);
|
||||
|
||||
#endif /* CONSOLE_FUNC_H */
|
||||
|
@ -494,3 +494,24 @@ void IConsoleGUIPrint(TextColour colour_code, char *str)
|
||||
new IConsoleLine(str, colour_code);
|
||||
SetWindowDirty(WC_CONSOLE, 0);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check whether the given TextColour is valid for console usage.
|
||||
* @param c The text colour to compare to.
|
||||
* @return true iff the TextColour is valid for console usage.
|
||||
*/
|
||||
bool IsValidConsoleColour(TextColour c)
|
||||
{
|
||||
/* A normal text colour is used. */
|
||||
if (!(c & TC_IS_PALETTE_COLOUR)) return TC_BEGIN <= c && c < TC_END;
|
||||
|
||||
/* A text colour from the palette is used; must be the company
|
||||
* colour gradient, so it must be one of those. */
|
||||
c &= ~TC_IS_PALETTE_COLOUR;
|
||||
for (uint i = TC_BEGIN; i < TC_END; i++) {
|
||||
if (_colour_gradient[i][4] == c) return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
@ -30,10 +30,4 @@ static const TextColour CC_DEBUG = TC_LIGHT_BROWN; ///< Colour for debug outpu
|
||||
static const TextColour CC_COMMAND = TC_GOLD; ///< Colour for the console's commands.
|
||||
static const TextColour CC_WHITE = TC_WHITE; ///< White console lines for various things such as the welcome.
|
||||
|
||||
static inline bool IsValidConsoleColour(uint c)
|
||||
{
|
||||
return c == CC_DEFAULT || c == CC_ERROR || c == CC_WARNING || c == CC_INFO ||
|
||||
c == CC_DEBUG || c == CC_COMMAND || c == CC_WHITE;
|
||||
}
|
||||
|
||||
#endif /* CONSOLE_TYPE_H */
|
||||
|
Loading…
Reference in New Issue
Block a user