Без опису

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