#include <fstream>
#include <stdexcept>
-#include "globals.h"
-#include "setup.h"
+#include "app/globals.h"
+#include "app/setup.h"
#include "camera.h"
-#include "screen/screen.h"
+#include "video/screen.h"
#include "level.h"
-#include "physic.h"
+#include "math/physic.h"
#include "scene.h"
#include "sector.h"
#include "tile.h"
-#include "lispreader.h"
+#include "utils/lispreader.h"
#include "resources.h"
#include "gameobjs.h"
-#include "lispwriter.h"
+#include "utils/lispwriter.h"
using namespace std;
return;
}
- vertical_flip = false;
-
for(lisp_object_t* cur = level->get_lisp(); !lisp_nil_p(cur);
cur = lisp_cdr(cur)) {
std::string token = lisp_symbol(lisp_car(lisp_car(cur)));
author = lisp_string(data);
} else if(token == "time") {
time_left = lisp_integer(data);
- } else if(token == "flip") {
- vertical_flip = lisp_boolean(data);
} else if(token == "sector") {
Sector* sector = new Sector;
sector->parse(reader);
}
delete level;
-
- if(vertical_flip)
- {
- for(Sectors::iterator i = sectors.begin(); i != sectors.end(); ++i)
- i->second->do_vertical_flip();
- }
}
void
Level::load_old_format(LispReader& reader)
{
- reader.read_string("name", name);
+ reader.read_string("name", name, true);
reader.read_string("author", author);
reader.read_int("time", time_left);
- vertical_flip = false;
- reader.read_bool("flip", vertical_flip);
Sector* sector = new Sector;
sector->parse_old_format(reader);
add_sector(sector);
-
- if(vertical_flip)
- {
- for(Sectors::iterator i = sectors.begin(); i != sectors.end(); ++i)
- i->second->do_vertical_flip();
- }
}
void
for(Sectors::iterator i = sectors.begin(); i != sectors.end(); ++i)
{
- if(vertical_flip)
- i->second->do_vertical_flip();
-
writer->start_list("sector");
i->second->write(*writer);
writer->end_list("sector");
}
void
+Level::do_vertical_flip()
+{
+ for(Sectors::iterator i = sectors.begin(); i != sectors.end(); ++i)
+ i->second->do_vertical_flip();
+}
+
+void
Level::add_sector(Sector* sector)
{
sectors.insert(std::make_pair(sector->get_name(), sector));