void le_showhelp();
void le_set_defaults(void);
void le_activate_bad_guys(void);
-void le_new_subset(char *subset_name);
void le_highlight_selection();
void apply_level_settings_menu();
void update_subset_settings_menu();
void save_subset_settings_menu();
-void le_update_buttons(char*);
+void le_update_buttons(const char*);
/* leveleditor internals */
static string_list_type level_subsets;
static int le_level_changed; /* if changes, ask for saving, when quiting*/
-static int pos_x, cursor_x, cursor_y, cursor_tile, fire;
+static int pos_x, cursor_x, cursor_y, fire;
static int le_level;
static st_level* le_current_level;
static st_subset le_level_subset;
default:
if(i != -1)
{
- subset_load(&le_level_subset,level_subsets.item[i-2]);
+ le_level_subset.load(level_subsets.item[i-2]);
leveleditor_menu.item[3].kind = MN_GOTO;
le_level = 1;
arrays_init();
loadshared();
- le_current_level = (st_level*) malloc(sizeof(st_level));
- if(level_load(le_current_level, le_level_subset.name, le_level) != 0)
+ le_current_level = new st_level;
+ if(level_load(le_current_level, le_level_subset.name.c_str(), le_level) != 0)
{
le_quit();
return 1;
}
- le_update_buttons(le_current_level->theme);
+ le_update_buttons(le_current_level->theme.c_str());
le_set_defaults();
level_load_gfx(le_current_level);
le_activate_bad_guys();
switch (i = menu_check(&subset_new_menu))
{
case 3:
- le_new_subset(subset_new_menu.item[2].input);
- subset_load(&le_level_subset,subset_new_menu.item[2].input);
+ st_subset::create(subset_new_menu.item[2].input);
+ le_level_subset.load(subset_new_menu.item[2].input);
leveleditor_menu.item[3].kind = MN_GOTO;
le_level = 1;
arrays_init();
loadshared();
- le_current_level = (st_level*) malloc(sizeof(st_level));
- if(level_load(le_current_level, le_level_subset.name, le_level) != 0)
+ le_current_level = new st_level;
+ if(level_load(le_current_level, le_level_subset.name.c_str(), le_level) != 0)
{
le_quit();
return 1;
}
- le_update_buttons(le_current_level->theme);
+ le_update_buttons(le_current_level->theme.c_str());
le_set_defaults();
level_load_gfx(le_current_level);
le_activate_bad_guys();
}
else if(current_menu == &subset_settings_menu)
{
- if(strcmp(le_level_subset.title,subset_settings_menu.item[2].input) == 0 && strcmp(le_level_subset.description,subset_settings_menu.item[3].input) == 0 )
+ if(le_level_subset.title.compare(subset_settings_menu.item[2].input) == 0 && le_level_subset.description.compare(subset_settings_menu.item[3].input) == 0 )
subset_settings_menu.item[5].kind = MN_DEACTIVE;
else
subset_settings_menu.item[5].kind = MN_ACTION;
return done;
}
-void le_default_level(st_level* plevel)
-{
- int i,y;
- strcpy(plevel->name,"UnNamed");
- strcpy(plevel->theme,"antarctica");
- strcpy(plevel->song_title,"Mortimers_chipdisko.mod");
- strcpy(plevel->bkgd_image,"arctis.png");
- plevel->width = 21;
- plevel->time_left = 100;
- plevel->gravity = 10.;
- plevel->bkgd_red = 0;
- plevel->bkgd_green = 0;
- plevel->bkgd_blue = 0;
-
- for(i = 0; i < 15; ++i)
- {
- plevel->tiles[i] = (unsigned char*) malloc((plevel->width+1)*sizeof(unsigned char));
- plevel->tiles[i][plevel->width] = (unsigned char) '\0';
- for(y = 0; y < plevel->width; ++y)
- plevel->tiles[i][y] = (unsigned char) '.';
- plevel->tiles[i][plevel->width] = (unsigned char) '\0';
- }
-}
-void le_new_subset(char *subset_name)
-{
- st_level new_lev;
- st_subset new_subset;
- new_subset.name = (char*) malloc((strlen(subset_name)+1)*sizeof(char));
- strcpy(new_subset.name,subset_name);
- new_subset.title = (char*) malloc((strlen("Unknown Title")+1)*sizeof(char));
- strcpy(new_subset.title,"Unknown Title");
- new_subset.description = (char*) malloc((strlen("No description so far.")+1)*sizeof(char));
- strcpy(new_subset.description,"No description so far.");
- subset_save(&new_subset);
- le_default_level(&new_lev);
- level_save(&new_lev,subset_name,1);
-}
-
-void le_update_buttons(char *theme)
+void le_update_buttons(const char *theme)
{
int i;
char filename[1024];
int le_init()
{
- int i,j;
- char str[80];
+ int i;
char filename[1024];
SDLKey key;
string_list_type fgd_files;
done = 0;
le_frame = 0; /* support for frames in some tiles, like waves and bad guys */
le_level_changed = NO;
-
- subset_init(&le_level_subset);
-
le_current_level = NULL;
le_current_tile = '.';
le_mouse_pressed[LEFT] = NO;
le_mouse_pressed[RIGHT] = NO;
- texture_load(&le_selection,DATA_PREFIX "/images/leveleditor/select.png", USE_ALPHA);
+ texture_load(&le_selection, datadir + "/images/leveleditor/select.png", USE_ALPHA);
/* Load buttons */
button_load(&le_save_level_bt,"/images/icons/save.png","Save level", SDLK_F6,screen->w-64,32);
le_fgd_panel.item[16].bkgd = &le_fgd_panel.item[14].icon;
le_fgd_panel.item[17].bkgd = &le_fgd_panel.item[15].icon;
- bad_files;
string_list_init(&bad_files);
string_list_add_item(&bad_files,"bsod-left-0.png");
string_list_add_item(&bad_files,"laptop-left-0.png");
}
menu_init(&leveleditor_menu);
- menu_additem(&leveleditor_menu,menu_item_create(MN_LABEL,"Level Editor Menu",0,0));
- menu_additem(&leveleditor_menu,menu_item_create(MN_HL,"",0,0));
- menu_additem(&leveleditor_menu,menu_item_create(MN_ACTION,"Return To Level Editor",0,0));
- menu_additem(&leveleditor_menu,menu_item_create(MN_DEACTIVE,"Level Subset Settings",0,&subset_settings_menu));
- menu_additem(&leveleditor_menu,menu_item_create(MN_GOTO,"Load Level Subset",0,&subset_load_menu));
- menu_additem(&leveleditor_menu,menu_item_create(MN_GOTO,"New Level Subset",0,&subset_new_menu));
- menu_additem(&leveleditor_menu,menu_item_create(MN_HL,"",0,0));
- menu_additem(&leveleditor_menu,menu_item_create(MN_ACTION,"Quit Level Editor",0,0));
+ menu_additem(&leveleditor_menu, MN_LABEL,"Level Editor Menu",0,0);
+ menu_additem(&leveleditor_menu, MN_HL,"",0,0);
+ menu_additem(&leveleditor_menu, MN_ACTION,"Return To Level Editor",0,0);
+ menu_additem(&leveleditor_menu, MN_DEACTIVE,"Level Subset Settings",0,&subset_settings_menu);
+ menu_additem(&leveleditor_menu, MN_GOTO,"Load Level Subset",0,&subset_load_menu);
+ menu_additem(&leveleditor_menu, MN_GOTO,"New Level Subset",0,&subset_new_menu);
+ menu_additem(&leveleditor_menu, MN_HL,"",0,0);
+ menu_additem(&leveleditor_menu, MN_ACTION,"Quit Level Editor",0,0);
menu_reset();
menu_set_current(&leveleditor_menu);
show_menu = YES;
menu_init(&subset_load_menu);
- menu_additem(&subset_load_menu,menu_item_create(MN_LABEL,"Load Level Subset",0,0));
- menu_additem(&subset_load_menu,menu_item_create(MN_HL,"",0,0));
+ menu_additem(&subset_load_menu,MN_LABEL,"Load Level Subset",0,0);
+ menu_additem(&subset_load_menu,MN_HL,"",0,0);
for(i = 0; i < level_subsets.num_items; ++i)
{
- menu_additem(&subset_load_menu,menu_item_create(MN_ACTION,level_subsets.item[i],0,0));
+ menu_additem(&subset_load_menu,MN_ACTION,level_subsets.item[i],0,0);
}
- menu_additem(&subset_load_menu,menu_item_create(MN_HL,"",0,0));
- menu_additem(&subset_load_menu,menu_item_create(MN_BACK,"Back",0,0));
+ menu_additem(&subset_load_menu,MN_HL,"",0,0);
+ menu_additem(&subset_load_menu,MN_BACK,"Back",0,0);
menu_init(&subset_new_menu);
- menu_additem(&subset_new_menu,menu_item_create(MN_LABEL,"New Level Subset",0,0));
- menu_additem(&subset_new_menu,menu_item_create(MN_HL,"",0,0));
- menu_additem(&subset_new_menu,menu_item_create(MN_TEXTFIELD,"Enter Name",0,0));
- menu_additem(&subset_new_menu,menu_item_create(MN_ACTION,"Create",0,0));
- menu_additem(&subset_new_menu,menu_item_create(MN_HL,"",0,0));
- menu_additem(&subset_new_menu,menu_item_create(MN_BACK,"Back",0,0));
+ menu_additem(&subset_new_menu,MN_LABEL,"New Level Subset",0,0);
+ menu_additem(&subset_new_menu,MN_HL,"",0,0);
+ menu_additem(&subset_new_menu,MN_TEXTFIELD,"Enter Name",0,0);
+ menu_additem(&subset_new_menu,MN_ACTION,"Create",0,0);
+ menu_additem(&subset_new_menu,MN_HL,"",0,0);
+ menu_additem(&subset_new_menu,MN_BACK,"Back",0,0);
menu_init(&subset_settings_menu);
- menu_additem(&subset_settings_menu,menu_item_create(MN_LABEL,"Level Subset Settings",0,0));
- menu_additem(&subset_settings_menu,menu_item_create(MN_HL,"",0,0));
- menu_additem(&subset_settings_menu,menu_item_create(MN_TEXTFIELD,"Title",0,0));
- menu_additem(&subset_settings_menu,menu_item_create(MN_TEXTFIELD,"Description",0,0));
- menu_additem(&subset_settings_menu,menu_item_create(MN_HL,"",0,0));
- menu_additem(&subset_settings_menu,menu_item_create(MN_ACTION,"Save Changes",0,0));
- menu_additem(&subset_settings_menu,menu_item_create(MN_HL,"",0,0));
- menu_additem(&subset_settings_menu,menu_item_create(MN_BACK,"Back",0,0));
+ menu_additem(&subset_settings_menu,MN_LABEL,"Level Subset Settings",0,0);
+ menu_additem(&subset_settings_menu,MN_HL,"",0,0);
+ menu_additem(&subset_settings_menu,MN_TEXTFIELD,"Title",0,0);
+ menu_additem(&subset_settings_menu,MN_TEXTFIELD,"Description",0,0);
+ menu_additem(&subset_settings_menu,MN_HL,"",0,0);
+ menu_additem(&subset_settings_menu,MN_ACTION,"Save Changes",0,0);
+ menu_additem(&subset_settings_menu,MN_HL,"",0,0);
+ menu_additem(&subset_settings_menu,MN_BACK,"Back",0,0);
menu_init(&level_settings_menu);
level_settings_menu.arrange_left = YES;
- menu_additem(&level_settings_menu,menu_item_create(MN_LABEL,"Level Settings",0,0));
- menu_additem(&level_settings_menu,menu_item_create(MN_HL,"",0,0));
- menu_additem(&level_settings_menu,menu_item_create(MN_TEXTFIELD,"Name ",0,0));
- menu_additem(&level_settings_menu,menu_item_create(MN_STRINGSELECT,"Theme ",0,0));
- menu_additem(&level_settings_menu,menu_item_create(MN_STRINGSELECT,"Song ",0,0));
- menu_additem(&level_settings_menu,menu_item_create(MN_STRINGSELECT,"Bg-Image",0,0));
- menu_additem(&level_settings_menu,menu_item_create(MN_NUMFIELD,"Length ",0,0));
- menu_additem(&level_settings_menu,menu_item_create(MN_NUMFIELD,"Time ",0,0));
- menu_additem(&level_settings_menu,menu_item_create(MN_NUMFIELD,"Gravity",0,0));
- menu_additem(&level_settings_menu,menu_item_create(MN_NUMFIELD,"Red ",0,0));
- menu_additem(&level_settings_menu,menu_item_create(MN_NUMFIELD,"Green ",0,0));
- menu_additem(&level_settings_menu,menu_item_create(MN_NUMFIELD,"Blue ",0,0));
- menu_additem(&level_settings_menu,menu_item_create(MN_HL,"",0,0));
- menu_additem(&level_settings_menu,menu_item_create(MN_ACTION,"Apply Changes",0,0));
+ menu_additem(&level_settings_menu,MN_LABEL,"Level Settings",0,0);
+ menu_additem(&level_settings_menu,MN_HL,"",0,0);
+ menu_additem(&level_settings_menu,MN_TEXTFIELD,"Name ",0,0);
+ menu_additem(&level_settings_menu,MN_STRINGSELECT,"Theme ",0,0);
+ menu_additem(&level_settings_menu,MN_STRINGSELECT,"Song ",0,0);
+ menu_additem(&level_settings_menu,MN_STRINGSELECT,"Bg-Image",0,0);
+ menu_additem(&level_settings_menu,MN_NUMFIELD,"Length ",0,0);
+ menu_additem(&level_settings_menu,MN_NUMFIELD,"Time ",0,0);
+ menu_additem(&level_settings_menu,MN_NUMFIELD,"Gravity",0,0);
+ menu_additem(&level_settings_menu,MN_NUMFIELD,"Red ",0,0);
+ menu_additem(&level_settings_menu,MN_NUMFIELD,"Green ",0,0);
+ menu_additem(&level_settings_menu,MN_NUMFIELD,"Blue ",0,0);
+ menu_additem(&level_settings_menu,MN_HL,"",0,0);
+ menu_additem(&level_settings_menu,MN_ACTION,"Apply Changes",0,0);
SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);
char str[80];
int i;
- menu_item_change_input(&level_settings_menu.item[2], le_current_level->name);
+ menu_item_change_input(&level_settings_menu.item[2], le_current_level->name.c_str());
sprintf(str,"%d",le_current_level->width);
string_list_copy(level_settings_menu.item[3].list, dsubdirs("images/themes", "solid0.png"));
string_list_copy(level_settings_menu.item[4].list, dfiles("music/",NULL, "-fast"));
string_list_copy(level_settings_menu.item[5].list, dfiles("images/background",NULL, NULL));
string_list_add_item(level_settings_menu.item[5].list,"");
- if((i = string_list_find(level_settings_menu.item[3].list,le_current_level->theme)) != -1)
+ if((i = string_list_find(level_settings_menu.item[3].list,le_current_level->theme.c_str())) != -1)
level_settings_menu.item[3].list->active_item = i;
- if((i = string_list_find(level_settings_menu.item[4].list,le_current_level->song_title)) != -1)
+ if((i = string_list_find(level_settings_menu.item[4].list,le_current_level->song_title.c_str())) != -1)
level_settings_menu.item[4].list->active_item = i;
- if((i = string_list_find(level_settings_menu.item[5].list,le_current_level->bkgd_image)) != -1)
+ if((i = string_list_find(level_settings_menu.item[5].list,le_current_level->bkgd_image.c_str())) != -1)
level_settings_menu.item[5].list->active_item = i;
menu_item_change_input(&level_settings_menu.item[6], str);
void update_subset_settings_menu()
{
- menu_item_change_input(&subset_settings_menu.item[2], le_level_subset.title);
- menu_item_change_input(&subset_settings_menu.item[3], le_level_subset.description);
+ menu_item_change_input(&subset_settings_menu.item[2], le_level_subset.title.c_str());
+ menu_item_change_input(&subset_settings_menu.item[3], le_level_subset.description.c_str());
}
void apply_level_settings_menu()
int i,y,j;
i = NO;
- strcpy(le_current_level->name,level_settings_menu.item[2].input);
+ le_current_level->name = level_settings_menu.item[2].input;
- if(strcmp(le_current_level->bkgd_image,string_list_active(level_settings_menu.item[5].list)) != 0)
+ if(le_current_level->bkgd_image.compare(string_list_active(level_settings_menu.item[5].list)) != 0)
{
- strcpy(le_current_level->bkgd_image,string_list_active(level_settings_menu.item[5].list));
+ le_current_level->bkgd_image = string_list_active(level_settings_menu.item[5].list);
i = YES;
}
- if(strcmp(le_current_level->theme,string_list_active(level_settings_menu.item[3].list)) != 0)
+ if(le_current_level->theme.compare(string_list_active(level_settings_menu.item[3].list)) != 0)
{
- strcpy(le_current_level->theme,string_list_active(level_settings_menu.item[3].list));
- le_update_buttons(le_current_level->theme);
+ le_current_level->theme = string_list_active(level_settings_menu.item[3].list);
+ le_update_buttons(le_current_level->theme.c_str());
i = YES;
}
level_load_gfx(le_current_level);
}
- strcpy(le_current_level->song_title,string_list_active(level_settings_menu.item[4].list));
+ le_current_level->song_title = string_list_active(level_settings_menu.item[4].list);
i = le_current_level->width;
le_current_level->width = atoi(level_settings_menu.item[6].input);
le_current_level->width = 21;
for(y = 0; y < 15; ++y)
{
- le_current_level->tiles[y] = (unsigned char*) realloc(le_current_level->tiles[y],(le_current_level->width+1)*sizeof(unsigned char));
- le_current_level->tiles[y][le_current_level->width] = (unsigned char) '\0';
+ le_current_level->tiles[y] = (unsigned int*) realloc(le_current_level->tiles[y],(le_current_level->width+1)*sizeof(unsigned int));
+ le_current_level->tiles[y][le_current_level->width] = (unsigned int) '\0';
}
}
else if(le_current_level->width > i)
{
for(y = 0; y < 15; ++y)
{
- le_current_level->tiles[y] = (unsigned char*) realloc(le_current_level->tiles[y],(le_current_level->width+1)*sizeof(unsigned char));
+ le_current_level->tiles[y] = (unsigned int*) realloc(le_current_level->tiles[y],(le_current_level->width+1)*sizeof(unsigned int));
for(j = 0; j < le_current_level->width - i; ++j)
- le_current_level->tiles[y][i+j] = (unsigned char) '.';
- le_current_level->tiles[y][le_current_level->width] = (unsigned char) '\0';
+ le_current_level->tiles[y][i+j] = (unsigned int) '.';
+ le_current_level->tiles[y][le_current_level->width] = (unsigned int) '\0';
}
}
le_current_level->time_left = atoi(level_settings_menu.item[7].input);
void save_subset_settings_menu()
{
- free(le_level_subset.title);
- le_level_subset.title = (char*) malloc(sizeof(char)*(strlen(subset_settings_menu.item[2].input)+1));
- strcpy(le_level_subset.title,subset_settings_menu.item[2].input);
- free(le_level_subset.description);
- le_level_subset.description = (char*) malloc(sizeof(char)*(strlen(subset_settings_menu.item[3].input)+1));
- strcpy(le_level_subset.description,subset_settings_menu.item[3].input);
- subset_save(&le_level_subset);
+ le_level_subset.title = subset_settings_menu.item[2].input;
+ le_level_subset.description = subset_settings_menu.item[3].input;
+ le_level_subset.save();
}
void le_goto_level(int levelnb)
arrays_init();
level_free(le_current_level);
- if(level_load(le_current_level, le_level_subset.name, levelnb) != 0)
+ if(level_load(le_current_level, le_level_subset.name.c_str(), levelnb) != 0)
{
- level_load(le_current_level, le_level_subset.name, le_level);
+ level_load(le_current_level, le_level_subset.name.c_str(), le_level);
}
else
{
le_set_defaults();
- le_update_buttons(le_current_level->theme);
+ le_update_buttons(le_current_level->theme.c_str());
level_free_gfx();
level_load_gfx(le_current_level);
button_panel_draw(&le_bad_panel);
sprintf(str, "%d/%d", le_level,le_level_subset.levels);
- text_drawf(&white_text, str, -8, 16, A_RIGHT, A_NONE, 1, NO_UPDATE);
+ text_drawf(&white_text, str, -8, 16, A_RIGHT, A_TOP, 1, NO_UPDATE);
text_draw(&white_small_text, "F1 for Help", 10, 430, 1, NO_UPDATE);
}
void le_drawlevel()
{
- int y,x,i,s;
- static char str[LEVEL_NAME_MAX];
+ unsigned int y,x,i,s;
/* Draw the real background */
if(le_current_level->bkgd_image[0] != '\0')
}
/* Draw the Bad guys: */
- for (i = 0; i < num_bad_guys; ++i)
+ for (i = 0; i < bad_guys.size(); ++i)
{
- if(bad_guys[i].base.alive == NO)
- continue;
/* to support frames: img_bsod_left[(frame / 5) % 4] */
if(bad_guys[i].kind == BAD_BSOD)
texture_draw(&img_bsod_left[(le_frame / 5) % 4], bad_guys[i].base.x - pos_x, bad_guys[i].base.y, NO_UPDATE);
{
/* Check for button events */
button_event(&le_test_level_bt,&event);
- if(button_get_state(&le_test_level_bt) == BN_CLICKED)
+ if(button_get_state(&le_test_level_bt) == BUTTON_CLICKED)
le_testlevel();
button_event(&le_save_level_bt,&event);
- if(button_get_state(&le_save_level_bt) == BN_CLICKED)
- level_save(le_current_level,le_level_subset.name,le_level);
+ if(button_get_state(&le_save_level_bt) == BUTTON_CLICKED)
+ level_save(le_current_level,le_level_subset.name.c_str(),le_level);
button_event(&le_next_level_bt,&event);
- if(button_get_state(&le_next_level_bt) == BN_CLICKED)
+ if(button_get_state(&le_next_level_bt) == BUTTON_CLICKED)
{
if(le_level < le_level_subset.levels)
{
switch(event.key.keysym.sym)
{
case SDLK_y:
- le_default_level(&new_lev);
- level_save(&new_lev,le_level_subset.name,++le_level);
+ level_default(&new_lev);
+ level_save(&new_lev,le_level_subset.name.c_str(),++le_level);
le_level_subset.levels = le_level;
le_goto_level(le_level);
d = 1;
break;
case SDLK_n:
d = 1;
+ break;
+ default:
break;
}
break;
}
}
button_event(&le_previous_level_bt,&event);
- if(button_get_state(&le_previous_level_bt) == BN_CLICKED)
+ if(button_get_state(&le_previous_level_bt) == BUTTON_CLICKED)
{
if(le_level > 1)
le_goto_level(--le_level);
}
button_event(&le_rubber_bt,&event);
- if(button_get_state(&le_rubber_bt) == BN_CLICKED)
+ if(button_get_state(&le_rubber_bt) == BUTTON_CLICKED)
le_current_tile = '.';
button_event(&le_select_mode_one_bt,&event);
- if(button_get_state(&le_select_mode_one_bt) == BN_CLICKED)
+ if(button_get_state(&le_select_mode_one_bt) == BUTTON_CLICKED)
le_selection_mode = CURSOR;
button_event(&le_select_mode_two_bt,&event);
- if(button_get_state(&le_select_mode_two_bt) == BN_CLICKED)
+ if(button_get_state(&le_select_mode_two_bt) == BUTTON_CLICKED)
le_selection_mode = SQUARE;
button_event(&le_bad_bt,&event);
- if(button_get_state(&le_bad_bt) == BN_CLICKED)
+ if(button_get_state(&le_bad_bt) == BUTTON_CLICKED)
{
le_bad_panel.hidden = NO;
le_fgd_panel.hidden = YES;
}
button_event(&le_fgd_bt,&event);
- if(button_get_state(&le_fgd_bt) == BN_CLICKED)
+ if(button_get_state(&le_fgd_bt) == BUTTON_CLICKED)
{
le_bad_panel.hidden = YES;
le_fgd_panel.hidden = NO;
le_bkgd_panel.hidden = YES;
}
button_event(&le_bkgd_bt,&event);
- if(button_get_state(&le_bkgd_bt) == BN_CLICKED)
+ if(button_get_state(&le_bkgd_bt) == BUTTON_CLICKED)
{
le_bad_panel.hidden = YES;
le_fgd_panel.hidden = YES;
le_bkgd_panel.hidden = NO;
}
button_event(&le_settings_bt,&event);
- if(button_get_state(&le_settings_bt) == BN_CLICKED)
+ if(button_get_state(&le_settings_bt) == BUTTON_CLICKED)
{
if(show_menu == NO)
{
}
if((pbutton = button_panel_event(&le_bkgd_panel,&event)) != NULL)
{
- if(button_get_state(pbutton) == BN_CLICKED)
+ if(button_get_state(pbutton) == BUTTON_CLICKED)
{
char c = '\0';
if(pbutton->tag >= 0 && pbutton->tag <= 3)
}
if((pbutton = button_panel_event(&le_fgd_panel,&event)) != NULL)
{
- if(button_get_state(pbutton) == BN_CLICKED)
+ if(button_get_state(pbutton) == BUTTON_CLICKED)
{
char c = '\0';
if(pbutton->tag == 0)
}
if((pbutton = button_panel_event(&le_bad_panel,&event)) != NULL)
{
- if(button_get_state(pbutton) == BN_CLICKED)
+ if(button_get_state(pbutton) == BUTTON_CLICKED)
{
char c = '\0';
if(pbutton->tag >= 0 && pbutton->tag <= 2)
else
{
button_event(&le_settings_bt,&event);
- if(button_get_state(&le_settings_bt) == BN_CLICKED)
+ if(button_get_state(&le_settings_bt) == BUTTON_CLICKED)
{
if(show_menu == NO)
{
}
if(show_menu == NO)
{
- if(button_get_state(&le_move_left_bt) == BN_PRESSED)
+ if(button_get_state(&le_move_left_bt) == BUTTON_PRESSED)
{
pos_x -= 192;
}
- else if(button_get_state(&le_move_left_bt) == BN_HOVER)
+ else if(button_get_state(&le_move_left_bt) == BUTTON_HOVER)
{
pos_x -= 96;
}
- if(button_get_state(&le_move_right_bt) == BN_PRESSED)
+ if(button_get_state(&le_move_right_bt) == BUTTON_PRESSED)
{
pos_x += 192;
}
- else if(button_get_state(&le_move_right_bt) == BN_HOVER)
+ else if(button_get_state(&le_move_right_bt) == BUTTON_HOVER)
{
pos_x += 96;
}
void le_highlight_selection()
{
- int x,y,i;
int x1, x2, y1, y2;
if(selection.x1 < selection.x2)
{
if(le_current_level != NULL)
{
- int xx,yy,i;
+ int xx,yy;
int x1, x2, y1, y2;
+ unsigned int i;
/* level_changed = YES; */
xx = ((int)x / 32);
/* if there is a bad guy over there, remove it */
- for(i = 0; i < num_bad_guys; ++i)
- if (bad_guys[i].base.alive)
+ for(i = 0; i < bad_guys.size(); ++i)
if(xx == bad_guys[i].base.x/32 && yy == bad_guys[i].base.y/32)
- bad_guys[i].base.alive = NO;
+ bad_guys.erase(static_cast<std::vector<bad_guy_type>::iterator>(&bad_guys[i]));
if(c == '0') /* if it's a bad guy */
add_bad_guy(xx*32, yy*32, BAD_BSOD);
y2 /= 32;
/* if there is a bad guy over there, remove it */
- for(i = 0; i < num_bad_guys; ++i)
- if(bad_guys[i].base.alive)
+ for(i = 0; i < bad_guys.size(); ++i)
if(bad_guys[i].base.x/32 >= x1 && bad_guys[i].base.x/32 <= x2
&& bad_guys[i].base.y/32 >= y1 && bad_guys[i].base.y/32 <= y2)
- bad_guys[i].base.alive = NO;
+ bad_guys.erase(static_cast<std::vector<bad_guy_type>::iterator>(&bad_guys[i]));
for(xx = x1; xx <= x2; xx++)
for(yy = y1; yy <= y2; yy++)
void le_showhelp()
{
SDL_Event event;
- int i, done;
+ unsigned int i, done;
char *text[] = {
" - This is SuperTux's built-in level editor -",
"It has been designed to be light and easy to use from the start.",