- select_tilegroup_menu->additem(MN_HL,"",0,0);
-
- select_objects_menu->arrange_left = true;
- select_objects_menu->additem(MN_LABEL,"Objects",0,0);
- select_objects_menu->additem(MN_HL,"",0,0);
- // TODO fix this
- select_objects_menu->additem(MN_ACTION,"BadGuys",0,0,1);
- objects_map["BadGuys"] = new ButtonPanel(screen->w - 64,96, 64, 318);
-
- for(int i = 0; i < NUM_BadGuyKinds; ++i)
- {
-// BadGuy bad_tmp(BadGuyKind(i), 0, 0);
-// objects_map["BadGuys"]->additem(new Button(0, "BadGuy",(SDLKey)(i+'a'),0,0,32,32),1000000+i);
-/* FIXME: maybe addbutton should already have a parameter for the surface
- objects_map["BadGuys"]->manipulate_button(i)->set_drawable(new
- BadGuy(BadGuyKind(i),
- objects_map["BadGuys"]->manipulate_button(i)->get_pos().x,
- objects_map["BadGuys"]->manipulate_button(i)->get_pos().y
- ));*/
- }
-
- select_objects_menu->additem(MN_HL,"",0,0);
-
-}
-
-int le_init()
-{
- level_subsets = dsubdirs("/levels", "level1.stl");
- le_level_subset = new LevelSubset;
-
- le_level = NULL;
- le_levelnb = 1;
- selected_game_object = NULL;
-
- active_tm = TM_IA;
- le_show_grid = true;
- show_selections = true;
-
- done = 0;
- le_frame = 0; /* support for frames in some tiles, like waves and bad guys */
- le_level_changed = false;
- le_help_shown = false;
-
- le_mouse_pressed[LEFT] = false;
- le_mouse_pressed[RIGHT] = false;
-
- le_mouse_clicked[LEFT] = false;
- le_mouse_clicked[RIGHT] = false;
-
- le_selection = new Surface(datadir + "/images/leveleditor/select.png", USE_ALPHA);
-
- select_tilegroup_menu_effect.init(false);
- select_objects_menu_effect.init(false);
- display_level_info.init(false);
-
- /* Load buttons */
- le_save_level_bt = new Button("/images/icons/save.png","Save level", SDLK_F6,screen->w-64,32);
- le_exit_bt = new Button("/images/icons/exit.png","Exit", SDLK_F10,screen->w-32,32);
- le_next_level_bt = new Button("/images/icons/next.png","Next level", SDLK_PAGEUP,screen->w-64,0);
- le_previous_level_bt = new Button("/images/icons/previous.png","Previous level",SDLK_PAGEDOWN,screen->w-32,0);
- le_rubber_bt = new Button("/images/icons/rubber.png","Rubber",SDLK_DELETE,screen->w-32,48);
- le_select_mode_one_bt = new Button ("/images/icons/select-mode1.png","Select single tile",SDLK_F3,screen->w-64,48);
- le_select_mode_two_bt = new Button("/images/icons/select-mode2.png","Select multiple tiles",SDLK_F3,screen->w-64,48);
- le_test_level_bt = new Button("/images/icons/test-level.png","Test level",SDLK_F4,screen->w-64,screen->h - 64);
- le_settings_bt = new Button("/images/icons/settings.png","Level settings",SDLK_F5,screen->w-32,screen->h - 64);
- le_move_left_bt = new Button("/images/icons/left.png","Move left",SDLK_LEFT,screen->w-80-16,0);
- le_move_right_bt = new Button("/images/icons/right.png","Move right",SDLK_RIGHT,screen->w-80,0);
- le_move_up_bt = new Button("/images/icons/up.png","Move up",SDLK_UP,screen->w-80,16);
- le_move_down_bt = new Button("/images/icons/down.png","Move down",SDLK_DOWN,screen->w-80,32);
- le_tilegroup_bt = new Button("/images/icons/tilegroup.png","Select Tilegroup", SDLK_F7,screen->w-64,64);
- le_objects_bt = new Button("/images/icons/objects.png","Select Objects", SDLK_F8,screen->w-64,80);
- le_object_select_bt = new Button("/images/icons/select-one.png","Select an Object", SDLK_s, screen->w - 64, screen->h-98);
- le_object_properties_bt = new Button("/images/icons/properties.png","Edit object properties", SDLK_p, screen->w - 32, screen->h-98);
- le_object_properties_bt->set_active(false);
-
- mouse_select_object = new MouseCursor(datadir + "/images/status/select-cursor.png",1);
- mouse_select_object->set_mid(16,16);
-
- le_tilemap_panel = new ButtonPanel(screen->w-64,screen->h-32,32,32);
- le_tilemap_panel->set_button_size(32,10);
- le_tilemap_panel->additem(new Button("/images/icons/bkgrd.png","Background",SDLK_b,0,0),TM_BG);
- le_tilemap_panel->additem(new Button("/images/icons/intact.png","Interactive",SDLK_i,0,0), TM_IA);
- le_tilemap_panel->additem(new Button("/images/icons/frgrd.png","Foreground",SDLK_f,0,0),TM_FG);
- le_tilemap_panel->highlight_last(true);
- le_tilemap_panel->set_last_clicked(TM_IA);
-
- le_current.Init();
-
- le_init_menus();
-
- SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);
-
-
- return 0;
-}
-
-void update_level_settings_menu()
-{
- char str[80];
- int i;
-
- level_settings_menu->get_item_by_id(MNID_NAME).change_input(le_level->name.c_str());
- level_settings_menu->get_item_by_id(MNID_AUTHOR).change_input(le_level->author.c_str());
-
- string_list_copy(level_settings_menu->get_item_by_id(MNID_SONG).list, dfiles("music/",NULL, "-fast"));
- string_list_copy(level_settings_menu->get_item_by_id(MNID_BGIMG).list, dfiles("images/background",NULL, NULL));
- string_list_add_item(level_settings_menu->get_item_by_id(MNID_BGIMG).list,"");
- string_list_add_item(level_settings_menu->get_item_by_id(MNID_PARTICLE).list,"");
- string_list_add_item(level_settings_menu->get_item_by_id(MNID_PARTICLE).list,"snow");
- string_list_add_item(level_settings_menu->get_item_by_id(MNID_PARTICLE).list,"clouds");
-
- if((i = string_list_find(level_settings_menu->get_item_by_id(MNID_SONG).list,le_level->get_sector("main")->song_title.c_str())) != -1)
- level_settings_menu->get_item_by_id(MNID_SONG).list->active_item = i;
- if((i = string_list_find(level_settings_menu->get_item_by_id(MNID_BGIMG).list,le_level->get_sector("main")->background->get_image().c_str())) != -1)
- level_settings_menu->get_item_by_id(MNID_BGIMG).list->active_item = i;
-/* if((i = string_list_find(level_settings_menu->get_item_by_id(MNID_PARTICLE).list,le_level->get_sector("main")->particlesystem.c_str())) != -1)
- level_settings_menu->get_item_by_id(MNID_PARTICLE).list->active_item = i;*/
-
- sprintf(str,"%d",le_level->get_sector("main")->solids->get_width());
- level_settings_menu->get_item_by_id(MNID_LENGTH).change_input(str);
- sprintf(str,"%d",le_level->get_sector("main")->solids->get_height());
- level_settings_menu->get_item_by_id(MNID_HEIGHT).change_input(str);
- sprintf(str,"%d",le_level->time_left);
- level_settings_menu->get_item_by_id(MNID_TIME).change_input(str);
- sprintf(str,"%2.0f",le_level->get_sector("main")->gravity);
- level_settings_menu->get_item_by_id(MNID_GRAVITY).change_input(str);
- sprintf(str,"%2.2f", le_level->get_sector("main")->background->get_speed());
- level_settings_menu->get_item_by_id(MNID_BGSPEED).change_input(str);
- sprintf(str,"%d",le_level->get_sector("main")->background->get_gradient_top().red);
- level_settings_menu->get_item_by_id(MNID_TopRed).change_input(str);
- sprintf(str,"%d",le_level->get_sector("main")->background->get_gradient_top().green);
- level_settings_menu->get_item_by_id(MNID_TopGreen).change_input(str);
- sprintf(str,"%d",le_level->get_sector("main")->background->get_gradient_top().blue);
- level_settings_menu->get_item_by_id(MNID_TopBlue).change_input(str);
- sprintf(str,"%d",le_level->get_sector("main")->background->get_gradient_bottom().red);
- level_settings_menu->get_item_by_id(MNID_BottomRed).change_input(str);
- sprintf(str,"%d",le_level->get_sector("main")->background->get_gradient_bottom().green);
- level_settings_menu->get_item_by_id(MNID_BottomGreen).change_input(str);
- sprintf(str,"%d",le_level->get_sector("main")->background->get_gradient_bottom().blue);
- level_settings_menu->get_item_by_id(MNID_BottomBlue).change_input(str);
-}
-
-void update_subset_settings_menu()
-{
- subset_settings_menu->item[2].change_input(le_level_subset->title.c_str());
- subset_settings_menu->item[3].change_input(le_level_subset->description.c_str());
-}
-
-void apply_level_settings_menu()
-{
- int i;
- i = false;
- le_level_changed = true;