Beispiel #1
0
void lua::RegisterProcess(lua::state &st,DFHack::Process *p)
{
	st.getglobal("Process");
	if(st.is<lua::nil>())
	{
		st.pop();
		st.newtable();
	}

	st.pushlightuserdata(p);
	st.setfield("__pointer");
	
	lua::RegFunctionsLocal(st, lua_process_func);

	st.setglobal("Process");
}
Beispiel #2
0
void lua::RegCommon(lua::state &L)
{
    L.newtable();
    //L.push(&GetOffset);
    lua_pushcfunction(L,&GetOffset);
    L.setfield("get");
    lua_pushcfunction(L,&GetOffset2);
    L.setfield("getEx");
    lua_pushcfunction(L,&Find);
    L.setfield("find");
    lua_pushcfunction(L,&NewOffset);
    L.setfield("new");
    lua_pushcfunction(L,&NewLazyOffset);
    L.setfield("newlazy");
    lua_pushcfunction(L,&GetBase);
    L.setfield("base");
    lua_pushcfunction(L,&Save);
    L.setfield("save");
    lua_pushcfunction(L,&GetVecs);
    L.setfield("getvectors");
    lua_pushcfunction(L,&GetCalls);
    L.setfield("getcalls");
    L.setglobal("offsets");

    //find functionality...
    /*
        #define EOL			0x100
        #define ANYBYTE		0x101
        //#define FF_OR_00	0x102				// deprecated
        #define HERE		0x103
        #define EITHER		0x104
        #define SKIP_UP_TO	0x105
        #define RANGE_LO	0x106				// deprecated
        #define RANGE_HI	0x107				// deprecated
        #define DWORD_		0x108
        #define	ANYDWORD	0x109
        #define ADDRESS		0x10A
        #define	BYTERANGE	0x10B
        #define DWORDRANGE	0x10C
        #define JZ			0x174
        #define JNZ			0x175
        #define JCC			0x170
        #define CALL		0x1E8
        #define JUMP		0x1E9
    */
    L.push(EOL);
    L.setglobal("EOL");
    L.push(ANYBYTE);
    L.setglobal("ANYBYTE");
    L.push(HERE);
    L.setglobal("HERE");
    L.push(EITHER);
    L.setglobal("EITHER");
    L.push(SKIP_UP_TO);
    L.setglobal("SKIP_UP_TO");
    L.push(DWORD_);
    L.setglobal("DWORD_");
    L.push(ANYDWORD);
    L.setglobal("ANYDWORD");
    L.push(ADDRESS);
    L.setglobal("ADDRESS");
    L.push(BYTERANGE);
    L.setglobal("BYTERANGE");
    L.push(DWORDRANGE);
    L.setglobal("DWORDRANGE");
    L.push(JZ);
    L.setglobal("JZ");
    L.push(JNZ);
    L.setglobal("JNZ");
    L.push(JCC);
    L.setglobal("JCC");
    L.push(CALL);
    L.setglobal("CALL");
    L.push(JUMP);
    L.setglobal("JUMP");
    luaopen_bit(L);

}