// std_constants.zh for ZC v2.50.2 and later. // 22-FEB-2016 // Contains required constants for std.zh and ZScript functions. /////////////////////// /// Mathematical values const float PI = 3.1416; const float PI2 = 6.2832; const float E = 2.7183; const int NULL = 0; const int RADIAN = 57.2958; //Multiplication value for converting degrees to radians. const float DEGREE = 0.0174; //Multiplication value for converting radians to degrees. const int SQRT_ERROR = 464; // The return value of SafeSqrt() if a negative value is passed. const float SQRT_MAX = 463.4095; //The largest square root thet ZC can return. //const int DIAGONAL = //////////////////////////// /// ZC Minimums and Maximums const float MAX_CONSTANT = 214747.9999; const float MAX_FLOAT = 214747.9999; //const float MAX_VARIABLE = 214748.3648; //Obviously this is truncated as a constant. Equal to ((2^31)-1)/10000 const float MIN_CONSTANT = -214747.9999; //! This is because of a bug. The minimum (negative) float //! **is** -214747.9999, but the min (negative) const float //! is -021473.0001 because of an error in char counting including the sign. //!...and will be fixed in 2.50.3. //2.50.0 to 2.50.2 SPECIAL Constant Minimums const int MIN_CONST_INT = -99999; //! This is due to a bug in 2.50.2 and earlier. //! ...and will be fixed in 2.50.3 to -214747. const float MIN_CONST_FLOAT = -21473.0001; //! This is because of a bug. The minimum (negative) float //! **is** -214747.9999, but the min (negative) const float //! is -021473.0001 because of an error in char counting including the sign. //!...and will be fixed in 2.50.3. const int MAX_SCRIPTDRAWINGCOMMANDS = 1000; const int MAX_INT = 214747; const int MIN_INT = -99999; //This value is assigned to the constant due to the bug involving negative constants in 2.50.0-2.50.2. //MIN_INT for variables is -214747 const int MIN_FLOAT = -21473.0001; //This value is a ZC bug, and will be fixed in 2.50.3. //MIN_FLOAT for variables is -214747 const int MAX_COUNTER = 32768; //or is this 32767, counting 0? const int MIN_COUNTER = -32768; //" -32767 const int MIN_LWEAPON = 1; //Lowest numbered objects. const int MIN_EWEAPON = 1; const int MIN_NPC = 1; const int MIN_ITEM = 1; const int MAX_LWEAPON = 255; //1 to 255. const int MAX_EWEAPON = 255; //1 to 255. const int MAX_NPCS = 255; //1 to 255. const int MAX_ITEM = 255; //1 to 255; //!This is already called in stdExtra.zh //! Fixed; de-pluralised all. const int MIN_FFC = 1; const int MAX_FFC = 32; const int MIN_OBJ = 1; //Short, const for loops. const int MAX_OBJECT_POINTERS = 255; //Max of any one type. const int MAX_WEAPON_POINTERS = 510; //eweapon and lweapon combined. const int MAX_TOTAL_OBJECT_POINTERS = 1020; //Max shared, across the three types. const int MAX_SPRITES = 1020; //npc, eweapon, and lweapon const int MAX_DRAWING = 1000; //Maximum number of simultaneous drawing commands. const int MIN_BITMAP_X = 0; //Legal Bitmap Region for Drawing const int MAX_BITMAP_X = 511; const int MIN_BITMAP_Y = 0; const int MAX_BITMAP_Y = 511; const int MAX_GLOBAL_VARIABLES = 255; const int MAX_VARIABLES = 255; //Vars in operation at any one time. const int MAX_BITSPERVARIABLE = 18; const int MAX_ARRAY_POINTERS = 4095; //Arrays in operation. const int MAX_TILES = 65519; const int MAX_COMBOS = 65279; const int MAX_STRINGS = 65519; //Strings in String Editor const int HP_PER_HEART = 16; const int MP_PER_BLOCK = 32; const int MAX_MESSAGES = 65535; const int MAX_MESSAGELENGTH = 145; //Pass an array of (at least) this size to Game->GetMessage const int MAX_MAPS = 256; const int MAX_DMAPS = 512; const int MAX_DMAPNAMELENGTH = 21; //Size of arrays to pass to Game->GetDMapX const int MAX_DMAPTITLELENGTH = 21; const int MAX_DMAPINTROLENGTH = 73; //FFC Size Limitations const int MAX_FFC_W = 4; //Four tiles wide const int MAX_FFC_H = 4; //Four tiles high const int MAX_FFC_EFFECT_W = 64; //Sixty-four pixels wide. const int MAX_FFC_EFFECT_H = 64; //Sixty four pixels high. ///////////////////// /// Screen Dimensions const int SCREEN_W = 256; //X width of the Screen, starting at 0 (left) and goign right). //!SCREEN_WIDTH is already called in stdExtra.zh const int SCREEN_H = 176; //Y height of the screen, starting at 0 (top), going down. //!SCREEN_HEIGHT is already called in stdExtra.zh const int SCREEN_RIGHT = 255; //The rightmost screen pixel. const int SCREEN_LEFT = 0; //The leftmost screen pixel. const int SCREEN_TOP = 0; //The top screen pixel, below the subscreen. const int SCREEN_BOTTOM = 175; //The lowest screen pixel. const int SUBSCREEN_BOTTOM = -1; //Bottom of passive subscreen. const int SUBSCREEN_TOP = -56; //Top of passive subscreen. //! In stdExtra.zh, this is -64. ?! /////////////////// /// Game Properties //Defaults from Init Data const float GRAVITY = 0.16; const float TERMINAL_VELOCITY = 3.20; const int JUMPING_LAYER_THRESHOLD = 16; //CSet Initial Colour Swatch positions const int CSET_0 = 0; //Sixteen colours per, starting at '0' each. const int CSET_1 = 16; const int CSET_2 = 32; const int CSET_3 = 48; const int CSET_4 = 64; const int CSET_5 = 80; const int CSET_6 = 96; const int CSET_7 = 112; const int CSET_8 = 128; const int CSET_9 = 144; const int CSET_10 = 160; const int CSET_11 = 176; const int CSET_12 = 192; const int CSET_13 = 208; //Warning: Using CSets 13 through 15 is not officially supported, const int CSET_14 = 224; // and may affect compatibility with future ZC builds. const int CSET_15 = 240; //Sound effect IDs. To be used for PlaySound(). const int SFX_ARROW = 1; // Arrow is fired. const int SFX_BEAM = 2; // Sword beam is fired. const int SFX_BOMB = 3; // Bomb explodes. const int SFX_BRANG = 4; // Boomerang spinning. const int SFX_CHARGE1 = 35; // Sword powering up. const int SFX_CHARGE2 = 36; // Sword powering up again (Hurricane Spin). const int SFX_CURSOR = 5; // Subscreen cursor. const int SFX_CLINK = 6; // Shield is hit. const int SFX_CLEARED = 7; // Chime when screen item appears. const int SFX_DINSFIRE = 37; // Din's Fire blast. const int SFX_DODONGO = 8; // Dodongo's roar. const int SFX_SHUTTER = 9; // Shutter bang. const int SFX_EDEAD = 10; // Enemy is killed. const int SFX_EHIT = 11; // Enemy is hit. const int SFX_LOWHP = 12; // Low hearts warning beep. const int SFX_FALL = 38; // Enemy falls from ceiling (unused). const int SFX_FARORESWIND = 39; // Farore's Wind spell. const int SFX_FIRE = 13; // Flame roar. const int SFX_FIREBALL = 40; // Enemy fireball. const int SFX_GANON = 14; // Music when Ganon appears/dies. const int SFX_GASP = 15; // Boss is hit. const int SFX_GRASSCUT = 41; // Grass or bush slashed. const int SFX_HAMMER = 16; // Hammer pound. const int SFX_HAMMERPOST = 42; // Pounded a post. const int SFX_HOOKSHOT = 17; // Hookshot chain rattle. const int SFX_HOVER = 43; // Hover boots. const int SFX_ICE = 44; // Unused. const int SFX_JUMP = 45; // Jumping. const int SFX_LENSOFF = 46; // Lens of Truth off. const int SFX_LENSON = 47; // Lens of Truth on. const int SFX_MSG = 18; // Message typing. const int SFX_NAYRUSLOVE1 = 48; // Nayru's Love shield hum. const int SFX_NAYRUSLOVE2 = 49; // Nayru's Love shield running out. const int SFX_OUCH = 19; // Link is hit. const int SFX_PICKUP = 20; // Chime when item is held above head. const int SFX_PLACE = 21; // Bomb is placed. const int SFX_PLINK = 22; // Heart/Rupee is collected. const int SFX_PUSHBLOCK = 50; // Pushed a block. const int SFX_REFILL = 23; // Hearts being refilled. const int SFX_ROAR = 24; // Aquamentus, Gleeok and Ganon's roar. const int SFX_ROCK = 51; // Octorok rock is fired. const int SFX_ROCKETDOWN = 52; // Spell rocket descends. const int SFX_ROCKETUP = 53; // Spell rocket launched. const int SFX_SCALE = 25; // Chime when fairy appears/is picked up. const int SFX_SEA = 26; // "Ocean SFX" ambience. const int SFX_SECRET = 27; // Chime when secret is discovered. const int SFX_SPINATTACK = 54; // Sword spin. const int SFX_SPIRAL = 28; // Link dies. const int SFX_SPLASH = 55; // Splashing in shallow water. const int SFX_STAIRS = 29; // Link marches down stairs. const int SFX_SUMMON = 56; // Summoner magic. const int SFX_SWORD = 30; // Sword swipe. const int SFX_TAP1 = 57; // Sword taps wall. const int SFX_TAP2 = 58; // Sword taps bombable wall. const int SFX_PATRA = 31; // Patra and Manhandla's shriek. const int SFX_WAND = 32; // Magic is fired by Wizzrobes or Link. const int SFX_WHIRLWIND = 59; // Whistle whirlwind. const int SFX_WHISTLE = 33; // Whistle is played. const int SFX_ZELDA = 34; // Music when ending sequence begins. //Sprite IDs. To be used with UseSprite(). const int SP_ARROW_ENEMY = 19; const int SP_ARROW1 = 10; //Wooden Arrow const int SP_ARROW2 = 11; //Silver Arrow const int SP_ARROW3 = 34; //Golden Arrow const int SP_BAIT = 14; //Enemy bait const int SP_BOMB_ENEMY = 76; //Bomb (Enemy, normal) const int SP_SBOMB_ENEMY = 77; //Bomb (Enemy, Super) const int SP_BOMB = 7; //Normal Bomb const int SP_SBOMB = 8; //Super Bomb const int SP_BRANG1 = 4; //Wooden Boomerang const int SP_BRANG2 = 5; //Magical Boomerang const int SP_BRANG3 = 6; //Fire Boomerang const int SP_CANEOFBYRNA = 69; //Cane of Byrna Object const int SP_BYRNABEAM = 87; //Cane of Byrna Orbiter const int SP_BYRNASLASH = 70; //Cane of Byrna Slashing Sprite const int SP_DINSFIRE_FALL = 39; //Din's Fire (Falling) const int SP_DINSFIRE_RISE = 38; //Din's Fire (Rising) const int SP_DINSFIRE_TRAIL_FALL = 41; //Din's Fire (Trail, Falling) const int SP_DINSFIRE_TRAIL_RISE = 40; //Din's Fire (Trail, Rising) const int SP_BOMB_ENEMY_EXPLOSION = 78; //Normal Bomb Exploion (Enemy) const int SP_SBOMB_ENEMY_EXPLOSION = 79; //Super Bomb Explosion (Enemy) const int SP_BOMB_EXPLOSION = 9; //Normal Bomb Explosion const int SP_SBOMB_EXPLOSION = 75; //Super Bomb Explosion const int SP_FIRE_ENEMY = 35; //Fire (Enemy) const int SP_FIRE2_ENEMY = 81; //Fire 2 (Enemy) const int SP_FIRETRAIL2 = 82; //Fire Trail 2 (Enemy) [Unused] const int SP_FIRETRAIL = 80; //Fire Trail (Enemy) const int SP_FIREBALL = 17; //Fireball (Enemy) const int SP_FLAME = 12; //Candle Fire const int SP_FIRE = 12; //Candle Fire const int SP_HAMMER = 25; //Hammer const int SP_HOOKSHOT1_CHAIN_H = 27; //Hookshot (Short, Chain, Horizontal) const int SP_HOOKSHOT1_CHAIN_V = 42; //Hookshot (Short, Chain, Vertical) const int SP_HOOKSHOT1_HANDLE = 28; //Hookshot Handle (Short) const int SP_HOOKSHOT1_HEAD = 26; //Hookshot Head (Short) const int SP_HOOKSHOT2_CHAIN_H = 72; //Hookshot (Short, Chain, Horizontal) const int SP_HOOKSHOT2_CHAIN_V = 74; //Hookshot (Short, Chain, Vertical) const int SP_HOOKSHOT2_HANDLE = 73; //Hookshot Handle (Short) const int SP_HOOKSHOT2_HEAD = 71; //Hookshot Head (Short) const int SP_ICE = 83; //Ice Magic (Enemy, Unused) const int SP_MAGIC_ENEMY = 21; //Magic (Enemy) const int SP_MAGIC_FIRE = 85; //Magic (Fire) const int SP_MAGIC = 16; //Magic (Wand) const int SP_MISC44 = 44; //Misc 44, unused const int SP_MISC45 = 45; //Misc 45, unused const int SP_MISC57 = 57; //Misc 57, unused const int SP_MISC24 = 24; //Misc 24, unused const int SP_MISC_ARROW2 = 29; //Silver Arrow Sparkles const int SP_MISC_ARROW3 = 30; //Golden Arrow Sparkles const int SP_MISC_BRANG2 = 31; //Magic Boomerang Sparkles const int SP_MISC_BRANG3 = 32; //Fire Boomerang Sparkles const int SP_MISC_BUSH = 52; //Bush Leaf Clippings const int SP_MISC_DEATH = 23; //Link Death Winkout const int SP_MISC_FLOWER = 53; //Flower Clippings const int SP_MISC_GRASS = 54; //Grass Clippings const int SP_MISC_HAMMER = 33; //Hammer Impact const int SP_MISC_HOVER = 84; //Hover Boots Glow const int SP_MISC_MAGICMETER = 37; //Magic Meter const int SP_MISC_MORE = 43; //More Indicator const int SP_MISC_QHEART = 86; //Quarter Heart const int SP_MISC_RIPPLE = 56; //Ripples const int SP_MISC_SHADOW2 = 51; //Shadow (Large) const int SP_MISC_SHADOW1 = 50; //Shadow (Small) const int SP_SPAWN = 22; //Enemy Spawn Poof const int SP_MISC_SSVINE = 68; //Subscreen Vine const int SP_TALLGRASS = 55; //Tall Grass Movement const int SP_NAYRU_LEFT = 58; //Nayru's Love (Left) const int SP_NAYRU_LEFT2 = 59; //Nayru's Love (Left, Returning) const int SP_NAYRU_RIGHT = 62; //Nayru's Love (Right) const int SP_NAYRU_RIGHT2 = 63; //Nayru's Love (Right, Returning) const int SP_NAYRU_BACK = 67; //Nayru's Love Shield (Back) const int SP_NAYRU_FRONT = 66; //Nayru's Love Shield (Front) const int SP_NAYRU_TRAIL_LEFT = 60; //Nayru's Love Trail (Left) const int SP_NAYRU_TRAIL_LEFT2 = 61; //Nayru's Love Trail (Left, Returning) const int SP_NAYRU_TRAIL_RIGHT = 64; //Nayru's Love Trail (Right) const int SP_NAYRU_TRAIL_RIGHT2 = 65; //Nayru's Love Trail (Right, Returning) const int SP_ROCK = 18; //Rock const int SP_SWORD_ENEMY = 20; //Enemy Sword Beam const int SP_SWORD1 = 0; //Wooden Sword const int SP_SLASH1 = 46; //Wooden Sword Slash const int SP_SWORD2 = 1; //White Sword const int SP_SLASH2 = 47; //White Sword Slash const int SP_SWORD3 = 2; //Magical Sword const int SP_SLASH3 = 48; //Magical Sword Slash const int SP_SWORD4 = 3; //Master Sword const int SP_SLASH4 = 49; //master Sword Slash const int SP_WAND = 15; //Wand Object const int SP_WHIRL = 13; //Whiste Whirlwind const int SP_WIND = 36; //Wind Magic (Enemy) //User-Defined Sprites Range 088 to 255 //Directions. Use with Link->Dir, etc. const int DIR_UP = 0; //000b const int DIR_DOWN = 1; //001b const int DIR_LEFT = 2; //010b const int DIR_RIGHT = 3; //011b const int DIR_LEFTUP = 4; //100b const int DIR_RIGHTUP = 5; //101b const int DIR_LEFTDOWN = 6; //110b const int DIR_RIGHTDOWN = 7; //111b const int DIR_IGNORESHIELD = 8; //dir+DIR_IGNORESHIELD: Prevents blocking by enemy shields. //Does not work with some enemy types. //Directions above 7 are used by some Z1 bosses. //Flip Types for Tiles, or Sprites const int FLIP_NONE = 0; const int FLIP_HORIZONTAL = 1; //Horizontal Flip //!This is already called in stdExtra.zh //Fixed const int FLIP_VERTICAL = 2; //Vertical Flip //!This is already called in stdExtra.zh //Fixed const int FLIP_HV = 3; //Horizontal and vertical Flip const int FLIP_VH = 3; const int FLIP_BOTH = 3; //Rotations + Flip const int ROT_CW = 4; const int ROT_CW_FLIP = 5; const int ROT_CCW_FLIP = 6; const int ROT_CCW = 7; //Sprite extending methods. Use with item->Extend, //npc->Extend, eweapon->Extend and lweapon->Extend. const int EXT_NONE = 0; // Not extended const int EXT_16X32 = 1; // Object is extended as 16x32; or Link is extended in Sprites->Link to 16x32. const int EXT_32X32 = 2; // Object is extended as 32x32; or Link is extended in Sprites->Link to 32x32. const int EXT_NORMAL = 3; // Extended const int EXT_EXTENDED = 3; // Extended const int EXT_NOSHADOW = 4; // Extended; NPC has no shadow. //! We need some better names for Extend constants. //Generic counters. Use with itemclass->Counter, Game->Counter[], Game->MCounter[] and Game->DCounter[] const int CR_LIFE = 0; const int CR_RUPEES = 1; const int CR_BOMBS = 2; const int CR_ARROWS = 3; const int CR_MAGIC = 4; const int CR_KEYS = 5; const int CR_SBOMBS = 6; const int CR_SCRIPT1 = 7; const int CR_SCRIPT2 = 8; const int CR_SCRIPT3 = 9; const int CR_SCRIPT4 = 10; const int CR_SCRIPT5 = 11; const int CR_SCRIPT6 = 12; const int CR_SCRIPT7 = 13; const int CR_SCRIPT8 = 14; const int CR_SCRIPT9 = 15; const int CR_SCRIPT10 = 16; const int CR_SCRIPT11 = 17; const int CR_SCRIPT12 = 18; const int CR_SCRIPT13 = 19; const int CR_SCRIPT14 = 20; const int CR_SCRIPT15 = 21; const int CR_SCRIPT16 = 22; const int CR_SCRIPT17 = 23; const int CR_SCRIPT18 = 24; const int CR_SCRIPT19 = 25; const int CR_SCRIPT20 = 26; const int CR_SCRIPT21 = 27; const int CR_SCRIPT22 = 28; const int CR_SCRIPT23 = 29; const int CR_SCRIPT24 = 30; const int CR_SCRIPT25 = 31; //Generic data indices. Use this with Game->Generic[] const int GEN_HEARTPIECES = 0; // Heart Pieces currently possessed const int GEN_MAGICDRAINRATE = 1; // Link's magic usage equals n / 2. const int GEN_CANSLASH = 2; // Link can slash with the sword. const int GEN_WARPLEVEL = 3; // Warp Ring number that a Whirlwind warp will send Link to. // It is set every time that Link uses the Whistle. const int GEN_HCPPERHC = 4; // How many Pieces of Heart form a complete Heart Container? const int GEN_CONTINUEHEARTS = 5; // Amount of life that Link continues with const int GEN_CONTINUEISPERCENT = 6; // ...Or a percentage of his total life //Level item flags. Or (|) these together and use with Game->LItems[] const int LI_TRIFORCE = 0x01; // The Triforce of this Level has been obtained const int LI_MAP = 0x02; // The Dungeon Map of this Level has been obtained const int LI_COMPASS = 0x04; // The Compass of this Level has been obtained const int LI_BOSS = 0x08; // A "Dungeon Boss" enemy has been slain const int LI_BOSSKEY = 0x10; // The Boss Key of this Level has been obtained //Mouse buttons const int MB_LEFTCLICK = 0x1; //AND (&) these with Link->InputMouseB to get the current button state of the mouse const int MB_RIGHTCLICK = 0x2; const int MB_MIDDLECLICK = 0x4; //Keep in in mind that not all mice/touchpads have a middle mouse button //Controller buttons const int CB_UP = 1; const int CB_DOWN = 2; const int CB_LEFT = 3; const int CB_RIGHT = 4; const int CB_A = 5; const int CB_B = 6; const int CB_L = 7; const int CB_R = 8; const int CB_START = 9; const int CB_MAP = 10; const int CB_EX1 = 11; const int CB_EX2 = 12; const int CB_EX3 = 12; const int CB_EX4 = 14; const int CB_STICKUP = 15; const int CB_STICKDOWN = 16; const int CB_STICKLEFT = 17; const int CB_STICKRIGHT = 18; //////////////////// /// Items & Itemdata //Item class ids. Use as comparisons with Itemdata->Family const int IC_AMULET = 11; const int IC_ARROW = 2; const int IC_ARROWAMMO = 40; const int IC_BAIT = 5; const int IC_BOMB = 27; const int IC_BOMBAMMO = 47; const int IC_BOMBBAG = 48; const int IC_BOOK = 16; const int IC_BOOTS = 20; const int IC_BOSSKEY = 35; const int IC_BOW = 13; const int IC_BOWANDARROW = 87; const int IC_BRACELET = 18; const int IC_BRANG = 1; const int IC_CANDLE = 3; const int IC_CBYRNA = 38; const int IC_CHARGERING = 55; const int IC_CLOCK = 29; const int IC_COMPASS = 34; const int IC_CROSSSCROLL = 52; const int IC_DINSFIRE = 24; const int IC_FAIRY = 41; const int IC_FARORESWIND = 25; const int IC_FLIPPERS = 19; const int IC_HAMMER = 23; const int IC_HEART = 43; const int IC_HEARTCONTAINER = 44; const int IC_HEARTPIECE = 45; const int IC_HEARTRING = 58; const int IC_HOOKSHOT = 21; const int IC_HOVERBOOTS = 50; const int IC_HURRICANESCROLL = 60; const int IC_KEY = 30; const int IC_KILLALL = 46; const int IC_LADDER = 15; const int IC_LENS = 22; const int IC_LETTER = 6; const int IC_LETTERPOTION = 88; const int IC_LEVELKEY = 37; const int IC_MAGIC = 42; const int IC_MAGICCONTAINER = 31; const int IC_MAGICKEY = 17; const int IC_MAGICRING = 59; const int IC_MAP = 33; const int IC_MISC = 66; const int IC_NAYRUSLOVE = 26; const int IC_PERILRING = 65; const int IC_PERILSCROLL = 56; const int IC_POTION = 7; const int IC_QUAKESCROLL = 53; const int IC_QUIVER = 36; const int IC_RAFT = 14; const int IC_RING = 9; const int IC_ROCS = 49; const int IC_RUPEE = 39; const int IC_SBOMB = 28; const int IC_SHIELD = 12; const int IC_SPINSCROLL = 51; const int IC_SQUAKESCROLL = 61; const int IC_STOMPBOOTS = 63; const int IC_STONEAGONY = 62; const int IC_SWORD = 0; const int IC_TRIFORCE = 32; const int IC_WALLET = 10; const int IC_WAND = 8; const int IC_WEALTHMEDAL = 57; const int IC_WHIMSICALRING = 64; const int IC_WHISPRING = 54; const int IC_WHISTLE = 4; const int IC_CUSTOM1 = 67; const int IC_CUSTOM2 = 68; const int IC_CUSTOM3 = 69; const int IC_CUSTOM4 = 70; const int IC_CUSTOM5 = 71; const int IC_CUSTOM6 = 72; const int IC_CUSTOM7 = 73; const int IC_CUSTOM8 = 74; const int IC_CUSTOM9 = 75; const int IC_CUSTOM10 = 76; const int IC_CUSTOM11 = 77; const int IC_CUSTOM12 = 78; const int IC_CUSTOM13 = 79; const int IC_CUSTOM14 = 80; const int IC_CUSTOM15 = 81; const int IC_CUSTOM16 = 82; const int IC_CUSTOM17 = 83; const int IC_CUSTOM18 = 84; const int IC_CUSTOM19 = 85; const int IC_CUSTOM20 = 86; //Item IDs. Use with CreateItem() and Link->Item[]. //These are DEFAULT values, and may not be correct for custom quests which //have overridden item action data. const int I_AMULET1 = 50; const int I_AMULET2 = 63; const int I_ARROW1 = 13; const int I_ARROW2 = 14; const int I_ARROW3 = 57; const int I_ARROWAMMO1 = 70; const int I_ARROWAMMO10 = 72; const int I_ARROWAMMO30 = 73; const int I_ARROWAMMO5 = 71; const int I_BAIT = 16; const int I_BOMB = 3; const int I_BOMBAMMO1 = 77; const int I_BOMBAMMO30 = 80; const int I_BOMBAMMO4 = 78; const int I_BOMBAMMO8 = 79; const int I_BOMBBAG1 = 81; const int I_BOMBBAG2 = 82; const int I_BOMBBAG3 = 83; const int I_BOMBBAG4 = 106; const int I_BOOK = 32; const int I_BOOTS = 55; const int I_BOSSKEY = 67; const int I_BOW1 = 15; const int I_BOW2 = 68; const int I_BRACELET1 = 107; const int I_BRACELET2 = 19; const int I_BRACELET3 = 56; const int I_BRANG1 = 23; const int I_BRANG2 = 24; const int I_BRANG3 = 35; const int I_CANDLE1 = 10; const int I_CANDLE2 = 11; const int I_CBYRNA = 88; const int I_CHARGERING1 = 101; const int I_CHARGERING2 = 102; const int I_CLOCK = 4; const int I_COMPASS = 22; const int I_CROSSSCROLL = 95; const int I_DINSFIRE = 64; const int I_DUST_PILE = 43; const int I_FAIRY = 34; const int I_FAIRYSTILL = 69; const int I_FARORESWIND = 65; const int I_FLIPPERS = 51; const int I_HAMMER = 54; const int I_HCPIECE = 49; const int I_HEART = 2; const int I_HEARTCONTAINER = 28; const int I_HEARTRING1 = 112; const int I_HEARTRING2 = 113; const int I_HEARTRING3 = 114; const int I_HOOKSHOT1 = 52; const int I_HOOKSHOT2 = 89; const int I_HOVERBOOTS = 92; const int I_KEY = 9; const int I_KILLALL = 62; const int I_LADDER1 = 27; const int I_LADDER2 = 108; const int I_LENS = 53; const int I_LETTER = 12; const int I_LETTERUSED = 90; const int I_LEVELKEY = 84; const int I_MAGICCONTAINER = 58; const int I_MAGICJAR1 = 59; const int I_MAGICJAR2 = 60; const int I_MAGICKEY = 33; const int I_MAGICRING1 = 115; const int I_MAGICRING2 = 116; const int I_MAGICRING3 = 117; const int I_MAGICRING4 = 118; const int I_MAP = 21; const int I_MISC1 = 46; const int I_MISC2 = 47; const int I_NAYRUSLOVE = 66; const int I_PERILRING = 121; const int I_PERILSCROLL = 103; const int I_POTION1 = 29; const int I_POTION2 = 30; const int I_QUAKESCROLL1 = 96; const int I_QUAKESCROLL2 = 97; const int I_QUIVER1 = 74; const int I_QUIVER2 = 75; const int I_QUIVER3 = 76; const int I_QUIVER4 = 105; const int I_RAFT = 26; const int I_RING1 = 17; const int I_RING2 = 18; const int I_RING3 = 61; const int I_ROCSFEATHER = 91; const int I_RUPEE1 = 0; const int I_RUPEE10 = 86; const int I_RUPEE100 = 87; const int I_RUPEE20 = 38; const int I_RUPEE200 = 40; const int I_RUPEE5 = 1; const int I_RUPEE50 = 39; const int I_SBOMB = 48; const int I_SELECTA = 45; const int I_SELECTB = 85; const int I_SHIELD1 = 93; const int I_SHIELD2 = 8; const int I_SHIELD3 = 37; const int I_SPINSCROLL1 = 94; const int I_SPINSCROLL2 = 98; const int I_STOMPBOOTS = 120; const int I_STONEAGONY = 119; const int I_SWORD1 = 5; const int I_SWORD2 = 6; const int I_SWORD3 = 7; const int I_SWORD4 = 36; const int I_TRIFORCE = 20; const int I_TRIFORCEBIG = 44; const int I_WALLET500 = 41; const int I_WALLET999 = 42; const int I_WALLETA = 104; const int I_WAND = 25; const int I_WEALTHMEDAL = 109; const int I_WEALTHMEDAL2 = 110; const int I_WEALTHMEDAL3 = 111; const int I_WHIMSICALRING = 122; const int I_WHISPRING1 = 99; const int I_WHISPRING2 = 100; const int I_WHISTLE = 31; //Item pickup flags. OR (|) these together to use with item->Pickup //Other values are reserved for internal usage, and have no effect const int IP_HOLDUP = 0x002; //Link holds it up when collecting it. const int IP_ST_ITEM = 0x004; //Sets the screen state "Item" when collected. const int IP_DUMMY = 0x008; //A 'dummy' item, such as rupee markers in shops. Can't be collected and ignores gravity. const int IP_ENEMYCARRIED = 0x080; //The item-carrying NPC carries it. If no NPC has an item, the most recently created NPC carries it. const int IP_TIMEOUT = 0x100; //Disappears after 512 frames. Can be collected by melee weapons if the related quest rule is not set. const int IP_ST_SPECIALITEM = 0x800; //Sets the screen state "Special Item" when collected. ///////////////////////// /// EWeapons and LWeapons //LWeapon types. Use with Screen->CreateLWeapon() and Screen->LoadLWeapon(). const int LW_SWORD = 1; // This cannot be created const int LW_WAND = 12; // This cannot be created const int LW_CANDLE = 12; // This cannot be created const int LW_HAMMER = 19; // This cannot be created const int LW_HOOKSHOT = 20; // This cannot be created const int LW_CANEOFBYRNA = 27; // This cannot be created const int LW_ARROW = 8; const int LW_BEAM = 2; // Sword beam const int LW_BRANG = 3; const int LW_BOMB = 6; const int LW_BOMBBLAST = 4; // Bomb explosion const int LW_SBOMB = 7; const int LW_SBOMBBLAST = 5; // Super Bomb explosion const int LW_FIRE = 9; const int LW_WHISTLE = 10; // Whistle music - kills Digdogger const int LW_BAIT = 11; const int LW_MAGIC = 13; // Wand magic const int LW_WIND = 15; // Whistle whirlwind const int LW_REFMAGIC = 16; // Reflected wand magic const int LW_REFFIREBALL = 17; // Reflected fireball const int LW_REFROCK = 18; // Reflected rock const int LW_REFBEAM = 28; // Reflected sword beam const int LW_SPARKLE = 23; const int LW_FIRESPARKLE = 24; // Damages enemies // Dummy weapons, for use with scripts. const int LW_SCRIPT1 = 31; const int LW_SCRIPT2 = 32; const int LW_SCRIPT3 = 33; const int LW_SCRIPT4 = 34; const int LW_SCRIPT5 = 35; const int LW_SCRIPT6 = 36; const int LW_SCRIPT7 = 37; const int LW_SCRIPT8 = 38; const int LW_SCRIPT9 = 39; const int LW_SCRIPT10 = 40; //EWeapon types. Use with Screen->CreateEWeapon() and Screen->LoadEWeapon(). const int EW_ARROW = 130; const int EW_BRANG = 131; const int EW_BEAM = 132; // Sword beam const int EW_ROCK = 133; const int EW_MAGIC = 134; const int EW_FIREBALL = 129; const int EW_FIREBALL2 = 145; // Arcing boss fireball const int EW_BOMB = 137; // Projectile bomb const int EW_BOMBBLAST = 135; // Bomb explosion const int EW_SBOMB = 138; // Projectile super bomb const int EW_SBOMBBLAST = 136; // Super bomb explosion const int EW_FIRETRAIL = 139; const int EW_FIRE = 140; const int EW_WIND = 141; // Wind wizzrobe magic const int EW_FIRE2 = 142; //! What is 'Fire 2' ? // Dummy weapons, for use with scripts. const int EW_SCRIPT1 = 31; const int EW_SCRIPT2 = 32; const int EW_SCRIPT3 = 33; const int EW_SCRIPT4 = 34; const int EW_SCRIPT5 = 35; const int EW_SCRIPT6 = 36; const int EW_SCRIPT7 = 37; const int EW_SCRIPT8 = 38; const int EW_SCRIPT9 = 39; const int EW_SCRIPT10 = 40; //Weapon DeadState values. Use with Weapon->DeadState. const int WDS_NOHIT = -10; // This value switches collision detection off. Deprecated by weapon->CollDetection. const int WDS_ALIVE = -1; // Weapon is currently 'alive'. const int WDS_DEAD = 0; // Use to dispose of most weapons. const int WDS_BEAMSHARDS = 23; // Use with LW_BEAMs to shatter it into shards. const int WDS_ARROW = 4; // Use with LW_ARROWs to make them 'wink out' using tile 54. const int WDS_BOUNCE = 1; // Use with LW_BRANGs or LW_HOOKSHOTs to // make it 'bounce off' and start returning to Link. //////////////////// /// NPCs and Enemies //NPC Types. Compare against npc->Type. const int NPCT_GUY = 0; const int NPCT_WALK = 1; const int NPCT_TEKTITE = 3; const int NPCT_LEEVER = 4; const int NPCT_PEAHAT = 5; const int NPCT_ZORA = 6; const int NPCT_ROCK = 7; const int NPCT_GHINI = 8; const int NPCT_ARMOS = 9; const int NPCT_KEESE = 10; const int NPCT_TRAP = 15; const int NPCT_WALLMASTER = 16; const int NPCT_WIZZROBE = 21; const int NPCT_AQUAMENTUS = 22; const int NPCT_MOLDORM = 23; const int NPCT_DODONGO = 24; const int NPCT_MANHANDLA = 25; const int NPCT_GLEEOK = 26; const int NPCT_DIGDOGGER = 27; const int NPCT_GOHMA = 28; const int NPCT_LANMOLA = 29; const int NPCT_PATRA = 30; const int NPCT_GANON = 31; const int NPCT_PROJECTILE = 32; const int NPCT_SPINTILE = 37; const int NPCT_NONE = 38; const int NPCT_FAIRY = 39; const int NPCT_OTHERFLOAT = 40; const int NPCT_OTHER = 41; //Guy IDs. Use with CreateNPC(). const int NPC_ABEI = 1; const int NPC_AMA = 2; const int NPC_MERCHANT = 3; const int NPC_MOBLIN = 4; const int NPC_FIRE = 5; const int NPC_FAIRY = 6; const int NPC_GORIYA = 7; const int NPC_ZELDA = 8; const int NPC_ABEI2 = 9; //Default enemy IDs. Use with CreateNPC(). const int NPC_AQUAMENTUSL = 93; const int NPC_AQUAMENTUSR = 58; const int NPC_ARMOS = 37; const int NPC_BAT = 106; const int NPC_BOMBCHU = 160; const int NPC_BOULDER = 135; const int NPC_BUBBLEITEMP = 118; // Permanently jinxes const int NPC_BUBBLEITEMR = 119; // Restores item usage const int NPC_BUBBLEITEMT = 117; const int NPC_BUBBLESWORDP = 81; // Permanently jinxes const int NPC_BUBBLESWORDR = 82; // Restores sword usage const int NPC_BUBBLESWORDT = 51; const int NPC_CEILINGMASTER = 101; // This enemy isn't implemented const int NPC_DARKNUT1 = 49; const int NPC_DARKNUT2 = 50; const int NPC_DARKNUT3 = 92; // Splits when killed. const int NPC_DARKNUT4 = 172; // This enemy isn't implemented const int NPC_DARKNUT5 = 87; // Sword beams. const int NPC_DIGDOGGER1 = 66; // Splits into 1 const int NPC_DIGDOGGER3 = 67; // Splits into 3 const int NPC_DIGKID1 = 68; // Spawned by NPC_DIGDOGGER1 const int NPC_DIGKID2 = 69; // Spawned by NPC_DIGDOGGER3 const int NPC_DIGKID3 = 70; // Spawned by NPC_DIGDOGGER3 const int NPC_DIGKID4 = 71; // Spawned by NPC_DIGDOGGER3 const int NPC_DODONGO = 60; // Uses one tile when walking vertically const int NPC_DODONGOBS = 114; // Uses two tiles when walking vertically const int NPC_DODONGOFIRE = 115; // This enemy isn't implemented const int NPC_ENEMYFIRE = 85; // The Fire enemy in Princess Zelda's screen const int NPC_FLOORMASTER = 102; // This enemy isn't implemented const int NPC_GANON = 78; const int NPC_GEL = 42; const int NPC_GELFIRE = 161; const int NPC_GELFIRETRIB = 163; const int NPC_GELTRIB = 88; const int NPC_GHINI1 = 35; const int NPC_GHINI2 = 36; const int NPC_GHINIMGC = 173; // This enemy isn't implemented const int NPC_GIBDO = 54; const int NPC_GLEEOK1 = 62; const int NPC_GLEEOK1FIRE = 109; const int NPC_GLEEOK2 = 63; const int NPC_GLEEOK2FIRE = 110; const int NPC_GLEEOK3 = 64; const int NPC_GLEEOK3FIRE = 111; const int NPC_GLEEOK4 = 65; const int NPC_GLEEOK4FIRE = 112; const int NPC_GOHMA1 = 72; const int NPC_GOHMA2 = 73; const int NPC_GOHMA3 = 121; const int NPC_GOHMAFIRE = 122; const int NPC_GORIYA1 = 45; const int NPC_GORIYA2 = 46; const int NPC_GORIYA3 = 136; const int NPC_GRAPBUGHP = 174; // This enemy isn't implemented const int NPC_GRAPBUGMP = 175; // This enemy isn't implemented const int NPC_ITEMFAIRY = 84; const int NPC_KEESE1 = 38; const int NPC_KEESE2 = 39; const int NPC_KEESE3 = 40; const int NPC_KEESETRIB = 90; const int NPC_LANMOLA1 = 74; const int NPC_LANMOLA2 = 75; const int NPC_LEEVER1 = 26; const int NPC_LEEVER2 = 27; const int NPC_LEEVER3 = 137; const int NPC_LIKELIKE = 53; const int NPC_LYNEL1 = 30; const int NPC_LYNEL2 = 31; const int NPC_LYNEL3 = 168; const int NPC_MANHANDLA = 61; const int NPC_MANHANDLA2 = 94; const int NPC_MOBLIN1 = 28; const int NPC_MOBLIN2 = 29; const int NPC_MOLDORM = 59; const int NPC_OCTOROCK1F = 22; const int NPC_OCTOROCK1S = 20; const int NPC_OCTOROCK2F = 23; const int NPC_OCTOROCK2S = 21; const int NPC_OCTOROCKBOMBF = 141; const int NPC_OCTOROCKBOMBS = 140; const int NPC_OCTOROCKFIREF = 139; const int NPC_OCTOROCKFIRES = 138; const int NPC_OCTOROCKMGC = 86; const int NPC_PATRA1 = 76; const int NPC_PATRA2 = 104; const int NPC_PATRA3 = 105; const int NPC_PATRABS = 103; const int NPC_PATRAOVAL = 77; const int NPC_PEAHAT = 32; const int NPC_PEAHATFIRE = 169; // This enemy isn't implemented const int NPC_POLSVOICE = 55; const int NPC_POLSVOICEBS = 171; // This enemy isn't implemented const int NPC_POLSVOICEMGC = 170; const int NPC_ROCK = 34; const int NPC_ROPE1 = 44; const int NPC_ROPE2 = 80; const int NPC_SHOOTFBALL = 83; const int NPC_SHOOTFLAME = 158; const int NPC_SHOOTFLAME2 = 159; const int NPC_SHOOTMAGIC = 154; const int NPC_SHOOTROCK = 155; const int NPC_SHOOTSPEAR = 156; const int NPC_SHOOTSWORD = 157; const int NPC_SPINTILE = 166; const int NPC_SPINTILERND = 167; // Random spin tile const int NPC_STALFOS1 = 41; const int NPC_STALFOS2 = 79; const int NPC_STALFOS3 = 120; const int NPC_TEKTITE1 = 24; const int NPC_TEKTITE2 = 25; const int NPC_TEKTITE3 = 165; // This enemy isn't implemented const int NPC_TRAP = 47; const int NPC_TRAP8WAY = 142; // This enemy isn't implemented const int NPC_TRAPBACKSLASHC = 146; // This enemy isn't implemented const int NPC_TRAPBACKSLASHLOS = 147; // This enemy isn't implemented const int NPC_TRAPCCLOCKWISEC = 150; // This enemy isn't implemented const int NPC_TRAPCCLOCKWISELOS = 151; // This enemy isn't implemented const int NPC_TRAPCLOCKWISEC = 148; // This enemy isn't implemented const int NPC_TRAPCLOCKWISELOS = 149; // This enemy isn't implemented const int NPC_TRAPDIAG = 143; // This enemy isn't implemented const int NPC_TRAPHORIZC = 97; const int NPC_TRAPHORIZLOS = 95; const int NPC_TRAPSLASHC = 144; // This enemy isn't implemented const int NPC_TRAPSLASHLOS = 145; const int NPC_TRAPVERTC = 98; const int NPC_TRAPVERTLOS = 96; const int NPC_TRIGGER = 116; const int NPC_VIRE = 52; const int NPC_VIRETRIB = 91; const int NPC_WALLMASTER = 48; const int NPC_WIZZROBE1 = 56; // Teleports const int NPC_WIZZROBE2 = 57; // Phases through blocks const int NPC_WIZZROBEBAT = 107; const int NPC_WIZZROBEBAT2 = 108; // This enemy isn't implemented const int NPC_WIZZROBEFIRE = 99; const int NPC_WIZZROBEICE = 153; // This enemy isn't implemented const int NPC_WIZZROBEMIRR = 113; const int NPC_WIZZROBESUMM = 152; const int NPC_WIZZROBEWIND = 100; const int NPC_ZOL = 43; const int NPC_ZOLFIRE = 162; const int NPC_ZOLFIRETRIB = 164; const int NPC_ZOLTRIB = 89; const int NPC_ZORA = 33; //NPC hit point values. Use with npc->HP to make the enemy die in a special manner. const int HP_SILENT = -1000; // The enemy will die without their Death Sound playing. //NPC Attribute 1 constants. Use with npc->Attributes. const int NPCA1_1SHOT = 0; const int NPCA1_ENDHALT = 1; const int NPCA1_RAPIDFIRE = 2; const int NPCA1_1FAST = 3; const int NPCA1_1SLANT = 4; const int NPCA1_3SHOTS = 5; const int NPCA1_4SHOTS = 6; const int NPCA1_5SHOTS = 7; const int NPCA1_3FAST = 8; const int NPCA1_BREATH = 9; const int NPCA1_8SHOTS = 10; const int NPCA1_SUMMON = 11; const int NPCA1_SUMMONLAYER = 12; //NPC Attribute 2 constants. Use with npc->Attributes. const int NPCA2_NORMAL = 0; const int NPCA2_SPLITHIT = 1; const int NPCA2_SPLIT = 2; const int NPCA2_8SHOTS = 3; const int NPCA2_EXPLODE = 4; const int NPCA2_TRIBBLE = 5; //NPC Attribute 7 constants. Use with npc->Attributes. const int NPCA7_NORMAL = 0; const int NPCA7_TEMPJINX = 1; const int NPCA7_PERMJINX = 2; const int NPCA7_CUREJINX = 3; const int NPCA7_LOSEMAGIC = 4; const int NPCA7_LOSERUPEES = 5; const int NPCA7_DRUNK = 6; const int NPCA7_EATITEMS = 7; const int NPCA7_EATMAGIC = 8; const int NPCA7_EATRUPEES = 9; //NPC Attribute 9 constants. Use with npc->Attributes. const int NPCA9_NORMAL = 0; const int NPCA9_ROPE = 1; const int NPCA9_VIRE = 2; const int NPCA9_POLSVOICE = 3; //NPC Defenses. Use as indices to npc->Defense[]. const int NPCD_ARROW = 3; const int NPCD_BEAM = 10; const int NPCD_BRANG = 0; const int NPCD_BOMB = 1; const int NPCD_BYRNA = 16; const int NPCD_FIRE = 4; const int NPCD_HAMMER = 8; const int NPCD_HOOKSHOT = 7; const int NPCD_MAGIC = 6; const int NPCD_REFBEAM = 11; const int NPCD_REFMAGIC = 12; const int NPCD_REFFIREBALL = 13; const int NPCD_REFROCK = 14; const int NPCD_SBOMB = 2; const int NPCD_SCRIPT = 17; const int NPCD_STOMP = 15; const int NPCD_SWORD = 9; const int NPCD_WAND = 5; //NPC Defense types. Use with npc->Defense[]. const int NPCDT_NONE = 0; const int NPCDT_HALFDAMAGE = 1; const int NPCDT_QUARTERDAMAGE = 2; const int NPCDT_STUN = 3; const int NPCDT_STUNORBLOCK = 4; const int NPCDT_STUNORIGNORE = 5; const int NPCDT_BLOCK1 = 6; const int NPCDT_BLOCK2 = 7; const int NPCDT_BLOCK4 = 8; const int NPCDT_BLOCK6 = 9; const int NPCDT_BLOCK8 = 10; const int NPCDT_BLOCK = 11; const int NPCDT_IGNORE1 = 12; const int NPCDT_IGNORE = 13; const int NPCDT_ONEHITKILL = 14; //NPC Misc. const int NPCM_0POWERWEAPS = 0x0001; //Damaged by 0-Power Weapons const int NPCM_ISINVISIBLE = 0x0002; //Is Invisible const int NPCM_NEVERRETURNS = 0x0004; //Never Returns After Death const int NPCM_NOT_BEATABLE = 0x0008; //Doesn't Count as beatable Enemy const int NPCM_SPAWNFLICKER = 0x0010; //Unused. //! These may be offset here, as MM defines: //! const int NPCMF_SPAWNFLICKER = 0x0010; //Spawn animation = flicker (???) //! in stdExtra.zh. If so, the values should be offset to include this, ending at 0x2000. // Fixed const int NPCM_ONLY_LENS = 0x0020; //Only Seen By Lens of truth const int NPCM_FLASHING = 0x0040; //Is Flashing const int NPCM_FLICKERING = 0x0080; //Is Flickering const int NPCM_TRANSLUCENT = 0x0100; //Is translucent const int NPCM_SHIELDED_FRONT = 0x0200; //Shielded on Front const int NPCM_SHIELDED_LEFT = 0x0400; //Shielded on Left const int NPCM_SHIELDED_RIGHT = 0x0800; //Shielded on Right const int NPCM_SHIELDED_BACK = 0x1000; //Shielded on Back const int NPCM_HAMMERBREAKS = 0x2000; //Hammer Can break Shield //NPC Spawn Flags const int NPCSF_ZORA = 0x0001; //Spawned by Zora Screen Flag const int NPCSF_FALLINGROCK = 0x0002; //Spawned by Falling Rocks Screen Flag const int NPCSF_CORNERTRAP = 0x0004; //Spawned by Corner Traps Screen Flag const int NPCSF_HORIZTRAP = 0x0008; //Spawned by Horiz Trap Combo Type or Flag const int NPCSF_VERTTRAP = 0x0010; //Spawned by Vert Trap Combo Type or Flag const int NPCSF_4WAYTRAP = 0x0020; //Spawned by 4-Way Trap Combo Type or Flag const int NPCSF_LRTRAP = 0x0040; //Spawned by LR Trap Combo Type or Flag const int NPCSF_UPTRAP = 0x0080; //Spawned by UD Trap Combo Type or Flag const int NPCSF_MIDTRAP = 0x0100; //Spawned by Middle Traps Screen Flag const int NPCSF_STATUEFIRE = 0x0200; //Spawned by Statue Fire Screen Flag const int NPCSF_ARMOS = 0x0400; //Spawned by Armos Combo Type const int NPCSF_GRAVE = 0x0800; //Spawned by Grave Combo Type const int NPCSF_GANONROOM = 0x1000; //Spawned by Ganon Room Type const int NPCSF_SPAWNANIM = 0x2000; //Spawn Animation Type //Enemy projectile weapon selections. Use with npc->Weapon. //Note: Don't use these with Screen->CreateEWeapon! Use the EW_ constants instead. const int WPN_NONE = 0; const int WPN_ENEMYFLAME = 140; const int WPN_ENEMYWIND = 141; const int WPN_ENEMYFIREBALL = 129; const int WPN_ENEMYARROW = 130; const int WPN_ENEMYBRANG = 131; const int WPN_ENEMYSWORD = 132; const int WPN_ENEMYROCK = 133; const int WPN_ENEMYMAGIC = 134; const int WPN_ENEMYBOMB = 135; const int WPN_ENEMYSBOMB = 136; const int WPN_ENEMYLITBOMB = 137; const int WPN_ENEMYLITSBOMB = 138; const int WPN_ENEMYFIRETRAIL = 139; const int WPN_ENEMYFLAME2 = 142; const int WPN_ENEMYFLAME2TRAIL = 143; // Not implemented const int WPN_ENEMYICE = 144; // Not implemented const int WPN_ENEMYFIREBALL2 = 145; // A fireball that doesn't fly toward Link //Default item drop sets. Use with npc->ItemSet const int IS_NONE = 0; const int IS_DEFAULT = 1; const int IS_BOMBS = 2; const int IS_MONEY = 3; const int IS_LIFE = 4; const int IS_BOMB100 = 5; // Used by Dodongos const int IS_SBOMB100 = 6; // Used by Dodongos const int IS_MAGIC = 7; const int IS_MAGICBOMBS = 8; const int IS_MAGICMONEY = 9; const int IS_MAGICLIFE = 10; const int IS_MAGIC2 = 11; const int IS_COMBOS = 12; // Used by Tall Grass / Bush / Slash combos. //Boss palettes. Use with npc->BossPal const int BPAL_AQUA = 0; const int BPAL_GLEEOK = 1; const int BPAL_DODONGO = 2; const int BPAL_GANON = 3; const int BPAL_BROWN = 4; const int BPAL_PILE = 5; // Used for the Dust Pile. const int BPAL_BLUE = 6; const int BPAL_RED = 7; const int BPAL_GOLD = 8; const int BPAL_ICON1 = 9; // Used for Quest Icon 1. const int BPAL_ICON2 = 10; // Used for Quest Icon 2. const int BPAL_ICON3 = 11; // Used for Quest Icon 3. const int BPAL_ICON4 = 12; // Used for Quest Icon 4. const int BPAL_GLEEOKF = 13; const int BPAL_FROZEN = 14; // Unused /////////////////// /// Script Drawing //Draw styles. Use with item->DrawStyle const int DS_NORMAL = 0; const int DS_PHANTOM = 1; const int DS_CLOAKED = 2; const int DS_LINK = 3; // Font types. Use with Screen->DrawCharacter *note -some of these fonts may not represent normal ascii characters, //and all of these are completely undocumented. Use at your own peril const int FONT_Z1 = 0; const int FONT_Z3 = 1; const int FONT_Z3SMALL = 2; const int FONT_DEF = 3; const int FONT_L = 4; const int FONT_L2 = 5; const int FONT_P = 6; const int FONT_MATRIX = 7; const int FONT_ZTIME = 8; const int FONT_S = 9; const int FONT_S2 = 10; const int FONT_SP = 11; const int FONT_SUBSCREEN1 = 12; const int FONT_SUBSCREEN2 = 13; const int FONT_SUBSCREEN3 = 14; const int FONT_SUBSCREEN4 = 15; const int FONT_GBLA = 16; const int FONT_GORON = 17; const int FONT_ZORAN = 18; const int FONT_HYLIAN1 = 19; const int FONT_HYLIAN2 = 20; const int FONT_HYLIAN3 = 21; const int FONT_HYLIAN4 = 22; const int FONT_GBORACLE = 23; const int FONT_GBORACLEP = 24; const int FONT_DSPHANTOM = 25; const int FONT_DSPHANTOMP = 26; // PrintString Text Formats. Use with Screen->DrawString. const int TF_NORMAL = 0; // treats the left-most char as (x) const int TF_CENTERED = 1; // prints the string centered on (x) const int TF_RIGHT = 2; // treats the right-most char as (x) // Texture mapping rendering modes. Use with Screen->"Psuedo 3D" or "*3D" drawing routines. ie; Polygon, Quad, or Triangle const int PT_FLAT = 0; // single color shading const int PT_FLATSHADED = 1; // "" with flat shading (*3D only) const int PT_COLSHADED = 2; // "" with color shading (*3D only) const int PT_TEXTURE = 3; // texture mapped polygon using 2d linear interpolation const int PT_PTEXTURE = 4; // "" const int PT_MASKTEXTURE = 5; // transparent texture mapped polygon using 2d linear interpolation const int PT_MASKPTEXTURE = 6; // "" const int PT_LITTEXTURE = 7; // "" with lighting (*3D only) const int PT_LITPTEXTURE = 8; // "" (*3D only) const int PT_MASKLITTEXTURE = 9; // "" with transparency const int PT_MASKLITPTEXTURE = 10; // "" const int PT_TRANSTEXTURE = 11; // translucent texture mapped polygon using 2d linear interpolation const int PT_TRANSPTEXTURE = 12; // "" const int PT_MASKTRANSTEXTURE = 13; // translucent and transparent texture mapped polygon using 2d linear interpolation const int PT_MASKTRANSPTEXTURE = 14; // "" // Opacity options. Use with drawing commands. const int OP_TRANS = 64; const int OP_OPAQUE = 128; const float OP_XOR = 1234.9875; //REMOVE from PUBLIC Docs // Render Targets. Use with Screen->"*RenderTarget" and Screen->"Bitmap" drawing routines. const int RT_SCREEN = -1; // draws to screen const int RT_BITMAP0 = 0; // draws to off-screen bitmap 0 const int RT_BITMAP1 = 1; // draws to off-screen bitmap 1 const int RT_BITMAP2 = 2; // draws to off-screen bitmap 2 const int RT_BITMAP3 = 3; // draws to off-screen bitmap 3 const int RT_BITMAP4 = 4; // draws to off-screen bitmap 4 const int RT_BITMAP5 = 5; // draws to off-screen bitmap 5 const int RT_BITMAP6 = 6; // draws to off-screen bitmap 6 ///////////////////////// /// DMaps, Screens, Rooms //Screen Flag categories. Flags from each category are ORed together, starting with the first flag //See Screen Data dialog for what flags are contained in each category. Use in Screen->Flags const int SF_ROOMTYPE = 0; const int SF_VIEW = 1; const int SF_SECRETS = 2; const int SF_WARP = 3; const int SF_ITEMS = 4; const int SF_COMBOS = 5; const int SF_SAVE = 6; const int SF_FFC = 7; const int SF_WHISTLE = 8; const int SF_MISC = 9; //! These DMap Flag values do not return the expected results when compared via TraeS()ing what is anticipated! //Screen Flag Roomtype const int SFR_INTERIOR = 0; //0x0000 ? const int SFR_DUNGEON = 1; //0x0001 const int SFR_SIDEVIEW = 2; //0x0002 //Screen Flag View const int SFV_INVISLINK = 0; //0x0001; const int SFV_NOLINKMARKER = 1;// 0x0002; const int SFV_NOSUBSCREEN = 2;// 0x0004; const int SFV_NOOFFSET = 3; // 0x0008; //'...but don't offset' const int SFV_LAYER2BG = 4; // 0x0010; //Layer 2 is Background const int SFV_LAYER3BG = 5; //0x0020; const int SFV_DARKROOM = 6; //0x0040; //Screen Flag Secrets const int SFS_BLOCKSHUT = 0; //0x0001; //Block->Shutters const int SFS_TEMPSECRETS = 1; //0x0002; //Secrets are temporary. const int SFS_TRIGPERM = 2; //0x0004; //All Triggers->Perm Secret const int SFS_ALLTRIGFLAGS = 3; //0x0008; //All triggers->16-31 //Screen Flag Warp const int SFW_AUTODIRECT = 0; // 0x0001; //Auto Warps are Direct const int SFW_SENDDIRECT = 1; //0x0002; //Sensitive Warps are direct. const int SFW_MAZEPATHS = 2; //0x0004; //Use maze Path const int SFW_MAZEOVERRIDE = 3; //0x0008; //maze Overrides Sidewarps const int SFW_SPRITECARRY = 4; //0x0010; //Sprites carry over. //Screen Flag Items const int SFI_HOLDUP = 0; //0x0001; //Hold up item. const int SFI_FALLS = 1; //0x0002; //Falls from ceiling //Screen Flag Combos const int SFC_MIDAIR = 0;// 0x0001; //Combos affect midair Link const int SFC_CYCLEINIT = 1; //0x0002; //Cycle combos on screen init. const int SFC_IGNOREBOOTS = 2; //0x0004; //Damage combos ignore boots. const int SFC_TOGGLERINGS = 3; //0x0008; //Toggle 'Rings Affect Combos' //Screen Flag Save const int SFSV_SAVECONTHERE = 0; //0x0001; //Save Point->ontinue here. const int SFSV_SAVEONENTRY = 1; //0x0002; //Save game on entry. const int SFSV_CONTHERE = 2; // 0x0004; //Comtinue here. const int SFSV_NOCONTINUEWARP = 3; //0x0008; //No continue Here after warp. //Screen Flags FFC const int SFF_WRAP = 0; // 0x0001; //Freeform Combos Wrap Around const int SFF_NOCARRYOVER = 1; //0x0002; //No FFC carry over. //Screen Flags Whistle const int SFW_STAIRS = 0; //0x0001; //Whistle->Stairs const int SFW_PALCHANGE = 1; //0x0002; //Whistle->Palette Change const int SFW_DRYLAKE = 2; //0x0004; //Whistle->Dry lake //Misc. Screen flags. OR (|) these together to use (Read-Only). const int SFM_ALLOW_LADDER = 0; //0x0001; //Toggle 'Allow Ladder' const int SFM_NO_DIVING = 1; //0x0002; //Toggle 'No Diving' const int SFM_SCRIPT1 = 2; //0x0004; //General use 1 (Scripts) const int SFM_SCRIPT2 = 3; //0x0008; //General use 2 (Scripts) const int SFM_SCRIPT3 = 4; //0x0010; //General use 3 (Scripts) const int SFM_SCRIPT4 = 5; //0x0020; //General use 4 (Scripts) const int SFM_SCRIPT5 = 6; //0x0040; //General use 5 (Scripts) //Screen Enemy Flag categories, handled in the same way as the SF_ constants. //Use in Screen->EFlags const int SEF_SPAWN = 0; const int SEF_LIST1 = 1; //left-hand list const int SEF_LIST2 = 2; //right-hand list //Room types (Screen => Room Type) //Use with Screen->RoomType const int RT_DOORREPAIR = 5; const int RT_FEEDTHEGORIYA = 7; const int RT_GAMBLE = 4; const int RT_GANON = 15; const int RT_ITEMPOND = 17; //doesn't work const int RT_LEARNSLASH = 19; const int RT_LEVEL9ENTRANCE = 8; const int RT_MAGICUPGRADE = 18; const int RT_MONEYORLIFE = 12; const int RT_MOREARROWS = 20; const int RT_MOREBOMBS = 11; const int RT_NONE = 0; const int RT_PAYFORINFO = 2; const int RT_POTIONORHEART = 6; const int RT_POTIONSHOP = 9; const int RT_SECRETMONEY = 3; const int RT_SHOP = 10; const int RT_SPECIALITEM = 1; const int RT_STAIRWARP = 14; const int RT_TAKEONEITEM = 21; const int RT_TENRUPEES = 13; const int RT_ZELDA = 16; //DMap Flag constants. Use with Game->DMapFlags. const int DMF_CAVESNOTCELLARS = 0x0001; //Use caves instead of item cellars const int DMF_3STAIRWARPS = 0x0002; //Allow 3-stair warps const int DMF_WWIND = 0x0004; //Allow whistle whirlwinds const int DMF_GUYCAVES = 0x0008; //Special rooms and guys are in caves only const int DMF_NOCOMPASS = 0x0010; //Don't display compass marker in minimap const int DMF_WAVY = 0x0020; //Underwater wave effect const int DMF_WWINDRET = 0x0040; //Whistle whirlwind returns Link to start const int DMF_ALWAYSINTROMSG = 0x0080; //Always display intro string const int DMF_VIEWMAP = 0x0100; //View overworld map by pressing 'Map' const int DMF_DMAPMAP = 0x0200; //...But only show screens marked in minimap const int DMF_MINIMAPCOLORFIX = 0x0400; //Use minimap foreground colour 2 const int DMF_MINIMAPCOLOURFIX = 0x0400; //Use minimap foreground colour 2 const int DMF_SCRIPT1 = 0x0800; //DMap Script Flags const int DMF_SCRIPT2 = 0x1000; const int DMF_SCRIPT3 = 0x2000; const int DMF_SCRIPT4 = 0x4000; const int DMF_SCRIPT5 = 0x8000; //Screen states. Use these with Screen->State[], etc. const int ST_DOORUP = 0; // The locked/bomb door has been permanently unlocked/bombed const int ST_DOORDOWN = 1; // The locked/bomb door has been permanently unlocked/bombed const int ST_DOORLEFT = 2; // The locked/bomb door has been permanently unlocked/bombed const int ST_DOORRIGHT = 3; // The locked/bomb door has been permanently unlocked/bombed const int ST_ITEM = 4; // If set, the item is gone const int ST_SPECIALITEM = 5; // If set, the Cave/Item Cellar/Dive For Item/Armos item is gone const int ST_ENEMYNORETURN = 6; // If set, enemies won't return const int ST_TEMPNORETURN = 7; // If set, enemies won't return. This is automatically unset when you leave the DMap const int ST_LOCKBLOCK = 8; // The lock block on the screen has been triggered const int ST_BOSSLOCKBLOCK = 9; // The boss lock block on the screen has been triggered const int ST_CHEST = 10; // The unlocked chest on this screen has been opened const int ST_LOCKEDCHEST = 11; // The locked chest on this screen has been opened const int ST_BOSSCHEST = 12; // The boss chest on this screen has been opened const int ST_SECRET = 13; // Screen Secrets have been made permanent const int ST_VISITED = 14; // If set, this screen will appear on the Overworld Map //Door types. Use with Screen->Door[] const int D_WALL = 0; const int D_OPEN = 1; const int D_LOCKED = 2; const int D_UNLOCKED = 3; // A locked door that has been opened const int D_SHUTTER = 4; // Defeat enemies to unlock this door const int D_BOMB = 6; // A door that changes when bombed const int D_BOMBED = 7; // A door that has been bombed const int D_WALKTHRU = 8; // Push against the wall to pass through const int D_BOSSLOCKED = 10; const int D_BOSSUNLOCKED = 11; // A boss door that has been opened const int D_OPENSHUTTER = 12; // A shutter that has been opened const int D_1WAYSHUTTER = 14; // A shutter that locks behind you and never opens //Sprite lists. Use with Screen->ClearSprites() const int SL_GUYS = 0; // Enemies const int SL_ITEMS = 1; // Items const int SL_EWPNS = 2; // Enemy weapons const int SL_LWPNS = 3; // Link's weapons const int SL_DECORATIONS = 4; // Grass clippings, Hover boots glow, etc. const int SL_PARTICLES = 5; // Farore's Wind particles //Warp types. Use with Screen->SetSideWarp const int WT_CAVE = 0; const int WT_PASSAGE = 1; const int WT_ENTRANCEEXIT = 2; const int WT_SCROLLING = 3; const int WT_IAWARP = 4; const int WT_IWARPBLACKOUT = 5; const int WT_IWARPOPENWIPE = 6; const int WT_IWARPZAP = 7; const int WT_IWARPWAVE = 8; const int WT_NOWARP = 9; /////////////////// /// Link Properties //Link actions const int LA_NONE = 0; const int LA_WALKING = 1; const int LA_ATTACKING = 2; const int LA_FROZEN = 3; const int LA_HOLD1LAND = 4; // One hand. const int LA_HOLD2LAND = 5; // Both hands. const int LA_RAFTING = 6; const int LA_GOTHURTLAND = 7; const int LA_INWIND = 8; const int LA_SCROLLING = 9; const int LA_WINNING = 10; const int LA_SWIMMING = 11; const int LA_HOPPING = 12; // Leaving water. const int LA_GOTHURTWATER = 13; const int LA_HOLD1WATER = 14; const int LA_HOLD2WATER = 15; const int LA_CASTING = 16; // Casting a spell. const int LA_CAVEWALKUP = 17; const int LA_CAVEWALKDOWN = 18; const int LA_DYING = 19; const int LA_DROWNING = 20; const int LA_CHARGING = 22; // Charging the sword. const int LA_SPINNING = 23; // Spin attack. const int LA_DIVING = 24; /////////////////////// /// Combo Types & Flags //Combo flags. Use with Screen->ComboF[] const int CF_NONE = 0; const int CF_PUSHUPDOWN = 1; const int CF_PUSH4WAY = 2; const int CF_WHISTLE = 3; const int CF_CANDLE1 = 4; const int CF_ARROW = 5; const int CF_BOMB = 6; const int CF_FAIRY = 7; const int CF_RAFT = 8; const int CF_ARMOSSECRET = 9; const int CF_ARMOSITEM = 10; const int CF_SBOMB = 11; const int CF_RAFTBRANCH = 12; const int CF_DIVEITEM = 13; const int CF_ZELDA = 15; const int CF_SECRETS01 = 16; const int CF_SECRETS02 = 17; const int CF_SECRETS03 = 18; const int CF_SECRETS04 = 19; const int CF_SECRETS05 = 20; const int CF_SECRETS06 = 21; const int CF_SECRETS07 = 22; const int CF_SECRETS08 = 23; const int CF_SECRETS09 = 24; const int CF_SECRETS10 = 25; const int CF_SECRETS11 = 26; const int CF_SECRETS12 = 27; const int CF_SECRETS13 = 28; const int CF_SECRETS14 = 29; const int CF_SECRETS15 = 30; const int CF_SECRETS16 = 31; const int CF_TRAPH = 32; const int CF_TRAPV = 33; const int CF_TRAP4WAY = 34; const int CF_TRAPLR = 35; const int CF_TRAPUD = 36; const int CF_ENEMY0 = 37; const int CF_ENEMY1 = 38; const int CF_ENEMY2 = 39; const int CF_ENEMY3 = 40; const int CF_ENEMY4 = 41; const int CF_ENEMY5 = 42; const int CF_ENEMY6 = 43; const int CF_ENEMY7 = 44; const int CF_ENEMY8 = 45; const int CF_ENEMY9 = 46; const int CF_PUSHLR = 47; const int CF_PUSHUP = 48; const int CF_PUSHDOWN = 49; const int CF_PUSHLEFT = 50; const int CF_PUSHRIGHT = 51; const int CF_PUSHUPDOWNNS = 52; const int CF_PUSHLEFTRIGHTNS = 53; const int CF_PUSH4WAYNS = 54; const int CF_PUSHUPNS = 55; const int CF_PUSHDOWNNS = 56; const int CF_PUSHLEFTNS = 57; const int CF_PUSHRIGHTNS = 58; const int CF_PUSHUPDOWNINS = 59; const int CF_PUSHLEFTRIGHTINS = 60; const int CF_PUSH4WAYINS = 61; const int CF_PUSHUPINS = 62; const int CF_PUSHDOWNINS = 63; const int CF_PUSHLEFTINS = 64; const int CF_PUSHRIGHTINS = 65; const int CF_BLOCKTRIGGER = 66; const int CF_NOBLOCKS = 67; const int CF_BRANG1 = 68; const int CF_BRANG2 = 69; const int CF_BRANG3 = 70; const int CF_ARROW2 = 71; const int CF_ARROW3 = 72; const int CF_CANDLE2 = 73; const int CF_WANDFIRE = 74; const int CF_DINSFIRE = 75; const int CF_WANDMAGIC = 76; const int CF_REFMAGIC = 77; const int CF_REFFIREBALL = 78; const int CF_SWORD1 = 79; const int CF_SWORD2 = 80; const int CF_SWORD3 = 81; const int CF_SWORD4 = 82; const int CF_SWORD1BEAM = 83; const int CF_SWORD2BEAM = 84; const int CF_SWORD3BEAM = 85; const int CF_SWORD4BEAM = 86; const int CF_HOOKSHOT = 87; const int CF_WAND = 88; const int CF_HAMMER = 89; const int CF_STRIKE = 90; const int CF_BLOCKHOLE = 91; const int CF_MAGICFAIRY = 92; const int CF_ALLFAIRY = 93; const int CF_SINGLE = 94; const int CF_SINGLE16 = 95; const int CF_NOENEMY = 96; const int CF_NOGROUNDENEMY = 97; const int CF_SCRIPT1 = 98; const int CF_SCRIPT2 = 99; const int CF_SCRIPT3 = 100; const int CF_SCRIPT4 = 101; const int CF_SCRIPT5 = 102; //Combo types. Use with Screen->ComboT[] const int CT_ARMOS = 4; const int CT_AWARPA = 94; const int CT_AWARPB = 95; const int CT_AWARPC = 96; const int CT_AWARPD = 97; const int CT_AWARPR = 98; const int CT_BLOCKALL = 118; const int CT_BLOCKARROW1 = 111; const int CT_BLOCKARROW2 = 112; const int CT_BLOCKARROW3 = 113; const int CT_BLOCKBRANG1 = 114; const int CT_BLOCKBRANG2 = 115; const int CT_BLOCKBRANG3 = 116; const int CT_BLOCKFIREBALL = 119; const int CT_BLOCKMAGIC = 50; const int CT_BLOCKSWORDBEAM = 117; const int CT_BOSSCHEST = 69; const int CT_BOSSCHEST2 = 70; const int CT_BOSSLOCKBLOCK = 61; const int CT_BOSSLOCKBLOCK2 = 62; const int CT_BSGRAVE = 64; const int CT_BUSH = 55; const int CT_BUSHC = 134; const int CT_BUSHNEXT = 131; const int CT_BUSHNEXTC = 139; const int CT_CAVE = 2; const int CT_CAVE2 = 51; const int CT_CAVE2B = 83; const int CT_CAVE2C = 84; const int CT_CAVE2D = 85; const int CT_CAVEB = 74; const int CT_CAVEC = 75; const int CT_CAVED = 76; const int CT_CENTERSTATUE = 35; const int CT_CENTRESTATUE = 35; const int CT_CHEST = 65; const int CT_CHEST2 = 66; const int CT_CVDOWN = 15; const int CT_CVLEFT = 16; const int CT_CVRIGHT = 17; const int CT_CVUP = 14; const int CT_DAMAGE1 = 31; const int CT_DAMAGE2 = 32; const int CT_DAMAGE3 = 33; const int CT_DAMAGE4 = 34; const int CT_DAMAGE5 = 120; const int CT_DAMAGE6 = 121; const int CT_DAMAGE7 = 122; const int CT_DIVEWARP = 19; const int CT_DIVEWARPB = 89; const int CT_DIVEWARPC = 90; const int CT_DIVEWARPD = 91; const int CT_DOCK = 6; const int CT_EYEBALL4WAY = 140; const int CT_EYEBALLA = 52; const int CT_EYEBALLB = 53; const int CT_FLOWERS = 56; const int CT_FLOWERSC = 135; const int CT_GRAVE = 5; const int CT_HOOKSHOTONLY = 42; const int CT_HSBRIDGE = 30; const int CT_HSGRAB = 29; const int CT_LADDERHOOKSHOT = 20; const int CT_LADDERONLY = 63; const int CT_LEFTSTATUE = 11; const int CT_LOCKBLOCK = 59; const int CT_LOCKBLOCK2 = 60; const int CT_LOCKEDCHEST = 67; const int CT_LOCKEDCHEST2 = 68; const int CT_MAGICPRISM = 48; const int CT_MAGICPRISM4WAY = 49; const int CT_MIRROR = 45; const int CT_MIRRORBACKSLASH = 47; const int CT_MIRRORSLASH = 46; const int CT_NOENEMY = 110; const int CT_NOFLYZONE = 44; const int CT_NOGROUNDENEMY = 128; const int CT_NOJUMPZONE = 54; const int CT_NONE = 0; const int CT_OVERHEAD = 43; const int CT_PIT = 41; const int CT_PITB = 80; const int CT_PITC = 81; const int CT_PITD = 82; const int CT_PITR = 93; const int CT_POUND = 28; const int CT_PUSHHEAVY = 9; const int CT_PUSHHEAVY2 = 26; const int CT_PUSHHEAVY2WAIT = 27; const int CT_PUSHHEAVYWAIT = 10; const int CT_PUSHWAIT = 8; const int CT_RESET = 71; const int CT_RIGHTSTATUE = 12; const int CT_SAVE = 72; const int CT_SAVE2 = 73; const int CT_SCREENFREEZE = 126; const int CT_SCREENFREEZEFF = 127; const int CT_SCRIPT1 = 142; const int CT_SCRIPT2 = 143; const int CT_SCRIPT3 = 144; const int CT_SCRIPT4 = 145; const int CT_SCRIPT5 = 146; const int CT_SHALLOWWATER = 58; const int CT_SLASH = 24; const int CT_SLASHC = 132; const int CT_SLASHITEM = 25; const int CT_SLASHITEMC = 133; const int CT_SLASHNEXT = 129; const int CT_SLASHNEXTC = 137; const int CT_SLASHNEXTITEM = 130; const int CT_SLASHNEXTITEMC = 138; const int CT_SLOWWALK = 13; const int CT_SPINTILE1 = 124; const int CT_SPINTILE2 = 125; const int CT_STAIR = 1; const int CT_STAIRB = 77; const int CT_STAIRC = 78; const int CT_STAIRD = 79; const int CT_STAIRR = 92; const int CT_STEP = 106; const int CT_STEPALL = 108; const int CT_STEPCOPY = 109; const int CT_STEPSAME = 107; const int CT_STRIGFLAG = 105; const int CT_STRIGNOFLAG = 104; const int CT_SWARPA = 99; const int CT_SWARPB = 100; const int CT_SWARPC = 101; const int CT_SWARPD = 102; const int CT_SWARPR = 103; const int CT_SWIMWARP = 18; const int CT_SWIMWARPB = 86; const int CT_SWIMWARPC = 87; const int CT_SWIMWARPD = 88; const int CT_TALLGRASS = 57; const int CT_TALLGRASSC = 136; const int CT_TALLGRASSNEXT = 141; const int CT_TRAP4WAY = 38; const int CT_TRAPH = 36; const int CT_TRAPLEFTRIGHT = 39; const int CT_TRAPUPDOWN = 40; const int CT_TRAPV = 37; const int CT_TRIGFLAG = 22; const int CT_TRIGNOFLAG = 21; const int CT_WALKSLOW = 13; const int CT_WATER = 3; const int CT_ZELDA = 23; ////////////////// /// FFC Properties //FFC Flags. To be used as indices into ffc->Flags[]. const int FFCF_OVERLAY = 0; // Draw Over (draw between layers 4 and 5) const int FFCF_TRANS = 1; // Translucent const int FFCF_SOLID = 2; // Unused const int FFCF_CARRYOVER = 3; // Carry Over const int FFCF_STATIONARY = 4; // Stationary const int FFCF_CHANGER = 5; // Is A Changer const int FFCF_PRELOAD = 6; // Run Script On Screen Init const int FFCF_LENSVIS = 7; // Only Visible to Lens of Truth const int FFCF_RESET = 8; // Script Resets When Carried Over const int FFCF_ETHEREAL = 9; // The FFC's Combo Type is ignored. const int FFCF_IGNOREHOLDUP = 10; // The FFC is updated while Link is holding up an item //Aim-type constants, for use with AimEWeapon const int AT_NONE = 0; const int AT_4DIR = 1; const int AT_8DIR = 2; const int AT_ANGULAR = 3; const int AT_RAND4DIR = 4; const int AT_RAND8DIR = 5; const int AT_RANDANGULAR = 6; //Tile and Side Warps const int TILEWARP_A = 0; const int TILEWARP_B = 1; const int TILEWARP_C = 2; const int TILEWARP_D = 3; const int SIDEWARP_A = 0; const int SIDEWARP_B = 1; const int SIDEWARP_C = 2; const int SIDEWARP_D = 3; //Array Handling //const float MALLOC_FREE = 214747.9898; //Used with malloc to determine is an index is available. //const float MALLOC_RESERVED = 214747.8989; //used with Malloc to reserve indices. //! Moved to mem.zh //Drawing texture Modes const int TEX_BITMAP = 214739;