projects
/
supertux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rewrote logic of ScreenManager to handle ScreenManager::quit() better and not have...
[supertux.git]
/
src
/
scripting
/
functions.cpp
diff --git
a/src/scripting/functions.cpp
b/src/scripting/functions.cpp
index
fa2fad4
..
045114e
100644
(file)
--- a/
src/scripting/functions.cpp
+++ b/
src/scripting/functions.cpp
@@
-29,14
+29,16
@@
#include "supertux/sector.hpp"
#include "supertux/shrinkfade.hpp"
#include "supertux/textscroller.hpp"
#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 "supertux/world.hpp"
#include "util/gettext.hpp"
+#include "video/renderer.hpp"
#include "worldmap/tux.hpp"
#include "scripting/squirrel_util.hpp"
#include "scripting/time_scheduler.hpp"
#include "worldmap/tux.hpp"
#include "scripting/squirrel_util.hpp"
#include "scripting/time_scheduler.hpp"
-namespace
S
cripting {
+namespace
s
cripting {
SQInteger display(HSQUIRRELVM vm)
{
SQInteger display(HSQUIRRELVM vm)
{
@@
-62,27
+64,27
@@
void wait(HSQUIRRELVM vm, float seconds)
void wait_for_screenswitch(HSQUIRRELVM vm)
{
void wait_for_screenswitch(HSQUIRRELVM vm)
{
- g_screen_manager->waiting_threads.add(vm);
+ g_screen_manager->
m_
waiting_threads.add(vm);
}
void exit_screen()
{
}
void exit_screen()
{
- g_screen_manager->
exit
_screen();
+ g_screen_manager->
pop
_screen();
}
void fadeout_screen(float seconds)
{
}
void fadeout_screen(float seconds)
{
- g_screen_manager->set_screen_fade(
new FadeOut(seconds
));
+ g_screen_manager->set_screen_fade(
std::unique_ptr<ScreenFade>(new FadeOut(seconds)
));
}
void shrink_screen(float dest_x, float dest_y, float 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<ScreenFade>(new ShrinkFade(Vector(dest_x, dest_y), seconds)
));
}
void abort_screenfade()
{
}
void abort_screenfade()
{
- g_screen_manager->set_screen_fade(
NULL
);
+ g_screen_manager->set_screen_fade(
std::unique_ptr<ScreenFade>()
);
}
std::string translate(const std::string& text)
}
std::string translate(const std::string& text)
@@
-92,29
+94,25
@@
std::string translate(const std::string& text)
void display_text_file(const std::string& filename)
{
void display_text_file(const std::string& filename)
{
- g_screen_manager->push_screen(
new TextScroller(filename
));
+ g_screen_manager->push_screen(
std::unique_ptr<Screen>(new TextScroller(filename)
));
}
void load_worldmap(const std::string& filename)
{
}
void load_worldmap(const std::string& filename)
{
- using namespace
WorldMapNS
;
+ using namespace
worldmap
;
- g_screen_manager->push_screen(new WorldMap(filename));
-}
+ if(World::current() == NULL)
+ throw std::runtime_error("Can't start WorldMap without active world.");
-void load_level(const std::string& filename)
-{
- g_screen_manager->push_screen(new GameSession(filename));
+ g_screen_manager->push_screen(std::unique_ptr<Screen>(new WorldMap(filename, World::current()->get_player_status())));
}
}
-
static SQInteger squirrel_read_char(SQUserPointer fil
e)
+
void load_level(const std::string& filenam
e)
{
{
- std::istream* in = reinterpret_cast<std::istream*> (file);
- char c = in->get();
- if(in->eof())
- return 0;
+ if(GameSession::current() == NULL)
+ throw std::runtime_error("Can't start level without active level.");
-
return c
;
+
g_screen_manager->push_screen(std::unique_ptr<Screen>(new GameSession(filename, GameSession::current()->get_player_status())))
;
}
void import(HSQUIRRELVM vm, const std::string& filename)
}
void import(HSQUIRRELVM vm, const std::string& filename)
@@
-148,9
+146,14
@@
void debug_draw_solids_only(bool enable)
Sector::draw_solids_only = enable;
}
Sector::draw_solids_only = enable;
}
+void debug_draw_editor_images(bool enable)
+{
+ Tile::draw_editor_images = enable;
+}
+
void debug_worldmap_ghost(bool enable)
{
void debug_worldmap_ghost(bool enable)
{
- using namespace
WorldMapNS
;
+ using namespace
worldmap
;
if(WorldMap::current() == NULL)
throw std::runtime_error("Can't change ghost mode without active WorldMap");
if(WorldMap::current() == NULL)
throw std::runtime_error("Can't change ghost mode without active WorldMap");
@@
-160,7
+163,7
@@
void debug_worldmap_ghost(bool enable)
void save_state()
{
void save_state()
{
- using namespace
WorldMapNS
;
+ using namespace
worldmap
;
if(World::current() == NULL || WorldMap::current() == NULL)
throw std::runtime_error("Can't save state without active World");
if(World::current() == NULL || WorldMap::current() == NULL)
throw std::runtime_error("Can't save state without active World");
@@
-171,7
+174,7
@@
void save_state()
void update_worldmap()
{
void update_worldmap()
{
- using namespace
WorldMapNS
;
+ using namespace
worldmap
;
if(WorldMap::current() == NULL)
throw std::runtime_error("Can't update Worldmap: none active");
if(WorldMap::current() == NULL)
throw std::runtime_error("Can't update Worldmap: none active");
@@
-210,7
+213,7
@@
void play_sound(const std::string& filename)
void grease()
{
if (!validate_sector_player()) return;
void grease()
{
if (!validate_sector_player()) return;
- ::Player* tux = Sector::current()->player; //
S
cripting::Player != ::Player
+ ::Player* tux = Sector::current()->player; //
s
cripting::Player != ::Player
tux->get_physic().set_velocity_x(tux->get_physic().get_velocity_x()*3);
}
tux->get_physic().set_velocity_x(tux->get_physic().get_velocity_x()*3);
}
@@
-250,7
+253,7
@@
void whereami()
{
if (!validate_sector_player()) return;
::Player* tux = Sector::current()->player;
{
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()
}
void gotoend()
@@
-269,8
+272,9
@@
void camera()
log_info << "Camera is at " << Sector::current()->camera->get_translation().x << "," << Sector::current()->camera->get_translation().y << std::endl;
}
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()
}
void quit()
@@
-280,7
+284,7
@@
void quit()
int rand()
{
int rand()
{
- return
system
Random.rand();
+ return
game
Random.rand();
}
void set_game_speed(float speed)
}
void set_game_speed(float speed)
@@
-308,7
+312,7
@@
void play_demo(const std::string& filename)
}
// Reset random seed
g_config->random_seed = GameSession::current()->get_demo_random_seed(filename);
}
// Reset random seed
g_config->random_seed = GameSession::current()->get_demo_random_seed(filename);
- g_config->random_seed =
system
Random.srand(g_config->random_seed);
+ g_config->random_seed =
game
Random.srand(g_config->random_seed);
GameSession::current()->restart_level();
GameSession::current()->play_demo(filename);
}
GameSession::current()->restart_level();
GameSession::current()->play_demo(filename);
}