Ei kuvausta

language.h 26KB

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