No Description

script_language.h 21KB

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