No Description

script_language.h 23KB

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