/src/SDLx/Controller/State.xs

http://github.com/PerlGameDev/SDL · Unknown · 99 lines · 85 code · 14 blank · 0 comment · 0 complexity · 6a455ad34887e7b785fcc7a8e1983e6b MD5 · raw file

  1. #include "EXTERN.h"
  2. #include "perl.h"
  3. #include "XSUB.h"
  4. #include "ppport.h"
  5. #include "defines.h"
  6. #include "helper.h"
  7. #ifndef aTHX_
  8. #define aTHX_
  9. #endif
  10. #include "SDLx/Controller/Interface.h"
  11. MODULE = SDLx::Controller::State PACKAGE = SDLx::Controller::State PREFIX = state_
  12. SDLx_State *
  13. state_new( CLASS, ... )
  14. char * CLASS
  15. CODE:
  16. RETVAL = (SDLx_State * ) safemalloc( sizeof(SDLx_State) );
  17. if(items > 2)
  18. RETVAL->x = SvIV(ST(2));
  19. if(items > 3)
  20. RETVAL->y = SvIV(ST(3));
  21. if(items > 4)
  22. RETVAL->v_x = SvIV(ST(4));
  23. if(items > 5)
  24. RETVAL->v_y = SvIV(ST(5));
  25. if(items > 6)
  26. RETVAL->rotation = SvIV(ST(6));
  27. if(items > 7)
  28. RETVAL->ang_v = SvIV(ST(7));
  29. OUTPUT:
  30. RETVAL
  31. float
  32. state_x(state, ...)
  33. SDLx_State * state
  34. CODE:
  35. if (items > 1 ) state->x = SvNV(ST(1));
  36. RETVAL = state->x;
  37. OUTPUT:
  38. RETVAL
  39. float
  40. state_y(state, ...)
  41. SDLx_State * state
  42. CODE:
  43. if (items > 1 ) state->y = SvNV(ST(1));
  44. RETVAL = state->y;
  45. OUTPUT:
  46. RETVAL
  47. float
  48. state_v_x(state, ...)
  49. SDLx_State * state
  50. CODE:
  51. if (items > 1 ) state->v_x = SvNV(ST(1));
  52. RETVAL = state->v_x;
  53. OUTPUT:
  54. RETVAL
  55. float
  56. state_v_y(state, ...)
  57. SDLx_State * state
  58. CODE:
  59. if (items > 1 ) state->v_y = SvNV(ST(1));
  60. RETVAL = state->v_y;
  61. OUTPUT:
  62. RETVAL
  63. float
  64. state_rotation(state, ...)
  65. SDLx_State * state
  66. CODE:
  67. if (items > 1 ) state->rotation = SvNV((ST(1)));
  68. RETVAL = state->rotation;
  69. OUTPUT:
  70. RETVAL
  71. float
  72. state_ang_v(state, ...)
  73. SDLx_State * state
  74. CODE:
  75. if (items > 1 ) state->ang_v = SvNV((ST(1)));
  76. RETVAL = state->ang_v;
  77. OUTPUT:
  78. RETVAL
  79. void
  80. state_DESTROY( bag )
  81. SV *bag
  82. CODE:
  83. SDLx_State *obj = (SDLx_State *)bag2obj(bag);
  84. if (obj->owned == 0)
  85. objDESTROY(bag, safefree);