Step towards TC upgrade

This commit is contained in:
John W. C. McNabb 2006-11-05 17:45:32 +00:00
parent 12f9e65110
commit 735bc2afaf
6 changed files with 107 additions and 72 deletions

View file

@ -212,6 +212,35 @@ name=moveto
x="0-38"
y="0-20"
[/remove_shroud]
[message]
speaker=narrator
image=units/elves-wood/captain.png~TC(3,magenta)
message=_ "Now I am on the green team."
[/message]
[/event]
[item]
x,y=12,6
image="items/orcish-flag.png"
[/item]
[label]
x,y=12,6
text="change coloring"
[/label]
[event]
name=moveto
first_time_only=no
[filter]
side=1
x=12
y=6
[/filter]
[message]
speaker=narrator
image=units/elves-wood/captain.png~TC(3,magenta)
message=_ "Now I am on the green team."
[/message]
[/event]
[item]

View file

@ -1,62 +1,62 @@
[team_color]
side=1
[color_range]
id=1
team_rgb=255,0,0,255,255,255,0,0,0,255,0,0
name= _ "Red"
[/team_color]
[/color_range]
[team_color]
side=2
[color_range]
id=2
team_rgb=46,65,155,255,255,255,15,15,15,0,0,255
name= _ "Blue"
[/team_color]
[/color_range]
[team_color]
side=3
[color_range]
id=3
team_rgb=98,182,100,255,255,255,0,0,0,0,255,0
name= _ "Green"
[/team_color]
[/color_range]
[team_color]
side=4
[color_range]
id=4
team_rgb=147,0,157,255,255,255,0,0,0,255,0,255
name= _ "Purple"
[/team_color]
[/color_range]
[team_color]
side=7
[color_range]
id=7
team_rgb=240,114,0,240,240,240,0,0,0,255,170,0
name= _ "Orange"
[/team_color]
[/color_range]
[team_color]
side=5
[color_range]
id=5
team_rgb=90,90,90,255,255,255,0,0,0,0,0,0
name= _ "Black"
[/team_color]
[/color_range]
[team_color]
side=8
[color_range]
id=8
team_rgb=225,225,225,255,255,255,30,30,30,255,255,255
name= _ "White"
[/team_color]
[/color_range]
[team_color]
side=6
[color_range]
id=6
team_rgb=148,80,39,255,255,255,0,0,0,170,70,0
name= _ "Brown"
[/team_color]
[/color_range]
[team_color]
side=9
[color_range]
id=9
team_rgb=48,203,192,255,255,255,0,0,0,0,240,200
name= _ "Teal"
[/team_color]
[/color_range]
[team_colors]
[color_palette]
magenta=244,154,193,63,0,22,85,0,42,105,0,57,123,0,69,140,0,81,158,0,93,177,0,105,195,0,116,214,0,127,236,0,140,238,61,150,239,91,161,241,114,172,242,135,182,246,173,205,248,193,217,250,213,229,253,233,241
green=0,200,0,0,255,0,0,254,0,0,253,0,0,252,0,0,251,0,0,250,0,0,249,0,0,248,0,0,247,0,0,246,0,0,245,0,0,244,0,0,243,0,0,242,0,0,241,0,0,240,0,0,239,0,0,238,0,0,237,0,0,236,0,0,235,0,0,234,0,0,233,0,0,232,0,0,231,0,0,230,0,0,229,0,0,228,0,0,227,0,0,226,0,0,225,0,0,224,0,0,223,0,0,222,0,0,221,0,0,220,0,0,219,0,0,218,0,0,217,0,0,216,0,0,215,0,0,214,0,0,213,0,0,212,0,0,211,0,0,210,0,0,209,0,0,208,0,0,207,0,0,206,0,0,205,0,0,204,0,0,203,0,0,202,0,0,201,0,0,199,0,0,198,0,0,197,0,0,196,0,0,195,0,0,194,0,0,193,0,0,192,0,0,191,0,0,190,0,0,189,0,0,188,0,0,187,0,0,186,0,0,185,0,0,184,0,0,183,0,0,182,0,0,181,0,0,180,0,0,179,0,0,178,0,0,177,0,0,176,0,0,175,0,0,174,0,0,173,0,0,172,0,0,171,0,0,170,0,0,169,0,0,168,0,0,167,0,0,166,0,0,165,0,0,164,0,0,163,0,0,162,0,0,161,0,0,160,0,0,159,0,0,158,0,0,157,0,0,156,0,0,155,0,0,154,0,0,153,0,0,152,0,0,151,0,0,150,0,0,149,0,0,148,0,0,147,0,0,146,0,0,145,0,0,144,0,0,143,0,0,142,0,0,141,0,0,140,0,0,139,0,0,138,0,0,137,0,0,136,0,0,135,0,0,134,0,0,133,0,0,132,0,0,131,0,0,130,0,0,129,0,0,128,0,0,127,0,0,126,0,0,125,0,0,124,0,0,123,0,0,122,0,0,121,0,0,120,0,0,119,0,0,118,0,0,117,0,0,116,0,0,115,0,0,114,0,0,113,0,0,112,0,0,111,0,0,110,0,0,109,0,0,108,0,0,107,0,0,106,0,0,105,0,0,104,0,0,103,0,0,102,0,0,101,0,0,100,0,0,99,0,0,98,0,0,97,0,0,96,0,0,95,0,0,94,0,0,93,0,0,92,0,0,91,0,0,90,0,0,89,0,0,88,0,0,87,0,0,86,0,0,85,0,0,84,0,0,83,0,0,82,0,0,81,0,0,80,0,0,79,0,0,78,0,0,77,0,0,76,0,0,75,0,0,74,0,0,73,0,0,72,0,0,71,0,0,70,0,0,69,0,0,68,0,0,67,0,0,66,0,0,65,0,0,64,0,0,63,0,0,62,0,0,61,0,0,60,0,0,59,0,0,58,0,0,57,0,0,56,0,0,55,0,0,54,0,0,53,0,0,52,0,0,51,0,0,50,0,0,49,0,0,48,0,0,47,0,0,46,0,0,45,0,0,44,0,0,43,0,0,42,0,0,41,0,0,40,0,0,39,0,0,38,0,0,37,0,0,36,0,0,35,0,0,34,0,0,33,0,0,32,0,0,31,0,0,30,0,0,29,0,0,28,0,0,27,0,0,26,0,0,25,0,0,24,0,0,23,0,0,22,0,0,21,0,0,20,0,0,19,0,0,18,0,0,17,0,0,16,0,0,15,0,0,14,0,0,13,0,0,12,0,0,11,0,0,10,0,0,9,0,0,8,0,0,7,0,0,6,0,0,5,0,0,4,0,0,3,0,0,2,0,0,1,0
[/team_colors]
[/color_palette]

View file

@ -162,17 +162,17 @@ namespace game_config
level_image = v["level_image"];
ellipsis_image = v["ellipsis_image"];
const config::child_list& team_colors = v.get_children("team_color");
const config::child_list& team_colors = v.get_children("color_range");
for(config::child_list::const_iterator teamC = team_colors.begin(); teamC != team_colors.end(); ++teamC) {
if(!(**teamC)["side"].empty() && !(**teamC)["team_rgb"].empty()){
int side = atoi((**teamC)["side"].c_str());
if(!(**teamC)["id"].empty() && !(**teamC)["team_rgb"].empty()){
int side = atoi((**teamC)["id"].c_str());
std::vector<Uint32> temp = string2rgb((**teamC)["team_rgb"]);
team_rgb_range[side] = color_range(temp);
team_rgb_name[side] = (**teamC)["name"];
}
}
const config* rgbv = v.child("team_colors");
const config* rgbv = v.child("color_palette");
if(rgbv) {
for(string_map::const_iterator rgb_it = rgbv->values.begin(); rgb_it != rgbv->values.end(); ++rgb_it) {
try {

View file

@ -23,6 +23,7 @@
#include "util.hpp"
#include "wassert.hpp"
#include "wesconfig.h"
#include "serialization/string_utils.hpp"
#include "SDL_image.h"
@ -139,19 +140,23 @@ void locator::parse_arguments()
return;
}
size_t markup_field = fn.find('~');
while(markup_field != std::string::npos) {
size_t open_field = fn.find('(',markup_field);
size_t close_field = fn.find(')',markup_field);
if(open_field == std::string::npos || close_field == std::string::npos) {
return;
std::string left_par="(";
std::string right_par=")";
if(markup_field != std::string::npos) {
std::string markup_string = fn.substr(markup_field+1, fn.size() - markup_field );
fn = fn.substr(0,markup_field);
std::vector<std::string> farg = utils::paranthetical_split(markup_string,left_par,right_par);
std::vector<std::string>::const_iterator i = farg.begin();
while(i!=farg.end()){
std::string function=*i++;
if(i==farg.end()){
return;
}
std::string field = *i++;
if(function == "TC") {
get_tc_info(field);
}
}
std::string field = fn.substr(open_field+1,close_field-open_field-1);
std::string function = fn.substr(markup_field+1,open_field-markup_field-1);
fn = fn.substr(0,markup_field) + fn.substr(close_field+1);
if(function == "TC") {
get_tc_info(field);
}
markup_field = fn.find('~');
}
}

View file

@ -206,7 +206,7 @@ std::vector< std::string > split(std::string const &val, char c, int flags)
//Empty elements are never removed as they are placeholders.
//parenthetical_split("a(b)c{d}e(f{g})h","({",")}") should return a vector of
// <"a","b","c","d","e","f{g}","h">
std::vector< std::string > paranthetical_plit(std::string const &val, std::string const &left, std::string const &right,int flags)
std::vector< std::string > paranthetical_split(std::string const &val, std::string const &left, std::string const &right,int flags)
{
std::vector< std::string > res;
std::vector<char> part;
@ -214,31 +214,16 @@ std::vector< std::string > paranthetical_plit(std::string const &val, std::strin
std::string::const_iterator i1 = val.begin();
std::string::const_iterator i2 = val.begin();
std::string lp=left;
std::string rp=right;
if(left.size()!=right.size()){
ERR_GENERAL << "Left and Right Parenthesis lists not same length\n";
return res;
}
while (i2 != val.end()) {
for(size_t i=0; i < left.size(); i++){
if (*i2 == left[i]){
if (part.size()==0){
std::string new_val(i1, i2);
if (flags & STRIP_SPACES)
strip(new_val);
res.push_back(new_val);
++i2;
if (flags & STRIP_SPACES) {
while (i2 != val.end() && *i2 == ' ')
++i2;
}
i1=i2;
}
part.push_back(right[i]);
i=left.size();
}
}
if(*i2 == part.back()){
if(part.size() && *i2 == part.back()){
part.pop_back();
if(part.size() == 0){
std::string new_val(i1, i2);
@ -246,14 +231,30 @@ std::vector< std::string > paranthetical_plit(std::string const &val, std::strin
strip(new_val);
res.push_back(new_val);
++i2;
if (flags & STRIP_SPACES) {
while (i2 != val.end() && *i2 == ' ')
++i2;
}
i1=i2;
}else{
++i2;
}
}
++i2;
break;
}
for(size_t i=0; i < lp.size(); i++){
if (*i2 == lp[i]){
if (part.size()==0){
std::string new_val(i1, i2);
if (flags & STRIP_SPACES)
strip(new_val);
res.push_back(new_val);
++i2;
i1=i2;
}else{
++i2;
}
part.push_back(rp[i]);
break;
}else{
++i2;
}
}
}
std::string new_val(i1, i2);

View file

@ -49,7 +49,7 @@ bool notspace(char c);
// STRIP_SPACES : strips leading and trailing blank spaces
enum { REMOVE_EMPTY = 0x01, STRIP_SPACES = 0x02 };
std::vector< std::string > split(std::string const &val, char c = ',', int flags = REMOVE_EMPTY | STRIP_SPACES);
std::vector< std::string > paranthetical_plit(std::string const &val, std::string const &left="(", std::string const &right=")",int flags = STRIP_SPACES);
std::vector< std::string > paranthetical_split(std::string const &val, std::string const &left="(", std::string const &right=")",int flags = STRIP_SPACES);
std::string join(std::vector< std::string > const &v, char c = ',');
std::vector< std::string > quoted_split(std::string const &val, char c= ',',
int flags = REMOVE_EMPTY | STRIP_SPACES, char quote = '\\');