Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Beta 52
- The ZScript language now supports function pointers, using the AT_SIGN token (@) as a delimiter.
- The ZScript language now supports C-Style comment blocks using the traditional syntax of:
- /*
- COMMENT BLOCK
- */
- //////////////
- // Global //
- //////////////
- /************************************************************************************************************/
- int Game->GetGlobalScript(int ptr[]); ZASM Instruction:
- GETGLOBSCRIPT
- /**
- * Returns the number of the global script with the given name or -1 if there is
- * no such script. The script name should be passed as a string.
- * (!) This was added at 2.54 beta 52.5, 1st June 2017
- *
- */ Example Use:
- /************************************************************************************************************/
- /************************************************************************************************************/
- //////////////
- /// GAME ///
- //////////////
- void ContinueSound(int sfx); ZASM Instruction:
- CONTINUESFX
- /**
- *
- *
- */ Example Use:
- /************************************************************************************************************/
- void AdjustSound(int sfx, int pan, bool loop); ZASM Instruction:
- ADJUSTSFX
- /**
- * Adjusts properties of a sound effect.
- *
- */ Example Use:
- /************************************************************************************************************/
- void SetScreenFlag(int map, int screen, int flag, bool state); ZASM Instruction:
- SCREENFLAG
- /**
- *
- *
- */ Example Use:
- /************************************************************************************************************/
- void ContinueSound(int sfx); ZASM Instruction:
- CONTINUESFX
- /**
- *
- *
- */ Example Use:
- /************************************************************************************************************/
- void AdjustSound(int sfx, int pan, bool loop); ZASM Instruction:
- ADJUSTSFX
- /**
- * Adjusts properties of a sound effect.
- *
- */ Example Use:
- /************************************************************************************************************/
- void SetScreenFlag(int map, int screen, int flag, bool state); ZASM Instruction:
- SCREENFLAG
- /**
- *
- *
- */ Example Use:
- /************************************************************************************************************/
- /************************************************************************************************************/
- /************************************************************************************************************/
- int GetScreenEnemy(int map, int screen, int enemy_index)
- ZASM Instruction
- GETSCREENENEMY
- /**
- * Reads values from enemy lists anywhere in the game.
- * Returns the Nth enemy of a given map, and screen where 'enemy_index' is the Nth index
- * 'map' is the desired map, and 'screen' is the desired screen.
- * Returns 0 if there is no enemy in the desired index.
- *
- * Use DMaptoMap() from std_functions to simplify in-game use with DMaps.
- * /
- /************************************************************************************************************/
- int SetScreenEnemy(int map, int screen, int enemy_index, int enemy_id)
- ZASM Instruction
- SETSCREENENEMY
- /**
- * Sets values to enemy lists anywhere in the game.
- * Sets the Nth enemy of a given map, and screen to a specified NPC, where 'enemy_index' is
- * the Nth index 'map' is the desired map, and 'screen' is the desired screen, and 'enemy_id'.
- * is the ID of the enemy that you wish to use.
- *
- * If changing the enemies on the current screen and map, enemies will change upon reloading the screen.
- *
- * Use DMaptoMap() from std_functions to simplify in-game use with DMaps.
- * /
- /************************************************************************************************************/
- int GetScreenDoor(int map, int screen, int index)
- ZASM Instruction
- GETSCREENDOOR
- /**
- * Reads value of a door on any screen in the game environment.
- * Returns Screen->Door[index] of a given map, and screen where 'index' is the Door[] index,
- * 'map' is the desired map, and 'screen' is the desired screen.
- * Returns 0 if there is no door present (open).
- *
- * Use DMaptoMap() from std_functions to simplify in-game use with DMaps.
- * /
- /************************************************************************************************************/
- int SetScreenDoor(int map, int screen, int index, int type)
- ZASM Instruction
- SETSCREENDOOR
- /**
- * Sets the value of a door on any screen in the game environment.
- * Sets Screen->Door[index] of a given map, and screen where 'index' is the Door[] index,
- * 'map' is the desired map, and 'screen' is the desired screen, and 'type'.
- * is the door type.
- *
- * If changing the doors on the current screen and map, doors will change upon reloading the screen.
- *
- * Use DMaptoMap() from std_functions to simplify in-game use with DMaps.
- * /
- /************************************************************************************************************/
- int GetPointer(bool *ptr[]); ZASM Instruction:
- BOOLARRPTR
- /**
- * Returns the pointer of a bool array as a float.
- */ Example Use:
- bool arr[16];
- int size = SizeOfArray( GetPointer(arr) );
- //Size == 16
- /************************************************************************************************************/
- void PauseSound(int soundid); ZASM Instruction:
- PAUSESOUNDR
- PAUSESOUNDV
- /**
- * Pauses one of the quest's playing sound effects. Use the SFX_ constants in
- * std.zh as values of soundid.
- */ Example Use: !#!
- /************************************************************************************************************/
- void ResumeSound(int soundid); ZASM Instruction:
- RESUMESOUNDR
- RESUMESOUNDV
- /**
- * Resumes one of the quest's paused sound effects. Use the SFX_ constants in
- * std.zh as values of soundid.
- */ Example Use: !#!
- /************************************************************************************************************/
- void EndSound(int soundid); ZASM Instruction:
- ENDSOUNDR
- ENDSOUNDV
- /**
- * Kills one of the quest's playing sound effects. Use the SFX_ constants in
- * std.zh as values of soundid.
- */ Example Use: !#!
- /************************************************************************************************************/
- void PauseMusic(); ZASM Instruction:
- PAUSEMUSIC
- PAUSEMUSIC
- /**
- * Pauses the present, playing MIDI or Enhanced Music file.
- */ Example Use: !#!
- /************************************************************************************************************/
- void ResumeMusic(); ZASM Instruction:
- RESUMEMUSIC
- RESUMEMUSIC
- /**
- * Resumes the present, playing MIDI or Enhanced Music file.
- */ Example Use: !#!
- /************************************************************************************************************/
- /************************************************************************************************************/
- void SetMessage(int message, int buffer[]);
- ZASM Instruction:
- SETMESSAGE
- /**
- * Loads string 'buffer[]' into ZQ Message 'message'.
- */ Example Use: !#!
- /************************************************************************************************************/
- void SetDMapName(int dmap_id, int buffer[]);
- ZASM Instruction:
- SETDMAPNAME
- /**
- * Loads string 'buffer[]' to the DMap Name field for DMap with ID 'dmap_id'.
- * See std_constsnts.zh for appropriate buffer size.
- */ Example Use: !#!
- /************************************************************************************************************/
- void SetDMapTitle(int DMap, int buffer[]);
- ZASM Instruction:
- SETDMAPTITLE
- /**
- * Loads string 'buffer[]' to the DMap Title field for DMap with ID 'dmap_id'.
- * See std_constsnts.zh for appropriate buffer size.
- */ Example Use: !#!
- /************************************************************************************************************/
- void SetDMapIntro(int DMap, int buffer[]);
- ZASM Instruction:
- SETDMAPINTRO
- /**
- * Loads string 'buffer[]' to the DMap Intro field for DMap with ID 'dmap_id'.
- * See std_constsnts.zh for appropriate buffer size.
- */ Example Use: !#!
- /************************************************************************************************************/
- bool CappedFPS ZASM: THROTTLEFPS
- /**
- * Returns if the user enabled an uncapped mode either with F1 or TILDE.
- * Returns 'true' is the game is capped to 60fps, or false otherwise.
- * At present, you may get (read), but NOT set (write to) this value.
- */ Example Use: !#!
- /************************************************************************************************************/
- DEBUGGING: These might find their way into namespace Debug->
- /************************************************************************************************************/
- int RefFFC; ZASM Instruction:
- REFFFC
- /**
- * Returns the present ffc refrence from the stack. FOR DEBUGGING ONLY!
- * THIS WILL BE DISABLED IN RELEASE BUILDS !
- */ Example Use:
- /************************************************************************************************************/
- int RefItem; ZASM Instruction:
- REFITEM
- /**
- * Returns the present item refrence from the stack. FOR DEBUGGING ONLY!
- * THIS WILL BE DISABLED IN RELEASE BUILDS !
- */ Example Use:
- /************************************************************************************************************/
- int RefItemdata; ZASM Instruction:
- REFIDATA
- /**
- * Returns the present itemdata refrence from the stack. FOR DEBUGGING ONLY!
- * THIS WILL BE DISABLED IN RELEASE BUILDS !
- */ Example Use:
- /************************************************************************************************************/
- int RefLWeapon; ZASM Instruction:
- REFLWPN
- /**
- * Returns the present lweapon refrence from the stack. FOR DEBUGGING ONLY!
- * THIS WILL BE DISABLED IN RELEASE BUILDS !
- */ Example Use:
- /************************************************************************************************************/
- int RefEWeapon; ZASM Instruction:
- REFEWPN
- /**
- * Returns the present eweapon refrence from the stack. FOR DEBUGGING ONLY!
- * THIS WILL BE DISABLED IN RELEASE BUILDS !
- */ Example Use:
- /************************************************************************************************************/
- int RefNPC; ZASM Instruction:
- REFNPC
- /**
- * Returns the present npc refrence from the stack. FOR DEBUGGING ONLY!
- * THIS WILL BE DISABLED IN RELEASE BUILDS !
- */ Example Use:
- /************************************************************************************************************/
- int SP; ZASM Instruction:
- SP
- /**
- * Returns the value of the stack pointer. FOR DEBUGGING ONLY!
- * THIS WILL BE DISABLED IN RELEASE BUILDS !
- */ Example Use:
- /************************************************************************************************************/
- /************************************************************************************************************/
- /////////////
- /// NPC ///
- /////////////
- float UID; ZASM Instruction:
- NPCUID
- /**
- * Returns the UID of an npc.
- */ Example Use:
- /************************************************************************************************************/
- int GetPointer(npc *ptr[]); ZASM Instruction:
- NPCARRPTR
- /**
- * Returns the pointer of a item array as a float.
- */ Example Use:
- item arr[16];
- int size = SizeOfArray( GetPointer(arr) );
- //Size == 16
- /************************************************************************************************************/
- npc SetPointer(int value); ZASM Instruction:
- NPCARRPTR2
- /**
- * Converts an int pointer to the npc type, for assigning.
- */ Example Use:
- npc arr[16]; npc arrB[2]; int arrC[2];
- arrC[0] = GetPointer(arr);
- arrB[0] = SetPointer(arrC[0]);
- /************************************************************************************************************/
- int InvFrames; ZASM Instruction:
- NPCINVINC
- /**
- * Returns if the enemy is temporarily invincible, from being hit, or otherwise.
- * Returns the number of remaining invincibility frames if the enemy is invincible, otherwise 0.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int Invincible; ZASM Instruction:
- NPCSUPERMAN
- /**
- * Returns if the enemy is invincible, because of ( superman variable ).
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool HasItem; ZASM Instruction:
- NPCHASITEM
- /**
- * Returns if the enemy is holding the screen item.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool Ringleader; ZASM Instruction:
- NPCRINGLEAD
- /**
- * Returns if the enemy is a 'ringleader'.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- /************************************************************************************************************/
- /////////////
- /// FFC ///
- /////////////
- /************************************************************************************************************/
- int GetPointer(ffc *ptr[]); ZASM Instruction:
- FFCARRPTR
- /**
- * Returns the pointer of a ffc array as a float.
- */ Example Use:
- ffc arr[16];
- int size = SizeOfArray( GetPointer(arr) );
- //Size == 16
- /************************************************************************************************************/
- ffc SetPointer(int value); ZASM Instruction:
- FFCARRPTR2
- /**
- * Converts an int pointer to the ffc type, for assigning.
- */ Example Use:
- ffc arr[16]; ffc arrB[2]; int arrC[2];
- arrC[0] = GetPointer(arr);
- arrB[0] = SetPointer(arrC[0]);
- /************************************************************************************************************/
- //////////////
- /// Link ///
- //////////////
- /************************************************************************************************************/
- int Attack; ZASM Instruction:
- LINKUSINITEMA
- /**
- * Returns LinkClass::attack (?)
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int Animation; ZASM Instruction:
- LINKANIMTYPE
- /**
- * Link;s Animation style, as set in Quest->Graphics->Sprites->Link
- * Valid types are 0, 1, 2, and 3.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int WalkASpeed; ZASM Instruction:
- LINKWALKANMSPD
- /**
- * Link's Walking Animation speed as set in Quest->Graphics->Sprites->Link
- * valid types are:
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int SwimASpeed; ZASM Instruction:
- LINKSWIMSPD
- /**
- * Link's Swiming Animation speed as set in Quest->Graphics->Sprites->Link
- * valid types are:
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- /************************************************************************************************************/
- int HitHeight; ZASM Instruction:
- LINKHYSZ
- /**
- * link's Hitbox height in pixels starting from his 0x,0y (upper-left) corner, going down.
- * Note that this works on a per-sprite, per-direction basis.
- * If you wish to extend Link's hitbox upwards on the Y-Axis, set this value, and adjust his HitYOffset.
- * You can read a value that you assign to this (e.g. for custom collision functions).
- * This value is not preserved through sessions: Loading a saved game will reset it to the default.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int HitWidth; ZASM Instruction:
- LINKHXSZ
- /**
- * Link's Hitbox width in pixels starting from his x0,y0 (upper-left) corner, going right.
- * Note that this works on a per-sprite, per-direction basis.
- * This value is not preserved through sessions: Loading a saved game will reset it to the default.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- //Not implemented. Use Extend and Sprites.
- int TileWidth; ZASM Instruction:
- LINKTYSZ
- /**
- * Link's width, in tiles.
- * This is not usable, as Link->Extend cannot be set.
- * While setting it is not syntactically incorrect, it does nothing.
- * You can read a value that you assign to this (e.g. for custom/proxy sprite drawing).
- * This value is not preserved through sessions: Loading a saved game will reset it to the default.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- //Not implemented. Use Extend and Sprites.
- int TileHeight; ZASM Instruction:
- LINKTXSZ
- /**
- * Link's height, in tiles.
- * This is not usable, as Link->Extend cannot be set.
- * While setting it is not syntactically incorrect, it does nothing.
- * You can read a value that you assign to this (e.g. for custom/proxy sprite drawing).
- * This value is not preserved through sessions: Loading a saved game will reset it to the default.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- //Not implemented.
- int HitZHeight; ZASM Instruction:
- LINKHZSZ
- /**
- * The Z-axis height of Link's hitbox, or collision rectangle.
- * The lower it is, the lower a flying or jumping enemy must fly in order to hit Link.
- * To jump over a sprite, you must be higher than its Z + HitZHeight.
- * The values of DrawZOffset and HitZHeight are linked. Setting one, also sets the other.
- * Writing to this is ignored unless Extend is set to values >=3.
- * This is not usable, as Link->Extend cannot be set.
- * While setting it is not syntactically incorrect, it does nothing.
- * You can read a value that you assign to this (e.g. for custom collision functions).
- * This value is not preserved through sessions: Loading a saved game will reset it to the default.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int HitXOffset; ZASM Instruction:
- LINKHXOFS
- /**
- * The X offset of Link's hitbox, or collision rectangle.
- * Setting it to positive or negative values will move Link's hitbox left or right.
- * Writing to this is ignored unless Extend is set to values >=3.
- * Note that this works on a per-sprite, per-direction basis.
- * You can read a value that you assign to this (e.g. for custom collision functions).
- * This value is not preserved through sessions: Loading a saved game will reset it to the default.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int HitYOffset; ZASM Instruction:
- LINKHYOFS
- /**
- * The Y offset of Link's hitbox, or collision rectangle.
- * Setting it to positive or negative values will move Link's hitbox up or down.
- * Writing to this is ignored unless Extend is set to values >=3.
- * Note that this works on a per-sprite, per-direction basis.
- * You can read a value that you assign to this (e.g. for custom collision functions).
- * This value is not preserved through sessions: Loading a saved game will reset it to the default.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- //Not yet implemented
- int DrawXOffset; ZASM Instruction:
- LINKXOFS
- /**
- * The X offset of Link's sprite.
- * Setting it to positive or negative values will move the sprite's tiles left or right relative to its position.
- * Writing to this is ignored unless Extend is set to values >=3.
- * This is not usable, as Link->Extend cannot be set.
- * While setting it is not syntactically incorrect, it does nothing.
- * You can read a value that you assign to this.
- * This value is not preserved through sessions: Loading a saved game will reset it to the default.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- //Not yet implemented
- int DrawYOffset; ZASM Instruction:
- LINKYOFS
- /**
- * The Y offset of Link's sprite.
- * Setting it to positive or negative values will move the sprite's tiles up or down relative to its position.
- * Writing to this is ignored unless Extend is set to values >=3.
- * This is not usable, as Link->Extend cannot be set.
- * While setting it is not syntactically incorrect, it does nothing.
- * You can read a value that you assign to this.
- * This value is not preserved through sessions: Loading a saved game will reset it to the default.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- //! Link->Equipment is now read-write, and needs testing.
- //! It is also a pain to write bitwise values, to test it.
- int Equipment; ZASM Instruction:
- LINKEQUIP
- /**
- * Contains the item IDs of what is currently equiped to Link's A and B buttons.
- * The first 8 bits contain the A button item, and the second 8 bits contain the B button item.
- * If you are not comfortable with performing binary operations,
- * you can use the functions GetEquipmentA() or GetEquipmentB() in std.zh.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int ItemA; ZASM Instruction:
- LINKITEMA
- /**
- * Contains the item IDs of what is currently equiped to Link's A button.
- * Writing to this variable will set an item to the A-button.
- * This will occur even if the item is not in inventory, and not on the subscreen.
- * This will ignore if you have B+A or B-only subscreens, and force-set the item.
- * The intent of this is to allow scriters to easily create scripted subscreens.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int ItemB; ZASM Instruction:
- LINKITEMB
- /**
- * Contains the item IDs of what is currently equiped to Link's B button.
- * Writing to this variable will set an item to the A-button.
- * This will occur even if the item is not in inventory, and not on the subscreen.
- * The intent of this is to allow scriters to easily create scripted subscreens.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int SetItemSlot(int itm_id, int slot, int force);
- ZASM Instruction:
- SETITEMSLOT
- /**
- * This allows you to set Link's button items without binary operations, and to decide whether to
- * obey quest rules, or inventory.
- *
- * When using this, 'itm_id' is the ID number of the item.
- * Set 'slot' to one of the following: 0 == Slot B, 1 == Slot A
- * Other buttons may be added int he future, and other values for ;slot' are thus, reserved.
- * Set the flags on 'force' as follows:
- * const int ITM_REQUIRE_NONE = 0
- * const int ITM_REQUIRE_INVENTORY = 1
- * const int ITM_REQUIRE_A_SLOT_RULE = 2
- * Thus, require both inventory, and following quest slot rules, force == 3.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int Eaten; ZASM Instruction:
- LINKEATEN
- /**
- * This stores a counter for how long Link has been inside a LikeLike, or similar enemy.
- * It returns 0 if Link is not eaten, otherwise it returns the duration of him being eaten.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int Extend; ZASM Instruction:
- LINKEXTEND
- /**
- * Sets the extend value for all of Link's various actions for his current sprite, and direction.
- * This is equivalent to the Extend value set in Quest->Graphics->Sprites->Link when selecting
- * a tile, click on his sprites for any given action, and press the 'x' key.
- * The options are 16x16, 16x32, and 32x32; which correspond to Extend values of ( 0, 1, and 2 )
- * respectively.
- *
- * This also returns the present extend value of Link's sprite for his current direction and sprite.
- *
- * You may force-set all sprites, and directions to an extend value by assigning a negative number to
- * this variable, where -1 == 0 -2 == 1, -3 == 2, -4 == 3, and -5 == 4.
- *
- * See the 'LINKEXTEND_* values in std_constants for more details.
- */
- /************************************************************************************************************/
- int GetLinkExtend(int sprite, int dir); ZASM Instruction:
- SETLINKEXTEND
- /**
- * Gets the extend value for one of Link's various actions based on a direction.
- * This is equivalent to the Extend value set in Quest->Graphics->Sprites->Link when selecting a tile.
- * See 'std_constants' entries under LSPR_* for a list of the various attributes for 'sprite'.
- */
- /************************************************************************************************************/
- void SetLinkExtend(int sprite, int dir, int extend);
- ZASM Instruction:
- SETLINKEXTEND
- /**
- * Sets the extend value for one of Link's various actions.
- * This is equivalent to the Extend value set in Quest->Graphics->Sprites->Link when selecting a tile.
- * 'sprite' is the 'action', 'dir' is the sprite direction, and 'extend' is a value between 1 and 3.
- * An extend value of '4' is reserved for future implementations of Link->Hit/DrawOffsets ad HitWidth/height.
- * See 'std_constants' entries under LSPR_* for a list of the various attributes for 'sprite'.
- */
- /************************************************************************************************************/
- void SetLinkTile(int sprite, int dir, int tile)
- ZASM Instruction:
- SETLINKTILE
- /**
- * Sets the tile for Link's various actions. This is intended to work as OTile for Link.
- * 'sprite' is the action for the tile. See Quest->Graphics->Sprites->Link for a visual reference.
- * 'tile is the base tile for the sequence. It uses the animation style set in the sprites editor.
- * 'dir' is the direction for the tile.
- * See 'std_constants' entries under LSPR_* for a list of the various attributes for 'sprite'.
- *
- * See the 'LINKEXTEND_* values in std_constants for more details on possible extend values.
- */
- /************************************************************************************************************/
- int GetLinkTile(int sprite, int dir)
- ZASM Instruction:
- LINKGETTILE
- /**
- * Returns the OTile for one of Link's various actions.
- * 'sprite' is the action for the tile. See Quest->Graphics->Sprites->Link for a visual reference.
- * 'dir' is the direction for the tile.
- * See 'std_constants' entries under LSPR_* for a list of the various attributes for 'sprite'.
- */
- /************************************************************************************************************/
- /************************************************************************************************************/
- int WarpEffect; ZASM Instruction:
- WARPEFFECT
- /**
- * Sets a warp effect type prior to doing Screen->Warp
- * These replicate the in-build effects for tile warps.
- * see 'std_constants.zh' under WARPFX_* for a list of effects.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int WarpSound; ZASM Instruction:
- LINKWARPSOUND
- /**
- * Setting this to a value other than '0' will play that sound when Link warps.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool SideWarpSounds; ZASM Instruction:
- PLAYWARPSOUND
- /**
- * By default, even if you set a warp sound, it will not play in sidewarps.
- * If you enable this setting, the sound will play in side warps.
- * At present, this does not disable playing the sound otherwise. Set Link->WarpSound = 0 to do that.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool PitWarpSounds; ZASM Instruction:
- PLAYPITWARPSFX
- /**
- * By default, even if you set a warp sound, it will not play in pit warps.
- * If you enable this setting, the sound will play in a pit warp, one time.
- * This value resets after the pit warp, so it is mandatory to re-set it each time tat you desire a pit warp
- * to play a sound. Do this before Waitdraw().
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int UseWarpReturn; ZASM Instruction:
- LINKRETSQUARE
- /**
- * Setting this to a value between 0 and 3 will change the target return square for Link->Warp
- * Valid values are: 0 (A), 1 (B), 2 (C), and 3 (D). Other values will be clamed within this range.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int UsingItem; ZASM Instruction:
- LINKUSINITEM
- /**
- * Returns the ID of an item used when Link uses an item.
- * Setting this does nothing.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool Diagonal; ZASM Instruction:
- LINKDIAG
- /**
- * This corresponds to whether 'Diagonal Movement' is enabled, or not.
- * This will initially return true, or false, based on the setting in Quest->Graphics->Sprites->Link.
- * You may enable, or disable diagonal movement by writing to this value.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool BigHitbox; ZASM Instruction:
- LINKBIGHITBOX
- /**
- * This corresponds to whether 'Big Hitbox' is enabled, or not.
- * This will initially return true, or false, based on the setting in Quest->Graphics->Sprites->Link.
- * You may enable, or disable big hitbox, by writing to this value.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- //////////////
- /// Item ///
- //////////////
- float UID; ZASM Instruction:
- ITEMUID
- /**
- * Returns the UID of an item.
- */ Example Use:
- /************************************************************************************************************/
- int GetPointer(item *ptr[]); ZASM Instruction:
- ITEMARRPTR
- /**
- * Returns the pointer of a item array as a float.
- */ Example Use:
- item arr[16];
- int size = SizeOfArray( GetPointer(arr) );
- //Size == 16
- /************************************************************************************************************/
- item SetPointer(int value); ZASM Instruction:
- ITEMARRPTR2
- /**
- * Converts an int pointer to the item type, for assigning.
- */ Example Use:
- item arr[16]; item arrB[2]; int arrC[2];
- arrC[0] = GetPointer(arr);
- arrB[0] = SetPointer(arrC[0]);
- /************************************************************************************************************/
- int ACLock; ZASM Instruction:
- ITEMACLC
- /**
- * Returns the present tick of the animation clock.
- *
- */
- /************************************************************************************************************/
- //////////////////
- /// itemdata ///
- //////////////////
- int GetPointer(itemdata *ptr[]); ZASM Instruction:
- IDATAARRPTR
- /**
- * Returns the pointer of a itemdata array as a float.
- */ Example Use:
- itemdata arr[16];
- int size = SizeOfArray( GetPointer(arr) );
- //Size == 16
- /************************************************************************************************************/
- itemdata SetPointer(int value); ZASM Instruction:
- IDATAARRPTR2
- /**
- * Converts an int pointer to the itemdata type, for assigning.
- */ Example Use:
- itemdata arr[16]; itemdata arrB[2]; int arrC[2];
- arrC[0] = GetPointer(arr);
- arrB[0] = SetPointer(arrC[0]);
- /************************************************************************************************************/
- /************************************************************************************************************/
- ////////////
- /// npc ///
- ////////////
- float UID; ZASM Instruction:
- NPCUID
- /**
- * Returns the UID of an npc.
- */ Example Use:
- /************************************************************************************************************/
- int GetPointer(npc *ptr[]); ZASM Instruction:
- NPCARRPTR
- /**
- * Returns the pointer of a item array as a float.
- */ Example Use:
- item arr[16];
- int size = SizeOfArray( GetPointer(arr) );
- //Size == 16
- /************************************************************************************************************/
- npc SetPointer(int value); ZASM Instruction:
- NPCARRPTR2
- /**
- * Converts an int pointer to the npc type, for assigning.
- */ Example Use:
- npc arr[16]; npc arrB[2]; int arrC[2];
- arrC[0] = GetPointer(arr);
- arrB[0] = SetPointer(arrC[0]);
- /************************************************************************************************************/
- /************************************************************************************************************/
- int ScriptDefense[]; ZASM Instruction:
- NPCSCRDEFENSED
- /**
- * The npc's Script Weapon Defense values, as an array of 10 integers. Use the NPCSD_ and NPCDT_ constants
- * in std.zh to set or compare these values.
- *
- * This corresponds to the 'Defenses 3' tab in the Enemy Editor.
- */
- /************************************************************************************************************/
- /////////////////
- /// *weapon ///
- /////////////////*************************************************************/
- /////////////////
- /// LWeapon ///
- /////////////////
- float UID; ZASM Instruction:
- LWPNUID
- /**
- * Returns the UID of an lweapon.
- */ Example Use:
- /************************************************************************************************************/
- int GetPointer(lweapon *ptr[]); ZASM Instruction:
- LWPNARRPTR
- /**
- * Returns the pointer of a lweapon array as a float.
- */ Example Use:
- lweapon arr[16];
- int size = SizeOfArray( GetPointer(arr) );
- //Size == 16
- /************************************************************************************************************/
- lweapon SetPointer(int value); ZASM Instruction:
- LWPNARRPTR2
- /**
- * Converts an int pointer to the lweapon type, for assigning.
- */ Example Use:
- lweapon arr[16]; lweapon arrB[2]; int arrC[2];
- arrC[0] = GetPointer(arr);
- arrB[0] = SetPointer(arrC[0]);
- /************************************************************************************************************/
- int Range; ZASM Instruction:
- LWPNRANGE
- /**
- * The range of the weapon in pixels.
- * The range in pixels for boomerang and hookshot lweapons; and the duration in frames for arrow lweapons.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- /////////////////
- /// EWeapon ///
- /////////////////
- float UID; ZASM Instruction:
- EWPNUID
- /**
- * Returns the UID of an eweapon.
- */ Example Use:
- /************************************************************************************************************/
- int GetPointer(eweapon *ptr[]); ZASM Instruction:
- EWPNARRPTR
- /**
- * Returns the pointer of a eweapon array as a float.
- */ Example Use:
- eweapon arr[16];
- int size = SizeOfArray( GetPointer(arr) );
- //Size == 16
- /************************************************************************************************************/
- eweapon SetPointer(int value); ZASM Instruction:
- EWPNARRPTR2
- /**
- * Converts an int pointer to the eweapon type, for assigning.
- */ Example Use:
- eweapon arr[16]; eweapon arrB[2]; int arrC[2];
- arrC[0] = GetPointer(arr);
- arrB[0] = SetPointer(arrC[0]);
- /************************************************************************************************************/
- /************************************************************************************************************/
- //! This new mode does not work as intended, and will likely be deprecated by Screen->SetRenderSource
- void Quad ( int layer,
- int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4,
- int w, int h, int cset, int flip, int texture, int render_mode);
- ZASM Instruction:
- QUADR
- /**
- * Draws a quad on the specified layer with the corners x1,y1 through x4,y4.
- * Corners are drawn in a counterclockwise order starting from x1,y1. ( So
- * if you draw a "square" for example starting from the bottom-right corner
- * instead of the usual top-left, the the image will be textured onto the
- * quad so it appears upside-down. -yes, these are rotatable. )
- *
- * From there a single or block of tiles, combos **or a bitmap** is then texture mapped
- * onto the quad using the arguments w, h, cset, flip, and render_mode.
- * A positive vale in texture will draw the image from the tilesheet pages,
- * whereas a negative value will be drawn from the combo page. 0 will draw combo number 0.
- * Both w and h are undefined unless 1 <= blockh, blockw <= 16, and it is a power of
- * two. ie: 1, 2 are acceptable, but 2, 15 are not.
- *
- * To specify a bitmap as a texture, sum 65520 with the bitmap ID, or use the constant TEX_BITMAP + Bitmap
- * Example: Screen->Quad(6, 0, 0, 40, 25, 18, 50, 60, 110, 0, 0, 0, 0, TEX_BITMAP+RT_BITMAP0, PT_TEXTURE);
- *
- *
- * Flip specifies how the tiles/combos should be flipped when drawn:
- * 0: No flip
- * 1: Horizontal flip
- * 2: Vertical flip
- * 3: Both (180 degree rotation)
- * (!) See std.zh for a list of all available render_mode arguments.
- */ Example Use: !#!
- ///////////////////
- // Unimplemented //
- ///////////////////
- // Link->
- /************************************************************************************************************/
- //Implemented, but does nothing.
- void SetTile(int sprite, int tile, int dir, int flip)
- ZASM Instruction:
- LINKSETTILE
- /**
- * Sets the tile for Link's various actions.
- * 'sprite' is the action for the tile. See Quest->Graphics->Sprites->Link for a visual reference.
- * 'tile is the base tile for the sequence. It uses the animation style set in the sprites editor.
- * 'dir' is the direction for the tile.
- * 'flip' is the flip attribute for the tile.
- * See 'std_constants' entries under LSPR_* for a list of the various attributes for 'sprite'.
- */
- /************************************************************************************************************/
- //!Not Implemented in this build.
- int GetExtend(int sprite, int dir); ZASM Instruction:
- LINKGETEXTEND
- /**
- * Gets the extend value for one of Link's various actions.
- * This is equivalent to the Extend value set in Quest->Graphics->Sprites->Link when selecting a tile.
- * See 'std_constants' entries under LSPR_* for a list of the various attributes for 'sprite'.
- */
- /************************************************************************************************************/
- //Implemented, but does nothing.
- void SetExtend(int sprite, int dir, int extend); ZASM Instruction:
- LINKSETEXTEND
- /**
- * Sets the extend value for one of Link's various actions.
- * This is equivalent to the Extend value set in Quest->Graphics->Sprites->Link when selecting a tile.
- * See 'std_constants' entries under LSPR_* for a list of the various attributes for 'sprite'.
- */
- /************************************************************************************************************/
- //!Not Implemented in this build.
- int GetTile(int sprite, int dir, int flip)
- ZASM Instruction:
- LINKGETTILE
- /**
- * Returns the tile for one of Link's various actions.
- * 'sprite' is the action for the tile. See Quest->Graphics->Sprites->Link for a visual reference.
- * 'dir' is the direction for the tile.
- * 'flip' is the flip attribute for the tile.
- * See 'std_constants' entries under LSPR_* for a list of the various attributes for 'sprite'.
- */
- /************************************************************************************************************/
- // Screen->
- void TileArray ( int layer, int number_of_tiles,
- int tiles[],
- int x_positions[],
- int y_positions[],
- int csets[]);
- ZASM: TILEARRAY
- /**
- *
- * Draws a number of tiles specified by 'number_of_tiles' to 'layer'.
- * Specify the tiles by populating an array with their IDs and passing the array ointer to 'tiles'.
- * Specify the X coordinate for each by passing an array with their x coordinates to 'x_positions'.
- * Specify the Y coordinate for each by passing an array with their y coordinates to 'y_positions'.
- * Specify the CSet for each by passing an array with their csets to 'csets'.
- *
- * This function counts as a single draw.
- *
- * Transparency is not yet imlemented, but you may draw to a bitmap and render it translucent.
- *// Example:
- int tiles[4] = {16,19,31,20};
- int tilx[4]= {0, 16, 32, 48}:
- int tily[4]={8, 8, 8, 8);
- int tilc[4]={0,0,0,0};
- Screen->TileArray(6, 4, tiles, tilx, tily, tilc);
- /************************************************************************************************************/
- void PixelArray ( int layer, int number_of_pixels,
- int x_positions[],
- int y_positions[],
- int colours[]);
- ZASM: PIXELARRAY
- /**
- *
- * Draws a number of pixel, similar to PutPixel, specified by 'number_of_pixels' to 'layer'.
- * Specify the X coordinate for each by passing an array with their x coordinates to 'x_positions'.
- * Specify the Y coordinate for each by passing an array with their y coordinates to 'y_positions'.
- * Specify the colour for each by passing an array with their csets to 'colours'.
- *
- * This function counts as a single draw.
- *
- * Transparency is not yet imlemented, but you may draw to a bitmap and render it translucent.
- *// Example:
- int pix[4] = {16,19,31,20};
- int px[4]= {0, 16, 32, 48}:
- int py[4]={8, 8, 8, 8);
- int pc[4]={0x12,0xB0,0xDA,0x4F};
- Screen->TileArray(6, 4, pix, px, py, pc);
- /************************************************************************************************************/
- CreateBitmap(int id, int xsize, int ysize)
- * Min size 1, max 2048
- /************************************************************************************************************/
- SetRenderSource(int target, int x, int y, int w, int h)
- /************************************************************************************************************/
- void Polygon ( int layer, ... );
- ZASM: POLYGON
- * Adding to Beta 9 : Postponed -Z
- /************************************************************************************************************/
- // Game->
- //! These do not yet work:
- //Returns Screen->Door[index] for a given DMap and Screen
- int GetDMapScreenDoor( int dmap, int screen, int index )
- //Sets Screen->Door[index] for a given DMap and Screen to 'value'
- void SetDMapScreenDoor( int dmap, int screen, int index, int value)
- //Returns Screen->State[index] for a given DMap and Screen
- bool GetDMapScreenState( int dmap, int screen, int index )
- //Sets Screen->State[index] for a given DMap and Screen to 'value'
- void SetDMapScreenState( int dmap, int screen, int index, bool value)
- /************************************************************************************************************/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement