Author Topic: Question to the Experts ^^  (Read 3440 times)

mictes

  • Guest
Question to the Experts ^^
« on: 20 December 2008, 13:04:32 »
Hi @ all coders !
I started make a mod, a big project: viewtopic.php?f=4&t=4017
So, for this mod I need to change the map-editor cause I wan't to create an "Advanced Tileset" which combines the most populate tilesets and adds many features like ruins and grass.

So I downloaded the map-editor source files and started to coding a little bit.
I added simply the things I need in main.cpp :

Code: [Select]
//surface
menuBrushSurface= new wxMenu();
menuBrushSurface->AppendCheckItem(miBrushSurface+1, wxT("1 - Grass"));
menuBrushSurface->AppendCheckItem(miBrushSurface+2, wxT("2 - Grass 2"));
menuBrushSurface->AppendCheckItem(miBrushSurface+3, wxT("3 - Grass 3"));
menuBrushSurface->AppendCheckItem(miBrushSurface+4, wxT("4 - Grass 4"));
menuBrushSurface->AppendCheckItem(miBrushSurface+5, wxT("5 - Ground"));
menuBrushSurface->AppendCheckItem(miBrushSurface+6, wxT("6 - Ground 2"));
menuBrushSurface->AppendCheckItem(miBrushSurface+7, wxT("7 - Sand"));
menuBrushSurface->AppendCheckItem(miBrushSurface+8, wxT("8 - Sand 2"));
menuBrushSurface->AppendCheckItem(miBrushSurface+9, wxT("9 - Stone"));
menuBrushSurface->AppendCheckItem(miBrushSurface+10, wxT("10 - Stone 2"));
menuBrushSurface->AppendCheckItem(miBrushSurface+11, wxT("11 - Stone 3"));
menuBrushSurface->AppendCheckItem(miBrushSurface+12, wxT("12 - Road"));
menuBrushSurface->AppendCheckItem(miBrushSurface+13, wxT("13 - Road 2"));
menuBrushSurface->AppendCheckItem(miBrushSurface+14, wxT("14 - Road 3"));
menuBrushSurface->AppendCheckItem(miBrushSurface+15, wxT("15 - Mud"));
menuBrushSurface->AppendCheckItem(miBrushSurface+16, wxT("16 - Crater"));
menuBrushSurface->AppendCheckItem(miBrushSurface+17, wxT("17 - Gravel"));
menuBrushSurface->AppendCheckItem(miBrushSurface+18, wxT("18 - Flowers"));
menuBrushSurface->AppendCheckItem(miBrushSurface+19, wxT("19 - Ice"));
menuBrushSurface->AppendCheckItem(miBrushSurface+20, wxT("20 - Custom 1"));
menuBrush->Append(miBrushSurface, wxT("Surface"), menuBrushSurface);

//objects
menuBrushObject= new wxMenu();
menuBrushObject->AppendCheckItem(miBrushObject+1, wxT("0 - None"));
menuBrushObject->AppendCheckItem(miBrushObject+2, wxT("1 - Forest"));
menuBrushObject->AppendCheckItem(miBrushObject+3, wxT("2 - Dead Forest"));
menuBrushObject->AppendCheckItem(miBrushObject+4, wxT("3 - Winter Forest"));
menuBrushObject->AppendCheckItem(miBrushObject+5, wxT("4 - Tropical Forest"));
menuBrushObject->AppendCheckItem(miBrushObject+6, wxT("5 - Nordic Forest"));
menuBrushObject->AppendCheckItem(miBrushObject+7, wxT("6 - Autumn Forest"));
menuBrushObject->AppendCheckItem(miBrushObject+8, wxT("7 - Tittle Fir"));
menuBrushObject->AppendCheckItem(miBrushObject+9, wxT("8 - Tree Stump"));
menuBrushObject->AppendCheckItem(miBrushObject+10, wxT("9 - Big Tree"));
menuBrushObject->AppendCheckItem(miBrushObject+11, wxT("10 - Stone"));
menuBrushObject->AppendCheckItem(miBrushObject+12, wxT("11 - Bush"));
menuBrushObject->AppendCheckItem(miBrushObject+13, wxT("12 - Water Object"));
menuBrushObject->AppendCheckItem(miBrushObject+14, wxT("13 - Grass"));
menuBrushObject->AppendCheckItem(miBrushObject+15, wxT("14 - Grass 2 2"));
menuBrushObject->AppendCheckItem(miBrushObject+16, wxT("15 - Statue"));
menuBrushObject->AppendCheckItem(miBrushObject+17, wxT("16 - Hanged"));
menuBrushObject->AppendCheckItem(miBrushObject+18, wxT("17 - Impaled"));
menuBrushObject->AppendCheckItem(miBrushObject+19, wxT("18 - Rock"));
menuBrushObject->AppendCheckItem(miBrushObject+20, wxT("19 - Ruin"));
menuBrushObject->AppendCheckItem(miBrushObject+21, wxT("20 - Broken Boat"));
menuBrushObject->AppendCheckItem(miBrushObject+22, wxT("21 - Crystal"));
menuBrushObject->AppendCheckItem(miBrushObject+23, wxT("22 - Custom 1"));

menuBrush->Append(miBrushObject, wxT("Object"), menuBrushObject);

//resources
menuBrushResource= new wxMenu();
menuBrushResource->AppendCheckItem(miBrushResource+1, wxT("0 - None"));
menuBrushResource->AppendCheckItem(miBrushResource+2, wxT("1 - Gold"));
menuBrushResource->AppendCheckItem(miBrushResource+3, wxT("2 - Stone"));
menuBrushResource->AppendCheckItem(miBrushResource+4, wxT("3 - Wood"));
menuBrushResource->AppendCheckItem(miBrushResource+5, wxT("4 - Custom 1"));
menuBrushResource->AppendCheckItem(miBrushResource+6, wxT("5 - Custom 2"));
menuBrushResource->AppendCheckItem(miBrushResource+7, wxT("6 - Custom 3"));
menuBrushResource->AppendCheckItem(miBrushResource+8, wxT("7 - Custom 4"));
menuBrushResource->AppendCheckItem(miBrushResource+9, wxT("8 - Custom 5"));
menuBrush->Append(miBrushResource, wxT("Resource"), menuBrushResource);

//players
menuBrushStartLocation= new wxMenu();
menuBrushStartLocation->AppendCheckItem(miBrushStartLocation+1, wxT("1 - Player 1"));
menuBrushStartLocation->AppendCheckItem(miBrushStartLocation+2, wxT("2 - Player 2"));
menuBrushStartLocation->AppendCheckItem(miBrushStartLocation+3, wxT("3 - Player 3"));
menuBrushStartLocation->AppendCheckItem(miBrushStartLocation+4, wxT("4 - Player 4"));
menuBrush->Append(miBrushStartLocation, wxT("Player"), menuBrushStartLocation);

menuBar->Append(menuBrush, wxT("Brush"));

Ok, all done  :)  BUT in renderer.cpp I now need to define the colors for the new textures and so on, right ?
I understand nothing anymore, In what for a way the colors are defined ?

Code: [Select]
//surface
alt= map->getHeight(i, j)/20.f;
Vec3f surfColor;
switch (map->getSurface(i, j)){
case 1: surfColor= Vec3f(0.0, 0.8f*alt, 0.f); break;
case 2: surfColor= Vec3f(0.4f*alt, 0.6f*alt, 0.f); break;
case 3: surfColor= Vec3f(0.6f*alt, 0.3f*alt, 0.f); break;
case 4: surfColor= Vec3f(0.7f*alt, 0.7f*alt, 0.7f*alt); break;
case 5: surfColor= Vec3f(1.0f*alt, 0.f, 0.f); break;
}
Quote
Vec3f(0.0, 0.8f*alt, 0.f)
How to calculate this ?

Please help!

hailstone

  • Local Moderator
  • Battle Machine
  • ********
  • Posts: 1,568
    • View Profile
Re: Question to the Experts ^^
« Reply #1 on: 22 December 2008, 06:01:56 »
Vec3f is a vector of 3 float values (ie Red, Green, Blue). iirc 1.0f is completely on and 0 is completely off; just experiment to find the colour you want. alt is to do with the height so put that after any that you have on so a change in height is reflected. Also in main.h I think you need to change the surfaceCount, etc to the amount you have. ie. 20 surfaces, 22 objects.
Glest Advanced Engine - Admin/Programmer
https://sourceforge.net/projects/glestae/

mictes

  • Guest
Re: Question to the Experts ^^
« Reply #2 on: 22 December 2008, 09:39:18 »
Thank you,
is there any way I can calculate from other formats like RBG into this one ?

daniel.santos

  • Guest
Re: Question to the Experts ^^
« Reply #3 on: 22 December 2008, 11:00:59 »
Are you talking about RGB expressed in the web format like ffffff?  That's very important to clarify.  If you want to do it in the code, you can use
Code: [Select]
Vec3f(static_cast<float>(0xff) / 255.f, static_cast<float>(0xff) / 255.f, static_cast<float>(0xff) / 255.f); where each place you see the "0xff" you replace with your own values, but you must prefix it with "0x" or you will get either errors or incorrect results.  But that's hard-coding it.

If you mean inputting a 3 byte RGB value from the program, you are on a completely different road and you need to learn a little more C or C++. :p  You basically need to make sure the user input 6 digits exactly and then make sure that they are all hex digits and then convert them into the 3x single byte values, then into floats and then divide them by 255 and feed them into a Vec3f object.
Code: [Select]
int hexChar2Int(char c) {
    if(c >= '0' && c <= '9') {
        return c - '0';
    } else if (c >= 'a' && c <= 'f') {
        return c - 'a' + 10;
    } else if (c >= 'A' && c <= 'F') {
        return c - 'A' + 10;
    } else {
        throw runtime_error("bad hex value");
    }
}

inline int hexPair2Int(const char *hex) {
    return (hexChar2Int(hex[0]) << 4) + hexChar2Int(hex[1]);
}

Vec3f getVec3fFromHex(const string &str) {
    if(str.size != 6) {
        throw runtime_error("naughty, naughty, you didn't give me 6 digits!");
    }
    return Vec3f(
            static_cast<float>(hexPair2Int(str.c_str())) / 255.f,
            static_cast<float>(hexPair2Int(str.c_str() + 2)) / 255.f,
            static_cast<float>(hexPair2Int(str.c_str() + 4)) / 255.f);
}

// then somewhere in your code....
    try {
        Vec3f mycolor = getVec3fFromHex(textbox.getValue()); // however you get the value.
    } catch (runtime_error &e) {
        // tell user the error from e.what() ....
    }
That should at least get you started.

daniel.santos

  • Guest
Re: Question to the Experts ^^
« Reply #4 on: 22 December 2008, 11:06:25 »
Hey! you tricked me into writing the code for GAE's xml files didn't you!?  :O

daniel.santos

  • Guest
Re: Question to the Experts ^^
« Reply #5 on: 22 December 2008, 11:19:39 »
ok, I added it to the stupid XmlNode class so I can include it in 0.2.12 at some point later, when I'm done with the networking code:
shared/include/util/conversion.h
Code: [Select]
int hexChar2Int(char c) {
    if(c >= '0' && c <= '9') {
        return c - '0';
    } else if (c >= 'a' && c <= 'f') {
        return c - 'a' + 10;
    } else if (c >= 'A' && c <= 'F') {
        return c - 'A' + 10;
    } else {
        throw runtime_error("bad hex value");
    }
}

inline int hexPair2Int(const char *hex) {
    return (hexChar2Int(hex[0]) << 4) + hexChar2Int(hex[1]);
}
shared/include/xml/xml_parser.h
Code: [Select]
// in XmlNode class definition, these functions were inlined, they are now outlined
Vec3f getColor3Value() const;
Vec4f getColor4Value() const;
shared/sources/xml/xml_parser.cpp
Code: [Select]
Vec3f XmlNode::getColor3Value() {
XmlAttribute *rgbAttr = getAttribute("rgb", false);
if(rgbAttr) {
const string &str = rgbAttr->getValue();
if(str.size != 6) {
throw runtime_error("rgb attribute does not contain 6 digits");
}
return Vec3f(
static_cast<float>(hexPair2Int(str.c_str())) / 255.f,
static_cast<float>(hexPair2Int(str.c_str() + 2)) / 255.f,
static_cast<float>(hexPair2Int(str.c_str() + 4)) / 255.f);
} else {
return Vec3f(getFloatAttribute("red", 0.f, 1.0f),
getFloatAttribute("green", 0.f, 1.0f),
getFloatAttribute("blue", 0.f, 1.0f));
}
}

Vec4f XmlNode::getColor4Value() {
XmlAttribute *rgbaAttr = getAttribute("rgba", false);
if(rgbAttr) {
const string &str = rgbaAttr->getValue();
if(str.size != 8) {
throw runtime_error("rgba attribute does not contain 8 digits");
}
return Vec4f(
static_cast<float>(hexPair2Int(str.c_str())) / 255.f,
static_cast<float>(hexPair2Int(str.c_str() + 2)) / 255.f,
static_cast<float>(hexPair2Int(str.c_str() + 4)) / 255.f,
static_cast<float>(hexPair2Int(str.c_str() + 6)) / 255.f);
} else {
return Vec4f(getFloatAttribute("red", 0.f, 1.0f),
getFloatAttribute("green", 0.f, 1.0f),
getFloatAttribute("blue", 0.f, 1.0f),
getFloatAttribute("alpha", 0.f, 1.0f));
}
}

EDIT: Ok, I have this in now so in 0.2.12, you'll be able to specify colors in either style.  For RGB
<my-color red="1" blue="0.5" green="0.125"/>
or
<my-color rgb="ff8020"/>
for red, green, blue, alpha:
<my-color red="1" blue="0.5" green="0.125" alpha="0.5"/>
or
<my-color rgba="ff802080"/>

mictes

  • Guest
Re: Question to the Experts ^^
« Reply #6 on: 22 December 2008, 11:49:07 »
Wow, you are really genious, but I understand nothing ^^
Baq to topic:
Could you explain it please on a example ? maybee on #0033ff ? What it is in this system ? Or can I use it directly ?
I didn't understand you 100% cause I'm new to this.
« Last Edit: 22 December 2008, 11:59:34 by mictes »

daniel.santos

  • Guest
Re: Question to the Experts ^^
« Reply #7 on: 22 December 2008, 11:56:31 »
hehe, thanks.  I've just been doing this for a long time.  It's more than I can explain for you to be able to change the map editor application.  But it's just code to convert a string like "e0cc12" into the Vec3f object that everything in Glest understands.  You still have to figure out how to hook it up to whatever user interface you intend to. Maybe you can post more exactly what you want to do.

However, I just finished adding it into GAE (for 0.2.12, whenever that is finished).  So the sun and moon light colors in the tilesets can use it as well as the color and color 2 in particle systems.  This doesn't effect fog color in the tileset.xml, because it's defined differently (color and density).  You cannot prefix it with "#" to it or you'll get an error.

mictes

  • Guest
Re: Question to the Experts ^^
« Reply #8 on: 22 December 2008, 12:03:12 »
So ok, I started a mod: viewtopic.php?f=4&t=4017
For this mod I wanted to start this: viewtopic.php?f=13&t=4021&p=20743#p20743 [Advanced Tileset]

You just need to read the second thing to understand what I want to create. I need much of help with the editor, I never compiled a programm, so it is time to lern it :)

hailstone

  • Local Moderator
  • Battle Machine
  • ********
  • Posts: 1,568
    • View Profile
Re: Question to the Experts ^^
« Reply #9 on: 22 December 2008, 12:11:14 »
If RGB has a range of 0 to 255 and this one has a range of 0 to 1 we could break RGB into 10 parts:
RGB / float vector
0 - 25.5 = 0 - 0.1
25.5 - 51 = 0.1 - 0.2
51 - 76.5 = 0.2 - 0.3
76.5 - 102 = 0.3 - 0.4
102 - 127.5 = 0.4 - 0.5
127.5 - 153 = 0.5 - 0.6
153 - 178.5 = 0.6 - 0.7
178.5 - 204 = 0.7 - 0.8
204 - 229.5 = 0.8 - 0.9
229.5 - 255 = 0.9 - 1

That's just a guess but it might work.
Glest Advanced Engine - Admin/Programmer
https://sourceforge.net/projects/glestae/

daniel.santos

  • Guest
Re: Question to the Experts ^^
« Reply #10 on: 22 December 2008, 14:19:59 »
Quote from: "mictes"
So ok, I started a mod: http://www.glest.org/glest_board/viewto ... f=4&t=4017
For this mod I wanted to start this: http://www.glest.org/glest_board/viewto ... 743#p20743 [Advanced Tileset]

You just need to read the second thing to understand what I want to create. I need much of help with the editor, I never compiled a programm, so it is time to lern it :)

I will see if I can find the time to read up on your ideas after the holidays, unless you want to summarize it for me :)

Also, please remember that I'm desperate to have mulitplayer working 100% perfectly, this has really been a top priority item for me lately.

daniel.santos

  • Guest
Re: Question to the Experts ^^
« Reply #11 on: 22 December 2008, 14:27:56 »
If you want a full chart, here's a little magic from Open Office Calc (or Excel, either one)
Code: [Select]
00 = 0.0000
01 = 0.0039
02 = 0.0078
03 = 0.0118
04 = 0.0157
05 = 0.0196
06 = 0.0235
07 = 0.0275
08 = 0.0314
09 = 0.0353
0A = 0.0392
0B = 0.0431
0C = 0.0471
0D = 0.0510
0E = 0.0549
0F = 0.0588
10 = 0.0627
11 = 0.0667
12 = 0.0706
13 = 0.0745
14 = 0.0784
15 = 0.0824
16 = 0.0863
17 = 0.0902
18 = 0.0941
19 = 0.0980
1A = 0.1020
1B = 0.1059
1C = 0.1098
1D = 0.1137
1E = 0.1176
1F = 0.1216
20 = 0.1255
21 = 0.1294
22 = 0.1333
23 = 0.1373
24 = 0.1412
25 = 0.1451
26 = 0.1490
27 = 0.1529
28 = 0.1569
29 = 0.1608
2A = 0.1647
2B = 0.1686
2C = 0.1725
2D = 0.1765
2E = 0.1804
2F = 0.1843
30 = 0.1882
31 = 0.1922
32 = 0.1961
33 = 0.2000
34 = 0.2039
35 = 0.2078
36 = 0.2118
37 = 0.2157
38 = 0.2196
39 = 0.2235
3A = 0.2275
3B = 0.2314
3C = 0.2353
3D = 0.2392
3E = 0.2431
3F = 0.2471
40 = 0.2510
41 = 0.2549
42 = 0.2588
43 = 0.2627
44 = 0.2667
45 = 0.2706
46 = 0.2745
47 = 0.2784
48 = 0.2824
49 = 0.2863
4A = 0.2902
4B = 0.2941
4C = 0.2980
4D = 0.3020
4E = 0.3059
4F = 0.3098
50 = 0.3137
51 = 0.3176
52 = 0.3216
53 = 0.3255
54 = 0.3294
55 = 0.3333
56 = 0.3373
57 = 0.3412
58 = 0.3451
59 = 0.3490
5A = 0.3529
5B = 0.3569
5C = 0.3608
5D = 0.3647
5E = 0.3686
5F = 0.3725
60 = 0.3765
61 = 0.3804
62 = 0.3843
63 = 0.3882
64 = 0.3922
65 = 0.3961
66 = 0.4000
67 = 0.4039
68 = 0.4078
69 = 0.4118
6A = 0.4157
6B = 0.4196
6C = 0.4235
6D = 0.4275
6E = 0.4314
6F = 0.4353
70 = 0.4392
71 = 0.4431
72 = 0.4471
73 = 0.4510
74 = 0.4549
75 = 0.4588
76 = 0.4627
77 = 0.4667
78 = 0.4706
79 = 0.4745
7A = 0.4784
7B = 0.4824
7C = 0.4863
7D = 0.4902
7E = 0.4941
7F = 0.4980
80 = 0.5020
81 = 0.5059
82 = 0.5098
83 = 0.5137
84 = 0.5176
85 = 0.5216
86 = 0.5255
87 = 0.5294
88 = 0.5333
89 = 0.5373
8A = 0.5412
8B = 0.5451
8C = 0.5490
8D = 0.5529
8E = 0.5569
8F = 0.5608
90 = 0.5647
91 = 0.5686
92 = 0.5725
93 = 0.5765
94 = 0.5804
95 = 0.5843
96 = 0.5882
97 = 0.5922
98 = 0.5961
99 = 0.6000
9A = 0.6039
9B = 0.6078
9C = 0.6118
9D = 0.6157
9E = 0.6196
9F = 0.6235
A0 = 0.6275
A1 = 0.6314
A2 = 0.6353
A3 = 0.6392
A4 = 0.6431
A5 = 0.6471
A6 = 0.6510
A7 = 0.6549
A8 = 0.6588
A9 = 0.6627
AA = 0.6667
AB = 0.6706
AC = 0.6745
AD = 0.6784
AE = 0.6824
AF = 0.6863
B0 = 0.6902
B1 = 0.6941
B2 = 0.6980
B3 = 0.7020
B4 = 0.7059
B5 = 0.7098
B6 = 0.7137
B7 = 0.7176
B8 = 0.7216
B9 = 0.7255
BA = 0.7294
BB = 0.7333
BC = 0.7373
BD = 0.7412
BE = 0.7451
BF = 0.7490
C0 = 0.7529
C1 = 0.7569
C2 = 0.7608
C3 = 0.7647
C4 = 0.7686
C5 = 0.7725
C6 = 0.7765
C7 = 0.7804
C8 = 0.7843
C9 = 0.7882
CA = 0.7922
CB = 0.7961
CC = 0.8000
CD = 0.8039
CE = 0.8078
CF = 0.8118
D0 = 0.8157
D1 = 0.8196
D2 = 0.8235
D3 = 0.8275
D4 = 0.8314
D5 = 0.8353
D6 = 0.8392
D7 = 0.8431
D8 = 0.8471
D9 = 0.8510
DA = 0.8549
DB = 0.8588
DC = 0.8627
DD = 0.8667
DE = 0.8706
DF = 0.8745
E0 = 0.8784
E1 = 0.8824
E2 = 0.8863
E3 = 0.8902
E4 = 0.8941
E5 = 0.8980
E6 = 0.9020
E7 = 0.9059
E8 = 0.9098
E9 = 0.9137
EA = 0.9176
EB = 0.9216
EC = 0.9255
ED = 0.9294
EE = 0.9333
EF = 0.9373
F0 = 0.9412
F1 = 0.9451
F2 = 0.9490
F3 = 0.9529
F4 = 0.9569
F5 = 0.9608
F6 = 0.9647
F7 = 0.9686
F8 = 0.9725
F9 = 0.9765
FA = 0.9804
FB = 0.9843
FC = 0.9882
FD = 0.9922
FE = 0.9961
FF = 1.0000

Or, if you want to get crazy accurate:
Code: [Select]
00 0.00000000
01 0.00392157
02 0.00784314
03 0.01176471
04 0.01568627
05 0.01960784
06 0.02352941
07 0.02745098
08 0.03137255
09 0.03529412
0A 0.03921569
0B 0.04313725
0C 0.04705882
0D 0.05098039
0E 0.05490196
0F 0.05882353
10 0.06274510
11 0.06666667
12 0.07058824
13 0.07450980
14 0.07843137
15 0.08235294
16 0.08627451
17 0.09019608
18 0.09411765
19 0.09803922
1A 0.10196078
1B 0.10588235
1C 0.10980392
1D 0.11372549
1E 0.11764706
1F 0.12156863
20 0.12549020
21 0.12941176
22 0.13333333
23 0.13725490
24 0.14117647
25 0.14509804
26 0.14901961
27 0.15294118
28 0.15686275
29 0.16078431
2A 0.16470588
2B 0.16862745
2C 0.17254902
2D 0.17647059
2E 0.18039216
2F 0.18431373
30 0.18823529
31 0.19215686
32 0.19607843
33 0.20000000
34 0.20392157
35 0.20784314
36 0.21176471
37 0.21568627
38 0.21960784
39 0.22352941
3A 0.22745098
3B 0.23137255
3C 0.23529412
3D 0.23921569
3E 0.24313725
3F 0.24705882
40 0.25098039
41 0.25490196
42 0.25882353
43 0.26274510
44 0.26666667
45 0.27058824
46 0.27450980
47 0.27843137
48 0.28235294
49 0.28627451
4A 0.29019608
4B 0.29411765
4C 0.29803922
4D 0.30196078
4E 0.30588235
4F 0.30980392
50 0.31372549
51 0.31764706
52 0.32156863
53 0.32549020
54 0.32941176
55 0.33333333
56 0.33725490
57 0.34117647
58 0.34509804
59 0.34901961
5A 0.35294118
5B 0.35686275
5C 0.36078431
5D 0.36470588
5E 0.36862745
5F 0.37254902
60 0.37647059
61 0.38039216
62 0.38431373
63 0.38823529
64 0.39215686
65 0.39607843
66 0.40000000
67 0.40392157
68 0.40784314
69 0.41176471
6A 0.41568627
6B 0.41960784
6C 0.42352941
6D 0.42745098
6E 0.43137255
6F 0.43529412
70 0.43921569
71 0.44313725
72 0.44705882
73 0.45098039
74 0.45490196
75 0.45882353
76 0.46274510
77 0.46666667
78 0.47058824
79 0.47450980
7A 0.47843137
7B 0.48235294
7C 0.48627451
7D 0.49019608
7E 0.49411765
7F 0.49803922
80 0.50196078
81 0.50588235
82 0.50980392
83 0.51372549
84 0.51764706
85 0.52156863
86 0.52549020
87 0.52941176
88 0.53333333
89 0.53725490
8A 0.54117647
8B 0.54509804
8C 0.54901961
8D 0.55294118
8E 0.55686275
8F 0.56078431
90 0.56470588
91 0.56862745
92 0.57254902
93 0.57647059
94 0.58039216
95 0.58431373
96 0.58823529
97 0.59215686
98 0.59607843
99 0.60000000
9A 0.60392157
9B 0.60784314
9C 0.61176471
9D 0.61568627
9E 0.61960784
9F 0.62352941
A0 0.62745098
A1 0.63137255
A2 0.63529412
A3 0.63921569
A4 0.64313725
A5 0.64705882
A6 0.65098039
A7 0.65490196
A8 0.65882353
A9 0.66274510
AA 0.66666667
AB 0.67058824
AC 0.67450980
AD 0.67843137
AE 0.68235294
AF 0.68627451
B0 0.69019608
B1 0.69411765
B2 0.69803922
B3 0.70196078
B4 0.70588235
B5 0.70980392
B6 0.71372549
B7 0.71764706
B8 0.72156863
B9 0.72549020
BA 0.72941176
BB 0.73333333
BC 0.73725490
BD 0.74117647
BE 0.74509804
BF 0.74901961
C0 0.75294118
C1 0.75686275
C2 0.76078431
C3 0.76470588
C4 0.76862745
C5 0.77254902
C6 0.77647059
C7 0.78039216
C8 0.78431373
C9 0.78823529
CA 0.79215686
CB 0.79607843
CC 0.80000000
CD 0.80392157
CE 0.80784314
CF 0.81176471
D0 0.81568627
D1 0.81960784
D2 0.82352941
D3 0.82745098
D4 0.83137255
D5 0.83529412
D6 0.83921569
D7 0.84313725
D8 0.84705882
D9 0.85098039
DA 0.85490196
DB 0.85882353
DC 0.86274510
DD 0.86666667
DE 0.87058824
DF 0.87450980
E0 0.87843137
E1 0.88235294
E2 0.88627451
E3 0.89019608
E4 0.89411765
E5 0.89803922
E6 0.90196078
E7 0.90588235
E8 0.90980392
E9 0.91372549
EA 0.91764706
EB 0.92156863
EC 0.92549020
ED 0.92941176
EE 0.93333333
EF 0.93725490
F0 0.94117647
F1 0.94509804
F2 0.94901961
F3 0.95294118
F4 0.95686275
F5 0.96078431
F6 0.96470588
F7 0.96862745
F8 0.97254902
F9 0.97647059
FA 0.98039216
FB 0.98431373
FC 0.98823529
FD 0.99215686
FE 0.99607843
FF 1.00000000

mictes

  • Guest
Re: Question to the Experts ^^
« Reply #12 on: 22 December 2008, 14:30:10 »
Oh I didn't know that this was on the list of GAE.
Ok, I'll wait. Thank you and have a releaxed holiday ;)

daniel.santos

  • Guest
Re: Question to the Experts ^^
« Reply #13 on: 22 December 2008, 14:39:57 »
oh yea, you didn't see the topic, so here is a link http://http://glest.org/glest_board/viewtopic.php?f=15&t=3387 these are the ideas we've been discussing for GAE 0.3.x.

If you look in the bug database, there are two enhancement bugs for weather, a simple and complex one.  The simple one has a very basic wind implementation that affects "swayable" tileset objects and particle systems.  Particle systems will define how much they are affected by both wind and they will be given a "mass" attribute which will be used for gravity calculations (so that changes slightly) as well as wind and collisions, as (in a final step) particles can bounce off of the ground and other objects.  The simple weather implementation will keep weather synced on all network peers and also have wind that blows and changes on the map, but one wind on the entire map (even though it will change).

The complex weather system will allow different weather in different areas of the map and will manage wind as air pressure that travels from one cell to the next, thus gusts will travel across the map.  Tilesets with grass (excellent suggestion, I sorta left that out) can can sway just like trees and bushes.  Even better, once the complex weather system is implemented, splash particle systems will define a pressure and that pressure will cause a gust of wind to come from the explosion, so grass, bushes, trees and other particle systems will be blown by the explosions :)

mictes

  • Guest
Re: Question to the Experts ^^
« Reply #14 on: 22 December 2008, 14:59:49 »
In one word awesome !
I read the Thread, I must have overlooked something.
So My idea was simple to use different tilesets in one map  :)

 

anything