コード例 #1
0
ファイル: ShipFlavour.cpp プロジェクト: Metamartian/pioneer
static inline void _get_colour(lua_State *l, const char *key, float rgba[4])
{
	lua_pushstring(l, key);
	lua_gettable(l, -2);
	_get_number(l, "r", rgba[0]);
	_get_number(l, "g", rgba[1]);
	_get_number(l, "b", rgba[2]);
	_get_number(l, "a", rgba[3]);
	lua_pop(l, 1);
}
コード例 #2
0
ファイル: Color.cpp プロジェクト: irigi/pioneer
Color4ub Color4ub::FromLuaTable(lua_State *l, int idx)
{
	const int table = lua_absindex(l, idx);
	assert(lua_istable(l, table));

	LUA_DEBUG_START(l);

	float r, g, b, a;
	_get_number(l, table, "r", r);
	_get_number(l, table, "g", g);
	_get_number(l, table, "b", b);
	if (!_get_number(l, table, "a", a)) a = 1.0f;

	LUA_DEBUG_END(l, 0);

	return Color4ub(r*255, g*255, b*255, a*255);
}
コード例 #3
0
ファイル: Color.cpp プロジェクト: Mike-Cowley/pioneer
Color4f Color4f::FromLuaTable(lua_State *l, int idx)
{
	const int table = lua_absindex(l, idx);
	assert(lua_istable(l, table));

	LUA_DEBUG_START(l);

	float r, g, b, a;
	_get_number(l, table, "r", r);
	_get_number(l, table, "g", g);
	_get_number(l, table, "b", b);
	_get_number(l, table, "a", a);

	LUA_DEBUG_END(l, 0);

	return Color4f(r, g, b, a);
}
コード例 #4
0
ファイル: ShipFlavour.cpp プロジェクト: Metamartian/pioneer
ShipFlavour ShipFlavour::FromLuaTable(lua_State *l, int idx) {
	const int table = lua_absindex(l, idx);
	assert(lua_istable(l, table));

	LUA_DEBUG_START(l);

	lua_pushvalue(l, table);

	ShipFlavour f;

	_get_string(l, "id", f.id);
	_get_string(l, "regId", f.regid);

	float money;
	_get_number(l, "price", money);
	f.price = money*100.0;

	lua_getfield(l, -1, "primaryColour");
	_get_colour(l, "diffuse", f.primaryColor.diffuse);
	_get_colour(l, "specular", f.primaryColor.specular);
	_get_colour(l, "emissive", f.primaryColor.emissive);
	_get_number(l, "shininess", f.primaryColor.shininess);
	lua_pop(l, 1);

	lua_getfield(l, -1, "secondaryColour");
	_get_colour(l, "diffuse", f.secondaryColor.diffuse);
	_get_colour(l, "specular", f.secondaryColor.specular);
	_get_colour(l, "emissive", f.secondaryColor.emissive);
	_get_number(l, "shininess", f.secondaryColor.shininess);
	lua_pop(l, 1);

	lua_pop(l, 1);

	LUA_DEBUG_END(l, 0);

	return f;
}
コード例 #5
0
ファイル: ShipFlavour.cpp プロジェクト: HeadHunterEG/pioneer
ShipFlavour ShipFlavour::FromLuaTable(lua_State *l, int idx) {
	const int table = lua_absindex(l, idx);
	assert(lua_istable(l, table));

	LUA_DEBUG_START(l);

	lua_pushvalue(l, table);

	ShipFlavour f;

	_get_string(l, "id", f.id);
	_get_string(l, "regId", f.regid);

	float money;
	_get_number(l, "price", money);
	f.price = money*100.0;

	lua_pop(l, 1);

	LUA_DEBUG_END(l, 0);

	return f;
}