static const float FADE_SPEED = 1;
Console::Console()
- : history_position(history.end()), vm(NULL), backgroundOffset(0),
+ : history_position(history.end()), vm(NULL), backgroundOffset(0),
height(0), alpha(1.0), offset(0), focused(false), stayOpen(0) {
fontheight = 8;
}
-Console::~Console()
+Console::~Console()
{
if(vm != NULL) {
sq_release(Scripting::global_vm, &vm_object);
background2.reset(new Surface("images/engine/console2.png"));
}
-void
-Console::flush(ConsoleStreamBuffer* buffer)
+void
+Console::flush(ConsoleStreamBuffer* buffer)
{
if (buffer == &outputBuffer) {
std::string s = outputBuffer.str();
throw Scripting::SquirrelError(vm, "Couldn't get vm object for console");
sq_addref(vm, &vm_object);
sq_pop(vm, 1);
-
+
// create new roottable for thread
sq_newtable(new_vm);
sq_pushroottable(new_vm);
sq_setroottable(new_vm);
vm = new_vm;
-
+
try {
std::string filename = "scripts/console.nut";
IFileStream stream(filename);
{
using namespace Scripting;
- ready_vm();
+ ready_vm();
- SQInteger oldtop = sq_gettop(vm);
+ SQInteger oldtop = sq_gettop(vm);
try {
if(SQ_FAILED(sq_compilebuffer(vm, command.c_str(), command.length(),
"", SQTrue)))
throw SquirrelError(vm, "Couldn't compile command");
- sq_pushroottable(vm);
+ sq_pushroottable(vm);
if(SQ_FAILED(sq_call(vm, 1, SQTrue, SQTrue)))
throw SquirrelError(vm, "Problem while executing command");
}
-}
+}
// End of Console::autocomplete helper functions
void
}
}
-void
-Console::addLines(std::string s)
+void
+Console::addLines(std::string s)
{
std::istringstream iss(s);
std::string line;
while (std::getline(iss, line, '\n')) addLine(line);
}
-void
-Console::addLine(std::string s)
+void
+Console::addLine(std::string s)
{
// output line to stderr
std::cerr << s << std::endl;
// trim scrollback buffer
while (lines.size() >= 1000)
lines.pop_back();
-
+
// increase console height if necessary
if (height < 64) {
if(height < 4)
}
void
-Console::parse(std::string s)
+Console::parse(std::string s)
{
// make sure we actually have something to parse
if (s.length() == 0) return;
}
bool
-Console::consoleCommand(std::string command, std::vector<std::string> arguments)
+Console::consoleCommand(std::string command, std::vector<std::string> arguments)
{
if (command == "ccrs") {
if (arguments.size() != 1) {
}
bool
-Console::hasFocus()
+Console::hasFocus()
{
return focused;
}
SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);
}
-void
+void
Console::hide()
{
focused = false;
SDL_EnableKeyRepeat(0, SDL_DEFAULT_REPEAT_INTERVAL);
}
-void
+void
Console::toggle()
{
if (Console::hasFocus()) {
- Console::hide();
- }
- else {
+ Console::hide();
+ }
+ else {
Console::show();
}
}
}
}
-void
+void
Console::draw(DrawingContext& context)
{
if (height == 0)
context.pop_transform();
}
-void
+void
Console::registerCommand(std::string command, ConsoleCommandReceiver* ccr)
{
commands[command].push_front(ccr);
}
-void
+void
Console::unregisterCommand(std::string command, ConsoleCommandReceiver* ccr)
{
std::map<std::string, std::list<ConsoleCommandReceiver*> >::iterator i = commands.find(command);
i->second.erase(j);
}
-void
+void
Console::unregisterCommands(ConsoleCommandReceiver* ccr)
{
for (std::map<std::string, std::list<ConsoleCommandReceiver*> >::iterator i = commands.begin(); i != commands.end(); i++) {
ConsoleStreamBuffer Console::outputBuffer;
std::ostream Console::input(&Console::inputBuffer);
std::ostream Console::output(&Console::outputBuffer);
-