Nenhuma descrição

movement_execution.c 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. #include <pokeagb/pokeagb.h>
  2. typedef bool (*MovementCallback)(struct NpcState *npc, struct Object *obj);
  3. #define an_stop ((MovementCallback)0x08067935)
  4. bool movement_frame_set_general(struct NpcState *npc, struct Object *obj, u8 frame) {
  5. obj->anim_delay |= 0x40;
  6. obj->priv[2] = 1;
  7. npc_set_direction(npc, 1);
  8. npc_coords_shift_still(npc);
  9. obj_npc_animation_step(npc, obj, frame);
  10. return true;
  11. }
  12. bool an_fs_zero(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 0); }
  13. bool an_fs_one(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 1); }
  14. bool an_fs_two(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 2); }
  15. bool an_fs_three(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 3); }
  16. bool an_fs_four(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 4); }
  17. bool an_fs_five(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 5); }
  18. bool an_fs_six(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 6); }
  19. bool an_fs_seven(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 7); }
  20. bool an_fs_eight(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 8); }
  21. bool an_fs_nine(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 9); }
  22. bool an_fs_ten(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 10); }
  23. bool an_fs_eleven(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 11); }
  24. bool an_fs_twelve(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 12); }
  25. bool an_fs_thirteen(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 13); }
  26. bool an_fs_fourteen(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 14); }
  27. bool an_fs_fifteen(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 15); }
  28. bool an_fs_sixteen(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 16); }
  29. bool an_fs_seventeen(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 17); }
  30. bool an_fs_eighteen(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 18); }
  31. bool an_fs_nineteen(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 19); }
  32. bool an_fs_twenty(struct NpcState *npc, struct Object *obj) { return movement_frame_set_general(npc, obj, 20); }
  33. const MovementCallback mv_set_frame_zero[] = {an_fs_zero, an_stop};
  34. const MovementCallback mv_set_frame_one[] = {an_fs_one, an_stop};
  35. const MovementCallback mv_set_frame_two[] = {an_fs_two, an_stop};
  36. const MovementCallback mv_set_frame_three[] = {an_fs_three, an_stop};
  37. const MovementCallback mv_set_frame_four[] = {an_fs_four, an_stop};
  38. const MovementCallback mv_set_frame_five[] = {an_fs_five, an_stop};
  39. const MovementCallback mv_set_frame_six[] = {an_fs_six, an_stop};
  40. const MovementCallback mv_set_frame_seven[] = {an_fs_seven, an_stop};
  41. const MovementCallback mv_set_frame_eight[] = {an_fs_eight, an_stop};
  42. const MovementCallback mv_set_frame_nine[] = {an_fs_nine, an_stop};
  43. const MovementCallback mv_set_frame_ten[] = {an_fs_ten, an_stop};
  44. const MovementCallback mv_set_frame_eleven[] = {an_fs_eleven, an_stop};
  45. const MovementCallback mv_set_frame_twelve[] = {an_fs_twelve, an_stop};
  46. const MovementCallback mv_set_frame_thirteen[] = {an_fs_thirteen, an_stop};
  47. const MovementCallback mv_set_frame_fourteen[] = {an_fs_fourteen, an_stop};
  48. const MovementCallback mv_set_frame_fifteen[] = {an_fs_fifteen, an_stop};
  49. const MovementCallback mv_set_frame_sixteen[] = {an_fs_sixteen, an_stop};
  50. const MovementCallback mv_set_frame_seventeen[] = {an_fs_seventeen, an_stop};
  51. const MovementCallback mv_set_frame_eighteen[] = {an_fs_eighteen, an_stop};
  52. const MovementCallback mv_set_frame_nineteen[] = {an_fs_nineteen, an_stop};
  53. const MovementCallback mv_set_frame_twenty[] = {an_fs_twenty, an_stop};
  54. const MovementCallback *movement_animations[] = {
  55. (MovementCallback *)0x083A6864,
  56. (MovementCallback *)0x083A686C,
  57. (MovementCallback *)0x083A6874,
  58. (MovementCallback *)0x083A687C,
  59. (MovementCallback *)0x083A6A30,
  60. (MovementCallback *)0x083A6A38,
  61. (MovementCallback *)0x083A6A40,
  62. (MovementCallback *)0x083A6A48,
  63. (MovementCallback *)0x083A68C8,
  64. (MovementCallback *)0x083A68D4,
  65. (MovementCallback *)0x083A68E0,
  66. (MovementCallback *)0x083A68EC,
  67. (MovementCallback *)0x083A6904,
  68. (MovementCallback *)0x083A68F8,
  69. (MovementCallback *)0x083A6910,
  70. (MovementCallback *)0x083A691C,
  71. (MovementCallback *)0x083A6928,
  72. (MovementCallback *)0x083A6934,
  73. (MovementCallback *)0x083A6940,
  74. (MovementCallback *)0x083A694C,
  75. (MovementCallback *)0x083A6964,
  76. (MovementCallback *)0x083A6970,
  77. (MovementCallback *)0x083A697C,
  78. (MovementCallback *)0x083A6988,
  79. (MovementCallback *)0x083A6994,
  80. (MovementCallback *)0x083A69A0,
  81. (MovementCallback *)0x083A69AC,
  82. (MovementCallback *)0x083A69B8,
  83. (MovementCallback *)0x083A69C4,
  84. (MovementCallback *)0x083A69D0,
  85. (MovementCallback *)0x083A69DC,
  86. (MovementCallback *)0x083A69E8,
  87. (MovementCallback *)0x083A69F4,
  88. (MovementCallback *)0x083A6A50,
  89. (MovementCallback *)0x083A6A5C,
  90. (MovementCallback *)0x083A6A68,
  91. (MovementCallback *)0x083A6A74,
  92. (MovementCallback *)0x083A6A80,
  93. (MovementCallback *)0x083A6A8C,
  94. (MovementCallback *)0x083A6A98,
  95. (MovementCallback *)0x083A6AA4,
  96. (MovementCallback *)0x083A6AB0,
  97. (MovementCallback *)0x083A6ABC,
  98. (MovementCallback *)0x083A6AC8,
  99. (MovementCallback *)0x083A6AD4,
  100. (MovementCallback *)0x083A6AE0,
  101. (MovementCallback *)0x083A6AEC,
  102. (MovementCallback *)0x083A6AF8,
  103. (MovementCallback *)0x083A6B04,
  104. (MovementCallback *)0x083A6B10,
  105. (MovementCallback *)0x083A6B1C,
  106. (MovementCallback *)0x083A6B28,
  107. (MovementCallback *)0x083A6B34,
  108. (MovementCallback *)0x083A6B40,
  109. (MovementCallback *)0x083A6B4C,
  110. (MovementCallback *)0x083A6B58,
  111. (MovementCallback *)0x083A6B64,
  112. (MovementCallback *)0x083A6B70,
  113. (MovementCallback *)0x083A6B7C,
  114. (MovementCallback *)0x083A6B88,
  115. (MovementCallback *)0x083A6B94,
  116. (MovementCallback *)0x083A6BA0,
  117. (MovementCallback *)0x083A6BAC,
  118. (MovementCallback *)0x083A6BB8,
  119. (MovementCallback *)0x083A6BC4,
  120. (MovementCallback *)0x083A6BD0,
  121. (MovementCallback *)0x083A6BDC,
  122. (MovementCallback *)0x083A6BE8,
  123. (MovementCallback *)0x083A6BF4,
  124. (MovementCallback *)0x083A6C00,
  125. (MovementCallback *)0x083A6C0C,
  126. (MovementCallback *)0x083A6C18,
  127. (MovementCallback *)0x083A6C24,
  128. (MovementCallback *)0x083A6C30,
  129. (MovementCallback *)0x083A6C6C,
  130. (MovementCallback *)0x083A6C74,
  131. (MovementCallback *)0x083A6C7C,
  132. (MovementCallback *)0x083A6C84,
  133. (MovementCallback *)0x083A6C8C,
  134. (MovementCallback *)0x083A6C98,
  135. (MovementCallback *)0x083A6CA4,
  136. (MovementCallback *)0x083A6CB0,
  137. (MovementCallback *)0x083A6CBC,
  138. (MovementCallback *)0x083A6CC8,
  139. (MovementCallback *)0x083A6CD4,
  140. (MovementCallback *)0x083A6CE0,
  141. (MovementCallback *)0x083A6CEC,
  142. (MovementCallback *)0x083A6CF8,
  143. (MovementCallback *)0x083A6D04,
  144. (MovementCallback *)0x083A6D10,
  145. (MovementCallback *)0x083A6D1C,
  146. (MovementCallback *)0x083A6D24,
  147. (MovementCallback *)0x083A6D30,
  148. (MovementCallback *)0x083A6D38,
  149. (MovementCallback *)0x083A6D40,
  150. (MovementCallback *)0x083A6D48,
  151. (MovementCallback *)0x083A6D50,
  152. (MovementCallback *)0x083A6D58,
  153. (MovementCallback *)0x083A6D60,
  154. (MovementCallback *)0x083A6D68,
  155. (MovementCallback *)0x083A6D70,
  156. (MovementCallback *)0x083A6D78,
  157. (MovementCallback *)0x083A6D80,
  158. (MovementCallback *)0x083A6D88,
  159. (MovementCallback *)0x083A6D94,
  160. (MovementCallback *)0x083A6DA4,
  161. (MovementCallback *)0x083A6DB4,
  162. (MovementCallback *)0x083A6DBC,
  163. (MovementCallback *)0x083A6DC4,
  164. (MovementCallback *)0x083A6DCC,
  165. (MovementCallback *)0x083A6DD4,
  166. (MovementCallback *)0x083A6DE0,
  167. (MovementCallback *)0x083A6DEC,
  168. (MovementCallback *)0x083A6DF4,
  169. (MovementCallback *)0x083A6DFC,
  170. (MovementCallback *)0x083A6E04,
  171. (MovementCallback *)0x083A6E0C,
  172. (MovementCallback *)0x083A6E18,
  173. (MovementCallback *)0x083A6E24,
  174. (MovementCallback *)0x083A6E30,
  175. (MovementCallback *)0x083A6E3C,
  176. (MovementCallback *)0x083A6E48,
  177. (MovementCallback *)0x083A6E54,
  178. (MovementCallback *)0x083A6E60,
  179. (MovementCallback *)0x083A6E9C,
  180. (MovementCallback *)0x083A6EA8,
  181. (MovementCallback *)0x083A6EB4,
  182. (MovementCallback *)0x083A6EC0,
  183. (MovementCallback *)0x083A6ECC,
  184. (MovementCallback *)0x083A6ED8,
  185. (MovementCallback *)0x083A6EE4,
  186. (MovementCallback *)0x083A6EF0,
  187. (MovementCallback *)0x083A6EFC,
  188. (MovementCallback *)0x083A6F08,
  189. (MovementCallback *)0x083A6F14,
  190. (MovementCallback *)0x083A6F20,
  191. (MovementCallback *)0x083A6F2C,
  192. (MovementCallback *)0x083A6F38,
  193. (MovementCallback *)0x083A6F44,
  194. (MovementCallback *)0x083A6F50,
  195. (MovementCallback *)0x083A6F5C,
  196. (MovementCallback *)0x083A6F68,
  197. (MovementCallback *)0x083A6F74,
  198. (MovementCallback *)0x083A6F80,
  199. (MovementCallback *)0x083A6F8C,
  200. (MovementCallback *)0x083A6F98,
  201. (MovementCallback *)0x083A6FA4,
  202. (MovementCallback *)0x083A6FB0,
  203. (MovementCallback *)0x083A6FBC,
  204. (MovementCallback *)0x083A6FC8,
  205. (MovementCallback *)0x083A6FD4,
  206. (MovementCallback *)0x083A6FE0,
  207. (MovementCallback *)0x083A6FEC,
  208. (MovementCallback *)0x083A6FF4,
  209. (MovementCallback *)0x083A6FFC,
  210. (MovementCallback *)0x083A6898,
  211. (MovementCallback *)0x083A68A4,
  212. (MovementCallback *)0x083A68B0,
  213. (MovementCallback *)0x083A68BC,
  214. (MovementCallback *)0x083A7004,
  215. (MovementCallback *)0x083A6A00,
  216. (MovementCallback *)0x083A6A0C,
  217. (MovementCallback *)0x083A6A18,
  218. (MovementCallback *)0x083A6A24,
  219. (MovementCallback *)0x083A700C,
  220. (MovementCallback *)0x083A7018,
  221. (MovementCallback *)0x083A6C3C,
  222. (MovementCallback *)0x083A6C48,
  223. (MovementCallback *)0x083A6C54,
  224. (MovementCallback *)0x083A6C60,
  225. mv_set_frame_zero,
  226. mv_set_frame_one,
  227. mv_set_frame_two,
  228. mv_set_frame_three,
  229. mv_set_frame_four,
  230. mv_set_frame_five,
  231. mv_set_frame_six,
  232. mv_set_frame_seven,
  233. mv_set_frame_eight,
  234. mv_set_frame_nine,
  235. mv_set_frame_ten,
  236. mv_set_frame_eleven,
  237. mv_set_frame_twelve,
  238. mv_set_frame_thirteen,
  239. mv_set_frame_fourteen,
  240. mv_set_frame_fifteen,
  241. mv_set_frame_sixteen,
  242. mv_set_frame_seventeen,
  243. mv_set_frame_eighteen,
  244. mv_set_frame_nineteen,
  245. mv_set_frame_twenty,
  246. };