diff --git a/stepmania/src/RageTypes.cpp b/stepmania/src/RageTypes.cpp new file mode 100644 index 0000000000..4cb8b99773 --- /dev/null +++ b/stepmania/src/RageTypes.cpp @@ -0,0 +1,56 @@ +#include "global.h" +#include "RageTypes.h" +#include "LuaManager.h" + +void RageColor::PushTable( lua_State *L ) const +{ + lua_newtable( L ); + int iTable = lua_gettop(L); + + lua_pushnumber( L, r ); + lua_rawseti( L, iTable, 1 ); + lua_pushnumber( L, g ); + lua_rawseti( L, iTable, 2 ); + lua_pushnumber( L, b ); + lua_rawseti( L, iTable, 3 ); + lua_pushnumber( L, a ); + lua_rawseti( L, iTable, 4 ); +} + +void RageColor::FromStack( lua_State *L, int iPos ) +{ + lua_rawgeti( L, iPos, 1 ); + r = lua_tonumber( L, -1 ); + lua_rawgeti( L, iPos, 2 ); + g = lua_tonumber( L, -1 ); + lua_rawgeti( L, iPos, 3 ); + b = lua_tonumber( L, -1 ); + lua_rawgeti( L, iPos, 4 ); + a = lua_tonumber( L, -1 ); + lua_pop( L, 4 ); +} + +/* + * Copyright (c) 2006 Glenn Maynard + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, and/or sell copies of the Software, and to permit persons to + * whom the Software is furnished to do so, provided that the above + * copyright notice(s) and this permission notice appear in all copies of + * the Software and that both the above copyright notice(s) and this + * permission notice appear in supporting documentation. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF + * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS + * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT + * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS + * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ diff --git a/stepmania/src/RageTypes.h b/stepmania/src/RageTypes.h index bcd6557d38..fe6f010b32 100644 --- a/stepmania/src/RageTypes.h +++ b/stepmania/src/RageTypes.h @@ -8,6 +8,7 @@ enum CullMode { CULL_BACK, CULL_FRONT, CULL_NONE }; enum ZTestMode { ZTEST_OFF, ZTEST_WRITE_ON_PASS, ZTEST_WRITE_ON_FAIL }; enum PolygonMode { POLYGON_FILL, POLYGON_LINE }; +struct lua_State; struct RageVector2 { @@ -154,6 +155,10 @@ public: r=1; b=1; g=1; a=1; return false; } + + void PushTable( lua_State *L ) const; + void FromStack( lua_State *L, int iPos ); + float r, g, b, a; } SM_ALIGN(16);