ZoriaRPG

New ZScript (ZC 2.54, Alpha 1)

Oct 20th, 2017
139
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ZC 2.54, Alpha 1
  2.  
  3. /////////////////
  4. /// ZScript ///
  5. /////////////////
  6.  
  7.  
  8. Added Audio-> pointer, for audio and music functions. Old functions such as PlaySOund are /cloned/ here, so
  9. you may do either game->PlaySound(), or Audio->PlaySOund() with the same effect.
  10. New audio function will be here.
  11. Added Debug-> pointer, for experimental stuff, and things meant purely for debugging.
  12. Added NPCData-> pointer, for editing the enemy editor npc values.
  13. Added Text-> Pointer, for modern text dialgoue.
  14. Added Graphics-> Pointer, for graphical functions. Old isntructions will be cloned, and new instructions, such as
  15. palette editing, will go here.
  16. Added ComboData-> Pointer, for editing the ombo table properties by script.
  17. Added SpriteData->Pointer, for editing the weapons/misc sprite properties by script.
  18.  
  19. ////////////////
  20. /// Global ///
  21. ////////////////
  22.  
  23.  
  24. int SizeOfArrayBool(bool array[]); ZASM Instruction:
  25. ARRAYSIZEB d2
  26. /**
  27. * Returns the index size of the array pointed by 'array'.
  28. * As SizeOfArray(int *ptr), save that it works specifically with bool typed arrays.
  29. * Useful in for loops.
  30. *
  31. */ Example Use:
  32.  
  33.  
  34. /************************************************************************************************************/
  35.  
  36. int SizeOfArrayFFC(ffc array[]); ZASM Instruction:
  37. ARRAYSIZEF d2
  38. /**
  39. * Returns the index size of the array pointed by 'array'.
  40. * As SizeOfArray(int *ptr), save that it works specifically with ffc typed arrays.
  41. * Useful in for loops.
  42. *
  43. */ Example Use:
  44.  
  45.  
  46. /************************************************************************************************************/
  47.  
  48. int SizeOfArrayNPC(npc array[]); ZASM Instruction:
  49. ARRAYSIZEN d2
  50. /**
  51. * Returns the index size of the array pointed by 'array'.
  52. * As SizeOfArray(int *ptr), save that it works specifically with npc typed arrays.
  53. * Useful in for loops.
  54. *
  55. */ Example Use:
  56.  
  57. /************************************************************************************************************/
  58.  
  59. int SizeOfArrayItem(item array[]); ZASM Instruction:
  60. ARRAYSIZEI d2
  61. /**
  62. * Returns the index size of the array pointed by 'array'.
  63. * As SizeOfArray(int *ptr), save that it works specifically with item typed arrays.
  64. * Useful in for loops.
  65. *
  66. */ Example Use:
  67.  
  68. /************************************************************************************************************/
  69.  
  70. int SizeOfArrayItemdata(itemdata array[]);
  71. ZASM Instruction:
  72. ARRAYSIZEID d2
  73. /**
  74. * Returns the index size of the array pointed by 'array'.
  75. * As SizeOfArray(int *ptr), save that it works specifically with itemdata typed arrays.
  76. * Useful in for loops.
  77. *
  78. */ Example Use:
  79.  
  80. /************************************************************************************************************/
  81.  
  82. int SizeOfArrayLWeapon(lweapon array[]);
  83. ZASM Instruction:
  84. ARRAYSIZEL d2
  85. /**
  86. * Returns the index size of the array pointed by 'array'.
  87. * As SizeOfArray(int *ptr), save that it works specifically with lweapon typed arrays.
  88. * Useful in for loops.
  89. *
  90. */ Example Use:
  91.  
  92. /************************************************************************************************************/
  93.  
  94. int SizeOfArrayEWeapon(eweapon array[]);
  95. ZASM Instruction:
  96. ARRAYSIZEE d2
  97. /**
  98. * Returns the index size of the array pointed by 'array'.
  99. * As SizeOfArray(int *ptr), save that it works specifically with eweapon typed arrays.
  100. * Useful in for loops.
  101. *
  102. */ Example Use:
  103.  
  104. /************************************************************************************************************/
  105.  
  106. void OverlayTile(int firsttile, int secondtile); ZASM Instruction:
  107. OVERLAYTILEVV
  108. OVERLAYTILEVR
  109. OVERLAYTILERV
  110. OVERLAYTILERR
  111. /**
  112. * Overlays secondtile onto firsttile, ignoring all pixels of colour 0.
  113. * The valid tile value range is 0 to 65519.
  114. * This change is *TEMPORARY* within the quest file
  115. * and will not be retained when saving the game.
  116. *
  117. */ Example Use:
  118.  
  119.  
  120. //////////////
  121. /// GAME ///
  122. //////////////
  123.  
  124. int Game->GetItemScript(int ptr[]); ZASM Instruction:
  125. GETITEMSCRIPT
  126.  
  127.  
  128. /**
  129. * Returns the number of the item script with the given name or -1 if there is
  130. * no such script. The script name should be passed as a string.
  131. * (!) This was added at 2.54 beta 52.5, 1st June 2017
  132. *
  133. */ Example Use:
  134.  
  135.  
  136. /************************************************************************************************************/
  137.  
  138. int GetBoolPointer(bool *ptr[]); ZASM Instruction:
  139. BOOLARRPTR
  140. /**
  141. * Returns the pointer of a bool array as a float.
  142. */ Example Use:
  143. bool arr[16];
  144. int size = SizeOfArray( GetPointer(arr) );
  145. //Size == 16
  146.  
  147. /************************************************************************************************************/
  148.  
  149. bool SetBoolPointer(bool *ptr[]); ZASM Instruction:
  150. BOOLARRPTR2
  151. /**
  152. * Converts an int pointer to the bool type, for assigning.
  153. */ Example Use:
  154. bool arr[16];
  155. int size = SizeOfArray( GetPointer(arr) );
  156. //Size == 16
  157.  
  158. /************************************************************************************************************/
  159.  
  160. void GreyscaleOn() ZASM Instruction
  161. GREYSCALEON
  162.  
  163. /**
  164. * Renders the entire display in greyscale.
  165. */ Example Use: !#!
  166.  
  167. /************************************************************************************************************/
  168.  
  169. void GreyscaleOff() ZASM Instruction
  170. GREYSCALEOFF
  171.  
  172. /**
  173. * Returns the display rendering to colour.
  174. */ Example Use: !#!
  175.  
  176. /************************************************************************************************************/
  177.  
  178. int DMapPalette[]; ZASM Instruction:
  179. DMAPLEVELPAL
  180. /**
  181. * An array of 512 integers containing each DMap's Level Palette
  182. */ Example Use: !#!
  183.  
  184. /************************************************************************************************************/
  185.  
  186. void SetMessage(int message, int buffer[]);
  187.  
  188. ZASM Instruction:
  189. SETMESSAGE
  190. /**
  191. * Loads string 'buffer[]' into ZQ Message 'message'.
  192. */ Example Use: !#!
  193.  
  194. /************************************************************************************************************/
  195.  
  196. void SetDMapName(int dmap_id, int buffer[]);
  197.  
  198. ZASM Instruction:
  199. SETDMAPNAME
  200. /**
  201. * Loads string 'buffer[]' to the DMap Name field for DMap with ID 'dmap_id'.
  202. * See std_constsnts.zh for appropriate buffer size.
  203. */ Example Use: !#!
  204.  
  205. /************************************************************************************************************/
  206.  
  207. void SetDMapTitle(int DMap, int buffer[]);
  208.  
  209. ZASM Instruction:
  210. SETDMAPTITLE
  211. /**
  212. * Loads string 'buffer[]' to the DMap Title field for DMap with ID 'dmap_id'.
  213. * See std_constsnts.zh for appropriate buffer size.
  214. */ Example Use: !#!
  215.  
  216. /************************************************************************************************************/
  217.  
  218. void SetDMapIntro(int DMap, int buffer[]);
  219.  
  220. ZASM Instruction:
  221. SETDMAPINTRO
  222. /**
  223. * Loads string 'buffer[]' to the DMap Intro field for DMap with ID 'dmap_id'.
  224. * See std_constsnts.zh for appropriate buffer size.
  225. */ Example Use: !#!
  226.  
  227. /************************************************************************************************************/
  228.  
  229. int Version; ZASM Instruction:
  230. ZELDAVERSION
  231.  
  232. /**
  233. * Returns the version of ZC being used.
  234. *
  235. */ Example Use: !#!
  236.  
  237. /************************************************************************************************************/
  238.  
  239. int Build; ZASM Instruction:
  240. ZELDABUILD
  241.  
  242. /**
  243. * Returns the Build ID of the version of ZC being used.
  244. *
  245. */ Example Use: !#!
  246.  
  247. /************************************************************************************************************/
  248.  
  249. int Beta; ZASM Instruction:
  250. ZELDABETA
  251.  
  252. /**
  253. * Returns the Beta ID of the version of ZC being used. If the build is not a beta, this returns 0.
  254. *
  255. */ Example Use: !#!
  256.  
  257. /************************************************************************************************************/
  258.  
  259. bool DisableActiveSubscreen; ZASM Instruction:
  260. NOACTIVESUBSC
  261.  
  262. /**
  263. * If set true, the active subscreen will not fall into view ehen the player presses Start.
  264. *
  265. */ Example Use: !#!
  266.  
  267. /************************************************************************************************************/
  268.  
  269.  
  270. void SetScreenFlag(int map, int screen, int flag, bool state); ZASM Instruction:
  271. SCREENFLAG
  272.  
  273. /**
  274. *
  275. *
  276. */ Example Use:
  277.  
  278.  
  279. /************************************************************************************************************/
  280.  
  281. bool ButtonPress[18]; ZASM Instruction:
  282. BUTTONPRESS
  283. /**
  284. * An array of 18 button states that correspond to Link->Press*
  285. *
  286. */ Example Use:
  287.  
  288. /************************************************************************************************************/
  289.  
  290. bool ButtonInput[18]; ZASM Instruction:
  291. BUTTONINPUT
  292. /**
  293. * An array of 18 button states that correspond to Link->Input*
  294. *
  295. */ Example Use:
  296.  
  297. /************************************************************************************************************/
  298.  
  299. bool ButtonHeld[18]; ZASM Instruction:
  300. BUTTONHELD
  301. /**
  302. * An array of 18 button states that returns if a button is being held down.
  303. * MAY only represent a joypad.
  304. *
  305. */ Example Use:
  306.  
  307. /************************************************************************************************************/
  308.  
  309. bool KeyPress[127]; ZASM Instruction:
  310. KEYPRESS
  311. /**
  312. * An array of 127 indices, each representing a keypress on the keyboard.
  313. * See std_keyboard.zh for constants ands functions that relate to reading from, or writing to the keyboard.
  314. *
  315. */ Example Use:
  316.  
  317. /************************************************************************************************************/
  318.  
  319. bool ReadKey[127]; ZASM Instruction:
  320. READKEY
  321. /**
  322. * A read-only array of 127 indices, each representing a keypress on the keyboard.
  323. * Returns true if a key is pressed or held.
  324. * See std_keyboard.zh for constants ands functions that relate to reading from, or writing to the keyboard.
  325. *
  326. */ Example Use:
  327.  
  328. /************************************************************************************************************/
  329.  
  330. bool JoypadPress[18]; ZASM Instruction:
  331. JOYPADPRESS
  332. /**
  333. * An array of 18 button states that corresponds to whether the player is pressing a button on a Joypad \
  334. * controller, but not the keyboard. REQUIRES TESTING.
  335. *
  336. */ Example Use:
  337.  
  338. /************************************************************************************************************/
  339.  
  340.  
  341. int NumMessages; ZASM Instruction
  342. int HighestStringID GAMENUMMESSAGES
  343.  
  344.  
  345. /**
  346. *
  347. * Returns the number of message strings used in a quest.
  348. *
  349. *
  350. * /
  351.  
  352. /************************************************************************************************************/
  353.  
  354.  
  355. SetScreenEnemy(int map, int screen, int enemy_index, int enem_type);
  356. GetScreenEnemy(int map, int screen, int enemy_index);
  357.  
  358. /************************************************************************************************************/
  359.  
  360.  
  361. SetScreenDoor(int map, int screen, int door_index, int door_type);
  362. GetScreenDoor(int map, int screen, int door_index);
  363.  
  364. /************************************************************************************************************/
  365.  
  366.  
  367. SetScreenWidth(int map, int screen, int value);
  368. GetScreenWidth(int map, int screen);
  369.  
  370. /************************************************************************************************************/
  371.  
  372.  
  373. SetScreenHeight(int map, int screen, int value);
  374. GetScreenHeight(int map, int screen);
  375.  
  376. /************************************************************************************************************/
  377.  
  378.  
  379. SetScreenViewX(int map, int screen, int value);
  380. GetScreenViewX(int map, int screen);
  381.  
  382. /************************************************************************************************************/
  383.  
  384.  
  385. SetScreenViewY(int map, int screen, int value);
  386. GetScreenViewY(int map, int screen);
  387.  
  388. /************************************************************************************************************/
  389.  
  390.  
  391. SetScreenGuy(int map, int screen, int value);
  392. GetScreenGuy(int map, int screen);
  393.  
  394. /************************************************************************************************************/
  395.  
  396.  
  397. SetScreenString(int map, int screen, int value);
  398. GetScreenString(int map, int screen);
  399.  
  400. /************************************************************************************************************/
  401.  
  402.  
  403. SetScreenRoomType(int map, int screen, int value);
  404. GetScreenRoomType(int map, int screen);
  405.  
  406. /************************************************************************************************************/
  407.  
  408.  
  409. SetScreenEntryX(int map, int screen, int value);
  410. GetScreenEntryX(int map, int screen);
  411.  
  412. /************************************************************************************************************/
  413.  
  414.  
  415. SetScreenEntryY(int map, int screen, int value);
  416. GetScreenEntryY(int map, int screen);
  417.  
  418. /************************************************************************************************************/
  419.  
  420.  
  421. SetScreenItem(int map, int screen, int value);
  422. GetScreenItem(int map, int screen);
  423.  
  424. /************************************************************************************************************/
  425.  
  426.  
  427. SetScreenUndercombo(int map, int screen, int value);
  428. GetScreenUndercombo(int map, int screen);
  429.  
  430. /************************************************************************************************************/
  431.  
  432.  
  433. SetScreenUnderCSet(int map, int screen, int value);
  434. GetScreenUnderCSet(int map, int screen);
  435.  
  436. /************************************************************************************************************/
  437.  
  438.  
  439. SetScreenCatchall(int map, int screen, int value);
  440. GetScreenCatchall(int map, int screen);
  441.  
  442. /************************************************************************************************************/
  443.  
  444.  
  445. SetScreenLayerOpacity(int map, int screen, int layer, int opacity);
  446. GetScreenLayerOpacity(int map, int screen, int layer);
  447.  
  448. /************************************************************************************************************/
  449.  
  450. SetScreenSecretCombo(int map, int screen, int index, int value);
  451. GetScreenSecretCombo(int map, int screen, int index);
  452.  
  453. /************************************************************************************************************/
  454.  
  455.  
  456. SetScreenSecretCSet(int map, int screen, int index, int value);
  457. GetScreenSecretCSet(int map, int screen, int index);
  458.  
  459. /************************************************************************************************************/
  460.  
  461.  
  462. SetScreenSecretFlag(int map, int screen, int index, int value);
  463. GetScreenSecretFlag(int map, int screen, int index);
  464.  
  465. /************************************************************************************************************/
  466.  
  467.  
  468. SetScreenLayerMap(int map, int screen, int layer, int map);
  469. GetScreenLayerMap(int map, int screen, int layer);
  470.  
  471. /************************************************************************************************************/
  472.  
  473.  
  474. SetScreenLayerScreen(int map, int screen, int layer, int screen);
  475. GetScreenLayerScreen(int map, int screen, int layer);
  476.  
  477. /************************************************************************************************************/
  478.  
  479.  
  480. SetScreenPath(int map, int screen, int path, int dest);
  481. GetScreenPath(int map, int screen, int path);
  482.  
  483. /************************************************************************************************************/
  484.  
  485.  
  486. SetScreenWarpReturnX(int map, int screen, int warp, int posX);
  487. GetScreenWarpReturnX(int map, int screen, int warp);
  488.  
  489. /************************************************************************************************************/
  490.  
  491.  
  492. SetScreenWarpReturnY(int map, int screen, int warp, int posY);
  493. GetScreenWarpReturnY(int map, int screen, int warp);
  494.  
  495.  
  496. /************************************************************************************************************/
  497.  
  498. int GetMaxMaps()
  499. int MapCount() ZASM Instruction
  500. GETMAXMAPS
  501.  
  502. /**
  503. *
  504. * Returns the number of maps used by a quest.
  505. *
  506. *
  507. * /
  508.  
  509. /************************************************************************************************************/
  510.  
  511. int GetScreenEnemy(int map, int screen, int enemy_index)
  512. ZASM Instruction
  513. GETSCREENENEMY
  514.  
  515. /**
  516. * Reads values from enemy lists anywhere in the game.
  517. * Returns the Nth enemy of a given map, and screen where 'enemy_index' is the Nth index
  518. * 'map' is the desired map, and 'screen' is the desired screen.
  519. * Returns 0 if there is no enemy in the desired index.
  520. *
  521. * Use DMaptoMap() from std_functions to simplify in-game use with DMaps.
  522. * /
  523.  
  524. /************************************************************************************************************/
  525.  
  526. int SetScreenEnemy(int map, int screen, int enemy_index, int enemy_id)
  527. ZASM Instruction
  528. SETSCREENENEMY
  529.  
  530. /**
  531. * Sets values to enemy lists anywhere in the game.
  532. * Sets the Nth enemy of a given map, and screen to a specified NPC, where 'enemy_index' is
  533. * the Nth index 'map' is the desired map, and 'screen' is the desired screen, and 'enemy_id'.
  534. * is the ID of the enemy that you wish to use.
  535. *
  536. * If changing the enemies on the current screen and map, enemies will change upon reloading the screen.
  537. *
  538. * Use DMaptoMap() from std_functions to simplify in-game use with DMaps.
  539. * /
  540.  
  541. /************************************************************************************************************/
  542.  
  543. int GetScreenDoor(int map, int screen, int index)
  544. ZASM Instruction
  545. GETSCREENDOOR
  546.  
  547. /**
  548. * Reads value of a door on any screen in the game environment.
  549. * Returns Screen->Door[index] of a given map, and screen where 'index' is the Door[] index,
  550. * 'map' is the desired map, and 'screen' is the desired screen.
  551. * Returns 0 if there is no door present (open).
  552. *
  553. * Use DMaptoMap() from std_functions to simplify in-game use with DMaps.
  554. * /
  555.  
  556. /************************************************************************************************************/
  557.  
  558. int SetScreenDoor(int map, int screen, int index, int type)
  559. ZASM Instruction
  560. SETSCREENDOOR
  561.  
  562. /**
  563. * Sets the value of a door on any screen in the game environment.
  564. * Sets Screen->Door[index] of a given map, and screen where 'index' is the Door[] index,
  565. * 'map' is the desired map, and 'screen' is the desired screen, and 'type'.
  566. * is the door type.
  567. *
  568. * If changing the doors on the current screen and map, doors will change upon reloading the screen.
  569. *
  570. * Use DMaptoMap() from std_functions to simplify in-game use with DMaps.
  571. * /
  572.  
  573. /************************************************************************************************************/
  574.  
  575.  
  576. ///////////////
  577. /// Audio ///
  578. ///////////////
  579.  
  580.  
  581.  
  582. void PauseSound(int soundid); ZASM Instruction:
  583. PAUSESOUNDR
  584. PAUSESOUNDV
  585. /**
  586. * Pauses one of the quest's playing sound effects. Use the SFX_ constants in
  587. * std.zh as values of soundid.
  588. */ Example Use: !#!
  589.  
  590. /************************************************************************************************************/
  591.  
  592. void ResumeSound(int soundid); ZASM Instruction:
  593. RESUMESOUNDR
  594. RESUMESOUNDV
  595. /**
  596. * Resumes one of the quest's paused sound effects. Use the SFX_ constants in
  597. * std.zh as values of soundid.
  598. */ Example Use: !#!
  599.  
  600. /************************************************************************************************************/
  601.  
  602. void EndSound(int soundid); ZASM Instruction:
  603. ENDSOUNDR
  604. ENDSOUNDV
  605. /**
  606. * Kills one of the quest's playing sound effects. Use the SFX_ constants in
  607. * std.zh as values of soundid.
  608. */ Example Use: !#!
  609.  
  610. /************************************************************************************************************/
  611.  
  612. void PauseMusic(); ZASM Instruction:
  613. PAUSEMUSIC
  614. PAUSEMUSIC
  615. /**
  616. * Pauses the present, playing MIDI or Enhanced Music file.
  617. */ Example Use: !#!
  618.  
  619. /************************************************************************************************************/
  620.  
  621. void ResumeMusic(); ZASM Instruction:
  622. RESUMEMUSIC
  623. RESUMEMUSIC
  624. /**
  625. * Resumes the present, playing MIDI or Enhanced Music file.
  626. */ Example Use: !#!
  627.  
  628. /************************************************************************************************************/
  629.  
  630. void PlaySound(int sfx);
  631.  
  632. /************************************************************************************************************/
  633.  
  634.  
  635. /////////////
  636. /// FFC ///
  637. /////////////
  638.  
  639. int ID; ZASM Instruction
  640. FFCID
  641.  
  642. /**
  643. * Returns the screen index of the FFC.
  644. * Can be set, to change the index of a pointer, but this requires testing and may be unstable.
  645. *
  646. */
  647.  
  648. /************************************************************************************************************/
  649.  
  650.  
  651. //////////////////
  652. /// Itemdata ///
  653. //////////////////
  654.  
  655. int Attributes[10]; ZASM Instruction:
  656. IDATAATTRIB
  657.  
  658. /**
  659. * An array of ten integers containing the Attributes values.
  660. * These correspond to the text entry fields, in the item editor 'Data' tab.
  661. *
  662. */
  663.  
  664. /************************************************************************************************************/
  665.  
  666. int Sprites[10]; ZASM Instruction:
  667. IDATASPRITES
  668.  
  669. /**
  670. * An array of ten integers containing the Sprites values.
  671. * These correspond to the pull-down options in the item editor 'Action' tab. .
  672. *
  673. */
  674.  
  675. /************************************************************************************************************/
  676.  
  677. bool Flags[5]; ZASM Instruction:
  678. IDATAFLAGS
  679.  
  680. /**
  681. * An array of five multipurpose boolean flags. The properties of this flag change based on the item class (family).
  682. * Flag[0] corresponds to the box directly below 'Equiment Item'. For swords, this is 'B.H. is Percent'.
  683. * Flag[1] corresponds to the box directly below 'Flag 1'. For swords, this is 'B.D. is Percent'.
  684. * Flag[2] corresponds to the box directly right of 'Equiment Item'. For swords, this is 'B. Penetrates Enemies'.
  685. * Flag[3] corresponds to the box directly right of 'Flag 2'. For swords, this is 'Can Slash'.
  686. * Flag[4] corresponds to the box directly below 'Flag 4'.For swords, this is '<Unused>', and greyed out.
  687. *
  688. * Scripted item classes may make use of these as a general-purpose script flags.
  689. * See 'zscript_itemdata.txt' for more information on what this flag does, based on the item class.
  690. */
  691.  
  692. /************************************************************************************************************/
  693.  
  694. //////////////
  695. /// Item ///
  696. /////////////
  697.  
  698. int ACLock; ZASM Instruction:
  699. ITEMACLC
  700.  
  701. /**
  702. * Returns the present tick of the animation clock.
  703. *
  704. */
  705.  
  706. /************************************************************************************************************/
  707.  
  708.  
  709. /////////////
  710. /// NPC ///
  711. /////////////
  712.  
  713. int InvFrames; ZASM Instruction:
  714. NPCINVINC
  715. /**
  716. * Returns if the enemy is temporarily invincible, from being hit, or otherwise.
  717. * Returns the number of remaining invincibility frames if the enemy is invincible, otherwise 0.
  718. *
  719. */ Example Use: !#!
  720.  
  721. /************************************************************************************************************/
  722.  
  723. int Invincible; ZASM Instruction:
  724. NPCSUPERMAN
  725. /**
  726. * Returns if the enemy is invincible, because of ( superman variable ).
  727. *
  728. */ Example Use: !#!
  729.  
  730. /************************************************************************************************************/
  731.  
  732. bool HasItem; ZASM Instruction:
  733. NPCHASITEM
  734. /**
  735. * Returns if the enemy is holding the screen item.
  736. *
  737. */ Example Use: !#!
  738.  
  739. /************************************************************************************************************/
  740.  
  741. bool Ringleader; ZASM Instruction:
  742. NPCRINGLEAD
  743. /**
  744. * Returns if the enemy is a 'ringleader'.
  745. *
  746. */ Example Use: !#!
  747.  
  748. /************************************************************************************************************/
  749.  
  750. int ScriptDefense[]; ZASM Instruction:
  751. NPCSCRDEFENSED
  752. /**
  753. * The npc's Script Weapon Defense values, as an array of 10 integers. Use the NPCSD_ and NPCDT_ constants
  754. * in std.zh to set or compare these values.
  755. *
  756. * This corresponds to the 'Defenses 3' tab in the Enemy Editor.
  757. */
  758.  
  759. /************************************************************************************************************/
  760.  
  761. /////////////////
  762. /// LWeapon ///
  763. /////////////////
  764.  
  765. int Range; ZASM Instruction:
  766. LWPNRANGE
  767.  
  768. /**
  769. * The range of the weapon in pixels.
  770. * The range in pixels for boomerang and hookshot lweapons; and the duration in frames for arrow lweapons.
  771. *
  772. */ Example Use: !#!
  773.  
  774. /************************************************************************************************************/
  775.  
  776.  
  777. ////////////////
  778. /// Screen ///
  779. ////////////////
  780.  
  781. void TriggerSecret(int flag); ZASM Instruction:
  782. TRIGGERSECRETR
  783. TRIGGERSECRETV
  784.  
  785. Triggers all secrets of the type 'flag' on the current screen
  786.  
  787.  
  788. /************************************************************************************************************/
  789.  
  790.  
  791. lweapon CreateLWeaponDx(int type, int baseitem)
  792. ZASM Instruction
  793. CREATELWEAPONDX
  794.  
  795. /**
  796. *
  797. * Create an lweapon with the type 'type', using data as if the weapon was created
  798. * by using the item 'item_id', thus forwarding sprites, sounds, and other values.
  799. *
  800. *
  801. * /
  802.  
  803. /************************************************************************************************************/
  804.  
  805. void Polygon();
  806.  
  807. /************************************************************************************************************/
  808.  
  809.  
  810. //////////////
  811. /// Link ///
  812. //////////////
  813.  
  814.  
  815. bool Link->DisableItem[256]; ZASM Instruction:
  816. DISABLEDITEM
  817. /**
  818. * An array of 256 values that represents whether items are disabeld on the current DMap.
  819. * A disabled item returns 'true'.
  820. * Writing to this array should disable or enable an item on the current DMap, but the behaviour
  821. * if Link does not have that item MAY not be fully defined.
  822. *
  823. */ Example Use:
  824.  
  825. /************************************************************************************************************/
  826.  
  827. int UsingItem; ZASM Instruction:
  828. LINKUSINITEM
  829.  
  830. /**
  831. * Returns the ID of an item used when Link uses an item.
  832. * Setting this does nothing.
  833. *
  834. */ Example Use: !#!
  835.  
  836. /************************************************************************************************************/
  837.  
  838. int Attack; ZASM Instruction:
  839. LINKUSINITEMA
  840.  
  841. /**
  842. * Returns LinkClass::attack (?)
  843. *
  844. */ Example Use: !#!
  845.  
  846. /************************************************************************************************************/
  847.  
  848. int Animation; ZASM Instruction:
  849. LINKANIMTYPE
  850.  
  851. /**
  852. * Link;s Animation style, as set in Quest->Graphics->Sprites->Link
  853. * Valid types are 0, 1, 2, and 3.
  854. *
  855. */ Example Use: !#!
  856.  
  857. /************************************************************************************************************/
  858.  
  859. int WalkASpeed; ZASM Instruction:
  860. LINKWALKANMSPD
  861.  
  862. /**
  863. * Link's Walking Animation speed as set in Quest->Graphics->Sprites->Link
  864. * valid types are:
  865. *
  866. */ Example Use: !#!
  867.  
  868. /************************************************************************************************************/
  869.  
  870. int SwimASpeed; ZASM Instruction:
  871. LINKSWIMSPD
  872. /**
  873. * Link's Swiming Animation speed as set in Quest->Graphics->Sprites->Link
  874. * valid types are:
  875. *
  876. */ Example Use: !#!
  877.  
  878. /************************************************************************************************************/
  879.  
  880. int InvFrames; ZASM Instruction:
  881. LINKINVFRAME
  882.  
  883. /**
  884. * The number of frames for which Link is invincible, when hit by an enemy or weapon.
  885. * This returns how long Link will remain invincible, or you may set it to a value between 0 and 214747.
  886. * Returns 0 if Link is not invincible.
  887. *
  888. */ Example Use: !#!
  889.  
  890. /************************************************************************************************************/
  891.  
  892. bool InvFlicker; ZASM Instruction:
  893. LINKCANFLICKER
  894.  
  895. /**
  896. * Set true by default. If this is true, Link will either flicker, or flash when invincible, depending
  897. * on your Quest rules settings. If set false, Link will neither flash, nor flicker when invincible.
  898. */ Example Use: !#!
  899.  
  900. /************************************************************************************************************/
  901.  
  902. int HurtSound; ZASM Instruction:
  903. LINKHURTSFX
  904.  
  905. /**
  906. * The sound that plays when Link is injured. By default this is '16', but you may change it at any time.
  907. *
  908. */ Example Use: !#!
  909.  
  910. /************************************************************************************************************/
  911.  
  912. int HitHeight; ZASM Instruction:
  913. LINKHYSZ
  914.  
  915. /**
  916. * link's Hitbox height in pixels starting from his 0x,0y (upper-left) corner, going down.
  917. * Note that this works on a per-sprite, per-direction basis.
  918. * If you wish to extend Link's hitbox upwards on the Y-Axis, set this value, and adjust his HitYOffset.
  919. * You can read a value that you assign to this (e.g. for custom collision functions).
  920. * This value is not preserved through sessions: Loading a saved game will reset it to the default.
  921. *
  922. */ Example Use: !#!
  923.  
  924. /************************************************************************************************************/
  925.  
  926. int HitWidth; ZASM Instruction:
  927. LINKHXSZ
  928.  
  929. /**
  930. * Link's Hitbox width in pixels starting from his x0,y0 (upper-left) corner, going right.
  931. * Note that this works on a per-sprite, per-direction basis.
  932. * This value is not preserved through sessions: Loading a saved game will reset it to the default.
  933. *
  934. */ Example Use: !#!
  935.  
  936. /************************************************************************************************************/
  937. //Not implemented. Use Extend and Sprites.
  938. int TileWidth; ZASM Instruction:
  939. LINKTYSZ
  940. /**
  941. * Link's width, in tiles.
  942. * This is not usable, as Link->Extend cannot be set.
  943. * While setting it is not syntactically incorrect, it does nothing.
  944. * You can read a value that you assign to this (e.g. for custom/proxy sprite drawing).
  945. * This value is not preserved through sessions: Loading a saved game will reset it to the default.
  946. *
  947. */ Example Use: !#!
  948.  
  949. /************************************************************************************************************/
  950. //Not implemented. Use Extend and Sprites.
  951. int TileHeight; ZASM Instruction:
  952. LINKTXSZ
  953.  
  954. /**
  955. * Link's height, in tiles.
  956. * This is not usable, as Link->Extend cannot be set.
  957. * While setting it is not syntactically incorrect, it does nothing.
  958. * You can read a value that you assign to this (e.g. for custom/proxy sprite drawing).
  959. * This value is not preserved through sessions: Loading a saved game will reset it to the default.
  960. *
  961. */ Example Use: !#!
  962.  
  963. /************************************************************************************************************/
  964. //Not implemented.
  965. int HitZHeight; ZASM Instruction:
  966. LINKHZSZ
  967.  
  968. /**
  969. * The Z-axis height of Link's hitbox, or collision rectangle.
  970. * The lower it is, the lower a flying or jumping enemy must fly in order to hit Link.
  971. * To jump over a sprite, you must be higher than its Z + HitZHeight.
  972. * The values of DrawZOffset and HitZHeight are linked. Setting one, also sets the other.
  973. * Writing to this is ignored unless Extend is set to values >=3.
  974. * This is not usable, as Link->Extend cannot be set.
  975. * While setting it is not syntactically incorrect, it does nothing.
  976. * You can read a value that you assign to this (e.g. for custom collision functions).
  977. * This value is not preserved through sessions: Loading a saved game will reset it to the default.
  978. *
  979. */ Example Use: !#!
  980.  
  981. /************************************************************************************************************/
  982.  
  983. int HitXOffset; ZASM Instruction:
  984. LINKHXOFS
  985.  
  986. /**
  987. * The X offset of Link's hitbox, or collision rectangle.
  988. * Setting it to positive or negative values will move Link's hitbox left or right.
  989. * Writing to this is ignored unless Extend is set to values >=3.
  990. * Note that this works on a per-sprite, per-direction basis.
  991. * You can read a value that you assign to this (e.g. for custom collision functions).
  992. * This value is not preserved through sessions: Loading a saved game will reset it to the default.
  993. *
  994. */ Example Use: !#!
  995.  
  996. /************************************************************************************************************/
  997.  
  998. int HitYOffset; ZASM Instruction:
  999. LINKHYOFS
  1000.  
  1001. /**
  1002. * The Y offset of Link's hitbox, or collision rectangle.
  1003. * Setting it to positive or negative values will move Link's hitbox up or down.
  1004. * Writing to this is ignored unless Extend is set to values >=3.
  1005. * Note that this works on a per-sprite, per-direction basis.
  1006. * You can read a value that you assign to this (e.g. for custom collision functions).
  1007. * This value is not preserved through sessions: Loading a saved game will reset it to the default.
  1008. *
  1009. */ Example Use: !#!
  1010.  
  1011. /************************************************************************************************************/
  1012. //Not yet implemented
  1013. int DrawXOffset; ZASM Instruction:
  1014. LINKXOFS
  1015.  
  1016. /**
  1017. * The X offset of Link's sprite.
  1018. * Setting it to positive or negative values will move the sprite's tiles left or right relative to its position.
  1019. * Writing to this is ignored unless Extend is set to values >=3.
  1020. * This is not usable, as Link->Extend cannot be set.
  1021. * While setting it is not syntactically incorrect, it does nothing.
  1022. * You can read a value that you assign to this.
  1023. * This value is not preserved through sessions: Loading a saved game will reset it to the default.
  1024. *
  1025. */ Example Use: !#!
  1026.  
  1027. /************************************************************************************************************/
  1028. //Not yet implemented
  1029. int DrawYOffset; ZASM Instruction:
  1030. LINKYOFS
  1031.  
  1032. /**
  1033. * The Y offset of Link's sprite.
  1034. * Setting it to positive or negative values will move the sprite's tiles up or down relative to its position.
  1035. * Writing to this is ignored unless Extend is set to values >=3.
  1036. * This is not usable, as Link->Extend cannot be set.
  1037. * While setting it is not syntactically incorrect, it does nothing.
  1038. * You can read a value that you assign to this.
  1039. * This value is not preserved through sessions: Loading a saved game will reset it to the default.
  1040. *
  1041. */ Example Use: !#!
  1042.  
  1043. /************************************************************************************************************/
  1044.  
  1045. //! Link->Equipment is now read-write, and needs testing.
  1046. //! It is also a pain to write bitwise values, to test it.
  1047.  
  1048. int Equipment; ZASM Instruction:
  1049. LINKEQUIP
  1050.  
  1051. /**
  1052. * Contains the item IDs of what is currently equiped to Link's A and B buttons.
  1053. * The first 8 bits contain the A button item, and the second 8 bits contain the B button item.
  1054. * If you are not comfortable with performing binary operations,
  1055. * you can use the functions GetEquipmentA() or GetEquipmentB() in std.zh.
  1056. *
  1057. */ Example Use: !#!
  1058.  
  1059. /************************************************************************************************************/
  1060.  
  1061. int ItemA; ZASM Instruction:
  1062. LINKITEMA
  1063.  
  1064. /**
  1065. * Contains the item IDs of what is currently equiped to Link's A button.
  1066. * Writing to this variable will set an item to the A-button.
  1067. * This will occur even if the item is not in inventory, and not on the subscreen.
  1068. * This will ignore if you have B+A or B-only subscreens, and force-set the item.
  1069. * The intent of this is to allow scriters to easily create scripted subscreens.
  1070. *
  1071. */ Example Use: !#!
  1072.  
  1073. /************************************************************************************************************/
  1074.  
  1075. int ItemB; ZASM Instruction:
  1076. LINKITEMB
  1077.  
  1078. /**
  1079. * Contains the item IDs of what is currently equiped to Link's B button.
  1080. * Writing to this variable will set an item to the A-button.
  1081. * This will occur even if the item is not in inventory, and not on the subscreen.
  1082. * The intent of this is to allow scriters to easily create scripted subscreens.
  1083. *
  1084. */ Example Use: !#!
  1085.  
  1086. /************************************************************************************************************/
  1087. //! Untested
  1088. int SetItemSlot(int itm_id, bool a_button, bool force);
  1089. ZASM Instruction:
  1090. LINKITEMB
  1091.  
  1092. /**
  1093. * This allows you to set Link's button items without binary operations, and to decide whether to
  1094. * obey quest rules, or inventory.
  1095. *
  1096. * When using this, 'itm_id' is the ID number of the item.
  1097. * Set 'a_button' true to set this item to the A-button, false to set it to the B-button.
  1098. * Set' force' true to set the item even if Link does not have it, or if the Quest Rules disallow it.
  1099. * Otherwise, set 'force' false, and the item will only be set if Link has it. Furthermore
  1100. * it will only set to slot A if either it is a sword, or the B+A quest rule is enabled.
  1101. *
  1102. */ Example Use: !#!
  1103.  
  1104. /************************************************************************************************************/
  1105.  
  1106. int Eaten; ZASM Instruction:
  1107. LINKEATEN
  1108.  
  1109. /**
  1110. * This stores a counter for how long Link has been inside a LikeLike, or similar enemy.
  1111. * It returns 0 if Link is not eaten, otherwise it returns the duration of him being eaten.
  1112. *
  1113. */ Example Use: !#!
  1114.  
  1115. /************************************************************************************************************/
  1116.  
  1117. int Extend; ZASM Instruction:
  1118. LINKEXTEND
  1119.  
  1120.  
  1121. /**
  1122. * Sets the extend value for all of Link's various actions for his current sprite, and direction.
  1123. * This is equivalent to the Extend value set in Quest->Graphics->Sprites->Link when selecting
  1124. * a tile, click on his sprites for any given action, and press the 'x' key.
  1125. * The options are 16x16, 16x32, and 32x32; which correspond to Extend values of ( 0, 1, and 2 )
  1126. * respectively.
  1127. *
  1128. * This also returns the present extend value of Link's sprite for his current direction and sprite.
  1129. *
  1130. * You may force-set all sprites, and directions to an extend value by assigning a negative number to
  1131. * this variable, where -1 == 0 -2 == 1, -3 == 2, -4 == 3, and -5 == 4.
  1132. *
  1133. * See the 'LINKEXTEND_* values in std_constants for more details.
  1134. */
  1135.  
  1136. /************************************************************************************************************/
  1137.  
  1138. int GetLinkExtend(int sprite, int dir); ZASM Instruction:
  1139. SETLINKEXTEND
  1140.  
  1141. /**
  1142. * Gets the extend value for one of Link's various actions based on a direction.
  1143. * This is equivalent to the Extend value set in Quest->Graphics->Sprites->Link when selecting a tile.
  1144. * See 'std_constants' entries under LSPR_* for a list of the various attributes for 'sprite'.
  1145. */
  1146.  
  1147. /************************************************************************************************************/
  1148.  
  1149. void SetLinkExtend(int sprite, int dir, int extend);
  1150. ZASM Instruction:
  1151. SETLINKEXTEND
  1152.  
  1153. /**
  1154. * Sets the extend value for one of Link's various actions.
  1155. * This is equivalent to the Extend value set in Quest->Graphics->Sprites->Link when selecting a tile.
  1156. * 'sprite' is the 'action', 'dir' is the sprite direction, and 'extend' is a value between 1 and 3.
  1157. * An extend value of '4' is reserved for future implementations of Link->Hit/DrawOffsets ad HitWidth/height.
  1158. * See 'std_constants' entries under LSPR_* for a list of the various attributes for 'sprite'.
  1159. */
  1160.  
  1161. /************************************************************************************************************/
  1162. //Untested
  1163. void SetLinkTile(int sprite, int tile, int dir)
  1164. ZASM Instruction:
  1165. SETLINKTILE
  1166.  
  1167. /**
  1168. * Sets the tile for Link's various actions. This is intended to work as OTile for Link.
  1169. * 'sprite' is the action for the tile. See Quest->Graphics->Sprites->Link for a visual reference.
  1170. * 'tile is the base tile for the sequence. It uses the animation style set in the sprites editor.
  1171. * 'dir' is the direction for the tile.
  1172. * See 'std_constants' entries under LSPR_* for a list of the various attributes for 'sprite'.
  1173. *
  1174. * See the 'LINKEXTEND_* values in std_constants for more details on possible extend values.
  1175. */
  1176.  
  1177. /************************************************************************************************************/
  1178. //!Untested
  1179. int GetLinkTile(int sprite, int dir)
  1180. ZASM Instruction:
  1181. LINKGETTILE
  1182.  
  1183. /**
  1184. * Returns the OTile for one of Link's various actions.
  1185. * 'sprite' is the action for the tile. See Quest->Graphics->Sprites->Link for a visual reference.
  1186. * 'dir' is the direction for the tile.
  1187. * See 'std_constants' entries under LSPR_* for a list of the various attributes for 'sprite'.
  1188. */
  1189.  
  1190. /************************************************************************************************************/
  1191.  
  1192. /////////////////
  1193. /// NPCData ///
  1194. /////////////////
  1195.  
  1196. // NPCData-> (Getter Functions)
  1197. int GetFlags(int npc_id);
  1198. int GetFlags2(int npc_id);
  1199. int GetWidth(int npc_id);
  1200. int GetHeight(int npc_id);
  1201. int GetSTile(int npc_id);
  1202. int GetSWidth(int npc_id);
  1203. int GetSHeight(int npc_id);
  1204. int GetETile(int npc_id);
  1205. int GetEWidth(int npc_id);
  1206. int GetHP(int npc_id);
  1207. int GetFamily(int npc_id);
  1208. int GetCSet(int npc_id);
  1209. int GetAnim(int npc_id);
  1210. int GetEAnim(int npc_id);
  1211. int GetFramerate(int npc_id);
  1212. int GetEFramerate(int npc_id);
  1213. int GetTouchDamage(int npc_id);
  1214. int GetWeaponDamage(int npc_id);
  1215. int GetWeapon(int npc_id);
  1216. int GetRandom(int npc_id);
  1217. int GetHaltRate(int npc_id);
  1218. int GetStep(int npc_id);
  1219. int GetHoming(int npc_id);
  1220. int GetHunger(int npc_id);
  1221. int GetDropset(int npc_id);
  1222. int GetBGSFX(int npc_id);
  1223. int GetHitSFX(int npc_id);
  1224. int GetDeathSFX(int npc_id);
  1225. int GetDrawXOffset(int npc_id);
  1226. int GetDrawYOffset(int npc_id);
  1227. int GetDrawZOffset(int npc_id);
  1228. int GetHitXOffset(int npc_id);
  1229. int GetHitYOffset(int npc_id);
  1230. int GetHitWidth(int npc_id);
  1231. int GetHitHeight(int npc_id);
  1232. int GetHitZHeight(int npc_id);
  1233. int GetTileWidth(int npc_id);
  1234. int GetTileHeight(int npc_id);
  1235. int GetWeaponSprite(int npc_id);
  1236.  
  1237. int GetScriptDefense(int npc_id, int def_index); //2.future compat.
  1238. int GetDefense(int npc_id, int def_index);
  1239. bool GetSizeFlag(int npc_id, int size_flag);
  1240. int GetAttribute(int npc_id, int attrib);
  1241.  
  1242. // NPCData-> (Setter Functions)
  1243. void SetFlags(int npc_id, int value);
  1244. void SetFlags2(int npc_id, int value);
  1245. void SetWidth(int npc_id, int value);
  1246. void SetHeight(int npc_id, int value);
  1247. void SetSTile(int npc_id, int value);
  1248. void SetSWidth (int npc_id, int value);
  1249. void SetSHeight(int npc_id, int value);
  1250. void SetETile(int npc_id, int value);
  1251. void SetEWidth(int npc_id, int value);
  1252. void SetHP(int npc_id, int value);
  1253. void SetFamily(int npc_id, int value);
  1254. void SetCSet(int npc_id, int value);
  1255. void SetAnim(int npc_id, int value);
  1256. void SetEAnim(int npc_id, int value);
  1257. void SetFramerate(int npc_id, int value);
  1258. void SetEFramerate(int npc_id, int value);
  1259. void SetTouchDamage(int npc_id, int value);
  1260. void SetWeaponDamage(int npc_id, int value);
  1261. void SetWeapon(int npc_id, int value);
  1262. void SetRandom(int npc_id, int value);
  1263. void SetHaltRate(int npc_id, int value);
  1264. void SetStep(int npc_id, int value);
  1265. void SetHoming(int npc_id, int value);
  1266. void SetHunger(int npc_id, int value);
  1267. void SetDropset(int npc_id, int value);
  1268. void SetBGSFX(int npc_id, int value);
  1269. void SetHitSFX(int npc_id, int value);
  1270. void SetDeathSFX(int npc_id, int value);
  1271. void SetDrawXOffset(int npc_id, int value);
  1272. void SetDrawYOffset(int npc_id, int value);
  1273. void SetDrawZOffset(int npc_id, int value);
  1274. void SetHitXOffset(int npc_id, int value);
  1275. void SetHitYOffset(int npc_id, int value);
  1276. void SetHitWidth(int npc_id, int value);
  1277. void SetHitHeight(int npc_id, int value);
  1278. void SetHitZHeight(int npc_id, int value);
  1279. void SetTileWidth(int npc_id, int value);
  1280. void SetTileHeight(int npc_id, int value);
  1281. void SetWeaponSprite(int npc_id, int value);
  1282.  
  1283. void SetScriptDefense(int npc_id, int def_index, int value);
  1284. void SetDefense(int npc_id, int def_index, int value);
  1285. void SetSizeFlag(int npc_id, int size_flag, bool set);
  1286. void SetAttribute(int npc_id, int attribute, int value);
  1287.  
  1288.  
  1289.  
  1290. /************************************************************************************************************/
  1291.  
  1292. //////////////
  1293. /// Text ///
  1294. //////////////
  1295. Text-> This is for text boxes and similar.
  1296.  
  1297.  
  1298. /************************************************************************************************************/
  1299.  
  1300. //////////////////
  1301. /// Graphics ///
  1302. //////////////////
  1303. Graphics-> A potential container for graphical functions, palette editing, and similar to Audio->.
  1304.  
  1305.  
  1306. /************************************************************************************************************/
  1307.  
  1308. ///////////////////
  1309. /// ComboData ///
  1310. ///////////////////
  1311. ComboData-> For modifying the combo tables by script.
  1312.  
  1313. GetBlockEnemies(int combo_id);
  1314. GetBlockHole(int combo_id);
  1315. GetBlockTrigger(int combo_id);
  1316. GetConveyorSpeedX(int combo_id);
  1317. GetConveyorSpeedY(int combo_id);
  1318. GetCreateEnemy(int combo_id);
  1319. GetCreateEnemyWhen(int combo_id);
  1320. GetCreateEnemyChange(int combo_id);
  1321. GetDirChangeType(int combo_id);
  1322. GetDistanceChangeTiles(int combo_id);
  1323. GetDiveItem(int combo_id);
  1324. GetDock(int combo_id);
  1325. GetFairy(int combo_id);
  1326. GetFFComboChangeAttrib(int combo_id);
  1327. GetFootDecorationsTile(int combo_id);
  1328. GetFootDecorationsType(int combo_id);
  1329. GetHookshotGrab(int combo_id);
  1330. GetLadderPass(int combo_id);
  1331. GetLockBlockType(int combo_id);
  1332. GetLockBlockChange(int combo_id);
  1333. GetMagicMirror(int combo_id);
  1334. GetModifyHPAmount(int combo_id);
  1335. GetModifyHPDelay(int combo_id);
  1336. GetModifyHPType(int combo_id);
  1337. GetModifyMPAmount(int combo_id);
  1338. GetModifyMPDelay(int combo_id);
  1339. GetModifyMPType(int combo_id);
  1340. GetNoPushBlocks(int combo_id);
  1341. GetOverhead(int combo_id);
  1342. GetPlaceEnemy(int combo_id);
  1343. GetPushDirection(int combo_id);
  1344. GetPushWeight(int combo_id);
  1345. GetPushWait(int combo_id);
  1346. GetPushed(int combo_id);
  1347. GetRaft(int combo_id);
  1348. GetResetRoom(int combo_id);
  1349. GetSavePoint(int combo_id);
  1350. GetScreenFreeze(int combo_id);
  1351. GetSecretCombo(int combo_id);
  1352. GetSingular(int combo_id);
  1353. GetSlowMove(int combo_id);
  1354. GetStatue(int combo_id);
  1355. GetStepType(int combo_id);
  1356. GetStepChangeTo(int combo_id);
  1357. GetStrikeRemnants(int combo_id);
  1358. GetStrikeRemnantsType(int combo_id);
  1359. GetStrikeChange(int combo_id);
  1360. GetStrikeItem(int combo_id);
  1361. GetTouchItem(int combo_id);
  1362. GetTouchStairs(int combo_id);
  1363. GetTriggerType(int combo_id);
  1364. GetTriggerSens(int combo_id);
  1365. GetWarpType(int combo_id);
  1366. GetWarpSens(int combo_id);
  1367. GetWarpDirect(int combo_id);
  1368. GetWarpLocation(int combo_id);
  1369. GetWater(int combo_id);
  1370. GetWhistle(int combo_id);
  1371. GetWinGame(int combo_id);
  1372. GetBlockWeaponLevel(int combo_id);
  1373. GetTile(int combo_id);
  1374. GetFlip(int combo_id);
  1375. GetWalkability(int combo_id);
  1376. GetType(int combo_id);
  1377. GetCSets(int combo_id);
  1378. GetFoo(int combo_id);
  1379. GetFrames(int combo_id);
  1380. GetSpeed(int combo_id);
  1381. GetNextCombo(int combo_id);
  1382. GetNextCSet(int combo_id);
  1383. GetFlag(int combo_id);
  1384. GetSkipAnim(int combo_id);
  1385. GetNextTimer(int combo_id);
  1386. GetSkipAnimY(int combo_id);
  1387. GetAnimFlags(int combo_id);
  1388.  
  1389. //two inputs, one return
  1390. GetBlockWeapon(int combo_id, int index); //[32]
  1391. GetExpansion(int combo_id, int index); //[6]
  1392. GetStrikeWeapons(int combo_id, int index); //[32]
  1393.  
  1394. //two inputs, no return
  1395. SetBlockEnemies(int combo_id, int value);
  1396. SetBlockHole(int combo_id, int value);
  1397. SetBlockTrigger(int combo_id, int value);
  1398. SetConveyorSpeedX(int combo_id, int value);
  1399. SetConveyorSpeedY(int combo_id, int value);
  1400. SetCreateEnemy(int combo_id, int value);
  1401. SetCreateEnemyWhen(int combo_id, int value);
  1402. SetCreateEnemyChange(int combo_id, int value);
  1403. SetDirChangeType(int combo_id, int value);
  1404. SetDistanceChangeTiles(int combo_id, int value);
  1405. SetDiveItem(int combo_id, int value);
  1406. SetDock(int combo_id, int value);
  1407. SetFairy(int combo_id, int value);
  1408. SetFFComboChangeAttrib(int combo_id, int value);
  1409. SetFootDecorationsTile(int combo_id, int value);
  1410. SetFootDecorationsType(int combo_id, int value);
  1411. SetHookshotGrab(int combo_id, int value);
  1412. SetLadderPass(int combo_id, int value);
  1413. SetLockBlockType(int combo_id, int value);
  1414. SetLockBlockChange(int combo_id, int value);
  1415. SetMagicMirror(int combo_id, int value);
  1416. SetModifyHPAmount(int combo_id, int value);
  1417. SetModifyHPDelay(int combo_id, int value);
  1418. SetModifyHPType(int combo_id, int value);
  1419. SetModifyMPAmount(int combo_id, int value);
  1420. SetModifyMPDelay(int combo_id, int value);
  1421. SetModifyMPType(int combo_id, int value);
  1422. SetNoPushBlocks(int combo_id, int value);
  1423. SetOverhead(int combo_id, int value);
  1424. SetPlaceEnemy(int combo_id, int value);
  1425. SetPushDirection(int combo_id, int value);
  1426. SetPushWeight(int combo_id, int value);
  1427. SetPushWait(int combo_id, int value);
  1428. SetPushed(int combo_id, int value);
  1429. SetRaft(int combo_id, int value);
  1430. SetResetRoom(int combo_id, int value);
  1431. SetSavePoint(int combo_id, int value);
  1432. SetScreenFreeze(int combo_id, int value);
  1433. SetSecretCombo(int combo_id, int value);
  1434. SetSingular(int combo_id, int value);
  1435. SetSlowMove(int combo_id, int value);
  1436. SetStatue(int combo_id, int value);
  1437. SetStepType(int combo_id, int value);
  1438. SetStepChangeTo(int combo_id, int value);
  1439. SetStrikeRemnants(int combo_id, int value);
  1440. SetStrikeRemnantsType(int combo_id, int value);
  1441. SetStrikeChange(int combo_id, int value);
  1442. SetStrikeItem(int combo_id, int value);
  1443. SetTouchItem(int combo_id, int value);
  1444. SetTouchStairs(int combo_id, int value);
  1445. SetTriggerType(int combo_id, int value);
  1446. SetTriggerSens(int combo_id, int value);
  1447. SetWarpType(int combo_id, int value);
  1448. SetWarpSens(int combo_id, int value);
  1449. SetWarpDirect(int combo_id, int value);
  1450. SetWarpLocation(int combo_id, int value);
  1451. SetWater(int combo_id, int value);
  1452. SetWhistle(int combo_id, int value);
  1453. SetWinGame(int combo_id, int value);
  1454. SetBlockWeaponLevel(int combo_id, int value);
  1455. SetTile(int combo_id, int value);
  1456. SetFlip(int combo_id, int value);
  1457. SetWalkability(int combo_id, int value);
  1458. SetType(int combo_id, int value);
  1459. SetCSets(int combo_id, int value);
  1460. SetFoo(int combo_id, int value);
  1461. SetFrames(int combo_id, int value);
  1462. SetSpeed(int combo_id, int value);
  1463. SetNextCombo(int combo_id, int value);
  1464. SetNextCSet(int combo_id, int value);
  1465. SetFlag(int combo_id, int value);
  1466. SetSkipAnim(int combo_id, int value);
  1467. SetNextTimer(int combo_id, int value);
  1468. SetSkipAnimY(int combo_id, int value);
  1469. SetAnimFlags(int combo_id, int value);
  1470.  
  1471. //three inputs, no return
  1472. SetBlockWeapon(int combo_id, int index, int value); //[32]
  1473. GetExpansion(int combo_id, int index, int value); //[32]
  1474. SetStrikeWeapons(int combo_id, int index, int value); //[32]
  1475.  
  1476. /************************************************************************************************************/
  1477.  
  1478. ////////////////////
  1479. /// SpriteData ///
  1480. ////////////////////
  1481. SpriteData-> For modifying the weapon/misc sprites by script.
  1482.  
  1483. GetTile(int sprite_id);
  1484. GetMisc(int sprite_id);
  1485. GetCSets(int sprite_id);
  1486. GetFrames(int sprite_id);
  1487. GetSpeed(int sprite_id);
  1488. GetType(int sprite_id);
  1489. SetTile(int sprite_id, int value);
  1490. SetMisc(int sprite_id, int value);
  1491. SetCSets(int sprite_id, int value);
  1492. SetFrames(int sprite_id, int value);
  1493. SetSpeed(int sprite_id, int value);
  1494. SetType(int sprite_id, int value);
  1495.  
  1496. /************************************************************************************************************/
  1497.  
  1498. ///////////////
  1499. /// Input ///
  1500. ///////////////
  1501.  
  1502. Unimplemented. This would subsume all input instructions, and include fancy stuff such as a key repeat timer.
  1503.  
  1504.  
  1505. /************************************************************************************************************/
  1506.  
  1507. ///////////////
  1508. /// Debug ///
  1509. ///////////////
  1510.  
  1511. /************************************************************************************************************/
  1512. DEBUGGING: These might find their way into namespace Debug->
  1513. /************************************************************************************************************/
  1514.  
  1515.  
  1516. int GetFFCPointer(ffc *ptr[]); ZASM Instruction:
  1517. FFCARRPTR
  1518. /**
  1519. * Returns the pointer of a ffc array as a float.
  1520. */ Example Use:
  1521. ffc arr[16];
  1522. int size = SizeOfArray( GetPointer(arr) );
  1523. //Size == 16
  1524.  
  1525. /************************************************************************************************************/
  1526.  
  1527. ffc SetFFCPointer(int value); ZASM Instruction:
  1528. FFCARRPTR2
  1529. /**
  1530. * Converts an int pointer to the ffc type, for assigning.
  1531. */ Example Use:
  1532. ffc arr[16]; ffc arrB[2]; int arrC[2];
  1533. arrC[0] = GetPointer(arr);
  1534. arrB[0] = SetPointer(arrC[0]);
  1535.  
  1536. /************************************************************************************************************/
  1537.  
  1538. int GetItemPointer(item *ptr[]); ZASM Instruction:
  1539. ITEMARRPTR
  1540. /**
  1541. * Returns the pointer of a item array as a float.
  1542. */ Example Use:
  1543. item arr[16];
  1544. int size = SizeOfArray( GetPointer(arr) );
  1545. //Size == 16
  1546.  
  1547. /************************************************************************************************************/
  1548.  
  1549. item SetItemPointer(int value); ZASM Instruction:
  1550. ITEMARRPTR2
  1551. /**
  1552. * Converts an int pointer to the item type, for assigning.
  1553. */ Example Use:
  1554. item arr[16]; item arrB[2]; int arrC[2];
  1555. arrC[0] = GetPointer(arr);
  1556. arrB[0] = SetPointer(arrC[0]);
  1557.  
  1558. /************************************************************************************************************/
  1559.  
  1560.  
  1561. int GetItemdataPointer(itemdata *ptr[]); ZASM Instruction:
  1562. IDATAARRPTR
  1563. /**
  1564. * Returns the pointer of a itemdata array as a float.
  1565. */ Example Use:
  1566. itemdata arr[16];
  1567. int size = SizeOfArray( GetPointer(arr) );
  1568. //Size == 16
  1569.  
  1570. /************************************************************************************************************/
  1571.  
  1572. itemdata SetItemdataPointer(int value); ZASM Instruction:
  1573. IDATAARRPTR2
  1574. /**
  1575. * Converts an int pointer to the itemdata type, for assigning.
  1576. */ Example Use:
  1577. itemdata arr[16]; itemdata arrB[2]; int arrC[2];
  1578. arrC[0] = GetPointer(arr);
  1579. arrB[0] = SetPointer(arrC[0]);
  1580.  
  1581. /************************************************************************************************************/
  1582.  
  1583. int GetNPCPointer(npc *ptr[]); ZASM Instruction:
  1584. NPCARRPTR
  1585. /**
  1586. * Returns the pointer of a item array as a float.
  1587. */ Example Use:
  1588. item arr[16];
  1589. int size = SizeOfArray( GetPointer(arr) );
  1590. //Size == 16
  1591.  
  1592. /************************************************************************************************************/
  1593.  
  1594. npc SetNPCPointer(int value); ZASM Instruction:
  1595. NPCARRPTR2
  1596. /**
  1597. * Converts an int pointer to the npc type, for assigning.
  1598. */ Example Use:
  1599. npc arr[16]; npc arrB[2]; int arrC[2];
  1600. arrC[0] = GetPointer(arr);
  1601. arrB[0] = SetPointer(arrC[0]);
  1602.  
  1603. /************************************************************************************************************/
  1604.  
  1605. int GetLWeaponPointer(lweapon *ptr[]); ZASM Instruction:
  1606. LWPNARRPTR
  1607. /**
  1608. * Returns the pointer of a lweapon array as a float.
  1609. */ Example Use:
  1610. lweapon arr[16];
  1611. int size = SizeOfArray( GetPointer(arr) );
  1612. //Size == 16
  1613.  
  1614. /************************************************************************************************************/
  1615.  
  1616. lweapon SetLWeaponPointer(int value); ZASM Instruction:
  1617. LWPNARRPTR2
  1618. /**
  1619. * Converts an int pointer to the lweapon type, for assigning.
  1620. */ Example Use:
  1621. lweapon arr[16]; lweapon arrB[2]; int arrC[2];
  1622. arrC[0] = GetPointer(arr);
  1623. arrB[0] = SetPointer(arrC[0]);
  1624.  
  1625. /************************************************************************************************************/
  1626.  
  1627. int GetEWeaponPointer(eweapon *ptr[]); ZASM Instruction:
  1628. EWPNARRPTR
  1629. /**
  1630. * Returns the pointer of a eweapon array as a float.
  1631. */ Example Use:
  1632. eweapon arr[16];
  1633. int size = SizeOfArray( GetPointer(arr) );
  1634. //Size == 16
  1635.  
  1636. /************************************************************************************************************/
  1637.  
  1638. eweapon SetEWeaponPointer(int value); ZASM Instruction:
  1639. EWPNARRPTR2
  1640. /**
  1641. * Converts an int pointer to the eweapon type, for assigning.
  1642. */ Example Use:
  1643. eweapon arr[16]; eweapon arrB[2]; int arrC[2];
  1644. arrC[0] = GetPointer(arr);
  1645. arrB[0] = SetPointer(arrC[0]);
  1646.  
  1647. /************************************************************************************************************/
  1648.  
  1649. int RefFFC; ZASM Instruction:
  1650. REFFFC
  1651. /**
  1652. * Returns the present ffc refrence from the stack. FOR DEBUGGING ONLY!
  1653. * THIS WILL BE DISABLED IN RELEASE BUILDS !
  1654. */ Example Use:
  1655.  
  1656. /************************************************************************************************************/
  1657.  
  1658. int RefItem; ZASM Instruction:
  1659. REFITEM
  1660. /**
  1661. * Returns the present item refrence from the stack. FOR DEBUGGING ONLY!
  1662. * THIS WILL BE DISABLED IN RELEASE BUILDS !
  1663. */ Example Use:
  1664.  
  1665. /************************************************************************************************************/
  1666.  
  1667. int RefItemdata; ZASM Instruction:
  1668. REFIDATA
  1669. /**
  1670. * Returns the present itemdata refrence from the stack. FOR DEBUGGING ONLY!
  1671. * THIS WILL BE DISABLED IN RELEASE BUILDS !
  1672. */ Example Use:
  1673.  
  1674. /************************************************************************************************************/
  1675.  
  1676. int RefLWeapon; ZASM Instruction:
  1677. REFLWPN
  1678. /**
  1679. * Returns the present lweapon refrence from the stack. FOR DEBUGGING ONLY!
  1680. * THIS WILL BE DISABLED IN RELEASE BUILDS !
  1681. */ Example Use:
  1682.  
  1683. /************************************************************************************************************/
  1684.  
  1685. int RefEWeapon; ZASM Instruction:
  1686. REFEWPN
  1687. /**
  1688. * Returns the present eweapon refrence from the stack. FOR DEBUGGING ONLY!
  1689. * THIS WILL BE DISABLED IN RELEASE BUILDS !
  1690. */ Example Use:
  1691.  
  1692. /************************************************************************************************************/
  1693.  
  1694. int RefNPC; ZASM Instruction:
  1695. REFNPC
  1696. /**
  1697. * Returns the present npc refrence from the stack. FOR DEBUGGING ONLY!
  1698. * THIS WILL BE DISABLED IN RELEASE BUILDS !
  1699. */ Example Use:
  1700.  
  1701. /************************************************************************************************************/
  1702.  
  1703. int SP; ZASM Instruction:
  1704. SP
  1705. /**
  1706. * Returns the value of the stack pointer. FOR DEBUGGING ONLY!
  1707. * THIS WILL BE DISABLED IN RELEASE BUILDS !
  1708. */ Example Use:
  1709.  
  1710. /************************************************************************************************************/
RAW Paste Data