X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fsector.cpp;h=cb7a2d9814406893e13479e3a7d23deb94cc8f5f;hb=e409aaf88c618c2fc47ff8f9bbe523b8f271c795;hp=69bac355192c9f7c32dbd740d6ee43be2a572ebf;hpb=0676f7c09ab0d99e5b6a3bf74b9e2b62aaa885d4;p=supertux.git diff --git a/src/sector.cpp b/src/sector.cpp index 69bac3551..cb7a2d981 100644 --- a/src/sector.cpp +++ b/src/sector.cpp @@ -32,7 +32,7 @@ #include "object/camera.h" #include "object/background.h" #include "object/particlesystem.h" -#include "object/particlesystem_absolute.h" +#include "object/particlesystem_interactive.h" #include "object/tilemap.h" #include "lisp/parser.h" #include "lisp/lisp.h" @@ -114,6 +114,14 @@ Sector::parse_object(const std::string& name, const lisp::Lisp& reader) RainParticleSystem* partsys = new RainParticleSystem(); partsys->parse(reader); return partsys; + } else if(name == "particles-comets") { + CometParticleSystem* partsys = new CometParticleSystem(); + partsys->parse(reader); + return partsys; + } else if(name == "particles-ghosts") { + GhostParticleSystem* partsys = new GhostParticleSystem(); + partsys->parse(reader); + return partsys; } else if(name == "particles-clouds") { CloudParticleSystem* partsys = new CloudParticleSystem(); partsys->parse(reader); @@ -418,19 +426,8 @@ Sector::activate(const std::string& spawnpoint) // Run init script if(init_script != "") { - try { - ScriptInterpreter* interpreter - = new ScriptInterpreter(GameSession::current()->get_working_directory()); - interpreter->register_sector(this); - std::string sourcename = std::string("Sector(") + name + ") - init"; - std::istringstream in(init_script); - interpreter->load_script(in, sourcename); - interpreter->start_script(); - add_object(interpreter); - init_script = ""; - } catch(std::exception& e) { - std::cerr << "Couldn't execute init script: " << e.what() << "\n"; - } + ScriptInterpreter::add_script_object(this, + std::string("Sector(") + name + ") - init", init_script); } } @@ -787,8 +784,7 @@ Sector::add_floating_text(const Vector& pos, const std::string& text) void Sector::load_music() { - level_song = sound_manager->load_music( - get_resource_filename("/music/" + song_title)); + level_song = sound_manager->load_music("/music/" + song_title); } void