|
|
@ -1,4 +1,4 @@
|
|
|
|
/* $Id: mapmenu.c,v 1.13 2003/12/24 02:38:15 stpohle Exp $ */
|
|
|
|
/* $Id: mapmenu.c,v 1.14 2003/12/26 02:20:10 stpohle Exp $ */
|
|
|
|
/* map/tileset selection menu */
|
|
|
|
/* map/tileset selection menu */
|
|
|
|
|
|
|
|
|
|
|
|
#include "bomberclone.h"
|
|
|
|
#include "bomberclone.h"
|
|
|
@ -9,119 +9,110 @@ void
|
|
|
|
mapmenu ()
|
|
|
|
mapmenu ()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
int menuselect = 0;
|
|
|
|
int menuselect = 0;
|
|
|
|
char text[255],
|
|
|
|
char *mapname = NULL,
|
|
|
|
*mapname = NULL,
|
|
|
|
pathname[LEN_PATHFILENAME];
|
|
|
|
pathname[LEN_PATHFILENAME],
|
|
|
|
_charlist maptypes[] = {
|
|
|
|
size[4];
|
|
|
|
{"selected file", NULL},
|
|
|
|
|
|
|
|
{"random file", NULL},
|
|
|
|
/* _menu menu[] = {
|
|
|
|
{"autogenerated", NULL}
|
|
|
|
{1, "Random Map:"},
|
|
|
|
}, tiletypes[] = {
|
|
|
|
{1, "Selected Map:"},
|
|
|
|
{
|
|
|
|
{2, " Size X:"},
|
|
|
|
"random"}, {
|
|
|
|
{3, " Size Y:"},
|
|
|
|
"selected"}
|
|
|
|
{4, "Random Tileset:"},
|
|
|
|
}, tunneltypes[] = {
|
|
|
|
{5, "Selected Tileset:"},
|
|
|
|
{
|
|
|
|
{6, "Max Players:"},
|
|
|
|
"normal"}, {
|
|
|
|
{7, "Bombs:"},
|
|
|
|
"tunnel"}, {
|
|
|
|
{8, "Fire :"},
|
|
|
|
"random"},}, *selmt = NULL, *selts = NULL, *seltt = NULL;
|
|
|
|
{9, "Shoes:"},
|
|
|
|
char mname[100];
|
|
|
|
{10, "Mixed:"},
|
|
|
|
|
|
|
|
{11, "Death:"},
|
|
|
|
|
|
|
|
{12, "Special Trigger :"},
|
|
|
|
charlist_fillarraypointer (maptypes, 3);
|
|
|
|
{13, "Special Push Liq. Moved:"},
|
|
|
|
charlist_fillarraypointer (tiletypes, 2);
|
|
|
|
{14, "Special Row :"},
|
|
|
|
charlist_fillarraypointer (tunneltypes, 3);
|
|
|
|
{15, "Gamet Timeout:"},
|
|
|
|
|
|
|
|
{16, "Maptype: Random"},
|
|
|
|
while (menuselect != -1 && bman.state != GS_quit) {
|
|
|
|
{0, ""},
|
|
|
|
menu_new ("Map Options", 420, 400);
|
|
|
|
{15, "Return To Previous Menu"},
|
|
|
|
// map.map_selection=MAPS_select;
|
|
|
|
{-1, ""}
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
while (menuselect != -1) {
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
switch (map.map_selection) {
|
|
|
|
switch (map.map_selection) {
|
|
|
|
case (MAPS_select): // Selected Map
|
|
|
|
case (MAPS_select): // Selected Map
|
|
|
|
|
|
|
|
selmt = charlist_findtext (maptypes, "selected file");
|
|
|
|
if (map.map[0] == 0)
|
|
|
|
if (map.map[0] == 0)
|
|
|
|
sprintf (menu[1].text, "Selected Map: < undefined >");
|
|
|
|
sprintf (mname, "< undefined >");
|
|
|
|
else
|
|
|
|
else
|
|
|
|
sprintf (menu[1].text, "Selected Map: %s", getfilename (map.map));
|
|
|
|
sprintf (mname, "%s", getfilename (map.map));
|
|
|
|
menu[1].index = 1;
|
|
|
|
menu_create_label ("Selected Map:", 20, 160, 0);
|
|
|
|
sprintf (menu[0].text, "Random Map: OFF");
|
|
|
|
menu_create_button (mname, 10, 180, 170, 2);
|
|
|
|
menu[2].text[0] = 0;
|
|
|
|
|
|
|
|
menu[2].index = 0;
|
|
|
|
|
|
|
|
menu[3].text[0] = 0;
|
|
|
|
|
|
|
|
menu[3].index = 0;
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case (MAPS_randmap): // Random Map
|
|
|
|
case (MAPS_randmap): // Random Map
|
|
|
|
menu[1].text[0] = 0;
|
|
|
|
selmt = charlist_findtext (maptypes, "random file");
|
|
|
|
menu[1].index = 0;
|
|
|
|
|
|
|
|
sprintf (menu[0].text, "Random Map: random file");
|
|
|
|
|
|
|
|
menu[2].text[0] = 0;
|
|
|
|
|
|
|
|
menu[2].index = 0;
|
|
|
|
|
|
|
|
menu[3].text[0] = 0;
|
|
|
|
|
|
|
|
menu[3].index = 0;
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case (MAPS_randgen): // Random Generated Map
|
|
|
|
case (MAPS_randgen): // Random Generated Map
|
|
|
|
menu[1].text[0] = 0;
|
|
|
|
selmt = charlist_findtext (maptypes, "autogenerated");
|
|
|
|
menu[1].index = 0;
|
|
|
|
d_printf ("autogen\n");
|
|
|
|
sprintf (menu[0].text, "Random Map: auto-generated");
|
|
|
|
menu_create_entry ("X Size:", 20, 160, 120, &map.size.x, MAX_FIELDSIZE_X, MENU_entryint,
|
|
|
|
sprintf (menu[2].text, " Size X: %d", map.size.x);
|
|
|
|
2);
|
|
|
|
menu[2].index = 2;
|
|
|
|
menu_create_entry ("Y Size:", 20, 180, 120, &map.size.y, MAX_FIELDSIZE_Y, MENU_entryint,
|
|
|
|
sprintf (menu[3].text, " Size Y: %d", map.size.y);
|
|
|
|
3);
|
|
|
|
menu[3].index = 3;
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (map.random_tileset) {
|
|
|
|
if (map.random_tileset) {
|
|
|
|
menu[5].text[0] = 0;
|
|
|
|
selts = charlist_findtext (tiletypes, "selected");
|
|
|
|
menu[5].index = 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
if (map.tileset[0] == 0)
|
|
|
|
if (map.tileset[0] == 0)
|
|
|
|
sprintf (menu[5].text, "Selected Tileset: < undefined >");
|
|
|
|
sprintf (mname, "< undefined >");
|
|
|
|
else
|
|
|
|
else
|
|
|
|
sprintf (menu[5].text, "Selected Tileset: %s", map.tileset);
|
|
|
|
sprintf (mname, "%s", map.tileset);
|
|
|
|
menu[5].index = 5;
|
|
|
|
menu_create_label ("Selected Tileset:", 250, 140, 0);
|
|
|
|
|
|
|
|
menu_create_button (mname, 250, 160, 170, 5);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
selts = charlist_findtext (tiletypes, "random");
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
switch (map.type) {
|
|
|
|
|
|
|
|
case (MAPT_normal):
|
|
|
|
|
|
|
|
seltt = charlist_findtext (tunneltypes, "normal");
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case (MAPT_tunnel):
|
|
|
|
|
|
|
|
seltt = charlist_findtext (tunneltypes, "tunnel");
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
|
|
seltt = charlist_findtext (tunneltypes, "random");
|
|
|
|
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (map.random_tileset)
|
|
|
|
menu_create_label ("Map Type:", 10, 50, 1);
|
|
|
|
sprintf (menu[4].text, "Random Tileset: random file");
|
|
|
|
menu_create_label ("Tileset:", 250, 50, 1);
|
|
|
|
else
|
|
|
|
menu_create_label ("Items:", 220, 200, 1);
|
|
|
|
sprintf (menu[4].text, "Random Tileset: OFF");
|
|
|
|
menu_create_list ("mt", 10, 85, 170, 60, maptypes, &selmt, 1);
|
|
|
|
|
|
|
|
menu_create_list ("ts", 250, 85, 170, 40, tiletypes, &selts, 4);
|
|
|
|
sprintf (menu[6].text, "Max Players: %d/%d", bman.maxplayer, MAX_PLAYERS);
|
|
|
|
menu_create_list ("tt", 10, 220, 100, 60, tunneltypes, &seltt, 6);
|
|
|
|
|
|
|
|
|
|
|
|
sprintf (menu[7].text, "Bombs:%d", map.bombs);
|
|
|
|
menu_create_entry ("Bombs:", 140, 240, 110, &map.bombs, 100, MENU_entryint, 7);
|
|
|
|
sprintf (menu[8].text, "Fire :%d", map.fire);
|
|
|
|
menu_create_entry ("Fire: ", 140, 260, 110, &map.fire, 100, MENU_entryint, 8);
|
|
|
|
sprintf (menu[9].text, "Shoes:%d", map.shoes);
|
|
|
|
menu_create_entry ("Shoes:", 140, 280, 110, &map.shoes, 100, MENU_entryint, 9);
|
|
|
|
sprintf (menu[10].text, "Mixed:%d", map.mixed);
|
|
|
|
menu_create_entry ("Mixed:", 140, 300, 110, &map.mixed, 100, MENU_entryint, 10);
|
|
|
|
sprintf (menu[11].text, "Death:%d", map.death);
|
|
|
|
menu_create_entry ("Death:", 140, 320, 110, &map.death, 100, MENU_entryint, 11);
|
|
|
|
sprintf (menu[12].text, "Special Trigger:%d", map.sp_trigger);
|
|
|
|
|
|
|
|
sprintf (menu[13].text, "Special Push :%d", map.sp_push);
|
|
|
|
menu_create_entry ("Trigger:", 280, 240, 120, &map.sp_trigger, 30, MENU_entryint, 12);
|
|
|
|
sprintf (menu[14].text, "Special Row :%d", map.sp_row);
|
|
|
|
menu_create_entry ("Push: ", 280, 260, 120, &map.sp_push, 30, MENU_entryint, 13);
|
|
|
|
|
|
|
|
menu_create_entry ("Row: ", 280, 280, 120, &map.sp_row, 30, MENU_entryint, 14);
|
|
|
|
sprintf (menu[15].text, "Game Timeout:%d", bman.init_timeout);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
switch (map.type) {
|
|
|
|
|
|
|
|
case (MAPT_normal):
|
|
|
|
|
|
|
|
sprintf (menu[16].text, "Maptype: NORMAL");
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case (MAPT_tunnel):
|
|
|
|
|
|
|
|
sprintf (menu[16].text, "Maptype: TUNNEL");
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
|
|
sprintf (menu[16].text, "Maptype: RANDOM");
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
menuselect = menu_loop ();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
menu_create_entry ("Game Timeout:", -1, 350, 180, &bman.init_timeout, 900, MENU_entryint, 15);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
menu_create_button ("Ok", -1, 380, 150, 0);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
menuselect = menu_loop ();
|
|
|
|
|
|
|
|
menu_delete ();
|
|
|
|
switch (menuselect) {
|
|
|
|
switch (menuselect) {
|
|
|
|
case (0): // Random Map
|
|
|
|
|
|
|
|
map.map_selection = (map.map_selection + 2) % 3;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case (1): // Selected Map
|
|
|
|
case (0):
|
|
|
|
|
|
|
|
menuselect = -1;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case (1): // Select
|
|
|
|
|
|
|
|
map.map_selection = selmt - &maptypes[0];
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case (2): // Select Map
|
|
|
|
sprintf (pathname, "%s/maps", bman.datapath);
|
|
|
|
sprintf (pathname, "%s/maps", bman.datapath);
|
|
|
|
// mapname = menu_dir_select ("Select Map", pathname, DF_file);
|
|
|
|
// mapname = menu_dir_select ("Select Map", pathname, DF_file);
|
|
|
|
if (mapname == NULL) {
|
|
|
|
if (mapname == NULL) {
|
|
|
@ -129,43 +120,18 @@ mapmenu ()
|
|
|
|
map.map_selection = 2;
|
|
|
|
map.map_selection = 2;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
FILE *fmap;
|
|
|
|
FILE *fmap;
|
|
|
|
|
|
|
|
|
|
|
|
sprintf (map.map, "%s/maps/%s", bman.datapath, mapname);
|
|
|
|
|
|
|
|
if ((fmap = fopen (map.map, "r")))
|
|
|
|
|
|
|
|
map_load (fmap);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case (2): // Size X
|
|
|
|
sprintf (map.map, "%s/maps/%s", bman.datapath, mapname);
|
|
|
|
sprintf (text, "Field Size X (%d - %d)", MIN_FIELDSIZE_X, MAX_FIELDSIZE_X);
|
|
|
|
if ((fmap = fopen (map.map, "r")))
|
|
|
|
sprintf (size, "%d", map.size.x);
|
|
|
|
map_load (fmap);
|
|
|
|
// menu_get_text (text, size, 3);
|
|
|
|
}
|
|
|
|
map.size.x = atoi (size) | 1;
|
|
|
|
|
|
|
|
if (map.size.x < MIN_FIELDSIZE_X)
|
|
|
|
|
|
|
|
map.size.x = MIN_FIELDSIZE_X;
|
|
|
|
|
|
|
|
if (map.size.x > MAX_FIELDSIZE_X)
|
|
|
|
|
|
|
|
map.size.x = MAX_FIELDSIZE_X;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case (3): // Size Y
|
|
|
|
|
|
|
|
sprintf (text, "Field Size Y (%d - %d)", MIN_FIELDSIZE_Y, MAX_FIELDSIZE_Y);
|
|
|
|
|
|
|
|
sprintf (size, "%d", map.size.y);
|
|
|
|
|
|
|
|
// menu_get_text (text, size, 3);
|
|
|
|
|
|
|
|
map.size.y = atoi (size) | 1;
|
|
|
|
|
|
|
|
if (map.size.y < MIN_FIELDSIZE_Y)
|
|
|
|
|
|
|
|
map.size.y = MIN_FIELDSIZE_Y;
|
|
|
|
|
|
|
|
if (map.size.y > MAX_FIELDSIZE_Y)
|
|
|
|
|
|
|
|
map.size.y = MAX_FIELDSIZE_Y;
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
case (4): // Random Tileset
|
|
|
|
case (4): // Random Tileset
|
|
|
|
if (map.random_tileset == 1)
|
|
|
|
map.random_tileset = selts - &tiletypes[0];
|
|
|
|
map.random_tileset = 0;
|
|
|
|
d_printf ("Tile:%d\n", map.random_tileset);
|
|
|
|
else
|
|
|
|
|
|
|
|
map.random_tileset = 1;
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
case (5): // Selected Tileset
|
|
|
|
case (5): // Selected Tileset
|
|
|
|
sprintf (pathname, "%s/tileset", bman.datapath);
|
|
|
|
sprintf (pathname, "%s/tileset", bman.datapath);
|
|
|
|
// mapname = menu_dir_select ("Select Tileset", pathname, DF_dir);
|
|
|
|
// mapname = menu_dir_select ("Select Tileset", pathname, DF_dir);
|
|
|
@ -176,70 +142,27 @@ mapmenu ()
|
|
|
|
else
|
|
|
|
else
|
|
|
|
strcpy (map.tileset, mapname);
|
|
|
|
strcpy (map.tileset, mapname);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case (6):
|
|
|
|
case (6): // Random Tileset
|
|
|
|
sprintf (text, "%d", bman.maxplayer);
|
|
|
|
map.type = seltt - &tunneltypes[0];
|
|
|
|
// menu_get_text ("Max Players", text, 2);
|
|
|
|
if (map.type == 2)
|
|
|
|
bman.maxplayer = atoi (text);
|
|
|
|
map.type = -1;
|
|
|
|
if (bman.maxplayer > MAX_PLAYERS)
|
|
|
|
d_printf ("Tunnel:%d\n", map.type);
|
|
|
|
bman.maxplayer = MAX_PLAYERS;
|
|
|
|
|
|
|
|
if (bman.maxplayer < 2)
|
|
|
|
|
|
|
|
bman.maxplayer = 2;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case (7):
|
|
|
|
|
|
|
|
sprintf (text, "%d", map.bombs);
|
|
|
|
|
|
|
|
// menu_get_text ("Bomb Powerups", text, 2);
|
|
|
|
|
|
|
|
map.bombs = atoi (text);
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case (8):
|
|
|
|
|
|
|
|
sprintf (text, "%d", map.fire);
|
|
|
|
|
|
|
|
// menu_get_text ("Fire/Range Powerup", text, 2);
|
|
|
|
|
|
|
|
map.fire = atoi (text);
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case (9):
|
|
|
|
|
|
|
|
sprintf (text, "%d", map.shoes);
|
|
|
|
|
|
|
|
// menu_get_text ("Shoes Powerup", text, 2);
|
|
|
|
|
|
|
|
map.shoes = atoi (text);
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case (10):
|
|
|
|
|
|
|
|
sprintf (text, "%d", map.mixed);
|
|
|
|
|
|
|
|
// menu_get_text ("Mixed Powerup", text, 2);
|
|
|
|
|
|
|
|
map.mixed = atoi (text);
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case (11):
|
|
|
|
|
|
|
|
sprintf (text, "%d", map.death);
|
|
|
|
|
|
|
|
// menu_get_text ("Death Powerup", text, 2);
|
|
|
|
|
|
|
|
map.death = atoi (text);
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case (12):
|
|
|
|
|
|
|
|
sprintf (text, "%d", map.sp_trigger);
|
|
|
|
|
|
|
|
// menu_get_text ("Trigger Specials", text, 2);
|
|
|
|
|
|
|
|
map.sp_trigger = atoi (text);
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case (13):
|
|
|
|
|
|
|
|
sprintf (text, "%d", map.sp_push);
|
|
|
|
|
|
|
|
// menu_get_text ("Push Specials", text, 2);
|
|
|
|
|
|
|
|
map.sp_push = atoi (text);
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case (14):
|
|
|
|
|
|
|
|
sprintf (text, "%d", map.sp_row);
|
|
|
|
|
|
|
|
// menu_get_text ("Row Specials", text, 2);
|
|
|
|
|
|
|
|
map.sp_row = atoi (text);
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case (15):
|
|
|
|
|
|
|
|
sprintf (text, "%d", bman.init_timeout);
|
|
|
|
|
|
|
|
// menu_get_text ("Game Timeout", text, 7);
|
|
|
|
|
|
|
|
bman.init_timeout = atoi (text);
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case (16):
|
|
|
|
|
|
|
|
map.type++;
|
|
|
|
|
|
|
|
if (map.type >= MAPT_max)
|
|
|
|
|
|
|
|
map.type = MAPT_random;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case (18): // Return to previous menu
|
|
|
|
|
|
|
|
menuselect = -1;
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
map.size.x = map.size.x | 1;
|
|
|
|
|
|
|
|
if (map.size.x < MIN_FIELDSIZE_X)
|
|
|
|
|
|
|
|
map.size.x = MIN_FIELDSIZE_X;
|
|
|
|
|
|
|
|
if (map.size.x > MAX_FIELDSIZE_X)
|
|
|
|
|
|
|
|
map.size.x = MAX_FIELDSIZE_X;
|
|
|
|
|
|
|
|
map.size.y = map.size.y | 1;
|
|
|
|
|
|
|
|
if (map.size.y < MIN_FIELDSIZE_Y)
|
|
|
|
|
|
|
|
map.size.y = MIN_FIELDSIZE_Y;
|
|
|
|
|
|
|
|
if (map.size.y > MAX_FIELDSIZE_Y)
|
|
|
|
|
|
|
|
map.size.y = MAX_FIELDSIZE_Y;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -251,140 +174,143 @@ mapmenu ()
|
|
|
|
void
|
|
|
|
void
|
|
|
|
mapinfo ()
|
|
|
|
mapinfo ()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
_keybinput ki;
|
|
|
|
_keybinput ki;
|
|
|
|
SDL_Event event;
|
|
|
|
SDL_Event event;
|
|
|
|
int x, y, eventstate, done = 0;
|
|
|
|
int x,
|
|
|
|
char text[255];
|
|
|
|
y,
|
|
|
|
|
|
|
|
eventstate,
|
|
|
|
// draw_menubox (WIN_X, WIN_Y);
|
|
|
|
done = 0;
|
|
|
|
|
|
|
|
char text[255];
|
|
|
|
x = gfx.res.x / 2;
|
|
|
|
|
|
|
|
y = gfx.res.y / 2 - WIN_Y / 2;
|
|
|
|
// draw_menubox (WIN_X, WIN_Y);
|
|
|
|
|
|
|
|
|
|
|
|
sprintf (text, "Map Settings");
|
|
|
|
x = gfx.res.x / 2;
|
|
|
|
// font_setcolor (128,128,0,1);
|
|
|
|
y = gfx.res.y / 2 - WIN_Y / 2;
|
|
|
|
// font_draw (x - (font[1].size.x * strlen (text) / 2), y, text, 1);
|
|
|
|
|
|
|
|
// font_setcolor (255,255,0,1);
|
|
|
|
sprintf (text, "Map Settings");
|
|
|
|
// font_draw (1 + x - (font[1].size.x * strlen (text) / 2),1 + y, text, 1);
|
|
|
|
// font_setcolor (128,128,0,1);
|
|
|
|
y = y + 2 + (font[1].size.y << 1);
|
|
|
|
// font_draw (x - (font[1].size.x * strlen (text) / 2), y, text, 1);
|
|
|
|
|
|
|
|
// font_setcolor (255,255,0,1);
|
|
|
|
/* MapSize */
|
|
|
|
// font_draw (1 + x - (font[1].size.x * strlen (text) / 2),1 + y, text, 1);
|
|
|
|
sprintf (text, "Fieldsize: %d,%d", map.size.x, map.size.y);
|
|
|
|
y = y + 2 + (font[1].size.y << 1);
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
|
|
|
|
// font_draw (x - (font[0].size.x * strlen (text) / 2), y, text, 0);
|
|
|
|
/* MapSize */
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
sprintf (text, "Fieldsize: %d,%d", map.size.x, map.size.y);
|
|
|
|
// font_draw (1 + x - (font[0].size.x * strlen (text) / 2),1 + y, text, 0);
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
y = y + 2 + font[0].size.y;
|
|
|
|
// font_draw (x - (font[0].size.x * strlen (text) / 2), y, text, 0);
|
|
|
|
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
/* Tileset */
|
|
|
|
// font_draw (1 + x - (font[0].size.x * strlen (text) / 2),1 + y, text, 0);
|
|
|
|
if (map.random_tileset)
|
|
|
|
y = y + 2 + font[0].size.y;
|
|
|
|
sprintf (text, "Random Tileset");
|
|
|
|
|
|
|
|
else
|
|
|
|
/* Tileset */
|
|
|
|
sprintf (text, "Tileset: %s", map.tileset);
|
|
|
|
if (map.random_tileset)
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
sprintf (text, "Random Tileset");
|
|
|
|
// font_draw (2 + x - (WIN_X / 2), y, text, 0);
|
|
|
|
else
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
sprintf (text, "Tileset: %s", map.tileset);
|
|
|
|
// font_draw (3 + x - (WIN_X / 2) ,1 + y, text, 0);
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
|
|
|
|
// font_draw (2 + x - (WIN_X / 2), y, text, 0);
|
|
|
|
/* Mapselection */
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
if (map.map_selection == 0)
|
|
|
|
// font_draw (3 + x - (WIN_X / 2) ,1 + y, text, 0);
|
|
|
|
sprintf (text, "Selected Map: %s", map.map);
|
|
|
|
|
|
|
|
else if (map.map_selection == 1)
|
|
|
|
/* Mapselection */
|
|
|
|
sprintf (text, "Random Map");
|
|
|
|
if (map.map_selection == 0)
|
|
|
|
else
|
|
|
|
sprintf (text, "Selected Map: %s", map.map);
|
|
|
|
sprintf (text, "Random Generated Map");
|
|
|
|
else if (map.map_selection == 1)
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
sprintf (text, "Random Map");
|
|
|
|
// font_draw (x , y, text, 0);
|
|
|
|
else
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
sprintf (text, "Random Generated Map");
|
|
|
|
// font_draw (1 + x, 1 + y, text, 0);
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
y = y + 2 + (font[0].size.y << 1);
|
|
|
|
// font_draw (x , y, text, 0);
|
|
|
|
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
/* Bomb Powerups */
|
|
|
|
// font_draw (1 + x, 1 + y, text, 0);
|
|
|
|
sprintf (text, "Bomb Powerup: %d", map.bombs);
|
|
|
|
y = y + 2 + (font[0].size.y << 1);
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
|
|
|
|
// font_draw (2 + x - (WIN_X / 2), y, text, 0);
|
|
|
|
/* Bomb Powerups */
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
sprintf (text, "Bomb Powerup: %d", map.bombs);
|
|
|
|
// font_draw (3 + x - (WIN_X / 2) ,1 + y, text, 0);
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
|
|
|
|
// font_draw (2 + x - (WIN_X / 2), y, text, 0);
|
|
|
|
/* Trigger */
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
sprintf (text, "Trigger Specials: %d", map.sp_trigger);
|
|
|
|
// font_draw (3 + x - (WIN_X / 2) ,1 + y, text, 0);
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
|
|
|
|
// font_draw (x , y, text, 0);
|
|
|
|
/* Trigger */
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
sprintf (text, "Trigger Specials: %d", map.sp_trigger);
|
|
|
|
// font_draw (1 + x, 1 + y, text, 0);
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
y = y + 2 + font[0].size.y;
|
|
|
|
// font_draw (x , y, text, 0);
|
|
|
|
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
/* Fire Powerups */
|
|
|
|
// font_draw (1 + x, 1 + y, text, 0);
|
|
|
|
sprintf (text, "Fire Powerup: %d", map.fire);
|
|
|
|
y = y + 2 + font[0].size.y;
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
|
|
|
|
// font_draw (2 + x - (WIN_X / 2), y, text, 0);
|
|
|
|
/* Fire Powerups */
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
sprintf (text, "Fire Powerup: %d", map.fire);
|
|
|
|
// font_draw (3 + x - (WIN_X / 2) ,1 + y, text, 0);
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
|
|
|
|
// font_draw (2 + x - (WIN_X / 2), y, text, 0);
|
|
|
|
/* Push */
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
sprintf (text, "Push Specials: %d", map.sp_push);
|
|
|
|
// font_draw (3 + x - (WIN_X / 2) ,1 + y, text, 0);
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
|
|
|
|
// font_draw (x , y, text, 0);
|
|
|
|
/* Push */
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
sprintf (text, "Push Specials: %d", map.sp_push);
|
|
|
|
// font_draw (1 + x, 1 + y, text, 0);
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
y = y + 2 + font[0].size.y;
|
|
|
|
// font_draw (x , y, text, 0);
|
|
|
|
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
/* Shoe Powerups */
|
|
|
|
// font_draw (1 + x, 1 + y, text, 0);
|
|
|
|
sprintf (text, "Shoe Powerup: %d", map.shoes);
|
|
|
|
y = y + 2 + font[0].size.y;
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
|
|
|
|
// font_draw (2 + x - (WIN_X / 2), y, text, 0);
|
|
|
|
/* Shoe Powerups */
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
sprintf (text, "Shoe Powerup: %d", map.shoes);
|
|
|
|
// font_draw (3 + x - (WIN_X / 2) ,1 + y, text, 0);
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
|
|
|
|
// font_draw (2 + x - (WIN_X / 2), y, text, 0);
|
|
|
|
/* Row */
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
sprintf (text, "Row Specials: %d", map.sp_row);
|
|
|
|
// font_draw (3 + x - (WIN_X / 2) ,1 + y, text, 0);
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
|
|
|
|
// font_draw (x , y, text, 0);
|
|
|
|
/* Row */
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
sprintf (text, "Row Specials: %d", map.sp_row);
|
|
|
|
// font_draw (1 + x, 1 + y, text, 0);
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
y = y + 2 + font[0].size.y;
|
|
|
|
// font_draw (x , y, text, 0);
|
|
|
|
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
|
|
|
|
// font_draw (1 + x, 1 + y, text, 0);
|
|
|
|
/* Mixed Powerups */
|
|
|
|
y = y + 2 + font[0].size.y;
|
|
|
|
sprintf (text, "Mixed Powerup: %d", map.mixed);
|
|
|
|
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
|
|
|
|
// font_draw (2 + x - (WIN_X / 2), y, text, 0);
|
|
|
|
/* Mixed Powerups */
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
sprintf (text, "Mixed Powerup: %d", map.mixed);
|
|
|
|
// font_draw (3 + x - (WIN_X / 2) ,1 + y, text, 0);
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
|
|
|
|
// font_draw (2 + x - (WIN_X / 2), y, text, 0);
|
|
|
|
/* Special FREE
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
sprintf (text, "Push Specials: %d", map.sp_push);
|
|
|
|
// font_draw (3 + x - (WIN_X / 2) ,1 + y, text, 0);
|
|
|
|
font_setcolor (128,128,128,0);
|
|
|
|
|
|
|
|
font_draw (x , y, text, 0);
|
|
|
|
/* Special FREE
|
|
|
|
font_setcolor (255,255,255,0);
|
|
|
|
sprintf (text, "Push Specials: %d", map.sp_push);
|
|
|
|
font_draw (1 + x, 1 + y, text, 0); */
|
|
|
|
font_setcolor (128,128,128,0);
|
|
|
|
y = y + 2 + font[0].size.y;
|
|
|
|
font_draw (x , y, text, 0);
|
|
|
|
|
|
|
|
font_setcolor (255,255,255,0);
|
|
|
|
/* Death Powerups */
|
|
|
|
font_draw (1 + x, 1 + y, text, 0); */
|
|
|
|
sprintf (text, "Death Powerup: %d", map.death);
|
|
|
|
y = y + 2 + font[0].size.y;
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
|
|
|
|
// font_draw (2 + x - (WIN_X / 2), y, text, 0);
|
|
|
|
/* Death Powerups */
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
sprintf (text, "Death Powerup: %d", map.death);
|
|
|
|
// font_draw (3 + x - (WIN_X / 2) ,1 + y, text, 0);
|
|
|
|
// font_setcolor (128,128,128,0);
|
|
|
|
|
|
|
|
// font_draw (2 + x - (WIN_X / 2), y, text, 0);
|
|
|
|
/* Special FREE
|
|
|
|
// font_setcolor (255,255,255,0);
|
|
|
|
sprintf (text, "Row Specials: %d", map.sp_row);
|
|
|
|
// font_draw (3 + x - (WIN_X / 2) ,1 + y, text, 0);
|
|
|
|
font_setcolor (128,128,128,0);
|
|
|
|
|
|
|
|
font_draw (x , y, text, 0);
|
|
|
|
/* Special FREE
|
|
|
|
font_setcolor (255,255,255,0);
|
|
|
|
sprintf (text, "Row Specials: %d", map.sp_row);
|
|
|
|
font_draw (1 + x, 1 + y, text, 0); */
|
|
|
|
font_setcolor (128,128,128,0);
|
|
|
|
y = y + 2 + font[0].size.y;
|
|
|
|
font_draw (x , y, text, 0);
|
|
|
|
|
|
|
|
font_setcolor (255,255,255,0);
|
|
|
|
SDL_Flip (gfx.screen);
|
|
|
|
font_draw (1 + x, 1 + y, text, 0); */
|
|
|
|
keybinput_new (&ki, KEYBI_text, 10);
|
|
|
|
y = y + 2 + font[0].size.y;
|
|
|
|
|
|
|
|
|
|
|
|
while (!done && bman.state == GS_wait) {
|
|
|
|
SDL_Flip (gfx.screen);
|
|
|
|
if (GT_MP && bman.sock != -1) {
|
|
|
|
keybinput_new (&ki, KEYBI_text, 10);
|
|
|
|
network_loop ();
|
|
|
|
|
|
|
|
eventstate = SDL_PollEvent (&event);
|
|
|
|
while (!done && bman.state == GS_wait) {
|
|
|
|
}
|
|
|
|
if (GT_MP && bman.sock != -1) {
|
|
|
|
else
|
|
|
|
network_loop ();
|
|
|
|
eventstate = SDL_WaitEvent (&event);
|
|
|
|
eventstate = SDL_PollEvent (&event);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
eventstate = SDL_WaitEvent (&event);
|
|
|
|
|
|
|
|
|
|
|
|
if (eventstate != 0)
|
|
|
|
if (eventstate != 0)
|
|
|
|
switch (event.type) {
|
|
|
|
switch (event.type) {
|
|
|
@ -394,8 +320,9 @@ mapinfo ()
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
done = keybinput_loop (&ki, &event);
|
|
|
|
done = keybinput_loop (&ki, &event);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#undef WIN_X
|
|
|
|
#undef WIN_X
|
|
|
|
#undef WIN_Y
|
|
|
|
#undef WIN_Y
|
|
|
|