Utilities.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include "precompiled.h"
  2. #include "Utilities.h"
  3. namespace Rocket {
  4. namespace Core {
  5. namespace Lua {
  6. void PushVariant(lua_State* L, Variant* var)
  7. {
  8. if(var == NULL)
  9. {
  10. lua_pushnil(L);
  11. return;
  12. }
  13. Variant::Type vartype = var->GetType();
  14. switch(vartype)
  15. {
  16. case Variant::BYTE:
  17. case Variant::CHAR:
  18. case Variant::INT:
  19. lua_pushinteger(L,var->Get<int>());
  20. break;
  21. case Variant::FLOAT:
  22. lua_pushnumber(L,var->Get<float>());
  23. break;
  24. case Variant::COLOURB:
  25. LuaType<Colourb>::push(L,new Colourb(var->Get<Colourb>()),true);
  26. break;
  27. case Variant::COLOURF:
  28. LuaType<Colourf>::push(L,new Colourf(var->Get<Colourf>()),true);
  29. break;
  30. case Variant::STRING:
  31. lua_pushstring(L,var->Get<String>().CString());
  32. break;
  33. case Variant::VECTOR2:
  34. //according to Variant.inl, it is going to be a Vector2f
  35. LuaType<Vector2f>::push(L,new Vector2f(var->Get<Vector2f>()),true);
  36. break;
  37. case Variant::VOIDPTR:
  38. lua_pushlightuserdata(L,var->Get<void*>());
  39. break;
  40. default:
  41. lua_pushnil(L);
  42. break;
  43. }
  44. }
  45. }
  46. }
  47. }