Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //b52
- ///////////////////////
- /// Zelda Classic ///
- ///////////////////////
- You may not enable, or disable the Debug Console from the Misc menu.
- ////////////////
- /// ZQuest ///
- ////////////////
- The Enemy Editor now had an additional tab, 'Defenses 3'. In this tab, you will find settings for configuring
- enemy defences for each of the ten LW_SCRIPT* types. These otherwise work as normal weapon defences, and
- correspond to npc->ScriptDefense[] in ZScript.
- Quests made in versions prior to 2.54 have no knowledge of these types, and will fall back on the generic 'Script'
- defence type. This type should no longer be used to configure enemies, as it will be ignored in quests saved in
- 2.54.
- Further, the following new defence outcomes exist:
- Trigger Secrets: Hitting the enemy with this weapon type will trigger all the secrets on the screen.
- Double Damage : Weapon inflicts 2x damage.
- Triple Damage : Weapon inflicts 3x damage.
- Quadruple Damage : Weapon inflicts 4x damage.
- Block if Damage < 10 : Blocks the weapon if its power is < 10.
- Enemy Gains HP = Damage : The enemy gains HP equal to the damage of the weapon. Note that this is not capped!
- The other 'Block if < n' defence outcomes have been renamed to 'Block if Damage < n', for clarity.
- Other new defence outcomes have been added to the enemy editor, but they do nothing.
- You may now export a quest to the old 2.50 format. To do this, go to the menu: File->Export->2.50.x Quest
- !WARNING: All new features will be lost. Scripts may need to be recompiled, and may misbehave if the quest
- is opened in 2.50.x ZC. Old enemy packfile variables are preserved, so this is not a concern, but
- enemies lose new properties when converting.
- The intent of this is to allow a user to intentionally downgrad a quest saved in 2.54.
- The colour selector used for palette editing now supports the following new hotkeys:
- Shift+H: Increase Hue
- Control+H: Decrease Hue
- SHift+S: Increase Saturation
- Control+S: Decrease Saturation
- Shift+B: Increase Brightness
- Control+B: Decrease Brightness
- The Combo Editor now has many new flags that you may use in conjunction with scripts.
- Some of these may later be implemented as internal flags with defined behaviour.
- This includes flags for the most popular scripts, such as pits, and holes.
- New String Control Codes for 2.54
- +-----------------------------+
- | WARP EFFECT CODES |
- +-----------------------------+
- \26\X\X - Warp Link. Argument 1 is the DMap, Argument 2 is te Screen ID.
- \27\X\X\X - Warp Link. Argument 1 is the DMap, Argument 2 is te Screen ID, Argument 3 is the Warp Return.
- \28\X\X\X\X - Warp Link. Argument 1 is the DMap, Argument 2 is te Screen ID, Argument 3 is the Warp Return.
- Argument 4 is a sound to play, using the sound ID from Quest->Qudio->SFX
- \29\X\X\X\X\X - Warp Link. Argument 1 is the DMap, Argument 2 is te Screen ID, Argument 3 is the Warp Return.
- Argument 4 is a sound to play, using the sound ID from Quest->Qudio->SFX
- Argument 5 is a WARP EFFECT (see below).
- Warp Return Values: 0 = A, 1 = B, 2 = C, 3 = D.
- Warp Effect Types:
- 0: None
- 1: Instant
- 2: Instant (Blackout)
- 3: Instant (Opening Wipe)
- 4: Instant (Zap Effects)
- 5: Instant (Wavy Effects)
- 6: Reset Room
- 7: Scrolling
- +-----------------------------+
- | MISC EFFECT CODES |
- +-----------------------------+
- \18\X\X - Set Screen->D[reg] on this screen, where Argument 1 is the [register] and Argument 2 is the value to set.
- \19\X\X\X - Set Screen->D[reg] on another screen, where Argument 1 is the Screen (on this DMap), Argument 1 is
- the [reg], and Argument 3 is the value.
- \23\X\X\X\X - Set Screen->D on any DMap, or screen in the game. Argument 1 is the DMap, Argument 1 is the screen,
- Argument 3 is the [reg], and Argument 4 is the value.
- //////////////////////////
- /// ZScript Language ///
- //////////////////////////
- ZScript now supports function pointers, using the following syntax:
- @ptr
- /************************************************************************************************************/
- ZScript now supports comment blocks, using the following syntax
- /*
- COMMENT BLOCK
- */
- /************************************************************************************************************/
- Arrays now support being declared with a formula, or a constant:
- int arr[10*4];
- const int ARRSIZE = 40; //Added, but not active in this build.
- int arr[ARRSIZE]; //Added, but not active in this build.
- This is now the same as int arr[40];
- /************************************************************************************************************/
- Nesting array calls should now work properly. (e.g. arrA[ arrB[ arrC[ arrd[4] ] ] ] )
- /************************************************************************************************************/
- /////////////////
- /// Example ///
- ///////////////////////////////////////////////////////////////////////////////////////
- void test() {
- Trace(-99);
- }
- void test(int x) {
- Trace(x);
- }
- ffc script test{
- void run(){
- int arr[8*2]; //Declares an array with a size of 16.
- /*
- You can now place declarations on a single line, by type.
- The following are all ints:
- */
- int a = 6, b = 40, c = @test;
- /*
- @test uses the new function pointers.
- */
- c(); //Because c was pointed at test(), it traces '-99'.
- c = @test(int); //Now reassigned.
- c( a+b ); //Traces '46'.
- arr[1] = c( a*b ); //Places the value '240' into index [1] of the array.
- }
- }
- // 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 SizeOfArrayBool(bool array[]); ZASM Instruction:
- ARRAYSIZEB d2
- /**
- * Returns the index size of the array pointed by 'array'.
- * As SizeOfArray(int *ptr), save that it works specifically with bool typed arrays.
- * Useful in for loops.
- *
- */ Example Use:
- /************************************************************************************************************/
- int SizeOfArrayFFC(ffc array[]); ZASM Instruction:
- ARRAYSIZEF d2
- /**
- * Returns the index size of the array pointed by 'array'.
- * As SizeOfArray(int *ptr), save that it works specifically with ffc typed arrays.
- * Useful in for loops.
- *
- */ Example Use:
- /************************************************************************************************************/
- int SizeOfArrayNPC(npc array[]); ZASM Instruction:
- ARRAYSIZEN d2
- /**
- * Returns the index size of the array pointed by 'array'.
- * As SizeOfArray(int *ptr), save that it works specifically with npc typed arrays.
- * Useful in for loops.
- *
- */ Example Use:
- /************************************************************************************************************/
- int SizeOfArrayItem(item array[]); ZASM Instruction:
- ARRAYSIZEI d2
- /**
- * Returns the index size of the array pointed by 'array'.
- * As SizeOfArray(int *ptr), save that it works specifically with item typed arrays.
- * Useful in for loops.
- *
- */ Example Use:
- /************************************************************************************************************/
- int SizeOfArrayItemdata(itemdata array[]);
- ZASM Instruction:
- ARRAYSIZEID d2
- /**
- * Returns the index size of the array pointed by 'array'.
- * As SizeOfArray(int *ptr), save that it works specifically with itemdata typed arrays.
- * Useful in for loops.
- *
- */ Example Use:
- /************************************************************************************************************/
- int SizeOfArrayLWeapon(lweapon array[]);
- ZASM Instruction:
- ARRAYSIZEL d2
- /**
- * Returns the index size of the array pointed by 'array'.
- * As SizeOfArray(int *ptr), save that it works specifically with lweapon typed arrays.
- * Useful in for loops.
- *
- */ Example Use:
- /************************************************************************************************************/
- int SizeOfArrayEWeapon(eweapon array[]);
- ZASM Instruction:
- ARRAYSIZEE d2
- /**
- * Returns the index size of the array pointed by 'array'.
- * As SizeOfArray(int *ptr), save that it works specifically with eweapon typed arrays.
- * Useful in for loops.
- *
- */ Example Use:
- /************************************************************************************************************/
- void OverlayTile(int firsttile, int secondtile); ZASM Instruction:
- OVERLAYTILEVV
- OVERLAYTILEVR
- OVERLAYTILERV
- OVERLAYTILERR
- /**
- * Overlays secondtile onto firsttile, ignoring all pixels of colour 0.
- * The valid tile value range is 0 to 65519.
- * This change is *TEMPORARY* within the quest file
- * and will not be retained when saving the game.
- *
- */ Example Use:
- /************************************************************************************************************/
- //////////////
- /// GAME ///
- //////////////
- int GetMaxMaps()
- int MapCount() ZASM Instruction
- GETMAXMAPS
- /**
- *
- * Returns the number of maps used by a quest.
- *
- *
- * /
- /************************************************************************************************************/
- 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 GreyscaleOn() ZASM Instruction
- GREYSCALEON
- /**
- * Renders the entire display in greyscale.
- */ Example Use: !#!
- /************************************************************************************************************/
- void GreyscaleOff() ZASM Instruction
- GREYSCALEOFF
- /**
- * Returns the display rendering to colour.
- */ Example Use: !#!
- /************************************************************************************************************/
- int DMapPalette[]; ZASM Instruction:
- DMAPLEVELPAL
- /**
- * An array of 512 integers containing each DMap's Level Palette
- */ 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: !#!
- /************************************************************************************************************/
- int Version; ZASM Instruction:
- ZELDAVERSION
- /**
- * Returns the version of ZC being used.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int Build; ZASM Instruction:
- ZELDABUILD
- /**
- * Returns the Build ID of the version of ZC being used.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int Beta; ZASM Instruction:
- ZELDABETA
- /**
- * Returns the Beta ID of the version of ZC being used. If the build is not a beta, this returns 0.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool DisableActiveSubscreen; ZASM Instruction:
- NOACTIVESUBSC
- /**
- * If set true, the active subscreen will not fall into view ehen the player presses Start.
- *
- */ 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:
- /************************************************************************************************************/
- ////////////////
- /// Screen ///
- ////////////////
- lweapon CreateLWeaponDx(int type, int baseitem)
- ZASM Instruction
- CREATELWEAPONDX
- /**
- *
- * Create an lweapon with the type 'type', using data as if the weapon was created
- * by using the item 'item_id', thus forwarding sprites, sounds, and other values.
- *
- *
- * /
- /************************************************************************************************************/
- /////////////
- /// 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: !#!
- /************************************************************************************************************/
- 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.
- */
- /************************************************************************************************************/
- /////////////
- /// FFC ///
- /////////////
- int ID; ZASM Instruction
- FFCID
- /**
- * Returns the screen index of the FFC.
- * Can be set, to change the index of a pointer, but this requires testing and may be unstable.
- *
- */
- /************************************************************************************************************/
- 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 InvFrames; ZASM Instruction:
- LINKINVFRAME
- /**
- * The number of frames for which Link is invincible, when hit by an enemy or weapon.
- * This returns how long Link will remain invincible, or you may set it to a value between 0 and 214747.
- * Returns 0 if Link is not invincible.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool InvFlicker; ZASM Instruction:
- LINKCANFLICKER
- /**
- * Set true by default. If this is true, Link will either flicker, or flash when invincible, depending
- * on your Quest rules settings. If set false, Link will neither flash, nor flicker when invincible.
- */ Example Use: !#!
- /************************************************************************************************************/
- int HurtSound; ZASM Instruction:
- LINKHURTSFX
- /**
- * The sound that plays when Link is injured. By default this is '16', but you may change it at any time.
- *
- */ 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'.
- */
- /************************************************************************************************************/
- //TO DEPRECATE
- int WalkTile, SwimTile, DiveTile, SlashTile, JumpTile, ChargeTile, StabTile, CastingTile, PoundTile, FloatTile
- Hold1LandTile, Hold2LandTile, Hold1WaterTile, Hold2WaterTile;
- ZASM Instructions:
- LINKWALKTILE, LINKSWIMTILE, LINKDIVETILE, LINKSLASHTILE, LINKJUMPTILE
- LINKCHARGETILE, LINKSTABTILE, LINKCASTTILE, LINKPOUNDTILE, LINKFLOATTILE,
- LINKHOLD1LTILE, LINKHOLD2LTILE, LINKHOLD1WTILE, LINKHOLD2WTILE
- /**
- * A series of fourteen individual setter/getter ints to set or return the tile for all of Link's various actions.
- *
- * In future, setting this values of 0 through 4 will set Link->Extend based on Link's present drection and
- * sprite and values of -1 through -5 will force Extend = 0 through Extend = 4 for all sprites and directions.
- *
- * Checking this will return the tile value for the desired sprite using Link's current direction.
- * Setting this will set the tile for the sprite in Link's current direction.
- *
- * These exist to manually test getting, and setting values to these sprites, and are scheduled to be removed
- * in a future build, supplanted by Link->SetLinkTile(int sprite, int dir, int tile)
- */
- /************************************************************************************************************/
- 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: !#!
- /************************************************************************************************************/
- float Misc[32]; ZASM Instruction:
- LINKMISC
- LINKMISCD
- /**
- * An array of 32 miscellaneous variables for you to use as you please.
- * These variables are not saved with Link.
- *
- */ 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]);
- /************************************************************************************************************/
- int ID; ZASM Instruction:
- IDATAID
- /**
- * Returns the item number of the item in question.
- * Can be called with this->ID in item scripts.
- */ Example Use: !#!
- /************************************************************************************************************/
- int Modifier; ZASM Instruction:
- IDATALTM
- /**
- * The Link Tile Modifier
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int Tile; ZASM Instruction:
- IDATATILE
- /**
- * The tile used by the item.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int CSet; ZASM Instruction:
- IDATAID
- /**
- * The CSet of the tile used by the item.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int Flash; ZASM Instruction:
- IDATAFLASH
- /**
- * The Flash value for the CSet
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int AFrames; ZASM Instruction:
- IDATAFRAMES
- /**
- * The number of animation frames in the item's tile animation.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int ASpeed; ZASM Instruction:
- IDATAASPEED
- /**
- * The speed of the item's animation.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int Delay; ZASM Instruction:
- IDATADELAY
- /**
- * The Delay value, before the animation begins.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int Script; ZASM Instruction:
- IDATAID
- /**
- * The Action Script for the item.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int PScript; ZASM Instruction:
- IDATAID
- /**
- * The Pickup Script for the item.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int MagicCost; ZASM Instruction:
- IDATAID
- /**
- * The item's maic (or rupees, if this is set) cost.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int MinHearts; ZASM Instruction:
- IDATAID
- /**
- * The minimum number of hearts required to pick up the item.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int Attributes[10]; ZASM Instruction:
- IDATAATTRIB
- /**
- * An array of ten integers containing the Attributes values.
- * These correspond to the text entry fields, in the item editor 'Data' tab.
- *
- */
- /************************************************************************************************************/
- int Sprites[10]; ZASM Instruction:
- IDATASPRITES
- /**
- * An array of ten integers containing the Sprites values.
- * These correspond to the pull-down options in the item editor 'Action' tab. .
- *
- */
- /************************************************************************************************************/
- bool Flags[5]; ZASM Instruction:
- IDATAFLAGS
- /**
- * An array of five multipurpose boolean flags. The properties of this flag change based on the item class (family).
- * Flag[0] corresponds to the box directly below 'Equiment Item'. For swords, this is 'B.H. is Percent'.
- * Flag[1] corresponds to the box directly below 'Flag 1'. For swords, this is 'B.D. is Percent'.
- * Flag[2] corresponds to the box directly right of 'Equiment Item'. For swords, this is 'B. Penetrates Enemies'.
- * Flag[3] corresponds to the box directly right of 'Flag 2'. For swords, this is 'Can Slash'.
- * Flag[4] corresponds to the box directly below 'Flag 4'.For swords, this is '<Unused>', and greyed out.
- *
- * Scripted item classes may make use of these as a general-purpose script flags.
- * See 'zscript_itemdata.txt' for more information on what this flag does, based on the item class.
- */
- /************************************************************************************************************/
- int Misc1, Misc2, Misc3, Misc4, Misc5, Misc6, Misc7, Misc8, Misc9, Misc10;
- ZASM Instructions:
- IDATAMISC1, IDATAMISC2, IDATAMISC3, IDATAMISC4, IDATAMISC5
- IDATAMISC6, IDATAMISC7, IDATAMISC8, IDATAMISC9, IDATAMISC10
- /**
- * These correspond to the pull-down options in the item editor 'Data' tab.
- *
- * Example: For a Sword Misc1 is 'Beam hearts', and Misc2 is 'Beam .
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- int Attribute1, Attribute2, Attribute3, Attribute4, Attribute5, Attribute6,
- Attribute7, Attribute8, Attribute9, Attribute10;
- ZASM Instructions:
- IDATAWPN, IDATAWPN2, IDATAWPN3, IDATAWPN4, IDATAWPN5
- IDATAWPN6, IDATAWPN7, IDATAWPN8, IDATAWPN9, IDATAWPN10
- /**
- * These correspond to the pull-down options in the item editor 'Action' tab.
- *
- * Example: For a Sword Attribute1 is 'Sprite', Attribute 2 is 'Slash sprite'
- * and Attribute 3 is 'Beam sprite'.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool Combine; ZASM Instruction:
- IDATACOMBINE
- /**
- * Corresponds to 'Upgrade when collected twice'.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool Downgrade; ZASM Instruction:
- IDATADOWNGRADE
- /**
- * Corresponds to the 'Remove When Used' option on the Action tab of the item editor.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool KeepOld; ZASM Instruction:
- IDATAKEEPOLD
- /**
- * Corresponds to 'Keep lower level items on the Pickup tab of the item editor.
- * NOTE: Not to be confused with 'Keep', which corresponds to the 'Equipment Item' box.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool RupeeCost; ZASM Instruction:
- IDATARUPEECOST
- /**
- * Corresponds to the 'Use Rupees Instead of Magic' option on the item editor 'Action' tab.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool Edible; ZASM Instruction:
- IDATAEDIBLE
- /**
- * Corresponds to the 'Can be Eaten by Enemies' box on the Pickup tab of the item editor.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool GainLower; ZASM Instruction:
- IDATAGAINLOWER
- /**
- * Corresponds to the 'Gain All Lower Level Items' box on the Pickup tab of the item editor.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool Flag1; ZASM Instruction:
- IDATAFLAG1
- /**
- * Multipurpose Flag 1
- *
- * The properties of this flag change based on the item class (family).
- * This corresponds to the box directly below 'Equiment Item'.
- * For swords, this is 'B.H. is Percent'.
- * Scripted item classes may make use of this as a general-purpose 'Script 1' flag.
- * See 'zscript_itemdata.txt' for more information on what this flag does, based on the item class.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool Flag2; ZASM Instruction:
- IDATAFLAG2
- /**
- * Multipurpose Flag 2
- *
- * The properties of this flag change based on the item class (family).
- * This corresponds to the box directly below 'Flag 1, or two boxes down from 'Equiment Item'.
- * For swords, this is 'B.D. is Percent'.
- * Scripted item classes may make use of this as a general-purpose 'Script 2' flag.
- * See 'zscript_itemdata.txt' for more information on what this flag does, based on the item class.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool Flag3; ZASM Instruction:
- IDATAFLAG3
- /**
- * Multipurpose Flag 3
- *
- * The properties of this flag change based on the item class (family).
- * This corresponds to the box directly right of 'Equiment Item'.
- * For swords, this is 'B. Penetrates Enemies'.
- * Scripted item classes may make use of this as a general-purpose 'Script 3' flag.
- * See 'zscript_itemdata.txt' for more information on what this flag does, based on the item class.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool Flag4; ZASM Instruction:
- IDATAFLAG4
- /**
- * Multipurpose Flag 4
- *
- * The properties of this flag change based on the item class (family).
- * This corresponds to the box directly right of 'Flag 2'.
- * For swords, this is 'Can Slash'.
- * Scripted item classes may make use of this as a general-purpose 'Script 4' flag.
- * See 'zscript_itemdata.txt' for more information on what this flag does, based on the item class.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool Flag5; ZASM Instruction:
- IDATAFLAG5
- /**
- * Multipurpose Flag 5
- *
- * The properties of this flag change based on the item class (family).
- * This corresponds to the box directly below 'Flag 4'.
- * For swords, this is '<Unused>', and greyed out.
- * Scripted item classes may make use of this as a general-purpose 'Script 5' flag.
- * See 'zscript_itemdata.txt' for more information on what this flag does, based on the item class.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- bool Unused; ZASM Instruction:
- IDATAFLAGUNUSED
- /**
- * ? - An extra script-only flag. It's a mystery to everyone.
- * Likely best left unused in the event that we need to reserve it.
- *
- */ 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: !#!
- /************************************************************************************************************/
- 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.
- */
- /************************************************************************************************************/
- float Misc[32]; ZASM Instruction:
- NPCMISCD
- /**
- * An array of 32 miscellaneous variables for you to use as you please.
- */
- /************************************************************************************************************/
- /////////////////
- /// *weapon ///
- /////////////////
- float Misc[32]; ZASM Instruction:
- LWPNMISCD
- EWPNMISCD
- /**
- * An array of 32 miscellaneous variables for you to use as you please.
- */ Example Use: !#!
- /************************************************************************************************************/
- /////////////////
- /// 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]);
- /************************************************************************************************************/
- ////////////////
- /// Screen ///
- ////////////////
- void WavyIn(); ZASM Instruction:
- WAVYIN
- /**
- * Replicates the warping screen wave effect (inbound) from a tile warp.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- void WavyOut(); ZASM Instruction:
- WAVYOUT
- /**
- * Replicates the warping screen wave effect (outbound) from a tile warp.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- void ZapIn(); ZASM Instruction:
- ZAPIN
- /**
- * Replicates the warping screen zap effect (inbound) from a tile warp.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- void ZapOut(); ZASM Instruction:
- ZAPOUT
- /**
- * Replicates the warping screen zap effect (outbound) from a tile warp.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- void OpeningWipe(); ZASM Instruction:
- OPENWIPE
- /**
- * Replicates the opening wipe screen effect (using the quest rule for its type) from a tile warp.
- *
- */ Example Use: !#!
- /************************************************************************************************************/
- void DrawBitmapEx ( int layer,
- int bitmap_id,
- int source_x, int source_y, int source_w, int source_h,
- int dest_x, int dest_y, int dest_w, int dest_h,
- float rotation, int cx, int cy, int mode, int lit, bool mask);
- ZASM: BITMAPEXR
- /**
- *
- * As DrawBitmap(), except that it can do more things.
- *
- * The 'mode' parameter sets up drawing modes. AT PRESENT this supports normal opaque drawing as DrawBitmap()
- * AND it supports TRABSLUCENT MODE, which will allow drawing translucent bitmaps.
- * The translucent mode does not yet support rotation, and all other modes are temporarily suspended, pending
- * full implementation.
- *
- * See std_constants.zh, under BITDX_* (or possibly we'll change this to BMPDX_* later?) for a list of modes,
- * and more information
- *
- * cx, cy: Used for pivot
- * lit: used for lit colour in light table (may not work).
- /************************************************************************************************************/
- BitmapQuad
- //sdci[1]=layer
- //sdci[2]=x1
- //sdci[3]=y1
- //sdci[4]=x2
- //sdci[5]=y2
- //sdci[6]=x3
- //sdci[7]=y3
- //sdci[8]=x4
- //sdci[9]=y4
- //sdci[10]=sourcex
- //sdci[11]=sourcey
- //sdci[12]=sourcew
- //sdci[13]=sourceh
- //sdci[14]=width
- //sdci[15]=height
- //sdci[16]=tile/combo
- //sdci[17]=polytype
- void ComboArray ( int layer, int number_of_combos,
- int combos[],
- int x_positions[],
- int y_positions[],
- int csets[]);
- ZASM: COMBOARRAY
- /**
- *
- * Draws a number of combos specified by 'number_of_combos' to 'layer'.
- * Specify the combos by populating an array with their IDs and passing the array ointer to 'combos'.
- * 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 combos[4] = {16,19,31,20};
- int cmbx[4]= {0, 16, 32, 48}:
- int cmby[4]={8, 8, 8, 8);
- int cmbc[4]={0,0,0,0};
- Screen->ComboArray(6, 4, combos, cmbx, cmby, cmbc);
- /************************************************************************************************************/
- //! 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