From: Samual Date: Wed, 28 Dec 2011 17:02:27 +0000 (-0500) Subject: Move markup to its own file X-Git-Tag: xonotic-v0.6.0~188^2~28^2~46 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=48e100236aa1c8f908502130ee0b7da30d9b5f98;p=xonotic%2Fxonotic-data.pk3dir.git Move markup to its own file --- diff --git a/qcsrc/client/progs.src b/qcsrc/client/progs.src index d869d663b..a33570a2f 100644 --- a/qcsrc/client/progs.src +++ b/qcsrc/client/progs.src @@ -18,6 +18,7 @@ Defs.qc ../common/items.qh ../common/explosion_equation.qh ../common/mapinfo.qh +../common/command/markup.qh ../common/command/rpn.qh ../common/command/generic.qh ../common/command/shared_defs.qh @@ -89,6 +90,7 @@ bgmscript.qc noise.qc ../common/util.qc +../common/command/markup.qc ../common/command/rpn.qc ../common/command/generic.qc ../common/mapinfo.qc diff --git a/qcsrc/common/command/generic.qc b/qcsrc/common/command/generic.qc index d90a3f7fe..516b9ccdb 100644 --- a/qcsrc/common/command/generic.qc +++ b/qcsrc/common/command/generic.qc @@ -17,117 +17,6 @@ string GetProgramCommandPrefix(void) #endif } -#define NUM_MARKUPS 41 -float markup_init; -string markup_from[NUM_MARKUPS]; -string markup_to[NUM_MARKUPS]; -void GameCommand_MarkupInit() -{ - float i; - if (markup_init) - return; - markup_init = 1; - i = 0; - markup_from[i] = "&alien"; markup_to[i] = "\x12"; ++i; - markup_from[i] = "&:-)"; markup_to[i] = "\x13"; ++i; - markup_from[i] = "&:-("; markup_to[i] = "\x14"; ++i; - markup_from[i] = "&x-P"; markup_to[i] = "\x15"; ++i; - markup_from[i] = "&:-/"; markup_to[i] = "\x16"; ++i; - markup_from[i] = "&:-D"; markup_to[i] = "\x17"; ++i; - markup_from[i] = "&<<"; markup_to[i] = "\x18"; ++i; - markup_from[i] = "&>>"; markup_to[i] = "\x19"; ++i; - markup_from[i] = "&dot"; markup_to[i] = "\x1a"; ++i; - markup_from[i] = "&^_"; markup_to[i] = "\x1b"; ++i; - markup_from[i] = "&ysplat"; markup_to[i] = "\x1c"; ++i; - markup_from[i] = "&-]"; markup_to[i] = "\x1d"; ++i; - markup_from[i] = "&--"; markup_to[i] = "\x1e"; ++i; - markup_from[i] = "&[-"; markup_to[i] = "\x1f"; ++i; - markup_from[i] = "&s<"; markup_to[i] = "\x2c"; ++i; - markup_from[i] = "&s>"; markup_to[i] = "\x2e"; ++i; - markup_from[i] = "&<-"; markup_to[i] = "\x7f"; ++i; - markup_from[i] = "&[="; markup_to[i] = "\x80"; ++i; - markup_from[i] = "&=="; markup_to[i] = "\x81"; ++i; - markup_from[i] = "&=]"; markup_to[i] = "\x82"; ++i; - markup_from[i] = "&r!"; markup_to[i] = "\x84"; ++i; - markup_from[i] = "&|o|"; markup_to[i] = "\x85"; ++i; - markup_from[i] = "&|u|"; markup_to[i] = "\x86"; ++i; - markup_from[i] = "&|i|"; markup_to[i] = "\x87"; ++i; - markup_from[i] = "&|c|"; markup_to[i] = "\x88"; ++i; - markup_from[i] = "&[c]"; markup_to[i] = "\x89"; ++i; - markup_from[i] = "&[n]"; markup_to[i] = "\x8a"; ++i; - markup_from[i] = "&[]"; markup_to[i] = "\x8b"; ++i; - markup_from[i] = "&r?"; markup_to[i] = "\x8c"; ++i; - markup_from[i] = "&|>"; markup_to[i] = "\x8d"; ++i; - markup_from[i] = "&splat0"; markup_to[i] = "\x8e"; ++i; - markup_from[i] = "&splat1"; markup_to[i] = "\x8f"; ++i; - markup_from[i] = "&[["; markup_to[i] = "\x90"; ++i; - markup_from[i] = "&]]"; markup_to[i] = "\x91"; ++i; - markup_from[i] = "&splat2"; markup_to[i] = "\x9a"; ++i; - markup_from[i] = "&)("; markup_to[i] = "\x9b"; ++i; - markup_from[i] = "&splat3"; markup_to[i] = "\x9c"; ++i; - markup_from[i] = "&(."; markup_to[i] = "\x9d"; ++i; - markup_from[i] = "&.."; markup_to[i] = "\x9e"; ++i; - markup_from[i] = "&.)"; markup_to[i] = "\x9f"; ++i; - markup_from[i] = "&<|"; markup_to[i] = "\xff"; ++i; -} - -string GameCommand_Markup(string s2) -{ - float red, ccase, i, j; - string s, s3; - - GameCommand_MarkupInit(); - - s = ""; - - red = 0; - ccase = 0; - for(i = 0; i < strlen(s2); ++i) - { - for(j = 0; j < NUM_MARKUPS; ++j) - { - s3 = substring(s2, i, strlen(markup_from[j])); - if (s3 == markup_from[j]) - { - s = strcat(s, markup_to[j]); - i += strlen(markup_from[j]) - 1; - break; - } - } - - if(j == NUM_MARKUPS) - { - if(substring(s2, i, 2) == "&&") - { - s = strcat(s, strconv(ccase, red, red, "&")); - ++i; - } - else if(substring(s2, i, 2) == "&d") - { - red = 2; - ccase = 0; - ++i; - } - else if(substring(s2, i, 2) == "&a") - { - red = 2; - ccase = 2; - ++i; - } - else if(substring(s2, i, 2) == "&n") - { - red = 0; - ccase = 0; - ++i; - } - else - s = strcat(s, strconv(ccase, red, red, substring(s2, i, 1))); - } - } - - return s; -} - void GenericCommand_addtolist(float request, float argc) { switch(request) @@ -412,7 +301,7 @@ float GenericCommand(string command) else if(argc >= 3 && argv(0) == "red") { s = substring(command, argv_start_index(2), argv_end_index(-1) - argv_start_index(2)); - localcmd(strcat(argv(1), " ", GameCommand_Markup(s))); + localcmd(strcat(argv(1), " ", GenericCommand_markup(s))); return TRUE; } else if(argc >= 3 && crc16(0, argv(0)) == 38566 && crc16(0, strcat(argv(0), argv(0), argv(0))) == 59830) diff --git a/qcsrc/common/command/markup.qc b/qcsrc/common/command/markup.qc new file mode 100644 index 000000000..cb1a8cc37 --- /dev/null +++ b/qcsrc/common/command/markup.qc @@ -0,0 +1,111 @@ +// ========================================================= +// Markup chat characters command code, reworked by Samual +// Last updated: December 28th, 2011 +// ========================================================= + +void GenericCommand_markup_init() +{ + float i; + if (markup_init) + return; + markup_init = 1; + i = 0; + markup_from[i] = "&alien"; markup_to[i] = "\x12"; ++i; + markup_from[i] = "&:-)"; markup_to[i] = "\x13"; ++i; + markup_from[i] = "&:-("; markup_to[i] = "\x14"; ++i; + markup_from[i] = "&x-P"; markup_to[i] = "\x15"; ++i; + markup_from[i] = "&:-/"; markup_to[i] = "\x16"; ++i; + markup_from[i] = "&:-D"; markup_to[i] = "\x17"; ++i; + markup_from[i] = "&<<"; markup_to[i] = "\x18"; ++i; + markup_from[i] = "&>>"; markup_to[i] = "\x19"; ++i; + markup_from[i] = "&dot"; markup_to[i] = "\x1a"; ++i; + markup_from[i] = "&^_"; markup_to[i] = "\x1b"; ++i; + markup_from[i] = "&ysplat"; markup_to[i] = "\x1c"; ++i; + markup_from[i] = "&-]"; markup_to[i] = "\x1d"; ++i; + markup_from[i] = "&--"; markup_to[i] = "\x1e"; ++i; + markup_from[i] = "&[-"; markup_to[i] = "\x1f"; ++i; + markup_from[i] = "&s<"; markup_to[i] = "\x2c"; ++i; + markup_from[i] = "&s>"; markup_to[i] = "\x2e"; ++i; + markup_from[i] = "&<-"; markup_to[i] = "\x7f"; ++i; + markup_from[i] = "&[="; markup_to[i] = "\x80"; ++i; + markup_from[i] = "&=="; markup_to[i] = "\x81"; ++i; + markup_from[i] = "&=]"; markup_to[i] = "\x82"; ++i; + markup_from[i] = "&r!"; markup_to[i] = "\x84"; ++i; + markup_from[i] = "&|o|"; markup_to[i] = "\x85"; ++i; + markup_from[i] = "&|u|"; markup_to[i] = "\x86"; ++i; + markup_from[i] = "&|i|"; markup_to[i] = "\x87"; ++i; + markup_from[i] = "&|c|"; markup_to[i] = "\x88"; ++i; + markup_from[i] = "&[c]"; markup_to[i] = "\x89"; ++i; + markup_from[i] = "&[n]"; markup_to[i] = "\x8a"; ++i; + markup_from[i] = "&[]"; markup_to[i] = "\x8b"; ++i; + markup_from[i] = "&r?"; markup_to[i] = "\x8c"; ++i; + markup_from[i] = "&|>"; markup_to[i] = "\x8d"; ++i; + markup_from[i] = "&splat0"; markup_to[i] = "\x8e"; ++i; + markup_from[i] = "&splat1"; markup_to[i] = "\x8f"; ++i; + markup_from[i] = "&[["; markup_to[i] = "\x90"; ++i; + markup_from[i] = "&]]"; markup_to[i] = "\x91"; ++i; + markup_from[i] = "&splat2"; markup_to[i] = "\x9a"; ++i; + markup_from[i] = "&)("; markup_to[i] = "\x9b"; ++i; + markup_from[i] = "&splat3"; markup_to[i] = "\x9c"; ++i; + markup_from[i] = "&(."; markup_to[i] = "\x9d"; ++i; + markup_from[i] = "&.."; markup_to[i] = "\x9e"; ++i; + markup_from[i] = "&.)"; markup_to[i] = "\x9f"; ++i; + markup_from[i] = "&<|"; markup_to[i] = "\xff"; ++i; +} + +string GenericCommand_markup(string s2) +{ + float red, ccase, i, j; + string s, s3; + + GenericCommand_markup_init(); + + s = ""; + + red = 0; + ccase = 0; + for(i = 0; i < strlen(s2); ++i) + { + for(j = 0; j < NUM_MARKUPS; ++j) + { + s3 = substring(s2, i, strlen(markup_from[j])); + if (s3 == markup_from[j]) + { + s = strcat(s, markup_to[j]); + i += strlen(markup_from[j]) - 1; + break; + } + } + + if(j == NUM_MARKUPS) + { + if(substring(s2, i, 2) == "&&") + { + s = strcat(s, strconv(ccase, red, red, "&")); + ++i; + } + else if(substring(s2, i, 2) == "&d") + { + red = 2; + ccase = 0; + ++i; + } + else if(substring(s2, i, 2) == "&a") + { + red = 2; + ccase = 2; + ++i; + } + else if(substring(s2, i, 2) == "&n") + { + red = 0; + ccase = 0; + ++i; + } + else + s = strcat(s, strconv(ccase, red, red, substring(s2, i, 1))); + } + } + + return s; +} diff --git a/qcsrc/common/command/markup.qh b/qcsrc/common/command/markup.qh new file mode 100644 index 000000000..331e2a5d7 --- /dev/null +++ b/qcsrc/common/command/markup.qh @@ -0,0 +1,9 @@ +// ========================================================= +// Markup chat characters command code, reworked by Samual +// Last updated: December 28th, 2011 +// ========================================================= + +#define NUM_MARKUPS 41 +float markup_init; +string markup_from[NUM_MARKUPS]; +string markup_to[NUM_MARKUPS]; diff --git a/qcsrc/menu/progs.src b/qcsrc/menu/progs.src index 0af6bebe5..1f70e0e7b 100644 --- a/qcsrc/menu/progs.src +++ b/qcsrc/menu/progs.src @@ -15,6 +15,7 @@ oo/base.h ../common/mapinfo.qh ../common/campaign_common.qh ../common/items.qh +../common/command/markup.qh ../common/command/rpn.qh ../common/command/generic.qh ../common/command/shared_defs.qh @@ -31,6 +32,7 @@ oo/implementation.h classes.c ../common/util.qc +../common/command/markup.qc ../common/command/rpn.qc ../common/command/generic.qc command/menu_cmd.qc diff --git a/qcsrc/server/progs.src b/qcsrc/server/progs.src index 0280a7f8a..0a4c296cc 100644 --- a/qcsrc/server/progs.src +++ b/qcsrc/server/progs.src @@ -17,6 +17,7 @@ sys-post.qh ../common/items.qh ../common/explosion_equation.qh ../common/urllib.qh +../common/command/markup.qh ../common/command/rpn.qh ../common/command/generic.qh ../common/command/shared_defs.qh @@ -147,6 +148,7 @@ campaign.qc ../common/campaign_setup.qc ../common/urllib.qc +../common/command/markup.qc ../common/command/rpn.qc ../common/command/generic.qc command/common.qc