暫無描述

language.h 26KB

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