+ 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);
+
+ DisplayManager dummy;
+ for(int i = 0; i < NUM_BadGuyKinds; ++i)
+ {
+ BadGuy bad_tmp(dummy, BadGuyKind(i), 0, 0);
+ objects_map["BadGuys"]->additem(new Button("", "BadGuy",(SDLKey)(i+'a'),0,0,32,32),1000000+i);
+ objects_map["BadGuys"]->manipulate_button(i)->set_drawable(new
+ BadGuy(dummy,
+ 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_world = NULL;
+ 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();
+