X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Flevel.cpp;h=dccfbd8702fdd4018516e97edef351f8740069a0;hb=f53572ad2b744ddddd7cc4b6479489543d44f98d;hp=110b6859b6bb9c2e94f1d735afe5cd19edeb6387;hpb=e6a940db5904743e8220491ce10b5107e119a44c;p=supertux.git diff --git a/src/level.cpp b/src/level.cpp index 110b6859b..dccfbd870 100644 --- a/src/level.cpp +++ b/src/level.cpp @@ -1,7 +1,7 @@ // $Id$ -// +// // SuperTux -// Copyright (C) 2004 SuperTux Development Team, see AUTHORS for details +// Copyright (C) 2006 Matthias Braun // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License @@ -12,7 +12,7 @@ // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. -// +// // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA @@ -29,7 +29,6 @@ #include #include -#include "video/screen.hpp" #include "log.hpp" #include "lisp/parser.hpp" #include "lisp/lisp.hpp" @@ -46,9 +45,6 @@ #include "object/tilemap.hpp" #include "object/coin.hpp" -// test -#include "flip_level_transformer.hpp" - using namespace std; Level::Level() @@ -86,8 +82,10 @@ Level::load(const std::string& filepath) iter.value()->get(name); } else if(token == "author") { iter.value()->get(author); + } else if(token == "on-menukey-script") { + iter.value()->get(on_menukey_script); } else if(token == "sector") { - Sector* sector = new Sector; + Sector* sector = new Sector(this); sector->parse(*(iter.lisp())); add_sector(sector); } else { @@ -109,7 +107,7 @@ Level::load_old_format(const lisp::Lisp& reader) reader.get("name", name); reader.get("author", author); - Sector* sector = new Sector; + Sector* sector = new Sector(this); sector->parse_old_format(reader); add_sector(sector); } @@ -128,6 +126,8 @@ Level::save(const std::string& filename) writer->write_string("name", name, true); writer->write_string("author", author); + if(on_menukey_script != "") + writer->write_string("on-menukey-script", on_menukey_script); for(Sectors::iterator i = sectors.begin(); i != sectors.end(); ++i) { Sector* sector = *i; @@ -182,15 +182,6 @@ Level::get_sector(size_t num) } int -Level::get_total_badguys() -{ - int total_badguys = 0; - for(Sectors::iterator i = sectors.begin(); i != sectors.end(); ++i) - total_badguys += (*i)->get_total_badguys(); - return total_badguys; -} - -int Level::get_total_coins() { // FIXME not really correct as coins can also be inside blocks... @@ -207,3 +198,11 @@ Level::get_total_coins() return total_coins; } +int +Level::get_total_badguys() +{ + int total_badguys = 0; + for(Sectors::iterator i = sectors.begin(); i != sectors.end(); ++i) + total_badguys += (*i)->get_total_badguys(); + return total_badguys; +}