GAE map editor ported to megaglest

This commit is contained in:
Titus Tscharntke 2010-05-04 00:22:11 +00:00
parent 73be43d6ad
commit acf4bebba6
71 changed files with 3384 additions and 891 deletions

View File

@ -0,0 +1,88 @@
// ==============================================================
// This file is part of Glest (www.glest.org)
//
// Copyright (C) 2010 Frank Tetzel
//
// You can redistribute this code and/or modify it under
// the terms of the GNU General Public License as published
// by the Free Software Foundation; either version 2 of the
// License, or (at your option) any later version
// ==============================================================
#ifndef _MAPEDITOR_ICONS_H_
#define _MAPEDITOR_ICONS_H_
#include "icons/radius_1.xpm"
#include "icons/radius_2.xpm"
#include "icons/radius_3.xpm"
#include "icons/radius_4.xpm"
#include "icons/radius_5.xpm"
#include "icons/radius_6.xpm"
#include "icons/radius_7.xpm"
#include "icons/radius_8.xpm"
#include "icons/radius_9.xpm"
#include "icons/brush_surface_custom.xpm"
#include "icons/brush_surface_grass1.xpm"
#include "icons/brush_surface_grass2.xpm"
#include "icons/brush_surface_road.xpm"
#include "icons/brush_surface_stone.xpm"
#include "icons/brush_none.xpm"
#include "icons/brush_object_bush.xpm"
#include "icons/brush_object_dead-tree.xpm"
#include "icons/brush_object_stone.xpm"
#include "icons/brush_object_tree.xpm"
#include "icons/brush_object_water-object.xpm"
#include "icons/brush_object_c1-bigtree.xpm"
#include "icons/brush_object_c2-hanged.xpm"
#include "icons/brush_object_c4-bigrock.xpm"
#include "icons/brush_object_c5-blocking.xpm"
#include "icons/brush_object_c3-statue.xpm"
#include "icons/brush_gradient_0.xpm"
#include "icons/brush_gradient_n1.xpm"
#include "icons/brush_gradient_n2.xpm"
#include "icons/brush_gradient_n3.xpm"
#include "icons/brush_gradient_n4.xpm"
#include "icons/brush_gradient_n5.xpm"
#include "icons/brush_gradient_p1.xpm"
#include "icons/brush_gradient_p2.xpm"
#include "icons/brush_gradient_p3.xpm"
#include "icons/brush_gradient_p4.xpm"
#include "icons/brush_gradient_p5.xpm"
#include "icons/brush_height_0.xpm"
#include "icons/brush_height_n1.xpm"
#include "icons/brush_height_n2.xpm"
#include "icons/brush_height_n3.xpm"
#include "icons/brush_height_n4.xpm"
#include "icons/brush_height_n5.xpm"
#include "icons/brush_height_p1.xpm"
#include "icons/brush_height_p2.xpm"
#include "icons/brush_height_p3.xpm"
#include "icons/brush_height_p4.xpm"
#include "icons/brush_height_p5.xpm"
#include "icons/brush_players_blue.xpm"
#include "icons/brush_players_player.xpm"
#include "icons/brush_players_green.xpm"
#include "icons/brush_players_yellow.xpm"
#include "icons/brush_players_red.xpm"
#include "icons/brush_players_white.xpm"
#include "icons/brush_players_cyan.xpm"
#include "icons/brush_players_orange.xpm"
#include "icons/brush_players_pink.xpm"
#include "icons/brush_resource_1-gold.xpm"
#include "icons/brush_resource_2-stone.xpm"
#include "icons/brush_resource_3.xpm"
#include "icons/brush_resource_4.xpm"
#include "icons/brush_resource_5.xpm"
#include "icons/edit_randomize-heights.xpm"
#include "icons/edit_randomize.xpm"
#include "icons/edit_redo.xpm"
#include "icons/edit_switch-surfaces.xpm"
#include "icons/edit_undo.xpm"
#endif

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_gradient_0[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #FF0000",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXX X",
"XXXXXXXXXXX XX X",
"XXXXXXXXXXX XX X",
"XXXXXXXXXXX XX X",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
" ",
"................",
"................",
"................",
"................",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_gradient_n1[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #FF0000",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXX XX",
"XXXXXXXXXXXXX XX",
"XXXXXXXXX X XX",
"XXXXXXXXXXXXX XX",
"XXXXXXXXXXXXX XX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
" XXXXXXX ",
"... ......",
"................",
"................",
"................",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_gradient_n2[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #FF0000",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXX X",
"XXXXXXX X X",
"XXXXXXXXXXX XXXX",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
" XXXXXXXXX ",
".. XXXXXXX .....",
"... ......",
"................",
"................",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_gradient_n3[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #FF0000",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXX X",
"XXXXXXX X X",
"XXXXXXXXXXXXXX X",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
" XXXXXXXXX ",
".. XXXXXXX .....",
"... XXXXX ......",
".... .......",
"................",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_gradient_n4[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #FF0000",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXX XX X",
"XXXXXXXXXXX XX X",
"XXXXXXX X X",
"XXXXXXXXXXXXXX X",
"XXXXXXXXXXXXXX X",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
" XXXXXXXXXXX ",
". XXXXXXXXX ....",
".. XXXXXXX .....",
"... XXXXX ......",
".... .......",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_gradient_n5[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #FF0000",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXX X",
"XXXXXXXXXXX XXXX",
"XXXXXXX X X",
"XXXXXXXXXXXXXX X",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
" XXXXXXXXXXX ",
". XXXXXXXXX ....",
".. XXXXXXX .....",
"... XXXXX ......",
".... XXX .......",
"..... ........",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_gradient_p1[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #FF0000",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXX XX",
"XXXXXXXXXXXXX XX",
"XXXXXXXXXXXXX XX",
"XXXXXXXXXXXXX XX",
"XXXXXXXXXXXXX XX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXX XXXXXX",
" ....... ",
"................",
"................",
"................",
"................",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_gradient_p2[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #FF0000",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXX X",
"XXXXXXXXXXX X",
"XXXXXXXXXXX XXXX",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXXXX",
"XXX XXXXXX",
"XX ....... XXXXX",
" ......... ",
"................",
"................",
"................",
"................",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_gradient_p3[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #FF0000",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXX X",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXX X",
"XXXXXXXXXXX X",
"XXXX XXXXXXX",
"XXX ..... XXXXXX",
"XX ....... XXXXX",
" ......... ",
"................",
"................",
"................",
"................",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_gradient_p4[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #FF0000",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXX XX X",
"XXXXXXXXXXX XX X",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXX X",
"XXXX XXXXX X",
"XXX ..... XXXXXX",
"XX ....... XXXXX",
"X ......... XXXX",
" ........... ",
"................",
"................",
"................",
"................",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_gradient_p5[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #FF0000",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXX X",
"XXXXXXXXXXX XXXX",
"XXXXXXXXXXX X",
"XXXXX XXXXXX X",
"XXXX ... XX X",
"XXX ..... XXXXXX",
"XX ....... XXXXX",
"X ......... XXXX",
" ........... ",
"................",
"................",
"................",
"................",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_height_0[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #0000FF",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXX X",
"XXXXXXXXXXX XX X",
"XXXXXXXXXXX XX X",
"XXXXXXXXXXX XX X",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
" ",
"................",
"................",
"................",
"................",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_height_n1[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #0000FF",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXX XX",
"XXXXXXXXXXXXX XX",
"XXXXXXXXX X XX",
"XXXXXXXXXXXXX XX",
"XXXXXXXXXXXXX XX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
" XXXXXXX ",
"... ......",
"................",
"................",
"................",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_height_n2[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #0000FF",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXX X",
"XXXXXXX X X",
"XXXXXXXXXXX XXXX",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
" XXXXXXX ",
"...XXXXXXX......",
"... ......",
"................",
"................",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_height_n3[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #0000FF",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXX X",
"XXXXXXX X X",
"XXXXXXXXXXXXXX X",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
" XXXXXXX ",
"...XXXXXXX......",
"...XXXXXXX......",
"... ......",
"................",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_height_n4[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #0000FF",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXX XX X",
"XXXXXXXXXXX XX X",
"XXXXXXX X X",
"XXXXXXXXXXXXXX X",
"XXXXXXXXXXXXXX X",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
" XXXXXXX ",
"...XXXXXXX......",
"...XXXXXXX......",
"...XXXXXXX......",
"... ......",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_height_n5[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #0000FF",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXX X",
"XXXXXXXXXXX XXXX",
"XXXXXXX X X",
"XXXXXXXXXXXXXX X",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
" XXXXXXX ",
"...XXXXXXX......",
"...XXXXXXX......",
"...XXXXXXX......",
"...XXXXXXX......",
"... ......",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_height_p1[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #0000FF",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXX XX",
"XXXXXXXXXXXXX XX",
"XXXXXXXXXXXXX XX",
"XXXXXXXXXXXXX XX",
"XXXXXXXXXXXXX XX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXX XXXXXX",
" ....... ",
"................",
"................",
"................",
"................",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_height_p2[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #0000FF",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXX X",
"XXXXXXXXXXX X",
"XXXXXXXXXXX XXXX",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXXXX",
"XXX XXXXXX",
"XXX.......XXXXXX",
" ....... ",
"................",
"................",
"................",
"................",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_height_p3[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #0000FF",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXX X",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXX X",
"XXXXXXXXXXX X",
"XXX XXXXXX",
"XXX.......XXXXXX",
"XXX.......XXXXXX",
" ....... ",
"................",
"................",
"................",
"................",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_height_p4[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #0000FF",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXX XX X",
"XXXXXXXXXXX XX X",
"XXXXXXXXXXX X",
"XXXXXXXXXXXXXX X",
"XXX XXXX X",
"XXX.......XXXXXX",
"XXX.......XXXXXX",
"XXX.......XXXXXX",
" ....... ",
"................",
"................",
"................",
"................",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_height_p5[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #0000FF",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXX X",
"XXXXXXXXXXX XXXX",
"XXXXXXXXXXX X",
"XXX XXXX X",
"XXX.......X X",
"XXX.......XXXXXX",
"XXX.......XXXXXX",
"XXX.......XXXXXX",
" ....... ",
"................",
"................",
"................",
"................",
"................",
"................"
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *brush_none[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #FF0000",
". c #008000",
"X c #000080",
"o c None",
/* pixels */
"oo oooXXooo oo",
"oo oXXXXo oo",
"ooo XXXX ooo",
"oooo XX oooo",
"ooooo ooooo",
"oooooo oooooo",
"oooooo oooooo",
"ooooo ooooo",
"oooo XX oooo",
"ooo XXXX ooo",
"oo oXXXXo oo",
"oo ooXXXXoo oo",
"ooooo......ooooo",
"................",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_object_bush[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #008000",
". c #00FF00",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXX . X XXXXX",
"XXXXX . . ..XXXX",
"XXXXX. . . .XXXX",
"XXXX .X X X XXX",
"XXXX. . . X XXX",
"XXXX . X .. XXXX",
"XXXXX X . .XXXX",
"X X",
"XXXXXXXXXXXXXXXX"
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *brush_object_c1_bigtree[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #800000",
". c #008000",
"X c #808000",
"o c None",
/* pixels */
"ooooooXX.Xoooooo",
"oooo.XXXXX.Xoooo",
"oooXXX.X.XXX.ooo",
"oooX.XX.XX.XXooo",
"ooXXXXXXXXXX.Xoo",
"ooX..X.XX...X.oo",
"oooXXXX.XXXXXooo",
"oooXX.XXX..X.ooo",
"ooooXXXX.XXXoooo",
"oooooo.XXXoooooo",
"oooooo oooooo",
"oooooo oooooo",
"oooooo oooooo",
"oooooo oooooo",
"ooooo ooooo",
"oooo ooo"
};

View File

@ -0,0 +1,29 @@
/* XPM */
static const char *brush_object_c2_hanged[] = {
/* columns rows colors chars-per-pixel */
"16 16 7 1",
" c #800000",
". c #008000",
"X c #FFFF00",
"o c #0000FF",
"O c #808080",
"+ c #C0C0C0",
"@ c None",
/* pixels */
"@@@@@@@ @@@@@@@@",
"@@@ @@@@",
"@@@+@ @ @ @+@@@@",
"@@OO@@ @@+@@@@",
"@@+++@@ @@OOO@@@",
"@+O+O+@ @O@+@O@@",
"@++O++@ @O +@O@@",
"@X+++X@ @O + O@@",
"@@oXo@@ @O + O@@",
"@@oXo@@ @O@+ O@@",
"@@+++@@ @OOO O @",
"@@+@+@@ @@@@ @ @",
"@@@@@@@ @@@@@@@@",
"@@@@@@@ @@@@@@@@",
"@@@@@@. O@@@@@@@",
"................"
};

View File

@ -0,0 +1,27 @@
/* XPM */
static const char *brush_object_c3_statue[] = {
/* columns rows colors chars-per-pixel */
"16 16 5 1",
" c #008000",
". c #808000",
"X c #808080",
"o c #C0C0C0",
"O c None",
/* pixels */
"OOOOOOOOOOOOOOOO",
"OOOOOoOOOOOOOOOO",
"OOOOOOoXXOOOOOOO",
"OOOOOOOoXOOOOOOO",
"OOOOO...oXOOOOOO",
"OOOOO.o.XoXOOOOO",
"OOOOO...XOOOOOOO",
"OOOOOOXXXOOOOOOO",
"OOOOOOXXXOOOOOOO",
"OOOOOOXOXOOOOOOO",
"OOOOOOXOOXOOOOOO",
"OOOOOOXOOXOOOOOO",
"OOOOOooooooOOOOO",
"OOOOOOXXXXOOOOOO",
"OOOOOOXXXXOOOOOO",
" "
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *brush_object_c4_bigrock[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #008000",
". c #808080",
"X c #C0C0C0",
"o c None",
/* pixels */
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"ooooo.Xooooooooo",
"ooooX...ooo.Xooo",
"oooo...X ..ooo",
"oooo.X.X ..ooo",
"oooX....X .ooo",
"ooo..X.X. .Xoo",
"ooo.. ... ..oo",
"ooo.X ....X..oo",
"ooX.. .X..X.Xoo",
"oo.... .. ..oo",
"oo.X...... oo",
"oo..... ....oo",
" "
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_object_c5_blocking[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #008000",
". c #C0C0C0",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XX............XX",
"XX.XXXXXXXXXX.XX",
"XX.XXXXXXXXXX.XX",
"XX.XXXXXXXXXX.XX",
"XX.XXXXXXXXXX.XX",
"XX.XXXXXXXXXX.XX",
"XX.XXXXXXXXXX.XX",
"XX.XXXXXXXXXX.XX",
"XX.XXXXXXXXXX.XX",
"XX.XXXXXXXXXX.XX",
"XX.XXXXXXXXXX.XX",
"XX.XXXXXXXXXX.XX",
"XX.XXXXXXXXXX.XX",
"XX.XXXXXXXXXX.XX",
" "
};

View File

@ -0,0 +1,24 @@
/* XPM */
static const char *brush_object_dead_tree[] = {
/* columns rows colors chars-per-pixel */
"16 16 2 1",
" c #800000",
". c None",
/* pixels */
"................",
".. .. ..........",
"... . ... . ....",
".... ..... ....",
".. .. .. . ..",
"..... ... ...",
"... .. .. ...",
"... .. ... ..",
".. .. ......",
"..... .. ..",
"...... ....",
"...... ......",
"...... ......",
"...... ......",
"..... .....",
".... ..."
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *brush_object_stone[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #008000",
". c #808080",
"X c #C0C0C0",
"o c None",
/* pixels */
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooo.Xoooooooooo",
"ooo...X..ooooooo",
"oooX....X.Xooooo",
"oo.........Xoooo",
"oo...X.....XXooo",
"ooo......X..XXoo",
"ooo.X........Xoo",
"o o",
"oooooooooooooooo"
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *brush_object_tree[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #800000",
". c #008000",
"X c #00FF00",
"o c None",
/* pixels */
"ooooooo..ooooooo",
"ooooo......ooooo",
"oooo....X...oooo",
"oooo........oooo",
"ooo.X..XX..X.ooo",
"ooo......X...ooo",
"oooo...X....oooo",
"oooo........oooo",
"ooooo......ooooo",
"oooooo .. oooooo",
"oooooo oooooo",
"oooooo oooooo",
"oooooo oooooo",
"oooooo oooooo",
"ooooo ooooo",
"oooo ooo"
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *brush_object_water_object[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #008000",
". c #0000FF",
"X c #00FFFF",
"o c None",
/* pixels */
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"ooooooo oooooooo",
"ooooooo ooo oooo",
"ooooo o o o oooo",
"ooooo o o ooooo",
"ooooo oo o ooooo",
"oooooo o oooooo",
"XXXXXXX XXXXXXX",
"X.XXX.XXX.XXX.XX",
".X.X.X.X.X.X.X.X",
"................"
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *brush_players_blue[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #000000",
". c #000080",
"X c #0000FF",
"o c None",
/* pixels */
"oo oo",
"oo .......... oo",
"oo XXXXXXXXXX oo",
"oo XX.XXXX.XX oo",
"oo X...XX...X oo",
"oo XX.XXXX.XX oo",
"oo XXXXXXXXXX oo",
"oo XXXXXXXXXX oo",
"oo X........X oo",
"oo XXXXXXXXXX oo",
"oo XXXXXXXXXX oo",
"oo XXXX..XXXX oo",
"ooo XX....XX ooo",
"ooo X......X ooo",
"oooo .... oooo",
"oooooo oooooo"
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *brush_players_cyan[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #000000",
". c #008080",
"X c #00FFFF",
"o c None",
/* pixels */
"oo oo",
"oo .......... oo",
"oo ....XX.... oo",
"oo ...XXXX... oo",
"oo ...XXXX... oo",
"oo ....XX.... oo",
"oo .......... oo",
"oo .XX....XX. oo",
"oo ..XXXXXX.. oo",
"oo ...XXXX... oo",
"oo .......... oo",
"oo .......... oo",
"ooo ........ ooo",
"ooo ........ ooo",
"oooo .... oooo",
"oooooo oooooo"
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *brush_players_green[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #000000",
". c #008000",
"X c #00FF00",
"o c None",
/* pixels */
"oo oo",
"oo .X.X..X.X. oo",
"oo .X.X..X.X. oo",
"oo .X.X..X.X. oo",
"oo .X.X..X.X. oo",
"oo .X.X..X.X. oo",
"oo .X.X..X.X. oo",
"oo .X.X..X.X. oo",
"oo .X.X..X.X. oo",
"oo .......... oo",
"oo .XXX..XXX. oo",
"oo ...X..X... oo",
"ooo ..XXXX.. ooo",
"ooo ........ ooo",
"oooo .... oooo",
"oooooo oooooo"
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *brush_players_orange[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #000000",
". c #804000",
"X c #FF8000",
"o c None",
/* pixels */
"oo oo",
"oo XXXX.X.XXX oo",
"oo XXX.X.XXXX oo",
"oo XX.X.XXXXX oo",
"oo X.X.XXXXXX oo",
"oo .X.XXXXXXX oo",
"oo X.XXXXX..X oo",
"oo .XXXXX...X oo",
"oo XXXXX...XX oo",
"oo XXX....XXX oo",
"oo XXXX..XXXX oo",
"oo XXX.X.XXXX oo",
"ooo XXXXXXXX ooo",
"ooo XXXXXXXX ooo",
"oooo XXXX oooo",
"oooooo oooooo"
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *brush_players_pink[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #000000",
". c #800080",
"X c #FF00FF",
"o c None",
/* pixels */
"oo oo",
"oo ..X....X.. oo",
"oo X...XX...X oo",
"oo XX.XXXX.XX oo",
"oo X...XX...X oo",
"oo ..X....X.. oo",
"oo X...XX...X oo",
"oo XX.XXXX.XX oo",
"oo X...XX...X oo",
"oo ..X....X.. oo",
"oo X...XX...X oo",
"oo XX.XXXX.XX oo",
"ooo ...XX... ooo",
"ooo .X....X. ooo",
"oooo .XX. oooo",
"oooooo oooooo"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_players_player[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #FFFF00",
". c #008080",
"X c None",
/* pixels */
"XXXXX......XXXXX",
"XXX..........XXX",
"XX............XX",
"X..............X",
"X.... ....X",
"...... .. ....",
"...... .. ....",
"...... .. ....",
"...... .....",
"...... ........",
"...... ........",
"X..... .......X",
"X.... ......X",
"XX............XX",
"XXX..........XXX",
"XXXXX......XXXXX"
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *brush_players_red[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #000000",
". c #800000",
"X c #FF0000",
"o c None",
/* pixels */
"oo oo",
"oo .......... oo",
"oo .......... oo",
"oo .......... oo",
"oo XXXXXXXXXX oo",
"oo .......... oo",
"oo .......... oo",
"oo XXXXXXXXXX oo",
"oo XXXXXXXXXX oo",
"oo .......... oo",
"oo .......... oo",
"oo XXXXXXXXXX oo",
"ooo ........ ooo",
"ooo ........ ooo",
"oooo .... oooo",
"oooooo oooooo"
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *brush_players_white[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #000000",
". c #808080",
"X c #C0C0C0",
"o c None",
/* pixels */
"oo oo",
"oo XXXXXXXXXX oo",
"oo ....XX.... oo",
"oo X.X.XX.X.X oo",
"oo ....XX.... oo",
"oo XXXXXXXXXX oo",
"oo XX..XX..XX oo",
"oo XXXXXXXXXX oo",
"oo .......... oo",
"oo XXXXXXXXXX oo",
"oo .......... oo",
"oo XXXXXXXXXX oo",
"ooo XXXXXXXX ooo",
"ooo XXXXXXXX ooo",
"oooo XXXX oooo",
"oooooo oooooo"
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *brush_players_yellow[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #000000",
". c #808000",
"X c #FFFF00",
"o c None",
/* pixels */
"oo oo",
"oo .........X oo",
"oo .XXX....X. oo",
"oo .XXX...X.. oo",
"oo .XXX..X..X oo",
"oo .....X..X. oo",
"oo ....X..X.. oo",
"oo ...X..X..X oo",
"oo ..X..X..X. oo",
"oo .X..X..X.. oo",
"oo X..X..X... oo",
"oo ..X..X.... oo",
"ooo X..X.... ooo",
"ooo ..X..... ooo",
"oooo .... oooo",
"oooooo oooooo"
};

View File

@ -0,0 +1,24 @@
/* XPM */
static const char *brush_resource_1_gold[] = {
/* columns rows colors chars-per-pixel */
"16 16 2 1",
" c #808000",
". c None",
/* pixels */
"................",
". .......... .",
". ........ .",
".. ...... ..",
"... .... ...",
".... .. ....",
"..... .....",
"...... ......",
"...... ......",
"..... .....",
".... .. ....",
"... .... ...",
".. ...... ..",
". ........ .",
". .......... .",
"................"
};

View File

@ -0,0 +1,24 @@
/* XPM */
static const char *brush_resource_2_stone[] = {
/* columns rows colors chars-per-pixel */
"16 16 2 1",
" c #808080",
". c None",
/* pixels */
"................",
". .......... .",
". ........ .",
".. ...... ..",
"... .... ...",
".... .. ....",
"..... .....",
"...... ......",
"...... ......",
"..... .....",
".... .. ....",
"... .... ...",
".. ...... ..",
". ........ .",
". .......... .",
"................"
};

View File

@ -0,0 +1,24 @@
/* XPM */
static const char *brush_resource_3[] = {
/* columns rows colors chars-per-pixel */
"16 16 2 1",
" c #FF0000",
". c None",
/* pixels */
"................",
". .......... .",
". ........ .",
".. ...... ..",
"... .... ...",
".... .. ....",
"..... .....",
"...... ......",
"...... ......",
"..... .....",
".... .. ....",
"... .... ...",
".. ...... ..",
". ........ .",
". .......... .",
"................"
};

View File

@ -0,0 +1,24 @@
/* XPM */
static const char *brush_resource_4[] = {
/* columns rows colors chars-per-pixel */
"16 16 2 1",
" c #0000FF",
". c None",
/* pixels */
"................",
". .......... .",
". ........ .",
".. ...... ..",
"... .... ...",
".... .. ....",
"..... .....",
"...... ......",
"...... ......",
"..... .....",
".... .. ....",
"... .... ...",
".. ...... ..",
". ........ .",
". .......... .",
"................"
};

View File

@ -0,0 +1,24 @@
/* XPM */
static const char *brush_resource_5[] = {
/* columns rows colors chars-per-pixel */
"16 16 2 1",
" c #008080",
". c None",
/* pixels */
"................",
". .......... .",
". ........ .",
".. ...... ..",
"... .... ...",
".... .. ....",
"..... .....",
"...... ......",
"...... ......",
"..... .....",
".... .. ....",
"... .... ...",
".. ...... ..",
". ........ .",
". .......... .",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_surface_custom[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #808000",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
" ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" ",
"XXXXXXXXXXXXXXXX"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_surface_grass1[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #00FF00",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
" ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" ",
"XXXXXXXXXXXXXXXX"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_surface_grass2[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #008000",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
" ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" ",
"XXXXXXXXXXXXXXXX"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_surface_road[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #800000",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
" ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" ",
"XXXXXXXXXXXXXXXX"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *brush_surface_stone[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #808080",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
" ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" .............. ",
" ",
"XXXXXXXXXXXXXXXX"
};

View File

@ -0,0 +1,24 @@
/* XPM */
static const char *edit_randomize_heights[] = {
/* columns rows colors chars-per-pixel */
"16 16 2 1",
" c #008000",
". c None",
/* pixels */
"................",
"................",
"................",
"................",
"................",
"................",
"................",
"................",
"...... ..... .",
"... . .",
" ",
" ",
" ",
" ",
" ",
" "
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *edit_randomize[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #008000",
". c #00FF00",
"X c #00FFFF",
/* pixels */
" ",
" XX XX ",
" XX XX . ",
" XXXX ",
" XX ",
" XXXX .",
" XX XX .",
" XX XX ..",
" . ",
" .",
" . ",
" ... . ",
" . ",
" .",
" . .... ",
" ...... "
};

View File

@ -0,0 +1,24 @@
/* XPM */
static const char *edit_redo[] = {
/* columns rows colors chars-per-pixel */
"16 16 2 1",
" c #000000",
". c None",
/* pixels */
"................",
"........ .....",
"......... ....",
".......... ...",
"........... ..",
".... .",
"... .",
".. ...... ..",
". ...... ...",
". ...... ....",
". ..... .....",
". .............",
". .............",
".. .............",
"................",
"................"
};

View File

@ -0,0 +1,24 @@
/* XPM */
static const char *edit_switch_surfaces[] = {
/* columns rows colors chars-per-pixel */
"16 16 2 1",
" c #008000",
". c #00FF00",
/* pixels */
"........ ",
"........ ",
"........ ",
"........ ",
"........ ",
"..... .. . ",
".... .. .. ",
"... ..... ",
"... ..... ",
".... .. .. ",
"..... .. . ",
"........ ",
"........ ",
"........ ",
"........ ",
"........ "
};

View File

@ -0,0 +1,24 @@
/* XPM */
static const char *edit_undo[] = {
/* columns rows colors chars-per-pixel */
"16 16 2 1",
" c #000000",
". c None",
/* pixels */
"................",
"..... ........",
".... .........",
"... ..........",
".. ...........",
". ....",
". ...",
".. ...... ..",
"... ...... .",
".... ...... .",
"..... ..... .",
"............. .",
"............. .",
"............. ..",
"................",
"................"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *radius_1[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #C0C0C0",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXX..XXXXXXX",
"XXXXXX. .XXXXXX",
"XXXXXX. .XXXXXX",
"XXXXXXX..XXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX"
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *radius_2[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #000000",
". c #808080",
"X c #C0C0C0",
"o c None",
/* pixels */
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooXXooooooo",
"oooooo. .oooooo",
"oooooX Xooooo",
"oooooX Xooooo",
"oooooo. .oooooo",
"oooooooXXooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *radius_3[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #808080",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXX. .XXXXXX",
"XXXXX. .XXXXX",
"XXXXX XXXXX",
"XXXXX XXXXX",
"XXXXX. .XXXXX",
"XXXXXX. .XXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX"
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *radius_4[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #000000",
". c #808080",
"X c #C0C0C0",
"o c None",
/* pixels */
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"ooooooX..Xoooooo",
"ooooo. .ooooo",
"ooooX Xoooo",
"oooo. .oooo",
"oooo. .oooo",
"ooooX Xoooo",
"ooooo. .ooooo",
"ooooooX..Xoooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo"
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *radius_5[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #000000",
". c #808080",
"X c #C0C0C0",
"o c None",
/* pixels */
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooXXooooooo",
"oooooX. .Xooooo",
"ooooX Xoooo",
"oooo. .oooo",
"oooX Xooo",
"oooX Xooo",
"oooo. .oooo",
"ooooX Xoooo",
"oooooX. .Xooooo",
"oooooooXXooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo"
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *radius_6[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #000000",
". c #808080",
"X c #C0C0C0",
"o c None",
/* pixels */
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"ooooooX..Xoooooo",
"ooooo. .ooooo",
"oooo. .oooo",
"oooX Xooo",
"ooo. .ooo",
"ooo. .ooo",
"oooX Xooo",
"oooo. .oooo",
"ooooo. .ooooo",
"ooooooX..Xoooooo",
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooooooooooo"
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *radius_7[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #000000",
". c #808080",
"X c #C0C0C0",
"o c None",
/* pixels */
"oooooooooooooooo",
"oooooooooooooooo",
"oooooooXXooooooo",
"ooooo. .ooooo",
"oooo oooo",
"ooo. .ooo",
"ooo ooo",
"ooX Xoo",
"ooX Xoo",
"ooo ooo",
"ooo. .ooo",
"oooo oooo",
"ooooo. .ooooo",
"oooooooXXooooooo",
"oooooooooooooooo",
"oooooooooooooooo"
};

View File

@ -0,0 +1,26 @@
/* XPM */
static const char *radius_8[] = {
/* columns rows colors chars-per-pixel */
"16 16 4 1",
" c #000000",
". c #808080",
"X c #C0C0C0",
"o c None",
/* pixels */
"oooooooooooooooo",
"oooooooooooooooo",
"oooooo. .oooooo",
"ooooX Xoooo",
"oooX Xooo",
"ooo ooo",
"oo. .oo",
"oo oo",
"oo oo",
"oo. .oo",
"ooo ooo",
"oooX Xooo",
"ooooX Xoooo",
"oooooo. .oooooo",
"oooooooooooooooo",
"oooooooooooooooo"
};

View File

@ -0,0 +1,25 @@
/* XPM */
static const char *radius_9[] = {
/* columns rows colors chars-per-pixel */
"16 16 3 1",
" c #000000",
". c #808080",
"X c None",
/* pixels */
"XXXXXXXXXXXXXXXX",
"XXXXXXX..XXXXXXX",
"XXXXX. .XXXXX",
"XXXX XXXX",
"XXX XXX",
"XX. .XX",
"XX XX",
"X. .X",
"X. .X",
"XX XX",
"XX. .XX",
"XXX XXX",
"XXXX XXXX",
"XXXXX. .XXXXX",
"XXXXXXX..XXXXXXX",
"XXXXXXXXXXXXXXXX"
};

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,288 @@
// ==============================================================
// This file is part of Glest (www.glest.org)
//
// Copyright (C) 2001-2008 Marti<74>o Figueroa
//
// You can redistribute this code and/or modify it under
// the terms of the GNU General Public License as published
// by the Free Software Foundation; either version 2 of the
// License, or (at your option) any later version
// ==============================================================
#ifndef _MAPEDITOR_MAIN_H_
#define _MAPEDITOR_MAIN_H_
#include <string>
#include <vector>
#include <wx/wx.h>
#include <wx/glcanvas.h>
#include "program.h"
#include "util.h"
using std::string;
using std::vector;
using std::pair;
namespace MapEditor {
class GlCanvas;
enum BrushType {
btHeight,
btGradient,
btSurface,
btObject,
btResource,
btStartLocation
};
enum StatusItems {
siNULL_ENTRY,
siFILE_NAME,
siFILE_TYPE,
siCURR_OBJECT,
siBRUSH_TYPE,
siBRUSH_VALUE,
siBRUSH_RADIUS,
siCOUNT
};
const char *object_descs[] = {
"None (Erase)",
"Tree",
"Dead Tree",
"Stone",
"Bush",
"Water Object",
"Big/Dead Tree",
"Trophy Corpse",
"Statues",
"Big Rock",
"Invisible Blocking"
};
const char *resource_descs[] = {
"None (Erase)", "Gold", "Stone", "Custom", "Custom", "Custom"
};
const char *surface_descs[] = {
"Grass", "Alt. Grass", "Road", "Stone", "Ground"
};
// =====================================================
// class MainWindow
// =====================================================
class MainWindow: public wxFrame {
private:
DECLARE_EVENT_TABLE()
private:
static const string versionString;
static const string winHeader;
static const int heightCount = 11;
static const int surfaceCount = 5;
static const int objectCount = 11;
static const int resourceCount = 6;
static const int startLocationCount = 8;
static const int radiusCount = 9;
private:
enum MenuId {
miFileLoad,
miFileSave,
miFileSaveAs,
miFileExit,
miEditUndo,
miEditRedo,
miEditReset,
miEditResetPlayers,
miEditResize,
miEditFlipX,
miEditFlipY,
miEditRandomizeHeights,
miEditRandomize,
miEditSwitchSurfaces,
miEditInfo,
miEditAdvanced,
miMiscResetZoomAndPos,
miMiscAbout,
miMiscHelp,
toolPlayer,
miBrushHeight,
miBrushGradient = miBrushHeight + heightCount + 1,
miBrushSurface = miBrushGradient + heightCount + 1,
miBrushObject = miBrushSurface + surfaceCount + 1,
miBrushResource = miBrushObject + objectCount + 1,
miBrushStartLocation = miBrushResource + resourceCount + 1,
miRadius = miBrushStartLocation + startLocationCount + 1
};
private:
GlCanvas *glCanvas;
Program *program;
int lastX, lastY;
wxPanel *panel;
wxTimer *timer;
wxMenuBar *menuBar;
wxMenu *menuFile;
wxMenu *menuEdit;
wxMenu *menuMisc;
wxMenu *menuBrush;
wxMenu *menuBrushHeight;
wxMenu *menuBrushGradient;
wxMenu *menuBrushSurface;
wxMenu *menuBrushObject;
wxMenu *menuBrushResource;
wxMenu *menuBrushStartLocation;
wxMenu *menuRadius;
string currentFile;
BrushType currentBrush;
int height;
int surface;
int radius;
int object;
int resource;
int startLocation;
int resourceUnderMouse;
int objectUnderMouse;
ChangeType enabledGroup;
string fileName;
bool fileModified;
public:
MainWindow();
~MainWindow();
void init(string fname);
void onClose(wxCloseEvent &event);
void onMouseDown(wxMouseEvent &event, int x, int y);
void onMouseMove(wxMouseEvent &event, int x, int y);
void onPaint(wxPaintEvent &event);
void onKeyDown(wxKeyEvent &e);
void onMenuFileLoad(wxCommandEvent &event);
void onMenuFileSave(wxCommandEvent &event);
void onMenuFileSaveAs(wxCommandEvent &event);
void onMenuFileExit(wxCommandEvent &event);
void onMenuEditUndo(wxCommandEvent &event);
void onMenuEditRedo(wxCommandEvent &event);
void onMenuEditReset(wxCommandEvent &event);
void onMenuEditResetPlayers(wxCommandEvent &event);
void onMenuEditResize(wxCommandEvent &event);
void onMenuEditFlipX(wxCommandEvent &event);
void onMenuEditFlipY(wxCommandEvent &event);
void onMenuEditRandomizeHeights(wxCommandEvent &event);
void onMenuEditRandomize(wxCommandEvent &event);
void onMenuEditSwitchSurfaces(wxCommandEvent &event);
void onMenuEditInfo(wxCommandEvent &event);
void onMenuEditAdvanced(wxCommandEvent &event);
void onMenuMiscResetZoomAndPos(wxCommandEvent &event);
void onMenuMiscAbout(wxCommandEvent &event);
void onMenuMiscHelp(wxCommandEvent &event);
void onMenuBrushHeight(wxCommandEvent &event);
void onMenuBrushGradient(wxCommandEvent &event);
void onMenuBrushSurface(wxCommandEvent &event);
void onMenuBrushObject(wxCommandEvent &event);
void onMenuBrushResource(wxCommandEvent &event);
void onMenuBrushStartLocation(wxCommandEvent &event);
void onMenuRadius(wxCommandEvent &event);
void onToolPlayer(wxCommandEvent &event);
void onTimer(wxTimerEvent &event);
void change(int x, int y);
void uncheckBrush();
void uncheckRadius();
private:
bool isDirty() const { return fileModified; }
void setDirty(bool val=true);
void setExtension();
};
// =====================================================
// class GlCanvas
// =====================================================
class GlCanvas: public wxGLCanvas {
private:
DECLARE_EVENT_TABLE()
public:
GlCanvas(MainWindow *mainWindow, wxWindow *parent, int *args);
void onMouseDown(wxMouseEvent &event);
void onMouseMove(wxMouseEvent &event);
void onKeyDown(wxKeyEvent &event);
private:
MainWindow *mainWindow;
};
// =====================================================
// class SimpleDialog
// =====================================================
class SimpleDialog: public wxDialog {
private:
typedef vector<pair<string, string> > Values;
private:
Values values;
public:
void addValue(const string &key, const string &value);
string getValue(const string &key);
void show();
};
// =====================================================
// class App
// =====================================================
// =====================================================
// class App
// =====================================================
class App: public wxApp {
private:
MainWindow *mainWindow;
public:
virtual bool OnInit();
virtual int MainLoop();
virtual int OnExit();
};
}// end namespace
DECLARE_APP(MapEditor::App)
#endif

View File

@ -122,7 +122,9 @@ void Map::pirateChangeHeight(int x, int y, int height, int radius) {
// If the radius is 1 don't bother doing any calculations
if (radius == 1) {
cells[x][y].height = goalAlt;
if(inside(x, y)){
cells[x][y].height = goalAlt;
}
return;
}
@ -583,7 +585,7 @@ void Map::loadFromFile(const string &path) {
//read header
MapFileHeader header;
size_t readBytes = fread(&header, sizeof(MapFileHeader), 1, f1);
fread(&header, sizeof(MapFileHeader), 1, f1);
altFactor = header.altFactor;
waterLevel = header.waterLevel;
@ -594,22 +596,22 @@ void Map::loadFromFile(const string &path) {
//read start locations
resetFactions(header.maxFactions);
for (int i = 0; i < maxFactions; ++i) {
readBytes = fread(&startLocations[i].x, sizeof(int32), 1, f1);
readBytes = fread(&startLocations[i].y, sizeof(int32), 1, f1);
fread(&startLocations[i].x, sizeof(int32), 1, f1);
fread(&startLocations[i].y, sizeof(int32), 1, f1);
}
//read Heights
reset(header.width, header.height, 10, 1);
for (int j = 0; j < h; ++j) {
for (int i = 0; i < w; ++i) {
readBytes = fread(&cells[i][j].height, sizeof(float), 1, f1);
fread(&cells[i][j].height, sizeof(float), 1, f1);
}
}
//read surfaces
for (int j = 0; j < h; ++j) {
for (int i = 0; i < w; ++i) {
readBytes = fread(&cells[i][j].surface, sizeof(int8), 1, f1);
fread(&cells[i][j].surface, sizeof(int8), 1, f1);
}
}
@ -617,7 +619,7 @@ void Map::loadFromFile(const string &path) {
for (int j = 0; j < h; ++j) {
for (int i = 0; i < w; ++i) {
int8 obj;
readBytes = fread(&obj, sizeof(int8), 1, f1);
fread(&obj, sizeof(int8), 1, f1);
if (obj <= 10) {
cells[i][j].object = obj;
} else {

View File

@ -0,0 +1,342 @@
// ==============================================================
// This file is part of Glest (www.glest.org)
//
// Copyright (C) 2001-2008 Marti<74>o Figueroa
//
// You can redistribute this code and/or modify it under
// the terms of the GNU General Public License as published
// by the Free Software Foundation; either version 2 of the
// License, or (at your option) any later version
// ==============================================================
#include "program.h"
#include "util.h"
using namespace Shared::Util;
namespace MapEditor {
////////////////////////////
// class UndoPoint
////////////////////////////
int UndoPoint::w = 0;
int UndoPoint::h = 0;
UndoPoint::UndoPoint()
: change(ctNone)
, surface(0)
, object(0)
, resource(0)
, height(0) {
w = Program::map->getW();
h = Program::map->getH();
}
/*
UndoPoint::UndoPoint(ChangeType change) {
w = Program::map->getW();
h = Program::map->getH();
init(change);
}*/
void UndoPoint::init(ChangeType change) {
this->change = change;
switch (change) {
// Back up everything
case ctAll:
// Back up heights
case ctHeight:
case ctGradient:
// Build an array of heights from the map
//std::cout << "Building an array of heights to use for our UndoPoint" << std::endl;
height = new float[w * h];
for (int i = 0; i < w; ++i) {
for (int j = 0; j < h; ++j) {
height[j * w + i] = Program::map->getHeight(i, j);
}
}
//std::cout << "Built the array" << std::endl;
if (change != ctAll) break;
// Back up surfaces
case ctSurface:
surface = new int[w * h];
for (int i = 0; i < w; ++i) {
for (int j = 0; j < h; ++j) {
surface[j * w + i] = Program::map->getSurface(i, j);
}
}
if (change != ctAll) break;
// Back up both objects and resources if either changes
case ctObject:
case ctResource:
object = new int[w * h];
for (int i = 0; i < w; ++i) {
for (int j = 0; j < h; ++j) {
object[j * w + i] = Program::map->getObject(i, j);
}
}
resource = new int[w * h];
for (int i = 0; i < w; ++i) {
for (int j = 0; j < h; ++j) {
resource[j * w + i] = Program::map->getResource(i, j);
}
}
break;
}
}
UndoPoint::~UndoPoint() {
delete [] height;
delete [] resource;
delete [] object;
delete [] surface;
}
void UndoPoint::revert() {
//std::cout << "attempting to revert last changes to " << undoID << std::endl;
switch (change) {
// Revert Everything
case ctAll:
// Revert Heights
case ctHeight:
case ctGradient:
// Restore the array of heights to the map
//std::cout << "attempting to restore the height array" << std::endl;
for (int i = 0; i < w; i++) {
for (int j = 0; j < h; j++) {
Program::map->setHeight(i, j, height[j * w + i]);
}
}
if (change != ctAll) break;
// Revert surfaces
case ctSurface:
//std::cout << "attempting to restore the surface array" << std::endl;
for (int i = 0; i < w; i++) {
for (int j = 0; j < h; j++) {
Program::map->setSurface(i, j, surface[j * w + i]);
}
}
if (change != ctAll) break;
// Revert objects and resources
case ctObject:
case ctResource:
for (int i = 0; i < w; i++) {
for (int j = 0; j < h; j++) {
Program::map->setObject(i, j, object[j * w + i]);
}
}
for (int i = 0; i < w; i++) {
for (int j = 0; j < h; j++) {
Program::map->setResource(i, j, resource[j * w + i]);
}
}
break;
}
//std::cout << "reverted changes (we hope)" << std::endl;
}
// ===============================================
// class Program
// ===============================================
Map *Program::map = NULL;
Program::Program(int w, int h) {
cellSize = 6;
ofsetX = 0;
ofsetY = 0;
map = new Map();
renderer.init(w, h);
}
Program::~Program() {
delete map;
}
int Program::getObject(int x, int y) {
int i=(x - ofsetX) / cellSize;
int j= (y + ofsetY) / cellSize;
if (map->inside(i, j)) {
map->getObject(i,j);
}
else{
return 0;
}
}
int Program::getResource(int x, int y) {
int i=(x - ofsetX) / cellSize;
int j= (y + ofsetY) / cellSize;
if (map->inside(i, j)) {
map->getResource(i,j);
}
else{
return 0;
}
}
void Program::glestChangeMapHeight(int x, int y, int Height, int radius) {
map->glestChangeHeight((x - ofsetX) / cellSize, (y + ofsetY) / cellSize, Height, radius);
}
void Program::pirateChangeMapHeight(int x, int y, int Height, int radius) {
map->pirateChangeHeight((x - ofsetX) / cellSize, (y + ofsetY) / cellSize, Height, radius);
}
void Program::changeMapSurface(int x, int y, int surface, int radius) {
map->changeSurface((x - ofsetX) / cellSize, (y + ofsetY) / cellSize, surface, radius);
}
void Program::changeMapObject(int x, int y, int object, int radius) {
map->changeObject((x - ofsetX) / cellSize, (y + ofsetY) / cellSize, object, radius);
}
void Program::changeMapResource(int x, int y, int resource, int radius) {
map->changeResource((x - ofsetX) / cellSize, (y + ofsetY) / cellSize, resource, radius);
}
void Program::changeStartLocation(int x, int y, int player) {
map->changeStartLocation((x - ofsetX) / cellSize, (y + ofsetY) / cellSize, player);
}
void Program::setUndoPoint(ChangeType change) {
if (change == ctLocation) return;
undoStack.push(UndoPoint());
undoStack.top().init(change);
redoStack.clear();
}
bool Program::undo() {
if (undoStack.empty()) {
return false;
}
// push current state onto redo stack
redoStack.push(UndoPoint());
redoStack.top().init(undoStack.top().getChange());
undoStack.top().revert();
undoStack.pop();
return true;
}
bool Program::redo() {
if (redoStack.empty()) {
return false;
}
// push current state onto undo stack
undoStack.push(UndoPoint());
undoStack.top().init(redoStack.top().getChange());
redoStack.top().revert();
redoStack.pop();
return true;
}
void Program::renderMap(int w, int h) {
renderer.renderMap(map, ofsetX, ofsetY, w, h, cellSize);
}
void Program::setRefAlt(int x, int y) {
map->setRefAlt((x - ofsetX) / cellSize, (y + ofsetY) / cellSize);
}
void Program::flipX() {
map->flipX();
}
void Program::flipY() {
map->flipY();
}
void Program::randomizeMapHeights() {
map->randomizeHeights();
}
void Program::randomizeMap() {
map->randomize();
}
void Program::switchMapSurfaces(int surf1, int surf2) {
map->switchSurfaces(surf1, surf2);
}
void Program::reset(int w, int h, int alt, int surf) {
undoStack.clear();
redoStack.clear();
map->reset(w, h, (float) alt, surf);
}
void Program::resize(int w, int h, int alt, int surf) {
map->resize(w, h, (float) alt, surf);
}
void Program::resetFactions(int maxFactions) {
map->resetFactions(maxFactions);
}
bool Program::setMapTitle(const string &title) {
if (map->getTitle() != title) {
map->setTitle(title);
return true;
}
return false;
}
bool Program::setMapDesc(const string &desc) {
if (map->getDesc() != desc) {
map->setDesc(desc);
return true;
}
return false;
}
bool Program::setMapAuthor(const string &author) {
if (map->getAuthor() != author) {
map->setAuthor(author);
return true;
}
return false;
}
void Program::setOfset(int x, int y) {
ofsetX += x;
ofsetY -= y;
}
void Program::incCellSize(int i) {
int minInc = 2 - cellSize;
if (i < minInc) {
i = minInc;
}
cellSize += i;
ofsetX -= (map->getW() * i) / 2;
ofsetY += (map->getH() * i) / 2;
}
void Program::resetOfset() {
ofsetX = 0;
ofsetY = 0;
cellSize = 6;
}
void Program::setMapAdvanced(int altFactor, int waterLevel) {
map->setAdvanced(altFactor, waterLevel);
}
void Program::loadMap(const string &path) {
undoStack.clear();
redoStack.clear();
map->loadFromFile(path);
}
void Program::saveMap(const string &path) {
map->saveToFile(path);
}
}// end namespace