X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fscripting%2Ffunctions.cpp;h=2c906ffb4da83f4575b6f04e2e76ec9108555c54;hb=c0b5cfa3eadebef8101f87cd593eb221bdef9280;hp=ba0fc3fb5d2ae2c83246a67b7aedd717e63cb647;hpb=26b5a524e4ffe4e8937cbe6d36cd43c2c74fb51e;p=supertux.git diff --git a/src/scripting/functions.cpp b/src/scripting/functions.cpp index ba0fc3fb5..2c906ffb4 100644 --- a/src/scripting/functions.cpp +++ b/src/scripting/functions.cpp @@ -20,7 +20,7 @@ #include "math/random_generator.hpp" #include "object/camera.hpp" #include "object/player.hpp" -#include "physfs/ifile_stream.hpp" +#include "physfs/buffered_ifile_stream.hpp" #include "supertux/fadeout.hpp" #include "supertux/game_session.hpp" #include "supertux/gameconfig.hpp" @@ -33,7 +33,9 @@ #include "supertux/world.hpp" #include "util/gettext.hpp" #include "video/renderer.hpp" +#include "video/video_system.hpp" #include "worldmap/tux.hpp" +#include "worldmap/worldmap.hpp" #include "scripting/squirrel_util.hpp" #include "scripting/time_scheduler.hpp" @@ -42,7 +44,7 @@ namespace scripting { SQInteger display(HSQUIRRELVM vm) { - Console::output << squirrel2string(vm, -1) << std::endl; + ConsoleBuffer::output << squirrel2string(vm, -1) << std::endl; return 0; } @@ -64,60 +66,69 @@ void wait(HSQUIRRELVM vm, float seconds) void wait_for_screenswitch(HSQUIRRELVM vm) { - g_screen_manager->waiting_threads.add(vm); + ScreenManager::current()->m_waiting_threads.add(vm); } void exit_screen() { - g_screen_manager->exit_screen(); + ScreenManager::current()->pop_screen(); } void fadeout_screen(float seconds) { - g_screen_manager->set_screen_fade(new FadeOut(seconds)); + ScreenManager::current()->set_screen_fade(std::unique_ptr(new FadeOut(seconds))); } void shrink_screen(float dest_x, float dest_y, float seconds) { - g_screen_manager->set_screen_fade(new ShrinkFade(Vector(dest_x, dest_y), seconds)); + ScreenManager::current()->set_screen_fade(std::unique_ptr(new ShrinkFade(Vector(dest_x, dest_y), seconds))); } void abort_screenfade() { - g_screen_manager->set_screen_fade(NULL); + ScreenManager::current()->set_screen_fade(std::unique_ptr()); } std::string translate(const std::string& text) { - return dictionary_manager->get_dictionary().translate(text); + return g_dictionary_manager->get_dictionary().translate(text); } void display_text_file(const std::string& filename) { - g_screen_manager->push_screen(new TextScroller(filename)); + ScreenManager::current()->push_screen(std::unique_ptr(new TextScroller(filename))); } void load_worldmap(const std::string& filename) { using namespace worldmap; - if(World::current() == NULL) - throw std::runtime_error("Can't start WorldMap without active world."); - - g_screen_manager->push_screen(new WorldMap(filename, World::current()->get_player_status())); + if (!WorldMap::current()) + { + throw std::runtime_error("Can't start Worldmap without active WorldMap"); + } + else + { + ScreenManager::current()->push_screen(std::unique_ptr(new WorldMap(filename, WorldMap::current()->get_savegame()))); + } } void load_level(const std::string& filename) { - if(GameSession::current() == NULL) + if (!GameSession::current()) + { throw std::runtime_error("Can't start level without active level."); - - g_screen_manager->push_screen(new GameSession(filename, GameSession::current()->get_player_status())); + } + else + { + ScreenManager::current()->push_screen(std::unique_ptr(new GameSession(filename, GameSession::current()->get_savegame()))); + } } void import(HSQUIRRELVM vm, const std::string& filename) { - IFileStream in(filename); + BufferedIFileStream* stream = new BufferedIFileStream(filename); + IFileStream* in = stream->get_stream(); if(SQ_FAILED(sq_compile(vm, squirrel_read_char, &in, filename.c_str(), SQTrue))) @@ -163,23 +174,16 @@ void debug_worldmap_ghost(bool enable) void save_state() { - using namespace worldmap; - - if(World::current() == NULL || WorldMap::current() == NULL) - throw std::runtime_error("Can't save state without active World"); + using worldmap::WorldMap; - WorldMap::current()->save_state(); - World::current()->save_state(); -} - -void update_worldmap() -{ - using namespace worldmap; - - if(WorldMap::current() == NULL) - throw std::runtime_error("Can't update Worldmap: none active"); - - WorldMap::current()->load_state(); + if (!WorldMap::current()) + { + throw std::runtime_error("Can't save state without active Worldmap"); + } + else + { + WorldMap::current()->save_state(); + } } // not added to header, function to only be used by others @@ -202,12 +206,12 @@ bool validate_sector_player() void play_music(const std::string& filename) { - sound_manager->play_music(filename); + SoundManager::current()->play_music(filename); } void play_sound(const std::string& filename) { - sound_manager->play(filename); + SoundManager::current()->play(filename); } void grease() @@ -274,12 +278,12 @@ void camera() void set_gamma(float gamma) { - Renderer::instance()->set_gamma(gamma); + VideoSystem::current()->get_renderer().set_gamma(gamma); } void quit() { - g_screen_manager->quit(); + ScreenManager::current()->quit(); } int rand()