暫無描述

language.h 24KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095
  1. #ifndef SCRIPT_LANG_H_
  2. #define SCRIPT_LANG_H_
  3. #include <config/core.h>
  4. #include <script/movement.h>
  5. #include <script/mugshot.h>
  6. #include <script/battlescreen.h>
  7. #include <script_constant.h> /*TODO: REMOVE ONCE THIS IS DEALT WITH*/
  8. @@ Costum Specials
  9. .equ SP_BATCHMAPTILE, 0x7
  10. @@ Compare operands
  11. .equ B_LT, 0x0
  12. .equ B_EQ, 0x1
  13. .equ B_GT, 0x2
  14. .equ B_LE, 0x3
  15. .equ B_GE, 0x4
  16. .equ B_NE, 0x5
  17. @@ Important flags
  18. .equ FLAG_PKMN_MENU, 0x828
  19. .equ FLAG_POKDEX, 0x829
  20. .equ FLAG_RUNNING_SHOES, 0x82F
  21. .equ FLAG_ORDEN_1, 0x820
  22. .equ FLAG_ORDEN_2, 0x821
  23. .equ FLAG_ORDEN_3, 0x822
  24. .equ FLAG_ORDEN_4, 0x823
  25. .equ FLAG_ORDEN_5, 0x824
  26. .equ FLAG_ORDEN_6, 0x825
  27. .equ FLAG_ORDEN_7, 0x826
  28. .equ FLAG_ORDEN_8, 0x827
  29. @@ LED NAMES
  30. .equ LED_CARUN_CITY_LINKS, 0x1
  31. .equ LED_ROUTE_2, 0x2
  32. .equ LED_ROUTE_3, 0x3
  33. .equ LED_URBANIA_CITY_LINKS, 0x4
  34. .equ LED_ROUTE_5, 0x5
  35. .equ LED_ROUTE_6, 0x6
  36. .equ LED_CARUN_CITY_RECHTS, 0x7
  37. .equ LED_URBANIA_CITY_RECHTS, 0x8
  38. @@ Flag operands
  39. .equ B_T, 0x0
  40. .equ B_F, 0x1
  41. @@ callstd alias
  42. .equ ITEM_OBTAIN, 0x0
  43. .equ ITEM_FIND, 0x1
  44. .equ MSG_FACE, 0x2
  45. .equ MSG_SIGN, 0x3
  46. .equ MSG_KEYOPEN, 0x4
  47. .equ MSG_YES_NO, 0x5
  48. .equ MSG_STD, 0x6
  49. @@ Definition
  50. .equ MUGFACE_LEFT, 0x0
  51. .equ MUGFACE_RIGHT, 0x1
  52. @@ Effect
  53. .equ EFFECT_NORMAL, 0x0
  54. .equ EFFECT_GREY, 0x1
  55. .equ EFFECT_SERPIA, 0x2
  56. @@@@@@@@@@@@@@@@@ Macro
  57. @@ Custom commands
  58. .macro batchmaptilefromto batchmaptile_tiles_from:req batchmaptile_tiles_to:req batchmaptile_kollision_from:req batchmaptile_kollision_to:req
  59. setvar 0x8000 \batchmaptile_tiles_from
  60. setvar 0x8001 \batchmaptile_tiles_to
  61. setvar 0x8002 \batchmaptile_kollision_from
  62. setvar 0x8003 \batchmaptile_kollision_to
  63. setvar 0x5006 SP_BATCHMAPTILE
  64. special 0x68
  65. .endm
  66. .macro batchmaptiletofrom batchmaptile_tiles_from:req batchmaptile_tiles_to:req batchmaptile_kollision_from:req batchmaptile_kollision_to:req
  67. setvar 0x8001 \batchmaptile_tiles_from
  68. setvar 0x8002 \batchmaptile_tiles_to
  69. setvar 0x8003 \batchmaptile_kollision_from
  70. setvar 0x8002 \batchmaptile_kollision_to
  71. setvar 0x5006 SP_BATCHMAPTILE
  72. special 0x68
  73. .endm
  74. .macro sethiddenflags
  75. call sethiddenflagsall
  76. .endm
  77. .macro seteffect seteffect_effect_id:req
  78. writebytetooffset \seteffect_effect_id 0x02036E28
  79. .endm
  80. .macro setecutscene
  81. writebytetooffset 0x80 0x4000044
  82. writebytetooffset 0x20 0x4000045
  83. .endm
  84. .macro clearcutscene
  85. writebytetooffset 0xFF 0x4000044
  86. writebytetooffset 0x00 0x4000045
  87. .endm
  88. .macro pokemsg pokemsg_string:req pokemsg_callstd:req pokemsg_ID:req
  89. checksound
  90. cry \pokemsg_ID 0x0
  91. showpokepic \pokemsg_ID 0x0 0x5
  92. loadpointer 0x0 \pokemsg_string
  93. callstd \pokemsg_callstd
  94. hidepokepic
  95. waitcry
  96. .endm
  97. .macro beben earthquake_horri:req earthquake_tiles:req earthquake_sec:req earthquake_vert:req
  98. setvar 0x8004 \earthquake_horri
  99. setvar 0x8005 \earthquake_tiles
  100. setvar 0x8006 \earthquake_sec
  101. setvar 0x8007 \earthquake_vert
  102. special 0x136
  103. .endm
  104. .macro lookbattle lookbattle_id:req lookbattle_before:req lookbattle_after:req
  105. trainerbattle 0x0 \lookbattle_id 0x0 \lookbattle_before \lookbattle_after
  106. .endm
  107. .macro gymbattle gymbattle_id:req gymbattle_before:req gymbattle_after:req gymbattle_later:req
  108. trainerbattle 0x1 \gymbattle_id 0x0 \gymbattle_before \gymbattle_after \gymbattle_later
  109. .endm
  110. .macro betweenbattle betweenbattle_id:req betweenbattle_before:req betweenbattle_after:req betweenbattle_between:req
  111. trainerbattle 0x2 \betweenbattle_id 0x0 \betweenbattle_before \betweenbattle_after \betweenbattle_between
  112. .endm
  113. .macro scriptbattle scriptbattle_id:req scriptbattle_after:req
  114. trainerbattle 0x3 \scriptbattle_id 0x0 \scriptbattle_after
  115. .endm
  116. .macro doublebattle doublebattle_id:req doublebattle_before:req doublebattle_after:req doublebattle_onepoke:req
  117. trainerbattle 0x4 \doublebattle_id 0x0 \doublebattle_before \doublebattle_after \doublebattle_onepoke
  118. .endm
  119. .macro doublegymbattle doublegymbattle_id:req doublegymbattle_before:req doublegymbattle_after:req doublegymbattle_later:req doublegymbattle_onepoke:req
  120. trainerbattle 0x8 \doublegymbattle_id 0x0 \doublegymbattle_before \doublegymbattle_after \doublegymbattle_later \doublegymbattle_onepoke
  121. .endm
  122. .macro winlosebattle winlosebattle_id:req winlosebattle_win:req winlosebattle_lose:req
  123. trainerbattle 0x9 \winlosebattle_id 0x3 \winlosebattle_win \winlosebattle_lose
  124. .endm
  125. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  126. @@@ @@@
  127. @@@ special version of the trainerbattle command to be caught by the custom handler @@@
  128. @@@ if the player is spotted and spotscript_flag is set, spotscript_ptr_true is executed @@@
  129. @@@ if the player is spotted and spotscript_flag is not set, spotscript_ptr_false is executed @@@
  130. @@@ if the player talks to an npc who has this as its first command, it is ignored @@@
  131. @@@ THIS COMMAND WORKS IF AND ONLY IF THE TRAINER BIT IS SET ON THE NPC TEMPLATE @@@
  132. @@@ @@@
  133. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  134. .macro spotscript spotscript_flag:req spotscript_ptr_true:req spotscript_ptr_false:req
  135. .byte 0x5C, 0xFF
  136. .hword \spotscript_flag
  137. .hword 0xFFFF
  138. .word \spotscript_ptr_true
  139. .word \spotscript_ptr_false
  140. .endm
  141. .macro msgbox msgbox_textpointer:req msgbox_callstd:req
  142. loadpointer 0x0 \msgbox_textpointer
  143. callstd \msgbox_callstd
  144. .endm
  145. .macro giveitem giveitem_item:req giveitem_quantity:req giveitem_messagetyp:req
  146. copyvarifnotzero 0x8000 \giveitem_item
  147. copyvarifnotzero 0x8001 \giveitem_quantity
  148. callstd \giveitem_messagetyp
  149. .endm
  150. .macro giveitem2 giveitem2_item:req giveitem2_quantity:req giveitem2_song:req
  151. copyvarifnotzero 0x8000 \giveitem2_item
  152. copyvarifnotzero 0x8001 \giveitem2_quantity
  153. copyvarifnotzero 0x8002 \giveitem2_song
  154. callstd 0x9
  155. .endm
  156. .macro wildbattle wildbattle_spezies:req wildbattle_level:req wildbattle_item:req
  157. setwildbattle \wildbattle_spezies \wildbattle_level \wildbattle_item
  158. dowildbattle
  159. .endm
  160. .macro wildbattle2 wildbattle2_spezies:req wildbattle2_level:req wildbattle2_item:req wildbattle2_battlestyle:req
  161. setwildbattle \wildbattle2_spezies \wildbattle2_level \wildbattle2_item
  162. special 0x137
  163. waitstate
  164. .endm
  165. .macro wildbattlemusic wildbattlemusic_spezies:req wildbattlemusic_level:req wildbattlemusic_item:req wildbattlemusic_music:req
  166. setwildbattle \wildbattlemusic_spezies \wildbattlemusic_level \wildbattlemusic_item
  167. special 0x138
  168. playsong \wildbattlemusic_music 0x0
  169. .endm
  170. .macro costumtrainerbattlemusic costumtrainerbattlemusic_id:req
  171. special 0x3B
  172. playsong \costumtrainerbattlemusic_id 0x0
  173. .endm
  174. .macro colorflicker colorflicker_farbbyte:req
  175. setvar 0x8000 \colorflicker_farbbyte
  176. setvar 0x5006 0x8
  177. special 0x68
  178. .endm
  179. .macro mugmsg mugmsg_textpointer:req mugmsg_callstd:req mugmsg_sprite:req mugmsg_facing:req
  180. .if \mugmsg_facing==MUGFACE_LEFT
  181. setvar MUGHSOT_1_TABLE \mugmsg_sprite | 0x8000
  182. setvar MUGSHOT_1_X 0x16
  183. setvar MUGSHOT_1_Y 0x60
  184. .endif
  185. .if \mugmsg_facing==MUGFACE_RIGHT
  186. setvar MUGHSOT_1_TABLE \mugmsg_sprite
  187. setvar MUGSHOT_1_X 0xD0
  188. setvar MUGSHOT_1_Y 0x60
  189. .endif
  190. msgbox \mugmsg_textpointer \mugmsg_callstd
  191. setvar MUGHSOT_1_TABLE 0x0
  192. .endm
  193. .macro mugrival mugrival_textpointer:req mugrival_callstd:req mugrival_facing:req mugrival_emot=0
  194. setvar 0x8000 \mugrival_emot
  195. .if \mugrival_facing==MUGFACE_LEFT
  196. call scr_mugrival_left
  197. .endif
  198. .if \mugrival_facing==MUGFACE_RIGHT
  199. call scr_mugrival_right
  200. .endif
  201. msgbox \mugrival_textpointer \mugrival_callstd
  202. setvar MUGHSOT_1_TABLE 0x0
  203. .endm
  204. .macro transparenzon
  205. clearflag FLAG_ACTIVATE
  206. .endm
  207. .macro transparenzoff
  208. setflag FLAG_ACTIVATE
  209. .endm
  210. .macro battlescreen battlescreen_grass:req battlescreen_sea:req
  211. setvar BATTLE_NORMAL_VAR \battlescreen_grass
  212. setvar BATTLE_SEA_VAR \battlescreen_sea
  213. .endm
  214. .macro cameramove cameramove_xpos:req cameramove_ypos:req
  215. setvar CAMERA_VAR_X \cameramove_xpos
  216. setvar CAMERA_VAR_Y \cameramove_ypos
  217. setvar CALLASM_VAR 0x1
  218. special 0x68
  219. .endm
  220. .macro walkingscript walkingscript_value:req
  221. setvar WALK_SCRIPT_VAR \walkingscript_value
  222. .endm
  223. .macro walkingscripton
  224. setflag FLAG_WALK_SCRIPT
  225. .endm
  226. .macro walkingscriptoff
  227. clearflag FLAG_WALK_SCRIPT
  228. .endm
  229. .macro writemusikon
  230. setflag FLAG_SKIP_BATTLE_MUSIC
  231. .endm
  232. .macro writemusikoff
  233. clearflag FLAG_SKIP_BATTLE_MUSIC
  234. .endm
  235. @@ Index commands
  236. .macro nop
  237. .byte 0x0
  238. .endm
  239. .macro nop1
  240. .byte 0x1
  241. .endm
  242. .macro end
  243. .byte 0x2
  244. .endm
  245. .macro return
  246. .byte 0x3
  247. .endm
  248. .macro call call_address:req
  249. .byte 0x4
  250. .word \call_address
  251. .endm
  252. .macro goto goto_address:req
  253. .byte 0x5
  254. .word \goto_address
  255. .endm
  256. .macro gotoif if1_value:req if1_pointer:req
  257. .byte 0x6
  258. .byte \if1_value
  259. .word \if1_pointer
  260. .endm
  261. .macro callif if2_value:req if2_pointer:req
  262. .byte 0x7
  263. .byte \if2_value
  264. .word \if2_pointer
  265. .endm
  266. .macro callstd callstd_call:req
  267. .byte 0x9
  268. .byte \callstd_call
  269. .endm
  270. .macro killscript
  271. .byte 0xD
  272. .endm
  273. .macro loadpointer loadpointer_bank:req loadpointer_pointer:req
  274. .byte 0xF
  275. .byte \loadpointer_bank
  276. .word \loadpointer_pointer
  277. .endm
  278. .macro writebytetooffset writebytetooffset_bank:req writebytetooffset_location:req
  279. .byte 0x11
  280. .byte \writebytetooffset_bank
  281. .word \writebytetooffset_location
  282. .endm
  283. .macro setvar setvar_variable:req setvar_value:req
  284. .byte 0x16
  285. .hword \setvar_variable
  286. .hword \setvar_value
  287. .endm
  288. .macro addvar addvar_variable:req addvar_value:req
  289. .byte 0x17
  290. .hword \addvar_variable
  291. .hword \addvar_value
  292. .endm
  293. .macro subvar subvar_variable:req subvar_value:req
  294. .byte 0x18
  295. .hword \subvar_variable
  296. .hword \subvar_value
  297. .endm
  298. .macro copyvar copyvar_variableADestin:req copyvar_variableBSource:req
  299. .byte 0x19
  300. .hword \copyvar_variableADestin
  301. .hword \copyvar_variableBSource
  302. .endm
  303. .macro copyvarifnotzero copyvarifnotzero_variableADestin:req copyvarifnotzero_variableBSource:req
  304. .byte 0x1A
  305. .hword \copyvarifnotzero_variableADestin
  306. .hword \copyvarifnotzero_variableBSource
  307. .endm
  308. .macro compare compare_variable:req compare_value:req
  309. .byte 0x21
  310. .hword \compare_variable
  311. .hword \compare_value
  312. .endm
  313. .macro comparevars comparevars_variableA:req comparevars_variableB:req
  314. .byte 0x22
  315. .hword \comparevars_variableA
  316. .hword \comparevars_variableB
  317. .endm
  318. .macro callasm callasm_address:req
  319. .byte 0x23
  320. .word \callasm_address
  321. .endm
  322. .macro special special_number:req
  323. .byte 0x25
  324. .hword \special_number
  325. .endm
  326. .macro special2 special2_variable:req special2_number:req
  327. .byte 0x26
  328. .hword \special2_variable
  329. .hword \special2_number
  330. .endm
  331. .macro waitstate
  332. .byte 0x27
  333. .endm
  334. .macro pause pause_delay:req
  335. .byte 0x28
  336. .hword \pause_delay
  337. .endm
  338. .macro setflag setflag_flag:req
  339. .byte 0x29
  340. .hword \setflag_flag
  341. .endm
  342. .macro clearflag clearflag_flag:req
  343. .byte 0x2A
  344. .hword \clearflag_flag
  345. .endm
  346. .macro checkflag checkflag_flag:req
  347. .byte 0x2B
  348. .hword \checkflag_flag
  349. .endm
  350. .macro resetvars
  351. .byte 0x2E
  352. .endm
  353. .macro sound sound_song:req
  354. .byte 0x2F
  355. .hword \sound_song
  356. .endm
  357. .macro checksound
  358. .byte 0x30
  359. .endm
  360. .macro fanfare fanfare_song:req
  361. .byte 0x31
  362. .hword \fanfare_song
  363. .endm
  364. .macro waitfanfare
  365. .byte 0x32
  366. .endm
  367. .macro playsong playsong_song:req playsong_value:req
  368. .byte 0x33
  369. .hword \playsong_song
  370. .byte \playsong_value
  371. .endm
  372. .macro playsong2 playsong2_song:req
  373. .byte 0x34
  374. .hword \playsong2_song
  375. .endm
  376. .macro songfadedefault
  377. .byte 0x35
  378. .endm
  379. .macro fadesong fadesong_song:req
  380. .byte 0x36
  381. .hword \fadesong_song
  382. .endm
  383. .macro fadeout fadeout_volume:req
  384. .byte 0x37
  385. .byte \fadeout_volume
  386. .endm
  387. .macro fadein fadein_volume:req
  388. .byte 0x38
  389. .byte \fadein_volume
  390. .endm
  391. .macro warp warp_bank:req warp_map:req warp_exit:req warp_x:req warp_y:req
  392. .byte 0x39
  393. .byte \warp_bank
  394. .byte \warp_map
  395. .byte \warp_exit
  396. .hword \warp_x
  397. .hword \warp_y
  398. .endm
  399. .macro warpmuted warpmuted_bank:req warpmuted_map:req warpmuted_exit:req warpmuted_x:req warpmuted_y:req
  400. .byte 0x3A
  401. .byte \warpmuted_bank
  402. .byte \warpmuted_map
  403. .byte \warpmuted_exit
  404. .hword \warpmuted_x
  405. .hword \warpmuted_y
  406. .endm
  407. .macro warpwalk warpwalk_bank:req warpwalk_map:req warpwalk_exit:req warpwalk_x:req warpwalk_y:req
  408. .byte 0x3B
  409. .byte \warpwalk_bank
  410. .byte \warpwalk_map
  411. .byte \warpwalk_exit
  412. .hword \warpwalk_x
  413. .hword \warpwalk_y
  414. .endm
  415. .macro warphole warphole_bank:req warphole_map:req
  416. .byte 0x3C
  417. .byte \warphole_bank
  418. .byte \warphole_map
  419. .endm
  420. .macro warpteleport warpteleport_bank:req warpteleport_map:req warpteleport_exit:req warpteleport_x:req warpteleport_y:req
  421. .byte 0x3D
  422. .byte \warpteleport_bank
  423. .byte \warpteleport_map
  424. .byte \warpteleport_exit
  425. .hword \warpteleport_x
  426. .hword \warpteleport_y
  427. .endm
  428. .macro setwarpplace setwarpplace_bank:req setwarpplace_map:req setwarpplace_exit:req setwarpplace_x:req setwarpplace_y:req
  429. .byte 0x3F
  430. .byte \setwarpplace_bank
  431. .byte \setwarpplace_map
  432. .byte \setwarpplace_exit
  433. .hword \setwarpplace_x
  434. .hword \setwarpplace_y
  435. .endm
  436. .macro getplayerpos getplayerpos_variableX:req getplayerpos_variableY:req
  437. .byte 0x42
  438. .hword \getplayerpos_variableX
  439. .hword \getplayerpos_variableY
  440. .endm
  441. .macro countpokemon
  442. .byte 0x43
  443. .endm
  444. .macro additem additem_item:req additem_quantity:req
  445. .byte 0x44
  446. .hword \additem_item
  447. .hword \additem_quantity
  448. .endm
  449. .macro removeitem removeitem_item:req removeitem_quantity:req
  450. .byte 0x45
  451. .hword \removeitem_item
  452. .hword \removeitem_quantity
  453. .endm
  454. .macro checkitemroom checkitemroom_item:req checkitemroom_quantity:req
  455. .byte 0x46
  456. .hword \checkitemroom_item
  457. .hword \checkitemroom_quantity
  458. .endm
  459. .macro checkitem checkitem_item:req checkitem_quantity:req
  460. .byte 0x47
  461. .hword \checkitem_item
  462. .hword \checkitem_quantity
  463. .endm
  464. .macro checkitemtype checkitemtype_item:req
  465. .byte 0x48
  466. .hword \checkitemtype_item
  467. .endm
  468. .macro addpcitem addpcitem_item:req addpcitem_quantity:req
  469. .byte 0x49
  470. .hword \addpcitem_item
  471. .hword \addpcitem_quantity
  472. .endm
  473. .macro checkpcitem checkpcitem_item:req checkpcitem_quantity:req
  474. .byte 0x4A
  475. .hword \checkpcitem_item
  476. .hword \checkpcitem_quantity
  477. .endm
  478. .macro applymovement applymovement_people:req applymovement_movedata:req
  479. .byte 0x4F
  480. .hword \applymovement_people
  481. .word \applymovement_movedata
  482. .endm
  483. .macro applymovementpos applymovementpos_people:req applymovementpos_movedata:req applymovementpos_x:req applymovementpos_y:req
  484. .byte 0x50
  485. .hword \applymovementpos_people
  486. .word \applymovementpos_movedata
  487. .byte \applymovementpos_x
  488. .byte \applymovementpos_y
  489. .endm
  490. .macro waitmovement waitmovement_people:req
  491. .byte 0x51
  492. .hword \waitmovement_people
  493. .endm
  494. .macro waitmovementpos waitmovementpos_people:req waitmovementpos_x:req waitmovementpos_y:req
  495. .byte 0x52
  496. .hword \waitmovementpos_people
  497. .byte \waitmovementpos_x
  498. .byte \waitmovementpos_y
  499. .endm
  500. .macro hidesprite hidesprite_people:req
  501. .byte 0x53
  502. .hword \hidesprite_people
  503. .endm
  504. .macro hidespritepos hidesprite_people:req hidespritepos_x:req hidespritepos_y:req
  505. .byte 0x54
  506. .hword \hidespritepos_people
  507. .byte \hidespritepos_x
  508. .byte \hidespritepos_y
  509. .endm
  510. .macro showsprite showsprite_people:req
  511. .byte 0x55
  512. .hword \showsprite_people
  513. .endm
  514. .macro showspritepos showspritepos_people:req showspritepos_x:req showspritepos_y:req
  515. .byte 0x56
  516. .hword \showspritepos_people
  517. .byte \showspritepos_x
  518. .byte \showspritepos_y
  519. .endm
  520. .macro movesprite movesprite_people:req movesprite_x:req movesprite_y:req
  521. .byte 0x57
  522. .hword \movesprite_people
  523. .hword \movesprite_x
  524. .hword \movesprite_y
  525. .endm
  526. .macro spritevisible spritevisible_people:req spritevisible_bank:req spritevisible_map:req
  527. .byte 0x58
  528. .hword \spritevisible_people
  529. .byte \spritevisible_bank
  530. .byte \spritevisible_map
  531. .endm
  532. .macro spriteinvisible spriteinvisible_people:req spriteinvisible_bank:req spriteinvisible_map:req
  533. .byte 0x59
  534. .hword \spriteinvisible_people
  535. .byte \spriteinvisible_bank
  536. .byte \spriteinvisible_map
  537. .endm
  538. .macro faceplayer
  539. .byte 0x5A
  540. .endm
  541. .macro spriteface spriteface_people:req spriteface_facing:req
  542. .byte 0x5B
  543. .hword \spriteface_people
  544. .byte \spriteface_facing
  545. .endm
  546. .macro trainerbattle trainerbattle_kind:req trainerbattle_id:req trainerbattle_value:req trainerbattle_before:req trainerbattle_after trainerbattle_later trainerbattle_onepoke
  547. .byte 0x5C
  548. .byte \trainerbattle_kind
  549. .hword \trainerbattle_id
  550. .hword \trainerbattle_value
  551. .word \trainerbattle_before
  552. .word \trainerbattle_after
  553. .word \trainerbattle_later
  554. .word \trainerbattle_onepoke
  555. .endm
  556. .macro repeattrainerbattle
  557. .byte 0x5D
  558. .endm
  559. .macro endtrainerbattle
  560. .byte 0x5E
  561. .endm
  562. .macro endtrainerbattle2
  563. .byte 0x5E
  564. .endm
  565. .macro checktrainerflag checktrainerflag_flag:req
  566. .byte 0x60
  567. .hword \checktrainerflag_flag
  568. .endm
  569. .macro settrainerflag settrainerflag_flag:req
  570. .byte 0x61
  571. .hword \settrainerflag_flag
  572. .endm
  573. .macro cleartrainerflag cleartrainerflag_flag:req
  574. .byte 0x62
  575. .hword \cleartrainerflag_flag
  576. .endm
  577. .macro movesprite2 movesprite2_people:req movesprite2_x:req movesprite2_y:req
  578. .byte 0x63
  579. .hword \movesprite2_people
  580. .hword \movesprite2_x
  581. .hword \movesprite2_y
  582. .endm
  583. .macro moveoffscreen moveoffscreen_people:req
  584. .byte 0x64
  585. .hword \moveoffscreen_people
  586. .endm
  587. .macro spritebehave spritebehave_people:req spritebehave_facing:req
  588. .byte 0x65
  589. .hword \spritebehave_people
  590. .byte \spritebehave_facing
  591. .endm
  592. .macro waitmsg
  593. .byte 0x66
  594. .endm
  595. .macro preparemsg preparemsg_text:req
  596. .byte 0x67
  597. .word \preparemsg_text
  598. .endm
  599. .macro closeonkeypress
  600. .byte 0x68
  601. .endm
  602. .macro lockall
  603. .byte 0x69
  604. .endm
  605. .macro lock
  606. .byte 0x6A
  607. .endm
  608. .macro releaseall
  609. .byte 0x6B
  610. .endm
  611. .macro release
  612. .byte 0x6C
  613. .endm
  614. .macro waitkeypress
  615. .byte 0x6D
  616. .endm
  617. .macro yesnobox yesnobox_x:req yesnobox_y:req
  618. .byte 0x6E
  619. .byte \yesnobox_x
  620. .byte \yesnobox_y
  621. .endm
  622. .macro multichoice multichoice_x:req multichoice_y:req multichoice_choiceList:req multichoice_determines:req
  623. .byte 0x6F
  624. .byte \multichoice_x
  625. .byte \multichoice_y
  626. .byte \multichoice_choiceList
  627. .byte \multichoice_determines
  628. .endm
  629. .macro multichoice2 multichoice2_x:req multichoice2_y:req multichoice2_choiceList:req multichoice2_defaultchoice:req multichoice2_determines:req
  630. .byte 0x70
  631. .byte \multichoice2_x
  632. .byte \multichoice2_y
  633. .byte \multichoice2_choiceList
  634. .byte \multichoice2_defaultchoice
  635. .byte \multichoice2_determines
  636. .endm
  637. .macro multichoice3 multichoice3_x:req multichoice3_y:req multichoice3_choiceList:req multichoice3_numberofchoices:req multichoice3_determines:req
  638. .byte 0x71
  639. .byte \multichoice3_x
  640. .byte \multichoice3_y
  641. .byte \multichoice3_choiceList
  642. .byte \multichoice3_numberofchoices
  643. .byte \multichoice3_determines
  644. .endm
  645. .macro showpokepic showpokepic_spezies:req showpokepic_x:req showpokepic_y:req
  646. .byte 0x75
  647. .hword \showpokepic_spezies
  648. .byte \showpokepic_x
  649. .byte \showpokepic_y
  650. .endm
  651. .macro hidepokepic
  652. .byte 0x76
  653. .endm
  654. .macro braile braile_data:req
  655. .byte 0x78
  656. .word \braile_data
  657. .endm
  658. .macro givepokemon givepokemon_spezies:req givepokemon_level:req givepokemon_item:req
  659. .byte 0x79
  660. .hword \givepokemon_spezies
  661. .byte \givepokemon_level
  662. .hword \givepokemon_item
  663. .word 0x0
  664. .word 0x0
  665. .byte 0x0
  666. .endm
  667. .macro giveegg giveegg_spezies:req
  668. .byte 0x7A
  669. .hword \giveegg_spezies
  670. .endm
  671. .macro setpokemonmove setpokemonmove_partyslot:req setpokemonmove_moveslot:req setpokemonmove_move:req
  672. .byte 0x7B
  673. .byte \setpokemonmove_partyslot
  674. .byte \setpokemonmove_moveslot
  675. .hword \setpokemonmove_move
  676. .endm
  677. .macro checkattack checkattack_move:req
  678. .byte 0x7C
  679. .hword \checkattack_move
  680. .endm
  681. .macro bufferpokemon bufferpokemon_buffernumber:req bufferpokemon_spezies:req
  682. .byte 0x7D
  683. .byte \bufferpokemon_buffernumber
  684. .hword \bufferpokemon_spezies
  685. .endm
  686. .macro bufferfirstpokemon bufferfirstpokemon_buffernumber:req
  687. .byte 0x7E
  688. .byte \bufferfirstpokemon_buffernumber
  689. .endm
  690. .macro bufferpartypokemon bufferpartypokemon_buffernumber:req bufferpartypokemon_spezies:req
  691. .byte 0x7F
  692. .byte \bufferpartypokemon_buffernumber
  693. .hword \bufferpartypokemon_spezies
  694. .endm
  695. .macro bufferitem bufferitem_buffernumber:req bufferitem_item:req
  696. .byte 0x80
  697. .byte \bufferitem_buffernumber
  698. .hword \bufferitem_item
  699. .endm
  700. .macro bufferattack bufferattack_buffernumber:req bufferattack_attack:req
  701. .byte 0x82
  702. .byte \bufferattack_buffernumber
  703. .hword \bufferattack_attack
  704. .endm
  705. .macro buffernumber buffernumber_buffernumber:req buffernumber_variable:req
  706. .byte 0x83
  707. .byte \buffernumber_buffernumber
  708. .hword \buffernumber_variable
  709. .endm
  710. .macro bufferstd bufferstd_buffernumber:req bufferstd_variable:req
  711. .byte 0x84
  712. .byte \bufferstd_buffernumber
  713. .hword \bufferstd_variable
  714. .endm
  715. .macro bufferstring bufferstring_buffernumber:req bufferstring_string:req
  716. .byte 0x85
  717. .byte \bufferstring_buffernumber
  718. .word \bufferstring_string
  719. .endm
  720. .macro pokemart pokemart_list:req
  721. .byte 0x86
  722. .word \pokemart_list
  723. .endm
  724. .macro pokemart3 pokemart_list_three:req
  725. .byte 0x86
  726. .word \pokemart_list_three
  727. .endm
  728. .macro random random_possiblities:req
  729. .byte 0x8F
  730. .hword \random_possiblities
  731. .endm
  732. .macro givemoney givemoney_quantity:req givemoney_command:req
  733. .byte 0x90
  734. .word \givemoney_quantity
  735. .byte \givemoney_command
  736. .endm
  737. .macro paymoney paymoney_quantity:req paymoney_command:req
  738. .byte 0x91
  739. .word \paymoney_quantity
  740. .byte \paymoney_command
  741. .endm
  742. .macro checkmoney checkmoney_quantity:req checkmoney_command:req
  743. .byte 0x92
  744. .word \checkmoney_quantity
  745. .byte \checkmoney_command
  746. .endm
  747. .macro showmoney showmoney_x:req showmoney_y:req showmoney_value:req
  748. .byte 0x93
  749. .byte \showmoney_x
  750. .byte \showmoney_y
  751. .byte \showmoney_value
  752. .endm
  753. .macro hidemoney hidemoney_x:req hidemoney_y:req
  754. .byte 0x94
  755. .byte \hidemoney_x
  756. .byte \hidemoney_y
  757. .endm
  758. .macro updatemoney updatemoney_x:req updatemoney_y:req updatemoney_value:req
  759. .byte 0x95
  760. .byte \updatemoney_x
  761. .byte \updatemoney_y
  762. .byte \updatemoney_value
  763. .endm
  764. .macro fadescreen fadescreen_effect:req
  765. .byte 0x97
  766. .byte \fadescreen_effect
  767. .endm
  768. .macro fadescreendelay fadescreendelay_effect:req fadescreendelay_delay:req
  769. .byte 0x98
  770. .byte \fadescreendelay_effect
  771. .byte \fadescreendelay_delay
  772. .endm
  773. .macro darken darken_flashsize:req
  774. .byte 0x99
  775. .hword \darken_flashsize
  776. .endm
  777. .macro lighten lighten_flashsize:req
  778. .byte 0x9A
  779. .hword \lighten_flashsize
  780. .endm
  781. .macro doanimation doanimation_animation:req
  782. .byte 0x9C
  783. .hword \doanimation_animation
  784. .endm
  785. .macro setanimation setanimation_animation:req setanimation_variable:req
  786. .byte 0x9D
  787. .byte \setanimation_animation
  788. .hword \setanimation_variable
  789. .endm
  790. .macro checkanimation checkanimation_animation:req
  791. .byte 0x9E
  792. .hword \checkanimation_animation
  793. .endm
  794. .macro sethealingplace shp_bank:req shp_map:req shp_x:req shp_y:req
  795. setvar HEALING_BANK_MAP_VAR \shp_map << 8 | \shp_bank
  796. setvar HEALING_X_VAR \shp_x
  797. setvar HEALING_Y_VAR \shp_y
  798. .endm
  799. .macro checkgender
  800. .byte 0xA0
  801. .endm
  802. .macro cry cry_spezies:req cry_effect:req
  803. .byte 0xA1
  804. .hword \cry_spezies
  805. .hword \cry_effect
  806. .endm
  807. .macro setmaptile setmaptile_x:req setmaptile_y:req setmaptile_tile:req setmaptile_attribut:req
  808. .byte 0xA2
  809. .hword \setmaptile_x
  810. .hword \setmaptile_y
  811. .hword \setmaptile_tile
  812. .hword \setmaptile_attribut
  813. .endm
  814. .macro resetweather
  815. .byte 0xA3
  816. .endm
  817. .macro setweather setweather_weather:req
  818. .byte 0xA4
  819. .hword \setweather_weather
  820. .endm
  821. .macro doweather
  822. .byte 0xA5
  823. .endm
  824. .macro setmapfooter setmapfooter_footer:req
  825. .byte 0xA7
  826. .hword \setmapfooter_footer
  827. .endm
  828. .macro spritelevelup spritelevelup_people:req spritelevelup_bank:req spritelevelup_map:req
  829. .byte 0xA8
  830. .hword \spritelevelup_people
  831. .byte \spritelevelup_bank
  832. .byte \spritelevelup_map
  833. .byte 0x0
  834. .endm
  835. .macro restorespritelevel restorespritelevel_people:req restorespritelevel_bank:req restorespritelevel_map:req
  836. .byte 0xA9
  837. .hword \restorespritelevel_people
  838. .byte \restorespritelevel_bank
  839. .byte \restorespritelevel_map
  840. .endm
  841. .macro createsprite createsprite_sprite:req createsprite_id:req createsprite_x:req createsprite_y:req createsprite_behaviour:req createsprite_facing:req
  842. .byte 0xAA
  843. .byte \createsprite_sprite
  844. .byte \createsprite_id
  845. .hword \createsprite_x
  846. .hword \createsprite_y
  847. .byte \createsprite_behaviour
  848. .byte \createsprite_facing
  849. .endm
  850. .macro spriteface2 spriteface2_people:req spriteface2_facing:req
  851. .byte 0xAB
  852. .hword \spriteface2_people
  853. .byte \spriteface2_facing
  854. .endm
  855. .macro setdooropened setdooropened_x:req setdooropened_y:req
  856. .byte 0xAC
  857. .hword \setdooropened_x
  858. .hword \setdooropened_y
  859. .endm
  860. .macro setdoorclosed setdoorclosed_x:req setdoorclosed_y:req
  861. .byte 0xAD
  862. .hword \setdoorclosed_x
  863. .hword \setdoorclosed_y
  864. .endm
  865. .macro doorchange
  866. .byte 0xAE
  867. .endm
  868. .macro setdooropened2 setdooropened2_x:req setdooropened2_y:req
  869. .byte 0xAF
  870. .hword \setdooropened2_x
  871. .hword \setdooropened2_y
  872. .endm
  873. .macro setdoorclosed2 setdoorclosed2_x:req setdoorclosed2_y:req
  874. .byte 0xB0
  875. .hword \setdoorclosed2_x
  876. .hword \setdoorclosed2_y
  877. .endm
  878. .macro setwildbattle setwildbattle_spezies:req setwildbattle_level:req setwildbattle_item:req
  879. .byte 0xB6
  880. .hword \setwildbattle_spezies
  881. .byte \setwildbattle_level
  882. .hword \setwildbattle_item
  883. .endm
  884. .macro dowildbattle
  885. .byte 0xB7
  886. .endm
  887. .macro savincrementkey attr:req
  888. .byte 0xC3
  889. .byte \attr
  890. .endm
  891. .macro waitcry
  892. .byte 0xC5
  893. .endm
  894. .macro setworldmapflag setworldmapflag_flag:req
  895. .byte 0xD0
  896. .hword \setworldmapflag_flag
  897. .endm
  898. .macro bufferitems bufferitems_buffernumber:req bufferitems_item:req bufferitems_quantity:req
  899. .byte 0xD4
  900. .byte \bufferitems_buffernumber
  901. .hword \bufferitems_item
  902. .hword \bufferitems_quantity
  903. .endm
  904. #endif