No Description

script_language.h 22KB

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