le_level = 1;
arrays_init();
loadshared();
- le_current_level = (st_level*) malloc(sizeof(st_level));
+ le_current_level = new st_level;
if(level_load(le_current_level, le_level_subset.name.c_str(), le_level) != 0)
{
le_quit();
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);
}
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);
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;
+ 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)
+ 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)
{
}
}
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;
}
{
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++)