//============================================================================


// Native types. All native functions take extended handle types when


// possible to help prevent passing bad values to native functions


//


type agent			    extends     handle  // all reference counted objects


type event              extends     agent  // a reference to an event registration


type player             extends     agent  // a single player reference


type widget             extends     agent  // an interactive game object with life


type unit               extends     widget  // a single unit reference


type destructable       extends     widget


type item               extends     widget


type ability            extends     agent


type buff               extends     ability


type force              extends     agent


type group              extends     agent


type trigger            extends     agent


type triggercondition   extends     agent


type triggeraction      extends     handle


type timer              extends     agent


type location           extends     agent


type region             extends     agent


type rect               extends     agent


type boolexpr           extends     agent


type sound              extends     agent


type conditionfunc      extends     boolexpr


type filterfunc         extends     boolexpr


type unitpool           extends     handle


type itempool           extends     handle


type race               extends     handle


type alliancetype       extends     handle


type racepreference     extends     handle


type gamestate          extends     handle


type igamestate         extends     gamestate


type fgamestate         extends     gamestate


type playerstate        extends     handle


type playerscore        extends     handle


type playergameresult   extends     handle


type unitstate          extends     handle


type aidifficulty       extends     handle





type eventid            extends     handle


type gameevent          extends     eventid


type playerevent        extends     eventid


type playerunitevent    extends     eventid


type unitevent          extends     eventid


type limitop            extends     eventid


type widgetevent        extends     eventid


type dialogevent        extends     eventid


type unittype           extends     handle





type gamespeed          extends     handle


type gamedifficulty     extends     handle


type gametype           extends     handle


type mapflag            extends     handle


type mapvisibility      extends     handle


type mapsetting         extends     handle


type mapdensity         extends     handle


type mapcontrol         extends     handle


type playerslotstate    extends     handle


type volumegroup        extends     handle


type camerafield        extends     handle


type camerasetup        extends     handle


type playercolor        extends     handle


type placement          extends     handle


type startlocprio       extends     handle


type raritycontrol      extends     handle


type blendmode          extends     handle


type texmapflags        extends     handle


type effect             extends     agent


type effecttype         extends     handle


type weathereffect      extends     handle


type terraindeformation extends     handle


type fogstate           extends     handle


type fogmodifier        extends     agent


type dialog             extends     agent


type button             extends     agent


type quest              extends     agent


type questitem          extends     agent


type defeatcondition    extends     agent


type timerdialog        extends     agent


type leaderboard        extends     agent


type multiboard         extends     agent


type multiboarditem     extends     agent


type trackable          extends     agent


type gamecache          extends     agent


type version            extends     handle


type itemtype           extends     handle


type texttag            extends     handle


type attacktype         extends     handle


type damagetype         extends     handle


type weapontype         extends     handle


type soundtype          extends     handle


type lightning          extends     handle


type pathingtype        extends     handle


type image              extends     handle


type ubersplat          extends     handle


type hashtable          extends     agent





constant native ConvertRace                 takes integer i returns race


constant native ConvertAllianceType         takes integer i returns alliancetype


constant native ConvertRacePref             takes integer i returns racepreference


constant native ConvertIGameState           takes integer i returns igamestate


constant native ConvertFGameState           takes integer i returns fgamestate


constant native ConvertPlayerState          takes integer i returns playerstate


constant native ConvertPlayerScore          takes integer i returns playerscore


constant native ConvertPlayerGameResult     takes integer i returns playergameresult


constant native ConvertUnitState            takes integer i returns unitstate


constant native ConvertAIDifficulty         takes integer i returns aidifficulty


constant native ConvertGameEvent            takes integer i returns gameevent


constant native ConvertPlayerEvent          takes integer i returns playerevent


constant native ConvertPlayerUnitEvent      takes integer i returns playerunitevent


constant native ConvertWidgetEvent          takes integer i returns widgetevent


constant native ConvertDialogEvent          takes integer i returns dialogevent


constant native ConvertUnitEvent            takes integer i returns unitevent


constant native ConvertLimitOp              takes integer i returns limitop


constant native ConvertUnitType             takes integer i returns unittype


constant native ConvertGameSpeed            takes integer i returns gamespeed


constant native ConvertPlacement            takes integer i returns placement


constant native ConvertStartLocPrio         takes integer i returns startlocprio


constant native ConvertGameDifficulty       takes integer i returns gamedifficulty


constant native ConvertGameType             takes integer i returns gametype


constant native ConvertMapFlag              takes integer i returns mapflag


constant native ConvertMapVisibility        takes integer i returns mapvisibility


constant native ConvertMapSetting           takes integer i returns mapsetting


constant native ConvertMapDensity           takes integer i returns mapdensity


constant native ConvertMapControl           takes integer i returns mapcontrol


constant native ConvertPlayerColor          takes integer i returns playercolor


constant native ConvertPlayerSlotState      takes integer i returns playerslotstate


constant native ConvertVolumeGroup          takes integer i returns volumegroup


constant native ConvertCameraField          takes integer i returns camerafield


constant native ConvertBlendMode            takes integer i returns blendmode


constant native ConvertRarityControl        takes integer i returns raritycontrol


constant native ConvertTexMapFlags          takes integer i returns texmapflags


constant native ConvertFogState             takes integer i returns fogstate


constant native ConvertEffectType           takes integer i returns effecttype


constant native ConvertVersion              takes integer i returns version


constant native ConvertItemType             takes integer i returns itemtype


constant native ConvertAttackType           takes integer i returns attacktype


constant native ConvertDamageType           takes integer i returns damagetype


constant native ConvertWeaponType           takes integer i returns weapontype


constant native ConvertSoundType            takes integer i returns soundtype


constant native ConvertPathingType          takes integer i returns pathingtype





constant native OrderId                     takes string  orderIdString     returns integer


constant native OrderId2String              takes integer orderId           returns string


constant native UnitId                      takes string  unitIdString      returns integer


constant native UnitId2String               takes integer unitId            returns string





// Not currently working correctly...


constant native AbilityId                   takes string  abilityIdString   returns integer


constant native AbilityId2String            takes integer abilityId         returns string





// Looks up the "name" field for any object (unit, item, ability)


constant native GetObjectName               takes integer objectId          returns string





globals





//===================================================


// Game Constants    


//===================================================





    // pfff


    constant boolean            FALSE                           = false


    constant boolean            TRUE                            = true


    constant integer            JASS_MAX_ARRAY_SIZE             = 8192





    constant integer            PLAYER_NEUTRAL_PASSIVE          = 15


    constant integer            PLAYER_NEUTRAL_AGGRESSIVE       = 12





    constant playercolor        PLAYER_COLOR_RED                = ConvertPlayerColor(0)


    constant playercolor        PLAYER_COLOR_BLUE               = ConvertPlayerColor(1)


    constant playercolor        PLAYER_COLOR_CYAN               = ConvertPlayerColor(2)


    constant playercolor        PLAYER_COLOR_PURPLE             = ConvertPlayerColor(3)


    constant playercolor        PLAYER_COLOR_YELLOW             = ConvertPlayerColor(4)


    constant playercolor        PLAYER_COLOR_ORANGE             = ConvertPlayerColor(5)


    constant playercolor        PLAYER_COLOR_GREEN              = ConvertPlayerColor(6)


    constant playercolor        PLAYER_COLOR_PINK               = ConvertPlayerColor(7)


    constant playercolor        PLAYER_COLOR_LIGHT_GRAY         = ConvertPlayerColor(8)


    constant playercolor        PLAYER_COLOR_LIGHT_BLUE         = ConvertPlayerColor(9)


    constant playercolor        PLAYER_COLOR_AQUA               = ConvertPlayerColor(10)


    constant playercolor        PLAYER_COLOR_BROWN              = ConvertPlayerColor(11)





    constant race               RACE_HUMAN                      = ConvertRace(1)


    constant race               RACE_ORC                        = ConvertRace(2)


    constant race               RACE_UNDEAD                     = ConvertRace(3)


    constant race               RACE_NIGHTELF                   = ConvertRace(4)


    constant race               RACE_DEMON                      = ConvertRace(5)


    constant race               RACE_OTHER                      = ConvertRace(7)





    constant playergameresult   PLAYER_GAME_RESULT_VICTORY      = ConvertPlayerGameResult(0)


    constant playergameresult   PLAYER_GAME_RESULT_DEFEAT       = ConvertPlayerGameResult(1)


    constant playergameresult   PLAYER_GAME_RESULT_TIE          = ConvertPlayerGameResult(2)


    constant playergameresult   PLAYER_GAME_RESULT_NEUTRAL      = ConvertPlayerGameResult(3)





    constant alliancetype       ALLIANCE_PASSIVE                = ConvertAllianceType(0)


    constant alliancetype       ALLIANCE_HELP_REQUEST           = ConvertAllianceType(1)


    constant alliancetype       ALLIANCE_HELP_RESPONSE          = ConvertAllianceType(2)


    constant alliancetype       ALLIANCE_SHARED_XP              = ConvertAllianceType(3)


    constant alliancetype       ALLIANCE_SHARED_SPELLS          = ConvertAllianceType(4)


    constant alliancetype       ALLIANCE_SHARED_VISION          = ConvertAllianceType(5)


    constant alliancetype       ALLIANCE_SHARED_CONTROL         = ConvertAllianceType(6)


    constant alliancetype       ALLIANCE_SHARED_ADVANCED_CONTROL= ConvertAllianceType(7)


    constant alliancetype       ALLIANCE_RESCUABLE              = ConvertAllianceType(8)


    constant alliancetype       ALLIANCE_SHARED_VISION_FORCED   = ConvertAllianceType(9)





    constant version            VERSION_REIGN_OF_CHAOS          = ConvertVersion(0)


    constant version            VERSION_FROZEN_THRONE           = ConvertVersion(1)





    constant attacktype         ATTACK_TYPE_NORMAL              = ConvertAttackType(0)


    constant attacktype         ATTACK_TYPE_MELEE               = ConvertAttackType(1)


    constant attacktype         ATTACK_TYPE_PIERCE              = ConvertAttackType(2)


    constant attacktype         ATTACK_TYPE_SIEGE               = ConvertAttackType(3)


    constant attacktype         ATTACK_TYPE_MAGIC               = ConvertAttackType(4)


    constant attacktype         ATTACK_TYPE_CHAOS               = ConvertAttackType(5)


    constant attacktype         ATTACK_TYPE_HERO                = ConvertAttackType(6)





    constant damagetype         DAMAGE_TYPE_UNKNOWN             = ConvertDamageType(0)


    constant damagetype         DAMAGE_TYPE_NORMAL              = ConvertDamageType(4)


    constant damagetype         DAMAGE_TYPE_ENHANCED            = ConvertDamageType(5)


    constant damagetype         DAMAGE_TYPE_FIRE                = ConvertDamageType(8)


    constant damagetype         DAMAGE_TYPE_COLD                = ConvertDamageType(9)


    constant damagetype         DAMAGE_TYPE_LIGHTNING           = ConvertDamageType(10)


    constant damagetype         DAMAGE_TYPE_POISON              = ConvertDamageType(11)


    constant damagetype         DAMAGE_TYPE_DISEASE             = ConvertDamageType(12)


    constant damagetype         DAMAGE_TYPE_DIVINE              = ConvertDamageType(13)


    constant damagetype         DAMAGE_TYPE_MAGIC               = ConvertDamageType(14)


    constant damagetype         DAMAGE_TYPE_SONIC               = ConvertDamageType(15)


    constant damagetype         DAMAGE_TYPE_ACID                = ConvertDamageType(16)


    constant damagetype         DAMAGE_TYPE_FORCE               = ConvertDamageType(17)


    constant damagetype         DAMAGE_TYPE_DEATH               = ConvertDamageType(18)


    constant damagetype         DAMAGE_TYPE_MIND                = ConvertDamageType(19)


    constant damagetype         DAMAGE_TYPE_PLANT               = ConvertDamageType(20)


    constant damagetype         DAMAGE_TYPE_DEFENSIVE           = ConvertDamageType(21)


    constant damagetype         DAMAGE_TYPE_DEMOLITION          = ConvertDamageType(22)


    constant damagetype         DAMAGE_TYPE_SLOW_POISON         = ConvertDamageType(23)


    constant damagetype         DAMAGE_TYPE_SPIRIT_LINK         = ConvertDamageType(24)


    constant damagetype         DAMAGE_TYPE_SHADOW_STRIKE       = ConvertDamageType(25)


    constant damagetype         DAMAGE_TYPE_UNIVERSAL           = ConvertDamageType(26)





    constant weapontype         WEAPON_TYPE_WHOKNOWS            = ConvertWeaponType(0)


    constant weapontype         WEAPON_TYPE_METAL_LIGHT_CHOP    = ConvertWeaponType(1)


    constant weapontype         WEAPON_TYPE_METAL_MEDIUM_CHOP   = ConvertWeaponType(2)


    constant weapontype         WEAPON_TYPE_METAL_HEAVY_CHOP    = ConvertWeaponType(3)


    constant weapontype         WEAPON_TYPE_METAL_LIGHT_SLICE   = ConvertWeaponType(4)


    constant weapontype         WEAPON_TYPE_METAL_MEDIUM_SLICE  = ConvertWeaponType(5)


    constant weapontype         WEAPON_TYPE_METAL_HEAVY_SLICE   = ConvertWeaponType(6)


    constant weapontype         WEAPON_TYPE_METAL_MEDIUM_BASH   = ConvertWeaponType(7)


    constant weapontype         WEAPON_TYPE_METAL_HEAVY_BASH    = ConvertWeaponType(8)


    constant weapontype         WEAPON_TYPE_METAL_MEDIUM_STAB   = ConvertWeaponType(9)


    constant weapontype         WEAPON_TYPE_METAL_HEAVY_STAB    = ConvertWeaponType(10)


    constant weapontype         WEAPON_TYPE_WOOD_LIGHT_SLICE    = ConvertWeaponType(11)


    constant weapontype         WEAPON_TYPE_WOOD_MEDIUM_SLICE   = ConvertWeaponType(12)


    constant weapontype         WEAPON_TYPE_WOOD_HEAVY_SLICE    = ConvertWeaponType(13)


    constant weapontype         WEAPON_TYPE_WOOD_LIGHT_BASH     = ConvertWeaponType(14)


    constant weapontype         WEAPON_TYPE_WOOD_MEDIUM_BASH    = ConvertWeaponType(15)


    constant weapontype         WEAPON_TYPE_WOOD_HEAVY_BASH     = ConvertWeaponType(16)


    constant weapontype         WEAPON_TYPE_WOOD_LIGHT_STAB     = ConvertWeaponType(17)


    constant weapontype         WEAPON_TYPE_WOOD_MEDIUM_STAB    = ConvertWeaponType(18)


    constant weapontype         WEAPON_TYPE_CLAW_LIGHT_SLICE    = ConvertWeaponType(19)


    constant weapontype         WEAPON_TYPE_CLAW_MEDIUM_SLICE   = ConvertWeaponType(20)


    constant weapontype         WEAPON_TYPE_CLAW_HEAVY_SLICE    = ConvertWeaponType(21)


    constant weapontype         WEAPON_TYPE_AXE_MEDIUM_CHOP     = ConvertWeaponType(22)


    constant weapontype         WEAPON_TYPE_ROCK_HEAVY_BASH     = ConvertWeaponType(23)





    constant pathingtype        PATHING_TYPE_ANY                = ConvertPathingType(0)


    constant pathingtype        PATHING_TYPE_WALKABILITY        = ConvertPathingType(1)


    constant pathingtype        PATHING_TYPE_FLYABILITY         = ConvertPathingType(2)


    constant pathingtype        PATHING_TYPE_BUILDABILITY       = ConvertPathingType(3)


    constant pathingtype        PATHING_TYPE_PEONHARVESTPATHING = ConvertPathingType(4)


    constant pathingtype        PATHING_TYPE_BLIGHTPATHING      = ConvertPathingType(5)


    constant pathingtype        PATHING_TYPE_FLOATABILITY       = ConvertPathingType(6)


    constant pathingtype        PATHING_TYPE_AMPHIBIOUSPATHING  = ConvertPathingType(7)





//===================================================


// Map Setup Constants    


//===================================================





    constant racepreference     RACE_PREF_HUMAN                     = ConvertRacePref(1)


    constant racepreference     RACE_PREF_ORC                       = ConvertRacePref(2)


    constant racepreference     RACE_PREF_NIGHTELF                  = ConvertRacePref(4)


    constant racepreference     RACE_PREF_UNDEAD                    = ConvertRacePref(8)


    constant racepreference     RACE_PREF_DEMON                     = ConvertRacePref(16)


    constant racepreference     RACE_PREF_RANDOM                    = ConvertRacePref(32)


    constant racepreference     RACE_PREF_USER_SELECTABLE           = ConvertRacePref(64)





    constant mapcontrol         MAP_CONTROL_USER                    = ConvertMapControl(0)


    constant mapcontrol         MAP_CONTROL_COMPUTER                = ConvertMapControl(1)


    constant mapcontrol         MAP_CONTROL_RESCUABLE               = ConvertMapControl(2)


    constant mapcontrol         MAP_CONTROL_NEUTRAL                 = ConvertMapControl(3)


    constant mapcontrol         MAP_CONTROL_CREEP                   = ConvertMapControl(4)


    constant mapcontrol         MAP_CONTROL_NONE                    = ConvertMapControl(5)





    constant gametype           GAME_TYPE_MELEE                     = ConvertGameType(1)


    constant gametype           GAME_TYPE_FFA                       = ConvertGameType(2)


    constant gametype           GAME_TYPE_USE_MAP_SETTINGS          = ConvertGameType(4)


    constant gametype           GAME_TYPE_BLIZ                      = ConvertGameType(8)


    constant gametype           GAME_TYPE_ONE_ON_ONE                = ConvertGameType(16)


    constant gametype           GAME_TYPE_TWO_TEAM_PLAY             = ConvertGameType(32)


    constant gametype           GAME_TYPE_THREE_TEAM_PLAY           = ConvertGameType(64)


    constant gametype           GAME_TYPE_FOUR_TEAM_PLAY            = ConvertGameType(128)





    constant mapflag            MAP_FOG_HIDE_TERRAIN                = ConvertMapFlag(1)


    constant mapflag            MAP_FOG_MAP_EXPLORED                = ConvertMapFlag(2)


    constant mapflag            MAP_FOG_ALWAYS_VISIBLE              = ConvertMapFlag(4)





    constant mapflag            MAP_USE_HANDICAPS                   = ConvertMapFlag(8)


    constant mapflag            MAP_OBSERVERS                       = ConvertMapFlag(16)


    constant mapflag            MAP_OBSERVERS_ON_DEATH              = ConvertMapFlag(32)





    constant mapflag            MAP_FIXED_COLORS                    = ConvertMapFlag(128)


    


    constant mapflag            MAP_LOCK_RESOURCE_TRADING           = ConvertMapFlag(256)


    constant mapflag            MAP_RESOURCE_TRADING_ALLIES_ONLY    = ConvertMapFlag(512)





    constant mapflag            MAP_LOCK_ALLIANCE_CHANGES           = ConvertMapFlag(1024)


    constant mapflag            MAP_ALLIANCE_CHANGES_HIDDEN         = ConvertMapFlag(2048)





    constant mapflag            MAP_CHEATS                          = ConvertMapFlag(4096)


    constant mapflag            MAP_CHEATS_HIDDEN                   = ConvertMapFlag(8192)





    constant mapflag            MAP_LOCK_SPEED                      = ConvertMapFlag(8192*2)


    constant mapflag            MAP_LOCK_RANDOM_SEED                = ConvertMapFlag(8192*4)


    constant mapflag            MAP_SHARED_ADVANCED_CONTROL         = ConvertMapFlag(8192*8)


    constant mapflag            MAP_RANDOM_HERO                     = ConvertMapFlag(8192*16)


    constant mapflag            MAP_RANDOM_RACES                    = ConvertMapFlag(8192*32)


    constant mapflag            MAP_RELOADED                        = ConvertMapFlag(8192*64)





    constant placement          MAP_PLACEMENT_RANDOM                = ConvertPlacement(0)   // random among all slots


    constant placement          MAP_PLACEMENT_FIXED                 = ConvertPlacement(1)   // player 0 in start loc 0...


    constant placement          MAP_PLACEMENT_USE_MAP_SETTINGS      = ConvertPlacement(2)   // whatever was specified by the script


    constant placement          MAP_PLACEMENT_TEAMS_TOGETHER        = ConvertPlacement(3)   // random with allies next to each other    





    constant startlocprio       MAP_LOC_PRIO_LOW                    = ConvertStartLocPrio(0)


    constant startlocprio       MAP_LOC_PRIO_HIGH                   = ConvertStartLocPrio(1)


    constant startlocprio       MAP_LOC_PRIO_NOT                    = ConvertStartLocPrio(2)





    constant mapdensity         MAP_DENSITY_NONE                    = ConvertMapDensity(0)


    constant mapdensity         MAP_DENSITY_LIGHT                   = ConvertMapDensity(1)


    constant mapdensity         MAP_DENSITY_MEDIUM                  = ConvertMapDensity(2)


    constant mapdensity         MAP_DENSITY_HEAVY                   = ConvertMapDensity(3)





    constant gamedifficulty     MAP_DIFFICULTY_EASY                 = ConvertGameDifficulty(0)


    constant gamedifficulty     MAP_DIFFICULTY_NORMAL               = ConvertGameDifficulty(1)


    constant gamedifficulty     MAP_DIFFICULTY_HARD                 = ConvertGameDifficulty(2)


    constant gamedifficulty     MAP_DIFFICULTY_INSANE               = ConvertGameDifficulty(3)





    constant gamespeed          MAP_SPEED_SLOWEST                   = ConvertGameSpeed(0)


    constant gamespeed          MAP_SPEED_SLOW                      = ConvertGameSpeed(1)


    constant gamespeed          MAP_SPEED_NORMAL                    = ConvertGameSpeed(2)


    constant gamespeed          MAP_SPEED_FAST                      = ConvertGameSpeed(3)


    constant gamespeed          MAP_SPEED_FASTEST                   = ConvertGameSpeed(4)





    constant playerslotstate    PLAYER_SLOT_STATE_EMPTY             = ConvertPlayerSlotState(0)


    constant playerslotstate    PLAYER_SLOT_STATE_PLAYING           = ConvertPlayerSlotState(1)


    constant playerslotstate    PLAYER_SLOT_STATE_LEFT              = ConvertPlayerSlotState(2)





//===================================================


// Sound Constants


//===================================================


    constant volumegroup        SOUND_VOLUMEGROUP_UNITMOVEMENT      = ConvertVolumeGroup(0)


    constant volumegroup        SOUND_VOLUMEGROUP_UNITSOUNDS        = ConvertVolumeGroup(1)


    constant volumegroup        SOUND_VOLUMEGROUP_COMBAT            = ConvertVolumeGroup(2)


    constant volumegroup        SOUND_VOLUMEGROUP_SPELLS            = ConvertVolumeGroup(3)


    constant volumegroup        SOUND_VOLUMEGROUP_UI                = ConvertVolumeGroup(4)


    constant volumegroup        SOUND_VOLUMEGROUP_MUSIC             = ConvertVolumeGroup(5)


    constant volumegroup        SOUND_VOLUMEGROUP_AMBIENTSOUNDS     = ConvertVolumeGroup(6)


    constant volumegroup        SOUND_VOLUMEGROUP_FIRE              = ConvertVolumeGroup(7)








//===================================================


// Game, Player, and Unit States


//


// For use with TriggerRegister<X>StateEvent


//


//===================================================





    constant igamestate GAME_STATE_DIVINE_INTERVENTION          = ConvertIGameState(0)


    constant igamestate GAME_STATE_DISCONNECTED                 = ConvertIGameState(1)


    constant fgamestate GAME_STATE_TIME_OF_DAY                  = ConvertFGameState(2)





    constant playerstate PLAYER_STATE_GAME_RESULT               = ConvertPlayerState(0)





    // current resource levels


    //


    constant playerstate PLAYER_STATE_RESOURCE_GOLD             = ConvertPlayerState(1)


    constant playerstate PLAYER_STATE_RESOURCE_LUMBER           = ConvertPlayerState(2)


    constant playerstate PLAYER_STATE_RESOURCE_HERO_TOKENS      = ConvertPlayerState(3)


    constant playerstate PLAYER_STATE_RESOURCE_FOOD_CAP         = ConvertPlayerState(4)


    constant playerstate PLAYER_STATE_RESOURCE_FOOD_USED        = ConvertPlayerState(5)


    constant playerstate PLAYER_STATE_FOOD_CAP_CEILING          = ConvertPlayerState(6)





    constant playerstate PLAYER_STATE_GIVES_BOUNTY              = ConvertPlayerState(7)


    constant playerstate PLAYER_STATE_ALLIED_VICTORY            = ConvertPlayerState(8)


    constant playerstate PLAYER_STATE_PLACED                    = ConvertPlayerState(9)


    constant playerstate PLAYER_STATE_OBSERVER_ON_DEATH         = ConvertPlayerState(10)


    constant playerstate PLAYER_STATE_OBSERVER                  = ConvertPlayerState(11)


    constant playerstate PLAYER_STATE_UNFOLLOWABLE              = ConvertPlayerState(12)





    // taxation rate for each resource


    //


    constant playerstate PLAYER_STATE_GOLD_UPKEEP_RATE          = ConvertPlayerState(13)


    constant playerstate PLAYER_STATE_LUMBER_UPKEEP_RATE        = ConvertPlayerState(14)





    // cumulative resources collected by the player during the mission


    //


    constant playerstate PLAYER_STATE_GOLD_GATHERED             = ConvertPlayerState(15)


    constant playerstate PLAYER_STATE_LUMBER_GATHERED           = ConvertPlayerState(16)





    constant playerstate PLAYER_STATE_NO_CREEP_SLEEP            = ConvertPlayerState(25)





    constant unitstate UNIT_STATE_LIFE                          = ConvertUnitState(0)


    constant unitstate UNIT_STATE_MAX_LIFE                      = ConvertUnitState(1)


    constant unitstate UNIT_STATE_MANA                          = ConvertUnitState(2)


    constant unitstate UNIT_STATE_MAX_MANA                      = ConvertUnitState(3)





    constant aidifficulty AI_DIFFICULTY_NEWBIE                  = ConvertAIDifficulty(0)


    constant aidifficulty AI_DIFFICULTY_NORMAL                  = ConvertAIDifficulty(1)


    constant aidifficulty AI_DIFFICULTY_INSANE                  = ConvertAIDifficulty(2)





    // player score values


    constant playerscore PLAYER_SCORE_UNITS_TRAINED             = ConvertPlayerScore(0)


    constant playerscore PLAYER_SCORE_UNITS_KILLED              = ConvertPlayerScore(1)


    constant playerscore PLAYER_SCORE_STRUCT_BUILT              = ConvertPlayerScore(2)


    constant playerscore PLAYER_SCORE_STRUCT_RAZED              = ConvertPlayerScore(3)


    constant playerscore PLAYER_SCORE_TECH_PERCENT              = ConvertPlayerScore(4)


    constant playerscore PLAYER_SCORE_FOOD_MAXPROD              = ConvertPlayerScore(5)


    constant playerscore PLAYER_SCORE_FOOD_MAXUSED              = ConvertPlayerScore(6)


    constant playerscore PLAYER_SCORE_HEROES_KILLED             = ConvertPlayerScore(7)


    constant playerscore PLAYER_SCORE_ITEMS_GAINED              = ConvertPlayerScore(8)


    constant playerscore PLAYER_SCORE_MERCS_HIRED               = ConvertPlayerScore(9)


    constant playerscore PLAYER_SCORE_GOLD_MINED_TOTAL          = ConvertPlayerScore(10)


    constant playerscore PLAYER_SCORE_GOLD_MINED_UPKEEP         = ConvertPlayerScore(11)


    constant playerscore PLAYER_SCORE_GOLD_LOST_UPKEEP          = ConvertPlayerScore(12)


    constant playerscore PLAYER_SCORE_GOLD_LOST_TAX             = ConvertPlayerScore(13)


    constant playerscore PLAYER_SCORE_GOLD_GIVEN                = ConvertPlayerScore(14)


    constant playerscore PLAYER_SCORE_GOLD_RECEIVED             = ConvertPlayerScore(15)


    constant playerscore PLAYER_SCORE_LUMBER_TOTAL              = ConvertPlayerScore(16)


    constant playerscore PLAYER_SCORE_LUMBER_LOST_UPKEEP        = ConvertPlayerScore(17)


    constant playerscore PLAYER_SCORE_LUMBER_LOST_TAX           = ConvertPlayerScore(18)


    constant playerscore PLAYER_SCORE_LUMBER_GIVEN              = ConvertPlayerScore(19)


    constant playerscore PLAYER_SCORE_LUMBER_RECEIVED           = ConvertPlayerScore(20)


    constant playerscore PLAYER_SCORE_UNIT_TOTAL                = ConvertPlayerScore(21)


    constant playerscore PLAYER_SCORE_HERO_TOTAL                = ConvertPlayerScore(22)


    constant playerscore PLAYER_SCORE_RESOURCE_TOTAL            = ConvertPlayerScore(23)


    constant playerscore PLAYER_SCORE_TOTAL                     = ConvertPlayerScore(24)


        


//===================================================


// Game, Player and Unit Events


//


//  When an event causes a trigger to fire these


//  values allow the action code to determine which


//  event was dispatched and therefore which set of


//  native functions should be used to get information


//  about the event.


//


// Do NOT change the order or value of these constants


// without insuring that the JASS_GAME_EVENTS_WAR3 enum


// is changed to match.


//


//===================================================





    //===================================================


    // For use with TriggerRegisterGameEvent    


    //===================================================    





    constant gameevent EVENT_GAME_VICTORY                       = ConvertGameEvent(0)


    constant gameevent EVENT_GAME_END_LEVEL                     = ConvertGameEvent(1)





    constant gameevent EVENT_GAME_VARIABLE_LIMIT                = ConvertGameEvent(2)


    constant gameevent EVENT_GAME_STATE_LIMIT                   = ConvertGameEvent(3)   





    constant gameevent EVENT_GAME_TIMER_EXPIRED                 = ConvertGameEvent(4)





    constant gameevent EVENT_GAME_ENTER_REGION                  = ConvertGameEvent(5)


    constant gameevent EVENT_GAME_LEAVE_REGION                  = ConvertGameEvent(6)





    constant gameevent EVENT_GAME_TRACKABLE_HIT                 = ConvertGameEvent(7)


    constant gameevent EVENT_GAME_TRACKABLE_TRACK               = ConvertGameEvent(8)





    constant gameevent EVENT_GAME_SHOW_SKILL                    = ConvertGameEvent(9)    


    constant gameevent EVENT_GAME_BUILD_SUBMENU                 = ConvertGameEvent(10)





    //===================================================


    // For use with TriggerRegisterPlayerEvent


    //===================================================


    constant playerevent EVENT_PLAYER_STATE_LIMIT               = ConvertPlayerEvent(11)


    constant playerevent EVENT_PLAYER_ALLIANCE_CHANGED          = ConvertPlayerEvent(12)





    constant playerevent EVENT_PLAYER_DEFEAT                    = ConvertPlayerEvent(13)


    constant playerevent EVENT_PLAYER_VICTORY                   = ConvertPlayerEvent(14)


    constant playerevent EVENT_PLAYER_LEAVE                     = ConvertPlayerEvent(15)


    constant playerevent EVENT_PLAYER_CHAT                      = ConvertPlayerEvent(16)


    constant playerevent EVENT_PLAYER_END_CINEMATIC             = ConvertPlayerEvent(17)





    //===================================================


    // For use with TriggerRegisterPlayerUnitEvent


    //===================================================





    constant playerunitevent EVENT_PLAYER_UNIT_ATTACKED                 = ConvertPlayerUnitEvent(18)


    constant playerunitevent EVENT_PLAYER_UNIT_RESCUED                  = ConvertPlayerUnitEvent(19)





    constant playerunitevent EVENT_PLAYER_UNIT_DEATH                    = ConvertPlayerUnitEvent(20)


    constant playerunitevent EVENT_PLAYER_UNIT_DECAY                    = ConvertPlayerUnitEvent(21)





    constant playerunitevent EVENT_PLAYER_UNIT_DETECTED                 = ConvertPlayerUnitEvent(22)


    constant playerunitevent EVENT_PLAYER_UNIT_HIDDEN                   = ConvertPlayerUnitEvent(23)





    constant playerunitevent EVENT_PLAYER_UNIT_SELECTED                 = ConvertPlayerUnitEvent(24)


    constant playerunitevent EVENT_PLAYER_UNIT_DESELECTED               = ConvertPlayerUnitEvent(25)





    constant playerunitevent EVENT_PLAYER_UNIT_CONSTRUCT_START          = ConvertPlayerUnitEvent(26)


    constant playerunitevent EVENT_PLAYER_UNIT_CONSTRUCT_CANCEL         = ConvertPlayerUnitEvent(27)


    constant playerunitevent EVENT_PLAYER_UNIT_CONSTRUCT_FINISH         = ConvertPlayerUnitEvent(28)





    constant playerunitevent EVENT_PLAYER_UNIT_UPGRADE_START            = ConvertPlayerUnitEvent(29)


    constant playerunitevent EVENT_PLAYER_UNIT_UPGRADE_CANCEL           = ConvertPlayerUnitEvent(30)


    constant playerunitevent EVENT_PLAYER_UNIT_UPGRADE_FINISH           = ConvertPlayerUnitEvent(31)





    constant playerunitevent EVENT_PLAYER_UNIT_TRAIN_START              = ConvertPlayerUnitEvent(32)


    constant playerunitevent EVENT_PLAYER_UNIT_TRAIN_CANCEL             = ConvertPlayerUnitEvent(33)


    constant playerunitevent EVENT_PLAYER_UNIT_TRAIN_FINISH             = ConvertPlayerUnitEvent(34)





    constant playerunitevent EVENT_PLAYER_UNIT_RESEARCH_START           = ConvertPlayerUnitEvent(35)


    constant playerunitevent EVENT_PLAYER_UNIT_RESEARCH_CANCEL          = ConvertPlayerUnitEvent(36)


    constant playerunitevent EVENT_PLAYER_UNIT_RESEARCH_FINISH          = ConvertPlayerUnitEvent(37)


    constant playerunitevent EVENT_PLAYER_UNIT_ISSUED_ORDER             = ConvertPlayerUnitEvent(38)


    constant playerunitevent EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER       = ConvertPlayerUnitEvent(39)


    constant playerunitevent EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER      = ConvertPlayerUnitEvent(40)


    constant playerunitevent EVENT_PLAYER_UNIT_ISSUED_UNIT_ORDER        = ConvertPlayerUnitEvent(40)    // for compat





    constant playerunitevent EVENT_PLAYER_HERO_LEVEL                    = ConvertPlayerUnitEvent(41)


    constant playerunitevent EVENT_PLAYER_HERO_SKILL                    = ConvertPlayerUnitEvent(42)





    constant playerunitevent EVENT_PLAYER_HERO_REVIVABLE                = ConvertPlayerUnitEvent(43)





    constant playerunitevent EVENT_PLAYER_HERO_REVIVE_START             = ConvertPlayerUnitEvent(44)


    constant playerunitevent EVENT_PLAYER_HERO_REVIVE_CANCEL            = ConvertPlayerUnitEvent(45)


    constant playerunitevent EVENT_PLAYER_HERO_REVIVE_FINISH            = ConvertPlayerUnitEvent(46)


    constant playerunitevent EVENT_PLAYER_UNIT_SUMMON                   = ConvertPlayerUnitEvent(47)


    constant playerunitevent EVENT_PLAYER_UNIT_DROP_ITEM                = ConvertPlayerUnitEvent(48)


    constant playerunitevent EVENT_PLAYER_UNIT_PICKUP_ITEM              = ConvertPlayerUnitEvent(49)


    constant playerunitevent EVENT_PLAYER_UNIT_USE_ITEM                 = ConvertPlayerUnitEvent(50)





    constant playerunitevent EVENT_PLAYER_UNIT_LOADED                   = ConvertPlayerUnitEvent(51)


    


    //===================================================


    // For use with TriggerRegisterUnitEvent


    //===================================================





    constant unitevent EVENT_UNIT_DAMAGED                               = ConvertUnitEvent(52)


    constant unitevent EVENT_UNIT_DEATH                                 = ConvertUnitEvent(53)


    constant unitevent EVENT_UNIT_DECAY                                 = ConvertUnitEvent(54)


    constant unitevent EVENT_UNIT_DETECTED                              = ConvertUnitEvent(55)


    constant unitevent EVENT_UNIT_HIDDEN                                = ConvertUnitEvent(56)


    constant unitevent EVENT_UNIT_SELECTED                              = ConvertUnitEvent(57)


    constant unitevent EVENT_UNIT_DESELECTED                            = ConvertUnitEvent(58)


                                                                        


    constant unitevent EVENT_UNIT_STATE_LIMIT                           = ConvertUnitEvent(59)                                                                        





    // Events which may have a filter for the "other unit"              


    //                                                                  


    constant unitevent EVENT_UNIT_ACQUIRED_TARGET                       = ConvertUnitEvent(60)


    constant unitevent EVENT_UNIT_TARGET_IN_RANGE                       = ConvertUnitEvent(61)


    constant unitevent EVENT_UNIT_ATTACKED                              = ConvertUnitEvent(62)


    constant unitevent EVENT_UNIT_RESCUED                               = ConvertUnitEvent(63)


                                                                        


    constant unitevent EVENT_UNIT_CONSTRUCT_CANCEL                      = ConvertUnitEvent(64)


    constant unitevent EVENT_UNIT_CONSTRUCT_FINISH                      = ConvertUnitEvent(65)


                                                                        


    constant unitevent EVENT_UNIT_UPGRADE_START                         = ConvertUnitEvent(66)


    constant unitevent EVENT_UNIT_UPGRADE_CANCEL                        = ConvertUnitEvent(67)


    constant unitevent EVENT_UNIT_UPGRADE_FINISH                        = ConvertUnitEvent(68)


                                                                        


    // Events which involve the specified unit performing               


    // training of other units                                          


    //                                                                  


    constant unitevent EVENT_UNIT_TRAIN_START                           = ConvertUnitEvent(69)


    constant unitevent EVENT_UNIT_TRAIN_CANCEL                          = ConvertUnitEvent(70)


    constant unitevent EVENT_UNIT_TRAIN_FINISH                          = ConvertUnitEvent(71)


                                                                        


    constant unitevent EVENT_UNIT_RESEARCH_START                        = ConvertUnitEvent(72)


    constant unitevent EVENT_UNIT_RESEARCH_CANCEL                       = ConvertUnitEvent(73)


    constant unitevent EVENT_UNIT_RESEARCH_FINISH                       = ConvertUnitEvent(74)


                                                                        


    constant unitevent EVENT_UNIT_ISSUED_ORDER                          = ConvertUnitEvent(75)


    constant unitevent EVENT_UNIT_ISSUED_POINT_ORDER                    = ConvertUnitEvent(76)


    constant unitevent EVENT_UNIT_ISSUED_TARGET_ORDER                   = ConvertUnitEvent(77)


                                                                       


    constant unitevent EVENT_UNIT_HERO_LEVEL                            = ConvertUnitEvent(78)


    constant unitevent EVENT_UNIT_HERO_SKILL                            = ConvertUnitEvent(79)


                                                                        


    constant unitevent EVENT_UNIT_HERO_REVIVABLE                        = ConvertUnitEvent(80)


    constant unitevent EVENT_UNIT_HERO_REVIVE_START                     = ConvertUnitEvent(81)


    constant unitevent EVENT_UNIT_HERO_REVIVE_CANCEL                    = ConvertUnitEvent(82)


    constant unitevent EVENT_UNIT_HERO_REVIVE_FINISH                    = ConvertUnitEvent(83)


                                                                        


    constant unitevent EVENT_UNIT_SUMMON                                = ConvertUnitEvent(84)


                                                                        


    constant unitevent EVENT_UNIT_DROP_ITEM                             = ConvertUnitEvent(85)


    constant unitevent EVENT_UNIT_PICKUP_ITEM                           = ConvertUnitEvent(86)


    constant unitevent EVENT_UNIT_USE_ITEM                              = ConvertUnitEvent(87)





    constant unitevent EVENT_UNIT_LOADED                                = ConvertUnitEvent(88)





    constant widgetevent EVENT_WIDGET_DEATH                             = ConvertWidgetEvent(89)





    constant dialogevent EVENT_DIALOG_BUTTON_CLICK                      = ConvertDialogEvent(90)


    constant dialogevent EVENT_DIALOG_CLICK                             = ConvertDialogEvent(91)





    //===================================================


    // Frozen Throne Expansion Events


    // Need to be added here to preserve compat


    //===================================================





    //===================================================


    // For use with TriggerRegisterGameEvent    


    //===================================================    





    constant gameevent          EVENT_GAME_LOADED                       = ConvertGameEvent(256)


    constant gameevent          EVENT_GAME_TOURNAMENT_FINISH_SOON       = ConvertGameEvent(257)


    constant gameevent          EVENT_GAME_TOURNAMENT_FINISH_NOW        = ConvertGameEvent(258)


    constant gameevent          EVENT_GAME_SAVE                         = ConvertGameEvent(259)





    //===================================================


    // For use with TriggerRegisterPlayerEvent


    //===================================================





    constant playerevent        EVENT_PLAYER_ARROW_LEFT_DOWN            = ConvertPlayerEvent(261)


    constant playerevent        EVENT_PLAYER_ARROW_LEFT_UP              = ConvertPlayerEvent(262)


    constant playerevent        EVENT_PLAYER_ARROW_RIGHT_DOWN           = ConvertPlayerEvent(263)


    constant playerevent        EVENT_PLAYER_ARROW_RIGHT_UP             = ConvertPlayerEvent(264)


    constant playerevent        EVENT_PLAYER_ARROW_DOWN_DOWN            = ConvertPlayerEvent(265)


    constant playerevent        EVENT_PLAYER_ARROW_DOWN_UP              = ConvertPlayerEvent(266)


    constant playerevent        EVENT_PLAYER_ARROW_UP_DOWN              = ConvertPlayerEvent(267)


    constant playerevent        EVENT_PLAYER_ARROW_UP_UP                = ConvertPlayerEvent(268)





    //===================================================


    // For use with TriggerRegisterPlayerUnitEvent


    //===================================================





    constant playerunitevent    EVENT_PLAYER_UNIT_SELL                  = ConvertPlayerUnitEvent(269)


    constant playerunitevent    EVENT_PLAYER_UNIT_CHANGE_OWNER          = ConvertPlayerUnitEvent(270)


    constant playerunitevent    EVENT_PLAYER_UNIT_SELL_ITEM             = ConvertPlayerUnitEvent(271)


    constant playerunitevent    EVENT_PLAYER_UNIT_SPELL_CHANNEL         = ConvertPlayerUnitEvent(272)


    constant playerunitevent    EVENT_PLAYER_UNIT_SPELL_CAST            = ConvertPlayerUnitEvent(273)


    constant playerunitevent    EVENT_PLAYER_UNIT_SPELL_EFFECT          = ConvertPlayerUnitEvent(274)


    constant playerunitevent    EVENT_PLAYER_UNIT_SPELL_FINISH          = ConvertPlayerUnitEvent(275)


    constant playerunitevent    EVENT_PLAYER_UNIT_SPELL_ENDCAST         = ConvertPlayerUnitEvent(276)


    constant playerunitevent    EVENT_PLAYER_UNIT_PAWN_ITEM             = ConvertPlayerUnitEvent(277)





    //===================================================


    // For use with TriggerRegisterUnitEvent


    //===================================================





    constant unitevent          EVENT_UNIT_SELL                         = ConvertUnitEvent(286)


    constant unitevent          EVENT_UNIT_CHANGE_OWNER                 = ConvertUnitEvent(287)


    constant unitevent          EVENT_UNIT_SELL_ITEM                    = ConvertUnitEvent(288)


    constant unitevent          EVENT_UNIT_SPELL_CHANNEL                = ConvertUnitEvent(289)


    constant unitevent          EVENT_UNIT_SPELL_CAST                   = ConvertUnitEvent(290)


    constant unitevent          EVENT_UNIT_SPELL_EFFECT                 = ConvertUnitEvent(291)


    constant unitevent          EVENT_UNIT_SPELL_FINISH                 = ConvertUnitEvent(292)


    constant unitevent          EVENT_UNIT_SPELL_ENDCAST                = ConvertUnitEvent(293)


    constant unitevent          EVENT_UNIT_PAWN_ITEM                    = ConvertUnitEvent(294)





    //===================================================


    // Limit Event API constants    


    // variable, player state, game state, and unit state events


    // ( do NOT change the order of these... )


    //===================================================


    constant limitop LESS_THAN                              = ConvertLimitOp(0)


    constant limitop LESS_THAN_OR_EQUAL                     = ConvertLimitOp(1)


    constant limitop EQUAL                                  = ConvertLimitOp(2)


    constant limitop GREATER_THAN_OR_EQUAL                  = ConvertLimitOp(3)


    constant limitop GREATER_THAN                           = ConvertLimitOp(4)


    constant limitop NOT_EQUAL                              = ConvertLimitOp(5)





//===================================================


// Unit Type Constants for use with IsUnitType()


//===================================================





    constant unittype UNIT_TYPE_HERO                        = ConvertUnitType(0)


    constant unittype UNIT_TYPE_DEAD                        = ConvertUnitType(1)


    constant unittype UNIT_TYPE_STRUCTURE                   = ConvertUnitType(2)





    constant unittype UNIT_TYPE_FLYING                      = ConvertUnitType(3)


    constant unittype UNIT_TYPE_GROUND                      = ConvertUnitType(4)





    constant unittype UNIT_TYPE_ATTACKS_FLYING              = ConvertUnitType(5)


    constant unittype UNIT_TYPE_ATTACKS_GROUND              = ConvertUnitType(6)





    constant unittype UNIT_TYPE_MELEE_ATTACKER              = ConvertUnitType(7)


    constant unittype UNIT_TYPE_RANGED_ATTACKER             = ConvertUnitType(8)





    constant unittype UNIT_TYPE_GIANT                       = ConvertUnitType(9)


    constant unittype UNIT_TYPE_SUMMONED                    = ConvertUnitType(10)


    constant unittype UNIT_TYPE_STUNNED                     = ConvertUnitType(11)


    constant unittype UNIT_TYPE_PLAGUED                     = ConvertUnitType(12)


    constant unittype UNIT_TYPE_SNARED                      = ConvertUnitType(13)





    constant unittype UNIT_TYPE_UNDEAD                      = ConvertUnitType(14)


    constant unittype UNIT_TYPE_MECHANICAL                  = ConvertUnitType(15)


    constant unittype UNIT_TYPE_PEON                        = ConvertUnitType(16)


    constant unittype UNIT_TYPE_SAPPER                      = ConvertUnitType(17)


    constant unittype UNIT_TYPE_TOWNHALL                    = ConvertUnitType(18)    


    constant unittype UNIT_TYPE_ANCIENT                     = ConvertUnitType(19)


    


    constant unittype UNIT_TYPE_TAUREN                      = ConvertUnitType(20)


    constant unittype UNIT_TYPE_POISONED                    = ConvertUnitType(21)


    constant unittype UNIT_TYPE_POLYMORPHED                 = ConvertUnitType(22)


    constant unittype UNIT_TYPE_SLEEPING                    = ConvertUnitType(23)


    constant unittype UNIT_TYPE_RESISTANT                   = ConvertUnitType(24)


    constant unittype UNIT_TYPE_ETHEREAL                    = ConvertUnitType(25)


    constant unittype UNIT_TYPE_MAGIC_IMMUNE                = ConvertUnitType(26)





//===================================================


// Unit Type Constants for use with ChooseRandomItemEx()


//===================================================





    constant itemtype ITEM_TYPE_PERMANENT                   = ConvertItemType(0)


    constant itemtype ITEM_TYPE_CHARGED                     = ConvertItemType(1)


    constant itemtype ITEM_TYPE_POWERUP                     = ConvertItemType(2)


    constant itemtype ITEM_TYPE_ARTIFACT                    = ConvertItemType(3)


    constant itemtype ITEM_TYPE_PURCHASABLE                 = ConvertItemType(4)


    constant itemtype ITEM_TYPE_CAMPAIGN                    = ConvertItemType(5)


    constant itemtype ITEM_TYPE_MISCELLANEOUS               = ConvertItemType(6)


    constant itemtype ITEM_TYPE_UNKNOWN                     = ConvertItemType(7)


    constant itemtype ITEM_TYPE_ANY                         = ConvertItemType(8)





    // Deprecated, should use ITEM_TYPE_POWERUP


    constant itemtype ITEM_TYPE_TOME                        = ConvertItemType(2)





//===================================================


// Animatable Camera Fields


//===================================================





    constant camerafield CAMERA_FIELD_TARGET_DISTANCE       = ConvertCameraField(0)


    constant camerafield CAMERA_FIELD_FARZ                  = ConvertCameraField(1)


    constant camerafield CAMERA_FIELD_ANGLE_OF_ATTACK       = ConvertCameraField(2)


    constant camerafield CAMERA_FIELD_FIELD_OF_VIEW         = ConvertCameraField(3)


    constant camerafield CAMERA_FIELD_ROLL                  = ConvertCameraField(4)


    constant camerafield CAMERA_FIELD_ROTATION              = ConvertCameraField(5)


    constant camerafield CAMERA_FIELD_ZOFFSET               = ConvertCameraField(6)





    constant blendmode   BLEND_MODE_NONE                    = ConvertBlendMode(0)


    constant blendmode   BLEND_MODE_DONT_CARE               = ConvertBlendMode(0)


    constant blendmode   BLEND_MODE_KEYALPHA                = ConvertBlendMode(1)


    constant blendmode   BLEND_MODE_BLEND                   = ConvertBlendMode(2)


    constant blendmode   BLEND_MODE_ADDITIVE                = ConvertBlendMode(3)


    constant blendmode   BLEND_MODE_MODULATE                = ConvertBlendMode(4)


    constant blendmode   BLEND_MODE_MODULATE_2X             = ConvertBlendMode(5)


    


    constant raritycontrol  RARITY_FREQUENT                 = ConvertRarityControl(0)


    constant raritycontrol  RARITY_RARE                     = ConvertRarityControl(1)





    constant texmapflags    TEXMAP_FLAG_NONE                = ConvertTexMapFlags(0)


    constant texmapflags    TEXMAP_FLAG_WRAP_U              = ConvertTexMapFlags(1)


    constant texmapflags    TEXMAP_FLAG_WRAP_V              = ConvertTexMapFlags(2)


    constant texmapflags    TEXMAP_FLAG_WRAP_UV             = ConvertTexMapFlags(3)





    constant fogstate       FOG_OF_WAR_MASKED               = ConvertFogState(1)


    constant fogstate       FOG_OF_WAR_FOGGED               = ConvertFogState(2)


    constant fogstate       FOG_OF_WAR_VISIBLE              = ConvertFogState(4)





//===================================================


// Camera Margin constants for use with GetCameraMargin


//===================================================





    constant integer        CAMERA_MARGIN_LEFT              = 0


    constant integer        CAMERA_MARGIN_RIGHT             = 1


    constant integer        CAMERA_MARGIN_TOP               = 2


    constant integer        CAMERA_MARGIN_BOTTOM            = 3





//===================================================


// Effect API constants


//===================================================





    constant effecttype     EFFECT_TYPE_EFFECT              = ConvertEffectType(0)


    constant effecttype     EFFECT_TYPE_TARGET              = ConvertEffectType(1)


    constant effecttype     EFFECT_TYPE_CASTER              = ConvertEffectType(2)


    constant effecttype     EFFECT_TYPE_SPECIAL             = ConvertEffectType(3)


    constant effecttype     EFFECT_TYPE_AREA_EFFECT         = ConvertEffectType(4)


    constant effecttype     EFFECT_TYPE_MISSILE             = ConvertEffectType(5)


    constant effecttype     EFFECT_TYPE_LIGHTNING           = ConvertEffectType(6)





    constant soundtype      SOUND_TYPE_EFFECT               = ConvertSoundType(0)


    constant soundtype      SOUND_TYPE_EFFECT_LOOPED        = ConvertSoundType(1)





endglobals





//============================================================================


// MathAPI


native Deg2Rad  takes real degrees returns real


native Rad2Deg  takes real radians returns real





native Sin      takes real radians returns real


native Cos      takes real radians returns real


native Tan      takes real radians returns real





// Expect values between -1 and 1...returns 0 for invalid input


native Asin     takes real y returns real


native Acos     takes real x returns real





native Atan     takes real x returns real





// Returns 0 if x and y are both 0


native Atan2    takes real y, real x returns real





// Returns 0 if x <= 0


native SquareRoot takes real x returns real





// computes x to the y power


// y == 0.0             => 1


// x ==0.0 and y < 0    => 0


//


native Pow      takes real x, real power returns real





//============================================================================


// String Utility API


native I2R  takes integer i returns real


native R2I  takes real r returns integer


native I2S  takes integer i returns string


native R2S  takes real r returns string


native R2SW takes real r, integer width, integer precision returns string


native S2I  takes string s returns integer


native S2R  takes string s returns real


native GetHandleId takes handle h returns integer


native SubString takes string source, integer start, integer end returns string


native StringLength takes string s returns integer


native StringCase takes string source, boolean upper returns string


native StringHash takes string s returns integer





native GetLocalizedString takes string source returns string


native GetLocalizedHotkey takes string source returns integer





//============================================================================


// Map Setup API


//


//  These are native functions for describing the map configuration


//  these funcs should only be used in the "config" function of


//  a map script. The functions should also be called in this order


//  ( i.e. call SetPlayers before SetPlayerColor...


//





native SetMapName           takes string name returns nothing


native SetMapDescription    takes string description returns nothing





native SetTeams             takes integer teamcount returns nothing


native SetPlayers           takes integer playercount returns nothing





native DefineStartLocation      takes integer whichStartLoc, real x, real y returns nothing


native DefineStartLocationLoc   takes integer whichStartLoc, location whichLocation returns nothing


native SetStartLocPrioCount     takes integer whichStartLoc, integer prioSlotCount returns nothing


native SetStartLocPrio          takes integer whichStartLoc, integer prioSlotIndex, integer otherStartLocIndex, startlocprio priority returns nothing


native GetStartLocPrioSlot      takes integer whichStartLoc, integer prioSlotIndex returns integer


native GetStartLocPrio          takes integer whichStartLoc, integer prioSlotIndex returns startlocprio





native SetGameTypeSupported takes gametype whichGameType, boolean value returns nothing


native SetMapFlag           takes mapflag whichMapFlag, boolean value returns nothing


native SetGamePlacement     takes placement whichPlacementType returns nothing


native SetGameSpeed         takes gamespeed whichspeed returns nothing


native SetGameDifficulty    takes gamedifficulty whichdifficulty returns nothing


native SetResourceDensity   takes mapdensity whichdensity returns nothing


native SetCreatureDensity   takes mapdensity whichdensity returns nothing





native GetTeams             takes nothing returns integer


native GetPlayers           takes nothing returns integer





native IsGameTypeSupported  takes gametype whichGameType returns boolean


native GetGameTypeSelected  takes nothing returns gametype


native IsMapFlagSet         takes mapflag whichMapFlag returns boolean





constant native GetGamePlacement     takes nothing returns placement


constant native GetGameSpeed         takes nothing returns gamespeed


constant native GetGameDifficulty    takes nothing returns gamedifficulty


constant native GetResourceDensity   takes nothing returns mapdensity


constant native GetCreatureDensity   takes nothing returns mapdensity


constant native GetStartLocationX    takes integer whichStartLocation returns real


constant native GetStartLocationY    takes integer whichStartLocation returns real


constant native GetStartLocationLoc  takes integer whichStartLocation returns location








native SetPlayerTeam            takes player whichPlayer, integer whichTeam returns nothing


native SetPlayerStartLocation   takes player whichPlayer, integer startLocIndex returns nothing


// forces player to have the specified start loc and marks the start loc as occupied


// which removes it from consideration for subsequently placed players


// ( i.e. you can use this to put people in a fixed loc and then


//   use random placement for any unplaced players etc )


native ForcePlayerStartLocation takes player whichPlayer, integer startLocIndex returns nothing 


native SetPlayerColor           takes player whichPlayer, playercolor color returns nothing


native SetPlayerAlliance        takes player sourcePlayer, player otherPlayer, alliancetype whichAllianceSetting, boolean value returns nothing


native SetPlayerTaxRate         takes player sourcePlayer, player otherPlayer, playerstate whichResource, integer rate returns nothing


native SetPlayerRacePreference  takes player whichPlayer, racepreference whichRacePreference returns nothing


native SetPlayerRaceSelectable  takes player whichPlayer, boolean value returns nothing


native SetPlayerController      takes player whichPlayer, mapcontrol controlType returns nothing


native SetPlayerName            takes player whichPlayer, string name returns nothing





native SetPlayerOnScoreScreen   takes player whichPlayer, boolean flag returns nothing





native GetPlayerTeam            takes player whichPlayer returns integer


native GetPlayerStartLocation   takes player whichPlayer returns integer


native GetPlayerColor           takes player whichPlayer returns playercolor


native GetPlayerSelectable      takes player whichPlayer returns boolean


native GetPlayerController      takes player whichPlayer returns mapcontrol


native GetPlayerSlotState       takes player whichPlayer returns playerslotstate


native GetPlayerTaxRate         takes player sourcePlayer, player otherPlayer, playerstate whichResource returns integer


native IsPlayerRacePrefSet      takes player whichPlayer, racepreference pref returns boolean


native GetPlayerName            takes player whichPlayer returns string





//============================================================================


// Timer API


//


native CreateTimer          takes nothing returns timer


native DestroyTimer         takes timer whichTimer returns nothing


native TimerStart           takes timer whichTimer, real timeout, boolean periodic, code handlerFunc returns nothing


native TimerGetElapsed      takes timer whichTimer returns real


native TimerGetRemaining    takes timer whichTimer returns real


native TimerGetTimeout      takes timer whichTimer returns real


native PauseTimer           takes timer whichTimer returns nothing


native ResumeTimer          takes timer whichTimer returns nothing


native GetExpiredTimer      takes nothing returns timer





//============================================================================


// Group API


//


native CreateGroup                          takes nothing returns group


native DestroyGroup                         takes group whichGroup returns nothing


native GroupAddUnit                         takes group whichGroup, unit whichUnit returns nothing


native GroupRemoveUnit                      takes group whichGroup, unit whichUnit returns nothing


native GroupClear                           takes group whichGroup returns nothing


native GroupEnumUnitsOfType                 takes group whichGroup, string unitname, boolexpr filter returns nothing


native GroupEnumUnitsOfPlayer               takes group whichGroup, player whichPlayer, boolexpr filter returns nothing


native GroupEnumUnitsOfTypeCounted          takes group whichGroup, string unitname, boolexpr filter, integer countLimit returns nothing


native GroupEnumUnitsInRect                 takes group whichGroup, rect r, boolexpr filter returns nothing


native GroupEnumUnitsInRectCounted          takes group whichGroup, rect r, boolexpr filter, integer countLimit returns nothing


native GroupEnumUnitsInRange                takes group whichGroup, real x, real y, real radius, boolexpr filter returns nothing


native GroupEnumUnitsInRangeOfLoc           takes group whichGroup, location whichLocation, real radius, boolexpr filter returns nothing


native GroupEnumUnitsInRangeCounted         takes group whichGroup, real x, real y, real radius, boolexpr filter, integer countLimit returns nothing


native GroupEnumUnitsInRangeOfLocCounted    takes group whichGroup, location whichLocation, real radius, boolexpr filter, integer countLimit returns nothing


native GroupEnumUnitsSelected               takes group whichGroup, player whichPlayer, boolexpr filter returns nothing





native GroupImmediateOrder                  takes group whichGroup, string order returns boolean


native GroupImmediateOrderById              takes group whichGroup, integer order returns boolean


native GroupPointOrder                      takes group whichGroup, string order, real x, real y returns boolean


native GroupPointOrderLoc                   takes group whichGroup, string order, location whichLocation returns boolean


native GroupPointOrderById                  takes group whichGroup, integer order, real x, real y returns boolean


native GroupPointOrderByIdLoc               takes group whichGroup, integer order, location whichLocation returns boolean


native GroupTargetOrder                     takes group whichGroup, string order, widget targetWidget returns boolean


native GroupTargetOrderById                 takes group whichGroup, integer order, widget targetWidget returns boolean





// This will be difficult to support with potentially disjoint, cell-based regions


// as it would involve enumerating all the cells that are covered by a particularregion


// a better implementation would be a trigger that adds relevant units as they enter


// and removes them if they leave...


native ForGroup                 takes group whichGroup, code callback returns nothing


native FirstOfGroup             takes group whichGroup returns unit





//============================================================================


// Force API


//


native CreateForce              takes nothing returns force


native DestroyForce             takes force whichForce returns nothing


native ForceAddPlayer           takes force whichForce, player whichPlayer returns nothing


native ForceRemovePlayer        takes force whichForce, player whichPlayer returns nothing


native ForceClear               takes force whichForce returns nothing


native ForceEnumPlayers         takes force whichForce, boolexpr filter returns nothing


native ForceEnumPlayersCounted  takes force whichForce, boolexpr filter, integer countLimit returns nothing


native ForceEnumAllies          takes force whichForce, player whichPlayer, boolexpr filter returns nothing


native ForceEnumEnemies         takes force whichForce, player whichPlayer, boolexpr filter returns nothing


native ForForce                 takes force whichForce, code callback returns nothing





//============================================================================


// Region and Location API


//


native Rect                     takes real minx, real miny, real maxx, real maxy returns rect


native RectFromLoc              takes location min, location max returns rect


native RemoveRect               takes rect whichRect returns nothing


native SetRect                  takes rect whichRect, real minx, real miny, real maxx, real maxy returns nothing


native SetRectFromLoc           takes rect whichRect, location min, location max returns nothing


native MoveRectTo               takes rect whichRect, real newCenterX, real newCenterY returns nothing


native MoveRectToLoc            takes rect whichRect, location newCenterLoc returns nothing





native GetRectCenterX           takes rect whichRect returns real


native GetRectCenterY           takes rect whichRect returns real


native GetRectMinX              takes rect whichRect returns real


native GetRectMinY              takes rect whichRect returns real


native GetRectMaxX              takes rect whichRect returns real


native GetRectMaxY              takes rect whichRect returns real





native CreateRegion             takes nothing returns region


native RemoveRegion             takes region whichRegion returns nothing





native RegionAddRect            takes region whichRegion, rect r returns nothing


native RegionClearRect          takes region whichRegion, rect r returns nothing





native RegionAddCell           takes region whichRegion, real x, real y returns nothing


native RegionAddCellAtLoc      takes region whichRegion, location whichLocation returns nothing


native RegionClearCell         takes region whichRegion, real x, real y returns nothing


native RegionClearCellAtLoc    takes region whichRegion, location whichLocation returns nothing





native Location                 takes real x, real y returns location


native RemoveLocation           takes location whichLocation returns nothing


native MoveLocation             takes location whichLocation, real newX, real newY returns nothing


native GetLocationX             takes location whichLocation returns real


native GetLocationY             takes location whichLocation returns real





// This function is asynchronous. The values it returns are not guaranteed synchronous between each player.


//  If you attempt to use it in a synchronous manner, it may cause a desync.


native GetLocationZ             takes location whichLocation returns real





native IsUnitInRegion               takes region whichRegion, unit whichUnit returns boolean


native IsPointInRegion              takes region whichRegion, real x, real y returns boolean


native IsLocationInRegion           takes region whichRegion, location whichLocation returns boolean





// Returns full map bounds, including unplayable borders, in world coordinates


native GetWorldBounds           takes nothing returns rect





//============================================================================


// Native trigger interface


//


native CreateTrigger    takes nothing returns trigger


native DestroyTrigger   takes trigger whichTrigger returns nothing


native ResetTrigger     takes trigger whichTrigger returns nothing


native EnableTrigger    takes trigger whichTrigger returns nothing


native DisableTrigger   takes trigger whichTrigger returns nothing


native IsTriggerEnabled takes trigger whichTrigger returns boolean





native TriggerWaitOnSleeps   takes trigger whichTrigger, boolean flag returns nothing


native IsTriggerWaitOnSleeps takes trigger whichTrigger returns boolean





constant native GetFilterUnit       takes nothing returns unit


constant native GetEnumUnit         takes nothing returns unit





constant native GetFilterDestructable   takes nothing returns destructable


constant native GetEnumDestructable     takes nothing returns destructable





constant native GetFilterItem           takes nothing returns item


constant native GetEnumItem             takes nothing returns item





constant native GetFilterPlayer     takes nothing returns player


constant native GetEnumPlayer       takes nothing returns player





constant native GetTriggeringTrigger    takes nothing returns trigger


constant native GetTriggerEventId       takes nothing returns eventid


constant native GetTriggerEvalCount     takes trigger whichTrigger returns integer


constant native GetTriggerExecCount     takes trigger whichTrigger returns integer





native ExecuteFunc          takes string funcName returns nothing





//============================================================================


// Boolean Expr API ( for compositing trigger conditions and unit filter funcs...)


//============================================================================


native And              takes boolexpr operandA, boolexpr operandB returns boolexpr


native Or               takes boolexpr operandA, boolexpr operandB returns boolexpr


native Not              takes boolexpr operand returns boolexpr


native Condition        takes code func returns conditionfunc


native DestroyCondition takes conditionfunc c returns nothing


native Filter           takes code func returns filterfunc


native DestroyFilter    takes filterfunc f returns nothing


native DestroyBoolExpr  takes boolexpr e returns nothing





//============================================================================


// Trigger Game Event API


//============================================================================





native TriggerRegisterVariableEvent takes trigger whichTrigger, string varName, limitop opcode, real limitval returns event





    // EVENT_GAME_VARIABLE_LIMIT


    //constant native string GetTriggeringVariableName takes nothing returns string





// Creates it's own timer and triggers when it expires


native TriggerRegisterTimerEvent takes trigger whichTrigger, real timeout, boolean periodic returns event





// Triggers when the timer you tell it about expires


native TriggerRegisterTimerExpireEvent takes trigger whichTrigger, timer t returns event





native TriggerRegisterGameStateEvent takes trigger whichTrigger, gamestate whichState, limitop opcode, real limitval returns event





native TriggerRegisterDialogEvent       takes trigger whichTrigger, dialog whichDialog returns event


native TriggerRegisterDialogButtonEvent takes trigger whichTrigger, button whichButton returns event





//  EVENT_GAME_STATE_LIMIT


constant native GetEventGameState takes nothing returns gamestate





native TriggerRegisterGameEvent takes trigger whichTrigger, gameevent whichGameEvent returns event


  


// EVENT_GAME_VICTORY


constant native GetWinningPlayer takes nothing returns player








native TriggerRegisterEnterRegion takes trigger whichTrigger, region whichRegion, boolexpr filter returns event





// EVENT_GAME_ENTER_REGION


constant native GetTriggeringRegion takes nothing returns region


constant native GetEnteringUnit takes nothing returns unit





// EVENT_GAME_LEAVE_REGION





native TriggerRegisterLeaveRegion takes trigger whichTrigger, region whichRegion, boolexpr filter returns event


constant native GetLeavingUnit takes nothing returns unit





native TriggerRegisterTrackableHitEvent takes trigger whichTrigger, trackable t returns event


native TriggerRegisterTrackableTrackEvent takes trigger whichTrigger, trackable t returns event





// EVENT_GAME_TRACKABLE_HIT


// EVENT_GAME_TRACKABLE_TRACK


constant native GetTriggeringTrackable takes nothing returns trackable





// EVENT_DIALOG_BUTTON_CLICK


constant native GetClickedButton takes nothing returns button


constant native GetClickedDialog    takes nothing returns dialog





// EVENT_GAME_TOURNAMENT_FINISH_SOON


constant native GetTournamentFinishSoonTimeRemaining takes nothing returns real


constant native GetTournamentFinishNowRule takes nothing returns integer


constant native GetTournamentFinishNowPlayer takes nothing returns player


constant native GetTournamentScore takes player whichPlayer returns integer





// EVENT_GAME_SAVE


constant native GetSaveBasicFilename takes nothing returns string





//============================================================================


// Trigger Player Based Event API


//============================================================================





native TriggerRegisterPlayerEvent takes trigger whichTrigger, player  whichPlayer, playerevent whichPlayerEvent returns event





// EVENT_PLAYER_DEFEAT


// EVENT_PLAYER_VICTORY


constant native GetTriggerPlayer takes nothing returns player





native TriggerRegisterPlayerUnitEvent takes trigger whichTrigger, player whichPlayer, playerunitevent whichPlayerUnitEvent, boolexpr filter returns event





// EVENT_PLAYER_HERO_LEVEL


// EVENT_UNIT_HERO_LEVEL


constant native GetLevelingUnit takes nothing returns unit





// EVENT_PLAYER_HERO_SKILL


// EVENT_UNIT_HERO_SKILL


constant native GetLearningUnit      takes nothing returns unit


constant native GetLearnedSkill      takes nothing returns integer


constant native GetLearnedSkillLevel takes nothing returns integer





// EVENT_PLAYER_HERO_REVIVABLE


constant native GetRevivableUnit takes nothing returns unit





// EVENT_PLAYER_HERO_REVIVE_START


// EVENT_PLAYER_HERO_REVIVE_CANCEL


// EVENT_PLAYER_HERO_REVIVE_FINISH


// EVENT_UNIT_HERO_REVIVE_START


// EVENT_UNIT_HERO_REVIVE_CANCEL


// EVENT_UNIT_HERO_REVIVE_FINISH


constant native GetRevivingUnit takes nothing returns unit





// EVENT_PLAYER_UNIT_ATTACKED


constant native GetAttacker takes nothing returns unit





// EVENT_PLAYER_UNIT_RESCUED


constant native GetRescuer  takes nothing returns unit





// EVENT_PLAYER_UNIT_DEATH


constant native GetDyingUnit takes nothing returns unit


constant native GetKillingUnit takes nothing returns unit





// EVENT_PLAYER_UNIT_DECAY


constant native GetDecayingUnit takes nothing returns unit





// EVENT_PLAYER_UNIT_SELECTED


//constant native GetSelectedUnit takes nothing returns unit





// EVENT_PLAYER_UNIT_CONSTRUCT_START


constant native GetConstructingStructure takes nothing returns unit





// EVENT_PLAYER_UNIT_CONSTRUCT_FINISH


// EVENT_PLAYER_UNIT_CONSTRUCT_CANCEL


constant native GetCancelledStructure takes nothing returns unit


constant native GetConstructedStructure takes nothing returns unit





// EVENT_PLAYER_UNIT_RESEARCH_START


// EVENT_PLAYER_UNIT_RESEARCH_CANCEL


// EVENT_PLAYER_UNIT_RESEARCH_FINISH


constant native GetResearchingUnit takes nothing returns unit


constant native GetResearched takes nothing returns integer





// EVENT_PLAYER_UNIT_TRAIN_START


// EVENT_PLAYER_UNIT_TRAIN_CANCEL


constant native GetTrainedUnitType takes nothing returns integer





// EVENT_PLAYER_UNIT_TRAIN_FINISH


constant native GetTrainedUnit takes nothing returns unit





// EVENT_PLAYER_UNIT_DETECTED


constant native GetDetectedUnit takes nothing returns unit





// EVENT_PLAYER_UNIT_SUMMONED


constant native GetSummoningUnit    takes nothing returns unit


constant native GetSummonedUnit     takes nothing returns unit





// EVENT_PLAYER_UNIT_LOADED


constant native GetTransportUnit    takes nothing returns unit


constant native GetLoadedUnit       takes nothing returns unit





// EVENT_PLAYER_UNIT_SELL


constant native GetSellingUnit      takes nothing returns unit


constant native GetSoldUnit         takes nothing returns unit


constant native GetBuyingUnit       takes nothing returns unit





// EVENT_PLAYER_UNIT_SELL_ITEM


constant native GetSoldItem         takes nothing returns item





// EVENT_PLAYER_UNIT_CHANGE_OWNER


constant native GetChangingUnit             takes nothing returns unit


constant native GetChangingUnitPrevOwner    takes nothing returns player





// EVENT_PLAYER_UNIT_DROP_ITEM


// EVENT_PLAYER_UNIT_PICKUP_ITEM


// EVENT_PLAYER_UNIT_USE_ITEM


constant native GetManipulatingUnit takes nothing returns unit


constant native GetManipulatedItem  takes nothing returns item





// EVENT_PLAYER_UNIT_ISSUED_ORDER


constant native GetOrderedUnit takes nothing returns unit


constant native GetIssuedOrderId takes nothing returns integer





// EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER


constant native GetOrderPointX takes nothing returns real


constant native GetOrderPointY takes nothing returns real


constant native GetOrderPointLoc takes nothing returns location





// EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER


constant native GetOrderTarget              takes nothing returns widget


constant native GetOrderTargetDestructable  takes nothing returns destructable


constant native GetOrderTargetItem          takes nothing returns item


constant native GetOrderTargetUnit          takes nothing returns unit





// EVENT_UNIT_SPELL_CHANNEL


// EVENT_UNIT_SPELL_CAST


// EVENT_UNIT_SPELL_EFFECT


// EVENT_UNIT_SPELL_FINISH


// EVENT_UNIT_SPELL_ENDCAST


// EVENT_PLAYER_UNIT_SPELL_CHANNEL


// EVENT_PLAYER_UNIT_SPELL_CAST


// EVENT_PLAYER_UNIT_SPELL_EFFECT


// EVENT_PLAYER_UNIT_SPELL_FINISH


// EVENT_PLAYER_UNIT_SPELL_ENDCAST


constant native GetSpellAbilityUnit         takes nothing returns unit


constant native GetSpellAbilityId           takes nothing returns integer


constant native GetSpellAbility             takes nothing returns ability


constant native GetSpellTargetLoc           takes nothing returns location


constant native GetSpellTargetX				takes nothing returns real


constant native GetSpellTargetY				takes nothing returns real


constant native GetSpellTargetDestructable  takes nothing returns destructable


constant native GetSpellTargetItem          takes nothing returns item


constant native GetSpellTargetUnit          takes nothing returns unit





native TriggerRegisterPlayerAllianceChange takes trigger whichTrigger, player whichPlayer, alliancetype whichAlliance returns event


native TriggerRegisterPlayerStateEvent takes trigger whichTrigger, player whichPlayer, playerstate whichState, limitop opcode, real limitval returns event





// EVENT_PLAYER_STATE_LIMIT


constant native GetEventPlayerState takes nothing returns playerstate





native TriggerRegisterPlayerChatEvent takes trigger whichTrigger, player whichPlayer, string chatMessageToDetect, boolean exactMatchOnly returns event





// EVENT_PLAYER_CHAT





// returns the actual string they typed in ( same as what you registered for


// if you required exact match )


constant native GetEventPlayerChatString takes nothing returns string





// returns the string that you registered for


constant native GetEventPlayerChatStringMatched takes nothing returns string





native TriggerRegisterDeathEvent takes trigger whichTrigger, widget whichWidget returns event





//============================================================================


// Trigger Unit Based Event API


//============================================================================





// returns handle to unit which triggered the most recent event when called from


// within a trigger action function...returns null handle when used incorrectly





constant native GetTriggerUnit takes nothing returns unit





native TriggerRegisterUnitStateEvent takes trigger whichTrigger, unit whichUnit, unitstate whichState, limitop opcode, real limitval returns event





// EVENT_UNIT_STATE_LIMIT


constant native GetEventUnitState takes nothing returns unitstate





native TriggerRegisterUnitEvent takes trigger whichTrigger, unit whichUnit, unitevent whichEvent returns event





// EVENT_UNIT_DAMAGED


constant native GetEventDamage takes nothing returns real


constant native GetEventDamageSource takes nothing returns unit





// EVENT_UNIT_DEATH


// EVENT_UNIT_DECAY


// Use the GetDyingUnit and GetDecayingUnit funcs above





// EVENT_UNIT_DETECTED 


constant native GetEventDetectingPlayer takes nothing returns player





native TriggerRegisterFilterUnitEvent takes trigger whichTrigger, unit whichUnit, unitevent whichEvent, boolexpr filter returns event





// EVENT_UNIT_ACQUIRED_TARGET


// EVENT_UNIT_TARGET_IN_RANGE


constant native GetEventTargetUnit takes nothing returns unit





// EVENT_UNIT_ATTACKED


// Use GetAttacker from the Player Unit Event API Below...





// EVENT_UNIT_RESCUEDED


// Use GetRescuer from the Player Unit Event API Below...





// EVENT_UNIT_CONSTRUCT_CANCEL


// EVENT_UNIT_CONSTRUCT_FINISH





// See the Player Unit Construction Event API above for event info funcs





// EVENT_UNIT_TRAIN_START


// EVENT_UNIT_TRAIN_CANCELLED


// EVENT_UNIT_TRAIN_FINISH





// See the Player Unit Training Event API above for event info funcs





// EVENT_UNIT_SELL





// See the Player Unit Sell Event API above for event info funcs





// EVENT_UNIT_DROP_ITEM


// EVENT_UNIT_PICKUP_ITEM


// EVENT_UNIT_USE_ITEM


// See the Player Unit/Item manipulation Event API above for event info funcs





// EVENT_UNIT_ISSUED_ORDER


// EVENT_UNIT_ISSUED_POINT_ORDER


// EVENT_UNIT_ISSUED_TARGET_ORDER





// See the Player Unit Order Event API above for event info funcs





native TriggerRegisterUnitInRange takes trigger whichTrigger, unit whichUnit, real range, boolexpr filter returns event





native TriggerAddCondition    takes trigger whichTrigger, boolexpr condition returns triggercondition


native TriggerRemoveCondition takes trigger whichTrigger, triggercondition whichCondition returns nothing


native TriggerClearConditions takes trigger whichTrigger returns nothing





native TriggerAddAction     takes trigger whichTrigger, code actionFunc returns triggeraction


native TriggerRemoveAction  takes trigger whichTrigger, triggeraction whichAction returns nothing


native TriggerClearActions  takes trigger whichTrigger returns nothing


native TriggerSleepAction   takes real timeout returns nothing


native TriggerWaitForSound  takes sound s, real offset returns nothing


native TriggerEvaluate      takes trigger whichTrigger returns boolean


native TriggerExecute       takes trigger whichTrigger returns nothing


native TriggerExecuteWait   takes trigger whichTrigger returns nothing


native TriggerSyncStart     takes nothing returns nothing


native TriggerSyncReady     takes nothing returns nothing





//============================================================================


// Widget API


native  GetWidgetLife   takes widget whichWidget returns real


native  SetWidgetLife   takes widget whichWidget, real newLife returns nothing


native  GetWidgetX      takes widget whichWidget returns real


native  GetWidgetY      takes widget whichWidget returns real


constant native GetTriggerWidget takes nothing returns widget





//============================================================================


// Destructable Object API


// Facing arguments are specified in degrees


native          CreateDestructable          takes integer objectid, real x, real y, real face, real scale, integer variation returns destructable


native          CreateDestructableZ         takes integer objectid, real x, real y, real z, real face, real scale, integer variation returns destructable


native          CreateDeadDestructable      takes integer objectid, real x, real y, real face, real scale, integer variation returns destructable


native          CreateDeadDestructableZ     takes integer objectid, real x, real y, real z, real face, real scale, integer variation returns destructable


native          RemoveDestructable          takes destructable d returns nothing


native          KillDestructable            takes destructable d returns nothing


native          SetDestructableInvulnerable takes destructable d, boolean flag returns nothing


native          IsDestructableInvulnerable  takes destructable d returns boolean


native          EnumDestructablesInRect     takes rect r, boolexpr filter, code actionFunc returns nothing


native          GetDestructableTypeId       takes destructable d returns integer


native          GetDestructableX            takes destructable d returns real


native          GetDestructableY            takes destructable d returns real


native          SetDestructableLife         takes destructable d, real life returns nothing


native          GetDestructableLife         takes destructable d returns real


native          SetDestructableMaxLife      takes destructable d, real max returns nothing


native          GetDestructableMaxLife      takes destructable d returns real


native          DestructableRestoreLife     takes destructable d, real life, boolean birth returns nothing


native          QueueDestructableAnimation  takes destructable d, string whichAnimation returns nothing


native          SetDestructableAnimation    takes destructable d, string whichAnimation returns nothing


native          SetDestructableAnimationSpeed takes destructable d, real speedFactor returns nothing


native          ShowDestructable            takes destructable d, boolean flag returns nothing


native          GetDestructableOccluderHeight takes destructable d returns real


native          SetDestructableOccluderHeight takes destructable d, real height returns nothing


native          GetDestructableName         takes destructable d returns string


constant native GetTriggerDestructable takes nothing returns destructable





//============================================================================


// Item API


native          CreateItem      takes integer itemid, real x, real y returns item


native          RemoveItem      takes item whichItem returns nothing


native          GetItemPlayer   takes item whichItem returns player


native          GetItemTypeId   takes item i returns integer


native          GetItemX        takes item i returns real


native          GetItemY        takes item i returns real


native          SetItemPosition takes item i, real x, real y returns nothing


native          SetItemDropOnDeath  takes item whichItem, boolean flag returns nothing


native          SetItemDroppable takes item i, boolean flag returns nothing


native          SetItemPawnable takes item i, boolean flag returns nothing


native          SetItemPlayer    takes item whichItem, player whichPlayer, boolean changeColor returns nothing


native          SetItemInvulnerable takes item whichItem, boolean flag returns nothing


native          IsItemInvulnerable  takes item whichItem returns boolean


native          SetItemVisible  takes item whichItem, boolean show returns nothing


native          IsItemVisible   takes item whichItem returns boolean


native          IsItemOwned     takes item whichItem returns boolean


native          IsItemPowerup   takes item whichItem returns boolean


native          IsItemSellable  takes item whichItem returns boolean


native          IsItemPawnable  takes item whichItem returns boolean


native          IsItemIdPowerup takes integer itemId returns boolean


native          IsItemIdSellable takes integer itemId returns boolean


native          IsItemIdPawnable takes integer itemId returns boolean


native          EnumItemsInRect     takes rect r, boolexpr filter, code actionFunc returns nothing


native          GetItemLevel    takes item whichItem returns integer


native          GetItemType     takes item whichItem returns itemtype


native          SetItemDropID   takes item whichItem, integer unitId returns nothing


constant native GetItemName     takes item whichItem returns string


native          GetItemCharges  takes item whichItem returns integer


native          SetItemCharges  takes item whichItem, integer charges returns nothing


native          GetItemUserData takes item whichItem returns integer


native          SetItemUserData takes item whichItem, integer data returns nothing





//============================================================================


// Unit API


// Facing arguments are specified in degrees


native          CreateUnit              takes player id, integer unitid, real x, real y, real face returns unit


native          CreateUnitByName        takes player whichPlayer, string unitname, real x, real y, real face returns unit


native          CreateUnitAtLoc         takes player id, integer unitid, location whichLocation, real face returns unit


native          CreateUnitAtLocByName   takes player id, string unitname, location whichLocation, real face returns unit


native          CreateCorpse            takes player whichPlayer, integer unitid, real x, real y, real face returns unit





native          KillUnit            takes unit whichUnit returns nothing


native          RemoveUnit          takes unit whichUnit returns nothing


native          ShowUnit            takes unit whichUnit, boolean show returns nothing





native          SetUnitState        takes unit whichUnit, unitstate whichUnitState, real newVal returns nothing


native          SetUnitX            takes unit whichUnit, real newX returns nothing


native          SetUnitY            takes unit whichUnit, real newY returns nothing


native          SetUnitPosition     takes unit whichUnit, real newX, real newY returns nothing


native          SetUnitPositionLoc  takes unit whichUnit, location whichLocation returns nothing


native          SetUnitFacing       takes unit whichUnit, real facingAngle returns nothing


native          SetUnitFacingTimed  takes unit whichUnit, real facingAngle, real duration returns nothing


native          SetUnitMoveSpeed    takes unit whichUnit, real newSpeed returns nothing


native          SetUnitFlyHeight    takes unit whichUnit, real newHeight, real rate returns nothing


native          SetUnitTurnSpeed    takes unit whichUnit, real newTurnSpeed returns nothing


native          SetUnitPropWindow   takes unit whichUnit, real newPropWindowAngle returns nothing


native          SetUnitAcquireRange takes unit whichUnit, real newAcquireRange returns nothing


native          SetUnitCreepGuard   takes unit whichUnit, boolean creepGuard returns nothing





native          GetUnitAcquireRange     takes unit whichUnit returns real


native          GetUnitTurnSpeed        takes unit whichUnit returns real


native          GetUnitPropWindow       takes unit whichUnit returns real


native          GetUnitFlyHeight        takes unit whichUnit returns real





native          GetUnitDefaultAcquireRange      takes unit whichUnit returns real


native          GetUnitDefaultTurnSpeed         takes unit whichUnit returns real


native          GetUnitDefaultPropWindow        takes unit whichUnit returns real


native          GetUnitDefaultFlyHeight         takes unit whichUnit returns real





native          SetUnitOwner        takes unit whichUnit, player whichPlayer, boolean changeColor returns nothing


native          SetUnitColor        takes unit whichUnit, playercolor whichColor returns nothing





native          SetUnitScale        takes unit whichUnit, real scaleX, real scaleY, real scaleZ returns nothing


native          SetUnitTimeScale    takes unit whichUnit, real timeScale returns nothing


native          SetUnitBlendTime    takes unit whichUnit, real blendTime returns nothing


native          SetUnitVertexColor  takes unit whichUnit, integer red, integer green, integer blue, integer alpha returns nothing





native          QueueUnitAnimation          takes unit whichUnit, string whichAnimation returns nothing


native          SetUnitAnimation            takes unit whichUnit, string whichAnimation returns nothing


native          SetUnitAnimationByIndex     takes unit whichUnit, integer whichAnimation returns nothing


native          SetUnitAnimationWithRarity  takes unit whichUnit, string whichAnimation, raritycontrol rarity returns nothing


native          AddUnitAnimationProperties  takes unit whichUnit, string animProperties, boolean add returns nothing





native          SetUnitLookAt       takes unit whichUnit, string whichBone, unit lookAtTarget, real offsetX, real offsetY, real offsetZ returns nothing


native          ResetUnitLookAt     takes unit whichUnit returns nothing





native          SetUnitRescuable    takes unit whichUnit, player byWhichPlayer, boolean flag returns nothing


native          SetUnitRescueRange  takes unit whichUnit, real range returns nothing





native          SetHeroStr          takes unit whichHero, integer newStr, boolean permanent returns nothing


native          SetHeroAgi          takes unit whichHero, integer newAgi, boolean permanent returns nothing


native          SetHeroInt          takes unit whichHero, integer newInt, boolean permanent returns nothing





native          GetHeroStr          takes unit whichHero, boolean includeBonuses returns integer


native          GetHeroAgi          takes unit whichHero, boolean includeBonuses returns integer


native          GetHeroInt          takes unit whichHero, boolean includeBonuses returns integer





native          UnitStripHeroLevel  takes unit whichHero, integer howManyLevels returns boolean





native          GetHeroXP           takes unit whichHero returns integer


native          SetHeroXP           takes unit whichHero, integer newXpVal,  boolean showEyeCandy returns nothing





native          GetHeroSkillPoints      takes unit whichHero returns integer


native          UnitModifySkillPoints   takes unit whichHero, integer skillPointDelta returns boolean





native          AddHeroXP           takes unit whichHero, integer xpToAdd,   boolean showEyeCandy returns nothing


native          SetHeroLevel        takes unit whichHero, integer level,  boolean showEyeCandy returns nothing


constant native GetHeroLevel        takes unit whichHero returns integer


constant native GetUnitLevel        takes unit whichUnit returns integer


native          GetHeroProperName   takes unit whichHero returns string


native          SuspendHeroXP       takes unit whichHero, boolean flag returns nothing


native          IsSuspendedXP       takes unit whichHero returns boolean


native          SelectHeroSkill     takes unit whichHero, integer abilcode returns nothing


native          GetUnitAbilityLevel takes unit whichUnit, integer abilcode returns integer


native          DecUnitAbilityLevel takes unit whichUnit, integer abilcode returns integer


native          IncUnitAbilityLevel takes unit whichUnit, integer abilcode returns integer


native          SetUnitAbilityLevel takes unit whichUnit, integer abilcode, integer level returns integer


native          ReviveHero          takes unit whichHero, real x, real y, boolean doEyecandy returns boolean


native          ReviveHeroLoc       takes unit whichHero, location loc, boolean doEyecandy returns boolean


native          SetUnitExploded     takes unit whichUnit, boolean exploded returns nothing


native          SetUnitInvulnerable takes unit whichUnit, boolean flag returns nothing


native          PauseUnit           takes unit whichUnit, boolean flag returns nothing


native          IsUnitPaused        takes unit whichHero returns boolean


native          SetUnitPathing      takes unit whichUnit, boolean flag returns nothing





native          ClearSelection      takes nothing returns nothing


native          SelectUnit          takes unit whichUnit, boolean flag returns nothing





native          GetUnitPointValue       takes unit whichUnit returns integer


native          GetUnitPointValueByType takes integer unitType returns integer


//native        SetUnitPointValueByType takes integer unitType, integer newPointValue returns nothing





native          UnitAddItem             takes unit whichUnit, item whichItem returns boolean


native          UnitAddItemById         takes unit whichUnit, integer itemId returns item


native          UnitAddItemToSlotById   takes unit whichUnit, integer itemId, integer itemSlot returns boolean


native          UnitRemoveItem          takes unit whichUnit, item whichItem returns nothing


native          UnitRemoveItemFromSlot  takes unit whichUnit, integer itemSlot returns item


native          UnitHasItem             takes unit whichUnit, item whichItem returns boolean


native          UnitItemInSlot          takes unit whichUnit, integer itemSlot returns item


native          UnitInventorySize       takes unit whichUnit returns integer





native          UnitDropItemPoint       takes unit whichUnit, item whichItem, real x, real y returns boolean


native          UnitDropItemSlot        takes unit whichUnit, item whichItem, integer slot returns boolean


native          UnitDropItemTarget      takes unit whichUnit, item whichItem, widget target returns boolean





native          UnitUseItem             takes unit whichUnit, item whichItem returns boolean


native          UnitUseItemPoint        takes unit whichUnit, item whichItem, real x, real y returns boolean


native          UnitUseItemTarget       takes unit whichUnit, item whichItem, widget target returns boolean





constant native GetUnitX            takes unit whichUnit returns real


constant native GetUnitY            takes unit whichUnit returns real


constant native GetUnitLoc          takes unit whichUnit returns location


constant native GetUnitFacing       takes unit whichUnit returns real


constant native GetUnitMoveSpeed    takes unit whichUnit returns real


constant native GetUnitDefaultMoveSpeed takes unit whichUnit returns real


constant native GetUnitState        takes unit whichUnit, unitstate whichUnitState returns real


constant native GetOwningPlayer     takes unit whichUnit returns player


constant native GetUnitTypeId       takes unit whichUnit returns integer


constant native GetUnitRace         takes unit whichUnit returns race


constant native GetUnitName         takes unit whichUnit returns string


constant native GetUnitFoodUsed     takes unit whichUnit returns integer


constant native GetUnitFoodMade     takes unit whichUnit returns integer


constant native GetFoodMade         takes integer unitId returns integer


constant native GetFoodUsed         takes integer unitId returns integer


native          SetUnitUseFood      takes unit whichUnit, boolean useFood returns nothing





constant native GetUnitRallyPoint           takes unit whichUnit returns location


constant native GetUnitRallyUnit            takes unit whichUnit returns unit


constant native GetUnitRallyDestructable    takes unit whichUnit returns destructable





constant native IsUnitInGroup       takes unit whichUnit, group whichGroup returns boolean


constant native IsUnitInForce       takes unit whichUnit, force whichForce returns boolean


constant native IsUnitOwnedByPlayer takes unit whichUnit, player whichPlayer returns boolean


constant native IsUnitAlly          takes unit whichUnit, player whichPlayer returns boolean


constant native IsUnitEnemy         takes unit whichUnit, player whichPlayer returns boolean


constant native IsUnitVisible       takes unit whichUnit, player whichPlayer returns boolean


constant native IsUnitDetected      takes unit whichUnit, player whichPlayer returns boolean


constant native IsUnitInvisible     takes unit whichUnit, player whichPlayer returns boolean


constant native IsUnitFogged        takes unit whichUnit, player whichPlayer returns boolean


constant native IsUnitMasked        takes unit whichUnit, player whichPlayer returns boolean


constant native IsUnitSelected      takes unit whichUnit, player whichPlayer returns boolean


constant native IsUnitRace          takes unit whichUnit, race whichRace returns boolean


constant native IsUnitType          takes unit whichUnit, unittype whichUnitType returns boolean


constant native IsUnit              takes unit whichUnit, unit whichSpecifiedUnit returns boolean


constant native IsUnitInRange       takes unit whichUnit, unit otherUnit, real distance returns boolean


constant native IsUnitInRangeXY     takes unit whichUnit, real x, real y, real distance returns boolean


constant native IsUnitInRangeLoc    takes unit whichUnit, location whichLocation, real distance returns boolean


constant native IsUnitHidden        takes unit whichUnit returns boolean


constant native IsUnitIllusion      takes unit whichUnit returns boolean





constant native IsUnitInTransport   takes unit whichUnit, unit whichTransport returns boolean


constant native IsUnitLoaded        takes unit whichUnit returns boolean





constant native IsHeroUnitId        takes integer unitId returns boolean


constant native IsUnitIdType        takes integer unitId, unittype whichUnitType returns boolean





native UnitShareVision              takes unit whichUnit, player whichPlayer, boolean share returns nothing


native UnitSuspendDecay             takes unit whichUnit, boolean suspend returns nothing


native UnitAddType                  takes unit whichUnit, unittype whichUnitType returns boolean


native UnitRemoveType               takes unit whichUnit, unittype whichUnitType returns boolean





native UnitAddAbility               takes unit whichUnit, integer abilityId returns boolean


native UnitRemoveAbility            takes unit whichUnit, integer abilityId returns boolean


native UnitMakeAbilityPermanent     takes unit whichUnit, boolean permanent, integer abilityId returns boolean


native UnitRemoveBuffs              takes unit whichUnit, boolean removePositive, boolean removeNegative returns nothing


native UnitRemoveBuffsEx            takes unit whichUnit, boolean removePositive, boolean removeNegative, boolean magic, boolean physical, boolean timedLife, boolean aura, boolean autoDispel returns nothing


native UnitHasBuffsEx               takes unit whichUnit, boolean removePositive, boolean removeNegative, boolean magic, boolean physical, boolean timedLife, boolean aura, boolean autoDispel returns boolean


native UnitCountBuffsEx             takes unit whichUnit, boolean removePositive, boolean removeNegative, boolean magic, boolean physical, boolean timedLife, boolean aura, boolean autoDispel returns integer


native UnitAddSleep                 takes unit whichUnit, boolean add returns nothing


native UnitCanSleep                 takes unit whichUnit returns boolean


native UnitAddSleepPerm             takes unit whichUnit, boolean add returns nothing


native UnitCanSleepPerm             takes unit whichUnit returns boolean


native UnitIsSleeping               takes unit whichUnit returns boolean


native UnitWakeUp                   takes unit whichUnit returns nothing


native UnitApplyTimedLife           takes unit whichUnit, integer buffId, real duration returns nothing


native UnitIgnoreAlarm              takes unit whichUnit, boolean flag returns boolean


native UnitIgnoreAlarmToggled       takes unit whichUnit returns boolean


native UnitResetCooldown            takes unit whichUnit returns nothing


native UnitSetConstructionProgress  takes unit whichUnit, integer constructionPercentage returns nothing


native UnitSetUpgradeProgress       takes unit whichUnit, integer upgradePercentage returns nothing


native UnitPauseTimedLife           takes unit whichUnit, boolean flag returns nothing


native UnitSetUsesAltIcon           takes unit whichUnit, boolean flag returns nothing





native UnitDamagePoint              takes unit whichUnit, real delay, real radius, real x, real y, real amount, boolean attack, boolean ranged, attacktype attackType, damagetype damageType, weapontype weaponType returns boolean


native UnitDamageTarget             takes unit whichUnit, widget target, real amount, boolean attack, boolean ranged, attacktype attackType, damagetype damageType, weapontype weaponType returns boolean





native IssueImmediateOrder          takes unit whichUnit, string order returns boolean


native IssueImmediateOrderById      takes unit whichUnit, integer order returns boolean


native IssuePointOrder              takes unit whichUnit, string order, real x, real y returns boolean


native IssuePointOrderLoc           takes unit whichUnit, string order, location whichLocation returns boolean


native IssuePointOrderById          takes unit whichUnit, integer order, real x, real y returns boolean


native IssuePointOrderByIdLoc       takes unit whichUnit, integer order, location whichLocation returns boolean


native IssueTargetOrder             takes unit whichUnit, string order, widget targetWidget returns boolean


native IssueTargetOrderById         takes unit whichUnit, integer order, widget targetWidget returns boolean


native IssueInstantPointOrder       takes unit whichUnit, string order, real x, real y, widget instantTargetWidget returns boolean


native IssueInstantPointOrderById   takes unit whichUnit, integer order, real x, real y, widget instantTargetWidget returns boolean


native IssueInstantTargetOrder      takes unit whichUnit, string order, widget targetWidget, widget instantTargetWidget returns boolean


native IssueInstantTargetOrderById  takes unit whichUnit, integer order, widget targetWidget, widget instantTargetWidget returns boolean


native IssueBuildOrder              takes unit whichPeon, string unitToBuild, real x, real y returns boolean


native IssueBuildOrderById          takes unit whichPeon, integer unitId, real x, real y returns boolean





native IssueNeutralImmediateOrder       takes player forWhichPlayer, unit neutralStructure, string unitToBuild returns boolean


native IssueNeutralImmediateOrderById   takes player forWhichPlayer,unit neutralStructure, integer unitId returns boolean


native IssueNeutralPointOrder           takes player forWhichPlayer,unit neutralStructure, string unitToBuild, real x, real y returns boolean


native IssueNeutralPointOrderById       takes player forWhichPlayer,unit neutralStructure, integer unitId, real x, real y returns boolean


native IssueNeutralTargetOrder          takes player forWhichPlayer,unit neutralStructure, string unitToBuild, widget target returns boolean


native IssueNeutralTargetOrderById      takes player forWhichPlayer,unit neutralStructure, integer unitId, widget target returns boolean





native GetUnitCurrentOrder          takes unit whichUnit returns integer





native SetResourceAmount            takes unit whichUnit, integer amount returns nothing


native AddResourceAmount            takes unit whichUnit, integer amount returns nothing


native GetResourceAmount            takes unit whichUnit returns integer





native WaygateGetDestinationX       takes unit waygate returns real


native WaygateGetDestinationY       takes unit waygate returns real


native WaygateSetDestination        takes unit waygate, real x, real y returns nothing


native WaygateActivate              takes unit waygate, boolean activate returns nothing


native WaygateIsActive              takes unit waygate returns boolean





native AddItemToAllStock            takes integer itemId, integer currentStock, integer stockMax returns nothing


native AddItemToStock               takes unit whichUnit, integer itemId, integer currentStock, integer stockMax returns nothing


native AddUnitToAllStock            takes integer unitId, integer currentStock, integer stockMax returns nothing


native AddUnitToStock               takes unit whichUnit, integer unitId, integer currentStock, integer stockMax returns nothing





native RemoveItemFromAllStock       takes integer itemId returns nothing


native RemoveItemFromStock          takes unit whichUnit, integer itemId returns nothing


native RemoveUnitFromAllStock       takes integer unitId returns nothing


native RemoveUnitFromStock          takes unit whichUnit, integer unitId returns nothing





native SetAllItemTypeSlots          takes integer slots returns nothing


native SetAllUnitTypeSlots          takes integer slots returns nothing


native SetItemTypeSlots             takes unit whichUnit, integer slots returns nothing


native SetUnitTypeSlots             takes unit whichUnit, integer slots returns nothing





native GetUnitUserData              takes unit whichUnit returns integer


native SetUnitUserData              takes unit whichUnit, integer data returns nothing





//============================================================================


// Player API


constant native Player              takes integer number returns player


constant native GetLocalPlayer      takes nothing returns player


constant native IsPlayerAlly        takes player whichPlayer, player otherPlayer returns boolean


constant native IsPlayerEnemy       takes player whichPlayer, player otherPlayer returns boolean


constant native IsPlayerInForce     takes player whichPlayer, force whichForce returns boolean


constant native IsPlayerObserver    takes player whichPlayer returns boolean


constant native IsVisibleToPlayer           takes real x, real y, player whichPlayer returns boolean


constant native IsLocationVisibleToPlayer   takes location whichLocation, player whichPlayer returns boolean


constant native IsFoggedToPlayer            takes real x, real y, player whichPlayer returns boolean


constant native IsLocationFoggedToPlayer    takes location whichLocation, player whichPlayer returns boolean


constant native IsMaskedToPlayer            takes real x, real y, player whichPlayer returns boolean


constant native IsLocationMaskedToPlayer    takes location whichLocation, player whichPlayer returns boolean





constant native GetPlayerRace           takes player whichPlayer returns race


constant native GetPlayerId             takes player whichPlayer returns integer


constant native GetPlayerUnitCount      takes player whichPlayer, boolean includeIncomplete returns integer


constant native GetPlayerTypedUnitCount takes player whichPlayer, string unitName, boolean includeIncomplete, boolean includeUpgrades returns integer


constant native GetPlayerStructureCount takes player whichPlayer, boolean includeIncomplete returns integer


constant native GetPlayerState          takes player whichPlayer, playerstate whichPlayerState returns integer


constant native GetPlayerScore          takes player whichPlayer, playerscore whichPlayerScore returns integer


constant native GetPlayerAlliance       takes player sourcePlayer, player otherPlayer, alliancetype whichAllianceSetting returns boolean





constant native GetPlayerHandicap       takes player whichPlayer returns real


constant native GetPlayerHandicapXP     takes player whichPlayer returns real


constant native SetPlayerHandicap       takes player whichPlayer, real handicap returns nothing


constant native SetPlayerHandicapXP     takes player whichPlayer, real handicap returns nothing





constant native SetPlayerTechMaxAllowed takes player whichPlayer, integer techid, integer maximum returns nothing


constant native GetPlayerTechMaxAllowed takes player whichPlayer, integer techid returns integer


constant native AddPlayerTechResearched takes player whichPlayer, integer techid, integer levels returns nothing


constant native SetPlayerTechResearched takes player whichPlayer, integer techid, integer setToLevel returns nothing


constant native GetPlayerTechResearched takes player whichPlayer, integer techid, boolean specificonly returns boolean


constant native GetPlayerTechCount      takes player whichPlayer, integer techid, boolean specificonly returns integer





native SetPlayerUnitsOwner takes player whichPlayer, integer newOwner returns nothing


native CripplePlayer takes player whichPlayer, force toWhichPlayers, boolean flag returns nothing





native SetPlayerAbilityAvailable        takes player whichPlayer, integer abilid, boolean avail returns nothing





native SetPlayerState   takes player whichPlayer, playerstate whichPlayerState, integer value returns nothing


native RemovePlayer     takes player whichPlayer, playergameresult gameResult returns nothing





// Used to store hero level data for the scorescreen


// before units are moved to neutral passive in melee games


//


native CachePlayerHeroData takes player whichPlayer returns nothing





//============================================================================


// Fog of War API


native  SetFogStateRect      takes player forWhichPlayer, fogstate whichState, rect where, boolean useSharedVision returns nothing


native  SetFogStateRadius    takes player forWhichPlayer, fogstate whichState, real centerx, real centerY, real radius, boolean useSharedVision returns nothing


native  SetFogStateRadiusLoc takes player forWhichPlayer, fogstate whichState, location center, real radius, boolean useSharedVision returns nothing


native  FogMaskEnable        takes boolean enable returns nothing


native  IsFogMaskEnabled     takes nothing returns boolean


native  FogEnable            takes boolean enable returns nothing


native  IsFogEnabled         takes nothing returns boolean





native CreateFogModifierRect        takes player forWhichPlayer, fogstate whichState, rect where, boolean useSharedVision, boolean afterUnits returns fogmodifier


native CreateFogModifierRadius      takes player forWhichPlayer, fogstate whichState, real centerx, real centerY, real radius, boolean useSharedVision, boolean afterUnits returns fogmodifier


native CreateFogModifierRadiusLoc   takes player forWhichPlayer, fogstate whichState, location center, real radius, boolean useSharedVision, boolean afterUnits returns fogmodifier


native DestroyFogModifier           takes fogmodifier whichFogModifier returns nothing


native FogModifierStart             takes fogmodifier whichFogModifier returns nothing


native FogModifierStop              takes fogmodifier whichFogModifier returns nothing





//============================================================================


// Game API


native VersionGet takes nothing returns version


native VersionCompatible takes version whichVersion returns boolean


native VersionSupported takes version whichVersion returns boolean





native EndGame takes boolean doScoreScreen returns nothing





// Async only!


native          ChangeLevel         takes string newLevel, boolean doScoreScreen returns nothing


native          RestartGame         takes boolean doScoreScreen returns nothing


native          ReloadGame          takes nothing returns nothing


// %%% SetCampaignMenuRace is deprecated.  It must remain to support


// old maps which use it, but all new maps should use SetCampaignMenuRaceEx


native          SetCampaignMenuRace takes race r returns nothing


native          SetCampaignMenuRaceEx takes integer campaignIndex returns nothing


native          ForceCampaignSelectScreen takes nothing returns nothing





native          LoadGame            takes string saveFileName, boolean doScoreScreen returns nothing


native          SaveGame            takes string saveFileName returns nothing


native          RenameSaveDirectory takes string sourceDirName, string destDirName returns boolean


native          RemoveSaveDirectory takes string sourceDirName returns boolean


native          CopySaveGame        takes string sourceSaveName, string destSaveName returns boolean


native          SaveGameExists      takes string saveName returns boolean


native          SyncSelections      takes nothing returns nothing


native          SetFloatGameState   takes fgamestate whichFloatGameState, real value returns nothing


constant native GetFloatGameState   takes fgamestate whichFloatGameState returns real


native          SetIntegerGameState takes igamestate whichIntegerGameState, integer value returns nothing


constant native GetIntegerGameState takes igamestate whichIntegerGameState returns integer








//============================================================================


// Campaign API


native  SetTutorialCleared      takes boolean cleared returns nothing


native  SetMissionAvailable     takes integer campaignNumber, integer missionNumber, boolean available returns nothing


native  SetCampaignAvailable    takes integer campaignNumber, boolean available  returns nothing


native  SetOpCinematicAvailable takes integer campaignNumber, boolean available  returns nothing


native  SetEdCinematicAvailable takes integer campaignNumber, boolean available  returns nothing


native  GetDefaultDifficulty    takes nothing returns gamedifficulty


native  SetDefaultDifficulty    takes gamedifficulty g returns nothing


native  SetCustomCampaignButtonVisible  takes integer whichButton, boolean visible returns nothing


native  GetCustomCampaignButtonVisible  takes integer whichButton returns boolean


native  DoNotSaveReplay         takes nothing returns nothing





//============================================================================


// Dialog API


native DialogCreate                 takes nothing returns dialog


native DialogDestroy                takes dialog whichDialog returns nothing


native DialogClear                  takes dialog whichDialog returns nothing


native DialogSetMessage             takes dialog whichDialog, string messageText returns nothing


native DialogAddButton              takes dialog whichDialog, string buttonText, integer hotkey returns button


native DialogAddQuitButton          takes dialog whichDialog, boolean doScoreScreen, string buttonText, integer hotkey returns button


native DialogDisplay                takes player whichPlayer, dialog whichDialog, boolean flag returns nothing





// Creates a new or reads in an existing game cache file stored


// in the current campaign profile dir


//


native  ReloadGameCachesFromDisk takes nothing returns boolean





native  InitGameCache    takes string campaignFile returns gamecache


native  SaveGameCache    takes gamecache whichCache returns boolean





native  StoreInteger					takes gamecache cache, string missionKey, string key, integer value returns nothing


native  StoreReal						takes gamecache cache, string missionKey, string key, real value returns nothing


native  StoreBoolean					takes gamecache cache, string missionKey, string key, boolean value returns nothing


native  StoreUnit						takes gamecache cache, string missionKey, string key, unit whichUnit returns boolean


native  StoreString						takes gamecache cache, string missionKey, string key, string value returns boolean





native SyncStoredInteger        takes gamecache cache, string missionKey, string key returns nothing


native SyncStoredReal           takes gamecache cache, string missionKey, string key returns nothing


native SyncStoredBoolean        takes gamecache cache, string missionKey, string key returns nothing


native SyncStoredUnit           takes gamecache cache, string missionKey, string key returns nothing


native SyncStoredString         takes gamecache cache, string missionKey, string key returns nothing





native  HaveStoredInteger					takes gamecache cache, string missionKey, string key returns boolean


native  HaveStoredReal						takes gamecache cache, string missionKey, string key returns boolean


native  HaveStoredBoolean					takes gamecache cache, string missionKey, string key returns boolean


native  HaveStoredUnit						takes gamecache cache, string missionKey, string key returns boolean


native  HaveStoredString					takes gamecache cache, string missionKey, string key returns boolean





native  FlushGameCache						takes gamecache cache returns nothing


native  FlushStoredMission					takes gamecache cache, string missionKey returns nothing


native  FlushStoredInteger					takes gamecache cache, string missionKey, string key returns nothing


native  FlushStoredReal						takes gamecache cache, string missionKey, string key returns nothing


native  FlushStoredBoolean					takes gamecache cache, string missionKey, string key returns nothing


native  FlushStoredUnit						takes gamecache cache, string missionKey, string key returns nothing


native  FlushStoredString					takes gamecache cache, string missionKey, string key returns nothing





// Will return 0 if the specified value's data is not found in the cache


native  GetStoredInteger				takes gamecache cache, string missionKey, string key returns integer


native  GetStoredReal					takes gamecache cache, string missionKey, string key returns real


native  GetStoredBoolean				takes gamecache cache, string missionKey, string key returns boolean


native  GetStoredString					takes gamecache cache, string missionKey, string key returns string


native  RestoreUnit						takes gamecache cache, string missionKey, string key, player forWhichPlayer, real x, real y, real facing returns unit








native  InitHashtable    takes nothing returns hashtable





native  SaveInteger						takes hashtable table, integer parentKey, integer childKey, integer value returns nothing


native  SaveReal						takes hashtable table, integer parentKey, integer childKey, real value returns nothing


native  SaveBoolean						takes hashtable table, integer parentKey, integer childKey, boolean value returns nothing


native  SaveStr							takes hashtable table, integer parentKey, integer childKey, string value returns boolean


native  SavePlayerHandle				takes hashtable table, integer parentKey, integer childKey, player whichPlayer returns boolean


native  SaveWidgetHandle				takes hashtable table, integer parentKey, integer childKey, widget whichWidget returns boolean


native  SaveDestructableHandle			takes hashtable table, integer parentKey, integer childKey, destructable whichDestructable returns boolean


native  SaveItemHandle					takes hashtable table, integer parentKey, integer childKey, item whichItem returns boolean


native  SaveUnitHandle					takes hashtable table, integer parentKey, integer childKey, unit whichUnit returns boolean


native  SaveAbilityHandle				takes hashtable table, integer parentKey, integer childKey, ability whichAbility returns boolean


native  SaveTimerHandle					takes hashtable table, integer parentKey, integer childKey, timer whichTimer returns boolean


native  SaveTriggerHandle				takes hashtable table, integer parentKey, integer childKey, trigger whichTrigger returns boolean


native  SaveTriggerConditionHandle		takes hashtable table, integer parentKey, integer childKey, triggercondition whichTriggercondition returns boolean


native  SaveTriggerActionHandle			takes hashtable table, integer parentKey, integer childKey, triggeraction whichTriggeraction returns boolean


native  SaveTriggerEventHandle			takes hashtable table, integer parentKey, integer childKey, event whichEvent returns boolean


native  SaveForceHandle					takes hashtable table, integer parentKey, integer childKey, force whichForce returns boolean


native  SaveGroupHandle					takes hashtable table, integer parentKey, integer childKey, group whichGroup returns boolean


native  SaveLocationHandle				takes hashtable table, integer parentKey, integer childKey, location whichLocation returns boolean


native  SaveRectHandle					takes hashtable table, integer parentKey, integer childKey, rect whichRect returns boolean


native  SaveBooleanExprHandle			takes hashtable table, integer parentKey, integer childKey, boolexpr whichBoolexpr returns boolean


native  SaveSoundHandle					takes hashtable table, integer parentKey, integer childKey, sound whichSound returns boolean


native  SaveEffectHandle				takes hashtable table, integer parentKey, integer childKey, effect whichEffect returns boolean


native  SaveUnitPoolHandle				takes hashtable table, integer parentKey, integer childKey, unitpool whichUnitpool returns boolean


native  SaveItemPoolHandle				takes hashtable table, integer parentKey, integer childKey, itempool whichItempool returns boolean


native  SaveQuestHandle					takes hashtable table, integer parentKey, integer childKey, quest whichQuest returns boolean


native  SaveQuestItemHandle				takes hashtable table, integer parentKey, integer childKey, questitem whichQuestitem returns boolean


native  SaveDefeatConditionHandle		takes hashtable table, integer parentKey, integer childKey, defeatcondition whichDefeatcondition returns boolean


native  SaveTimerDialogHandle			takes hashtable table, integer parentKey, integer childKey, timerdialog whichTimerdialog returns boolean


native  SaveLeaderboardHandle			takes hashtable table, integer parentKey, integer childKey, leaderboard whichLeaderboard returns boolean


native  SaveMultiboardHandle			takes hashtable table, integer parentKey, integer childKey, multiboard whichMultiboard returns boolean


native  SaveMultiboardItemHandle		takes hashtable table, integer parentKey, integer childKey, multiboarditem whichMultiboarditem returns boolean


native  SaveTrackableHandle				takes hashtable table, integer parentKey, integer childKey, trackable whichTrackable returns boolean


native  SaveDialogHandle				takes hashtable table, integer parentKey, integer childKey, dialog whichDialog returns boolean


native  SaveButtonHandle				takes hashtable table, integer parentKey, integer childKey, button whichButton returns boolean


native  SaveTextTagHandle				takes hashtable table, integer parentKey, integer childKey, texttag whichTexttag returns boolean


native  SaveLightningHandle				takes hashtable table, integer parentKey, integer childKey, lightning whichLightning returns boolean


native  SaveImageHandle					takes hashtable table, integer parentKey, integer childKey, image whichImage returns boolean


native  SaveUbersplatHandle				takes hashtable table, integer parentKey, integer childKey, ubersplat whichUbersplat returns boolean


native  SaveRegionHandle				takes hashtable table, integer parentKey, integer childKey, region whichRegion returns boolean


native  SaveFogStateHandle				takes hashtable table, integer parentKey, integer childKey, fogstate whichFogState returns boolean


native  SaveFogModifierHandle			takes hashtable table, integer parentKey, integer childKey, fogmodifier whichFogModifier returns boolean


native  SaveAgentHandle					takes hashtable table, integer parentKey, integer childKey, agent whichAgent returns boolean


native  SaveHashtableHandle				takes hashtable table, integer parentKey, integer childKey, hashtable whichHashtable returns boolean








native  LoadInteger					takes hashtable table, integer parentKey, integer childKey returns integer


native  LoadReal					takes hashtable table, integer parentKey, integer childKey returns real


native  LoadBoolean				    takes hashtable table, integer parentKey, integer childKey returns boolean


native  LoadStr 					takes hashtable table, integer parentKey, integer childKey returns string


native  LoadPlayerHandle			takes hashtable table, integer parentKey, integer childKey returns player


native  LoadWidgetHandle			takes hashtable table, integer parentKey, integer childKey returns widget


native  LoadDestructableHandle		takes hashtable table, integer parentKey, integer childKey returns destructable


native  LoadItemHandle				takes hashtable table, integer parentKey, integer childKey returns item


native  LoadUnitHandle				takes hashtable table, integer parentKey, integer childKey returns unit


native  LoadAbilityHandle			takes hashtable table, integer parentKey, integer childKey returns ability


native  LoadTimerHandle				takes hashtable table, integer parentKey, integer childKey returns timer


native  LoadTriggerHandle			takes hashtable table, integer parentKey, integer childKey returns trigger


native  LoadTriggerConditionHandle	takes hashtable table, integer parentKey, integer childKey returns triggercondition


native  LoadTriggerActionHandle		takes hashtable table, integer parentKey, integer childKey returns triggeraction


native  LoadTriggerEventHandle		takes hashtable table, integer parentKey, integer childKey returns event


native  LoadForceHandle				takes hashtable table, integer parentKey, integer childKey returns force


native  LoadGroupHandle				takes hashtable table, integer parentKey, integer childKey returns group


native  LoadLocationHandle			takes hashtable table, integer parentKey, integer childKey returns location


native  LoadRectHandle				takes hashtable table, integer parentKey, integer childKey returns rect


native  LoadBooleanExprHandle		takes hashtable table, integer parentKey, integer childKey returns boolexpr


native  LoadSoundHandle				takes hashtable table, integer parentKey, integer childKey returns sound


native  LoadEffectHandle			takes hashtable table, integer parentKey, integer childKey returns effect


native  LoadUnitPoolHandle			takes hashtable table, integer parentKey, integer childKey returns unitpool


native  LoadItemPoolHandle			takes hashtable table, integer parentKey, integer childKey returns itempool


native  LoadQuestHandle				takes hashtable table, integer parentKey, integer childKey returns quest


native  LoadQuestItemHandle			takes hashtable table, integer parentKey, integer childKey returns questitem


native  LoadDefeatConditionHandle	takes hashtable table, integer parentKey, integer childKey returns defeatcondition


native  LoadTimerDialogHandle		takes hashtable table, integer parentKey, integer childKey returns timerdialog


native  LoadLeaderboardHandle		takes hashtable table, integer parentKey, integer childKey returns leaderboard


native  LoadMultiboardHandle		takes hashtable table, integer parentKey, integer childKey returns multiboard


native  LoadMultiboardItemHandle	takes hashtable table, integer parentKey, integer childKey returns multiboarditem


native  LoadTrackableHandle			takes hashtable table, integer parentKey, integer childKey returns trackable


native  LoadDialogHandle			takes hashtable table, integer parentKey, integer childKey returns dialog


native  LoadButtonHandle			takes hashtable table, integer parentKey, integer childKey returns button


native  LoadTextTagHandle			takes hashtable table, integer parentKey, integer childKey returns texttag


native  LoadLightningHandle			takes hashtable table, integer parentKey, integer childKey returns lightning


native  LoadImageHandle				takes hashtable table, integer parentKey, integer childKey returns image


native  LoadUbersplatHandle			takes hashtable table, integer parentKey, integer childKey returns ubersplat


native  LoadRegionHandle			takes hashtable table, integer parentKey, integer childKey returns region


native  LoadFogStateHandle			takes hashtable table, integer parentKey, integer childKey returns fogstate


native  LoadFogModifierHandle		takes hashtable table, integer parentKey, integer childKey returns fogmodifier


native  LoadHashtableHandle			takes hashtable table, integer parentKey, integer childKey returns hashtable





native  HaveSavedInteger					takes hashtable table, integer parentKey, integer childKey returns boolean


native  HaveSavedReal						takes hashtable table, integer parentKey, integer childKey returns boolean


native  HaveSavedBoolean					takes hashtable table, integer parentKey, integer childKey returns boolean


native  HaveSavedString					    takes hashtable table, integer parentKey, integer childKey returns boolean


native  HaveSavedHandle     				takes hashtable table, integer parentKey, integer childKey returns boolean





native  RemoveSavedInteger					takes hashtable table, integer parentKey, integer childKey returns nothing


native  RemoveSavedReal						takes hashtable table, integer parentKey, integer childKey returns nothing


native  RemoveSavedBoolean					takes hashtable table, integer parentKey, integer childKey returns nothing


native  RemoveSavedString					takes hashtable table, integer parentKey, integer childKey returns nothing


native  RemoveSavedHandle					takes hashtable table, integer parentKey, integer childKey returns nothing





native  FlushParentHashtable						takes hashtable table returns nothing


native  FlushChildHashtable					takes hashtable table, integer parentKey returns nothing








//============================================================================


// Randomization API


native GetRandomInt takes integer lowBound, integer highBound returns integer


native GetRandomReal takes real lowBound, real highBound returns real





native CreateUnitPool           takes nothing returns unitpool


native DestroyUnitPool          takes unitpool whichPool returns nothing


native UnitPoolAddUnitType      takes unitpool whichPool, integer unitId, real weight returns nothing


native UnitPoolRemoveUnitType   takes unitpool whichPool, integer unitId returns nothing


native PlaceRandomUnit          takes unitpool whichPool, player forWhichPlayer, real x, real y, real facing returns unit





native CreateItemPool           takes nothing returns itempool


native DestroyItemPool          takes itempool whichItemPool returns nothing


native ItemPoolAddItemType      takes itempool whichItemPool, integer itemId, real weight returns nothing


native ItemPoolRemoveItemType   takes itempool whichItemPool, integer itemId returns nothing


native PlaceRandomItem          takes itempool whichItemPool, real x, real y returns item





// Choose any random unit/item. (NP means Neutral Passive)


native ChooseRandomCreep        takes integer level returns integer


native ChooseRandomNPBuilding   takes nothing returns integer


native ChooseRandomItem         takes integer level returns integer


native ChooseRandomItemEx       takes itemtype whichType, integer level returns integer


native SetRandomSeed            takes integer seed returns nothing





//============================================================================


// Visual API


native SetTerrainFog                takes real a, real b, real c, real d, real e returns nothing


native ResetTerrainFog              takes nothing returns nothing





native SetUnitFog                   takes real a, real b, real c, real d, real e returns nothing


native SetTerrainFogEx              takes integer style, real zstart, real zend, real density, real red, real green, real blue returns nothing


native DisplayTextToPlayer          takes player toPlayer, real x, real y, string message returns nothing


native DisplayTimedTextToPlayer     takes player toPlayer, real x, real y, real duration, string message returns nothing


native DisplayTimedTextFromPlayer   takes player toPlayer, real x, real y, real duration, string message returns nothing


native ClearTextMessages            takes nothing returns nothing


native SetDayNightModels            takes string terrainDNCFile, string unitDNCFile returns nothing


native SetSkyModel                  takes string skyModelFile returns nothing


native EnableUserControl            takes boolean b returns nothing


native EnableUserUI                 takes boolean b returns nothing


native SuspendTimeOfDay             takes boolean b returns nothing


native SetTimeOfDayScale            takes real r returns nothing


native GetTimeOfDayScale            takes nothing returns real


native ShowInterface                takes boolean flag, real fadeDuration returns nothing


native PauseGame                    takes boolean flag returns nothing


native UnitAddIndicator             takes unit whichUnit, integer red, integer green, integer blue, integer alpha returns nothing


native AddIndicator                 takes widget whichWidget, integer red, integer green, integer blue, integer alpha returns nothing


native PingMinimap                  takes real x, real y, real duration returns nothing


native PingMinimapEx                takes real x, real y, real duration, integer red, integer green, integer blue, boolean extraEffects returns nothing


native EnableOcclusion              takes boolean flag returns nothing


native SetIntroShotText             takes string introText returns nothing


native SetIntroShotModel            takes string introModelPath returns nothing


native EnableWorldFogBoundary       takes boolean b returns nothing


native PlayModelCinematic           takes string modelName returns nothing


native PlayCinematic                takes string movieName returns nothing


native ForceUIKey                   takes string key returns nothing


native ForceUICancel                takes nothing returns nothing


native DisplayLoadDialog            takes nothing returns nothing


native SetAltMinimapIcon            takes string iconPath returns nothing


native DisableRestartMission        takes boolean flag returns nothing





native CreateTextTag                takes nothing returns texttag


native DestroyTextTag               takes texttag t returns nothing


native SetTextTagText               takes texttag t, string s, real height returns nothing


native SetTextTagPos                takes texttag t, real x, real y, real heightOffset returns nothing


native SetTextTagPosUnit            takes texttag t, unit whichUnit, real heightOffset returns nothing


native SetTextTagColor              takes texttag t, integer red, integer green, integer blue, integer alpha returns nothing


native SetTextTagVelocity           takes texttag t, real xvel, real yvel returns nothing


native SetTextTagVisibility         takes texttag t, boolean flag returns nothing


native SetTextTagSuspended          takes texttag t, boolean flag returns nothing


native SetTextTagPermanent          takes texttag t, boolean flag returns nothing


native SetTextTagAge                takes texttag t, real age returns nothing


native SetTextTagLifespan           takes texttag t, real lifespan returns nothing


native SetTextTagFadepoint          takes texttag t, real fadepoint returns nothing





native SetReservedLocalHeroButtons  takes integer reserved returns nothing


native GetAllyColorFilterState      takes nothing returns integer


native SetAllyColorFilterState      takes integer state returns nothing


native GetCreepCampFilterState      takes nothing returns boolean


native SetCreepCampFilterState      takes boolean state returns nothing


native EnableMinimapFilterButtons   takes boolean enableAlly, boolean enableCreep returns nothing


native EnableDragSelect             takes boolean state, boolean ui returns nothing


native EnablePreSelect              takes boolean state, boolean ui returns nothing


native EnableSelect                 takes boolean state, boolean ui returns nothing





//============================================================================


// Trackable API


native CreateTrackable      takes string trackableModelPath, real x, real y, real facing returns trackable





//============================================================================


// Quest API


native CreateQuest          takes nothing returns quest


native DestroyQuest         takes quest whichQuest returns nothing


native QuestSetTitle        takes quest whichQuest, string title returns nothing


native QuestSetDescription  takes quest whichQuest, string description returns nothing


native QuestSetIconPath     takes quest whichQuest, string iconPath returns nothing





native QuestSetRequired     takes quest whichQuest, boolean required   returns nothing


native QuestSetCompleted    takes quest whichQuest, boolean completed  returns nothing


native QuestSetDiscovered   takes quest whichQuest, boolean discovered returns nothing


native QuestSetFailed       takes quest whichQuest, boolean failed     returns nothing


native QuestSetEnabled      takes quest whichQuest, boolean enabled    returns nothing


    


native IsQuestRequired     takes quest whichQuest returns boolean


native IsQuestCompleted    takes quest whichQuest returns boolean


native IsQuestDiscovered   takes quest whichQuest returns boolean


native IsQuestFailed       takes quest whichQuest returns boolean


native IsQuestEnabled      takes quest whichQuest returns boolean





native QuestCreateItem          takes quest whichQuest returns questitem


native QuestItemSetDescription  takes questitem whichQuestItem, string description returns nothing


native QuestItemSetCompleted    takes questitem whichQuestItem, boolean completed returns nothing





native IsQuestItemCompleted     takes questitem whichQuestItem returns boolean





native CreateDefeatCondition            takes nothing returns defeatcondition


native DestroyDefeatCondition           takes defeatcondition whichCondition returns nothing


native DefeatConditionSetDescription    takes defeatcondition whichCondition, string description returns nothing





native FlashQuestDialogButton   takes nothing returns nothing


native ForceQuestDialogUpdate   takes nothing returns nothing





//============================================================================


// Timer Dialog API


native CreateTimerDialog                takes timer t returns timerdialog


native DestroyTimerDialog               takes timerdialog whichDialog returns nothing


native TimerDialogSetTitle              takes timerdialog whichDialog, string title returns nothing


native TimerDialogSetTitleColor         takes timerdialog whichDialog, integer red, integer green, integer blue, integer alpha returns nothing


native TimerDialogSetTimeColor          takes timerdialog whichDialog, integer red, integer green, integer blue, integer alpha returns nothing


native TimerDialogSetSpeed              takes timerdialog whichDialog, real speedMultFactor returns nothing


native TimerDialogDisplay               takes timerdialog whichDialog, boolean display returns nothing


native IsTimerDialogDisplayed           takes timerdialog whichDialog returns boolean


native TimerDialogSetRealTimeRemaining  takes timerdialog whichDialog, real timeRemaining returns nothing





//============================================================================


// Leaderboard API





// Create a leaderboard object


native CreateLeaderboard                takes nothing returns leaderboard


native DestroyLeaderboard               takes leaderboard lb returns nothing





native LeaderboardDisplay               takes leaderboard lb, boolean show returns nothing


native IsLeaderboardDisplayed           takes leaderboard lb returns boolean





native LeaderboardGetItemCount          takes leaderboard lb returns integer





native LeaderboardSetSizeByItemCount    takes leaderboard lb, integer count returns nothing


native LeaderboardAddItem               takes leaderboard lb, string label, integer value, player p returns nothing


native LeaderboardRemoveItem            takes leaderboard lb, integer index returns nothing


native LeaderboardRemovePlayerItem      takes leaderboard lb, player p returns nothing


native LeaderboardClear                 takes leaderboard lb returns nothing





native LeaderboardSortItemsByValue      takes leaderboard lb, boolean ascending returns nothing


native LeaderboardSortItemsByPlayer     takes leaderboard lb, boolean ascending returns nothing


native LeaderboardSortItemsByLabel      takes leaderboard lb, boolean ascending returns nothing





native LeaderboardHasPlayerItem         takes leaderboard lb, player p returns boolean


native LeaderboardGetPlayerIndex        takes leaderboard lb, player p returns integer


native LeaderboardSetLabel              takes leaderboard lb, string label returns nothing


native LeaderboardGetLabelText          takes leaderboard lb returns string





native PlayerSetLeaderboard             takes player toPlayer, leaderboard lb returns nothing


native PlayerGetLeaderboard             takes player toPlayer returns leaderboard





native LeaderboardSetLabelColor         takes leaderboard lb, integer red, integer green, integer blue, integer alpha returns nothing


native LeaderboardSetValueColor         takes leaderboard lb, integer red, integer green, integer blue, integer alpha returns nothing


native LeaderboardSetStyle              takes leaderboard lb, boolean showLabel, boolean showNames, boolean showValues, boolean showIcons returns nothing





native LeaderboardSetItemValue          takes leaderboard lb, integer whichItem, integer val returns nothing


native LeaderboardSetItemLabel          takes leaderboard lb, integer whichItem, string val returns nothing


native LeaderboardSetItemStyle          takes leaderboard lb, integer whichItem, boolean showLabel, boolean showValue, boolean showIcon returns nothing


native LeaderboardSetItemLabelColor     takes leaderboard lb, integer whichItem, integer red, integer green, integer blue, integer alpha returns nothing


native LeaderboardSetItemValueColor     takes leaderboard lb, integer whichItem, integer red, integer green, integer blue, integer alpha returns nothing





//============================================================================


// Multiboard API


//============================================================================





// Create a multiboard object


native CreateMultiboard                 takes nothing returns multiboard


native DestroyMultiboard                takes multiboard lb returns nothing





native MultiboardDisplay                takes multiboard lb, boolean show returns nothing


native IsMultiboardDisplayed            takes multiboard lb returns boolean





native MultiboardMinimize               takes multiboard lb, boolean minimize returns nothing


native IsMultiboardMinimized            takes multiboard lb returns boolean


native MultiboardClear                  takes multiboard lb returns nothing





native MultiboardSetTitleText           takes multiboard lb, string label returns nothing


native MultiboardGetTitleText           takes multiboard lb returns string


native MultiboardSetTitleTextColor      takes multiboard lb, integer red, integer green, integer blue, integer alpha returns nothing





native MultiboardGetRowCount            takes multiboard lb returns integer


native MultiboardGetColumnCount         takes multiboard lb returns integer





native MultiboardSetColumnCount         takes multiboard lb, integer count returns nothing


native MultiboardSetRowCount            takes multiboard lb, integer count returns nothing





// broadcast settings to all items


native MultiboardSetItemsStyle          takes multiboard lb, boolean showValues, boolean showIcons returns nothing


native MultiboardSetItemsValue          takes multiboard lb, string value returns nothing


native MultiboardSetItemsValueColor     takes multiboard lb, integer red, integer green, integer blue, integer alpha returns nothing


native MultiboardSetItemsWidth          takes multiboard lb, real width returns nothing


native MultiboardSetItemsIcon           takes multiboard lb, string iconPath returns nothing








// funcs for modifying individual items


native MultiboardGetItem                takes multiboard lb, integer row, integer column returns multiboarditem


native MultiboardReleaseItem            takes multiboarditem mbi returns nothing





native MultiboardSetItemStyle           takes multiboarditem mbi, boolean showValue, boolean showIcon returns nothing


native MultiboardSetItemValue           takes multiboarditem mbi, string val returns nothing


native MultiboardSetItemValueColor      takes multiboarditem mbi, integer red, integer green, integer blue, integer alpha returns nothing


native MultiboardSetItemWidth           takes multiboarditem mbi, real width returns nothing


native MultiboardSetItemIcon            takes multiboarditem mbi, string iconFileName returns nothing





// meant to unequivocally suspend display of existing and


// subsequently displayed multiboards


//


native MultiboardSuppressDisplay        takes boolean flag returns nothing





//============================================================================


// Camera API


native SetCameraPosition            takes real x, real y returns nothing


native SetCameraQuickPosition       takes real x, real y returns nothing


native SetCameraBounds              takes real x1, real y1, real x2, real y2, real x3, real y3, real x4, real y4 returns nothing


native StopCamera                   takes nothing returns nothing


native ResetToGameCamera            takes real duration returns nothing


native PanCameraTo                  takes real x, real y returns nothing


native PanCameraToTimed             takes real x, real y, real duration returns nothing


native PanCameraToWithZ             takes real x, real y, real zOffsetDest returns nothing


native PanCameraToTimedWithZ        takes real x, real y, real zOffsetDest, real duration returns nothing


native SetCinematicCamera           takes string cameraModelFile returns nothing


native SetCameraRotateMode          takes real x, real y, real radiansToSweep, real duration returns nothing


native SetCameraField               takes camerafield whichField, real value, real duration returns nothing


native AdjustCameraField            takes camerafield whichField, real offset, real duration returns nothing


native SetCameraTargetController    takes unit whichUnit, real xoffset, real yoffset, boolean inheritOrientation returns nothing


native SetCameraOrientController    takes unit whichUnit, real xoffset, real yoffset returns nothing





native CreateCameraSetup                    takes nothing returns camerasetup


native CameraSetupSetField                  takes camerasetup whichSetup, camerafield whichField, real value, real duration returns nothing


native CameraSetupGetField                  takes camerasetup whichSetup, camerafield whichField returns real


native CameraSetupSetDestPosition           takes camerasetup whichSetup, real x, real y, real duration returns nothing


native CameraSetupGetDestPositionLoc        takes camerasetup whichSetup returns location


native CameraSetupGetDestPositionX          takes camerasetup whichSetup returns real


native CameraSetupGetDestPositionY          takes camerasetup whichSetup returns real


native CameraSetupApply                     takes camerasetup whichSetup, boolean doPan, boolean panTimed returns nothing


native CameraSetupApplyWithZ                takes camerasetup whichSetup, real zDestOffset returns nothing


native CameraSetupApplyForceDuration        takes camerasetup whichSetup, boolean doPan, real forceDuration returns nothing


native CameraSetupApplyForceDurationWithZ   takes camerasetup whichSetup, real zDestOffset, real forceDuration returns nothing





native CameraSetTargetNoise             takes real mag, real velocity returns nothing


native CameraSetSourceNoise             takes real mag, real velocity returns nothing





native CameraSetTargetNoiseEx           takes real mag, real velocity, boolean vertOnly returns nothing


native CameraSetSourceNoiseEx           takes real mag, real velocity, boolean vertOnly returns nothing





native CameraSetSmoothingFactor         takes real factor returns nothing





native SetCineFilterTexture             takes string filename returns nothing


native SetCineFilterBlendMode           takes blendmode whichMode returns nothing


native SetCineFilterTexMapFlags         takes texmapflags whichFlags returns nothing


native SetCineFilterStartUV             takes real minu, real minv, real maxu, real maxv returns nothing


native SetCineFilterEndUV               takes real minu, real minv, real maxu, real maxv returns nothing


native SetCineFilterStartColor          takes integer red, integer green, integer blue, integer alpha returns nothing


native SetCineFilterEndColor            takes integer red, integer green, integer blue, integer alpha returns nothing


native SetCineFilterDuration            takes real duration returns nothing


native DisplayCineFilter                takes boolean flag returns nothing


native IsCineFilterDisplayed            takes nothing returns boolean





native SetCinematicScene                takes integer portraitUnitId, playercolor color, string speakerTitle, string text, real sceneDuration, real voiceoverDuration returns nothing


native EndCinematicScene                takes nothing returns nothing


native ForceCinematicSubtitles          takes boolean flag returns nothing





native GetCameraMargin                  takes integer whichMargin returns real





// These return values for the local players camera only...


constant native GetCameraBoundMinX          takes nothing returns real


constant native GetCameraBoundMinY          takes nothing returns real


constant native GetCameraBoundMaxX          takes nothing returns real


constant native GetCameraBoundMaxY          takes nothing returns real


constant native GetCameraField              takes camerafield whichField returns real


constant native GetCameraTargetPositionX    takes nothing returns real


constant native GetCameraTargetPositionY    takes nothing returns real


constant native GetCameraTargetPositionZ    takes nothing returns real


constant native GetCameraTargetPositionLoc  takes nothing returns location


constant native GetCameraEyePositionX       takes nothing returns real


constant native GetCameraEyePositionY       takes nothing returns real


constant native GetCameraEyePositionZ       takes nothing returns real


constant native GetCameraEyePositionLoc     takes nothing returns location





//============================================================================


// Sound API


//


native NewSoundEnvironment          takes string environmentName returns nothing





native CreateSound                  takes string fileName, boolean looping, boolean is3D, boolean stopwhenoutofrange, integer fadeInRate, integer fadeOutRate, string eaxSetting returns sound


native CreateSoundFilenameWithLabel takes string fileName, boolean looping, boolean is3D, boolean stopwhenoutofrange, integer fadeInRate, integer fadeOutRate, string SLKEntryName returns sound


native CreateSoundFromLabel         takes string soundLabel, boolean looping, boolean is3D, boolean stopwhenoutofrange, integer fadeInRate, integer fadeOutRate returns sound


native CreateMIDISound              takes string soundLabel, integer fadeInRate, integer fadeOutRate returns sound





native SetSoundParamsFromLabel      takes sound soundHandle, string soundLabel returns nothing


native SetSoundDistanceCutoff       takes sound soundHandle, real cutoff returns nothing


native SetSoundChannel              takes sound soundHandle, integer channel returns nothing


native SetSoundVolume               takes sound soundHandle, integer volume returns nothing


native SetSoundPitch                takes sound soundHandle, real pitch returns nothing





// the following method must be called immediately after calling "StartSound" 


native SetSoundPlayPosition         takes sound soundHandle, integer millisecs returns nothing





// these calls are only valid if the sound was created with 3d enabled


native SetSoundDistances            takes sound soundHandle, real minDist, real maxDist returns nothing


native SetSoundConeAngles           takes sound soundHandle, real inside, real outside, integer outsideVolume returns nothing


native SetSoundConeOrientation      takes sound soundHandle, real x, real y, real z returns nothing


native SetSoundPosition             takes sound soundHandle, real x, real y, real z returns nothing


native SetSoundVelocity             takes sound soundHandle, real x, real y, real z returns nothing


native AttachSoundToUnit            takes sound soundHandle, unit whichUnit returns nothing





native StartSound                   takes sound soundHandle returns nothing


native StopSound                    takes sound soundHandle, boolean killWhenDone, boolean fadeOut returns nothing


native KillSoundWhenDone            takes sound soundHandle returns nothing





// Music Interface. Note that if music is disabled, these calls do nothing


native SetMapMusic                  takes string musicName, boolean random, integer index returns nothing


native ClearMapMusic                takes nothing returns nothing





native PlayMusic                    takes string musicName returns nothing


native PlayMusicEx                  takes string musicName, integer frommsecs, integer fadeinmsecs returns nothing


native StopMusic                    takes boolean fadeOut returns nothing


native ResumeMusic                  takes nothing returns nothing





native PlayThematicMusic            takes string musicFileName returns nothing


native PlayThematicMusicEx          takes string musicFileName, integer frommsecs returns nothing


native EndThematicMusic             takes nothing returns nothing





native SetMusicVolume               takes integer volume returns nothing


native SetMusicPlayPosition         takes integer millisecs returns nothing


native SetThematicMusicPlayPosition takes integer millisecs returns nothing





// other music and sound calls


native SetSoundDuration             takes sound soundHandle, integer duration returns nothing


native GetSoundDuration             takes sound soundHandle returns integer


native GetSoundFileDuration         takes string musicFileName returns integer





native VolumeGroupSetVolume         takes volumegroup vgroup, real scale returns nothing


native VolumeGroupReset             takes nothing returns nothing





native GetSoundIsPlaying            takes sound soundHandle returns boolean


native GetSoundIsLoading            takes sound soundHandle returns boolean





native RegisterStackedSound         takes sound soundHandle, boolean byPosition, real rectwidth, real rectheight returns nothing


native UnregisterStackedSound       takes sound soundHandle, boolean byPosition, real rectwidth, real rectheight returns nothing





//============================================================================


// Effects API


//


native AddWeatherEffect             takes rect where, integer effectID returns weathereffect


native RemoveWeatherEffect          takes weathereffect whichEffect returns nothing


native EnableWeatherEffect          takes weathereffect whichEffect, boolean enable returns nothing





native TerrainDeformCrater          takes real x, real y, real radius, real depth, integer duration, boolean permanent returns terraindeformation


native TerrainDeformRipple          takes real x, real y, real radius, real depth, integer duration, integer count, real spaceWaves, real timeWaves, real radiusStartPct, boolean limitNeg returns terraindeformation


native TerrainDeformWave            takes real x, real y, real dirX, real dirY, real distance, real speed, real radius, real depth, integer trailTime, integer count returns terraindeformation


native TerrainDeformRandom          takes real x, real y, real radius, real minDelta, real maxDelta, integer duration, integer updateInterval returns terraindeformation


native TerrainDeformStop            takes terraindeformation deformation, integer duration returns nothing


native TerrainDeformStopAll         takes nothing returns nothing





native AddSpecialEffect             takes string modelName, real x, real y returns effect


native AddSpecialEffectLoc          takes string modelName, location where returns effect


native AddSpecialEffectTarget       takes string modelName, widget targetWidget, string attachPointName returns effect


native DestroyEffect                takes effect whichEffect returns nothing





native AddSpellEffect               takes string abilityString, effecttype t, real x, real y returns effect


native AddSpellEffectLoc            takes string abilityString, effecttype t,location where returns effect


native AddSpellEffectById           takes integer abilityId, effecttype t,real x, real y returns effect


native AddSpellEffectByIdLoc        takes integer abilityId, effecttype t,location where returns effect


native AddSpellEffectTarget         takes string modelName, effecttype t, widget targetWidget, string attachPoint returns effect


native AddSpellEffectTargetById     takes integer abilityId, effecttype t, widget targetWidget, string attachPoint returns effect





native AddLightning                 takes string codeName, boolean checkVisibility, real x1, real y1, real x2, real y2 returns lightning


native AddLightningEx               takes string codeName, boolean checkVisibility, real x1, real y1, real z1, real x2, real y2, real z2 returns lightning


native DestroyLightning             takes lightning whichBolt returns boolean


native MoveLightning                takes lightning whichBolt, boolean checkVisibility, real x1, real y1, real x2, real y2 returns boolean


native MoveLightningEx              takes lightning whichBolt, boolean checkVisibility, real x1, real y1, real z1, real x2, real y2, real z2 returns boolean


native GetLightningColorA           takes lightning whichBolt returns real


native GetLightningColorR           takes lightning whichBolt returns real


native GetLightningColorG           takes lightning whichBolt returns real


native GetLightningColorB           takes lightning whichBolt returns real


native SetLightningColor            takes lightning whichBolt, real r, real g, real b, real a returns boolean





native GetAbilityEffect             takes string abilityString, effecttype t, integer index returns string


native GetAbilityEffectById         takes integer abilityId, effecttype t, integer index returns string


native GetAbilitySound              takes string abilityString, soundtype t returns string


native GetAbilitySoundById          takes integer abilityId, soundtype t returns string





//============================================================================


// Terrain API


//


native GetTerrainCliffLevel         takes real x, real y returns integer


native SetWaterBaseColor            takes integer red, integer green, integer blue, integer alpha returns nothing


native SetWaterDeforms              takes boolean val returns nothing


native GetTerrainType               takes real x, real y returns integer


native GetTerrainVariance           takes real x, real y returns integer


native SetTerrainType               takes real x, real y, integer terrainType, integer variation, integer area, integer shape returns nothing


native IsTerrainPathable            takes real x, real y, pathingtype t returns boolean


native SetTerrainPathable           takes real x, real y, pathingtype t, boolean flag returns nothing





//============================================================================


// Image API


//


native CreateImage                  takes string file, real sizeX, real sizeY, real sizeZ, real posX, real posY, real posZ, real originX, real originY, real originZ, integer imageType returns image


native DestroyImage                 takes image whichImage returns nothing


native ShowImage                    takes image whichImage, boolean flag returns nothing


native SetImageConstantHeight       takes image whichImage, boolean flag, real height returns nothing


native SetImagePosition             takes image whichImage, real x, real y, real z returns nothing


native SetImageColor                takes image whichImage, integer red, integer green, integer blue, integer alpha returns nothing


native SetImageRender               takes image whichImage, boolean flag returns nothing


native SetImageRenderAlways         takes image whichImage, boolean flag returns nothing


native SetImageAboveWater           takes image whichImage, boolean flag, boolean useWaterAlpha returns nothing


native SetImageType                 takes image whichImage, integer imageType returns nothing





//============================================================================


// Ubersplat API


//


native CreateUbersplat              takes real x, real y, string name, integer red, integer green, integer blue, integer alpha, boolean forcePaused, boolean noBirthTime returns ubersplat


native DestroyUbersplat             takes ubersplat whichSplat returns nothing


native ResetUbersplat               takes ubersplat whichSplat returns nothing


native FinishUbersplat              takes ubersplat whichSplat returns nothing


native ShowUbersplat                takes ubersplat whichSplat, boolean flag returns nothing


native SetUbersplatRender           takes ubersplat whichSplat, boolean flag returns nothing


native SetUbersplatRenderAlways     takes ubersplat whichSplat, boolean flag returns nothing





//============================================================================


// Blight API


//


native SetBlight                takes player whichPlayer, real x, real y, real radius, boolean addBlight returns nothing


native SetBlightRect            takes player whichPlayer, rect r, boolean addBlight returns nothing


native SetBlightPoint           takes player whichPlayer, real x, real y, boolean addBlight returns nothing


native SetBlightLoc             takes player whichPlayer, location whichLocation, real radius, boolean addBlight returns nothing


native CreateBlightedGoldmine   takes player id, real x, real y, real face returns unit


native IsPointBlighted          takes real x, real y returns boolean





//============================================================================


// Doodad API


//


native SetDoodadAnimation       takes real x, real y, real radius, integer doodadID, boolean nearestOnly, string animName, boolean animRandom returns nothing


native SetDoodadAnimationRect   takes rect r, integer doodadID, string animName, boolean animRandom returns nothing





//============================================================================


// Computer AI interface


//


native StartMeleeAI         takes player num, string script                 returns nothing


native StartCampaignAI      takes player num, string script                 returns nothing


native CommandAI            takes player num, integer command, integer data returns nothing


native PauseCompAI          takes player p,   boolean pause                 returns nothing


native GetAIDifficulty      takes player num                                returns aidifficulty





native RemoveGuardPosition  takes unit hUnit                                returns nothing


native RecycleGuardPosition takes unit hUnit                                returns nothing


native RemoveAllGuardPositions takes player num                             returns nothing





//============================================================================


native Cheat            takes string cheatStr returns nothing


native IsNoVictoryCheat takes nothing returns boolean


native IsNoDefeatCheat  takes nothing returns boolean





native Preload          takes string filename returns nothing


native PreloadEnd       takes real timeout returns nothing





native PreloadStart     takes nothing returns nothing


native PreloadRefresh   takes nothing returns nothing


native PreloadEndEx     takes nothing returns nothing





native PreloadGenClear  takes nothing returns nothing


native PreloadGenStart  takes nothing returns nothing


native PreloadGenEnd    takes string filename returns nothing


native Preloader        takes string filename returns nothing



function mh_read_memory takes nothing returns nothing
local integer array mh_readonly_array
local integer mh_index = 0
local integer mh_result
    set mh_result = mh_readonly_array[mh_index]
endfunction





