Add: {COLOUR} control code to allow colour changes at runtime

This commit is contained in:
glx22 2023-04-15 04:32:13 +02:00 committed by Loïc Guilloux
parent 88138c55f8
commit b1fb209bed
3 changed files with 8 additions and 0 deletions

View File

@ -1624,6 +1624,12 @@ static void FormatString(StringBuilder &builder, const char *str_arg, StringPara
break;
}
case SCC_COLOUR: { // {COLOUR}
StringControlCode scc = (StringControlCode)(SCC_BLUE + args.GetInt32(SCC_COLOUR));
if (IsInsideMM(scc, SCC_BLUE, SCC_COLOUR)) builder.Utf8Encode(scc);
break;
}
default:
builder.Utf8Encode(b);
break;

View File

@ -114,6 +114,7 @@ enum StringControlCode {
SCC_GRAY,
SCC_DKBLUE,
SCC_BLACK,
SCC_COLOUR,
SCC_PUSH_COLOUR,
SCC_POP_COLOUR,

View File

@ -58,6 +58,7 @@ static const CmdStruct _cmd_structs[] = {
{"GRAY", EmitSingleChar, SCC_GRAY, 0, -1, C_DONTCOUNT},
{"DKBLUE", EmitSingleChar, SCC_DKBLUE, 0, -1, C_DONTCOUNT},
{"BLACK", EmitSingleChar, SCC_BLACK, 0, -1, C_DONTCOUNT},
{"COLOUR", EmitSingleChar, SCC_COLOUR, 1, -1, C_NONE},
{"PUSH_COLOUR", EmitSingleChar, SCC_PUSH_COLOUR, 0, -1, C_DONTCOUNT},
{"POP_COLOUR", EmitSingleChar, SCC_POP_COLOUR, 0, -1, C_DONTCOUNT},