#include "supertux/console.hpp"
#include <math.h>
+#include <iostream>
-#include "physfs/physfs_stream.hpp"
+#include "physfs/ifile_stream.hpp"
#include "scripting/squirrel_util.hpp"
#include "supertux/gameconfig.hpp"
-#include "supertux/main.hpp"
+#include "supertux/globals.hpp"
#include "video/drawing_context.hpp"
/// speed (pixels/s) the console closes
static const float FADE_SPEED = 1;
Console::Console() :
+ history(),
history_position(history.end()),
+ lines(),
+ background(),
+ background2(),
vm(NULL),
+ vm_object(),
backgroundOffset(0),
height(0),
alpha(1.0),
offset(0),
focused(false),
+ font(),
+ fontheight(),
stayOpen(0)
{
fontheight = 8;
Console::~Console()
{
if(vm != NULL) {
- sq_release(Scripting::global_vm, &vm_object);
+ sq_release(scripting::global_vm, &vm_object);
}
}
{
font.reset(new Font(Font::FIXED,"fonts/andale12.stf",1));
fontheight = font->get_height();
- background.reset(new Surface("images/engine/console.png"));
- background2.reset(new Surface("images/engine/console2.png"));
+ background = Surface::create("images/engine/console.png");
+ background2 = Surface::create("images/engine/console2.png");
}
void
Console::ready_vm()
{
if(vm == NULL) {
- vm = Scripting::global_vm;
+ vm = scripting::global_vm;
HSQUIRRELVM new_vm = sq_newthread(vm, 16);
if(new_vm == NULL)
- throw Scripting::SquirrelError(vm, "Couldn't create new VM thread for console");
+ throw scripting::SquirrelError(vm, "Couldn't create new VM thread for console");
// store reference to thread
sq_resetobject(&vm_object);
if(SQ_FAILED(sq_getstackobj(vm, -1, &vm_object)))
- throw Scripting::SquirrelError(vm, "Couldn't get vm object for console");
+ throw scripting::SquirrelError(vm, "Couldn't get vm object for console");
sq_addref(vm, &vm_object);
sq_pop(vm, 1);
sq_newtable(new_vm);
sq_pushroottable(new_vm);
if(SQ_FAILED(sq_setdelegate(new_vm, -2)))
- throw Scripting::SquirrelError(new_vm, "Couldn't set console_table delegate");
+ throw scripting::SquirrelError(new_vm, "Couldn't set console_table delegate");
sq_setroottable(new_vm);
try {
std::string filename = "scripts/console.nut";
IFileStream stream(filename);
- Scripting::compile_and_run(vm, stream, filename);
+ scripting::compile_and_run(vm, stream, filename);
} catch(std::exception& e) {
log_warning << "Couldn't load console.nut: " << e.what() << std::endl;
}
void
Console::execute_script(const std::string& command)
{
- using namespace Scripting;
+ using namespace scripting;
ready_vm();