#include "leveleditor.h"
#include "resources.h"
#include "tile.h"
-#include "tilemap.h"
#include "tile_manager.h"
#include "sector.h"
-#include "background.h"
#include "gameloop.h"
-#include "gameobjs.h"
-#include "camera.h"
+#include "object/gameobjs.h"
+#include "object/camera.h"
+#include "object/tilemap.h"
+#include "object/background.h"
LevelEditor::LevelEditor()
{
if(!tile)
continue;
- Surface* surface;
- if(tile->editor_images.size())
- surface = tile->editor_images[0];
- else if(tile->images.size())
- surface = tile->images[0];
- else
+ Surface* surface = tile->get_editor_image();
+ if(!surface)
continue;
Button button = Button(surface, "", SDLKey(0));
level_subset->description = create_subset_menu->get_item_by_id(MN_ID_DESCRIPTION_SUBSET).input;
//FIXME: generate better level filenames
level_subset->add_level(subset_name+'/'+"new_level.stl");
- Level::create(level_subset->get_level_filename(0));
+ Level* newlevel = new Level();
+ newlevel->add_sector(create_sector("main", 25, 19));
+ newlevel->save(level_subset->get_level_filename(0));
level_subset->save();
load_level(0);
if(confirm_dialog(NULL, str))
{
level_subset->add_level("new_level.stl");
- Level::create(level_subset->get_level_filename(level_nb + 1));
+ Level* newlevel = new Level();
+ newlevel->add_sector(create_sector("main", 25, 19));
+ newlevel->save(level_subset->get_level_filename(level_nb + 1));
level_subset->save();
load_level(level_nb + 1);
}
{
vector.push_back(tilemap->get_tile(x +
(int)(((selection_ini.x+scroll.x)*zoom)/32),
- y + (int)(((selection_ini.y+scroll.y)*zoom)/32))->id);
+ y + (int)(((selection_ini.y+scroll.y)*zoom)/32))->getID());
}
selection.push_back(vector);
}
{
if(!confirm_dialog(NULL, _("No more sectors exist. Create another?")))
return;
- sector_ = Sector::create("new_sector",25,19);
+ sector_ = create_sector("new_sector",25,19);
level->add_sector(sector_);
}
show_grid = show_grid_t;
mouse_cursor->set_state(MC_NORMAL);
}
+
+Sector*
+LevelEditor::create_sector(const std::string& name, size_t width, size_t height)
+{
+ Sector* sector = new Sector;
+ sector->set_name(name);
+
+ sector->add_object(new TileMap(LAYER_BACKGROUNDTILES, false, width, height));
+ sector->add_object(new TileMap(LAYER_TILES, true, width, height));
+ sector->add_object(new TileMap(LAYER_FOREGROUNDTILES, false, width, height));
+ sector->add_object(new Camera(sector));
+ sector->update_game_objects();
+
+ return sector;
+}
+