ScriptSystem.cpp 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. #include "Device.h"
  2. #include "ScriptSystem.h"
  3. namespace crown
  4. {
  5. // FIXME FIXME FIXME
  6. const char* ScriptSystem::BOOT_SCRIPT = "path/to/game.lua";
  7. //-----------------------------------------------------------
  8. // ScriptSystem
  9. //-----------------------------------------------------------
  10. //-----------------------------------------------------------
  11. ScriptSystem::ScriptSystem() :
  12. m_vec2_count(0),
  13. m_vec3_count(0),
  14. m_mat4_count(0),
  15. m_quat_count(0)
  16. {
  17. }
  18. //-----------------------------------------------------------
  19. Vec2& ScriptSystem::next_vec2(float nx, float ny)
  20. {
  21. uint32_t current = m_vec2_count;
  22. m_vec2_list[current].x = nx;
  23. m_vec2_list[current].y = ny;
  24. m_vec2_count++;
  25. return m_vec2_list[current];
  26. }
  27. //-----------------------------------------------------------
  28. Vec3& ScriptSystem::next_vec3(float nx, float ny, float nz)
  29. {
  30. uint32_t current = m_vec3_count;
  31. m_vec3_list[current].x = nx;
  32. m_vec3_list[current].y = ny;
  33. m_vec3_list[current].z = nz;
  34. m_vec3_count++;
  35. return m_vec3_list[current];
  36. }
  37. //-----------------------------------------------------------
  38. Mat4& ScriptSystem::next_mat4(float r1c1, float r2c1, float r3c1, float r1c2, float r2c2, float r3c2, float r1c3, float r2c3, float r3c3)
  39. {
  40. uint32_t current = m_mat4_count;
  41. m_mat4_list[current].m[0] = r1c1;
  42. m_mat4_list[current].m[1] = r2c1;
  43. m_mat4_list[current].m[2] = r3c1;
  44. m_mat4_list[current].m[3] = 0;
  45. m_mat4_list[current].m[4] = r1c2;
  46. m_mat4_list[current].m[5] = r2c2;
  47. m_mat4_list[current].m[6] = r3c2;
  48. m_mat4_list[current].m[7] = 0;
  49. m_mat4_list[current].m[8] = r1c3;
  50. m_mat4_list[current].m[9] = r2c3;
  51. m_mat4_list[current].m[10] = r3c3;
  52. m_mat4_list[current].m[11] = 0;
  53. m_mat4_list[current].m[12] = 0;
  54. m_mat4_list[current].m[13] = 0;
  55. m_mat4_list[current].m[14] = 0;
  56. m_mat4_list[current].m[15] = 1;
  57. m_mat4_count++;
  58. return m_mat4_list[current];
  59. }
  60. //-----------------------------------------------------------
  61. Quat& ScriptSystem::next_quat(float angle, const Vec3& v)
  62. {
  63. uint32_t current = m_quat_count;
  64. m_quat_list[current].w = angle;
  65. m_quat_list[current].v = v;
  66. m_quat_count++;
  67. return m_quat_list[current];
  68. }
  69. //-----------------------------------------------------------
  70. uint32_t ScriptSystem::vec2_used()
  71. {
  72. return m_vec2_count;
  73. }
  74. //-----------------------------------------------------------
  75. uint32_t ScriptSystem::vec3_used()
  76. {
  77. return m_vec3_count;
  78. }
  79. //-----------------------------------------------------------
  80. uint32_t ScriptSystem::mat4_used()
  81. {
  82. return m_mat4_count;
  83. }
  84. //-----------------------------------------------------------
  85. uint32_t ScriptSystem::quat_used()
  86. {
  87. return m_quat_count;
  88. }
  89. //-----------------------------------------------------------
  90. // Lua State
  91. //-----------------------------------------------------------
  92. //-----------------------------------------------------------
  93. // Extern C
  94. //-----------------------------------------------------------
  95. //-----------------------------------------------------------
  96. uint32_t script_system_vec2_used()
  97. {
  98. return device()->script_system()->vec2_used();
  99. }
  100. //-----------------------------------------------------------
  101. uint32_t script_system_vec3_used()
  102. {
  103. return device()->script_system()->vec3_used();
  104. }
  105. //-----------------------------------------------------------
  106. uint32_t script_system_mat4_used()
  107. {
  108. return device()->script_system()->mat4_used();
  109. }
  110. //-----------------------------------------------------------
  111. uint32_t script_system_quat_used()
  112. {
  113. return device()->script_system()->quat_used();
  114. }
  115. } // namespace crown