Esempio n. 1
0
void ScrollableGamePanel::_positionMap()
{
    lua_State *L = getLua();
    if(!L)
    {
        return;
    }
    lua_getglobal(L, "TheApp");
    if(lua_isnil(L, -1))
    {
        lua_pop(L, 1);
        return;
    }
    lua_getfield(L, -1, "ui");
    if(lua_isnil(L, -1))
    {
        lua_pop(L, 2);
        return;
    }
    lua_replace(L, -2);
    lua_getfield(L, -1, "scrollMapTo");
    lua_insert(L, -2);
    lua_pushinteger(L, m_pMapScrollX->GetThumbPosition() - m_pMapScrollX->GetRange() / 2 + m_pMapScrollX->GetThumbSize() / 2);
    lua_pushinteger(L, m_pMapScrollY->GetThumbPosition());
    m_bShouldRespondToScroll = false;
    lua_call(L, 3, 1);
    m_bShouldRespondToScroll = true;
    m_pGamePanel->Refresh(false);
}
Esempio n. 2
0
int main(int argc, char *argv[]) {
    auto kampf = Kampf(enumInitType::Basic); 
    auto lua = kampf.getLua();
    lua->loadScript("kampf_render.lua");

    return 0;
}
Esempio n. 3
0
// *********************************************************************************************************
void CDisplayerLua::CToLua::executeHandler(const CLuaString &eventName, int numArgs)
{
	CLuaState &ls = *getLua();
	CLuaStackRestorer lsr(&ls, ls.getTop() - numArgs);
	//
	if (!_LuaTable.isValid()) return; // init failed
	if (_LuaTable[eventName].isNil()) return; // event not handled
	static volatile bool dumpStackWanted = false;
	if (dumpStackWanted) ls.dumpStack();
	_LuaTable[eventName].push();
	if (dumpStackWanted) ls.dumpStack();
	// put method before its args
	ls.insert(- numArgs - 1);
	if (dumpStackWanted) ls.dumpStack();
	// this is a method call
	_LuaTable.push();
	if (dumpStackWanted) ls.dumpStack();
	ls.insert(- numArgs - 1);
	if (dumpStackWanted) ls.dumpStack();
	// First arg always is the instance being displayed
	if (getEnclosing())
		getEnclosing()->getDisplayedInstance()->getLuaProjection().push();
	ls.insert(- numArgs - 1);
	if (dumpStackWanted) ls.dumpStack();
	CLuaIHM::executeFunctionOnStack(*_LuaTable.getLuaState(),  numArgs + 2,  0);
	if (dumpStackWanted) ls.dumpStack();
}
void ShowStats(Serial *serial, unsigned int argc, char **argv){

	serial->put_s("== Memory Info ==\r\n");
	unsigned long heap = (unsigned long)_heap_address;
	unsigned long lastPointer = getLastPointer();
	serial->put_s("Heap address         :");
	put_uint(serial, heap);
	put_crlf(serial);
	serial->put_s("Last pointer address :");
	put_uint(serial, lastPointer);
	put_crlf(serial);
	serial->put_s("Heap size            :");
	put_uint(serial, (unsigned int)&_CONFIG_HEAP_SIZE);
	put_crlf(serial);
	serial->put_s("Estimated Usage      :");
	put_uint(serial, lastPointer - heap);
	put_crlf(serial);
	serial->put_s("== Lua Info ==\r\n");
	lua_State *L = getLua();
	lua_gc(L,LUA_GCCOLLECT,0);
	serial->put_s("Lua Top              :");
	put_int(serial, lua_gettop(L));
	put_crlf(serial);
	serial->put_s("Lua GC Count         :");
	put_int(serial, lua_gc(L,LUA_GCCOUNT,0));
	put_crlf(serial);
	serial->put_s("== Misc ==\r\n");
	serial->put_s("sizeof LoggerConfig  :");
	put_int(serial, sizeof(LoggerConfig));
	put_crlf(serial);
	serial->put_s("sizeof SampleRecord  :");
	put_int(serial, sizeof(SampleRecord));
	put_crlf(serial);
}
Esempio n. 5
0
// *********************************************************************************************************
void CLuaEventForwarder::onSelect(bool selected)
{
	//H_AUTO(R2_CLuaEventForwarder_onSelect)
	CLuaState *ls = getLua();
	if (!ls) return;
	ls->push(selected);
	executeHandler(LuaStr_onSelect, 1);
}
Esempio n. 6
0
// *********************************************************************************************************
void CLuaEventForwarder::onFocus(bool focused)
{
	//H_AUTO(R2_CLuaEventForwarder_onFocus)
	CLuaState *ls = getLua();
	if (!ls) return;
	ls->push(focused);
	executeHandler(LuaStr_onFocus, 1);
}
Esempio n. 7
0
// *********************************************************************************************************
void CLuaEventForwarder::onTargetInstancePostHrcMove(const std::string &refMakerAttr, sint32 refMakerAttrIndex)
{
	//H_AUTO(R2_CLuaEventForwarder_onTargetInstancePostHrcMove)
	CLuaState *ls = getLua();
	if (!ls) return;
	ls->push(refMakerAttr);
	ls->push((double) refMakerAttrIndex);
	executeHandler(LuaStr_onTargetInstancePostHrcMove, 2);
}
Esempio n. 8
0
// *********************************************************************************************************
void CLuaEventForwarder::onAttrModified(const std::string &attrName, sint32 index)
{
	//H_AUTO(R2_CLuaEventForwarder_onAttrModified)
	CLuaState *ls = getLua();
	if (!ls) return;
	ls->push(attrName);
	ls->push((double) index);
	executeHandler(LuaStr_onAttrModified, 2);
}
Esempio n. 9
0
int main(int argc, char *argv[]) {
    auto kampf = Kampf(enumInitType::Basic); 
    auto lua = kampf.getLua();
    
    //include scripts folder from kampf
    lua->addPath("../scripts/engine/?.lua");
    lua->loadScript("pong.lua");

    return 0;
}
Esempio n. 10
0
// *********************************************************************************************************
void CLuaEventForwarder::onTargetInstanceAttrModified(const std::string &refMakerAttr, sint32 refMakerAttrIndex, const std::string &targetAttrName, sint32 targetAttrIndex)
{
	//H_AUTO(R2_CLuaEventForwarder_onTargetInstanceAttrModified)
	CLuaState *ls = getLua();
	if (!ls) return;
	ls->push(refMakerAttr);
	ls->push((double) refMakerAttrIndex);
	ls->push(targetAttrName);
	ls->push((double) targetAttrIndex);
	executeHandler(LuaStr_onTargetInstanceAttrModified, 4);
}
void ExecLuaInterpreter(Serial *serial, unsigned int argc, char **argv)
{

    g_interactive_mode = 1;
    serial->put_s("Entering Lua Interpreter. enter 'exit' to leave");
    put_crlf(serial);

    lua_State *L = getLua();

    cmd_context *cmdContext = get_command_context();
    char * luaLine = cmdContext->lineBuffer;

    int result;
    while(1) {
        serial->put_s("> ");
        interactive_read_line(serial, luaLine, cmdContext->lineBufferSize);
        if (strcmp(luaLine,"exit") == 0) break;
        lockLua();
        lua_gc(L,LUA_GCCOLLECT,0);
        result = luaL_loadbuffer(L, luaLine, strlen(luaLine), "");
        if (0 != result) {
            serial->put_s("error: (");
            serial->put_s(lua_tostring(L,-1));
            serial->put_s(")");
            put_crlf(serial);
            lua_pop(L,1);
        } else {
            lua_pushvalue(L,-1);
            result = lua_pcall(L,0,0,0);
            if (0 != result) {
                serial->put_s("error: (");
                serial->put_s(lua_tostring(L,-1));
                serial->put_s(")");
                put_crlf(serial);
                lua_pop(L,1);
            }
            lua_pop(L,1);
        }
        unlockLua();
    }
    g_interactive_mode = 0;
}
void ShowStats(Serial *serial, unsigned int argc, char **argv)
{
    // Memory Info
    putHeader(serial, "Memory Info");

    putDataRowHeader(serial, "Total Memory");
    put_uint(serial, (unsigned int) &_CONFIG_HEAP_SIZE);
    put_crlf(serial);

    putDataRowHeader(serial, "Free Memory");
    put_uint(serial, portGetFreeHeapSize());
    put_crlf(serial);

    // LUA Info
    putHeader(serial, "Lua Info");

    //TODO: this was done for unit testing. fix when Lua runtime is part of unit testing framework
    lua_State *L = (lua_State *) getLua();
    lua_gc(L, LUA_GCCOLLECT, 0);

    putDataRowHeader(serial, "Lua Top");
    put_int(serial, lua_gettop(L));
    put_crlf(serial);

    putDataRowHeader(serial, "Lua Memory Usage (KB)");
    put_int(serial, lua_gc(L, LUA_GCCOUNT, 0));
    put_crlf(serial);

    // Misc Info
    putHeader(serial, "Misc");

    putDataRowHeader(serial, "Size of LoggerConfig");
    put_int(serial, sizeof(LoggerConfig));
    put_crlf(serial);

    putDataRowHeader(serial, "Size of ChannelSample");
    put_int(serial, sizeof(ChannelSample));
    put_crlf(serial);
}
Esempio n. 13
0
// *********************************************************************************************************
void CLuaEventForwarder::onPostHrcMove()
{
	//H_AUTO(R2_CLuaEventForwarder_onPostHrcMove)
	if (!getLua()) return;
	executeHandler(LuaStr_onPostHrcMove, 0);
}
Esempio n. 14
0
// *********************************************************************************************************
void CLuaEventForwarder::onErase()
{
	//H_AUTO(R2_CLuaEventForwarder_onErase)
	if (!getLua()) return;
	executeHandler(LuaStr_onErase, 0);
}
Esempio n. 15
0
// *********************************************************************************************************
void CLuaEventForwarder::onContinentChanged()
{
	//H_AUTO(R2_CLuaEventForwarder_onContinentChanged)
	if (!getLua()) return;
	executeHandler(LuaStr_onContinentChanged, 0);
}