Disable key repeat
This commit is contained in:
parent
afe9e061e1
commit
732b9d6a0d
@ -73,7 +73,7 @@ SDL_Surface * SDLOpen()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
SDL_WM_SetCaption("The Powder Toy", "Powder Toy");
|
SDL_WM_SetCaption("The Powder Toy", "Powder Toy");
|
||||||
SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);
|
//SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);
|
||||||
atexit(SDL_Quit);
|
atexit(SDL_Quit);
|
||||||
return SDL_SetVideoMode(XRES + BARSIZE, YRES + MENUSIZE, 32, SDL_SWSURFACE);
|
return SDL_SetVideoMode(XRES + BARSIZE, YRES + MENUSIZE, 32, SDL_SWSURFACE);
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,11 @@ std::string CommandInterface::FormatCommand(std::string command)
|
|||||||
return command;
|
return command;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CommandInterface::Log(LogType type, std::string message)
|
||||||
|
{
|
||||||
|
//Todo Put this info somewhere, an on-screen log output would be nice.
|
||||||
|
}
|
||||||
|
|
||||||
int CommandInterface::GetPropertyOffset(std::string key_, FormatType & format)
|
int CommandInterface::GetPropertyOffset(std::string key_, FormatType & format)
|
||||||
{
|
{
|
||||||
char * key = (char *)key_.c_str();
|
char * key = (char *)key_.c_str();
|
||||||
|
@ -17,10 +17,12 @@ protected:
|
|||||||
std::string lastError;
|
std::string lastError;
|
||||||
GameModel * m;
|
GameModel * m;
|
||||||
public:
|
public:
|
||||||
|
enum LogType { LogError, LogWarning, LogNotice };
|
||||||
enum FormatType { FormatInt, FormatString, FormatChar, FormatFloat };
|
enum FormatType { FormatInt, FormatString, FormatChar, FormatFloat };
|
||||||
CommandInterface(GameModel * m);
|
CommandInterface(GameModel * m);
|
||||||
int GetPropertyOffset(std::string key_, FormatType & format);
|
int GetPropertyOffset(std::string key_, FormatType & format);
|
||||||
int GetParticleType(std::string type);
|
int GetParticleType(std::string type);
|
||||||
|
void Log(LogType type, std::string message);
|
||||||
//void AttachGameModel(GameModel * m);
|
//void AttachGameModel(GameModel * m);
|
||||||
virtual void Tick() {}
|
virtual void Tick() {}
|
||||||
virtual int Command(std::string command);
|
virtual int Command(std::string command);
|
||||||
|
@ -80,6 +80,7 @@ LuaScriptInterface::LuaScriptInterface(GameModel * m):
|
|||||||
luacon_model = m;
|
luacon_model = m;
|
||||||
luacon_sim = m->GetSimulation();
|
luacon_sim = m->GetSimulation();
|
||||||
luacon_g = ui::Engine::Ref().g;
|
luacon_g = ui::Engine::Ref().g;
|
||||||
|
luacon_ci = this;
|
||||||
|
|
||||||
l = lua_open();
|
l = lua_open();
|
||||||
luaL_openlibs(l);
|
luaL_openlibs(l);
|
||||||
@ -211,71 +212,19 @@ void LuaScriptInterface::Tick()
|
|||||||
|
|
||||||
int LuaScriptInterface::Command(std::string command)
|
int LuaScriptInterface::Command(std::string command)
|
||||||
{
|
{
|
||||||
luaL_dostring(l, command.c_str());
|
int ret;
|
||||||
return 0;
|
lastError = "";
|
||||||
|
if((ret = luaL_dostring(l, command.c_str())))
|
||||||
|
{
|
||||||
|
lastError = luacon_geterror();
|
||||||
|
Log(LogError, lastError);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string LuaScriptInterface::FormatCommand(std::string command)
|
std::string LuaScriptInterface::FormatCommand(std::string command)
|
||||||
{
|
{
|
||||||
//char ** keywords = {"and", "break", "do", "else", "elseif", "end", "false", "for", "function", "if", "in", "local", "nil", "not", "or", "repeat", "return", "then", "true", "until", "while", NULL};
|
return command;
|
||||||
//char ** functions = {"_VERSION", "assert", "collectgarbage", "dofile", "error", "gcinfo", "loadfile", "loadstring", "print", "tonumber", "tostring", "type", "unpack", "_ALERT", "_ERRORMESSAGE", "_INPUT", "_PROMPT", "_OUTPUT", "_STDERR", "_STDIN", "_STDOUT", "call", "dostring", "foreach", "foreachi", "getn", "globals", "newtype", "rawget", "rawset", "require", "sort", "tinsert", "tremove", "_G", "getfenv", "getmetatable", "ipairs", "loadlib", "next", "pairs", "pcall", "rawegal", "rawget", "rawset", "require", "setfenv", "setmetatable", "xpcall", "string", "table", "math", "coroutine", "io", "os", "debug"};
|
|
||||||
char * rawText = (char*)command.c_str();
|
|
||||||
char * outputData = (char *)calloc(command.length()*6, 1);
|
|
||||||
char lastWord[command.length()];
|
|
||||||
int lastWordChar = 0;
|
|
||||||
lastWord[0] = 0;
|
|
||||||
int rawTextLoc = 0;
|
|
||||||
int outputDataLoc = 0;
|
|
||||||
std::stack<char> pstack;
|
|
||||||
while(rawText[rawTextLoc])
|
|
||||||
{
|
|
||||||
switch(rawText[rawTextLoc])
|
|
||||||
{
|
|
||||||
case '\\':
|
|
||||||
outputData[outputDataLoc++] = rawText[rawTextLoc++];
|
|
||||||
if(rawText[rawTextLoc])
|
|
||||||
outputData[outputDataLoc++] = rawText[rawTextLoc++];
|
|
||||||
break;
|
|
||||||
case '"':
|
|
||||||
if(pstack.size() && pstack.top() == '"')
|
|
||||||
{
|
|
||||||
pstack.pop();
|
|
||||||
outputData[outputDataLoc++] = rawText[rawTextLoc++];
|
|
||||||
outputData[outputDataLoc++] = '\b';
|
|
||||||
outputData[outputDataLoc++] = 'w';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
pstack.push('"');
|
|
||||||
outputData[outputDataLoc++] = '\b';
|
|
||||||
outputData[outputDataLoc++] = 'o';
|
|
||||||
outputData[outputDataLoc++] = rawText[rawTextLoc++];
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case '(':
|
|
||||||
pstack.push('(');
|
|
||||||
outputData[outputDataLoc++] = '\b';
|
|
||||||
outputData[outputDataLoc++] = 't';
|
|
||||||
strcpy(outputData+(outputDataLoc++), lastWord);
|
|
||||||
outputData[outputDataLoc++] = '\b';
|
|
||||||
outputData[outputDataLoc++] = 'w';
|
|
||||||
lastWord[0] = 0;
|
|
||||||
lastWordChar = 0;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
if(pstack.top()!='"')
|
|
||||||
{
|
|
||||||
lastWord[lastWordChar++] = rawText[rawTextLoc++];
|
|
||||||
lastWord[lastWordChar] = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
outputData[outputDataLoc++] = rawText[rawTextLoc++];
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return outputData;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
LuaScriptInterface::~LuaScriptInterface() {
|
LuaScriptInterface::~LuaScriptInterface() {
|
||||||
@ -985,12 +934,7 @@ int luatpt_setconsole(lua_State* l)
|
|||||||
|
|
||||||
int luatpt_log(lua_State* l)
|
int luatpt_log(lua_State* l)
|
||||||
{
|
{
|
||||||
/*char *buffer;
|
luacon_ci->Log(CommandInterface::LogNotice, luaL_optstring(l, 1, ""));
|
||||||
buffer = luaL_optstring(l, 1, "");
|
|
||||||
strncpy(console_error, buffer, 254);
|
|
||||||
return 0;*/
|
|
||||||
//luacon_ci->lastError = luaL_optstring(l, 1, "");
|
|
||||||
//TODO IMPLEMENT - Have some sort of error log that is visible outside the console.
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user