2011-08-07 06:21:52 -06:00
|
|
|
#include "lua_VersionInfo.h"
|
2011-08-08 18:54:33 -06:00
|
|
|
|
2012-02-22 15:21:50 -07:00
|
|
|
#define VI_FUNC(name) int lua_VI_ ## name (lua_State *L){\
|
|
|
|
lua::state s(L);\
|
|
|
|
DFHack::VersionInfo* vif=DFHack::Core::getInstance().vinfo;
|
|
|
|
#define END_VI_FUNC }
|
|
|
|
|
|
|
|
VI_FUNC(getBase)
|
|
|
|
//int lua_VI_getBase(lua_State *L)
|
|
|
|
s.push(vif->getBase());
|
2011-08-08 18:54:33 -06:00
|
|
|
return 1;
|
2012-02-22 15:21:50 -07:00
|
|
|
END_VI_FUNC
|
|
|
|
|
|
|
|
VI_FUNC(setBase)
|
|
|
|
uint32_t val=s.as<uint32_t>(1);
|
|
|
|
vif->setBase(val);
|
|
|
|
return 0;
|
|
|
|
END_VI_FUNC
|
|
|
|
VI_FUNC(rebaseTo)
|
|
|
|
uint32_t val=s.as<uint32_t>(1);
|
|
|
|
vif->rebaseTo(val);
|
|
|
|
return 0;
|
|
|
|
END_VI_FUNC
|
|
|
|
VI_FUNC(addMD5)
|
|
|
|
std::string val=s.as<std::string>(1);
|
|
|
|
vif->addMD5(val);
|
|
|
|
return 0;
|
|
|
|
END_VI_FUNC
|
|
|
|
VI_FUNC(hasMD5)
|
|
|
|
std::string val=s.as<std::string>(1);
|
|
|
|
s.push(vif->hasMD5(val));
|
2011-08-08 18:54:33 -06:00
|
|
|
return 1;
|
2012-02-22 15:21:50 -07:00
|
|
|
END_VI_FUNC
|
|
|
|
|
|
|
|
VI_FUNC(addPE)
|
|
|
|
uint32_t val=s.as<uint32_t>(1);
|
|
|
|
vif->addPE(val);
|
|
|
|
return 0;
|
|
|
|
END_VI_FUNC
|
2011-12-24 07:00:43 -07:00
|
|
|
|
2012-02-22 15:21:50 -07:00
|
|
|
VI_FUNC(hasPE)
|
|
|
|
uint32_t val=s.as<uint32_t>(1);
|
|
|
|
s.push(vif->hasPE(val));
|
2011-12-24 07:00:43 -07:00
|
|
|
return 1;
|
2012-02-22 15:21:50 -07:00
|
|
|
END_VI_FUNC
|
|
|
|
|
|
|
|
VI_FUNC(setVersion)
|
|
|
|
std::string val=s.as<std::string>(1);
|
|
|
|
vif->setVersion(val);
|
|
|
|
return 0;
|
|
|
|
END_VI_FUNC
|
2011-12-24 07:00:43 -07:00
|
|
|
|
2012-02-22 15:21:50 -07:00
|
|
|
VI_FUNC(getVersion)
|
|
|
|
s.push(vif->getVersion());
|
|
|
|
return 1;
|
|
|
|
END_VI_FUNC
|
2011-08-08 18:54:33 -06:00
|
|
|
|
2012-02-22 15:21:50 -07:00
|
|
|
VI_FUNC(setAddress)
|
|
|
|
std::string key=s.as<std::string>(1);
|
|
|
|
uint32_t val=s.as<uint32_t>(2);
|
|
|
|
vif->setAddress(key,val);
|
|
|
|
return 0;
|
|
|
|
END_VI_FUNC
|
2011-08-08 18:54:33 -06:00
|
|
|
|
2012-02-22 15:21:50 -07:00
|
|
|
VI_FUNC(getAddress)
|
|
|
|
std::string key=s.as<std::string>(1);
|
|
|
|
|
|
|
|
s.push(vif->getAddress(key));
|
2011-08-08 18:54:33 -06:00
|
|
|
return 1;
|
2012-02-22 15:21:50 -07:00
|
|
|
END_VI_FUNC
|
|
|
|
|
|
|
|
VI_FUNC(setOS)
|
|
|
|
unsigned os=s.as<unsigned>(1);
|
|
|
|
vif->setOS((DFHack::OSType)os);
|
|
|
|
return 0;
|
|
|
|
END_VI_FUNC
|
2011-08-08 18:54:33 -06:00
|
|
|
|
2012-02-22 15:21:50 -07:00
|
|
|
VI_FUNC(getOS)
|
|
|
|
s.push(vif->getOS());
|
|
|
|
return 1;
|
|
|
|
END_VI_FUNC
|
|
|
|
#undef VI_FUNC
|
|
|
|
#undef END_VI_FUNC
|
|
|
|
#define VI_FUNC(name) {#name,lua_VI_ ## name}
|
2011-08-08 17:46:32 -06:00
|
|
|
const luaL_Reg lua_vinfo_func[]=
|
2011-08-08 18:54:33 -06:00
|
|
|
{
|
2012-02-22 15:21:50 -07:00
|
|
|
VI_FUNC(getBase),
|
|
|
|
VI_FUNC(setBase),
|
|
|
|
VI_FUNC(rebaseTo),
|
|
|
|
VI_FUNC(addMD5),
|
|
|
|
VI_FUNC(hasMD5),
|
|
|
|
VI_FUNC(addPE),
|
|
|
|
VI_FUNC(hasPE),
|
|
|
|
VI_FUNC(setVersion),
|
|
|
|
VI_FUNC(getVersion),
|
|
|
|
VI_FUNC(setAddress),
|
|
|
|
VI_FUNC(getAddress),
|
|
|
|
VI_FUNC(setOS),
|
2012-03-27 09:23:11 -06:00
|
|
|
VI_FUNC(getOS),
|
|
|
|
{NULL,NULL}
|
2011-08-08 18:54:33 -06:00
|
|
|
};
|
2012-02-22 15:21:50 -07:00
|
|
|
#undef VI_FUNC
|
2011-08-08 18:54:33 -06:00
|
|
|
void lua::RegisterVersionInfo(lua::state &st)
|
|
|
|
{
|
2012-02-22 15:21:50 -07:00
|
|
|
|
2011-08-08 17:46:32 -06:00
|
|
|
st.getglobal("VersionInfo");
|
|
|
|
if(st.is<lua::nil>())
|
|
|
|
{
|
|
|
|
st.pop();
|
|
|
|
st.newtable();
|
|
|
|
}
|
|
|
|
|
|
|
|
lua::RegFunctionsLocal(st, lua_vinfo_func);
|
2011-08-08 18:54:33 -06:00
|
|
|
st.setglobal("VersionInfo");
|
|
|
|
}
|