-int le_init()
-{
- int i;
- char filename[1024];
- SDLKey key;
- string_list_type fgd_files;
- string_list_type bkgd_files;
- string_list_type bad_files;
- level_subsets = dsubdirs("/levels", "info");
-
- le_show_grid = true;
-
- /* level_changed = NO;*/
- fire = DOWN;
- done = 0;
- le_frame = 0; /* support for frames in some tiles, like waves and bad guys */
- le_level_changed = false;
- le_current_level = NULL;
-
- le_current_tile = '.';
- le_mouse_pressed[LEFT] = false;
- le_mouse_pressed[RIGHT] = false;
-
- 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);
- button_load(&le_next_level_bt,"/images/icons/up.png","Next level", SDLK_PAGEUP,screen->w-64,0);
- button_load(&le_previous_level_bt,"/images/icons/down.png","Previous level",SDLK_PAGEDOWN,screen->w-32,0);
- button_load(&le_rubber_bt,"/images/icons/rubber.png","Rubber",SDLK_DELETE,screen->w-32,48);
- button_load(&le_select_mode_one_bt,"/images/icons/select-mode1.png","Select single tile",SDLK_F3,screen->w-64,48);
- button_load(&le_select_mode_two_bt,"/images/icons/select-mode2.png","Select multiple tiles",SDLK_F3,screen->w-64,64);
- button_load(&le_test_level_bt,"/images/icons/test-level.png","Test level",SDLK_F4,screen->w-64,screen->h - 64);
- button_load(&le_settings_bt,"/images/icons/settings.png","Level settings",SDLK_F5,screen->w-32,screen->h - 64);
- button_load(&le_move_left_bt,"/images/icons/left.png","Move left",SDLK_LEFT,0,0);
- button_load(&le_move_right_bt,"/images/icons/right.png","Move right",SDLK_RIGHT,screen->w-80,0);
- button_load(&le_fgd_bt,"/images/icons/fgd.png","Foreground tiles", SDLK_F7,screen->w-64,82);
- button_load(&le_bkgd_bt,"/images/icons/bgd.png","Background tiles", SDLK_F8,screen->w-43,82);
- button_load(&le_bad_bt,"/images/icons/emy.png","Enemies", SDLK_F9,screen->w-22,82);
-
- bkgd_files = dfiles("images/themes/antarctica","bkgd-", NULL);
- string_list_sort(&bkgd_files);
-
- button_panel_init(&le_bkgd_panel, screen->w - 64,98, 64, 318);
- le_bkgd_panel.hidden = true;
- key = SDLK_a;
- for(i = 0; i < bkgd_files.num_items; ++i)
- {
- sprintf(filename,"images/themes/antarctica/%s",bkgd_files.item[i]);
- button_panel_additem(&le_bkgd_panel,button_create(filename, "Background Tile",(SDLKey)((int)key+i),0,0),i);
- }
-
- string_list_free(&bkgd_files);
- bkgd_files = dfiles("images/shared","cloud-", NULL);
- string_list_sort(&bkgd_files);
-
- for(i = 0; i < bkgd_files.num_items; ++i)
- {
- sprintf(filename,"images/shared/%s",bkgd_files.item[i]);
- button_panel_additem(&le_bkgd_panel,button_create(filename, "Background Tile",(SDLKey)((int)key+i+8),0,0),i+8);
- }
-
- fgd_files = dfiles("images/themes/antarctica","solid", NULL);
- string_list_sort(&fgd_files);
- key = SDLK_a;
- button_panel_init(&le_fgd_panel, screen->w - 64,98, 64, 318);
- for(i = 0; i < fgd_files.num_items; ++i)
- {
- sprintf(filename,"images/themes/antarctica/%s",fgd_files.item[i]);
- button_panel_additem(&le_fgd_panel,button_create(filename, "Foreground Tile",(SDLKey)((int)key+i),0,0),i);
- }
-
- string_list_free(&fgd_files);
- string_list_add_item(&fgd_files,"waves-0.png");
- string_list_add_item(&fgd_files,"water.png");
- string_list_add_item(&fgd_files,"pole.png");
- string_list_add_item(&fgd_files,"poletop.png");
- string_list_add_item(&fgd_files,"flag-0.png");
- string_list_add_item(&fgd_files,"box-empty.png");
- string_list_add_item(&fgd_files,"mints.png");
- string_list_add_item(&fgd_files,"distro-0.png");
- string_list_add_item(&fgd_files,"golden-herring.png");
- string_list_add_item(&fgd_files,"distro-0.png");
-
- for(i = 0; i < fgd_files.num_items; ++i)
- {
- sprintf(filename,"images/shared/%s",fgd_files.item[i]);
- button_panel_additem(&le_fgd_panel,button_create(filename, "Foreground Tile",(SDLKey)((int)key+i+4),0,0),i+4);
- }
-
- string_list_free(&fgd_files);
- fgd_files = dfiles("images/themes/antarctica","brick", NULL);
- string_list_sort(&fgd_files);
-
- for(i = 0; i < fgd_files.num_items; ++i)
- {
- sprintf(filename,"images/themes/antarctica/%s",fgd_files.item[i]);
- button_panel_additem(&le_fgd_panel,button_create(filename, "Foreground Tile",(SDLKey)((int)key+i+14),0,0),i+14);
- }
-
- string_list_free(&fgd_files);
- string_list_add_item(&fgd_files,"distro-0.png");
- string_list_add_item(&fgd_files,"distro-0.png");
- for(i = 0; i < fgd_files.num_items; ++i)
- {
- sprintf(filename,"images/shared/%s",fgd_files.item[i]);
- button_panel_additem(&le_fgd_panel,button_create(filename, "Foreground Tile",(SDLKey)((int)key+i+16),0,0),i+16);
- }
-
- le_fgd_panel.item[10].bkgd = &le_fgd_panel.item[9].icon;
- le_fgd_panel.item[11].bkgd = &le_fgd_panel.item[9].icon;
- le_fgd_panel.item[12].bkgd = &le_fgd_panel.item[9].icon;
- le_fgd_panel.item[16].bkgd = &le_fgd_panel.item[14].icon;
- le_fgd_panel.item[17].bkgd = &le_fgd_panel.item[15].icon;
-
- 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");
- string_list_add_item(&bad_files,"bag-left-0.png");
- button_panel_init(&le_bad_panel, screen->w - 64,98, 64, 318);
- le_bad_panel.hidden = true;
- key = SDLK_a;
- for(i = 0; i < bad_files.num_items; ++i)
- {
- sprintf(filename,"images/shared/%s",bad_files.item[i]);
- button_panel_additem(&le_bad_panel,button_create(filename, "Bad Guy",(SDLKey)((int)key+i),0,0),i);
- }
-
- leveleditor_menu = new Menu();
- subset_load_menu = new Menu();
- subset_new_menu = new Menu();
- subset_settings_menu = new Menu();
- level_settings_menu = new Menu();
-
- leveleditor_menu->additem(MN_LABEL,"Level Editor Menu",0,0);
- leveleditor_menu->additem(MN_HL,"",0,0);
- leveleditor_menu->additem(MN_ACTION,"Return To Level Editor",0,0);
- leveleditor_menu->additem(MN_DEACTIVE,"Level Subset Settings",0,subset_settings_menu);
- leveleditor_menu->additem(MN_GOTO,"Load Level Subset",0,subset_load_menu);
- leveleditor_menu->additem(MN_GOTO,"New Level Subset",0,subset_new_menu);
- leveleditor_menu->additem(MN_HL,"",0,0);
- leveleditor_menu->additem(MN_ACTION,"Quit Level Editor",0,0);
-
- menu_reset();
- Menu::set_current(leveleditor_menu);
- show_menu = true;
-
- subset_load_menu->additem(MN_LABEL, "Load Level Subset", 0, 0);
- subset_load_menu->additem(MN_HL, "", 0, 0);
-
- for(i = 0; i < level_subsets.num_items; ++i)
- {
- subset_load_menu->additem(MN_ACTION,level_subsets.item[i],0,0);
- }
- subset_load_menu->additem(MN_HL,"",0,0);
- subset_load_menu->additem(MN_BACK,"Back",0,0);
-
- subset_new_menu->additem(MN_LABEL,"New Level Subset",0,0);
- subset_new_menu->additem(MN_HL,"",0,0);
- subset_new_menu->additem(MN_TEXTFIELD,"Enter Name",0,0);
- subset_new_menu->additem(MN_ACTION,"Create",0,0);
- subset_new_menu->additem(MN_HL,"",0,0);
- subset_new_menu->additem(MN_BACK,"Back",0,0);
-
- subset_settings_menu->additem(MN_LABEL,"Level Subset Settings",0,0);
- subset_settings_menu->additem(MN_HL,"",0,0);
- subset_settings_menu->additem(MN_TEXTFIELD,"Title",0,0);
- subset_settings_menu->additem(MN_TEXTFIELD,"Description",0,0);
- subset_settings_menu->additem(MN_HL,"",0,0);
- subset_settings_menu->additem(MN_ACTION,"Save Changes",0,0);
- subset_settings_menu->additem(MN_HL,"",0,0);
- subset_settings_menu->additem(MN_BACK,"Back",0,0);
-
- level_settings_menu->arrange_left = true;
- level_settings_menu->additem(MN_LABEL,"Level Settings",0,0);
- level_settings_menu->additem(MN_HL,"",0,0);
- level_settings_menu->additem(MN_TEXTFIELD,"Name ",0,0);
- level_settings_menu->additem(MN_STRINGSELECT,"Theme ",0,0);
- level_settings_menu->additem(MN_STRINGSELECT,"Song ",0,0);
- level_settings_menu->additem(MN_STRINGSELECT,"Bg-Image",0,0);
- level_settings_menu->additem(MN_NUMFIELD,"Length ",0,0);
- level_settings_menu->additem(MN_NUMFIELD,"Time ",0,0);
- level_settings_menu->additem(MN_NUMFIELD,"Gravity",0,0);
- level_settings_menu->additem(MN_NUMFIELD,"Red ",0,0);
- level_settings_menu->additem(MN_NUMFIELD,"Green ",0,0);
- level_settings_menu->additem(MN_NUMFIELD,"Blue ",0,0);
- level_settings_menu->additem(MN_HL,"",0,0);
- level_settings_menu->additem(MN_ACTION,"Apply Changes",0,0);
-
- SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);
-
- return 0;
-}