#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()
{
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);
}
{
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_);
}
char str[1024];
-char *text1[] = {
+const char *text1[] = {
_("This is the built-in level editor. Its aim is to be intuitive\n"
"and simple to use, so it should be pretty straightforward.\n"
"\n"
"enemies and game objects in the bottom.\n")
};
-char *text2[] = {
+const char *text2[] = {
_("The Foreground/Interactive/Background buttons may be used to\n"
"see and edit the respective layer. Levels have three tiles layers:\n"
"Foreground - tiles are drawn on top of everything and have no contact\n"
"Webpage: http://pingus.seul.org/~grumbel/flexlay/")
};
-char **text[] = { text1, text2 };
+const char **text[] = { text1, text2 };
bool done;
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;
+}
+