Merge lp:~ab-tools/widelands/minimap into lp:widelands
- minimap
- Merge into trunk
Status: | Merged | ||||
---|---|---|---|---|---|
Merged at revision: | 5569 | ||||
Proposed branch: | lp:~ab-tools/widelands/minimap | ||||
Merge into: | lp:widelands | ||||
Diff against target: |
378 lines (+159/-85) 2 files modified
src/graphic/render/gameview.cc (+93/-20) txts/developers (+66/-65) |
||||
To merge this branch: | bzr merge lp:~ab-tools/widelands/minimap | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
SirVer | Approve | ||
Review via email: mp+27998@code.launchpad.net |
Commit message
Description of the change
It's a little bit different as in my feature request now, but - as I think - a good solution.
I've implemented following additions for the minimap:
- target cross in the center of the display area.
- dotted map borders (just like you could display it in Settlers 1).
Both make the orientation in the minimap much easier.
SirVer (sirver) wrote : | # |
Timowi (timo-wingender) wrote : | # |
It should work with opengl as well. The minimap is drawn offscreen by direct pixel access. The same code is used for OpenGL and SDL.
I liked the original idea. (rectangle around the current displayed area) For me these map borders are a bit confusing (as they have no meaning in widelands) and do not help me to orientate in the minimap.
Andreas Breitschopp (ab-tools) wrote : | # |
@SirVer: yes, I tested it with both renderers.
@Timowi: in Settlers 1 these map borders could be enabled and disabled (that's not easily possible in Widelands, because there is not space for a 7th button below the minimap) and I have to say that I always enabled them, because I just have problems to see where I am in an endless map. ;-)
Especially if the map is big for me the orientation is much easier when you know the (virtual) map borders. To make these borders as less eye-catching as possible, I only dotted every 5th pixel. So it's only an additional hint and should not bother anyone, I hope.
David Fendt (david-hundertachtzehn) wrote : | # |
The idea to show the borders of the map is very good in my opinion. I missed it, in particular because I'm familiar with this feature from Settlers I. Showing the center of the current display area is a good addition.
Nicolai Hähnle (nha) wrote : | # |
What if, instead of showing a "border of the map" (which conceptually doesn't exist) you showed a cross that goes through the player's original HQ? Would that be a good solution for those who prefer to have the border?
I have to admit that having the map scroll like this can be a little confusing. What if the map didn't scroll, but was always centered on the player's original HQ?
Andreas Breitschopp (ab-tools) wrote : | # |
@Nicolai: only a cross through the HQ would not help very much as I think. The other option to always center the map at the HQ would help, of course, but I'm afraid this might confuse all other users that are used to the map centered at the current position?
Anyway, I've attached a screenshot of the minimap as I implemented it now. This way all can see it without needing to compile with my changes. As you can see the virtual map borders are not very conspicuous.
But if there are still many users that don't like these map borders, I could add two more option buttons: one for enabling/disabling the map borders and one for enabling/disabling the red center cross. This way there would be 8 buttons (4 each row) below the map, which should look good again. Because the buttons are quite wide at the moment, it should not be a big problem to make the current buttons smaller and and add two more.
Andreas Breitschopp (ab-tools) wrote : | # |
I thought I could add a file here, but obviously I can't. :-(
So you can find the screenshot of the minimap here:
http://
Kiscsirke (csirkeee) wrote : | # |
3 small comments:
Wideness of the buttons depend on the size of the map, on small maps
(I think maybe 64x64 maps are the smallest at the moment) they are
quite small (because the minimap window itself is smaller), that
should be taken into consideration.
The buttons aligning "nicely" isn't much of an issue I think, before I
added the zoom feature to the minimap, it only had 5 buttons, an one
empty space.
I think (correct me if I'm wrong) in settlers 1 it usually showed the
map 4 times (I mean the minimap was twice the size of the map in both
directions). Or maybe it could be resized at will, I don't remember
exactly. Anyway, while it can be useful, I think with our minimap
always being the size of the map, the borders are less useful then in
Settlers 1.
Kiscsirke (Andras)
On 20 June 2010 22:10, Andreas Breitschopp <email address hidden> wrote:
> I thought I could add a file here, but obviously I can't. :-(
>
> So you can find the screenshot of the minimap here:
> http://
> --
> https:/
> You are subscribed to branch lp:widelands.
>
David Fendt (david-hundertachtzehn) wrote : | # |
Adding 2 more buttons to the minimap is a solution, I agree. Though the map is showed exactly one time, the orientation on the minimap would be much easier for me with borders.
SirVer (sirver) wrote : | # |
I somewhat dislike the borders. They are quite ugly (no offense meant, they just disturb the beauty of the map) and are somewhat arbitrary: the location of the borders have no special for widelands-the-game (and only internal meaning for for widelands-
I encourage this effort, this critic is meant to be constructive and not to discourage this effort.
Andreas Breitschopp (ab-tools) wrote : | # |
@SirVer: OK, if you really don't want this map borders at all, I would suggest to implement it in that way as I originally wrote in my feature request:
display a dotted rectangle with the visible screen area in the minimap.
This way we would not need the red cross anymore.
Would that solution be OK for you?
SirVer (sirver) wrote : | # |
I'd much prefer it, it also feels more logical to me. But it like to put this to a vote. Are others okay with this?
+1 for visible screen area in minimap
-1 for map borders in minimap
Chuck Wilder (chuckw20) wrote : | # |
I think I'd prefer a depiction of the visible screen area in the minimap.
I agree that border indicators in the minimap lose significance in light of
the "borderless", wrapping scroll nature of the map and game play. Because
of this scrolling feature, however, some marker to indicate the location of
the player's HQ in the minimap would be valuable in my estimation.
On Mon, Jun 21, 2010 at 4:03 AM, SirVer <email address hidden> wrote:
> I'd much prefer it, it also feels more logical to me. But it like to put
> this to a vote. Are others okay with this?
>
> +1 for visible screen area in minimap
> -1 for map borders in minimap
> --
> https:/
> You are subscribed to branch lp:widelands.
>
David Fendt (david-hundertachtzehn) wrote : | # |
To mark the HQ in the same way as above the borders are marked and instead of the borders would also prevent my disorientation on the minimap. I only need the 2 doted lines across the entire minimap independent of the lines marks the border or the HQ.
Andreas Breitschopp (ab-tools) wrote : | # |
Hello together again,
just to finalize that:
as I understand nobody (beside David and me) wants to have the map borders, but adding a dotted rectangle as the visible screen area would be OK. So I'll do that this way now, because that's better than nothing.
To prevent me from having to search though the whole Widelands code:
does someone have a tip for me which code object does provide the info about the size of the visible screen area?
SirVer (sirver) wrote : | # |
The g_gr object might be what you are looking for. Alternativly you can also access the MapView object of InteractiveBase.
Andreas Breitschopp (ab-tools) wrote : | # |
Hello together again,
sorry, it took a while till I found the time to look at this again, but now I've got the change ready as desired:
only a display rectangle of the currently visible map area.
But before I commit the new code, I wanted to ask if you prefer a full or just a dotted border. I've uploaded a sample image with some alternatives here:
http://
So the questions are:
- full border or dotted border?
- if dotted, every how many pixels?
- is the white color OK or do you prefer another color?
Let me know your thoughts.
Best regards
Andreas
Chuck Wilder (chuckw20) wrote : | # |
My favorite is the dotted white border at every 2 pixels. Thanks for your efforts. :)
Andreas Breitschopp (ab-tools) wrote : | # |
Hello Chuck,
thanks for your fast answer.
I'll wait for a few more replies and then commit the corresponding code.
Best regards
Andreas
Nasenbaer (nasenbaer) wrote : | # |
I prefer the undotted on (the first), but like the second (every 2 pixels) as well. :)
SirVer (sirver) wrote : | # |
2 pixels for me!
Timowi (timo-wingender) wrote : | # |
I like the 2 pixels variant most. The white is ok and I think it is the best on your images. But the roads and flags are white too. Is it possible to see the frame over a road network?
Andreas Breitschopp (ab-tools) wrote : | # |
Hello together,
thanks for all the feedback:
I see the 2 pixels variant is the most favored one.
@Timewi: I've uploaded an image comparing different color variants over a road network here:
http://
(Don't be confused about the still visible map borders: I know nobody wants them, so they won't be there when I commit the final code. They are just for testing purpose now.)
Chuck Wilder (chuckw20) wrote : | # |
The white frame on the white roads and flags IS more confusing than I first thought it would be. The red frame is easiest for me to distinguish followed close by the green and cyan.
Does the frame change its dimensions for monitors with different aspect ratios/resolutions in order to depict the actual area in view? Your vertical rectangle for the frame in the examples makes me think you are using a similarly oriented screen. Are your examples mock-ups or is the aspect ratio in the mini-map actually independent from the user's monitor and that difference then results in the rectangle taking on a different shape. (Sorry if I confused matters. I just don't know that much about coding for displays.) :P
Bottom line - I prefer a frame in a contrasting color from the white details regardless of the shape of the frame. :D
Cheers!
Andreas Breitschopp (ab-tools) wrote : | # |
Hello Chuck,
thanks for your comment.
I also think that the white frame color is not the best solution, but I have to admit that the cyan one looks really ugly. ;-)
I would also prefer the red one followed by the green one. But maybe also the yellow one would be possible: that's not so eye-catching as the red/green ones, but still a little bit different to the white roads. That could be already different enough to not confuse the player.
But let's wait what the other guys say about that. :-)
Regarding your aspect ratio question:
yes that are really screenshots (no mock-ups) and that's also the correct ratio. But no, I don't have such a monitor, Widelands ran in 800x600 Pixel resolution for testing and making these screenshots. The reason why the display area is a vertical (instead of a horizontal) rectangle in the mini-map is that a map field is defined with a width of 64 pixels and a height of only 32 pixels in Widelands. That results in this display ratio of the map.
Best regards
Andreas
Chuck Wilder (chuckw20) wrote : | # |
Thanks for the explanation, Andreas. Now I can sleep tonight. :)
Andreas Breitschopp (ab-tools) wrote : | # |
Yes, I'll just wait which color the other guys prefer now and then I'll commit the final code with the color that received the most votes.
SirVer (sirver) wrote : | # |
I prefer the red one! I think that it has the best contrast for all world tilesets.
Andreas Breitschopp (ab-tools) wrote : | # |
OK, because I saw that the red one seems to be preferred by most of the people (incl. me), I've committed it with a red dotted frame border now.
I've tested the code with and without OpenGL rendering in the normal and the zoomed mini map and it worked without problems in all cases.
Andreas Breitschopp (ab-tools) wrote : | # |
Just committed some improvements to the code some minutes ago to make it cleaner and faster.
Is there anything else I need to do from my side before it can be merged into trunk?
SirVer (sirver) wrote : | # |
You could add yourself to the developers file so I do not have to do it :). Alternatively you could state with what name you want to appear in the file. Otherwise, the patch looks nice to me and I will merge it as soon as I know how to reference you.
Andreas Breitschopp (ab-tools) wrote : | # |
Hello SirVer,
didn't expected to get listed in the developer file when doing only such a small change, but thank you. :-)
I've added myself ("Andreas Breitschopp (ab-tools)") to the developer file now and cleaned up the (pseudo) HTML code meanwhile:
it results in the same output, but the HTML code is cleaner now (there is no reason to add a "<br>" before a "</p>" tag).
Thanks again for all the support here:
Widelands is a great project! :-)
Best regards
Andreas
SirVer (sirver) wrote : | # |
Excellent work and a very deliberate way to add enhancements to widelands, Andreas! Thanks for your contribution, every time again :)
SirVer (sirver) wrote : | # |
ooh.. I forgot: I merged this as revision 5569 into trunk.
Andreas Breitschopp (ab-tools) wrote : | # |
Thanks for merging!
I hope, I'll be able to contribute more in the future, because I really like this project. :-)
I've set the corresponding issue in the bug tracker to "Fix committed" now.
Preview Diff
1 | === modified file 'src/graphic/render/gameview.cc' |
2 | --- src/graphic/render/gameview.cc 2010-06-16 17:12:29 +0000 |
3 | +++ src/graphic/render/gameview.cc 2010-10-10 09:01:48 +0000 |
4 | @@ -24,6 +24,7 @@ |
5 | #include "economy/flag.h" |
6 | |
7 | #include "wui/minimap.h" |
8 | +#include "wui/mapviewpixelconstants.h" |
9 | |
10 | #include "logic/field.h" |
11 | #include "logic/map.h" |
12 | @@ -1083,6 +1084,49 @@ |
13 | return pixelcolor; |
14 | } |
15 | |
16 | + |
17 | +/* |
18 | +=============== |
19 | +Used to draw a dotted frame border on the mini map. |
20 | +=============== |
21 | + */ |
22 | +template<typename T> |
23 | +static bool draw_minimap_frameborder |
24 | + (Widelands::FCoords const f, |
25 | + Point const ptopleft, |
26 | + Point const pbottomright, |
27 | + uint32_t const mapwidth, |
28 | + uint32_t const mapheight) |
29 | +{ |
30 | + bool isframepixel = false; |
31 | + |
32 | + if (ptopleft.x <= pbottomright.x) { |
33 | + if (f.x >= ptopleft.x && f.x <= pbottomright.x |
34 | + && (f.y == ptopleft.y || f.y == pbottomright.y) |
35 | + && f.x % 2 == 0) |
36 | + isframepixel = true; |
37 | + } else { |
38 | + if ((f.x >= ptopleft.x && f.x <= mapwidth || f.x >= 0 && f.x <= pbottomright.x) |
39 | + && (f.y == ptopleft.y || f.y == pbottomright.y) |
40 | + && f.x % 2 == 0) |
41 | + isframepixel = true; |
42 | + } |
43 | + |
44 | + if (ptopleft.y <= pbottomright.y) { |
45 | + if (f.y >= ptopleft.y && f.y <= pbottomright.y |
46 | + && (f.x == ptopleft.x || f.x == pbottomright.x) |
47 | + && f.y % 2 == 0) |
48 | + isframepixel = true; |
49 | + } else { |
50 | + if ((f.y >= ptopleft.y && f.y <= mapheight || f.y >= 0 && f.y <= pbottomright.y) |
51 | + && (f.x == ptopleft.x || f.x == pbottomright.x) |
52 | + && f.y % 2 == 0) |
53 | + isframepixel = true; |
54 | + } |
55 | + |
56 | + return isframepixel; |
57 | +} |
58 | + |
59 | /* |
60 | * |
61 | * |
62 | @@ -1101,6 +1145,25 @@ |
63 | uint32_t const flags) |
64 | { |
65 | Widelands::Map const & map = egbase.map(); |
66 | + |
67 | + uint32_t mapheight = (flags & MiniMap::Zoom2 ? rc.h / 2 : rc.h); |
68 | + |
69 | + // size of the display frame |
70 | + int32_t xsize = g_gr->get_xres() / TRIANGLE_WIDTH / 2; |
71 | + int32_t ysize = g_gr->get_yres() / TRIANGLE_HEIGHT / 2; |
72 | + |
73 | + Point ptopleft; // top left point of the current display frame |
74 | + ptopleft.x = viewpoint.x + mapwidth / 2 - xsize; |
75 | + if (ptopleft.x < 0) ptopleft.x += mapwidth; |
76 | + ptopleft.y = viewpoint.y + mapheight / 2 - ysize; |
77 | + if (ptopleft.y < 0) ptopleft.y += mapheight; |
78 | + |
79 | + Point pbottomright; // bottom right point of the current display frame |
80 | + pbottomright.x = viewpoint.x + mapwidth / 2 + xsize; |
81 | + if (pbottomright.x >= mapwidth) pbottomright.x -= mapwidth; |
82 | + pbottomright.y = viewpoint.y + mapheight / 2 + ysize; |
83 | + if (pbottomright.y >= mapheight) pbottomright.y -= mapheight; |
84 | + |
85 | if (not player or player->see_all()) for (uint32_t y = 0; y < rc.h; ++y) { |
86 | Uint8 * pix = pixels + (rc.y + y) * pitch + rc.x * sizeof(T); |
87 | Widelands::FCoords f |
88 | @@ -1112,37 +1175,47 @@ |
89 | for (uint32_t x = 0; x < rc.w; ++x, pix += sizeof(T)) { |
90 | if (x % 2 || !(flags & MiniMap::Zoom2)) |
91 | move_r(mapwidth, f, i); |
92 | - *reinterpret_cast<T *>(pix) = static_cast<T> |
93 | - (calc_minimap_color |
94 | - (format, egbase, f, flags, f.field->get_owned_by(), true)); |
95 | + |
96 | + if (draw_minimap_frameborder<T> |
97 | + (f, ptopleft, pbottomright, mapwidth, mapheight)) { |
98 | + *reinterpret_cast<T *>(pix) = static_cast<T> |
99 | + (SDL_MapRGB(&const_cast<SDL_PixelFormat &>(format), 255, 0, 0)); |
100 | + } else { |
101 | + *reinterpret_cast<T *>(pix) = static_cast<T> |
102 | + (calc_minimap_color |
103 | + (format, egbase, f, flags, f.field->get_owned_by(), true)); |
104 | + } |
105 | } |
106 | } else { |
107 | Widelands::Player::Field const * const player_fields = player->fields(); |
108 | for (uint32_t y = 0; y < rc.h; ++y) { |
109 | Uint8 * pix = pixels + (rc.y + y) * pitch + rc.x * sizeof(T); |
110 | - Widelands::FCoords f; |
111 | - if (flags & MiniMap::Zoom2) |
112 | - f = Widelands::FCoords |
113 | - (Widelands::Coords(viewpoint.x, viewpoint.y + y / 2), 0); |
114 | - else |
115 | - f = Widelands::FCoords |
116 | - (Widelands::Coords(viewpoint.x, viewpoint.y + y), 0); |
117 | + Widelands::FCoords f |
118 | + (Widelands::Coords |
119 | + (viewpoint.x, viewpoint.y + (flags & MiniMap::Zoom2 ? y / 2 : y))); |
120 | map.normalize_coords(f); |
121 | f.field = &map[f]; |
122 | Widelands::Map_Index i = Widelands::Map::get_index(f, mapwidth); |
123 | for (uint32_t x = 0; x < rc.w; ++x, pix += sizeof(T)) { |
124 | if (x % 2 || !(flags & MiniMap::Zoom2)) |
125 | move_r(mapwidth, f, i); |
126 | - Widelands::Player::Field const & player_field = player_fields[i]; |
127 | - Widelands::Vision const vision = player_field.vision; |
128 | - |
129 | - *reinterpret_cast<T *>(pix) = |
130 | - static_cast<T> |
131 | - (vision ? |
132 | - calc_minimap_color |
133 | - (format, egbase, f, flags, player_field.owner, 1 < vision) |
134 | - : |
135 | - 0); |
136 | + |
137 | + if (draw_minimap_frameborder<T> |
138 | + (f, ptopleft, pbottomright, mapwidth, mapheight)) { |
139 | + *reinterpret_cast<T *>(pix) = static_cast<T> |
140 | + (SDL_MapRGB(&const_cast<SDL_PixelFormat &>(format), 255, 0, 0)); |
141 | + } else { |
142 | + Widelands::Player::Field const & player_field = player_fields[i]; |
143 | + Widelands::Vision const vision = player_field.vision; |
144 | + |
145 | + *reinterpret_cast<T *>(pix) = |
146 | + static_cast<T> |
147 | + (vision ? |
148 | + calc_minimap_color |
149 | + (format, egbase, f, flags, player_field.owner, 1 < vision) |
150 | + : |
151 | + 0); |
152 | + } |
153 | } |
154 | } |
155 | } |
156 | |
157 | === modified file 'txts/developers' |
158 | --- txts/developers 2010-09-25 12:49:34 +0000 |
159 | +++ txts/developers 2010-10-10 09:01:48 +0000 |
160 | @@ -18,7 +18,7 @@ |
161 | "" |
162 | _ "Graphics" |
163 | "</p></rt>" |
164 | -"<rt image=pics/genstats_enable_plr_04.png image-align=left text-align=left><p font-size=12> Chuck Wilder (chuckw)<br></p></rt>" |
165 | +"<rt image=pics/genstats_enable_plr_04.png image-align=left text-align=left><p font-size=12> Chuck Wilder (chuckw)</p></rt>" |
166 | "<rt text-align=left><p font-size=18 font-decoration=underline font-face=FreeSerif font-color=2F9131>" |
167 | "" |
168 | _ "Homepage" |
169 | @@ -28,7 +28,7 @@ |
170 | "" |
171 | _ "Sound" |
172 | "</p></rt>" |
173 | -"<rt image=pics/genstats_enable_plr_04.png image-align=left text-align=left><p font-size=12> Jan Bruns (solatis)<br></p></rt>" |
174 | +"<rt image=pics/genstats_enable_plr_04.png image-align=left text-align=left><p font-size=12> Jan Bruns (solatis)</p></rt>" |
175 | "<rt text-align=left><p font-size=18 font-decoration=underline font-face=FreeSerif font-color=2F9131>" |
176 | "" |
177 | "<br><br>" |
178 | @@ -52,18 +52,19 @@ |
179 | "<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Christof Petig</p></rt>" |
180 | "<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Erik Sigra (sigra)</p></rt>" |
181 | "<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Nanne Wams</p></rt>" |
182 | -"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Surgery<br></p></rt>" |
183 | -"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Andrius R. (knutux)<br></p></rt>" |
184 | -"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Jari Hautio (jarih) <br></p></rt>" |
185 | -"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Peter Schwanemann (Nasenbaer)<br></p></rt>" |
186 | -"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Victor Pelt (Dwarik)<br></p></rt>" |
187 | -"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Axel Gehlert (dunkelbrauer)<br></p></rt>" |
188 | -"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> András Eisenberger (Kiscsirke)<br></p></rt>" |
189 | -"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Andi <br></p></rt>" |
190 | -"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Timo <br></p></rt>" |
191 | -"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Hannes <br></p></rt>" |
192 | -"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> TimoW <br></p></rt>" |
193 | -"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Jens Beyer (Qcumber-some) <br></p></rt>" |
194 | +"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Surgery</p></rt>" |
195 | +"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Andrius R. (knutux)</p></rt>" |
196 | +"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Jari Hautio (jarih)</p></rt>" |
197 | +"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Peter Schwanemann (Nasenbaer)</p></rt>" |
198 | +"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Victor Pelt (Dwarik)</p></rt>" |
199 | +"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Axel Gehlert (dunkelbrauer)</p></rt>" |
200 | +"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> András Eisenberger (Kiscsirke)</p></rt>" |
201 | +"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Andi</p></rt>" |
202 | +"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Timo</p></rt>" |
203 | +"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Hannes</p></rt>" |
204 | +"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> TimoW</p></rt>" |
205 | +"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Jens Beyer (Qcumber-some)</p></rt>" |
206 | +"<rt image=pics/genstats_nrwares.png image-align=left text-align=left><p font-size=12> Andreas Breitschopp (ab-tools)</p></rt>" |
207 | "<rt text-align=left><p font-size=24 font-decoration=bold font-face=FreeSerif font-color=f4a131><br><br>" |
208 | "" |
209 | "" |
210 | @@ -85,48 +86,48 @@ |
211 | "<rt image=pics/genstats_nrbuildings.png image-align=left text-align=left><p font-size=12> Toralf Bethke (bithunter32)</p></rt>" |
212 | "<rt image=pics/genstats_nrbuildings.png image-align=left text-align=left><p font-size=12> Peter Schwanemann (Nasenbaer)</p></rt>" |
213 | "<rt image=pics/genstats_nrbuildings.png image-align=left text-align=left><p font-size=12> Alexia Death</p></rt>" |
214 | -"<rt image=pics/genstats_nrbuildings.png image-align=left text-align=left><p font-size=12> Repsa Jih<br></p></rt>" |
215 | -"<rt image=pics/genstats_nrbuildings.png image-align=left text-align=left><p font-size=12> Geoffroy Schmitlin (Trimard)<br></p></rt>" |
216 | -"<rt image=pics/genstats_nrbuildings.png image-align=left text-align=left><p font-size=12> Benedikt Freisen (Objpaswriter)<br></p></rt>" |
217 | -"<rt image=pics/genstats_nrbuildings.png image-align=left text-align=left><p font-size=12> Stefano Guidoni (Ilguido)<br></p></rt>" |
218 | -"<rt image=pics/genstats_nrbuildings.png image-align=left text-align=left><p font-size=12> Samith Sandanayake (samithdisal)<br></p></rt>" |
219 | -"<rt image=pics/genstats_nrbuildings.png image-align=left text-align=left><p font-size=12> Chuck Wilder (chuckw20)<br></p></rt>" |
220 | -"<rt image=pics/genstats_nrbuildings.png image-align=left text-align=left><p font-size=12> Astuur<br></p></rt>" |
221 | +"<rt image=pics/genstats_nrbuildings.png image-align=left text-align=left><p font-size=12> Repsa Jih</p></rt>" |
222 | +"<rt image=pics/genstats_nrbuildings.png image-align=left text-align=left><p font-size=12> Geoffroy Schmitlin (Trimard)</p></rt>" |
223 | +"<rt image=pics/genstats_nrbuildings.png image-align=left text-align=left><p font-size=12> Benedikt Freisen (Objpaswriter)</p></rt>" |
224 | +"<rt image=pics/genstats_nrbuildings.png image-align=left text-align=left><p font-size=12> Stefano Guidoni (Ilguido)</p></rt>" |
225 | +"<rt image=pics/genstats_nrbuildings.png image-align=left text-align=left><p font-size=12> Samith Sandanayake (samithdisal)</p></rt>" |
226 | +"<rt image=pics/genstats_nrbuildings.png image-align=left text-align=left><p font-size=12> Chuck Wilder (chuckw20)</p></rt>" |
227 | +"<rt image=pics/genstats_nrbuildings.png image-align=left text-align=left><p font-size=12> Astuur</p></rt>" |
228 | "<rt text-align=left><p font-size=24 font-decoration=bold font-face=FreeSerif font-color=f4a131><br><br>" |
229 | "" |
230 | "" |
231 | _ "Musicians" |
232 | "</p></rt>" |
233 | -"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Kristian<br></p></rt>" |
234 | -"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> MiddleFinger<br></p></rt>" |
235 | -"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Valerio Orlandini (Symbiosis)<br></p></rt>" |
236 | -"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Barry van Oudtshoorn (barryvan)<br></p></rt>" |
237 | -"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Jan Bruns (Solatis)<br></p></rt>" |
238 | -"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Nikola Whallon (Saturn)<br></p></rt>" |
239 | +"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Kristian</p></rt>" |
240 | +"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> MiddleFinger</p></rt>" |
241 | +"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Valerio Orlandini (Symbiosis)</p></rt>" |
242 | +"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Barry van Oudtshoorn (barryvan)</p></rt>" |
243 | +"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Jan Bruns (Solatis)</p></rt>" |
244 | +"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Nikola Whallon (Saturn)</p></rt>" |
245 | "<rt text-align=left><p font-size=24 font-decoration=bold font-face=FreeSerif font-color=f4a131><br><br>" |
246 | "" |
247 | "" |
248 | _ "Sound Effects" |
249 | "</p></rt>" |
250 | -"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Stefan de Konik<br></p></rt>" |
251 | -"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Peter Schwanemann (Nasenbaer)<br></p></rt>" |
252 | -"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Stephan<br></p></rt>" |
253 | -"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Adam Piggott (_aD)<br></p></rt>" |
254 | -"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Stanisław Gackowski (Soeb)<br></p></rt>" |
255 | +"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Stefan de Konik</p></rt>" |
256 | +"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Peter Schwanemann (Nasenbaer)</p></rt>" |
257 | +"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Stephan</p></rt>" |
258 | +"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Adam Piggott (_aD)</p></rt>" |
259 | +"<rt image=pics/workarea2cumulative.png image-align=left text-align=left><p font-size=12> Stanisław Gackowski (Soeb)</p></rt>" |
260 | "<rt text-align=left><p font-size=24 font-decoration=bold font-face=FreeSerif font-color=f4a131><br><br>" |
261 | "" |
262 | "" |
263 | _ "Maps and Missions" |
264 | "</p></rt>" |
265 | -"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Michal Szopa (Winterwind)<br></p></rt>" |
266 | -"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Jan-Henrik Kluth (Isch)<br></p></rt>" |
267 | -"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Peter Schwanemann (Nasenbaer)<br></p></rt>" |
268 | -"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Sven (deviant)<br></p></rt>" |
269 | -"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Tuxlands<br></p></rt>" |
270 | -"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Kamil Wilczek (Another Barbarian)<br></p></rt>" |
271 | -"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Tarvo Reim (Tarrei)<br></p></rt>" |
272 | -"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Manuel Holzmeier (Quappo)<br></p></rt>" |
273 | -"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> ivh<br></p></rt>" |
274 | +"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Michal Szopa (Winterwind)</p></rt>" |
275 | +"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Jan-Henrik Kluth (Isch)</p></rt>" |
276 | +"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Peter Schwanemann (Nasenbaer)</p></rt>" |
277 | +"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Sven (deviant)</p></rt>" |
278 | +"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Tuxlands</p></rt>" |
279 | +"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Kamil Wilczek (Another Barbarian)</p></rt>" |
280 | +"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Tarvo Reim (Tarrei)</p></rt>" |
281 | +"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Manuel Holzmeier (Quappo)</p></rt>" |
282 | +"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> ivh</p></rt>" |
283 | "<rt text-align=left><p font-size=24 font-decoration=bold text-align=left font-face=FreeSerif font-color=f4a131><br><br>" |
284 | "" |
285 | "" |
286 | @@ -135,13 +136,13 @@ |
287 | "<rt text-align=left><p font-size=18 font-decoration=bold text-align=left font-face=FreeSerif font-color=f4a131>" |
288 | _ "Barbarian" |
289 | "</p></rt>" |
290 | -"<rt image=pics/ls_wlmap.png image-align=left text-align=left><p font-size=12> Bastian Rapp<br></p></rt>" |
291 | -"<rt image=pics/ls_wlmap.png image-align=left text-align=left><p font-size=12> Alexander Kahl (wolfpac)<br></p></rt>" |
292 | -"<rt image=pics/ls_wlmap.png image-align=left text-align=left><p font-size=12> Peter Schwanemann (Nasenbaer)<br></p></rt>" |
293 | +"<rt image=pics/ls_wlmap.png image-align=left text-align=left><p font-size=12> Bastian Rapp</p></rt>" |
294 | +"<rt image=pics/ls_wlmap.png image-align=left text-align=left><p font-size=12> Alexander Kahl (wolfpac)</p></rt>" |
295 | +"<rt image=pics/ls_wlmap.png image-align=left text-align=left><p font-size=12> Peter Schwanemann (Nasenbaer)</p></rt>" |
296 | "<rt text-align=left><p font-size=18 font-decoration=bold text-align=left font-face=FreeSerif font-color=f4a131><br>" |
297 | _ "Empire" |
298 | "</p></rt>" |
299 | -"<rt image=pics/ls_wlmap.png image-align=left text-align=left><p font-size=12> Peter Schwanemann (Nasenbaer)<br></p></rt>" |
300 | +"<rt image=pics/ls_wlmap.png image-align=left text-align=left><p font-size=12> Peter Schwanemann (Nasenbaer)</p></rt>" |
301 | "<rt text-align=left><p font-size=24 font-decoration=bold font-face=FreeSerif font-color=f4a131><br><br>" |
302 | "" |
303 | "" |
304 | @@ -233,7 +234,7 @@ |
305 | "" |
306 | _ "Slovak" |
307 | "</p></rt>" |
308 | -"<rt image=pics/fsel_editor_set_height.png image-align=left text-align=left><p font-size=12>Vladímir Tóth (Ike)<br></p></rt>" |
309 | +"<rt image=pics/fsel_editor_set_height.png image-align=left text-align=left><p font-size=12>Vladímir Tóth (Ike)</p></rt>" |
310 | "<rt><p font-size=18 font-decoration=underline font-face=FreeSerif font-color=2F9131>" |
311 | "" |
312 | _ "Spanish" |
313 | @@ -243,8 +244,8 @@ |
314 | "" |
315 | _ "Swedish" |
316 | "</p></rt>" |
317 | -"<rt image=pics/fsel_editor_set_height.png image-align=left text-align=left><p font-size=12>Daniel Nylander (yeager)<br></p></rt>" |
318 | -"<rt image=pics/fsel_editor_set_height.png image-align=left text-align=left><p font-size=12>Frederik Pettersson (luno)<br></p></rt>" |
319 | +"<rt image=pics/fsel_editor_set_height.png image-align=left text-align=left><p font-size=12>Daniel Nylander (yeager)</p></rt>" |
320 | +"<rt image=pics/fsel_editor_set_height.png image-align=left text-align=left><p font-size=12>Frederik Pettersson (luno)</p></rt>" |
321 | "<rt><p><br><br><br></p></rt>" |
322 | "<rt text-align=left><p font-size=24 font-decoration=bold font-face=FreeSerif font-color=f4a131><br><br>" |
323 | "" |
324 | @@ -288,23 +289,23 @@ |
325 | "" |
326 | _ "Homepage Coders" |
327 | "</p></rt>" |
328 | -"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Holger Rapp (SirVer)<br></p></rt>" |
329 | -"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Stanislaw Gackowski (Soeb)<br></p></rt>" |
330 | -"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Markus Pfitzner (janus)<br></p></rt>" |
331 | -"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Tobi<br></p></rt>" |
332 | +"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Holger Rapp (SirVer)</p></rt>" |
333 | +"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Stanislaw Gackowski (Soeb)</p></rt>" |
334 | +"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Markus Pfitzner (janus)</p></rt>" |
335 | +"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Tobi</p></rt>" |
336 | "<rt text-align=left><p font-size=24 font-decoration=bold font-face=FreeSerif font-color=f4a131><br><br>" |
337 | "" |
338 | "" |
339 | _ "Documentation, Help and Wiki" |
340 | "</p></rt>" |
341 | -"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Erik Sigra (sigra)<br></p></rt>" |
342 | -"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Florian Falkner (foldrian)<br></p></rt>" |
343 | -"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Florian Weber (bedouin)<br></p></rt>" |
344 | -"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Nicolai Haehnle<br></p></rt>" |
345 | -"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Holger Rapp (SirVer)<br></p></rt>" |
346 | -"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Johannes (nuefke)<br></p></rt>" |
347 | -"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Alexander Kahl (wolfpac)<br></p></rt>" |
348 | -"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Stanislaw Gackowski (Soeb)<br></p></rt>" |
349 | +"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Erik Sigra (sigra)</p></rt>" |
350 | +"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Florian Falkner (foldrian)</p></rt>" |
351 | +"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Florian Weber (bedouin)</p></rt>" |
352 | +"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Nicolai Haehnle</p></rt>" |
353 | +"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Holger Rapp (SirVer)</p></rt>" |
354 | +"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Johannes (nuefke)</p></rt>" |
355 | +"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Alexander Kahl (wolfpac)</p></rt>" |
356 | +"<rt image=pics/WL-Editor-16.png image-align=left text-align=left><p font-size=12>Stanislaw Gackowski (Soeb)</p></rt>" |
357 | "<rt text-align=left><p font-size=24 font-decoration=bold font-face=FreeSerif font-color=f4a131><br><br>" |
358 | "" |
359 | "" |
360 | @@ -333,13 +334,13 @@ |
361 | "" |
362 | _ "Translation" |
363 | "</p></rt>" |
364 | -"<rt image=pics/genstats_enable_plr_04.png text-align=left image-align=left><p font-size=12>Peter Schwanemann (Nasenbaer)<br></p></rt>" |
365 | -"<rt image=pics/genstats_enable_plr_04.png image-align=left text-align=left><p font-size=12> Philipp Niemann (Azagtoth)<br></p></rt>" |
366 | +"<rt image=pics/genstats_enable_plr_04.png text-align=left image-align=left><p font-size=12>Peter Schwanemann (Nasenbaer)</p></rt>" |
367 | +"<rt image=pics/genstats_enable_plr_04.png image-align=left text-align=left><p font-size=12>Philipp Niemann (Azagtoth)</p></rt>" |
368 | "<rt text-align=left><p font-size=24 font-decoration=bold font-face=FreeSerif font-color=f4a131><br><br>" |
369 | "" |
370 | "" |
371 | _ "Other" |
372 | "</p></rt>" |
373 | -"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Matt Howe (mdhowe)<br></p></rt>"" |
374 | -"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Samuel Tilly (eldamar)<br></p></rt>"" |
375 | -"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> and many, many more (thank you for everything you've done)<br></p></rt>"" |
376 | +"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Matt Howe (mdhowe)</p></rt>"" |
377 | +"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> Samuel Tilly (eldamar)</p></rt>"" |
378 | +"<rt image=pics/genstats_landsize.png image-align=left text-align=left><p font-size=12> and many, many more (thank you for everything you've done)</p></rt>"" |
is this working with the opengl renderer as well?