No Description

script_language.h 23KB

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