X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fscripting%2Ffunctions.cpp;h=045114e7a8b65022d74a9934509b6ab80454bed3;hb=2b017a68959d768ee917128bbdaa42439911ef43;hp=21b33bdbc23be2384b69a237d40cf72f6ccc7e7a;hpb=42de210bd2cb0e773ce0b7bd6af7bb3f456030bc;p=supertux.git diff --git a/src/scripting/functions.cpp b/src/scripting/functions.cpp index 21b33bdbc..045114e7a 100644 --- a/src/scripting/functions.cpp +++ b/src/scripting/functions.cpp @@ -29,8 +29,10 @@ #include "supertux/sector.hpp" #include "supertux/shrinkfade.hpp" #include "supertux/textscroller.hpp" +#include "supertux/tile.hpp" #include "supertux/world.hpp" #include "util/gettext.hpp" +#include "video/renderer.hpp" #include "worldmap/tux.hpp" #include "scripting/squirrel_util.hpp" @@ -62,27 +64,27 @@ void wait(HSQUIRRELVM vm, float seconds) void wait_for_screenswitch(HSQUIRRELVM vm) { - g_screen_manager->waiting_threads.add(vm); + g_screen_manager->m_waiting_threads.add(vm); } void exit_screen() { - g_screen_manager->exit_screen(); + g_screen_manager->pop_screen(); } void fadeout_screen(float seconds) { - g_screen_manager->set_screen_fade(new FadeOut(seconds)); + g_screen_manager->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)); + g_screen_manager->set_screen_fade(std::unique_ptr(new ShrinkFade(Vector(dest_x, dest_y), seconds))); } void abort_screenfade() { - g_screen_manager->set_screen_fade(NULL); + g_screen_manager->set_screen_fade(std::unique_ptr()); } std::string translate(const std::string& text) @@ -92,7 +94,7 @@ std::string translate(const std::string& text) void display_text_file(const std::string& filename) { - g_screen_manager->push_screen(new TextScroller(filename)); + g_screen_manager->push_screen(std::unique_ptr(new TextScroller(filename))); } void load_worldmap(const std::string& filename) @@ -102,7 +104,7 @@ void load_worldmap(const std::string& filename) 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())); + g_screen_manager->push_screen(std::unique_ptr(new WorldMap(filename, World::current()->get_player_status()))); } void load_level(const std::string& filename) @@ -110,17 +112,7 @@ void load_level(const std::string& filename) if(GameSession::current() == NULL) throw std::runtime_error("Can't start level without active level."); - g_screen_manager->push_screen(new GameSession(filename, GameSession::current()->get_player_status())); -} - -static SQInteger squirrel_read_char(SQUserPointer file) -{ - std::istream* in = reinterpret_cast (file); - char c = in->get(); - if(in->eof()) - return 0; - - return c; + g_screen_manager->push_screen(std::unique_ptr(new GameSession(filename, GameSession::current()->get_player_status()))); } void import(HSQUIRRELVM vm, const std::string& filename) @@ -154,6 +146,11 @@ void debug_draw_solids_only(bool enable) Sector::draw_solids_only = enable; } +void debug_draw_editor_images(bool enable) +{ + Tile::draw_editor_images = enable; +} + void debug_worldmap_ghost(bool enable) { using namespace worldmap; @@ -256,7 +253,7 @@ void whereami() { if (!validate_sector_player()) return; ::Player* tux = Sector::current()->player; - log_info << "You are at x " << tux->get_pos().x << ", y " << tux->get_pos().y << std::endl; + log_info << "You are at x " << ((int) tux->get_pos().x) << ", y " << ((int) tux->get_pos().y) << std::endl; } void gotoend() @@ -275,8 +272,9 @@ void camera() log_info << "Camera is at " << Sector::current()->camera->get_translation().x << "," << Sector::current()->camera->get_translation().y << std::endl; } -void set_gamma(float gamma) { - SDL_SetGamma(gamma, gamma, gamma); +void set_gamma(float gamma) +{ + Renderer::instance()->set_gamma(gamma); } void quit() @@ -286,7 +284,7 @@ void quit() int rand() { - return systemRandom.rand(); + return gameRandom.rand(); } void set_game_speed(float speed) @@ -314,7 +312,7 @@ void play_demo(const std::string& filename) } // Reset random seed g_config->random_seed = GameSession::current()->get_demo_random_seed(filename); - g_config->random_seed = systemRandom.srand(g_config->random_seed); + g_config->random_seed = gameRandom.srand(g_config->random_seed); GameSession::current()->restart_level(); GameSession::current()->play_demo(filename); }