#pragma once

bool fRegistrJassApi();
bool fRegistrNatives();
bool fUnregisterNatives();

PJassString GetJassString(PChar s);
bool FileExists(char *filename);

bool fIsUnitVisible(HUNIT u, HPLAYER p);
int fGetAddressShowUnitToMap(HUNIT u);
int fShowPlayer(HPLAYER p);

// Natives variable
HRACE (__cdecl *_ConvertRace) (Integer i);
HALLIANCETYPE (__cdecl *_ConvertAllianceType) (Integer i);
HRACEPREFERENCE (__cdecl *_ConvertRacePref) (Integer i);
HIGAMESTATE (__cdecl *_ConvertIGameState) (Integer i);
HFGAMESTATE (__cdecl *_ConvertFGameState) (Integer i);
HPLAYERSTATE (__cdecl *_ConvertPlayerState) (Integer i);
HPLAYERSCORE (__cdecl *_ConvertPlayerScore) (Integer i);
HPLAYERGAMERESULT (__cdecl *_ConvertPlayerGameResult) (Integer i);
HUNITSTATE (__cdecl *_ConvertUnitState) (Integer i);
HAIDIFFICULTY (__cdecl *_ConvertAIDifficulty) (Integer i);
HGAMEEVENT (__cdecl *_ConvertGameEvent) (Integer i);
HPLAYEREVENT (__cdecl *_ConvertPlayerEvent) (Integer i);
HPLAYERUNITEVENT (__cdecl *_ConvertPlayerUnitEvent) (Integer i);
HWIDGETEVENT (__cdecl *_ConvertWidgetEvent) (Integer i);
HDIALOGEVENT (__cdecl *_ConvertDialogEvent) (Integer i);
HUNITEVENT (__cdecl *_ConvertUnitEvent) (Integer i);
HLIMITOP (__cdecl *_ConvertLimitOp) (Integer i);
HUNITTYPE (__cdecl *_ConvertUnitType) (Integer i);
HGAMESPEED (__cdecl *_ConvertGameSpeed) (Integer i);
HPLACEMENT (__cdecl *_ConvertPlacement) (Integer i);
HSTARTLOCPRIO (__cdecl *_ConvertStartLocPrio) (Integer i);
HGAMEDIFFICULTY (__cdecl *_ConvertGameDifficulty) (Integer i);
HGAMETYPE (__cdecl *_ConvertGameType) (Integer i);
HMAPFLAG (__cdecl *_ConvertMapFlag) (Integer i);
HMAPVISIBILITY (__cdecl *_ConvertMapVisibility) (Integer i);
HMAPSETTING (__cdecl *_ConvertMapSetting) (Integer i);
HMAPDENSITY (__cdecl *_ConvertMapDensity) (Integer i);
HMAPCONTROL (__cdecl *_ConvertMapControl) (Integer i);
HPLAYERCOLOR (__cdecl *_ConvertPlayerColor) (Integer i);
HPLAYERSLOTSTATE (__cdecl *_ConvertPlayerSlotState) (Integer i);
HVOLUMEGROUP (__cdecl *_ConvertVolumeGroup) (Integer i);
HCAMERAFIELD (__cdecl *_ConvertCameraField) (Integer i);
HBLENDMODE (__cdecl *_ConvertBlendMode) (Integer i);
HRARITYCONTROL (__cdecl *_ConvertRarityControl) (Integer i);
HTEXMAPFLAGS (__cdecl *_ConvertTexMapFlags) (Integer i);
HFOGSTATE (__cdecl *_ConvertFogState) (Integer i);
HEFFECTTYPE (__cdecl *_ConvertEffectType) (Integer i);
HVERSION (__cdecl *_ConvertVersion) (Integer i);
HITEMTYPE (__cdecl *_ConvertItemType) (Integer i);
HATTACKTYPE (__cdecl *_ConvertAttackType) (Integer i);
HDAMAGETYPE (__cdecl *_ConvertDamageType) (Integer i);
HWEAPONTYPE (__cdecl *_ConvertWeaponType) (Integer i);
HSOUNDTYPE (__cdecl *_ConvertSoundType) (Integer i);
HPATHINGTYPE (__cdecl *_ConvertPathingType) (Integer i);
Integer (__cdecl *_OrderId) (PJassString orderIdString);
TJassStringHandle (__cdecl *_OrderId2String) (Integer orderId);
Integer (__cdecl *_UnitId) (PJassString unitIdString);
TJassStringHandle (__cdecl *_UnitId2String) (Integer unitId);
Integer (__cdecl *_AbilityId) (PJassString abilityIdString);
TJassStringHandle (__cdecl *_AbilityId2String) (Integer abilityId);
TJassStringHandle (__cdecl *_GetObjectName) (Integer objectId);
TSingle (__cdecl *_Deg2Rad) (PSingle degrees);
TSingle (__cdecl *_Rad2Deg) (PSingle radians);
TSingle (__cdecl *_Sin) (PSingle radians);
TSingle (__cdecl *_Cos) (PSingle radians);
TSingle (__cdecl *_Tan) (PSingle radians);
TSingle (__cdecl *_Asin) (PSingle y);
TSingle (__cdecl *_Acos) (PSingle x);
TSingle (__cdecl *_Atan) (PSingle x);
TSingle (__cdecl *_Atan2) (PSingle y, PSingle x);
TSingle (__cdecl *_SquareRoot) (PSingle x);
TSingle (__cdecl *_Pow) (PSingle x, PSingle power);
TSingle (__cdecl *_I2R) (Integer i);
Integer (__cdecl *_R2I) (PSingle r);
TJassStringHandle (__cdecl *_I2S) (Integer i);
TJassStringHandle (__cdecl *_R2S) (PSingle r);
TJassStringHandle (__cdecl *_R2SW) (PSingle r, Integer width, Integer precision);
Integer (__cdecl *_S2I) (PJassString s);
TSingle (__cdecl *_S2R) (PJassString s);
Integer (__cdecl *_GetHandleId) (TJassHandle h);
TJassStringHandle (__cdecl *_SubString) (PJassString source, Integer start, Integer end_);
Integer (__cdecl *_StringLength) (PJassString s);
TJassStringHandle (__cdecl *_StringCase) (PJassString source, LongBool upper);
Integer (__cdecl *_StringHash) (PJassString s);
TJassStringHandle (__cdecl *_GetLocalizedString) (PJassString source);
Integer (__cdecl *_GetLocalizedHotkey) (PJassString source);
procedure (__cdecl *_SetMapName) (PJassString name);
procedure (__cdecl *_SetMapDescription) (PJassString description);
procedure (__cdecl *_SetTeams) (Integer teamcount);
procedure (__cdecl *_SetPlayers) (Integer playercount);
procedure (__cdecl *_DefineStartLocation) (Integer whichStartLoc, PSingle x, PSingle y);
procedure (__cdecl *_DefineStartLocationLoc) (Integer whichStartLoc, HLOCATION whichLocation);
procedure (__cdecl *_SetStartLocPrioCount) (Integer whichStartLoc, Integer prioSlotCount);
procedure (__cdecl *_SetStartLocPrio) (Integer whichStartLoc, Integer prioSlotIndex, Integer otherStartLocIndex, HSTARTLOCPRIO priority);
Integer (__cdecl *_GetStartLocPrioSlot) (Integer whichStartLoc, Integer prioSlotIndex);
HSTARTLOCPRIO (__cdecl *_GetStartLocPrio) (Integer whichStartLoc, Integer prioSlotIndex);
procedure (__cdecl *_SetGameTypeSupported) (HGAMETYPE whichGameType, LongBool value);
procedure (__cdecl *_SetMapFlag) (HMAPFLAG whichMapFlag, LongBool value);
procedure (__cdecl *_SetGamePlacement) (HPLACEMENT whichPlacementType);
procedure (__cdecl *_SetGameSpeed) (HGAMESPEED whichspeed);
procedure (__cdecl *_SetGameDifficulty) (HGAMEDIFFICULTY whichdifficulty);
procedure (__cdecl *_SetResourceDensity) (HMAPDENSITY whichdensity);
procedure (__cdecl *_SetCreatureDensity) (HMAPDENSITY whichdensity);
HSTARTLOCPRIO (__cdecl *_GetTeams) ();
HSTARTLOCPRIO (__cdecl *_GetPlayers) ();
LongBool (__cdecl *_IsGameTypeSupported) (HGAMETYPE whichGameType);
HGAMETYPE (__cdecl *_GetGameTypeSelected) ();
LongBool (__cdecl *_IsMapFlagSet) (HMAPFLAG whichMapFlag);
HPLACEMENT (__cdecl *_GetGamePlacement) ();
HGAMESPEED (__cdecl *_GetGameSpeed) ();
HGAMEDIFFICULTY (__cdecl *_GetGameDifficulty) ();
HMAPDENSITY (__cdecl *_GetResourceDensity) ();
HMAPDENSITY (__cdecl *_GetCreatureDensity) ();
TSingle (__cdecl *_GetStartLocationX) (Integer whichStartLocation);
TSingle (__cdecl *_GetStartLocationY) (Integer whichStartLocation);
HLOCATION (__cdecl *_GetStartLocationLoc) (Integer whichStartLocation);
procedure (__cdecl *_SetPlayerTeam) (HPLAYER whichPlayer, Integer whichTeam);
procedure (__cdecl *_SetPlayerStartLocation) (HPLAYER whichPlayer, Integer startLocIndex);
procedure (__cdecl *_ForcePlayerStartLocation) (HPLAYER whichPlayer, Integer startLocIndex);
procedure (__cdecl *_SetPlayerColor) (HPLAYER whichPlayer, HPLAYERCOLOR color);
procedure (__cdecl *_SetPlayerAlliance) (HPLAYER sourcePlayer, HPLAYER otherPlayer, HALLIANCETYPE whichAllianceSetting, LongBool value);
procedure (__cdecl *_SetPlayerTaxRate) (HPLAYER sourcePlayer, HPLAYER otherPlayer, HPLAYERSTATE whichResource, Integer rate);
procedure (__cdecl *_SetPlayerRacePreference) (HPLAYER whichPlayer, HRACEPREFERENCE whichRacePreference);
procedure (__cdecl *_SetPlayerRaceSelectable) (HPLAYER whichPlayer, LongBool value);
procedure (__cdecl *_SetPlayerController) (HPLAYER whichPlayer, HMAPCONTROL controlType);
procedure (__cdecl *_SetPlayerName) (HPLAYER whichPlayer, PJassString name);
procedure (__cdecl *_SetPlayerOnScoreScreen) (HPLAYER whichPlayer, LongBool flag);
Integer (__cdecl *_GetPlayerTeam) (HPLAYER whichPlayer);
Integer (__cdecl *_GetPlayerStartLocation) (HPLAYER whichPlayer);
HPLAYERCOLOR (__cdecl *_GetPlayerColor) (HPLAYER whichPlayer);
LongBool (__cdecl *_GetPlayerSelectable) (HPLAYER whichPlayer);
HMAPCONTROL (__cdecl *_GetPlayerController) (HPLAYER whichPlayer);
HPLAYERSLOTSTATE (__cdecl *_GetPlayerSlotState) (HPLAYER whichPlayer);
Integer (__cdecl *_GetPlayerTaxRate) (HPLAYER sourcePlayer, HPLAYER otherPlayer, HPLAYERSTATE whichResource);
LongBool (__cdecl *_IsPlayerRacePrefSet) (HPLAYER whichPlayer, HRACEPREFERENCE pref);
TJassStringHandle (__cdecl *_GetPlayerName) (HPLAYER whichPlayer);
HTIMER (__cdecl *_CreateTimer) ();
procedure (__cdecl *_DestroyTimer) (HTIMER whichTimer);
procedure (__cdecl *_TimerStart) (HTIMER whichTimer, PSingle timeout, LongBool periodic, TJassFunctionHandle handlerFunc);
TSingle (__cdecl *_TimerGetElapsed) (HTIMER whichTimer);
TSingle (__cdecl *_TimerGetRemaining) (HTIMER whichTimer);
TSingle (__cdecl *_TimerGetTimeout) (HTIMER whichTimer);
procedure (__cdecl *_PauseTimer) (HTIMER whichTimer);
procedure (__cdecl *_ResumeTimer) (HTIMER whichTimer);
HTIMER (__cdecl *_GetExpiredTimer) ();
HGROUP (__cdecl *_CreateGroup) ();
procedure (__cdecl *_DestroyGroup) (HGROUP whichGroup);
procedure (__cdecl *_GroupAddUnit) (HGROUP whichGroup, HUNIT whichUnit);
procedure (__cdecl *_GroupRemoveUnit) (HGROUP whichGroup, HUNIT whichUnit);
procedure (__cdecl *_GroupClear) (HGROUP whichGroup);
procedure (__cdecl *_GroupEnumUnitsOfType) (HGROUP whichGroup, PJassString unitname, HBOOLEXPR filter);
procedure (__cdecl *_GroupEnumUnitsOfPlayer) (HGROUP whichGroup, HPLAYER whichPlayer, HBOOLEXPR filter);
procedure (__cdecl *_GroupEnumUnitsOfTypeCounted) (HGROUP whichGroup, PJassString unitname, HBOOLEXPR filter, Integer countLimit);
procedure (__cdecl *_GroupEnumUnitsInRect) (HGROUP whichGroup, HRECT r, HBOOLEXPR filter);
procedure (__cdecl *_GroupEnumUnitsInRectCounted) (HGROUP whichGroup, HRECT r, HBOOLEXPR filter, Integer countLimit);
procedure (__cdecl *_GroupEnumUnitsInRange) (HGROUP whichGroup, PSingle x, PSingle y, PSingle radius, HBOOLEXPR filter);
procedure (__cdecl *_GroupEnumUnitsInRangeOfLoc) (HGROUP whichGroup, HLOCATION whichLocation, PSingle radius, HBOOLEXPR filter);
procedure (__cdecl *_GroupEnumUnitsInRangeCounted) (HGROUP whichGroup, PSingle x, PSingle y, PSingle radius, HBOOLEXPR filter, Integer countLimit);
procedure (__cdecl *_GroupEnumUnitsInRangeOfLocCounted) (HGROUP whichGroup, HLOCATION whichLocation, PSingle radius, HBOOLEXPR filter, Integer countLimit);
procedure (__cdecl *_GroupEnumUnitsSelected) (HGROUP whichGroup, HPLAYER whichPlayer, HBOOLEXPR filter);
LongBool (__cdecl *_GroupImmediateOrder) (HGROUP whichGroup, PJassString order);
LongBool (__cdecl *_GroupImmediateOrderById) (HGROUP whichGroup, Integer order);
LongBool (__cdecl *_GroupPointOrder) (HGROUP whichGroup, PJassString order, PSingle x, PSingle y);
LongBool (__cdecl *_GroupPointOrderLoc) (HGROUP whichGroup, PJassString order, HLOCATION whichLocation);
LongBool (__cdecl *_GroupPointOrderById) (HGROUP whichGroup, Integer order, PSingle x, PSingle y);
LongBool (__cdecl *_GroupPointOrderByIdLoc) (HGROUP whichGroup, Integer order, HLOCATION whichLocation);
LongBool (__cdecl *_GroupTargetOrder) (HGROUP whichGroup, PJassString order, HWIDGET targetWidget);
LongBool (__cdecl *_GroupTargetOrderById) (HGROUP whichGroup, Integer order, HWIDGET targetWidget);
procedure (__cdecl *_ForGroup) (HGROUP whichGroup, TJassFunctionHandle callback);
HUNIT (__cdecl *_FirstOfGroup) (HGROUP whichGroup);
HFORCE (__cdecl *_CreateForce) ();
procedure (__cdecl *_DestroyForce) (HFORCE whichForce);
procedure (__cdecl *_ForceAddPlayer) (HFORCE whichForce, HPLAYER whichPlayer);
procedure (__cdecl *_ForceRemovePlayer) (HFORCE whichForce, HPLAYER whichPlayer);
procedure (__cdecl *_ForceClear) (HFORCE whichForce);
procedure (__cdecl *_ForceEnumPlayers) (HFORCE whichForce, HBOOLEXPR filter);
procedure (__cdecl *_ForceEnumPlayersCounted) (HFORCE whichForce, HBOOLEXPR filter, Integer countLimit);
procedure (__cdecl *_ForceEnumAllies) (HFORCE whichForce, HPLAYER whichPlayer, HBOOLEXPR filter);
procedure (__cdecl *_ForceEnumEnemies) (HFORCE whichForce, HPLAYER whichPlayer, HBOOLEXPR filter);
procedure (__cdecl *_ForForce) (HFORCE whichForce, TJassFunctionHandle callback);
HRECT (__cdecl *_Rect) (PSingle minx, PSingle miny, PSingle maxx, PSingle maxy);
HRECT (__cdecl *_RectFromLoc) (HLOCATION min, HLOCATION max);
procedure (__cdecl *_RemoveRect) (HRECT whichRect);
procedure (__cdecl *_SetRect) (HRECT whichRect, PSingle minx, PSingle miny, PSingle maxx, PSingle maxy);
procedure (__cdecl *_SetRectFromLoc) (HRECT whichRect, HLOCATION min, HLOCATION max);
procedure (__cdecl *_MoveRectTo) (HRECT whichRect, PSingle newCenterX, PSingle newCenterY);
procedure (__cdecl *_MoveRectToLoc) (HRECT whichRect, HLOCATION newCenterLoc);
TSingle (__cdecl *_GetRectCenterX) (HRECT whichRect);
TSingle (__cdecl *_GetRectCenterY) (HRECT whichRect);
TSingle (__cdecl *_GetRectMinX) (HRECT whichRect);
TSingle (__cdecl *_GetRectMinY) (HRECT whichRect);
TSingle (__cdecl *_GetRectMaxX) (HRECT whichRect);
TSingle (__cdecl *_GetRectMaxY) (HRECT whichRect);
HREGION (__cdecl *_CreateRegion) ();
procedure (__cdecl *_RemoveRegion) (HREGION whichRegion);
procedure (__cdecl *_RegionAddRect) (HREGION whichRegion, HRECT r);
procedure (__cdecl *_RegionClearRect) (HREGION whichRegion, HRECT r);
procedure (__cdecl *_RegionAddCell) (HREGION whichRegion, PSingle x, PSingle y);
procedure (__cdecl *_RegionAddCellAtLoc) (HREGION whichRegion, HLOCATION whichLocation);
procedure (__cdecl *_RegionClearCell) (HREGION whichRegion, PSingle x, PSingle y);
procedure (__cdecl *_RegionClearCellAtLoc) (HREGION whichRegion, HLOCATION whichLocation);
HLOCATION (__cdecl *_Location) (PSingle x, PSingle y);
procedure (__cdecl *_RemoveLocation) (HLOCATION whichLocation);
procedure (__cdecl *_MoveLocation) (HLOCATION whichLocation, PSingle newX, PSingle newY);
TSingle (__cdecl *_GetLocationX) (HLOCATION whichLocation);
TSingle (__cdecl *_GetLocationY) (HLOCATION whichLocation);
TSingle (__cdecl *_GetLocationZ) (HLOCATION whichLocation);
LongBool (__cdecl *_IsUnitInRegion) (HREGION whichRegion, HUNIT whichUnit);
LongBool (__cdecl *_IsPointInRegion) (HREGION whichRegion, PSingle x, PSingle y);
LongBool (__cdecl *_IsLocationInRegion) (HREGION whichRegion, HLOCATION whichLocation);
HRECT (__cdecl *_GetWorldBounds) ();
HTRIGGER (__cdecl *_CreateTrigger) ();
procedure (__cdecl *_DestroyTrigger) (HTRIGGER whichTrigger);
procedure (__cdecl *_ResetTrigger) (HTRIGGER whichTrigger);
procedure (__cdecl *_EnableTrigger) (HTRIGGER whichTrigger);
procedure (__cdecl *_DisableTrigger) (HTRIGGER whichTrigger);
LongBool (__cdecl *_IsTriggerEnabled) (HTRIGGER whichTrigger);
procedure (__cdecl *_TriggerWaitOnSleeps) (HTRIGGER whichTrigger, LongBool flag);
LongBool (__cdecl *_IsTriggerWaitOnSleeps) (HTRIGGER whichTrigger);
HUNIT (__cdecl *_GetFilterUnit) ();
HUNIT (__cdecl *_GetEnumUnit) ();
HDESTRUCTABLE (__cdecl *_GetFilterDestructable) ();
HDESTRUCTABLE (__cdecl *_GetEnumDestructable) ();
HITEM (__cdecl *_GetFilterItem) ();
HITEM (__cdecl *_GetEnumItem) ();
HPLAYER (__cdecl *_GetFilterPlayer) ();
HPLAYER (__cdecl *_GetEnumPlayer) ();
HTRIGGER (__cdecl *_GetTriggeringTrigger) ();
HEVENTID (__cdecl *_GetTriggerEventId) ();
Integer (__cdecl *_GetTriggerEvalCount) (HTRIGGER whichTrigger);
Integer (__cdecl *_GetTriggerExecCount) (HTRIGGER whichTrigger);
procedure (__cdecl *_ExecuteFunc) (PJassString funcName);
HBOOLEXPR (__cdecl *_And_) (HBOOLEXPR operandA, HBOOLEXPR operandB);
HBOOLEXPR (__cdecl *_Or_) (HBOOLEXPR operandA, HBOOLEXPR operandB);
HBOOLEXPR (__cdecl *_Not_) (HBOOLEXPR operand);
HCONDITIONFUNC (__cdecl *_Condition) (TJassFunctionHandle func);
procedure (__cdecl *_DestroyCondition) (HCONDITIONFUNC c);
HFILTERFUNC (__cdecl *_Filter) (TJassFunctionHandle func);
procedure (__cdecl *_DestroyFilter) (HFILTERFUNC f);
procedure (__cdecl *_DestroyBoolExpr) (HBOOLEXPR e);
HEVENT (__cdecl *_TriggerRegisterVariableEvent) (HTRIGGER whichTrigger, PJassString varName, HLIMITOP opcode, PSingle limitval);
HEVENT (__cdecl *_TriggerRegisterTimerEvent) (HTRIGGER whichTrigger, PSingle timeout, LongBool periodic);
HEVENT (__cdecl *_TriggerRegisterTimerExpireEvent) (HTRIGGER whichTrigger, HTIMER t);
HEVENT (__cdecl *_TriggerRegisterGameStateEvent) (HTRIGGER whichTrigger, HGAMESTATE whichState, HLIMITOP opcode, PSingle limitval);
HEVENT (__cdecl *_TriggerRegisterDialogEvent) (HTRIGGER whichTrigger, HDIALOG whichDialog);
HEVENT (__cdecl *_TriggerRegisterDialogButtonEvent) (HTRIGGER whichTrigger, HBUTTON whichButton);
HGAMESTATE (__cdecl *_GetEventGameState) ();
HEVENT (__cdecl *_TriggerRegisterGameEvent) (HTRIGGER whichTrigger, HGAMEEVENT whichGameEvent);
HPLAYER (__cdecl *_GetWinningPlayer) ();
HEVENT (__cdecl *_TriggerRegisterEnterRegion) (HTRIGGER whichTrigger, HREGION whichRegion, HBOOLEXPR filter);
HREGION (__cdecl *_GetTriggeringRegion) ();
HUNIT (__cdecl *_GetEnteringUnit) ();
HEVENT (__cdecl *_TriggerRegisterLeaveRegion) (HTRIGGER whichTrigger, HREGION whichRegion, HBOOLEXPR filter);
HUNIT (__cdecl *_GetLeavingUnit) ();
HEVENT (__cdecl *_TriggerRegisterTrackableHitEvent) (HTRIGGER whichTrigger, HTRACKABLE t);
HEVENT (__cdecl *_TriggerRegisterTrackableTrackEvent) (HTRIGGER whichTrigger, HTRACKABLE t);
HTRACKABLE (__cdecl *_GetTriggeringTrackable) ();
HBUTTON (__cdecl *_GetClickedButton) ();
HDIALOG (__cdecl *_GetClickedDialog) ();
TSingle (__cdecl *_GetTournamentFinishSoonTimeRemaining) ();
Integer (__cdecl *_GetTournamentFinishNowRule) ();
HPLAYER (__cdecl *_GetTournamentFinishNowPlayer) ();
Integer (__cdecl *_GetTournamentScore) (HPLAYER whichPlayer);
TJassStringHandle (__cdecl *_GetSaveBasicFilename) ();
HEVENT (__cdecl *_TriggerRegisterPlayerEvent) (HTRIGGER whichTrigger, HPLAYER whichPlayer, HPLAYEREVENT whichPlayerEvent);
HPLAYER (__cdecl *_GetTriggerPlayer) ();
HEVENT (__cdecl *_TriggerRegisterPlayerUnitEvent) (HTRIGGER whichTrigger, HPLAYER whichPlayer, HPLAYERUNITEVENT whichPlayerUnitEvent, HBOOLEXPR filter);
HUNIT (__cdecl *_GetLevelingUnit) ();
HUNIT (__cdecl *_GetLearningUnit) ();
Integer (__cdecl *_GetLearnedSkill) ();
Integer (__cdecl *_GetLearnedSkillLevel) ();
HUNIT (__cdecl *_GetRevivableUnit) ();
HUNIT (__cdecl *_GetRevivingUnit) ();
HUNIT (__cdecl *_GetAttacker) ();
HUNIT (__cdecl *_GetRescuer) ();
HUNIT (__cdecl *_GetDyingUnit) ();
HUNIT (__cdecl *_GetKillingUnit) ();
HUNIT (__cdecl *_GetDecayingUnit) ();
HUNIT (__cdecl *_GetSelectedUnit) ();
HUNIT (__cdecl *_GetConstructingStructure) ();
HUNIT (__cdecl *_GetCancelledStructure) ();
HUNIT (__cdecl *_GetConstructedStructure) ();
HUNIT (__cdecl *_GetResearchingUnit) ();
Integer (__cdecl *_GetResearched) ();
Integer (__cdecl *_GetTrainedUnitType) ();
HUNIT (__cdecl *_GetTrainedUnit) ();
HUNIT (__cdecl *_GetDetectedUnit) ();
HUNIT (__cdecl *_GetSummoningUnit) ();
HUNIT (__cdecl *_GetSummonedUnit) ();
HUNIT (__cdecl *_GetTransportUnit) ();
HUNIT (__cdecl *_GetLoadedUnit) ();
HUNIT (__cdecl *_GetSellingUnit) ();
HUNIT (__cdecl *_GetSoldUnit) ();
HUNIT (__cdecl *_GetBuyingUnit) ();
HITEM (__cdecl *_GetSoldItem) ();
HUNIT (__cdecl *_GetChangingUnit) ();
HPLAYER (__cdecl *_GetChangingUnitPrevOwner) ();
HUNIT (__cdecl *_GetManipulatingUnit) ();
HITEM (__cdecl *_GetManipulatedItem) ();
HUNIT (__cdecl *_GetOrderedUnit) ();
Integer (__cdecl *_GetIssuedOrderId) ();
TSingle (__cdecl *_GetOrderPointX) ();
TSingle (__cdecl *_GetOrderPointY) ();
HLOCATION (__cdecl *_GetOrderPointLoc) ();
HWIDGET (__cdecl *_GetOrderTarget) ();
HDESTRUCTABLE (__cdecl *_GetOrderTargetDestructable) ();
HITEM (__cdecl *_GetOrderTargetItem) ();
HUNIT (__cdecl *_GetOrderTargetUnit) ();
HUNIT (__cdecl *_GetSpellAbilityUnit) ();
Integer (__cdecl *_GetSpellAbilityId) ();
HABILITY (__cdecl *_GetSpellAbility) ();
HLOCATION (__cdecl *_GetSpellTargetLoc) ();
TSingle (__cdecl *_GetSpellTargetX) ();
TSingle (__cdecl *_GetSpellTargetY) ();
HDESTRUCTABLE (__cdecl *_GetSpellTargetDestructable) ();
HITEM (__cdecl *_GetSpellTargetItem) ();
HUNIT (__cdecl *_GetSpellTargetUnit) ();
HEVENT (__cdecl *_TriggerRegisterPlayerAllianceChange) (HTRIGGER whichTrigger, HPLAYER whichPlayer, HALLIANCETYPE whichAlliance);
HEVENT (__cdecl *_TriggerRegisterPlayerStateEvent) (HTRIGGER whichTrigger, HPLAYER whichPlayer, HPLAYERSTATE whichState, HLIMITOP opcode, PSingle limitval);
HPLAYERSTATE (__cdecl *_GetEventPlayerState) ();
HEVENT (__cdecl *_TriggerRegisterPlayerChatEvent) (HTRIGGER whichTrigger, HPLAYER whichPlayer, PJassString chatMessageToDetect, LongBool exactMatchOnly);
TJassStringHandle (__cdecl *_GetEventPlayerChatString) ();
TJassStringHandle (__cdecl *_GetEventPlayerChatStringMatched) ();
HEVENT (__cdecl *_TriggerRegisterDeathEvent) (HTRIGGER whichTrigger, HWIDGET whichWidget);
HUNIT (__cdecl *_GetTriggerUnit) ();
HEVENT (__cdecl *_TriggerRegisterUnitStateEvent) (HTRIGGER whichTrigger, HUNIT whichUnit, HUNITSTATE whichState, HLIMITOP opcode, PSingle limitval);
HUNITSTATE (__cdecl *_GetEventUnitState) ();
HEVENT (__cdecl *_TriggerRegisterUnitEvent) (HTRIGGER whichTrigger, HUNIT whichUnit, HUNITEVENT whichEvent);
TSingle (__cdecl *_GetEventDamage) ();
HUNIT (__cdecl *_GetEventDamageSource) ();
HPLAYER (__cdecl *_GetEventDetectingPlayer) ();
HEVENT (__cdecl *_TriggerRegisterFilterUnitEvent) (HTRIGGER whichTrigger, HUNIT whichUnit, HUNITEVENT whichEvent, HBOOLEXPR filter);
HUNIT (__cdecl *_GetEventTargetUnit) ();
HEVENT (__cdecl *_TriggerRegisterUnitInRange) (HTRIGGER whichTrigger, HUNIT whichUnit, PSingle range, HBOOLEXPR filter);
HTRIGGERCONDITION (__cdecl *_TriggerAddCondition) (HTRIGGER whichTrigger, HBOOLEXPR condition);
procedure (__cdecl *_TriggerRemoveCondition) (HTRIGGER whichTrigger, HTRIGGERCONDITION whichCondition);
procedure (__cdecl *_TriggerClearConditions) (HTRIGGER whichTrigger);
HTRIGGERACTION (__cdecl *_TriggerAddAction) (HTRIGGER whichTrigger, TJassFunctionHandle actionFunc);
procedure (__cdecl *_TriggerRemoveAction) (HTRIGGER whichTrigger, HTRIGGERACTION whichAction);
procedure (__cdecl *_TriggerClearActions) (HTRIGGER whichTrigger);
procedure (__cdecl *_TriggerSleepAction) (PSingle timeout);
procedure (__cdecl *_TriggerWaitForSound) (HSOUND s, PSingle offset);
LongBool (__cdecl *_TriggerEvaluate) (HTRIGGER whichTrigger);
procedure (__cdecl *_TriggerExecute) (HTRIGGER whichTrigger);
procedure (__cdecl *_TriggerExecuteWait) (HTRIGGER whichTrigger);
procedure (__cdecl *_TriggerSyncStart) ();
procedure (__cdecl *_TriggerSyncReady) ();
TSingle (__cdecl *_GetWidgetLife) (HWIDGET whichWidget);
procedure (__cdecl *_SetWidgetLife) (HWIDGET whichWidget, PSingle newLife);
TSingle (__cdecl *_GetWidgetX) (HWIDGET whichWidget);
TSingle (__cdecl *_GetWidgetY) (HWIDGET whichWidget);
HWIDGET (__cdecl *_GetTriggerWidget) ();
HDESTRUCTABLE (__cdecl *_CreateDestructable) (Integer objectid, PSingle x, PSingle y, PSingle face, PSingle scale, Integer variation);
HDESTRUCTABLE (__cdecl *_CreateDestructableZ) (Integer objectid, PSingle x, PSingle y, PSingle z, PSingle face, PSingle scale, Integer variation);
HDESTRUCTABLE (__cdecl *_CreateDeadDestructable) (Integer objectid, PSingle x, PSingle y, PSingle face, PSingle scale, Integer variation);
HDESTRUCTABLE (__cdecl *_CreateDeadDestructableZ) (Integer objectid, PSingle x, PSingle y, PSingle z, PSingle face, PSingle scale, Integer variation);
procedure (__cdecl *_RemoveDestructable) (HDESTRUCTABLE d);
procedure (__cdecl *_KillDestructable) (HDESTRUCTABLE d);
procedure (__cdecl *_SetDestructableInvulnerable) (HDESTRUCTABLE d, LongBool flag);
LongBool (__cdecl *_IsDestructableInvulnerable) (HDESTRUCTABLE d);
procedure (__cdecl *_EnumDestructablesInRect) (HRECT r, HBOOLEXPR filter, TJassFunctionHandle actionFunc);
Integer (__cdecl *_GetDestructableTypeId) (HDESTRUCTABLE d);
TSingle (__cdecl *_GetDestructableX) (HDESTRUCTABLE d);
TSingle (__cdecl *_GetDestructableY) (HDESTRUCTABLE d);
procedure (__cdecl *_SetDestructableLife) (HDESTRUCTABLE d, PSingle life);
TSingle (__cdecl *_GetDestructableLife) (HDESTRUCTABLE d);
procedure (__cdecl *_SetDestructableMaxLife) (HDESTRUCTABLE d, PSingle max);
TSingle (__cdecl *_GetDestructableMaxLife) (HDESTRUCTABLE d);
procedure (__cdecl *_DestructableRestoreLife) (HDESTRUCTABLE d, PSingle life, LongBool birth);
procedure (__cdecl *_QueueDestructableAnimation) (HDESTRUCTABLE d, PJassString whichAnimation);
procedure (__cdecl *_SetDestructableAnimation) (HDESTRUCTABLE d, PJassString whichAnimation);
procedure (__cdecl *_SetDestructableAnimationSpeed) (HDESTRUCTABLE d, PSingle speedFactor);
procedure (__cdecl *_ShowDestructable) (HDESTRUCTABLE d, LongBool flag);
TSingle (__cdecl *_GetDestructableOccluderHeight) (HDESTRUCTABLE d);
procedure (__cdecl *_SetDestructableOccluderHeight) (HDESTRUCTABLE d, PSingle height);
TJassStringHandle (__cdecl *_GetDestructableName) (HDESTRUCTABLE d);
HDESTRUCTABLE (__cdecl *_GetTriggerDestructable) ();
HITEM (__cdecl *_CreateItem) (Integer itemid, PSingle x, PSingle y);
procedure (__cdecl *_RemoveItem) (HITEM whichItem);
HPLAYER (__cdecl *_GetItemPlayer) (HITEM whichItem);
Integer (__cdecl *_GetItemTypeId) (HITEM i);
TSingle (__cdecl *_GetItemX) (HITEM i);
TSingle (__cdecl *_GetItemY) (HITEM i);
procedure (__cdecl *_SetItemPosition) (HITEM i, PSingle x, PSingle y);
procedure (__cdecl *_SetItemDropOnDeath) (HITEM whichItem, LongBool flag);
procedure (__cdecl *_SetItemDroppable) (HITEM i, LongBool flag);
procedure (__cdecl *_SetItemPawnable) (HITEM i, LongBool flag);
procedure (__cdecl *_SetItemPlayer) (HITEM whichItem, HPLAYER whichPlayer, LongBool changeColor);
procedure (__cdecl *_SetItemInvulnerable) (HITEM whichItem, LongBool flag);
LongBool (__cdecl *_IsItemInvulnerable) (HITEM whichItem);
procedure (__cdecl *_SetItemVisible) (HITEM whichItem, LongBool show);
LongBool (__cdecl *_IsItemVisible) (HITEM whichItem);
LongBool (__cdecl *_IsItemOwned) (HITEM whichItem);
LongBool (__cdecl *_IsItemPowerup) (HITEM whichItem);
LongBool (__cdecl *_IsItemSellable) (HITEM whichItem);
LongBool (__cdecl *_IsItemPawnable) (HITEM whichItem);
LongBool (__cdecl *_IsItemIdPowerup) (Integer itemId);
LongBool (__cdecl *_IsItemIdSellable) (Integer itemId);
LongBool (__cdecl *_IsItemIdPawnable) (Integer itemId);
procedure (__cdecl *_EnumItemsInRect) (HRECT r, HBOOLEXPR filter, TJassFunctionHandle actionFunc);
Integer (__cdecl *_GetItemLevel) (HITEM whichItem);
HITEMTYPE (__cdecl *_GetItemType) (HITEM whichItem);
procedure (__cdecl *_SetItemDropID) (HITEM whichItem, Integer unitId);
TJassStringHandle (__cdecl *_GetItemName) (HITEM whichItem);
Integer (__cdecl *_GetItemCharges) (HITEM whichItem);
procedure (__cdecl *_SetItemCharges) (HITEM whichItem, Integer charges);
Integer (__cdecl *_GetItemUserData) (HITEM whichItem);
procedure (__cdecl *_SetItemUserData) (HITEM whichItem, Integer data);
HUNIT (__cdecl *_CreateUnit) (HPLAYER id, Integer unitid, PSingle x, PSingle y, PSingle face);
HUNIT (__cdecl *_CreateUnitByName) (HPLAYER whichPlayer, PJassString unitname, PSingle x, PSingle y, PSingle face);
HUNIT (__cdecl *_CreateUnitAtLoc) (HPLAYER id, Integer unitid, HLOCATION whichLocation, PSingle face);
HUNIT (__cdecl *_CreateUnitAtLocByName) (HPLAYER id, PJassString unitname, HLOCATION whichLocation, PSingle face);
HUNIT (__cdecl *_CreateCorpse) (HPLAYER whichPlayer, Integer unitid, PSingle x, PSingle y, PSingle face);
procedure (__cdecl *_KillUnit) (HUNIT whichUnit);
procedure (__cdecl *_RemoveUnit) (HUNIT whichUnit);
procedure (__cdecl *_ShowUnit) (HUNIT whichUnit, LongBool show);
procedure (__cdecl *_SetUnitState) (HUNIT whichUnit, HUNITSTATE whichUnitState, PSingle newVal);
procedure (__cdecl *_SetUnitX) (HUNIT whichUnit, PSingle newX);
procedure (__cdecl *_SetUnitY) (HUNIT whichUnit, PSingle newY);
procedure (__cdecl *_SetUnitPosition) (HUNIT whichUnit, PSingle newX, PSingle newY);
procedure (__cdecl *_SetUnitPositionLoc) (HUNIT whichUnit, HLOCATION whichLocation);
procedure (__cdecl *_SetUnitFacing) (HUNIT whichUnit, PSingle facingAngle);
procedure (__cdecl *_SetUnitFacingTimed) (HUNIT whichUnit, PSingle facingAngle, PSingle duration);
procedure (__cdecl *_SetUnitMoveSpeed) (HUNIT whichUnit, PSingle newSpeed);
procedure (__cdecl *_SetUnitFlyHeight) (HUNIT whichUnit, PSingle newHeight, PSingle rate);
procedure (__cdecl *_SetUnitTurnSpeed) (HUNIT whichUnit, PSingle newTurnSpeed);
procedure (__cdecl *_SetUnitPropWindow) (HUNIT whichUnit, PSingle newPropWindowAngle);
procedure (__cdecl *_SetUnitAcquireRange) (HUNIT whichUnit, PSingle newAcquireRange);
procedure (__cdecl *_SetUnitCreepGuard) (HUNIT whichUnit, LongBool creepGuard);
TSingle (__cdecl *_GetUnitAcquireRange) (HUNIT whichUnit);
TSingle (__cdecl *_GetUnitTurnSpeed) (HUNIT whichUnit);
TSingle (__cdecl *_GetUnitPropWindow) (HUNIT whichUnit);
TSingle (__cdecl *_GetUnitFlyHeight) (HUNIT whichUnit);
TSingle (__cdecl *_GetUnitDefaultAcquireRange) (HUNIT whichUnit);
TSingle (__cdecl *_GetUnitDefaultTurnSpeed) (HUNIT whichUnit);
TSingle (__cdecl *_GetUnitDefaultPropWindow) (HUNIT whichUnit);
TSingle (__cdecl *_GetUnitDefaultFlyHeight) (HUNIT whichUnit);
procedure (__cdecl *_SetUnitOwner) (HUNIT whichUnit, HPLAYER whichPlayer, LongBool changeColor);
procedure (__cdecl *_SetUnitColor) (HUNIT whichUnit, HPLAYERCOLOR whichColor);
procedure (__cdecl *_SetUnitScale) (HUNIT whichUnit, PSingle scaleX, PSingle scaleY, PSingle scaleZ);
procedure (__cdecl *_SetUnitTimeScale) (HUNIT whichUnit, PSingle timeScale);
procedure (__cdecl *_SetUnitBlendTime) (HUNIT whichUnit, PSingle blendTime);
procedure (__cdecl *_SetUnitVertexColor) (HUNIT whichUnit, Integer red, Integer green, Integer blue, Integer alpha);
procedure (__cdecl *_QueueUnitAnimation) (HUNIT whichUnit, PJassString whichAnimation);
procedure (__cdecl *_SetUnitAnimation) (HUNIT whichUnit, PJassString whichAnimation);
procedure (__cdecl *_SetUnitAnimationByIndex) (HUNIT whichUnit, Integer whichAnimation);
procedure (__cdecl *_SetUnitAnimationWithRarity) (HUNIT whichUnit, PJassString whichAnimation, HRARITYCONTROL rarity);
procedure (__cdecl *_AddUnitAnimationProperties) (HUNIT whichUnit, PJassString animProperties, LongBool add);
procedure (__cdecl *_SetUnitLookAt) (HUNIT whichUnit, PJassString whichBone, HUNIT lookAtTarget, PSingle offsetX, PSingle offsetY, PSingle offsetZ);
procedure (__cdecl *_ResetUnitLookAt) (HUNIT whichUnit);
procedure (__cdecl *_SetUnitRescuable) (HUNIT whichUnit, HPLAYER byWhichPlayer, LongBool flag);
procedure (__cdecl *_SetUnitRescueRange) (HUNIT whichUnit, PSingle range);
procedure (__cdecl *_SetHeroStr) (HUNIT whichHero, Integer newStr, LongBool permanent);
procedure (__cdecl *_SetHeroAgi) (HUNIT whichHero, Integer newAgi, LongBool permanent);
procedure (__cdecl *_SetHeroInt) (HUNIT whichHero, Integer newInt, LongBool permanent);
Integer (__cdecl *_GetHeroStr) (HUNIT whichHero, LongBool includeBonuses);
Integer (__cdecl *_GetHeroAgi) (HUNIT whichHero, LongBool includeBonuses);
Integer (__cdecl *_GetHeroInt) (HUNIT whichHero, LongBool includeBonuses);
LongBool (__cdecl *_UnitStripHeroLevel) (HUNIT whichHero, Integer howManyLevels);
Integer (__cdecl *_GetHeroXP) (HUNIT whichHero);
procedure (__cdecl *_SetHeroXP) (HUNIT whichHero, Integer newXpVal, LongBool showEyeCandy);
Integer (__cdecl *_GetHeroSkillPoints) (HUNIT whichHero);
LongBool (__cdecl *_UnitModifySkillPoints) (HUNIT whichHero, Integer skillPointDelta);
procedure (__cdecl *_AddHeroXP) (HUNIT whichHero, Integer xpToAdd, LongBool showEyeCandy);
procedure (__cdecl *_SetHeroLevel) (HUNIT whichHero, Integer level, LongBool showEyeCandy);
Integer (__cdecl *_GetHeroLevel) (HUNIT whichHero);
Integer (__cdecl *_GetUnitLevel) (HUNIT whichUnit);
TJassStringHandle (__cdecl *_GetHeroProperName) (HUNIT whichHero);
procedure (__cdecl *_SuspendHeroXP) (HUNIT whichHero, LongBool flag);
LongBool (__cdecl *_IsSuspendedXP) (HUNIT whichHero);
procedure (__cdecl *_SelectHeroSkill) (HUNIT whichHero, Integer abilcode);
Integer (__cdecl *_GetUnitAbilityLevel) (HUNIT whichUnit, Integer abilcode);
Integer (__cdecl *_DecUnitAbilityLevel) (HUNIT whichUnit, Integer abilcode);
Integer (__cdecl *_IncUnitAbilityLevel) (HUNIT whichUnit, Integer abilcode);
Integer (__cdecl *_SetUnitAbilityLevel) (HUNIT whichUnit, Integer abilcode, Integer level);
LongBool (__cdecl *_ReviveHero) (HUNIT whichHero, PSingle x, PSingle y, LongBool doEyecandy);
LongBool (__cdecl *_ReviveHeroLoc) (HUNIT whichHero, HLOCATION loc, LongBool doEyecandy);
procedure (__cdecl *_SetUnitExploded) (HUNIT whichUnit, LongBool exploded);
procedure (__cdecl *_SetUnitInvulnerable) (HUNIT whichUnit, LongBool flag);
procedure (__cdecl *_PauseUnit) (HUNIT whichUnit, LongBool flag);
LongBool (__cdecl *_IsUnitPaused) (HUNIT whichHero);
procedure (__cdecl *_SetUnitPathing) (HUNIT whichUnit, LongBool flag);
procedure (__cdecl *_ClearSelection) ();
procedure (__cdecl *_SelectUnit) (HUNIT whichUnit, LongBool flag);
Integer (__cdecl *_GetUnitPointValue) (HUNIT whichUnit);
Integer (__cdecl *_GetUnitPointValueByType) (Integer unitType);
procedure (__cdecl *_SetUnitPointValueByType) (Integer unitType, Integer newPointValue);
LongBool (__cdecl *_UnitAddItem) (HUNIT whichUnit, HITEM whichItem);
HITEM (__cdecl *_UnitAddItemById) (HUNIT whichUnit, Integer itemId);
LongBool (__cdecl *_UnitAddItemToSlotById) (HUNIT whichUnit, Integer itemId, Integer itemSlot);
procedure (__cdecl *_UnitRemoveItem) (HUNIT whichUnit, HITEM whichItem);
HITEM (__cdecl *_UnitRemoveItemFromSlot) (HUNIT whichUnit, Integer itemSlot);
LongBool (__cdecl *_UnitHasItem) (HUNIT whichUnit, HITEM whichItem);
HITEM (__cdecl *_UnitItemInSlot) (HUNIT whichUnit, Integer itemSlot);
Integer (__cdecl *_UnitInventorySize) (HUNIT whichUnit);
LongBool (__cdecl *_UnitDropItemPoint) (HUNIT whichUnit, HITEM whichItem, PSingle x, PSingle y);
LongBool (__cdecl *_UnitDropItemSlot) (HUNIT whichUnit, HITEM whichItem, Integer slot);
LongBool (__cdecl *_UnitDropItemTarget) (HUNIT whichUnit, HITEM whichItem, HWIDGET target);
LongBool (__cdecl *_UnitUseItem) (HUNIT whichUnit, HITEM whichItem);
LongBool (__cdecl *_UnitUseItemPoint) (HUNIT whichUnit, HITEM whichItem, PSingle x, PSingle y);
LongBool (__cdecl *_UnitUseItemTarget) (HUNIT whichUnit, HITEM whichItem, HWIDGET target);
TSingle (__cdecl *_GetUnitX) (HUNIT whichUnit);
TSingle (__cdecl *_GetUnitY) (HUNIT whichUnit);
HLOCATION (__cdecl *_GetUnitLoc) (HUNIT whichUnit);
TSingle (__cdecl *_GetUnitFacing) (HUNIT whichUnit);
TSingle (__cdecl *_GetUnitMoveSpeed) (HUNIT whichUnit);
TSingle (__cdecl *_GetUnitDefaultMoveSpeed) (HUNIT whichUnit);
TSingle (__cdecl *_GetUnitState) (HUNIT whichUnit, HUNITSTATE whichUnitState);
HPLAYER (__cdecl *_GetOwningPlayer) (HUNIT whichUnit);
Integer (__cdecl *_GetUnitTypeId) (HUNIT whichUnit);
HRACE (__cdecl *_GetUnitRace) (HUNIT whichUnit);
TJassStringHandle (__cdecl *_GetUnitName) (HUNIT whichUnit);
Integer (__cdecl *_GetUnitFoodUsed) (HUNIT whichUnit);
Integer (__cdecl *_GetUnitFoodMade) (HUNIT whichUnit);
Integer (__cdecl *_GetFoodMade) (Integer unitId);
Integer (__cdecl *_GetFoodUsed) (Integer unitId);
procedure (__cdecl *_SetUnitUseFood) (HUNIT whichUnit, LongBool useFood);
HLOCATION (__cdecl *_GetUnitRallyPoint) (HUNIT whichUnit);
HUNIT (__cdecl *_GetUnitRallyUnit) (HUNIT whichUnit);
HDESTRUCTABLE (__cdecl *_GetUnitRallyDestructable) (HUNIT whichUnit);
LongBool (__cdecl *_IsUnitInGroup) (HUNIT whichUnit, HGROUP whichGroup);
LongBool (__cdecl *_IsUnitInForce) (HUNIT whichUnit, HFORCE whichForce);
LongBool (__cdecl *_IsUnitOwnedByPlayer) (HUNIT whichUnit, HPLAYER whichPlayer);
LongBool (__cdecl *_IsUnitAlly) (HUNIT whichUnit, HPLAYER whichPlayer);
LongBool (__cdecl *_IsUnitEnemy) (HUNIT whichUnit, HPLAYER whichPlayer);
LongBool (__cdecl *_IsUnitVisible) (HUNIT whichUnit, HPLAYER whichPlayer);
LongBool (__cdecl *_IsUnitDetected) (HUNIT whichUnit, HPLAYER whichPlayer);
LongBool (__cdecl *_IsUnitInvisible) (HUNIT whichUnit, HPLAYER whichPlayer);
LongBool (__cdecl *_IsUnitFogged) (HUNIT whichUnit, HPLAYER whichPlayer);
LongBool (__cdecl *_IsUnitMasked) (HUNIT whichUnit, HPLAYER whichPlayer);
LongBool (__cdecl *_IsUnitSelected) (HUNIT whichUnit, HPLAYER whichPlayer);
LongBool (__cdecl *_IsUnitRace) (HUNIT whichUnit, HRACE whichRace);
LongBool (__cdecl *_IsUnitType) (HUNIT whichUnit, HUNITTYPE whichUnitType);
LongBool (__cdecl *_IsUnit) (HUNIT whichUnit, HUNIT whichSpecifiedUnit);
LongBool (__cdecl *_IsUnitInRange) (HUNIT whichUnit, HUNIT otherUnit, PSingle distance);
LongBool (__cdecl *_IsUnitInRangeXY) (HUNIT whichUnit, PSingle x, PSingle y, PSingle distance);
LongBool (__cdecl *_IsUnitInRangeLoc) (HUNIT whichUnit, HLOCATION whichLocation, PSingle distance);
LongBool (__cdecl *_IsUnitHidden) (HUNIT whichUnit);
LongBool (__cdecl *_IsUnitIllusion) (HUNIT whichUnit);
LongBool (__cdecl *_IsUnitInTransport) (HUNIT whichUnit, HUNIT whichTransport);
LongBool (__cdecl *_IsUnitLoaded) (HUNIT whichUnit);
LongBool (__cdecl *_IsHeroUnitId) (Integer unitId);
LongBool (__cdecl *_IsUnitIdType) (Integer unitId, HUNITTYPE whichUnitType);
procedure (__cdecl *_UnitShareVision) (HUNIT whichUnit, HPLAYER whichPlayer, LongBool share);
procedure (__cdecl *_UnitSuspendDecay) (HUNIT whichUnit, LongBool suspend);
LongBool (__cdecl *_UnitAddType) (HUNIT whichUnit, HUNITTYPE whichUnitType);
LongBool (__cdecl *_UnitRemoveType) (HUNIT whichUnit, HUNITTYPE whichUnitType);
LongBool (__cdecl *_UnitAddAbility) (HUNIT whichUnit, Integer abilityId);
LongBool (__cdecl *_UnitRemoveAbility) (HUNIT whichUnit, Integer abilityId);
LongBool (__cdecl *_UnitMakeAbilityPermanent) (HUNIT whichUnit, LongBool permanent, Integer abilityId);
procedure (__cdecl *_UnitRemoveBuffs) (HUNIT whichUnit, LongBool removePositive, LongBool removeNegative);
procedure (__cdecl *_UnitRemoveBuffsEx) (HUNIT whichUnit, LongBool removePositive, LongBool removeNegative, LongBool magic, LongBool physical, LongBool timedLife, LongBool aura, LongBool autoDispel);
LongBool (__cdecl *_UnitHasBuffsEx) (HUNIT whichUnit, LongBool removePositive, LongBool removeNegative, LongBool magic, LongBool physical, LongBool timedLife, LongBool aura, LongBool autoDispel);
Integer (__cdecl *_UnitCountBuffsEx) (HUNIT whichUnit, LongBool removePositive, LongBool removeNegative, LongBool magic, LongBool physical, LongBool timedLife, LongBool aura, LongBool autoDispel);
procedure (__cdecl *_UnitAddSleep) (HUNIT whichUnit, LongBool add);
LongBool (__cdecl *_UnitCanSleep) (HUNIT whichUnit);
procedure (__cdecl *_UnitAddSleepPerm) (HUNIT whichUnit, LongBool add);
LongBool (__cdecl *_UnitCanSleepPerm) (HUNIT whichUnit);
LongBool (__cdecl *_UnitIsSleeping) (HUNIT whichUnit);
procedure (__cdecl *_UnitWakeUp) (HUNIT whichUnit);
procedure (__cdecl *_UnitApplyTimedLife) (HUNIT whichUnit, Integer buffId, PSingle duration);
LongBool (__cdecl *_UnitIgnoreAlarm) (HUNIT whichUnit, LongBool flag);
LongBool (__cdecl *_UnitIgnoreAlarmToggled) (HUNIT whichUnit);
procedure (__cdecl *_UnitResetCooldown) (HUNIT whichUnit);
procedure (__cdecl *_UnitSetConstructionProgress) (HUNIT whichUnit, Integer constructionPercentage);
procedure (__cdecl *_UnitSetUpgradeProgress) (HUNIT whichUnit, Integer upgradePercentage);
procedure (__cdecl *_UnitPauseTimedLife) (HUNIT whichUnit, LongBool flag);
procedure (__cdecl *_UnitSetUsesAltIcon) (HUNIT whichUnit, LongBool flag);
LongBool (__cdecl *_UnitDamagePoint) (HUNIT whichUnit, PSingle delay, PSingle radius, PSingle x, PSingle y, PSingle amount, LongBool attack, LongBool ranged, HATTACKTYPE attackType, HDAMAGETYPE damageType, HWEAPONTYPE weaponType);
LongBool (__cdecl *_UnitDamageTarget) (HUNIT whichUnit, HWIDGET target, PSingle amount, LongBool attack, LongBool ranged, HATTACKTYPE attackType, HDAMAGETYPE damageType, HWEAPONTYPE weaponType);
LongBool (__cdecl *_IssueImmediateOrder) (HUNIT whichUnit, PJassString order);
LongBool (__cdecl *_IssueImmediateOrderById) (HUNIT whichUnit, Integer order);
LongBool (__cdecl *_IssuePointOrder) (HUNIT whichUnit, PJassString order, PSingle x, PSingle y);
LongBool (__cdecl *_IssuePointOrderLoc) (HUNIT whichUnit, PJassString order, HLOCATION whichLocation);
LongBool (__cdecl *_IssuePointOrderById) (HUNIT whichUnit, Integer order, PSingle x, PSingle y);
LongBool (__cdecl *_IssuePointOrderByIdLoc) (HUNIT whichUnit, Integer order, HLOCATION whichLocation);
LongBool (__cdecl *_IssueTargetOrder) (HUNIT whichUnit, PJassString order, HWIDGET targetWidget);
LongBool (__cdecl *_IssueTargetOrderById) (HUNIT whichUnit, Integer order, HWIDGET targetWidget);
LongBool (__cdecl *_IssueInstantPointOrder) (HUNIT whichUnit, PJassString order, PSingle x, PSingle y, HWIDGET instantTargetWidget);
LongBool (__cdecl *_IssueInstantPointOrderById) (HUNIT whichUnit, Integer order, PSingle x, PSingle y, HWIDGET instantTargetWidget);
LongBool (__cdecl *_IssueInstantTargetOrder) (HUNIT whichUnit, PJassString order, HWIDGET targetWidget, HWIDGET instantTargetWidget);
LongBool (__cdecl *_IssueInstantTargetOrderById) (HUNIT whichUnit, Integer order, HWIDGET targetWidget, HWIDGET instantTargetWidget);
LongBool (__cdecl *_IssueBuildOrder) (HUNIT whichPeon, PJassString unitToBuild, PSingle x, PSingle y);
LongBool (__cdecl *_IssueBuildOrderById) (HUNIT whichPeon, Integer unitId, PSingle x, PSingle y);
LongBool (__cdecl *_IssueNeutralImmediateOrder) (HPLAYER forWhichPlayer, HUNIT neutralStructure, PJassString unitToBuild);
LongBool (__cdecl *_IssueNeutralImmediateOrderById) (HPLAYER forWhichPlayer, HUNIT neutralStructure, Integer unitId);
LongBool (__cdecl *_IssueNeutralPointOrder) (HPLAYER forWhichPlayer, HUNIT neutralStructure, PJassString unitToBuild, PSingle x, PSingle y);
LongBool (__cdecl *_IssueNeutralPointOrderById) (HPLAYER forWhichPlayer, HUNIT neutralStructure, Integer unitId, PSingle x, PSingle y);
LongBool (__cdecl *_IssueNeutralTargetOrder) (HPLAYER forWhichPlayer, HUNIT neutralStructure, PJassString unitToBuild, HWIDGET target);
LongBool (__cdecl *_IssueNeutralTargetOrderById) (HPLAYER forWhichPlayer, HUNIT neutralStructure, Integer unitId, HWIDGET target);
Integer (__cdecl *_GetUnitCurrentOrder) (HUNIT whichUnit);
procedure (__cdecl *_SetResourceAmount) (HUNIT whichUnit, Integer amount);
procedure (__cdecl *_AddResourceAmount) (HUNIT whichUnit, Integer amount);
Integer (__cdecl *_GetResourceAmount) (HUNIT whichUnit);
TSingle (__cdecl *_WaygateGetDestinationX) (HUNIT waygate);
TSingle (__cdecl *_WaygateGetDestinationY) (HUNIT waygate);
procedure (__cdecl *_WaygateSetDestination) (HUNIT waygate, PSingle x, PSingle y);
procedure (__cdecl *_WaygateActivate) (HUNIT waygate, LongBool activate);
LongBool (__cdecl *_WaygateIsActive) (HUNIT waygate);
procedure (__cdecl *_AddItemToAllStock) (Integer itemId, Integer currentStock, Integer stockMax);
procedure (__cdecl *_AddItemToStock) (HUNIT whichUnit, Integer itemId, Integer currentStock, Integer stockMax);
procedure (__cdecl *_AddUnitToAllStock) (Integer unitId, Integer currentStock, Integer stockMax);
procedure (__cdecl *_AddUnitToStock) (HUNIT whichUnit, Integer unitId, Integer currentStock, Integer stockMax);
procedure (__cdecl *_RemoveItemFromAllStock) (Integer itemId);
procedure (__cdecl *_RemoveItemFromStock) (HUNIT whichUnit, Integer itemId);
procedure (__cdecl *_RemoveUnitFromAllStock) (Integer unitId);
procedure (__cdecl *_RemoveUnitFromStock) (HUNIT whichUnit, Integer unitId);
procedure (__cdecl *_SetAllItemTypeSlots) (Integer slots);
procedure (__cdecl *_SetAllUnitTypeSlots) (Integer slots);
procedure (__cdecl *_SetItemTypeSlots) (HUNIT whichUnit, Integer slots);
procedure (__cdecl *_SetUnitTypeSlots) (HUNIT whichUnit, Integer slots);
Integer (__cdecl *_GetUnitUserData) (HUNIT whichUnit);
procedure (__cdecl *_SetUnitUserData) (HUNIT whichUnit, Integer data);
HPLAYER (__cdecl *_Player) (Integer number);
HPLAYER (__cdecl *_GetLocalPlayer) ();
LongBool (__cdecl *_IsPlayerAlly) (HPLAYER whichPlayer, HPLAYER otherPlayer);
LongBool (__cdecl *_IsPlayerEnemy) (HPLAYER whichPlayer, HPLAYER otherPlayer);
LongBool (__cdecl *_IsPlayerInForce) (HPLAYER whichPlayer, HFORCE whichForce);
LongBool (__cdecl *_IsPlayerObserver) (HPLAYER whichPlayer);
LongBool (__cdecl *_IsVisibleToPlayer) (PSingle x, PSingle y, HPLAYER whichPlayer);
LongBool (__cdecl *_IsLocationVisibleToPlayer) (HLOCATION whichLocation, HPLAYER whichPlayer);
LongBool (__cdecl *_IsFoggedToPlayer) (PSingle x, PSingle y, HPLAYER whichPlayer);
LongBool (__cdecl *_IsLocationFoggedToPlayer) (HLOCATION whichLocation, HPLAYER whichPlayer);
LongBool (__cdecl *_IsMaskedToPlayer) (PSingle x, PSingle y, HPLAYER whichPlayer);
LongBool (__cdecl *_IsLocationMaskedToPlayer) (HLOCATION whichLocation, HPLAYER whichPlayer);
HRACE (__cdecl *_GetPlayerRace) (HPLAYER whichPlayer);
Integer (__cdecl *_GetPlayerId) (HPLAYER whichPlayer);
Integer (__cdecl *_GetPlayerUnitCount) (HPLAYER whichPlayer, LongBool includeIncomplete);
Integer (__cdecl *_GetPlayerTypedUnitCount) (HPLAYER whichPlayer, PJassString unitName, LongBool includeIncomplete, LongBool includeUpgrades);
Integer (__cdecl *_GetPlayerStructureCount) (HPLAYER whichPlayer, LongBool includeIncomplete);
Integer (__cdecl *_GetPlayerState) (HPLAYER whichPlayer, HPLAYERSTATE whichPlayerState);
Integer (__cdecl *_GetPlayerScore) (HPLAYER whichPlayer, HPLAYERSCORE whichPlayerScore);
LongBool (__cdecl *_GetPlayerAlliance) (HPLAYER sourcePlayer, HPLAYER otherPlayer, HALLIANCETYPE whichAllianceSetting);
TSingle (__cdecl *_GetPlayerHandicap) (HPLAYER whichPlayer);
TSingle (__cdecl *_GetPlayerHandicapXP) (HPLAYER whichPlayer);
procedure (__cdecl *_SetPlayerHandicap) (HPLAYER whichPlayer, PSingle handicap);
procedure (__cdecl *_SetPlayerHandicapXP) (HPLAYER whichPlayer, PSingle handicap);
procedure (__cdecl *_SetPlayerTechMaxAllowed) (HPLAYER whichPlayer, Integer techid, Integer maximum);
Integer (__cdecl *_GetPlayerTechMaxAllowed) (HPLAYER whichPlayer, Integer techid);
procedure (__cdecl *_AddPlayerTechResearched) (HPLAYER whichPlayer, Integer techid, Integer levels);
procedure (__cdecl *_SetPlayerTechResearched) (HPLAYER whichPlayer, Integer techid, Integer setToLevel);
LongBool (__cdecl *_GetPlayerTechResearched) (HPLAYER whichPlayer, Integer techid, LongBool specificonly);
Integer (__cdecl *_GetPlayerTechCount) (HPLAYER whichPlayer, Integer techid, LongBool specificonly);
procedure (__cdecl *_SetPlayerUnitsOwner) (HPLAYER whichPlayer, Integer newOwner);
procedure (__cdecl *_CripplePlayer) (HPLAYER whichPlayer, HFORCE toWhichPlayers, LongBool flag);
procedure (__cdecl *_SetPlayerAbilityAvailable) (HPLAYER whichPlayer, Integer abilid, LongBool avail);
procedure (__cdecl *_SetPlayerState) (HPLAYER whichPlayer, HPLAYERSTATE whichPlayerState, Integer value);
procedure (__cdecl *_RemovePlayer) (HPLAYER whichPlayer, HPLAYERGAMERESULT gameResult);
procedure (__cdecl *_CachePlayerHeroData) (HPLAYER whichPlayer);
procedure (__cdecl *_SetFogStateRect) (HPLAYER forWhichPlayer, HFOGSTATE whichState, HRECT where, LongBool useSharedVision);
procedure (__cdecl *_SetFogStateRadius) (HPLAYER forWhichPlayer, HFOGSTATE whichState, PSingle centerx, PSingle centerY, PSingle radius, LongBool useSharedVision);
procedure (__cdecl *_SetFogStateRadiusLoc) (HPLAYER forWhichPlayer, HFOGSTATE whichState, HLOCATION center, PSingle radius, LongBool useSharedVision);
procedure (__cdecl *_FogMaskEnable) (LongBool enable);
LongBool (__cdecl *_IsFogMaskEnabled) ();
procedure (__cdecl *_FogEnable) (LongBool enable);
LongBool (__cdecl *_IsFogEnabled) ();
HFOGMODIFIER (__cdecl *_CreateFogModifierRect) (HPLAYER forWhichPlayer, HFOGSTATE whichState, HRECT where, LongBool useSharedVision, LongBool afterUnits);
HFOGMODIFIER (__cdecl *_CreateFogModifierRadius) (HPLAYER forWhichPlayer, HFOGSTATE whichState, PSingle centerx, PSingle centerY, PSingle radius, LongBool useSharedVision, LongBool afterUnits);
HFOGMODIFIER (__cdecl *_CreateFogModifierRadiusLoc) (HPLAYER forWhichPlayer, HFOGSTATE whichState, HLOCATION center, PSingle radius, LongBool useSharedVision, LongBool afterUnits);
procedure (__cdecl *_DestroyFogModifier) (HFOGMODIFIER whichFogModifier);
procedure (__cdecl *_FogModifierStart) (HFOGMODIFIER whichFogModifier);
procedure (__cdecl *_FogModifierStop) (HFOGMODIFIER whichFogModifier);
HVERSION (__cdecl *_VersionGet) ();
LongBool (__cdecl *_VersionCompatible) (HVERSION whichVersion);
LongBool (__cdecl *_VersionSupported) (HVERSION whichVersion);
procedure (__cdecl *_EndGame) (LongBool doScoreScreen);
procedure (__cdecl *_ChangeLevel) (PJassString newLevel, LongBool doScoreScreen);
procedure (__cdecl *_RestartGame) (LongBool doScoreScreen);
procedure (__cdecl *_ReloadGame) ();
procedure (__cdecl *_SetCampaignMenuRace) (HRACE r);
procedure (__cdecl *_SetCampaignMenuRaceEx) (Integer campaignIndex);
procedure (__cdecl *_ForceCampaignSelectScreen) ();
procedure (__cdecl *_LoadGame) (PJassString saveFileName, LongBool doScoreScreen);
procedure (__cdecl *_SaveGame) (PJassString saveFileName);
LongBool (__cdecl *_RenameSaveDirectory) (PJassString sourceDirName, PJassString destDirName);
LongBool (__cdecl *_RemoveSaveDirectory) (PJassString sourceDirName);
LongBool (__cdecl *_CopySaveGame) (PJassString sourceSaveName, PJassString destSaveName);
LongBool (__cdecl *_SaveGameExists) (PJassString saveName);
procedure (__cdecl *_SyncSelections) ();
procedure (__cdecl *_SetFloatGameState) (HFGAMESTATE whichFloatGameState, PSingle value);
TSingle (__cdecl *_GetFloatGameState) (HFGAMESTATE whichFloatGameState);
procedure (__cdecl *_SetIntegerGameState) (HIGAMESTATE whichIntegerGameState, Integer value);
Integer (__cdecl *_GetIntegerGameState) (HIGAMESTATE whichIntegerGameState);
procedure (__cdecl *_SetTutorialCleared) (LongBool cleared);
procedure (__cdecl *_SetMissionAvailable) (Integer campaignNumber, Integer missionNumber, LongBool available);
procedure (__cdecl *_SetCampaignAvailable) (Integer campaignNumber, LongBool available);
procedure (__cdecl *_SetOpCinematicAvailable) (Integer campaignNumber, LongBool available);
procedure (__cdecl *_SetEdCinematicAvailable) (Integer campaignNumber, LongBool available);
HGAMEDIFFICULTY (__cdecl *_GetDefaultDifficulty) ();
procedure (__cdecl *_SetDefaultDifficulty) (HGAMEDIFFICULTY g);
procedure (__cdecl *_SetCustomCampaignButtonVisible) (Integer whichButton, LongBool visible);
LongBool (__cdecl *_GetCustomCampaignButtonVisible) (Integer whichButton);
procedure (__cdecl *_DoNotSaveReplay) ();
HDIALOG (__cdecl *_DialogCreate) ();
procedure (__cdecl *_DialogDestroy) (HDIALOG whichDialog);
procedure (__cdecl *_DialogClear) (HDIALOG whichDialog);
procedure (__cdecl *_DialogSetMessage) (HDIALOG whichDialog, PJassString messageText);
HBUTTON (__cdecl *_DialogAddButton) (HDIALOG whichDialog, PJassString buttonText, Integer hotkey);
HBUTTON (__cdecl *_DialogAddQuitButton) (HDIALOG whichDialog, LongBool doScoreScreen, PJassString buttonText, Integer hotkey);
procedure (__cdecl *_DialogDisplay) (HPLAYER whichPlayer, HDIALOG whichDialog, LongBool flag);
LongBool (__cdecl *_ReloadGameCachesFromDisk) ();
HGAMECACHE (__cdecl *_InitGameCache) (PJassString campaignFile);
LongBool (__cdecl *_SaveGameCache) (HGAMECACHE whichCache);
procedure (__cdecl *_StoreInteger) (HGAMECACHE cache, PJassString missionKey, PJassString key, Integer value);
procedure (__cdecl *_StoreReal) (HGAMECACHE cache, PJassString missionKey, PJassString key, PSingle value);
procedure (__cdecl *_StoreBoolean) (HGAMECACHE cache, PJassString missionKey, PJassString key, LongBool value);
LongBool (__cdecl *_StoreUnit) (HGAMECACHE cache, PJassString missionKey, PJassString key, HUNIT whichUnit);
LongBool (__cdecl *_StoreString) (HGAMECACHE cache, PJassString missionKey, PJassString key, PJassString value);
procedure (__cdecl *_SyncStoredInteger) (HGAMECACHE cache, PJassString missionKey, PJassString key);
procedure (__cdecl *_SyncStoredReal) (HGAMECACHE cache, PJassString missionKey, PJassString key);
procedure (__cdecl *_SyncStoredBoolean) (HGAMECACHE cache, PJassString missionKey, PJassString key);
procedure (__cdecl *_SyncStoredUnit) (HGAMECACHE cache, PJassString missionKey, PJassString key);
procedure (__cdecl *_SyncStoredString) (HGAMECACHE cache, PJassString missionKey, PJassString key);
LongBool (__cdecl *_HaveStoredInteger) (HGAMECACHE cache, PJassString missionKey, PJassString key);
LongBool (__cdecl *_HaveStoredReal) (HGAMECACHE cache, PJassString missionKey, PJassString key);
LongBool (__cdecl *_HaveStoredBoolean) (HGAMECACHE cache, PJassString missionKey, PJassString key);
LongBool (__cdecl *_HaveStoredUnit) (HGAMECACHE cache, PJassString missionKey, PJassString key);
LongBool (__cdecl *_HaveStoredString) (HGAMECACHE cache, PJassString missionKey, PJassString key);
procedure (__cdecl *_FlushGameCache) (HGAMECACHE cache);
procedure (__cdecl *_FlushStoredMission) (HGAMECACHE cache, PJassString missionKey);
procedure (__cdecl *_FlushStoredInteger) (HGAMECACHE cache, PJassString missionKey, PJassString key);
procedure (__cdecl *_FlushStoredReal) (HGAMECACHE cache, PJassString missionKey, PJassString key);
procedure (__cdecl *_FlushStoredBoolean) (HGAMECACHE cache, PJassString missionKey, PJassString key);
procedure (__cdecl *_FlushStoredUnit) (HGAMECACHE cache, PJassString missionKey, PJassString key);
procedure (__cdecl *_FlushStoredString) (HGAMECACHE cache, PJassString missionKey, PJassString key);
Integer (__cdecl *_GetStoredInteger) (HGAMECACHE cache, PJassString missionKey, PJassString key);
TSingle (__cdecl *_GetStoredReal) (HGAMECACHE cache, PJassString missionKey, PJassString key);
LongBool (__cdecl *_GetStoredBoolean) (HGAMECACHE cache, PJassString missionKey, PJassString key);
TJassStringHandle (__cdecl *_GetStoredString) (HGAMECACHE cache, PJassString missionKey, PJassString key);
HUNIT (__cdecl *_RestoreUnit) (HGAMECACHE cache, PJassString missionKey, PJassString key, HPLAYER forWhichPlayer, PSingle x, PSingle y, PSingle facing);
HHASHTABLE (__cdecl *_InitHashtable) ();
procedure (__cdecl *_SaveInteger) (HHASHTABLE table, Integer parentKey, Integer childKey, Integer value);
procedure (__cdecl *_SaveReal) (HHASHTABLE table, Integer parentKey, Integer childKey, PSingle value);
procedure (__cdecl *_SaveBoolean) (HHASHTABLE table, Integer parentKey, Integer childKey, LongBool value);
LongBool (__cdecl *_SaveStr) (HHASHTABLE table, Integer parentKey, Integer childKey, PJassString value);
LongBool (__cdecl *_SavePlayerHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HPLAYER whichPlayer);
LongBool (__cdecl *_SaveWidgetHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HWIDGET whichWidget);
LongBool (__cdecl *_SaveDestructableHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HDESTRUCTABLE whichDestructable);
LongBool (__cdecl *_SaveItemHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HITEM whichItem);
LongBool (__cdecl *_SaveUnitHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HUNIT whichUnit);
LongBool (__cdecl *_SaveAbilityHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HABILITY whichAbility);
LongBool (__cdecl *_SaveTimerHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HTIMER whichTimer);
LongBool (__cdecl *_SaveTriggerHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HTRIGGER whichTrigger);
LongBool (__cdecl *_SaveTriggerConditionHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HTRIGGERCONDITION whichTriggercondition);
LongBool (__cdecl *_SaveTriggerActionHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HTRIGGERACTION whichTriggeraction);
LongBool (__cdecl *_SaveTriggerEventHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HEVENT whichEvent);
LongBool (__cdecl *_SaveForceHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HFORCE whichForce);
LongBool (__cdecl *_SaveGroupHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HGROUP whichGroup);
LongBool (__cdecl *_SaveLocationHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HLOCATION whichLocation);
LongBool (__cdecl *_SaveRectHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HRECT whichRect);
LongBool (__cdecl *_SaveBooleanExprHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HBOOLEXPR whichBoolexpr);
LongBool (__cdecl *_SaveSoundHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HSOUND whichSound);
LongBool (__cdecl *_SaveEffectHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HEFFECT whichEffect);
LongBool (__cdecl *_SaveUnitPoolHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HUNITPOOL whichUnitpool);
LongBool (__cdecl *_SaveItemPoolHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HITEMPOOL whichItempool);
LongBool (__cdecl *_SaveQuestHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HQUEST whichQuest);
LongBool (__cdecl *_SaveQuestItemHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HQUESTITEM whichQuestitem);
LongBool (__cdecl *_SaveDefeatConditionHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HDEFEATCONDITION whichDefeatcondition);
LongBool (__cdecl *_SaveTimerDialogHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HTIMERDIALOG whichTimerdialog);
LongBool (__cdecl *_SaveLeaderboardHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HLEADERBOARD whichLeaderboard);
LongBool (__cdecl *_SaveMultiboardHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HMULTIBOARD whichMultiboard);
LongBool (__cdecl *_SaveMultiboardItemHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HMULTIBOARDITEM whichMultiboarditem);
LongBool (__cdecl *_SaveTrackableHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HTRACKABLE whichTrackable);
LongBool (__cdecl *_SaveDialogHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HDIALOG whichDialog);
LongBool (__cdecl *_SaveButtonHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HBUTTON whichButton);
LongBool (__cdecl *_SaveTextTagHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HTEXTTAG whichTexttag);
LongBool (__cdecl *_SaveLightningHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HLIGHTNING whichLightning);
LongBool (__cdecl *_SaveImageHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HIMAGE whichImage);
LongBool (__cdecl *_SaveUbersplatHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HUBERSPLAT whichUbersplat);
LongBool (__cdecl *_SaveRegionHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HREGION whichRegion);
LongBool (__cdecl *_SaveFogStateHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HFOGSTATE whichFogState);
LongBool (__cdecl *_SaveFogModifierHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HFOGMODIFIER whichFogModifier);
LongBool (__cdecl *_SaveAgentHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HAGENT whichAgent);
LongBool (__cdecl *_SaveHashtableHandle) (HHASHTABLE table, Integer parentKey, Integer childKey, HHASHTABLE whichHashtable);
Integer (__cdecl *_LoadInteger) (HHASHTABLE table, Integer parentKey, Integer childKey);
TSingle (__cdecl *_LoadReal) (HHASHTABLE table, Integer parentKey, Integer childKey);
LongBool (__cdecl *_LoadBoolean) (HHASHTABLE table, Integer parentKey, Integer childKey);
TJassStringHandle (__cdecl *_LoadStr) (HHASHTABLE table, Integer parentKey, Integer childKey);
HPLAYER (__cdecl *_LoadPlayerHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HWIDGET (__cdecl *_LoadWidgetHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HDESTRUCTABLE (__cdecl *_LoadDestructableHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HITEM (__cdecl *_LoadItemHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HUNIT (__cdecl *_LoadUnitHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HABILITY (__cdecl *_LoadAbilityHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HTIMER (__cdecl *_LoadTimerHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HTRIGGER (__cdecl *_LoadTriggerHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HTRIGGERCONDITION (__cdecl *_LoadTriggerConditionHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HTRIGGERACTION (__cdecl *_LoadTriggerActionHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HEVENT (__cdecl *_LoadTriggerEventHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HFORCE (__cdecl *_LoadForceHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HGROUP (__cdecl *_LoadGroupHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HLOCATION (__cdecl *_LoadLocationHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HRECT (__cdecl *_LoadRectHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HBOOLEXPR (__cdecl *_LoadBooleanExprHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HSOUND (__cdecl *_LoadSoundHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HEFFECT (__cdecl *_LoadEffectHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HUNITPOOL (__cdecl *_LoadUnitPoolHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HITEMPOOL (__cdecl *_LoadItemPoolHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HQUEST (__cdecl *_LoadQuestHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HQUESTITEM (__cdecl *_LoadQuestItemHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HDEFEATCONDITION (__cdecl *_LoadDefeatConditionHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HTIMERDIALOG (__cdecl *_LoadTimerDialogHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HLEADERBOARD (__cdecl *_LoadLeaderboardHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HMULTIBOARD (__cdecl *_LoadMultiboardHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HMULTIBOARDITEM (__cdecl *_LoadMultiboardItemHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HTRACKABLE (__cdecl *_LoadTrackableHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HDIALOG (__cdecl *_LoadDialogHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HBUTTON (__cdecl *_LoadButtonHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HTEXTTAG (__cdecl *_LoadTextTagHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HLIGHTNING (__cdecl *_LoadLightningHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HIMAGE (__cdecl *_LoadImageHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HUBERSPLAT (__cdecl *_LoadUbersplatHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HREGION (__cdecl *_LoadRegionHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HFOGSTATE (__cdecl *_LoadFogStateHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HFOGMODIFIER (__cdecl *_LoadFogModifierHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
HHASHTABLE (__cdecl *_LoadHashtableHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
LongBool (__cdecl *_HaveSavedInteger) (HHASHTABLE table, Integer parentKey, Integer childKey);
LongBool (__cdecl *_HaveSavedReal) (HHASHTABLE table, Integer parentKey, Integer childKey);
LongBool (__cdecl *_HaveSavedBoolean) (HHASHTABLE table, Integer parentKey, Integer childKey);
LongBool (__cdecl *_HaveSavedString) (HHASHTABLE table, Integer parentKey, Integer childKey);
LongBool (__cdecl *_HaveSavedHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
procedure (__cdecl *_RemoveSavedInteger) (HHASHTABLE table, Integer parentKey, Integer childKey);
procedure (__cdecl *_RemoveSavedReal) (HHASHTABLE table, Integer parentKey, Integer childKey);
procedure (__cdecl *_RemoveSavedBoolean) (HHASHTABLE table, Integer parentKey, Integer childKey);
procedure (__cdecl *_RemoveSavedString) (HHASHTABLE table, Integer parentKey, Integer childKey);
procedure (__cdecl *_RemoveSavedHandle) (HHASHTABLE table, Integer parentKey, Integer childKey);
procedure (__cdecl *_FlushParentHashtable) (HHASHTABLE table);
procedure (__cdecl *_FlushChildHashtable) (HHASHTABLE table, Integer parentKey);
Integer (__cdecl *_GetRandomInt) (Integer lowBound, Integer highBound);
TSingle (__cdecl *_GetRandomReal) (PSingle lowBound, PSingle highBound);
HUNITPOOL (__cdecl *_CreateUnitPool) ();
procedure (__cdecl *_DestroyUnitPool) (HUNITPOOL whichPool);
procedure (__cdecl *_UnitPoolAddUnitType) (HUNITPOOL whichPool, Integer unitId, PSingle weight);
procedure (__cdecl *_UnitPoolRemoveUnitType) (HUNITPOOL whichPool, Integer unitId);
HUNIT (__cdecl *_PlaceRandomUnit) (HUNITPOOL whichPool, HPLAYER forWhichPlayer, PSingle x, PSingle y, PSingle facing);
HITEMPOOL (__cdecl *_CreateItemPool) ();
procedure (__cdecl *_DestroyItemPool) (HITEMPOOL whichItemPool);
procedure (__cdecl *_ItemPoolAddItemType) (HITEMPOOL whichItemPool, Integer itemId, PSingle weight);
procedure (__cdecl *_ItemPoolRemoveItemType) (HITEMPOOL whichItemPool, Integer itemId);
HITEM (__cdecl *_PlaceRandomItem) (HITEMPOOL whichItemPool, PSingle x, PSingle y);
Integer (__cdecl *_ChooseRandomCreep) (Integer level);
Integer (__cdecl *_ChooseRandomNPBuilding) ();
Integer (__cdecl *_ChooseRandomItem) (Integer level);
Integer (__cdecl *_ChooseRandomItemEx) (HITEMTYPE whichType, Integer level);
procedure (__cdecl *_SetRandomSeed) (Integer seed);
procedure (__cdecl *_SetTerrainFog) (PSingle a, PSingle b, PSingle c, PSingle d, PSingle e);
procedure (__cdecl *_ResetTerrainFog) ();
procedure (__cdecl *_SetUnitFog) (PSingle a, PSingle b, PSingle c, PSingle d, PSingle e);
procedure (__cdecl *_SetTerrainFogEx) (Integer style, PSingle zstart, PSingle zend, PSingle density, PSingle red, PSingle green, PSingle blue);
procedure (__cdecl *_DisplayTextToPlayer) (HPLAYER toPlayer, PSingle x, PSingle y, PJassString message);
procedure (__cdecl *_DisplayTimedTextToPlayer) (HPLAYER toPlayer, PSingle x, PSingle y, PSingle duration, PJassString message);
procedure (__cdecl *_DisplayTimedTextFromPlayer) (HPLAYER toPlayer, PSingle x, PSingle y, PSingle duration, PJassString message);
procedure (__cdecl *_ClearTextMessages) ();
procedure (__cdecl *_SetDayNightModels) (PJassString terrainDNCFile, PJassString unitDNCFile);
procedure (__cdecl *_SetSkyModel) (PJassString skyModelFile);
procedure (__cdecl *_EnableUserControl) (LongBool b);
procedure (__cdecl *_EnableUserUI) (LongBool b);
procedure (__cdecl *_SuspendTimeOfDay) (LongBool b);
procedure (__cdecl *_SetTimeOfDayScale) (PSingle r);
TSingle (__cdecl *_GetTimeOfDayScale) ();
procedure (__cdecl *_ShowInterface) (LongBool flag, PSingle fadeDuration);
procedure (__cdecl *_PauseGame) (LongBool flag);
procedure (__cdecl *_UnitAddIndicator) (HUNIT whichUnit, Integer red, Integer green, Integer blue, Integer alpha);
procedure (__cdecl *_AddIndicator) (HWIDGET whichWidget, Integer red, Integer green, Integer blue, Integer alpha);
procedure (__cdecl *_PingMinimap) (PSingle x, PSingle y, PSingle duration);
procedure (__cdecl *_PingMinimapEx) (PSingle x, PSingle y, PSingle duration, Integer red, Integer green, Integer blue, LongBool extraEffects);
procedure (__cdecl *_EnableOcclusion) (LongBool flag);
procedure (__cdecl *_SetIntroShotText) (PJassString introText);
procedure (__cdecl *_SetIntroShotModel) (PJassString introModelPath);
procedure (__cdecl *_EnableWorldFogBoundary) (LongBool b);
procedure (__cdecl *_PlayModelCinematic) (PJassString modelName);
procedure (__cdecl *_PlayCinematic) (PJassString movieName);
procedure (__cdecl *_ForceUIKey) (PJassString key);
procedure (__cdecl *_ForceUICancel) ();
procedure (__cdecl *_DisplayLoadDialog) ();
procedure (__cdecl *_SetAltMinimapIcon) (PJassString iconPath);
procedure (__cdecl *_DisableRestartMission) (LongBool flag);
HTEXTTAG (__cdecl *_CreateTextTag) ();
procedure (__cdecl *_DestroyTextTag) (HTEXTTAG t);
procedure (__cdecl *_SetTextTagText) (HTEXTTAG t, PJassString s, PSingle height);
procedure (__cdecl *_SetTextTagPos) (HTEXTTAG t, PSingle x, PSingle y, PSingle heightOffset);
procedure (__cdecl *_SetTextTagPosUnit) (HTEXTTAG t, HUNIT whichUnit, PSingle heightOffset);
procedure (__cdecl *_SetTextTagColor) (HTEXTTAG t, Integer red, Integer green, Integer blue, Integer alpha);
procedure (__cdecl *_SetTextTagVelocity) (HTEXTTAG t, PSingle xvel, PSingle yvel);
procedure (__cdecl *_SetTextTagVisibility) (HTEXTTAG t, LongBool flag);
procedure (__cdecl *_SetTextTagSuspended) (HTEXTTAG t, LongBool flag);
procedure (__cdecl *_SetTextTagPermanent) (HTEXTTAG t, LongBool flag);
procedure (__cdecl *_SetTextTagAge) (HTEXTTAG t, PSingle age);
procedure (__cdecl *_SetTextTagLifespan) (HTEXTTAG t, PSingle lifespan);
procedure (__cdecl *_SetTextTagFadepoint) (HTEXTTAG t, PSingle fadepoint);
procedure (__cdecl *_SetReservedLocalHeroButtons) (Integer reserved);
Integer (__cdecl *_GetAllyColorFilterState) ();
procedure (__cdecl *_SetAllyColorFilterState) (Integer state);
LongBool (__cdecl *_GetCreepCampFilterState) ();
procedure (__cdecl *_SetCreepCampFilterState) (LongBool state);
procedure (__cdecl *_EnableMinimapFilterButtons) (LongBool enableAlly, LongBool enableCreep);
procedure (__cdecl *_EnableDragSelect) (LongBool state, LongBool ui);
procedure (__cdecl *_EnablePreSelect) (LongBool state, LongBool ui);
procedure (__cdecl *_EnableSelect) (LongBool state, LongBool ui);
HTRACKABLE (__cdecl *_CreateTrackable) (PJassString trackableModelPath, PSingle x, PSingle y, PSingle facing);
HQUEST (__cdecl *_CreateQuest) ();
procedure (__cdecl *_DestroyQuest) (HQUEST whichQuest);
procedure (__cdecl *_QuestSetTitle) (HQUEST whichQuest, PJassString title);
procedure (__cdecl *_QuestSetDescription) (HQUEST whichQuest, PJassString description);
procedure (__cdecl *_QuestSetIconPath) (HQUEST whichQuest, PJassString iconPath);
procedure (__cdecl *_QuestSetRequired) (HQUEST whichQuest, LongBool required);
procedure (__cdecl *_QuestSetCompleted) (HQUEST whichQuest, LongBool completed);
procedure (__cdecl *_QuestSetDiscovered) (HQUEST whichQuest, LongBool discovered);
procedure (__cdecl *_QuestSetFailed) (HQUEST whichQuest, LongBool failed);
procedure (__cdecl *_QuestSetEnabled) (HQUEST whichQuest, LongBool enabled);
LongBool (__cdecl *_IsQuestRequired) (HQUEST whichQuest);
LongBool (__cdecl *_IsQuestCompleted) (HQUEST whichQuest);
LongBool (__cdecl *_IsQuestDiscovered) (HQUEST whichQuest);
LongBool (__cdecl *_IsQuestFailed) (HQUEST whichQuest);
LongBool (__cdecl *_IsQuestEnabled) (HQUEST whichQuest);
HQUESTITEM (__cdecl *_QuestCreateItem) (HQUEST whichQuest);
procedure (__cdecl *_QuestItemSetDescription) (HQUESTITEM whichQuestItem, PJassString description);
procedure (__cdecl *_QuestItemSetCompleted) (HQUESTITEM whichQuestItem, LongBool completed);
LongBool (__cdecl *_IsQuestItemCompleted) (HQUESTITEM whichQuestItem);
HDEFEATCONDITION (__cdecl *_CreateDefeatCondition) ();
procedure (__cdecl *_DestroyDefeatCondition) (HDEFEATCONDITION whichCondition);
procedure (__cdecl *_DefeatConditionSetDescription) (HDEFEATCONDITION whichCondition, PJassString description);
procedure (__cdecl *_FlashQuestDialogButton) ();
procedure (__cdecl *_ForceQuestDialogUpdate) ();
HTIMERDIALOG (__cdecl *_CreateTimerDialog) (HTIMER t);
procedure (__cdecl *_DestroyTimerDialog) (HTIMERDIALOG whichDialog);
procedure (__cdecl *_TimerDialogSetTitle) (HTIMERDIALOG whichDialog, PJassString title);
procedure (__cdecl *_TimerDialogSetTitleColor) (HTIMERDIALOG whichDialog, Integer red, Integer green, Integer blue, Integer alpha);
procedure (__cdecl *_TimerDialogSetTimeColor) (HTIMERDIALOG whichDialog, Integer red, Integer green, Integer blue, Integer alpha);
procedure (__cdecl *_TimerDialogSetSpeed) (HTIMERDIALOG whichDialog, PSingle speedMultFactor);
procedure (__cdecl *_TimerDialogDisplay) (HTIMERDIALOG whichDialog, LongBool display);
LongBool (__cdecl *_IsTimerDialogDisplayed) (HTIMERDIALOG whichDialog);
procedure (__cdecl *_TimerDialogSetRealTimeRemaining) (HTIMERDIALOG whichDialog, PSingle timeRemaining);
HLEADERBOARD (__cdecl *_CreateLeaderboard) ();
procedure (__cdecl *_DestroyLeaderboard) (HLEADERBOARD lb);
procedure (__cdecl *_LeaderboardDisplay) (HLEADERBOARD lb, LongBool show);
LongBool (__cdecl *_IsLeaderboardDisplayed) (HLEADERBOARD lb);
Integer (__cdecl *_LeaderboardGetItemCount) (HLEADERBOARD lb);
procedure (__cdecl *_LeaderboardSetSizeByItemCount) (HLEADERBOARD lb, Integer count);
procedure (__cdecl *_LeaderboardAddItem) (HLEADERBOARD lb, PJassString label_, Integer value, HPLAYER p);
procedure (__cdecl *_LeaderboardRemoveItem) (HLEADERBOARD lb, Integer index);
procedure (__cdecl *_LeaderboardRemovePlayerItem) (HLEADERBOARD lb, HPLAYER p);
procedure (__cdecl *_LeaderboardClear) (HLEADERBOARD lb);
procedure (__cdecl *_LeaderboardSortItemsByValue) (HLEADERBOARD lb, LongBool ascending);
procedure (__cdecl *_LeaderboardSortItemsByPlayer) (HLEADERBOARD lb, LongBool ascending);
procedure (__cdecl *_LeaderboardSortItemsByLabel) (HLEADERBOARD lb, LongBool ascending);
LongBool (__cdecl *_LeaderboardHasPlayerItem) (HLEADERBOARD lb, HPLAYER p);
Integer (__cdecl *_LeaderboardGetPlayerIndex) (HLEADERBOARD lb, HPLAYER p);
procedure (__cdecl *_LeaderboardSetLabel) (HLEADERBOARD lb, PJassString label_);
TJassStringHandle (__cdecl *_LeaderboardGetLabelText) (HLEADERBOARD lb);
procedure (__cdecl *_PlayerSetLeaderboard) (HPLAYER toPlayer, HLEADERBOARD lb);
HLEADERBOARD (__cdecl *_PlayerGetLeaderboard) (HPLAYER toPlayer);
procedure (__cdecl *_LeaderboardSetLabelColor) (HLEADERBOARD lb, Integer red, Integer green, Integer blue, Integer alpha);
procedure (__cdecl *_LeaderboardSetValueColor) (HLEADERBOARD lb, Integer red, Integer green, Integer blue, Integer alpha);
procedure (__cdecl *_LeaderboardSetStyle) (HLEADERBOARD lb, LongBool showLabel, LongBool showNames, LongBool showValues, LongBool showIcons);
procedure (__cdecl *_LeaderboardSetItemValue) (HLEADERBOARD lb, Integer whichItem, Integer val);
procedure (__cdecl *_LeaderboardSetItemLabel) (HLEADERBOARD lb, Integer whichItem, PJassString val);
procedure (__cdecl *_LeaderboardSetItemStyle) (HLEADERBOARD lb, Integer whichItem, LongBool showLabel, LongBool showValue, LongBool showIcon);
procedure (__cdecl *_LeaderboardSetItemLabelColor) (HLEADERBOARD lb, Integer whichItem, Integer red, Integer green, Integer blue, Integer alpha);
procedure (__cdecl *_LeaderboardSetItemValueColor) (HLEADERBOARD lb, Integer whichItem, Integer red, Integer green, Integer blue, Integer alpha);
HMULTIBOARD (__cdecl *_CreateMultiboard) ();
procedure (__cdecl *_DestroyMultiboard) (HMULTIBOARD lb);
procedure (__cdecl *_MultiboardDisplay) (HMULTIBOARD lb, LongBool show);
LongBool (__cdecl *_IsMultiboardDisplayed) (HMULTIBOARD lb);
procedure (__cdecl *_MultiboardMinimize) (HMULTIBOARD lb, LongBool minimize);
LongBool (__cdecl *_IsMultiboardMinimized) (HMULTIBOARD lb);
procedure (__cdecl *_MultiboardClear) (HMULTIBOARD lb);
procedure (__cdecl *_MultiboardSetTitleText) (HMULTIBOARD lb, PJassString label_);
TJassStringHandle (__cdecl *_MultiboardGetTitleText) (HMULTIBOARD lb);
procedure (__cdecl *_MultiboardSetTitleTextColor) (HMULTIBOARD lb, Integer red, Integer green, Integer blue, Integer alpha);
Integer (__cdecl *_MultiboardGetRowCount) (HMULTIBOARD lb);
Integer (__cdecl *_MultiboardGetColumnCount) (HMULTIBOARD lb);
procedure (__cdecl *_MultiboardSetColumnCount) (HMULTIBOARD lb, Integer count);
procedure (__cdecl *_MultiboardSetRowCount) (HMULTIBOARD lb, Integer count);
procedure (__cdecl *_MultiboardSetItemsStyle) (HMULTIBOARD lb, LongBool showValues, LongBool showIcons);
procedure (__cdecl *_MultiboardSetItemsValue) (HMULTIBOARD lb, PJassString value);
procedure (__cdecl *_MultiboardSetItemsValueColor) (HMULTIBOARD lb, Integer red, Integer green, Integer blue, Integer alpha);
procedure (__cdecl *_MultiboardSetItemsWidth) (HMULTIBOARD lb, PSingle width);
procedure (__cdecl *_MultiboardSetItemsIcon) (HMULTIBOARD lb, PJassString iconPath);
HMULTIBOARDITEM (__cdecl *_MultiboardGetItem) (HMULTIBOARD lb, Integer row, Integer column);
procedure (__cdecl *_MultiboardReleaseItem) (HMULTIBOARDITEM mbi);
procedure (__cdecl *_MultiboardSetItemStyle) (HMULTIBOARDITEM mbi, LongBool showValue, LongBool showIcon);
procedure (__cdecl *_MultiboardSetItemValue) (HMULTIBOARDITEM mbi, PJassString val);
procedure (__cdecl *_MultiboardSetItemValueColor) (HMULTIBOARDITEM mbi, Integer red, Integer green, Integer blue, Integer alpha);
procedure (__cdecl *_MultiboardSetItemWidth) (HMULTIBOARDITEM mbi, PSingle width);
procedure (__cdecl *_MultiboardSetItemIcon) (HMULTIBOARDITEM mbi, PJassString iconFileName);
procedure (__cdecl *_MultiboardSuppressDisplay) (LongBool flag);
procedure (__cdecl *_SetCameraPosition) (PSingle x, PSingle y);
procedure (__cdecl *_SetCameraQuickPosition) (PSingle x, PSingle y);
procedure (__cdecl *_SetCameraBounds) (PSingle x1, PSingle y1, PSingle x2, PSingle y2, PSingle x3, PSingle y3, PSingle x4, PSingle y4);
procedure (__cdecl *_StopCamera) ();
procedure (__cdecl *_ResetToGameCamera) (PSingle duration);
procedure (__cdecl *_PanCameraTo) (PSingle x, PSingle y);
procedure (__cdecl *_PanCameraToTimed) (PSingle x, PSingle y, PSingle duration);
procedure (__cdecl *_PanCameraToWithZ) (PSingle x, PSingle y, PSingle zOffsetDest);
procedure (__cdecl *_PanCameraToTimedWithZ) (PSingle x, PSingle y, PSingle zOffsetDest, PSingle duration);
procedure (__cdecl *_SetCinematicCamera) (PJassString cameraModelFile);
procedure (__cdecl *_SetCameraRotateMode) (PSingle x, PSingle y, PSingle radiansToSweep, PSingle duration);
procedure (__cdecl *_SetCameraField) (HCAMERAFIELD whichField, PSingle value, PSingle duration);
procedure (__cdecl *_AdjustCameraField) (HCAMERAFIELD whichField, PSingle offset, PSingle duration);
procedure (__cdecl *_SetCameraTargetController) (HUNIT whichUnit, PSingle xoffset, PSingle yoffset, LongBool inheritOrientation);
procedure (__cdecl *_SetCameraOrientController) (HUNIT whichUnit, PSingle xoffset, PSingle yoffset);
HCAMERASETUP (__cdecl *_CreateCameraSetup) ();
procedure (__cdecl *_CameraSetupSetField) (HCAMERASETUP whichSetup, HCAMERAFIELD whichField, PSingle value, PSingle duration);
TSingle (__cdecl *_CameraSetupGetField) (HCAMERASETUP whichSetup, HCAMERAFIELD whichField);
procedure (__cdecl *_CameraSetupSetDestPosition) (HCAMERASETUP whichSetup, PSingle x, PSingle y, PSingle duration);
HLOCATION (__cdecl *_CameraSetupGetDestPositionLoc) (HCAMERASETUP whichSetup);
TSingle (__cdecl *_CameraSetupGetDestPositionX) (HCAMERASETUP whichSetup);
TSingle (__cdecl *_CameraSetupGetDestPositionY) (HCAMERASETUP whichSetup);
procedure (__cdecl *_CameraSetupApply) (HCAMERASETUP whichSetup, LongBool doPan, LongBool panTimed);
procedure (__cdecl *_CameraSetupApplyWithZ) (HCAMERASETUP whichSetup, PSingle zDestOffset);
procedure (__cdecl *_CameraSetupApplyForceDuration) (HCAMERASETUP whichSetup, LongBool doPan, PSingle forceDuration);
procedure (__cdecl *_CameraSetupApplyForceDurationWithZ) (HCAMERASETUP whichSetup, PSingle zDestOffset, PSingle forceDuration);
procedure (__cdecl *_CameraSetTargetNoise) (PSingle mag, PSingle velocity);
procedure (__cdecl *_CameraSetSourceNoise) (PSingle mag, PSingle velocity);
procedure (__cdecl *_CameraSetTargetNoiseEx) (PSingle mag, PSingle velocity, LongBool vertOnly);
procedure (__cdecl *_CameraSetSourceNoiseEx) (PSingle mag, PSingle velocity, LongBool vertOnly);
procedure (__cdecl *_CameraSetSmoothingFactor) (PSingle factor);
procedure (__cdecl *_SetCineFilterTexture) (PJassString filename);
procedure (__cdecl *_SetCineFilterBlendMode) (HBLENDMODE whichMode);
procedure (__cdecl *_SetCineFilterTexMapFlags) (HTEXMAPFLAGS whichFlags);
procedure (__cdecl *_SetCineFilterStartUV) (PSingle minu, PSingle minv, PSingle maxu, PSingle maxv);
procedure (__cdecl *_SetCineFilterEndUV) (PSingle minu, PSingle minv, PSingle maxu, PSingle maxv);
procedure (__cdecl *_SetCineFilterStartColor) (Integer red, Integer green, Integer blue, Integer alpha);
procedure (__cdecl *_SetCineFilterEndColor) (Integer red, Integer green, Integer blue, Integer alpha);
procedure (__cdecl *_SetCineFilterDuration) (PSingle duration);
procedure (__cdecl *_DisplayCineFilter) (LongBool flag);
LongBool (__cdecl *_IsCineFilterDisplayed) ();
procedure (__cdecl *_SetCinematicScene) (Integer portraitUnitId, HPLAYERCOLOR color, PJassString speakerTitle, PJassString text, PSingle sceneDuration, PSingle voiceoverDuration);
procedure (__cdecl *_EndCinematicScene) ();
procedure (__cdecl *_ForceCinematicSubtitles) (LongBool flag);
TSingle (__cdecl *_GetCameraMargin) (Integer whichMargin);
TSingle (__cdecl *_GetCameraBoundMinX) ();
TSingle (__cdecl *_GetCameraBoundMinY) ();
TSingle (__cdecl *_GetCameraBoundMaxX) ();
TSingle (__cdecl *_GetCameraBoundMaxY) ();
TSingle (__cdecl *_GetCameraField) (HCAMERAFIELD whichField);
TSingle (__cdecl *_GetCameraTargetPositionX) ();
TSingle (__cdecl *_GetCameraTargetPositionY) ();
TSingle (__cdecl *_GetCameraTargetPositionZ) ();
HLOCATION (__cdecl *_GetCameraTargetPositionLoc) ();
TSingle (__cdecl *_GetCameraEyePositionX) ();
TSingle (__cdecl *_GetCameraEyePositionY) ();
TSingle (__cdecl *_GetCameraEyePositionZ) ();
HLOCATION (__cdecl *_GetCameraEyePositionLoc) ();
procedure (__cdecl *_NewSoundEnvironment) (PJassString environmentName);
HSOUND (__cdecl *_CreateSound) (PJassString fileName, LongBool looping, LongBool is3D, LongBool stopwhenoutofrange, Integer fadeInRate, Integer fadeOutRate, PJassString eaxSetting);
HSOUND (__cdecl *_CreateSoundFilenameWithLabel) (PJassString fileName, LongBool looping, LongBool is3D, LongBool stopwhenoutofrange, Integer fadeInRate, Integer fadeOutRate, PJassString SLKEntryName);
HSOUND (__cdecl *_CreateSoundFromLabel) (PJassString soundLabel, LongBool looping, LongBool is3D, LongBool stopwhenoutofrange, Integer fadeInRate, Integer fadeOutRate);
HSOUND (__cdecl *_CreateMIDISound) (PJassString soundLabel, Integer fadeInRate, Integer fadeOutRate);
procedure (__cdecl *_SetSoundParamsFromLabel) (HSOUND soundHandle, PJassString soundLabel);
procedure (__cdecl *_SetSoundDistanceCutoff) (HSOUND soundHandle, PSingle cutoff);
procedure (__cdecl *_SetSoundChannel) (HSOUND soundHandle, Integer channel);
procedure (__cdecl *_SetSoundVolume) (HSOUND soundHandle, Integer volume);
procedure (__cdecl *_SetSoundPitch) (HSOUND soundHandle, PSingle pitch);
procedure (__cdecl *_SetSoundPlayPosition) (HSOUND soundHandle, Integer millisecs);
procedure (__cdecl *_SetSoundDistances) (HSOUND soundHandle, PSingle minDist, PSingle maxDist);
procedure (__cdecl *_SetSoundConeAngles) (HSOUND soundHandle, PSingle inside, PSingle outside, Integer outsideVolume);
procedure (__cdecl *_SetSoundConeOrientation) (HSOUND soundHandle, PSingle x, PSingle y, PSingle z);
procedure (__cdecl *_SetSoundPosition) (HSOUND soundHandle, PSingle x, PSingle y, PSingle z);
procedure (__cdecl *_SetSoundVelocity) (HSOUND soundHandle, PSingle x, PSingle y, PSingle z);
procedure (__cdecl *_AttachSoundToUnit) (HSOUND soundHandle, HUNIT whichUnit);
procedure (__cdecl *_StartSound) (HSOUND soundHandle);
procedure (__cdecl *_StopSound) (HSOUND soundHandle, LongBool killWhenDone, LongBool fadeOut);
procedure (__cdecl *_KillSoundWhenDone) (HSOUND soundHandle);
procedure (__cdecl *_SetMapMusic) (PJassString musicName, LongBool random, Integer index);
procedure (__cdecl *_ClearMapMusic) ();
procedure (__cdecl *_PlayMusic) (PJassString musicName);
procedure (__cdecl *_PlayMusicEx) (PJassString musicName, Integer frommsecs, Integer fadeinmsecs);
procedure (__cdecl *_StopMusic) (LongBool fadeOut);
procedure (__cdecl *_ResumeMusic) ();
procedure (__cdecl *_PlayThematicMusic) (PJassString musicFileName);
procedure (__cdecl *_PlayThematicMusicEx) (PJassString musicFileName, Integer frommsecs);
procedure (__cdecl *_EndThematicMusic) ();
procedure (__cdecl *_SetMusicVolume) (Integer volume);
procedure (__cdecl *_SetMusicPlayPosition) (Integer millisecs);
procedure (__cdecl *_SetThematicMusicPlayPosition) (Integer millisecs);
procedure (__cdecl *_SetSoundDuration) (HSOUND soundHandle, Integer duration);
Integer (__cdecl *_GetSoundDuration) (HSOUND soundHandle);
Integer (__cdecl *_GetSoundFileDuration) (PJassString musicFileName);
procedure (__cdecl *_VolumeGroupSetVolume) (HVOLUMEGROUP vgroup, PSingle scale);
procedure (__cdecl *_VolumeGroupReset) ();
LongBool (__cdecl *_GetSoundIsPlaying) (HSOUND soundHandle);
LongBool (__cdecl *_GetSoundIsLoading) (HSOUND soundHandle);
procedure (__cdecl *_RegisterStackedSound) (HSOUND soundHandle, LongBool byPosition, PSingle rectwidth, PSingle rectheight);
procedure (__cdecl *_UnregisterStackedSound) (HSOUND soundHandle, LongBool byPosition, PSingle rectwidth, PSingle rectheight);
HWEATHEREFFECT (__cdecl *_AddWeatherEffect) (HRECT where, Integer effectID);
procedure (__cdecl *_RemoveWeatherEffect) (HWEATHEREFFECT whichEffect);
procedure (__cdecl *_EnableWeatherEffect) (HWEATHEREFFECT whichEffect, LongBool enable);
HTERRAINDEFORMATION (__cdecl *_TerrainDeformCrater) (PSingle x, PSingle y, PSingle radius, PSingle depth, Integer duration, LongBool permanent);
HTERRAINDEFORMATION (__cdecl *_TerrainDeformRipple) (PSingle x, PSingle y, PSingle radius, PSingle depth, Integer duration, Integer count, PSingle spaceWaves, PSingle timeWaves, PSingle radiusStartPct, LongBool limitNeg);
HTERRAINDEFORMATION (__cdecl *_TerrainDeformWave) (PSingle x, PSingle y, PSingle dirX, PSingle dirY, PSingle distance, PSingle speed, PSingle radius, PSingle depth, Integer trailTime, Integer count);
HTERRAINDEFORMATION (__cdecl *_TerrainDeformRandom) (PSingle x, PSingle y, PSingle radius, PSingle minDelta, PSingle maxDelta, Integer duration, Integer updateInterval);
procedure (__cdecl *_TerrainDeformStop) (HTERRAINDEFORMATION deformation, Integer duration);
procedure (__cdecl *_TerrainDeformStopAll) ();
HEFFECT (__cdecl *_AddSpecialEffect) (PJassString modelName, PSingle x, PSingle y);
HEFFECT (__cdecl *_AddSpecialEffectLoc) (PJassString modelName, HLOCATION where);
HEFFECT (__cdecl *_AddSpecialEffectTarget) (PJassString modelName, HWIDGET targetWidget, PJassString attachPointName);
procedure (__cdecl *_DestroyEffect) (HEFFECT whichEffect);
HEFFECT (__cdecl *_AddSpellEffect) (PJassString abilityString, HEFFECTTYPE t, PSingle x, PSingle y);
HEFFECT (__cdecl *_AddSpellEffectLoc) (PJassString abilityString, HEFFECTTYPE t, HLOCATION where);
HEFFECT (__cdecl *_AddSpellEffectById) (Integer abilityId, HEFFECTTYPE t, PSingle x, PSingle y);
HEFFECT (__cdecl *_AddSpellEffectByIdLoc) (Integer abilityId, HEFFECTTYPE t, HLOCATION where);
HEFFECT (__cdecl *_AddSpellEffectTarget) (PJassString modelName, HEFFECTTYPE t, HWIDGET targetWidget, PJassString attachPoint);
HEFFECT (__cdecl *_AddSpellEffectTargetById) (Integer abilityId, HEFFECTTYPE t, HWIDGET targetWidget, PJassString attachPoint);
HLIGHTNING (__cdecl *_AddLightning) (PJassString codeName, LongBool checkVisibility, PSingle x1, PSingle y1, PSingle x2, PSingle y2);
HLIGHTNING (__cdecl *_AddLightningEx) (PJassString codeName, LongBool checkVisibility, PSingle x1, PSingle y1, PSingle z1, PSingle x2, PSingle y2, PSingle z2);
LongBool (__cdecl *_DestroyLightning) (HLIGHTNING whichBolt);
LongBool (__cdecl *_MoveLightning) (HLIGHTNING whichBolt, LongBool checkVisibility, PSingle x1, PSingle y1, PSingle x2, PSingle y2);
LongBool (__cdecl *_MoveLightningEx) (HLIGHTNING whichBolt, LongBool checkVisibility, PSingle x1, PSingle y1, PSingle z1, PSingle x2, PSingle y2, PSingle z2);
TSingle (__cdecl *_GetLightningColorA) (HLIGHTNING whichBolt);
TSingle (__cdecl *_GetLightningColorR) (HLIGHTNING whichBolt);
TSingle (__cdecl *_GetLightningColorG) (HLIGHTNING whichBolt);
TSingle (__cdecl *_GetLightningColorB) (HLIGHTNING whichBolt);
LongBool (__cdecl *_SetLightningColor) (HLIGHTNING whichBolt, PSingle r, PSingle g, PSingle b, PSingle a);
TJassStringHandle (__cdecl *_GetAbilityEffect) (PJassString abilityString, HEFFECTTYPE t, Integer index);
TJassStringHandle (__cdecl *_GetAbilityEffectById) (Integer abilityId, HEFFECTTYPE t, Integer index);
TJassStringHandle (__cdecl *_GetAbilitySound) (PJassString abilityString, HSOUNDTYPE t);
TJassStringHandle (__cdecl *_GetAbilitySoundById) (Integer abilityId, HSOUNDTYPE t);
Integer (__cdecl *_GetTerrainCliffLevel) (PSingle x, PSingle y);
procedure (__cdecl *_SetWaterBaseColor) (Integer red, Integer green, Integer blue, Integer alpha);
procedure (__cdecl *_SetWaterDeforms) (LongBool val);
Integer (__cdecl *_GetTerrainType) (PSingle x, PSingle y);
Integer (__cdecl *_GetTerrainVariance) (PSingle x, PSingle y);
procedure (__cdecl *_SetTerrainType) (PSingle x, PSingle y, Integer terrainType, Integer variation, Integer area, Integer shape);
LongBool (__cdecl *_IsTerrainPathable) (PSingle x, PSingle y, HPATHINGTYPE t);
procedure (__cdecl *_SetTerrainPathable) (PSingle x, PSingle y, HPATHINGTYPE t, LongBool flag);
HIMAGE (__cdecl *_CreateImage) (PJassString file_, PSingle sizeX, PSingle sizeY, PSingle sizeZ, PSingle posX, PSingle posY, PSingle posZ, PSingle originX, PSingle originY, PSingle originZ, Integer imageType);
procedure (__cdecl *_DestroyImage) (HIMAGE whichImage);
procedure (__cdecl *_ShowImage) (HIMAGE whichImage, LongBool flag);
procedure (__cdecl *_SetImageConstantHeight) (HIMAGE whichImage, LongBool flag, PSingle height);
procedure (__cdecl *_SetImagePosition) (HIMAGE whichImage, PSingle x, PSingle y, PSingle z);
procedure (__cdecl *_SetImageColor) (HIMAGE whichImage, Integer red, Integer green, Integer blue, Integer alpha);
procedure (__cdecl *_SetImageRender) (HIMAGE whichImage, LongBool flag);
procedure (__cdecl *_SetImageRenderAlways) (HIMAGE whichImage, LongBool flag);
procedure (__cdecl *_SetImageAboveWater) (HIMAGE whichImage, LongBool flag, LongBool useWaterAlpha);
procedure (__cdecl *_SetImageType) (HIMAGE whichImage, Integer imageType);
HUBERSPLAT (__cdecl *_CreateUbersplat) (PSingle x, PSingle y, PJassString name, Integer red, Integer green, Integer blue, Integer alpha, LongBool forcePaused, LongBool noBirthTime);
procedure (__cdecl *_DestroyUbersplat) (HUBERSPLAT whichSplat);
procedure (__cdecl *_ResetUbersplat) (HUBERSPLAT whichSplat);
procedure (__cdecl *_FinishUbersplat) (HUBERSPLAT whichSplat);
procedure (__cdecl *_ShowUbersplat) (HUBERSPLAT whichSplat, LongBool flag);
procedure (__cdecl *_SetUbersplatRender) (HUBERSPLAT whichSplat, LongBool flag);
procedure (__cdecl *_SetUbersplatRenderAlways) (HUBERSPLAT whichSplat, LongBool flag);
procedure (__cdecl *_SetBlight) (HPLAYER whichPlayer, PSingle x, PSingle y, PSingle radius, LongBool addBlight);
procedure (__cdecl *_SetBlightRect) (HPLAYER whichPlayer, HRECT r, LongBool addBlight);
procedure (__cdecl *_SetBlightPoint) (HPLAYER whichPlayer, PSingle x, PSingle y, LongBool addBlight);
procedure (__cdecl *_SetBlightLoc) (HPLAYER whichPlayer, HLOCATION whichLocation, PSingle radius, LongBool addBlight);
HUNIT (__cdecl *_CreateBlightedGoldmine) (HPLAYER id, PSingle x, PSingle y, PSingle face);
LongBool (__cdecl *_IsPointBlighted) (PSingle x, PSingle y);
procedure (__cdecl *_SetDoodadAnimation) (PSingle x, PSingle y, PSingle radius, Integer doodadID, LongBool nearestOnly, PJassString animName, LongBool animRandom);
procedure (__cdecl *_SetDoodadAnimationRect) (HRECT r, Integer doodadID, PJassString animName, LongBool animRandom);
procedure (__cdecl *_StartMeleeAI) (HPLAYER num, PJassString script);
procedure (__cdecl *_StartCampaignAI) (HPLAYER num, PJassString script);
procedure (__cdecl *_CommandAI) (HPLAYER num, Integer command, Integer data);
procedure (__cdecl *_PauseCompAI) (HPLAYER p, LongBool pause);
HAIDIFFICULTY (__cdecl *_GetAIDifficulty) (HPLAYER num);
procedure (__cdecl *_RemoveGuardPosition) (HUNIT hUnit);
procedure (__cdecl *_RecycleGuardPosition) (HUNIT hUnit);
procedure (__cdecl *_RemoveAllGuardPositions) (HPLAYER num);
procedure (__cdecl *_Cheat) (PJassString cheatStr);
LongBool (__cdecl *_IsNoVictoryCheat) ();
LongBool (__cdecl *_IsNoDefeatCheat) ();
procedure (__cdecl *_Preload) (PJassString filename);
procedure (__cdecl *_PreloadEnd) (PSingle timeout);
procedure (__cdecl *_PreloadStart) ();
procedure (__cdecl *_PreloadRefresh) ();
procedure (__cdecl *_PreloadEndEx) ();
procedure (__cdecl *_PreloadGenClear) ();
procedure (__cdecl *_PreloadGenStart) ();
procedure (__cdecl *_PreloadGenEnd) (PJassString filename);
procedure (__cdecl *_Preloader) (PJassString filename);
// AI
//Integer (__cdecl *_GetAiPlayer) ();
// Sleep
//native Sleep                takes real seconds                          returns nothing
procedure (__cdecl *_Sleep) (Single seconds);

Integer (__cdecl *_CountUnitsInGroup) (HGROUP group);
HGROUP (__cdecl *_GetUnitsInRectAll) (HREGION region);
Boolean (__cdecl *_IssueTargetItemOrder) (HUNIT whichUnit, String order, HWIDGET targetWidget);