@ -1,7 +1,8 @@
/* $Id: mapmenu.c,v 1.1 2 2003/11/08 06:27:59 stpohle Exp $ */
/* $Id: mapmenu.c,v 1.1 3 2003/12/24 02:38:15 stpohle Exp $ */
/* map/tileset selection menu */
/* map/tileset selection menu */
# include "bomberclone.h"
# include "bomberclone.h"
# include "menu.h"
/* launch the map options menu */
/* launch the map options menu */
void
void
@ -9,11 +10,11 @@ mapmenu ()
{
{
int menuselect = 0 ;
int menuselect = 0 ;
char text [ 255 ] ,
char text [ 255 ] ,
* mapname ,
* mapname = NULL ,
pathname [ LEN_PATHFILENAME ] ,
pathname [ LEN_PATHFILENAME ] ,
size [ 4 ] ;
size [ 4 ] ;
_menu menu [ ] = {
/* _menu menu[] = {
{ 1 , " Random Map: " } ,
{ 1 , " Random Map: " } ,
{ 1 , " Selected Map: " } ,
{ 1 , " Selected Map: " } ,
{ 2 , " Size X: " } ,
{ 2 , " Size X: " } ,
@ -35,9 +36,9 @@ mapmenu ()
{ 15 , " Return To Previous Menu " } ,
{ 15 , " Return To Previous Menu " } ,
{ - 1 , " " }
{ - 1 , " " }
} ;
} ;
*/
while ( menuselect ! = - 1 ) {
while ( menuselect ! = - 1 ) {
/*
switch ( map . map_selection ) {
switch ( map . map_selection ) {
case ( MAPS_select ) : // Selected Map
case ( MAPS_select ) : // Selected Map
if ( map . map [ 0 ] = = 0 )
if ( map . map [ 0 ] = = 0 )
@ -112,8 +113,8 @@ mapmenu ()
sprintf ( menu [ 16 ] . text , " Maptype: RANDOM " ) ;
sprintf ( menu [ 16 ] . text , " Maptype: RANDOM " ) ;
break ;
break ;
}
}
*/
menuselect = menu_loop ( " Map Options " , menu , menuselect ) ;
menuselect = menu_loop ( ) ;
switch ( menuselect ) {
switch ( menuselect ) {
case ( 0 ) : // Random Map
case ( 0 ) : // Random Map
@ -122,7 +123,7 @@ mapmenu ()
case ( 1 ) : // Selected Map
case ( 1 ) : // Selected 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 ) {
map . map [ 0 ] = 0 ;
map . map [ 0 ] = 0 ;
map . map_selection = 2 ;
map . map_selection = 2 ;
@ -139,7 +140,7 @@ mapmenu ()
case ( 2 ) : // Size X
case ( 2 ) : // Size X
sprintf ( text , " Field Size X (%d - %d) " , MIN_FIELDSIZE_X , MAX_FIELDSIZE_X ) ;
sprintf ( text , " Field Size X (%d - %d) " , MIN_FIELDSIZE_X , MAX_FIELDSIZE_X ) ;
sprintf ( size , " %d " , map . size . x ) ;
sprintf ( size , " %d " , map . size . x ) ;
menu_get_text ( text , size , 3 ) ;
// menu_get_text (text, size, 3);
map . size . x = atoi ( size ) | 1 ;
map . size . x = atoi ( size ) | 1 ;
if ( map . size . x < MIN_FIELDSIZE_X )
if ( map . size . x < MIN_FIELDSIZE_X )
map . size . x = MIN_FIELDSIZE_X ;
map . size . x = MIN_FIELDSIZE_X ;
@ -150,7 +151,7 @@ mapmenu ()
case ( 3 ) : // Size Y
case ( 3 ) : // Size Y
sprintf ( text , " Field Size Y (%d - %d) " , MIN_FIELDSIZE_Y , MAX_FIELDSIZE_Y ) ;
sprintf ( text , " Field Size Y (%d - %d) " , MIN_FIELDSIZE_Y , MAX_FIELDSIZE_Y ) ;
sprintf ( size , " %d " , map . size . y ) ;
sprintf ( size , " %d " , map . size . y ) ;
menu_get_text ( text , size , 3 ) ;
// menu_get_text (text, size, 3);
map . size . y = atoi ( size ) | 1 ;
map . size . y = atoi ( size ) | 1 ;
if ( map . size . y < MIN_FIELDSIZE_Y )
if ( map . size . y < MIN_FIELDSIZE_Y )
map . size . y = MIN_FIELDSIZE_Y ;
map . size . y = MIN_FIELDSIZE_Y ;
@ -167,7 +168,7 @@ mapmenu ()
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);
if ( mapname = = NULL ) {
if ( mapname = = NULL ) {
map . tileset [ 0 ] = 0 ;
map . tileset [ 0 ] = 0 ;
map . random_tileset = 1 ;
map . random_tileset = 1 ;
@ -177,7 +178,7 @@ mapmenu ()
break ;
break ;
case ( 6 ) :
case ( 6 ) :
sprintf ( text , " %d " , bman . maxplayer ) ;
sprintf ( text , " %d " , bman . maxplayer ) ;
menu_get_text ( " Max Players " , text , 2 ) ;
// menu_get_text ("Max Players", text, 2);
bman . maxplayer = atoi ( text ) ;
bman . maxplayer = atoi ( text ) ;
if ( bman . maxplayer > MAX_PLAYERS )
if ( bman . maxplayer > MAX_PLAYERS )
bman . maxplayer = MAX_PLAYERS ;
bman . maxplayer = MAX_PLAYERS ;
@ -186,47 +187,47 @@ mapmenu ()
break ;
break ;
case ( 7 ) :
case ( 7 ) :
sprintf ( text , " %d " , map . bombs ) ;
sprintf ( text , " %d " , map . bombs ) ;
menu_get_text ( " Bomb Powerups " , text , 2 ) ;
// menu_get_text ("Bomb Powerups", text, 2);
map . bombs = atoi ( text ) ;
map . bombs = atoi ( text ) ;
break ;
break ;
case ( 8 ) :
case ( 8 ) :
sprintf ( text , " %d " , map . fire ) ;
sprintf ( text , " %d " , map . fire ) ;
menu_get_text ( " Fire/Range Powerup " , text , 2 ) ;
// menu_get_text ("Fire/Range Powerup", text, 2);
map . fire = atoi ( text ) ;
map . fire = atoi ( text ) ;
break ;
break ;
case ( 9 ) :
case ( 9 ) :
sprintf ( text , " %d " , map . shoes ) ;
sprintf ( text , " %d " , map . shoes ) ;
menu_get_text ( " Shoes Powerup " , text , 2 ) ;
// menu_get_text ("Shoes Powerup", text, 2);
map . shoes = atoi ( text ) ;
map . shoes = atoi ( text ) ;
break ;
break ;
case ( 10 ) :
case ( 10 ) :
sprintf ( text , " %d " , map . mixed ) ;
sprintf ( text , " %d " , map . mixed ) ;
menu_get_text ( " Mixed Powerup " , text , 2 ) ;
// menu_get_text ("Mixed Powerup", text, 2);
map . mixed = atoi ( text ) ;
map . mixed = atoi ( text ) ;
break ;
break ;
case ( 11 ) :
case ( 11 ) :
sprintf ( text , " %d " , map . death ) ;
sprintf ( text , " %d " , map . death ) ;
menu_get_text ( " Death Powerup " , text , 2 ) ;
// menu_get_text ("Death Powerup", text, 2);
map . death = atoi ( text ) ;
map . death = atoi ( text ) ;
break ;
break ;
case ( 12 ) :
case ( 12 ) :
sprintf ( text , " %d " , map . sp_trigger ) ;
sprintf ( text , " %d " , map . sp_trigger ) ;
menu_get_text ( " Trigger Specials " , text , 2 ) ;
// menu_get_text ("Trigger Specials", text, 2);
map . sp_trigger = atoi ( text ) ;
map . sp_trigger = atoi ( text ) ;
break ;
break ;
case ( 13 ) :
case ( 13 ) :
sprintf ( text , " %d " , map . sp_push ) ;
sprintf ( text , " %d " , map . sp_push ) ;
menu_get_text ( " Push Specials " , text , 2 ) ;
// menu_get_text ("Push Specials", text, 2);
map . sp_push = atoi ( text ) ;
map . sp_push = atoi ( text ) ;
break ;
break ;
case ( 14 ) :
case ( 14 ) :
sprintf ( text , " %d " , map . sp_row ) ;
sprintf ( text , " %d " , map . sp_row ) ;
menu_get_text ( " Row Specials " , text , 2 ) ;
// menu_get_text ("Row Specials", text, 2);
map . sp_row = atoi ( text ) ;
map . sp_row = atoi ( text ) ;
break ;
break ;
case ( 15 ) :
case ( 15 ) :
sprintf ( text , " %d " , bman . init_timeout ) ;
sprintf ( text , " %d " , bman . init_timeout ) ;
menu_get_text ( " Game Timeout " , text , 7 ) ;
// menu_get_text ("Game Timeout", text, 7);
bman . init_timeout = atoi ( text ) ;
bman . init_timeout = atoi ( text ) ;
break ;
break ;
case ( 16 ) :
case ( 16 ) :
@ -255,24 +256,24 @@ mapinfo ()
int x , y , eventstate , done = 0 ;
int x , y , eventstate , done = 0 ;
char text [ 255 ] ;
char text [ 255 ] ;
draw_menubox ( WIN_X , WIN_Y ) ;
// draw_menubox (WIN_X, WIN_Y);
x = gfx . res . x / 2 ;
x = gfx . res . x / 2 ;
y = gfx . res . y / 2 - WIN_Y / 2 ;
y = gfx . res . y / 2 - WIN_Y / 2 ;
sprintf ( text , " Map Settings " ) ;
sprintf ( text , " Map Settings " ) ;
font_setcolor ( 128 , 128 , 0 , 1 ) ;
// font_setcolor (128,128,0,1);
font_draw ( x - ( font [ 1 ] . size . x * strlen ( text ) / 2 ) , y , text , 1 ) ;
// font_draw (x - (font[1].size.x * strlen (text) / 2), y, text, 1);
font_setcolor ( 255 , 255 , 0 , 1 ) ;
// font_setcolor (255,255,0,1);
font_draw ( 1 + x - ( font [ 1 ] . size . x * strlen ( text ) / 2 ) , 1 + y , text , 1 ) ;
// font_draw (1 + x - (font[1].size.x * strlen (text) / 2),1 + y, text, 1);
y = y + 2 + ( font [ 1 ] . size . y < < 1 ) ;
y = y + 2 + ( font [ 1 ] . size . y < < 1 ) ;
/* MapSize */
/* MapSize */
sprintf ( text , " Fieldsize: %d,%d " , map . size . x , map . size . y ) ;
sprintf ( text , " Fieldsize: %d,%d " , map . size . x , map . size . y ) ;
font_setcolor ( 128 , 128 , 128 , 0 ) ;
// font_setcolor (128,128,128,0);
font_draw ( x - ( font [ 0 ] . size . x * strlen ( text ) / 2 ) , y , text , 0 ) ;
// font_draw (x - (font[0].size.x * strlen (text) / 2), y, text, 0);
font_setcolor ( 255 , 255 , 255 , 0 ) ;
// font_setcolor (255,255,255,0);
font_draw ( 1 + x - ( font [ 0 ] . size . x * strlen ( text ) / 2 ) , 1 + y , text , 0 ) ;
// font_draw (1 + x - (font[0].size.x * strlen (text) / 2),1 + y, text, 0);
y = y + 2 + font [ 0 ] . size . y ;
y = y + 2 + font [ 0 ] . size . y ;
/* Tileset */
/* Tileset */
@ -280,10 +281,10 @@ mapinfo ()
sprintf ( text , " Random Tileset " ) ;
sprintf ( text , " Random Tileset " ) ;
else
else
sprintf ( text , " Tileset: %s " , map . tileset ) ;
sprintf ( text , " Tileset: %s " , map . tileset ) ;
font_setcolor ( 128 , 128 , 128 , 0 ) ;
// font_setcolor (128,128,128,0);
font_draw ( 2 + x - ( WIN_X / 2 ) , y , text , 0 ) ;
// font_draw (2 + x - (WIN_X / 2), y, text, 0);
font_setcolor ( 255 , 255 , 255 , 0 ) ;
// font_setcolor (255,255,255,0);
font_draw ( 3 + x - ( WIN_X / 2 ) , 1 + y , text , 0 ) ;
// font_draw (3 + x - (WIN_X / 2) ,1 + y, text, 0);
/* Mapselection */
/* Mapselection */
if ( map . map_selection = = 0 )
if ( map . map_selection = = 0 )
@ -292,64 +293,64 @@ mapinfo ()
sprintf ( text , " Random Map " ) ;
sprintf ( text , " Random Map " ) ;
else
else
sprintf ( text , " Random Generated Map " ) ;
sprintf ( text , " Random Generated Map " ) ;
font_setcolor ( 128 , 128 , 128 , 0 ) ;
// font_setcolor (128,128,128,0);
font_draw ( x , y , text , 0 ) ;
// font_draw (x , y, text, 0);
font_setcolor ( 255 , 255 , 255 , 0 ) ;
// font_setcolor (255,255,255,0);
font_draw ( 1 + x , 1 + y , text , 0 ) ;
// font_draw (1 + x, 1 + y, text, 0);
y = y + 2 + ( font [ 0 ] . size . y < < 1 ) ;
y = y + 2 + ( font [ 0 ] . size . y < < 1 ) ;
/* Bomb Powerups */
/* Bomb Powerups */
sprintf ( text , " Bomb Powerup: %d " , map . bombs ) ;
sprintf ( text , " Bomb Powerup: %d " , map . bombs ) ;
font_setcolor ( 128 , 128 , 128 , 0 ) ;
// font_setcolor (128,128,128,0);
font_draw ( 2 + x - ( WIN_X / 2 ) , y , text , 0 ) ;
// font_draw (2 + x - (WIN_X / 2), y, text, 0);
font_setcolor ( 255 , 255 , 255 , 0 ) ;
// font_setcolor (255,255,255,0);
font_draw ( 3 + x - ( WIN_X / 2 ) , 1 + y , text , 0 ) ;
// font_draw (3 + x - (WIN_X / 2) ,1 + y, text, 0);
/* Trigger */
/* Trigger */
sprintf ( text , " Trigger Specials: %d " , map . sp_trigger ) ;
sprintf ( text , " Trigger Specials: %d " , map . sp_trigger ) ;
font_setcolor ( 128 , 128 , 128 , 0 ) ;
// font_setcolor (128,128,128,0);
font_draw ( x , y , text , 0 ) ;
// font_draw (x , y, text, 0);
font_setcolor ( 255 , 255 , 255 , 0 ) ;
// font_setcolor (255,255,255,0);
font_draw ( 1 + x , 1 + y , text , 0 ) ;
// font_draw (1 + x, 1 + y, text, 0);
y = y + 2 + font [ 0 ] . size . y ;
y = y + 2 + font [ 0 ] . size . y ;
/* Fire Powerups */
/* Fire Powerups */
sprintf ( text , " Fire Powerup: %d " , map . fire ) ;
sprintf ( text , " Fire Powerup: %d " , map . fire ) ;
font_setcolor ( 128 , 128 , 128 , 0 ) ;
// font_setcolor (128,128,128,0);
font_draw ( 2 + x - ( WIN_X / 2 ) , y , text , 0 ) ;
// font_draw (2 + x - (WIN_X / 2), y, text, 0);
font_setcolor ( 255 , 255 , 255 , 0 ) ;
// font_setcolor (255,255,255,0);
font_draw ( 3 + x - ( WIN_X / 2 ) , 1 + y , text , 0 ) ;
// font_draw (3 + x - (WIN_X / 2) ,1 + y, text, 0);
/* Push */
/* Push */
sprintf ( text , " Push Specials: %d " , map . sp_push ) ;
sprintf ( text , " Push Specials: %d " , map . sp_push ) ;
font_setcolor ( 128 , 128 , 128 , 0 ) ;
// font_setcolor (128,128,128,0);
font_draw ( x , y , text , 0 ) ;
// font_draw (x , y, text, 0);
font_setcolor ( 255 , 255 , 255 , 0 ) ;
// font_setcolor (255,255,255,0);
font_draw ( 1 + x , 1 + y , text , 0 ) ;
// font_draw (1 + x, 1 + y, text, 0);
y = y + 2 + font [ 0 ] . size . y ;
y = y + 2 + font [ 0 ] . size . y ;
/* Shoe Powerups */
/* Shoe Powerups */
sprintf ( text , " Shoe Powerup: %d " , map . shoes ) ;
sprintf ( text , " Shoe Powerup: %d " , map . shoes ) ;
font_setcolor ( 128 , 128 , 128 , 0 ) ;
// font_setcolor (128,128,128,0);
font_draw ( 2 + x - ( WIN_X / 2 ) , y , text , 0 ) ;
// font_draw (2 + x - (WIN_X / 2), y, text, 0);
font_setcolor ( 255 , 255 , 255 , 0 ) ;
// font_setcolor (255,255,255,0);
font_draw ( 3 + x - ( WIN_X / 2 ) , 1 + y , text , 0 ) ;
// font_draw (3 + x - (WIN_X / 2) ,1 + y, text, 0);
/* Row */
/* Row */
sprintf ( text , " Row Specials: %d " , map . sp_row ) ;
sprintf ( text , " Row Specials: %d " , map . sp_row ) ;
font_setcolor ( 128 , 128 , 128 , 0 ) ;
// font_setcolor (128,128,128,0);
font_draw ( x , y , text , 0 ) ;
// font_draw (x , y, text, 0);
font_setcolor ( 255 , 255 , 255 , 0 ) ;
// font_setcolor (255,255,255,0);
font_draw ( 1 + x , 1 + y , text , 0 ) ;
// font_draw (1 + x, 1 + y, text, 0);
y = y + 2 + font [ 0 ] . size . y ;
y = y + 2 + font [ 0 ] . size . y ;
/* Mixed Powerups */
/* Mixed Powerups */
sprintf ( text , " Mixed Powerup: %d " , map . mixed ) ;
sprintf ( text , " Mixed Powerup: %d " , map . mixed ) ;
font_setcolor ( 128 , 128 , 128 , 0 ) ;
// font_setcolor (128,128,128,0);
font_draw ( 2 + x - ( WIN_X / 2 ) , y , text , 0 ) ;
// font_draw (2 + x - (WIN_X / 2), y, text, 0);
font_setcolor ( 255 , 255 , 255 , 0 ) ;
// font_setcolor (255,255,255,0);
font_draw ( 3 + x - ( WIN_X / 2 ) , 1 + y , text , 0 ) ;
// font_draw (3 + x - (WIN_X / 2) ,1 + y, text, 0);
/* Special FREE
/* Special FREE
sprintf ( text , " Push Specials: %d " , map . sp_push ) ;
sprintf ( text , " Push Specials: %d " , map . sp_push ) ;
@ -361,10 +362,10 @@ mapinfo ()
/* Death Powerups */
/* Death Powerups */
sprintf ( text , " Death Powerup: %d " , map . death ) ;
sprintf ( text , " Death Powerup: %d " , map . death ) ;
font_setcolor ( 128 , 128 , 128 , 0 ) ;
// font_setcolor (128,128,128,0);
font_draw ( 2 + x - ( WIN_X / 2 ) , y , text , 0 ) ;
// font_draw (2 + x - (WIN_X / 2), y, text, 0);
font_setcolor ( 255 , 255 , 255 , 0 ) ;
// font_setcolor (255,255,255,0);
font_draw ( 3 + x - ( WIN_X / 2 ) , 1 + y , text , 0 ) ;
// font_draw (3 + x - (WIN_X / 2) ,1 + y, text, 0);
/* Special FREE
/* Special FREE
sprintf ( text , " Row Specials: %d " , map . sp_row ) ;
sprintf ( text , " Row Specials: %d " , map . sp_row ) ;
@ -375,7 +376,7 @@ mapinfo ()
y = y + 2 + font [ 0 ] . size . y ;
y = y + 2 + font [ 0 ] . size . y ;
SDL_Flip ( gfx . screen ) ;
SDL_Flip ( gfx . screen ) ;
keybinput_new ( & ki );
keybinput_new ( & ki , KEYBI_text , 10 );
while ( ! done & & bman . state = = GS_wait ) {
while ( ! done & & bman . state = = GS_wait ) {
if ( GT_MP & & bman . sock ! = - 1 ) {
if ( GT_MP & & bman . sock ! = - 1 ) {