// Главный DLL-файл.

#include "stdafx.h"
#include <sys\stat.h>

#include "Pascal.h"
#include "JassApi.h"
#include "Natives.h"
#include "Main.h"

#include "Global_variables.h"
#include "Basics_functions.h"
#include "Vampirism_fire.h"
#include "Internet_time.h"

// JassApi variable
pAddEventHandler AddEventHandler = NULL;
//pCallJassFunction CallJassFunction = NULL;
pCreateJassString CreateJassString = NULL;
pDecrementHandleReferences DecrementHandleReferences = NULL;
pDecrementStringReferences DecrementStringReferences = NULL;
pDestroyJassString DestroyJassString = NULL;
pGetJassNative GetJassNative = NULL;
pGetJassStringContent GetJassStringContent = NULL;
pGetStringFromHandle GetStringFromHandle = NULL;
pGetStringHandle GetStringHandle = NULL;
pIncrementHandleReferences IncrementHandleReferences = NULL;
pIncrementStringReferences IncrementStringReferences = NULL;
pPostEvent PostEvent = NULL;
pRegisterJassNative RegisterJassNative = NULL;
pRemoveEventHandler RemoveEventHandler = NULL;
pSetJassStringContent SetJassStringContent = NULL;
pUnregisterJassNative UnregisterJassNative = NULL;

bool FileExists(char *filename) {
    struct stat fileInfo;
    return stat(filename, &fileInfo) == 0;
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved)
{	
	//int vLen;	
	//char str[1000];
	//char Direct[1000];
	//char FullPath1[1000];
	//char Path[1000];
	//wchar_t Path3[1000];
	vNLocalPlayer = -1;
	sprintf(vBuf,"DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved) N_1\0");
	fLog(999,vBuf);
	if (ul_reason_for_call != DLL_PROCESS_ATTACH)
	{
		sprintf(vBuf,"DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved) N_2\0");
	fLog(999,vBuf);
		return TRUE;
	}
	sprintf(vBuf,"DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved) N_3\0");
	fLog(999,vBuf);
	DisableThreadLibraryCalls(hModule);
	sprintf(vBuf,"DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved) N_4\0");
	fLog(999,vBuf);
	if (fRegistrJassApi() == FALSE) return TRUE;
	sprintf(vBuf,"DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved) N_5\0");
	fLog(999,vBuf);
	if (fRegistrNatives() == FALSE) return TRUE;
	sprintf(vBuf,"DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved) N_6\0");
	fLog(999,vBuf);
	//Sleep(5000);

	//RegisterJassNative("fPreBeginGameProcess", "()V",(void *)fPreBeginGameProcess);
	//UnregisterJassNative("fPreBeginGameProcess");
	//if (hJassApi)
	//{
	//	FreeLibrary(hJassApi);
	//}
	sprintf(vBuf,"DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved) N_7\0");
	fLog(999,vBuf);
	RegisterJassNative("fTimerMain", "()V",(void *)fTimerMain);
	//vTimerMain = CreateTimer();
	//TimerStart(vTimerMain,0.1,false,&fTimerMain);
	//fPreBeginGameProcess();
	sprintf(vBuf,"DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved) N_8\0");
	fLog(999,vBuf);
	//vTimerPreBeginGameProcess = CreateTimer();
	//TimerStart(vTimerPreBeginGameProcess,1,false,&fPreBeginGameProcess);
	//getcwd (Direct, sizeof(Direct));

	/*sprintf(FullPath1,"%s\\%s",Direct,"libmysql.dll");
	if (FileExists(FullPath1) == FALSE)
	{
		sprintf(Path,"%s\\%s",Direct,"libmysql_dll_NO");
		MultiByteToWideChar(CP_ACP, 0, Path, - 1, Path3, sizeof(Path));
		CreateDirectory(Path3,NULL);
		return TRUE;
	}*/

	//sprintf(Path,"%s\\%s",Direct,"Vampirism_fire");
	//MultiByteToWideChar(CP_ACP, 0, Path, - 1, Path3, sizeof(Path));
	//CreateDirectory(Path3,NULL);

	//RegisterJassNative("fCreateDataUnit", "(Hunit;I)I",(void *)fCreateDataUnit);
	//RegisterJassNative("fDelDataUnit", "(I)I",(void *)fDelDataUnit);
	//RegisterJassNative("fUnitGoToInt", "(III)I",(void *)fUnitGoToInt);
	//RegisterJassNative("fFindIToMap", "(I)I",(void *)fFindIToMap);
	//RegisterJassNative("fCheckGoDataUnit", "(I)I",(void *)fCheckGoDataUnit);
	//RegisterJassNative("fCreateGoToDataUnit", "(I)I",(void *)fCreateGoToDataUnit);
	//RegisterJassNative("fGoTo", "(I)I",(void *)fGoTo);
	//RegisterJassNative("fCheckGoTo", "(I)I",(void *)fCheckGoTo);
	//RegisterJassNative("fIdUnit", "(Hunit)I",(void *)fIdUnit);
	//RegisterJassNative("fCheckCreateIdDataUnit", "(I)I",(void *)fCheckCreateIdDataUnit);
	//RegisterJassNative("fGetIdDataUnit", "(II)I",(void *)fGetIdDataUnit);
	//RegisterJassNative("fGetIntUnit", "(I)I",(void *)fGetIntUnit);

	//RegisterJassNative("fThreadGoTo3", "()V",(void *)fThreadGoTo3);
	//ThreadGoTo3
	//fBeginGameProcess(1);
	
	//fInitBeginningUnit();
	
	//RegisterJassNative("fStartCommands", "()I",(void *)fStartCommands);
	//RegisterJassNative("fStopCommands", "()I",(void *)fStopCommands);
	//RegisterJassNative("fCheckStartCommands", "()I",(void *)fCheckStartCommands);
	//RegisterJassNative("fSetHost", "(Hplayer;)I",(void *)fSetHost);
	//RegisterJassNative("fCheckSetHost", "()I",(void *)fCheckSetHost);
	//RegisterJassNative("fBeginGameProcess", "()I",(void *)fBeginGameProcess);
	//RegisterJassNative("fBeginGameProcessAI", "(I)I",(void *)fBeginGameProcessAI);

	/*vNLocalPlayer = GetPlayerColor(GetLocalPlayer());
	
	sprintf(vBuf,"DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved) N_6\0");
	fLog(999,vBuf);
	if (fInitMapGlobal() == FALSE) return TRUE;
	
	sprintf(vBuf,"DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved) N_7\0");
	fLog(999,vBuf);
	//vIP
	//vStartMap = 0;
	AddEventHandler(jeMainThreadDestroyed,(TJassEventCallback*)&fEndGame2,NULL);//jeMainThreadDestruction//jeMainThreadDestroyed
	
	vParamEndGame.pFun = (fFun*)&TimerGetElapsed;
	vParamEndGame.pTimerGame = &vTimerGame;
	hThreadEndGame = CreateThread( NULL, 0, (LPTHREAD_START_ROUTINE)ThreadResultGame, (void*)&vParamEndGame, 0 , NULL);
	//if (fGetIpAddress(vIP,"vampir-kolik.ru") == FALSE)
	//{
	//	bIP = FALSE;
	//	if (bIP == FALSE)
	//	{
	//		fSendAllPlayer("Error = 'There is no Internet connection with the website ""vampir-kolik.ru "".'");
	//	}
	//}
	//else
	//{
	
	sprintf(vBuf,"DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved) N_8\0");
	fLog(999,vBuf);
		bIP = TRUE;
	//Single x = 0;
	//Single y = 0;
	//Single f = 0;
	//HPLAYER vPlayer = Player(0);
	//HUNIT vUnit1 = _CreateUnit(vPlayer,1752528689,&x,&y,&f);
	//String vNameUnit1 = GetUnitName(vUnit1);
	
	sprintf(vBuf,"DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved) N_9\0");
	fLog(999,vBuf);
		fBeginGameProcess();
	//}
	
	sprintf(vBuf,"DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved) N_10\0");
	fLog(999,vBuf);*/
	return TRUE;
}

bool fRegistrJassApi()
{
	//bool vReuslt;
	//int vCount;
	//HMODULE hJassApi_2;
	hJassApi = NULL;
	//hJassApi_2 = NULL;
	//vReuslt = GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_PIN,JASS_API_DLL_NAME,&hJassApi);
	//hJassApi_2 = LoadLibraryEx(JASS_API_DLL_NAME,0,0);
	hJassApi = GetModuleHandle(JASS_API_DLL_NAME);
	/*if(!hJassApi)
	{
		char Direct[1000];
		getcwd (Direct, sizeof(Direct));
		char FullPath[1000];
		sprintf(FullPath,"%s\\%s",(char*)Direct,"JassApi.dll");
		if (FileExists(FullPath) == FALSE) return FALSE;
		hJassApi_2 = LoadLibraryA (FullPath);
		hJassApi = GetModuleHandleA(FullPath);
	}*/
	/*vCount = 0;
	do
	{
		hJassApi = GetModuleHandle(JASS_API_DLL_NAME);
		if (hJassApi == 0)
		{
			Sleep(100);
			vCount++;
		}
	}
	while(hJassApi == 0 && vCount < 100);*/
	if(!hJassApi) return FALSE;

	AddEventHandler = (pAddEventHandler)GetProcAddress(hJassApi, "AddEventHandler");
	if(!AddEventHandler) return FALSE;

	//CallJassFunction = (pCallJassFunction)GetProcAddress(hJassApi, "CallJassFunction");
	//if(!CallJassFunction) return FALSE;

	CreateJassString = (pCreateJassString)GetProcAddress(hJassApi, "CreateJassString");
	if(!CreateJassString) return FALSE;

	DecrementHandleReferences = (pDecrementHandleReferences)GetProcAddress(hJassApi, "DecrementHandleReferences");
	if(!DecrementHandleReferences) return FALSE;

	DecrementStringReferences = (pDecrementStringReferences)GetProcAddress(hJassApi, "DecrementStringReferences");
	if(!DecrementStringReferences) return FALSE;

	DestroyJassString = (pDestroyJassString)GetProcAddress(hJassApi, "DestroyJassString");
	if(!DestroyJassString) return FALSE;

	GetJassNative = (pGetJassNative)GetProcAddress(hJassApi, "GetJassNative");
	if(!GetJassNative) return FALSE;

	GetJassStringContent = (pGetJassStringContent)GetProcAddress(hJassApi, "GetJassStringContent");
	if(!GetJassStringContent) return FALSE;

	GetStringFromHandle = (pGetStringFromHandle)GetProcAddress(hJassApi, "GetStringFromHandle");
	if(!GetStringFromHandle) return FALSE;

	GetStringHandle = (pGetStringHandle)GetProcAddress(hJassApi, "GetStringHandle");
	if(!GetStringHandle) return FALSE;

	IncrementHandleReferences = (pIncrementHandleReferences)GetProcAddress(hJassApi, "IncrementHandleReferences");
	if(!IncrementHandleReferences) return FALSE;

	IncrementStringReferences = (pIncrementStringReferences)GetProcAddress(hJassApi, "IncrementStringReferences");
	if(!IncrementStringReferences) return FALSE;

	PostEvent = (pPostEvent)GetProcAddress(hJassApi, "PostEvent");
	if(!PostEvent) return FALSE;

	RegisterJassNative = (pRegisterJassNative)GetProcAddress(hJassApi, "RegisterJassNative");
	if(!RegisterJassNative) return FALSE;

	RemoveEventHandler = (pRemoveEventHandler)GetProcAddress(hJassApi, "RemoveEventHandler");
	if(!RemoveEventHandler) return FALSE;

	SetJassStringContent = (pSetJassStringContent)GetProcAddress(hJassApi, "SetJassStringContent");
	if(!SetJassStringContent) return FALSE;

	UnregisterJassNative = (pUnregisterJassNative)GetProcAddress(hJassApi, "UnregisterJassNative");
	if(!UnregisterJassNative) return FALSE;

	return TRUE;
}

bool fUnregisterNatives()
{
	/*UnregisterJassNative("ConvertRace");
	UnregisterJassNative("ConvertAllianceType");
	UnregisterJassNative("ConvertRacePref");
	UnregisterJassNative("ConvertIGameState");
	UnregisterJassNative("ConvertFGameState");
	ConvertPlayerState) UnregisterJassNative("ConvertPlayerState");
	ConvertPlayerScore) UnregisterJassNative("ConvertPlayerScore");
	ConvertPlayerGameResult) UnregisterJassNative("ConvertPlayerGameResult");
	ConvertUnitState) UnregisterJassNative("ConvertUnitState");
	ConvertAIDifficulty) UnregisterJassNative("ConvertAIDifficulty");
	ConvertGameEvent) UnregisterJassNative("ConvertGameEvent");
	ConvertPlayerEvent) UnregisterJassNative("ConvertPlayerEvent");
	ConvertPlayerUnitEvent) UnregisterJassNative("ConvertPlayerUnitEvent");
	ConvertWidgetEvent) UnregisterJassNative("ConvertWidgetEvent");
	ConvertDialogEvent) UnregisterJassNative("ConvertDialogEvent");
	ConvertUnitEvent) UnregisterJassNative("ConvertUnitEvent");
	ConvertLimitOp) UnregisterJassNative("ConvertLimitOp");
	ConvertUnitType) UnregisterJassNative("ConvertUnitType");
	ConvertGameSpeed) UnregisterJassNative("ConvertGameSpeed");
	ConvertPlacement) UnregisterJassNative("ConvertPlacement");
	ConvertStartLocPrio) UnregisterJassNative("ConvertStartLocPrio");
	ConvertGameDifficulty) UnregisterJassNative("ConvertGameDifficulty");
	ConvertGameType) UnregisterJassNative("ConvertGameType");
	ConvertMapFlag) UnregisterJassNative("ConvertMapFlag");
	ConvertMapVisibility) UnregisterJassNative("ConvertMapVisibility");
	ConvertMapSetting) UnregisterJassNative("ConvertMapSetting");
	ConvertMapDensity) UnregisterJassNative("ConvertMapDensity");
	ConvertMapControl) UnregisterJassNative("ConvertMapControl");
	ConvertPlayerColor) UnregisterJassNative("ConvertPlayerColor");
	ConvertPlayerSlotState) UnregisterJassNative("ConvertPlayerSlotState");
	ConvertVolumeGroup) UnregisterJassNative("ConvertVolumeGroup");
	ConvertCameraField) UnregisterJassNative("ConvertCameraField");
	ConvertBlendMode) UnregisterJassNative("ConvertBlendMode");
	ConvertRarityControl) UnregisterJassNative("ConvertRarityControl");
	ConvertTexMapFlags) UnregisterJassNative("ConvertTexMapFlags");
	ConvertFogState) UnregisterJassNative("ConvertFogState");
	ConvertEffectType) UnregisterJassNative("ConvertEffectType");
	ConvertVersion) UnregisterJassNative("ConvertVersion");
	ConvertItemType) UnregisterJassNative("ConvertItemType");
	ConvertAttackType) UnregisterJassNative("ConvertAttackType");
	ConvertDamageType) UnregisterJassNative("ConvertDamageType");
	ConvertWeaponType) UnregisterJassNative("ConvertWeaponType");
	ConvertSoundType) UnregisterJassNative("ConvertSoundType");
	ConvertPathingType) UnregisterJassNative("ConvertPathingType");
	OrderId) UnregisterJassNative("OrderId");
	OrderId2String) UnregisterJassNative("OrderId2String");
	UnitId) UnregisterJassNative("UnitId");
	UnitId2String) UnregisterJassNative("UnitId2String");
	AbilityId) UnregisterJassNative("AbilityId");
	AbilityId2String) UnregisterJassNative("AbilityId2String");
	GetObjectName) UnregisterJassNative("GetObjectName");
	Deg2Rad) UnregisterJassNative("Deg2Rad");
	Rad2Deg) UnregisterJassNative("Rad2Deg");
	Sin) UnregisterJassNative("Sin");
	Cos) UnregisterJassNative("Cos");
	Tan) UnregisterJassNative("Tan");
	Asin) UnregisterJassNative("Asin");
	Acos) UnregisterJassNative("Acos");
	Atan) UnregisterJassNative("Atan");
	Atan2) UnregisterJassNative("Atan2");
	SquareRoot) UnregisterJassNative("SquareRoot");
	Pow) UnregisterJassNative("Pow");
	I2R) UnregisterJassNative("I2R");
	R2I) UnregisterJassNative("R2I");
	I2S) UnregisterJassNative("I2S");
	R2S) UnregisterJassNative("R2S");
	R2SW) UnregisterJassNative("R2SW");
	S2I) UnregisterJassNative("S2I");
	S2R) UnregisterJassNative("S2R");
	GetHandleId) UnregisterJassNative("GetHandleId");
	SubString) UnregisterJassNative("SubString");
	StringLength) UnregisterJassNative("StringLength");
	StringCase) UnregisterJassNative("StringCase");
	StringHash) UnregisterJassNative("StringHash");
	GetLocalizedString) UnregisterJassNative("GetLocalizedString");
	GetLocalizedHotkey) UnregisterJassNative("GetLocalizedHotkey");
	SetMapName) UnregisterJassNative("SetMapName");
	SetMapDescription) UnregisterJassNative("SetMapDescription");
	SetTeams) UnregisterJassNative("SetTeams");
	SetPlayers) UnregisterJassNative("SetPlayers");
	DefineStartLocation) UnregisterJassNative("DefineStartLocation");
	DefineStartLocationLoc) UnregisterJassNative("DefineStartLocationLoc");
	SetStartLocPrioCount) UnregisterJassNative("SetStartLocPrioCount");
	SetStartLocPrio) UnregisterJassNative("SetStartLocPrio");
	GetStartLocPrioSlot) UnregisterJassNative("GetStartLocPrioSlot");
	GetStartLocPrio) UnregisterJassNative("GetStartLocPrio");
	SetGameTypeSupported) UnregisterJassNative("SetGameTypeSupported");
	SetMapFlag) UnregisterJassNative("SetMapFlag");
	SetGamePlacement) UnregisterJassNative("SetGamePlacement");
	SetGameSpeed) UnregisterJassNative("SetGameSpeed");
	SetGameDifficulty) UnregisterJassNative("SetGameDifficulty");
	SetResourceDensity) UnregisterJassNative("SetResourceDensity");
	SetCreatureDensity) UnregisterJassNative("SetCreatureDensity");
	GetTeams) UnregisterJassNative("GetTeams");
	GetPlayers) UnregisterJassNative("GetPlayers");
	IsGameTypeSupported) UnregisterJassNative("IsGameTypeSupported");
	GetGameTypeSelected) UnregisterJassNative("GetGameTypeSelected");
	IsMapFlagSet) UnregisterJassNative("IsMapFlagSet");
	GetGamePlacement) UnregisterJassNative("GetGamePlacement");
	GetGameSpeed) UnregisterJassNative("GetGameSpeed");
	GetGameDifficulty) UnregisterJassNative("GetGameDifficulty");
	GetResourceDensity) UnregisterJassNative("GetResourceDensity");
	GetCreatureDensity) UnregisterJassNative("GetCreatureDensity");
	GetStartLocationX) UnregisterJassNative("GetStartLocationX");
	GetStartLocationY) UnregisterJassNative("GetStartLocationY");
	GetStartLocationLoc) UnregisterJassNative("GetStartLocationLoc");
	SetPlayerTeam) UnregisterJassNative("SetPlayerTeam");
	SetPlayerStartLocation) UnregisterJassNative("SetPlayerStartLocation");
	ForcePlayerStartLocation) UnregisterJassNative("ForcePlayerStartLocation");
	SetPlayerColor) UnregisterJassNative("SetPlayerColor");
	SetPlayerAlliance) UnregisterJassNative("SetPlayerAlliance");
	SetPlayerTaxRate) UnregisterJassNative("SetPlayerTaxRate");
	SetPlayerRacePreference) UnregisterJassNative("SetPlayerRacePreference");
	SetPlayerRaceSelectable) UnregisterJassNative("SetPlayerRaceSelectable");
	SetPlayerController) UnregisterJassNative("SetPlayerController");
	SetPlayerName) UnregisterJassNative("SetPlayerName");
	SetPlayerOnScoreScreen) UnregisterJassNative("SetPlayerOnScoreScreen");
	GetPlayerTeam) UnregisterJassNative("GetPlayerTeam");
	GetPlayerStartLocation) UnregisterJassNative("GetPlayerStartLocation");
	GetPlayerColor) UnregisterJassNative("GetPlayerColor");
	GetPlayerSelectable) UnregisterJassNative("GetPlayerSelectable");
	GetPlayerController) UnregisterJassNative("GetPlayerController");
	GetPlayerSlotState) UnregisterJassNative("GetPlayerSlotState");
	GetPlayerTaxRate) UnregisterJassNative("GetPlayerTaxRate");
	IsPlayerRacePrefSet) UnregisterJassNative("IsPlayerRacePrefSet");
	GetPlayerName) UnregisterJassNative("GetPlayerName");
	CreateTimer) UnregisterJassNative("CreateTimer");
	DestroyTimer) UnregisterJassNative("DestroyTimer");
	TimerStart) UnregisterJassNative("TimerStart");
	TimerGetElapsed) UnregisterJassNative("TimerGetElapsed");
	TimerGetRemaining) UnregisterJassNative("TimerGetRemaining");
	TimerGetTimeout) UnregisterJassNative("TimerGetTimeout");
	PauseTimer) UnregisterJassNative("PauseTimer");
	ResumeTimer) UnregisterJassNative("ResumeTimer");
	GetExpiredTimer) UnregisterJassNative("GetExpiredTimer");
	CreateGroup) UnregisterJassNative("CreateGroup");
	DestroyGroup) UnregisterJassNative("DestroyGroup");
	GroupAddUnit) UnregisterJassNative("GroupAddUnit");
	GroupRemoveUnit) UnregisterJassNative("GroupRemoveUnit");
	GroupClear) UnregisterJassNative("GroupClear");
	GroupEnumUnitsOfType) UnregisterJassNative("GroupEnumUnitsOfType");
	GroupEnumUnitsOfPlayer) UnregisterJassNative("GroupEnumUnitsOfPlayer");
	GroupEnumUnitsOfTypeCounted) UnregisterJassNative("GroupEnumUnitsOfTypeCounted");
	GroupEnumUnitsInRect) UnregisterJassNative("GroupEnumUnitsInRect");
	GroupEnumUnitsInRectCounted) UnregisterJassNative("GroupEnumUnitsInRectCounted");
	GroupEnumUnitsInRange) UnregisterJassNative("GroupEnumUnitsInRange");
	GroupEnumUnitsInRangeOfLoc) UnregisterJassNative("GroupEnumUnitsInRangeOfLoc");
	GroupEnumUnitsInRangeCounted) UnregisterJassNative("GroupEnumUnitsInRangeCounted");
	GroupEnumUnitsInRangeOfLocCounted) UnregisterJassNative("GroupEnumUnitsInRangeOfLocCounted");
	GroupEnumUnitsSelected) UnregisterJassNative("GroupEnumUnitsSelected");
	GroupImmediateOrder) UnregisterJassNative("GroupImmediateOrder");
	GroupImmediateOrderById) UnregisterJassNative("GroupImmediateOrderById");
	GroupPointOrder) UnregisterJassNative("GroupPointOrder");
	GroupPointOrderLoc) UnregisterJassNative("GroupPointOrderLoc");
	GroupPointOrderById) UnregisterJassNative("GroupPointOrderById");
	GroupPointOrderByIdLoc) UnregisterJassNative("GroupPointOrderByIdLoc");
	GroupTargetOrder) UnregisterJassNative("GroupTargetOrder");
	GroupTargetOrderById) UnregisterJassNative("GroupTargetOrderById");
	ForGroup) UnregisterJassNative("ForGroup");
	FirstOfGroup) UnregisterJassNative("FirstOfGroup");
	CreateForce) UnregisterJassNative("CreateForce");
	DestroyForce) UnregisterJassNative("DestroyForce");
	ForceAddPlayer) UnregisterJassNative("ForceAddPlayer");
	ForceRemovePlayer) UnregisterJassNative("ForceRemovePlayer");
	ForceClear) UnregisterJassNative("ForceClear");
	ForceEnumPlayers) UnregisterJassNative("ForceEnumPlayers");
	ForceEnumPlayersCounted) UnregisterJassNative("ForceEnumPlayersCounted");
	ForceEnumAllies) UnregisterJassNative("ForceEnumAllies");
	ForceEnumEnemies) UnregisterJassNative("ForceEnumEnemies");
	ForForce) UnregisterJassNative("ForForce");
	Rect) UnregisterJassNative("Rect");
	RectFromLoc) UnregisterJassNative("RectFromLoc");
	RemoveRect) UnregisterJassNative("RemoveRect");
	SetRect) UnregisterJassNative("SetRect");
	SetRectFromLoc) UnregisterJassNative("SetRectFromLoc");
	MoveRectTo) UnregisterJassNative("MoveRectTo");
	MoveRectToLoc) UnregisterJassNative("MoveRectToLoc");
	GetRectCenterX) UnregisterJassNative("GetRectCenterX");
	GetRectCenterY) UnregisterJassNative("GetRectCenterY");
	GetRectMinX) UnregisterJassNative("GetRectMinX");
	GetRectMinY) UnregisterJassNative("GetRectMinY");
	GetRectMaxX) UnregisterJassNative("GetRectMaxX");
	GetRectMaxY) UnregisterJassNative("GetRectMaxY");
	CreateRegion) UnregisterJassNative("CreateRegion");
	RemoveRegion) UnregisterJassNative("RemoveRegion");
	RegionAddRect) UnregisterJassNative("RegionAddRect");
	RegionClearRect) UnregisterJassNative("RegionClearRect");
	RegionAddCell) UnregisterJassNative("RegionAddCell");
	RegionAddCellAtLoc) UnregisterJassNative("RegionAddCellAtLoc");
	RegionClearCell) UnregisterJassNative("RegionClearCell");
	RegionClearCellAtLoc) UnregisterJassNative("RegionClearCellAtLoc");
	Location) UnregisterJassNative("Location");
	RemoveLocation) UnregisterJassNative("RemoveLocation");
	MoveLocation) UnregisterJassNative("MoveLocation");
	GetLocationX) UnregisterJassNative("GetLocationX");
	GetLocationY) UnregisterJassNative("GetLocationY");
	GetLocationZ) UnregisterJassNative("GetLocationZ");
	IsUnitInRegion) UnregisterJassNative("IsUnitInRegion");
	IsPointInRegion) UnregisterJassNative("IsPointInRegion");
	IsLocationInRegion) UnregisterJassNative("IsLocationInRegion");
	GetWorldBounds) UnregisterJassNative("GetWorldBounds");
	CreateTrigger) UnregisterJassNative("CreateTrigger");
	DestroyTrigger) UnregisterJassNative("DestroyTrigger");
	ResetTrigger) UnregisterJassNative("ResetTrigger");
	EnableTrigger) UnregisterJassNative("EnableTrigger");
	DisableTrigger) UnregisterJassNative("DisableTrigger");
	IsTriggerEnabled) UnregisterJassNative("IsTriggerEnabled");
	TriggerWaitOnSleeps) UnregisterJassNative("TriggerWaitOnSleeps");
	IsTriggerWaitOnSleeps) UnregisterJassNative("IsTriggerWaitOnSleeps");
	GetFilterUnit) UnregisterJassNative("GetFilterUnit");
	GetEnumUnit) UnregisterJassNative("GetEnumUnit");
	GetFilterDestructable) UnregisterJassNative("GetFilterDestructable");
	GetEnumDestructable) UnregisterJassNative("GetEnumDestructable");
	GetFilterItem) UnregisterJassNative("GetFilterItem");
	GetEnumItem) UnregisterJassNative("GetEnumItem");
	GetFilterPlayer) UnregisterJassNative("GetFilterPlayer");
	GetEnumPlayer) UnregisterJassNative("GetEnumPlayer");
	GetTriggeringTrigger) UnregisterJassNative("GetTriggeringTrigger");
	GetTriggerEventId) UnregisterJassNative("GetTriggerEventId");
	GetTriggerEvalCount) UnregisterJassNative("GetTriggerEvalCount");
	GetTriggerExecCount) UnregisterJassNative("GetTriggerExecCount");
	ExecuteFunc) UnregisterJassNative("ExecuteFunc");
	And_) UnregisterJassNative("And_");
	Or_) UnregisterJassNative("Or_");
	Not_) UnregisterJassNative("Not_");
	Condition) UnregisterJassNative("Condition");
	DestroyCondition) UnregisterJassNative("DestroyCondition");
	Filter) UnregisterJassNative("Filter");
	DestroyFilter) UnregisterJassNative("DestroyFilter");
	DestroyBoolExpr) UnregisterJassNative("DestroyBoolExpr");
	TriggerRegisterVariableEvent) UnregisterJassNative("TriggerRegisterVariableEvent");
	TriggerRegisterTimerEvent) UnregisterJassNative("TriggerRegisterTimerEvent");
	TriggerRegisterTimerExpireEvent) UnregisterJassNative("TriggerRegisterTimerExpireEvent");
	TriggerRegisterGameStateEvent) UnregisterJassNative("TriggerRegisterGameStateEvent");
	TriggerRegisterDialogEvent) UnregisterJassNative("TriggerRegisterDialogEvent");
	TriggerRegisterDialogButtonEvent) UnregisterJassNative("TriggerRegisterDialogButtonEvent");
	GetEventGameState) UnregisterJassNative("GetEventGameState");
	TriggerRegisterGameEvent) UnregisterJassNative("TriggerRegisterGameEvent");
	GetWinningPlayer) UnregisterJassNative("GetWinningPlayer");
	TriggerRegisterEnterRegion) UnregisterJassNative("TriggerRegisterEnterRegion");
	GetTriggeringRegion) UnregisterJassNative("GetTriggeringRegion");
	GetEnteringUnit) UnregisterJassNative("GetEnteringUnit");
	TriggerRegisterLeaveRegion) UnregisterJassNative("TriggerRegisterLeaveRegion");
	GetLeavingUnit) UnregisterJassNative("GetLeavingUnit");
	TriggerRegisterTrackableHitEvent) UnregisterJassNative("TriggerRegisterTrackableHitEvent");
	TriggerRegisterTrackableTrackEvent) UnregisterJassNative("TriggerRegisterTrackableTrackEvent");
	GetTriggeringTrackable) UnregisterJassNative("GetTriggeringTrackable");
	GetClickedButton) UnregisterJassNative("GetClickedButton");
	GetClickedDialog) UnregisterJassNative("GetClickedDialog");
	GetTournamentFinishSoonTimeRemaining) UnregisterJassNative("GetTournamentFinishSoonTimeRemaining");
	GetTournamentFinishNowRule) UnregisterJassNative("GetTournamentFinishNowRule");
	GetTournamentFinishNowPlayer) UnregisterJassNative("GetTournamentFinishNowPlayer");
	GetTournamentScore) UnregisterJassNative("GetTournamentScore");
	GetSaveBasicFilename) UnregisterJassNative("GetSaveBasicFilename");
	TriggerRegisterPlayerEvent) UnregisterJassNative("TriggerRegisterPlayerEvent");
	GetTriggerPlayer) UnregisterJassNative("GetTriggerPlayer");
	TriggerRegisterPlayerUnitEvent) UnregisterJassNative("TriggerRegisterPlayerUnitEvent");
	GetLevelingUnit) UnregisterJassNative("GetLevelingUnit");
	GetLearningUnit) UnregisterJassNative("GetLearningUnit");
	GetLearnedSkill) UnregisterJassNative("GetLearnedSkill");
	GetLearnedSkillLevel) UnregisterJassNative("GetLearnedSkillLevel");
	GetRevivableUnit) UnregisterJassNative("GetRevivableUnit");
	GetRevivingUnit) UnregisterJassNative("GetRevivingUnit");
	GetAttacker) UnregisterJassNative("GetAttacker");
	GetRescuer) UnregisterJassNative("GetRescuer");
	GetDyingUnit) UnregisterJassNative("GetDyingUnit");
	GetKillingUnit) UnregisterJassNative("GetKillingUnit");
	GetDecayingUnit) UnregisterJassNative("GetDecayingUnit");
	GetSelectedUnit) UnregisterJassNative("GetSelectedUnit");
	GetConstructingStructure) UnregisterJassNative("GetConstructingStructure");
	GetCancelledStructure) UnregisterJassNative("GetCancelledStructure");
	GetConstructedStructure) UnregisterJassNative("GetConstructedStructure");
	GetResearchingUnit) UnregisterJassNative("GetResearchingUnit");
	GetResearched) UnregisterJassNative("GetResearched");
	GetTrainedUnitType) UnregisterJassNative("GetTrainedUnitType");
	GetTrainedUnit) UnregisterJassNative("GetTrainedUnit");
	GetDetectedUnit) UnregisterJassNative("GetDetectedUnit");
	GetSummoningUnit) UnregisterJassNative("GetSummoningUnit");
	GetSummonedUnit) UnregisterJassNative("GetSummonedUnit");
	GetTransportUnit) UnregisterJassNative("GetTransportUnit");
	GetLoadedUnit) UnregisterJassNative("GetLoadedUnit");
	GetSellingUnit) UnregisterJassNative("GetSellingUnit");
	GetSoldUnit) UnregisterJassNative("GetSoldUnit");
	GetBuyingUnit) UnregisterJassNative("GetBuyingUnit");
	GetSoldItem) UnregisterJassNative("GetSoldItem");
	GetChangingUnit) UnregisterJassNative("GetChangingUnit");
	GetChangingUnitPrevOwner) UnregisterJassNative("GetChangingUnitPrevOwner");
	GetManipulatingUnit) UnregisterJassNative("GetManipulatingUnit");
	GetManipulatedItem) UnregisterJassNative("GetManipulatedItem");
	GetOrderedUnit) UnregisterJassNative("GetOrderedUnit");
	GetIssuedOrderId) UnregisterJassNative("GetIssuedOrderId");
	GetOrderPointX) UnregisterJassNative("GetOrderPointX");
	GetOrderPointY) UnregisterJassNative("GetOrderPointY");
	GetOrderPointLoc) UnregisterJassNative("GetOrderPointLoc");
	GetOrderTarget) UnregisterJassNative("GetOrderTarget");
	GetOrderTargetDestructable) UnregisterJassNative("GetOrderTargetDestructable");
	GetOrderTargetItem) UnregisterJassNative("GetOrderTargetItem");
	GetOrderTargetUnit) UnregisterJassNative("GetOrderTargetUnit");
	GetSpellAbilityUnit) UnregisterJassNative("GetSpellAbilityUnit");
	GetSpellAbilityId) UnregisterJassNative("GetSpellAbilityId");
	GetSpellAbility) UnregisterJassNative("GetSpellAbility");
	GetSpellTargetLoc) UnregisterJassNative("GetSpellTargetLoc");
	GetSpellTargetX) UnregisterJassNative("GetSpellTargetX");
	GetSpellTargetY) UnregisterJassNative("GetSpellTargetY");
	GetSpellTargetDestructable) UnregisterJassNative("GetSpellTargetDestructable");
	GetSpellTargetItem) UnregisterJassNative("GetSpellTargetItem");
	GetSpellTargetUnit) UnregisterJassNative("GetSpellTargetUnit");
	TriggerRegisterPlayerAllianceChange) UnregisterJassNative("TriggerRegisterPlayerAllianceChange");
	TriggerRegisterPlayerStateEvent) UnregisterJassNative("TriggerRegisterPlayerStateEvent");
	GetEventPlayerState) UnregisterJassNative("GetEventPlayerState");
	TriggerRegisterPlayerChatEvent) UnregisterJassNative("TriggerRegisterPlayerChatEvent");
	GetEventPlayerChatString) UnregisterJassNative("GetEventPlayerChatString");
	GetEventPlayerChatStringMatched) UnregisterJassNative("GetEventPlayerChatStringMatched");
	TriggerRegisterDeathEvent) UnregisterJassNative("TriggerRegisterDeathEvent");
	GetTriggerUnit) UnregisterJassNative("GetTriggerUnit");
	TriggerRegisterUnitStateEvent) UnregisterJassNative("TriggerRegisterUnitStateEvent");
	GetEventUnitState) UnregisterJassNative("GetEventUnitState");
	TriggerRegisterUnitEvent) UnregisterJassNative("TriggerRegisterUnitEvent");
	GetEventDamage) UnregisterJassNative("GetEventDamage");
	GetEventDamageSource) UnregisterJassNative("GetEventDamageSource");
	GetEventDetectingPlayer) UnregisterJassNative("GetEventDetectingPlayer");
	TriggerRegisterFilterUnitEvent) UnregisterJassNative("TriggerRegisterFilterUnitEvent");
	GetEventTargetUnit) UnregisterJassNative("GetEventTargetUnit");
	TriggerRegisterUnitInRange) UnregisterJassNative("TriggerRegisterUnitInRange");
	TriggerAddCondition) UnregisterJassNative("TriggerAddCondition");
	TriggerRemoveCondition) UnregisterJassNative("TriggerRemoveCondition");
	TriggerClearConditions) UnregisterJassNative("TriggerClearConditions");
	TriggerAddAction) UnregisterJassNative("TriggerAddAction");
	TriggerRemoveAction) UnregisterJassNative("TriggerRemoveAction");
	TriggerClearActions) UnregisterJassNative("TriggerClearActions");
	TriggerSleepAction) UnregisterJassNative("TriggerSleepAction");
	TriggerWaitForSound) UnregisterJassNative("TriggerWaitForSound");
	TriggerEvaluate) UnregisterJassNative("TriggerEvaluate");
	TriggerExecute) UnregisterJassNative("TriggerExecute");
	TriggerExecuteWait) UnregisterJassNative("TriggerExecuteWait");
	TriggerSyncStart) UnregisterJassNative("TriggerSyncStart");
	TriggerSyncReady) UnregisterJassNative("TriggerSyncReady");
	GetWidgetLife) UnregisterJassNative("GetWidgetLife");
	SetWidgetLife) UnregisterJassNative("SetWidgetLife");
	GetWidgetX) UnregisterJassNative("GetWidgetX");
	GetWidgetY) UnregisterJassNative("GetWidgetY");
	GetTriggerWidget) UnregisterJassNative("GetTriggerWidget");
	CreateDestructable) UnregisterJassNative("CreateDestructable");
	CreateDestructableZ) UnregisterJassNative("CreateDestructableZ");
	CreateDeadDestructable) UnregisterJassNative("CreateDeadDestructable");
	CreateDeadDestructableZ) UnregisterJassNative("CreateDeadDestructableZ");
	RemoveDestructable) UnregisterJassNative("RemoveDestructable");
	KillDestructable) UnregisterJassNative("KillDestructable");
	SetDestructableInvulnerable) UnregisterJassNative("SetDestructableInvulnerable");
	IsDestructableInvulnerable) UnregisterJassNative("IsDestructableInvulnerable");
	EnumDestructablesInRect) UnregisterJassNative("EnumDestructablesInRect");
	GetDestructableTypeId) UnregisterJassNative("GetDestructableTypeId");
	GetDestructableX) UnregisterJassNative("GetDestructableX");
	GetDestructableY) UnregisterJassNative("GetDestructableY");
	SetDestructableLife) UnregisterJassNative("SetDestructableLife");
	GetDestructableLife) UnregisterJassNative("GetDestructableLife");
	SetDestructableMaxLife) UnregisterJassNative("SetDestructableMaxLife");
	GetDestructableMaxLife) UnregisterJassNative("GetDestructableMaxLife");
	DestructableRestoreLife) UnregisterJassNative("DestructableRestoreLife");
	QueueDestructableAnimation) UnregisterJassNative("QueueDestructableAnimation");
	SetDestructableAnimation) UnregisterJassNative("SetDestructableAnimation");
	SetDestructableAnimationSpeed) UnregisterJassNative("SetDestructableAnimationSpeed");
	ShowDestructable) UnregisterJassNative("ShowDestructable");
	GetDestructableOccluderHeight) UnregisterJassNative("GetDestructableOccluderHeight");
	SetDestructableOccluderHeight) UnregisterJassNative("SetDestructableOccluderHeight");
	GetDestructableName) UnregisterJassNative("GetDestructableName");
	GetTriggerDestructable) UnregisterJassNative("GetTriggerDestructable");
	CreateItem) UnregisterJassNative("CreateItem");
	RemoveItem) UnregisterJassNative("RemoveItem");
	GetItemPlayer) UnregisterJassNative("GetItemPlayer");
	GetItemTypeId) UnregisterJassNative("GetItemTypeId");
	GetItemX) UnregisterJassNative("GetItemX");
	GetItemY) UnregisterJassNative("GetItemY");
	SetItemPosition) UnregisterJassNative("SetItemPosition");
	SetItemDropOnDeath) UnregisterJassNative("SetItemDropOnDeath");
	SetItemDroppable) UnregisterJassNative("SetItemDroppable");
	SetItemPawnable) UnregisterJassNative("SetItemPawnable");
	SetItemPlayer) UnregisterJassNative("SetItemPlayer");
	SetItemInvulnerable) UnregisterJassNative("SetItemInvulnerable");
	IsItemInvulnerable) UnregisterJassNative("IsItemInvulnerable");
	SetItemVisible) UnregisterJassNative("SetItemVisible");
	IsItemVisible) UnregisterJassNative("IsItemVisible");
	IsItemOwned) UnregisterJassNative("IsItemOwned");
	IsItemPowerup) UnregisterJassNative("IsItemPowerup");
	IsItemSellable) UnregisterJassNative("IsItemSellable");
	IsItemPawnable) UnregisterJassNative("IsItemPawnable");
	IsItemIdPowerup) UnregisterJassNative("IsItemIdPowerup");
	IsItemIdSellable) UnregisterJassNative("IsItemIdSellable");
	IsItemIdPawnable) UnregisterJassNative("IsItemIdPawnable");
	EnumItemsInRect) UnregisterJassNative("EnumItemsInRect");
	GetItemLevel) UnregisterJassNative("GetItemLevel");
	GetItemType) UnregisterJassNative("GetItemType");
	SetItemDropID) UnregisterJassNative("SetItemDropID");
	GetItemName) UnregisterJassNative("GetItemName");
	GetItemCharges) UnregisterJassNative("GetItemCharges");
	SetItemCharges) UnregisterJassNative("SetItemCharges");
	GetItemUserData) UnregisterJassNative("GetItemUserData");
	SetItemUserData) UnregisterJassNative("SetItemUserData");
	CreateUnit) UnregisterJassNative("CreateUnit");
	CreateUnitByName) UnregisterJassNative("CreateUnitByName");
	CreateUnitAtLoc) UnregisterJassNative("CreateUnitAtLoc");
	CreateUnitAtLocByName) UnregisterJassNative("CreateUnitAtLocByName");
	CreateCorpse) UnregisterJassNative("CreateCorpse");
	KillUnit) UnregisterJassNative("KillUnit");
	RemoveUnit) UnregisterJassNative("RemoveUnit");
	ShowUnit) UnregisterJassNative("ShowUnit");
	SetUnitState) UnregisterJassNative("SetUnitState");
	SetUnitX) UnregisterJassNative("SetUnitX");
	SetUnitY) UnregisterJassNative("SetUnitY");
	SetUnitPosition) UnregisterJassNative("SetUnitPosition");
	SetUnitPositionLoc) UnregisterJassNative("SetUnitPositionLoc");
	SetUnitFacing) UnregisterJassNative("SetUnitFacing");
	SetUnitFacingTimed) UnregisterJassNative("SetUnitFacingTimed");
	SetUnitMoveSpeed) UnregisterJassNative("SetUnitMoveSpeed");
	SetUnitFlyHeight) UnregisterJassNative("SetUnitFlyHeight");
	SetUnitTurnSpeed) UnregisterJassNative("SetUnitTurnSpeed");
	SetUnitPropWindow) UnregisterJassNative("SetUnitPropWindow");
	SetUnitAcquireRange) UnregisterJassNative("SetUnitAcquireRange");
	SetUnitCreepGuard) UnregisterJassNative("SetUnitCreepGuard");
	GetUnitAcquireRange) UnregisterJassNative("GetUnitAcquireRange");
	GetUnitTurnSpeed) UnregisterJassNative("GetUnitTurnSpeed");
	GetUnitPropWindow) UnregisterJassNative("GetUnitPropWindow");
	GetUnitFlyHeight) UnregisterJassNative("GetUnitFlyHeight");
	GetUnitDefaultAcquireRange) UnregisterJassNative("GetUnitDefaultAcquireRange");
	GetUnitDefaultTurnSpeed) UnregisterJassNative("GetUnitDefaultTurnSpeed");
	GetUnitDefaultPropWindow) UnregisterJassNative("GetUnitDefaultPropWindow");
	GetUnitDefaultFlyHeight) UnregisterJassNative("GetUnitDefaultFlyHeight");
	SetUnitOwner) UnregisterJassNative("SetUnitOwner");
	SetUnitColor) UnregisterJassNative("SetUnitColor");
	SetUnitScale) UnregisterJassNative("SetUnitScale");
	SetUnitTimeScale) UnregisterJassNative("SetUnitTimeScale");
	SetUnitBlendTime) UnregisterJassNative("SetUnitBlendTime");
	SetUnitVertexColor) UnregisterJassNative("SetUnitVertexColor");
	QueueUnitAnimation) UnregisterJassNative("QueueUnitAnimation");
	SetUnitAnimation) UnregisterJassNative("SetUnitAnimation");
	SetUnitAnimationByIndex) UnregisterJassNative("SetUnitAnimationByIndex");
	SetUnitAnimationWithRarity) UnregisterJassNative("SetUnitAnimationWithRarity");
	AddUnitAnimationProperties) UnregisterJassNative("AddUnitAnimationProperties");
	SetUnitLookAt) UnregisterJassNative("SetUnitLookAt");
	ResetUnitLookAt) UnregisterJassNative("ResetUnitLookAt");
	SetUnitRescuable) UnregisterJassNative("SetUnitRescuable");
	SetUnitRescueRange) UnregisterJassNative("SetUnitRescueRange");
	SetHeroStr) UnregisterJassNative("SetHeroStr");
	SetHeroAgi) UnregisterJassNative("SetHeroAgi");
	SetHeroInt) UnregisterJassNative("SetHeroInt");
	GetHeroStr) UnregisterJassNative("GetHeroStr");
	GetHeroAgi) UnregisterJassNative("GetHeroAgi");
	GetHeroInt) UnregisterJassNative("GetHeroInt");
	UnitStripHeroLevel) UnregisterJassNative("UnitStripHeroLevel");
	GetHeroXP) UnregisterJassNative("GetHeroXP");
	SetHeroXP) UnregisterJassNative("SetHeroXP");
	GetHeroSkillPoints) UnregisterJassNative("GetHeroSkillPoints");
	UnitModifySkillPoints) UnregisterJassNative("UnitModifySkillPoints");
	AddHeroXP) UnregisterJassNative("AddHeroXP");
	SetHeroLevel) UnregisterJassNative("SetHeroLevel");
	GetHeroLevel) UnregisterJassNative("GetHeroLevel");
	GetUnitLevel) UnregisterJassNative("GetUnitLevel");
	GetHeroProperName) UnregisterJassNative("GetHeroProperName");
	SuspendHeroXP) UnregisterJassNative("SuspendHeroXP");
	IsSuspendedXP) UnregisterJassNative("IsSuspendedXP");
	SelectHeroSkill) UnregisterJassNative("SelectHeroSkill");
	GetUnitAbilityLevel) UnregisterJassNative("GetUnitAbilityLevel");
	DecUnitAbilityLevel) UnregisterJassNative("DecUnitAbilityLevel");
	IncUnitAbilityLevel) UnregisterJassNative("IncUnitAbilityLevel");
	SetUnitAbilityLevel) UnregisterJassNative("SetUnitAbilityLevel");
	ReviveHero) UnregisterJassNative("ReviveHero");
	ReviveHeroLoc) UnregisterJassNative("ReviveHeroLoc");
	SetUnitExploded) UnregisterJassNative("SetUnitExploded");
	SetUnitInvulnerable) UnregisterJassNative("SetUnitInvulnerable");
	PauseUnit) UnregisterJassNative("PauseUnit");
	IsUnitPaused) UnregisterJassNative("IsUnitPaused");
	SetUnitPathing) UnregisterJassNative("SetUnitPathing");
	ClearSelection) UnregisterJassNative("ClearSelection");
	SelectUnit) UnregisterJassNative("SelectUnit");
	GetUnitPointValue) UnregisterJassNative("GetUnitPointValue");
	GetUnitPointValueByType) UnregisterJassNative("GetUnitPointValueByType");
	SetUnitPointValueByType) UnregisterJassNative("SetUnitPointValueByType");
	UnitAddItem) UnregisterJassNative("UnitAddItem");
	UnitAddItemById) UnregisterJassNative("UnitAddItemById");
	UnitAddItemToSlotById) UnregisterJassNative("UnitAddItemToSlotById");
	UnitRemoveItem) UnregisterJassNative("UnitRemoveItem");
	UnitRemoveItemFromSlot) UnregisterJassNative("UnitRemoveItemFromSlot");
	UnitHasItem) UnregisterJassNative("UnitHasItem");
	UnitItemInSlot) UnregisterJassNative("UnitItemInSlot");
	UnitInventorySize) UnregisterJassNative("UnitInventorySize");
	UnitDropItemPoint) UnregisterJassNative("UnitDropItemPoint");
	UnitDropItemSlot) UnregisterJassNative("UnitDropItemSlot");
	UnitDropItemTarget) UnregisterJassNative("UnitDropItemTarget");
	UnitUseItem) UnregisterJassNative("UnitUseItem");
	UnitUseItemPoint) UnregisterJassNative("UnitUseItemPoint");
	UnitUseItemTarget) UnregisterJassNative("UnitUseItemTarget");
	GetUnitX) UnregisterJassNative("GetUnitX");
	GetUnitY) UnregisterJassNative("GetUnitY");
	GetUnitLoc) UnregisterJassNative("GetUnitLoc");
	GetUnitFacing) UnregisterJassNative("GetUnitFacing");
	GetUnitMoveSpeed) UnregisterJassNative("GetUnitMoveSpeed");
	GetUnitDefaultMoveSpeed) UnregisterJassNative("GetUnitDefaultMoveSpeed");
	GetUnitState) UnregisterJassNative("GetUnitState");
	GetOwningPlayer) UnregisterJassNative("GetOwningPlayer");
	GetUnitTypeId) UnregisterJassNative("GetUnitTypeId");
	GetUnitRace) UnregisterJassNative("GetUnitRace");
	GetUnitName) UnregisterJassNative("GetUnitName");
	GetUnitFoodUsed) UnregisterJassNative("GetUnitFoodUsed");
	GetUnitFoodMade) UnregisterJassNative("GetUnitFoodMade");
	GetFoodMade) UnregisterJassNative("GetFoodMade");
	GetFoodUsed) UnregisterJassNative("GetFoodUsed");
	SetUnitUseFood) UnregisterJassNative("SetUnitUseFood");
	GetUnitRallyPoint) UnregisterJassNative("GetUnitRallyPoint");
	GetUnitRallyUnit) UnregisterJassNative("GetUnitRallyUnit");
	GetUnitRallyDestructable) UnregisterJassNative("GetUnitRallyDestructable");
	IsUnitInGroup) UnregisterJassNative("IsUnitInGroup");
	IsUnitInForce) UnregisterJassNative("IsUnitInForce");
	IsUnitOwnedByPlayer) UnregisterJassNative("IsUnitOwnedByPlayer");
	IsUnitAlly) UnregisterJassNative("IsUnitAlly");
	IsUnitEnemy) UnregisterJassNative("IsUnitEnemy");
	IsUnitVisible) UnregisterJassNative("IsUnitVisible");
	IsUnitDetected) UnregisterJassNative("IsUnitDetected");
	IsUnitInvisible) UnregisterJassNative("IsUnitInvisible");
	IsUnitFogged) UnregisterJassNative("IsUnitFogged");
	IsUnitMasked) UnregisterJassNative("IsUnitMasked");
	IsUnitSelected) UnregisterJassNative("IsUnitSelected");
	IsUnitRace) UnregisterJassNative("IsUnitRace");
	IsUnitType) UnregisterJassNative("IsUnitType");
	IsUnit) UnregisterJassNative("IsUnit");
	IsUnitInRange) UnregisterJassNative("IsUnitInRange");
	IsUnitInRangeXY) UnregisterJassNative("IsUnitInRangeXY");
	IsUnitInRangeLoc) UnregisterJassNative("IsUnitInRangeLoc");
	IsUnitHidden) UnregisterJassNative("IsUnitHidden");
	IsUnitIllusion) UnregisterJassNative("IsUnitIllusion");
	IsUnitInTransport) UnregisterJassNative("IsUnitInTransport");
	IsUnitLoaded) UnregisterJassNative("IsUnitLoaded");
	IsHeroUnitId) UnregisterJassNative("IsHeroUnitId");
	IsUnitIdType) UnregisterJassNative("IsUnitIdType");
	UnitShareVision) UnregisterJassNative("UnitShareVision");
	UnitSuspendDecay) UnregisterJassNative("UnitSuspendDecay");
	UnitAddType) UnregisterJassNative("UnitAddType");
	UnitRemoveType) UnregisterJassNative("UnitRemoveType");
	UnitAddAbility) UnregisterJassNative("UnitAddAbility");
	UnitRemoveAbility) UnregisterJassNative("UnitRemoveAbility");
	UnitMakeAbilityPermanent) UnregisterJassNative("UnitMakeAbilityPermanent");
	UnitRemoveBuffs) UnregisterJassNative("UnitRemoveBuffs");
	UnitRemoveBuffsEx) UnregisterJassNative("UnitRemoveBuffsEx");
	UnitHasBuffsEx) UnregisterJassNative("UnitHasBuffsEx");
	UnitCountBuffsEx) UnregisterJassNative("UnitCountBuffsEx");
	UnitAddSleep) UnregisterJassNative("UnitAddSleep");
	UnitCanSleep) UnregisterJassNative("UnitCanSleep");
	UnitAddSleepPerm) UnregisterJassNative("UnitAddSleepPerm");
	UnitCanSleepPerm) UnregisterJassNative("UnitCanSleepPerm");
	UnitIsSleeping) UnregisterJassNative("UnitIsSleeping");
	UnitWakeUp) UnregisterJassNative("UnitWakeUp");
	UnitApplyTimedLife) UnregisterJassNative("UnitApplyTimedLife");
	UnitIgnoreAlarm) UnregisterJassNative("UnitIgnoreAlarm");
	UnitIgnoreAlarmToggled) UnregisterJassNative("UnitIgnoreAlarmToggled");
	UnitResetCooldown) UnregisterJassNative("UnitResetCooldown");
	UnitSetConstructionProgress) UnregisterJassNative("UnitSetConstructionProgress");
	UnitSetUpgradeProgress) UnregisterJassNative("UnitSetUpgradeProgress");
	UnitPauseTimedLife) UnregisterJassNative("UnitPauseTimedLife");
	UnitSetUsesAltIcon) UnregisterJassNative("UnitSetUsesAltIcon");
	UnitDamagePoint) UnregisterJassNative("UnitDamagePoint");
	UnitDamageTarget) UnregisterJassNative("UnitDamageTarget");
	IssueImmediateOrder) UnregisterJassNative("IssueImmediateOrder");
	IssueImmediateOrderById) UnregisterJassNative("IssueImmediateOrderById");
	IssuePointOrder) UnregisterJassNative("IssuePointOrder");
	IssuePointOrderLoc) UnregisterJassNative("IssuePointOrderLoc");
	IssuePointOrderById) UnregisterJassNative("IssuePointOrderById");
	IssuePointOrderByIdLoc) UnregisterJassNative("IssuePointOrderByIdLoc");
	IssueTargetOrder) UnregisterJassNative("IssueTargetOrder");
	IssueTargetOrderById) UnregisterJassNative("IssueTargetOrderById");
	IssueInstantPointOrder) UnregisterJassNative("IssueInstantPointOrder");
	IssueInstantPointOrderById) UnregisterJassNative("IssueInstantPointOrderById");
	IssueInstantTargetOrder) UnregisterJassNative("IssueInstantTargetOrder");
	IssueInstantTargetOrderById) UnregisterJassNative("IssueInstantTargetOrderById");
	IssueBuildOrder) UnregisterJassNative("IssueBuildOrder");
	IssueBuildOrderById) UnregisterJassNative("IssueBuildOrderById");
	IssueNeutralImmediateOrder) UnregisterJassNative("IssueNeutralImmediateOrder");
	IssueNeutralImmediateOrderById) UnregisterJassNative("IssueNeutralImmediateOrderById");
	IssueNeutralPointOrder) UnregisterJassNative("IssueNeutralPointOrder");
	IssueNeutralPointOrderById) UnregisterJassNative("IssueNeutralPointOrderById");
	IssueNeutralTargetOrder) UnregisterJassNative("IssueNeutralTargetOrder");
	IssueNeutralTargetOrderById) UnregisterJassNative("IssueNeutralTargetOrderById");
	GetUnitCurrentOrder) UnregisterJassNative("GetUnitCurrentOrder");
	SetResourceAmount) UnregisterJassNative("SetResourceAmount");
	AddResourceAmount) UnregisterJassNative("AddResourceAmount");
	GetResourceAmount) UnregisterJassNative("GetResourceAmount");
	WaygateGetDestinationX) UnregisterJassNative("WaygateGetDestinationX");
	WaygateGetDestinationY) UnregisterJassNative("WaygateGetDestinationY");
	WaygateSetDestination) UnregisterJassNative("WaygateSetDestination");
	WaygateActivate) UnregisterJassNative("WaygateActivate");
	WaygateIsActive) UnregisterJassNative("WaygateIsActive");
	AddItemToAllStock) UnregisterJassNative("AddItemToAllStock");
	AddItemToStock) UnregisterJassNative("AddItemToStock");
	AddUnitToAllStock) UnregisterJassNative("AddUnitToAllStock");
	AddUnitToStock) UnregisterJassNative("AddUnitToStock");
	RemoveItemFromAllStock) UnregisterJassNative("RemoveItemFromAllStock");
	RemoveItemFromStock) UnregisterJassNative("RemoveItemFromStock");
	RemoveUnitFromAllStock) UnregisterJassNative("RemoveUnitFromAllStock");
	RemoveUnitFromStock) UnregisterJassNative("RemoveUnitFromStock");
	SetAllItemTypeSlots) UnregisterJassNative("SetAllItemTypeSlots");
	SetAllUnitTypeSlots) UnregisterJassNative("SetAllUnitTypeSlots");
	SetItemTypeSlots) UnregisterJassNative("SetItemTypeSlots");
	SetUnitTypeSlots) UnregisterJassNative("SetUnitTypeSlots");
	GetUnitUserData) UnregisterJassNative("GetUnitUserData");
	SetUnitUserData) UnregisterJassNative("SetUnitUserData");
	Player) UnregisterJassNative("Player");
	GetLocalPlayer) UnregisterJassNative("GetLocalPlayer");
	IsPlayerAlly) UnregisterJassNative("IsPlayerAlly");
	IsPlayerEnemy) UnregisterJassNative("IsPlayerEnemy");
	IsPlayerInForce) UnregisterJassNative("IsPlayerInForce");
	IsPlayerObserver) UnregisterJassNative("IsPlayerObserver");
	IsVisibleToPlayer) UnregisterJassNative("IsVisibleToPlayer");
	IsLocationVisibleToPlayer) UnregisterJassNative("IsLocationVisibleToPlayer");
	IsFoggedToPlayer) UnregisterJassNative("IsFoggedToPlayer");
	IsLocationFoggedToPlayer) UnregisterJassNative("IsLocationFoggedToPlayer");
	IsMaskedToPlayer) UnregisterJassNative("IsMaskedToPlayer");
	IsLocationMaskedToPlayer) UnregisterJassNative("IsLocationMaskedToPlayer");
	GetPlayerRace) UnregisterJassNative("GetPlayerRace");
	GetPlayerId) UnregisterJassNative("GetPlayerId");
	GetPlayerUnitCount) UnregisterJassNative("GetPlayerUnitCount");
	GetPlayerTypedUnitCount) UnregisterJassNative("GetPlayerTypedUnitCount");
	GetPlayerStructureCount) UnregisterJassNative("GetPlayerStructureCount");
	GetPlayerState) UnregisterJassNative("GetPlayerState");
	GetPlayerScore) UnregisterJassNative("GetPlayerScore");
	GetPlayerAlliance) UnregisterJassNative("GetPlayerAlliance");
	GetPlayerHandicap) UnregisterJassNative("GetPlayerHandicap");
	GetPlayerHandicapXP) UnregisterJassNative("GetPlayerHandicapXP");
	SetPlayerHandicap) UnregisterJassNative("SetPlayerHandicap");
	SetPlayerHandicapXP) UnregisterJassNative("SetPlayerHandicapXP");
	SetPlayerTechMaxAllowed) UnregisterJassNative("SetPlayerTechMaxAllowed");
	GetPlayerTechMaxAllowed) UnregisterJassNative("GetPlayerTechMaxAllowed");
	AddPlayerTechResearched) UnregisterJassNative("AddPlayerTechResearched");
	SetPlayerTechResearched) UnregisterJassNative("SetPlayerTechResearched");
	GetPlayerTechResearched) UnregisterJassNative("GetPlayerTechResearched");
	GetPlayerTechCount) UnregisterJassNative("GetPlayerTechCount");
	SetPlayerUnitsOwner) UnregisterJassNative("SetPlayerUnitsOwner");
	CripplePlayer) UnregisterJassNative("CripplePlayer");
	SetPlayerAbilityAvailable) UnregisterJassNative("SetPlayerAbilityAvailable");
	SetPlayerState) UnregisterJassNative("SetPlayerState");
	RemovePlayer) UnregisterJassNative("RemovePlayer");
	CachePlayerHeroData) UnregisterJassNative("CachePlayerHeroData");
	SetFogStateRect) UnregisterJassNative("SetFogStateRect");
	SetFogStateRadius) UnregisterJassNative("SetFogStateRadius");
	SetFogStateRadiusLoc) UnregisterJassNative("SetFogStateRadiusLoc");
	FogMaskEnable) UnregisterJassNative("FogMaskEnable");
	IsFogMaskEnabled) UnregisterJassNative("IsFogMaskEnabled");
	FogEnable) UnregisterJassNative("FogEnable");
	IsFogEnabled) UnregisterJassNative("IsFogEnabled");
	CreateFogModifierRect) UnregisterJassNative("CreateFogModifierRect");
	CreateFogModifierRadius) UnregisterJassNative("CreateFogModifierRadius");
	CreateFogModifierRadiusLoc) UnregisterJassNative("CreateFogModifierRadiusLoc");
	DestroyFogModifier) UnregisterJassNative("DestroyFogModifier");
	FogModifierStart) UnregisterJassNative("FogModifierStart");
	FogModifierStop) UnregisterJassNative("FogModifierStop");
	VersionGet) UnregisterJassNative("VersionGet");
	VersionCompatible) UnregisterJassNative("VersionCompatible");
	VersionSupported) UnregisterJassNative("VersionSupported");
	EndGame) UnregisterJassNative("EndGame");
	ChangeLevel) UnregisterJassNative("ChangeLevel");
	RestartGame) UnregisterJassNative("RestartGame");
	ReloadGame) UnregisterJassNative("ReloadGame");
	SetCampaignMenuRace) UnregisterJassNative("SetCampaignMenuRace");
	SetCampaignMenuRaceEx) UnregisterJassNative("SetCampaignMenuRaceEx");
	ForceCampaignSelectScreen) UnregisterJassNative("ForceCampaignSelectScreen");
	LoadGame) UnregisterJassNative("LoadGame");
	SaveGame) UnregisterJassNative("SaveGame");
	RenameSaveDirectory) UnregisterJassNative("RenameSaveDirectory");
	RemoveSaveDirectory) UnregisterJassNative("RemoveSaveDirectory");
	CopySaveGame) UnregisterJassNative("CopySaveGame");
	SaveGameExists) UnregisterJassNative("SaveGameExists");
	SyncSelections) UnregisterJassNative("SyncSelections");
	SetFloatGameState) UnregisterJassNative("SetFloatGameState");
	GetFloatGameState) UnregisterJassNative("GetFloatGameState");
	SetIntegerGameState) UnregisterJassNative("SetIntegerGameState");
	GetIntegerGameState) UnregisterJassNative("GetIntegerGameState");
	SetTutorialCleared) UnregisterJassNative("SetTutorialCleared");
	SetMissionAvailable) UnregisterJassNative("SetMissionAvailable");
	SetCampaignAvailable) UnregisterJassNative("SetCampaignAvailable");
	SetOpCinematicAvailable) UnregisterJassNative("SetOpCinematicAvailable");
	SetEdCinematicAvailable) UnregisterJassNative("SetEdCinematicAvailable");
	GetDefaultDifficulty) UnregisterJassNative("GetDefaultDifficulty");
	SetDefaultDifficulty) UnregisterJassNative("SetDefaultDifficulty");
	SetCustomCampaignButtonVisible) UnregisterJassNative("SetCustomCampaignButtonVisible");
	GetCustomCampaignButtonVisible) UnregisterJassNative("GetCustomCampaignButtonVisible");
	DoNotSaveReplay) UnregisterJassNative("DoNotSaveReplay");
	DialogCreate) UnregisterJassNative("DialogCreate");
	DialogDestroy) UnregisterJassNative("DialogDestroy");
	DialogClear) UnregisterJassNative("DialogClear");
	DialogSetMessage) UnregisterJassNative("DialogSetMessage");
	DialogAddButton) UnregisterJassNative("DialogAddButton");
	DialogAddQuitButton) UnregisterJassNative("DialogAddQuitButton");
	DialogDisplay) UnregisterJassNative("DialogDisplay");
	ReloadGameCachesFromDisk) UnregisterJassNative("ReloadGameCachesFromDisk");
	InitGameCache) UnregisterJassNative("InitGameCache");
	SaveGameCache) UnregisterJassNative("SaveGameCache");
	StoreInteger) UnregisterJassNative("StoreInteger");
	StoreReal) UnregisterJassNative("StoreReal");
	StoreBoolean) UnregisterJassNative("StoreBoolean");
	StoreUnit) UnregisterJassNative("StoreUnit");
	StoreString) UnregisterJassNative("StoreString");
	SyncStoredInteger) UnregisterJassNative("SyncStoredInteger");
	SyncStoredReal) UnregisterJassNative("SyncStoredReal");
	SyncStoredBoolean) UnregisterJassNative("SyncStoredBoolean");
	SyncStoredUnit) UnregisterJassNative("SyncStoredUnit");
	SyncStoredString) UnregisterJassNative("SyncStoredString");
	HaveStoredInteger) UnregisterJassNative("HaveStoredInteger");
	HaveStoredReal) UnregisterJassNative("HaveStoredReal");
	HaveStoredBoolean) UnregisterJassNative("HaveStoredBoolean");
	HaveStoredUnit) UnregisterJassNative("HaveStoredUnit");
	HaveStoredString) UnregisterJassNative("HaveStoredString");
	FlushGameCache) UnregisterJassNative("FlushGameCache");
	FlushStoredMission) UnregisterJassNative("FlushStoredMission");
	FlushStoredInteger) UnregisterJassNative("FlushStoredInteger");
	FlushStoredReal) UnregisterJassNative("FlushStoredReal");
	FlushStoredBoolean) UnregisterJassNative("FlushStoredBoolean");
	FlushStoredUnit) UnregisterJassNative("FlushStoredUnit");
	FlushStoredString) UnregisterJassNative("FlushStoredString");
	GetStoredInteger) UnregisterJassNative("GetStoredInteger");
	GetStoredReal) UnregisterJassNative("GetStoredReal");
	GetStoredBoolean) UnregisterJassNative("GetStoredBoolean");
	GetStoredString) UnregisterJassNative("GetStoredString");
	RestoreUnit) UnregisterJassNative("RestoreUnit");
	InitHashtable) UnregisterJassNative("InitHashtable");
	SaveInteger) UnregisterJassNative("SaveInteger");
	SaveReal) UnregisterJassNative("SaveReal");
	SaveBoolean) UnregisterJassNative("SaveBoolean");
	SaveStr) UnregisterJassNative("SaveStr");
	SavePlayerHandle) UnregisterJassNative("SavePlayerHandle");
	SaveWidgetHandle) UnregisterJassNative("SaveWidgetHandle");
	SaveDestructableHandle) UnregisterJassNative("SaveDestructableHandle");
	SaveItemHandle) UnregisterJassNative("SaveItemHandle");
	SaveUnitHandle) UnregisterJassNative("SaveUnitHandle");
	SaveAbilityHandle) UnregisterJassNative("SaveAbilityHandle");
	SaveTimerHandle) UnregisterJassNative("SaveTimerHandle");
	SaveTriggerHandle) UnregisterJassNative("SaveTriggerHandle");
	SaveTriggerConditionHandle) UnregisterJassNative("SaveTriggerConditionHandle");
	SaveTriggerActionHandle) UnregisterJassNative("SaveTriggerActionHandle");
	SaveTriggerEventHandle) UnregisterJassNative("SaveTriggerEventHandle");
	SaveForceHandle) UnregisterJassNative("SaveForceHandle");
	SaveGroupHandle) UnregisterJassNative("SaveGroupHandle");
	SaveLocationHandle) UnregisterJassNative("SaveLocationHandle");
	SaveRectHandle) UnregisterJassNative("SaveRectHandle");
	SaveBooleanExprHandle) UnregisterJassNative("SaveBooleanExprHandle");
	SaveSoundHandle) UnregisterJassNative("SaveSoundHandle");
	SaveEffectHandle) UnregisterJassNative("SaveEffectHandle");
	SaveUnitPoolHandle) UnregisterJassNative("SaveUnitPoolHandle");
	SaveItemPoolHandle) UnregisterJassNative("SaveItemPoolHandle");
	SaveQuestHandle) UnregisterJassNative("SaveQuestHandle");
	SaveQuestItemHandle) UnregisterJassNative("SaveQuestItemHandle");
	SaveDefeatConditionHandle) UnregisterJassNative("SaveDefeatConditionHandle");
	SaveTimerDialogHandle) UnregisterJassNative("SaveTimerDialogHandle");
	SaveLeaderboardHandle) UnregisterJassNative("SaveLeaderboardHandle");
	SaveMultiboardHandle) UnregisterJassNative("SaveMultiboardHandle");
	SaveMultiboardItemHandle) UnregisterJassNative("SaveMultiboardItemHandle");
	SaveTrackableHandle) UnregisterJassNative("SaveTrackableHandle");
	SaveDialogHandle) UnregisterJassNative("SaveDialogHandle");
	SaveButtonHandle) UnregisterJassNative("SaveButtonHandle");
	SaveTextTagHandle) UnregisterJassNative("SaveTextTagHandle");
	SaveLightningHandle) UnregisterJassNative("SaveLightningHandle");
	SaveImageHandle) UnregisterJassNative("SaveImageHandle");
	SaveUbersplatHandle) UnregisterJassNative("SaveUbersplatHandle");
	SaveRegionHandle) UnregisterJassNative("SaveRegionHandle");
	SaveFogStateHandle) UnregisterJassNative("SaveFogStateHandle");
	SaveFogModifierHandle) UnregisterJassNative("SaveFogModifierHandle");
	SaveAgentHandle) UnregisterJassNative("SaveAgentHandle");
	SaveHashtableHandle) UnregisterJassNative("SaveHashtableHandle");
	LoadInteger) UnregisterJassNative("LoadInteger");
	LoadReal) UnregisterJassNative("LoadReal");
	LoadBoolean) UnregisterJassNative("LoadBoolean");
	LoadStr) UnregisterJassNative("LoadStr");
	LoadPlayerHandle) UnregisterJassNative("LoadPlayerHandle");
	LoadWidgetHandle) UnregisterJassNative("LoadWidgetHandle");
	LoadDestructableHandle) UnregisterJassNative("LoadDestructableHandle");
	LoadItemHandle) UnregisterJassNative("LoadItemHandle");
	LoadUnitHandle) UnregisterJassNative("LoadUnitHandle");
	LoadAbilityHandle) UnregisterJassNative("LoadAbilityHandle");
	LoadTimerHandle) UnregisterJassNative("LoadTimerHandle");
	LoadTriggerHandle) UnregisterJassNative("LoadTriggerHandle");
	LoadTriggerConditionHandle) UnregisterJassNative("LoadTriggerConditionHandle");
	LoadTriggerActionHandle) UnregisterJassNative("LoadTriggerActionHandle");
	LoadTriggerEventHandle) UnregisterJassNative("LoadTriggerEventHandle");
	LoadForceHandle) UnregisterJassNative("LoadForceHandle");
	LoadGroupHandle) UnregisterJassNative("LoadGroupHandle");
	LoadLocationHandle) UnregisterJassNative("LoadLocationHandle");
	LoadRectHandle) UnregisterJassNative("LoadRectHandle");
	LoadBooleanExprHandle) UnregisterJassNative("LoadBooleanExprHandle");
	LoadSoundHandle) UnregisterJassNative("LoadSoundHandle");
	LoadEffectHandle) UnregisterJassNative("LoadEffectHandle");
	LoadUnitPoolHandle) UnregisterJassNative("LoadUnitPoolHandle");
	LoadItemPoolHandle) UnregisterJassNative("LoadItemPoolHandle");
	LoadQuestHandle) UnregisterJassNative("LoadQuestHandle");
	LoadQuestItemHandle) UnregisterJassNative("LoadQuestItemHandle");
	LoadDefeatConditionHandle) UnregisterJassNative("LoadDefeatConditionHandle");
	LoadTimerDialogHandle) UnregisterJassNative("LoadTimerDialogHandle");
	LoadLeaderboardHandle) UnregisterJassNative("LoadLeaderboardHandle");
	LoadMultiboardHandle) UnregisterJassNative("LoadMultiboardHandle");
	LoadMultiboardItemHandle) UnregisterJassNative("LoadMultiboardItemHandle");
	LoadTrackableHandle) UnregisterJassNative("LoadTrackableHandle");
	LoadDialogHandle) UnregisterJassNative("LoadDialogHandle");
	LoadButtonHandle) UnregisterJassNative("LoadButtonHandle");
	LoadTextTagHandle) UnregisterJassNative("LoadTextTagHandle");
	LoadLightningHandle) UnregisterJassNative("LoadLightningHandle");
	LoadImageHandle) UnregisterJassNative("LoadImageHandle");
	LoadUbersplatHandle) UnregisterJassNative("LoadUbersplatHandle");
	LoadRegionHandle) UnregisterJassNative("LoadRegionHandle");
	LoadFogStateHandle) UnregisterJassNative("LoadFogStateHandle");
	LoadFogModifierHandle) UnregisterJassNative("LoadFogModifierHandle");
	LoadHashtableHandle) UnregisterJassNative("LoadHashtableHandle");
	HaveSavedInteger) UnregisterJassNative("HaveSavedInteger");
	HaveSavedReal) UnregisterJassNative("HaveSavedReal");
	HaveSavedBoolean) UnregisterJassNative("HaveSavedBoolean");
	HaveSavedString) UnregisterJassNative("HaveSavedString");
	HaveSavedHandle) UnregisterJassNative("HaveSavedHandle");
	RemoveSavedInteger) UnregisterJassNative("RemoveSavedInteger");
	RemoveSavedReal) UnregisterJassNative("RemoveSavedReal");
	RemoveSavedBoolean) UnregisterJassNative("RemoveSavedBoolean");
	RemoveSavedString) UnregisterJassNative("RemoveSavedString");
	RemoveSavedHandle) UnregisterJassNative("RemoveSavedHandle");
	FlushParentHashtable) UnregisterJassNative("FlushParentHashtable");
	FlushChildHashtable) UnregisterJassNative("FlushChildHashtable");
	GetRandomInt) UnregisterJassNative("GetRandomInt");
	GetRandomReal) UnregisterJassNative("GetRandomReal");
	CreateUnitPool) UnregisterJassNative("CreateUnitPool");
	DestroyUnitPool) UnregisterJassNative("DestroyUnitPool");
	UnitPoolAddUnitType) UnregisterJassNative("UnitPoolAddUnitType");
	UnitPoolRemoveUnitType) UnregisterJassNative("UnitPoolRemoveUnitType");
	PlaceRandomUnit) UnregisterJassNative("PlaceRandomUnit");
	CreateItemPool) UnregisterJassNative("CreateItemPool");
	DestroyItemPool) UnregisterJassNative("DestroyItemPool");
	ItemPoolAddItemType) UnregisterJassNative("ItemPoolAddItemType");
	ItemPoolRemoveItemType) UnregisterJassNative("ItemPoolRemoveItemType");
	PlaceRandomItem) UnregisterJassNative("PlaceRandomItem");
	ChooseRandomCreep) UnregisterJassNative("ChooseRandomCreep");
	ChooseRandomNPBuilding) UnregisterJassNative("ChooseRandomNPBuilding");
	ChooseRandomItem) UnregisterJassNative("ChooseRandomItem");
	ChooseRandomItemEx) UnregisterJassNative("ChooseRandomItemEx");
	SetRandomSeed) UnregisterJassNative("SetRandomSeed");
	SetTerrainFog) UnregisterJassNative("SetTerrainFog");
	ResetTerrainFog) UnregisterJassNative("ResetTerrainFog");
	SetUnitFog) UnregisterJassNative("SetUnitFog");
	SetTerrainFogEx) UnregisterJassNative("SetTerrainFogEx");
	DisplayTextToPlayer) UnregisterJassNative("DisplayTextToPlayer");
	DisplayTimedTextToPlayer) UnregisterJassNative("DisplayTimedTextToPlayer");
	DisplayTimedTextFromPlayer) UnregisterJassNative("DisplayTimedTextFromPlayer");
	ClearTextMessages) UnregisterJassNative("ClearTextMessages");
	SetDayNightModels) UnregisterJassNative("SetDayNightModels");
	SetSkyModel) UnregisterJassNative("SetSkyModel");
	EnableUserControl) UnregisterJassNative("EnableUserControl");
	EnableUserUI) UnregisterJassNative("EnableUserUI");
	SuspendTimeOfDay) UnregisterJassNative("SuspendTimeOfDay");
	SetTimeOfDayScale) UnregisterJassNative("SetTimeOfDayScale");
	GetTimeOfDayScale) UnregisterJassNative("GetTimeOfDayScale");
	ShowInterface) UnregisterJassNative("ShowInterface");
	PauseGame) UnregisterJassNative("PauseGame");
	UnitAddIndicator) UnregisterJassNative("UnitAddIndicator");
	AddIndicator) UnregisterJassNative("AddIndicator");
	PingMinimap) UnregisterJassNative("PingMinimap");
	PingMinimapEx) UnregisterJassNative("PingMinimapEx");
	EnableOcclusion) UnregisterJassNative("EnableOcclusion");
	SetIntroShotText) UnregisterJassNative("SetIntroShotText");
	SetIntroShotModel) UnregisterJassNative("SetIntroShotModel");
	EnableWorldFogBoundary) UnregisterJassNative("EnableWorldFogBoundary");
	PlayModelCinematic) UnregisterJassNative("PlayModelCinematic");
	PlayCinematic) UnregisterJassNative("PlayCinematic");
	ForceUIKey) UnregisterJassNative("ForceUIKey");
	ForceUICancel) UnregisterJassNative("ForceUICancel");
	DisplayLoadDialog) UnregisterJassNative("DisplayLoadDialog");
	SetAltMinimapIcon) UnregisterJassNative("SetAltMinimapIcon");
	DisableRestartMission) UnregisterJassNative("DisableRestartMission");
	CreateTextTag) UnregisterJassNative("CreateTextTag");
	DestroyTextTag) UnregisterJassNative("DestroyTextTag");
	SetTextTagText) UnregisterJassNative("SetTextTagText");
	SetTextTagPos) UnregisterJassNative("SetTextTagPos");
	SetTextTagPosUnit) UnregisterJassNative("SetTextTagPosUnit");
	SetTextTagColor) UnregisterJassNative("SetTextTagColor");
	SetTextTagVelocity) UnregisterJassNative("SetTextTagVelocity");
	SetTextTagVisibility) UnregisterJassNative("SetTextTagVisibility");
	SetTextTagSuspended) UnregisterJassNative("SetTextTagSuspended");
	SetTextTagPermanent) UnregisterJassNative("SetTextTagPermanent");
	SetTextTagAge) UnregisterJassNative("SetTextTagAge");
	SetTextTagLifespan) UnregisterJassNative("SetTextTagLifespan");
	SetTextTagFadepoint) UnregisterJassNative("SetTextTagFadepoint");
	SetReservedLocalHeroButtons) UnregisterJassNative("SetReservedLocalHeroButtons");
	GetAllyColorFilterState) UnregisterJassNative("GetAllyColorFilterState");
	SetAllyColorFilterState) UnregisterJassNative("SetAllyColorFilterState");
	GetCreepCampFilterState) UnregisterJassNative("GetCreepCampFilterState");
	SetCreepCampFilterState) UnregisterJassNative("SetCreepCampFilterState");
	EnableMinimapFilterButtons) UnregisterJassNative("EnableMinimapFilterButtons");
	EnableDragSelect) UnregisterJassNative("EnableDragSelect");
	EnablePreSelect) UnregisterJassNative("EnablePreSelect");
	EnableSelect) UnregisterJassNative("EnableSelect");
	CreateTrackable) UnregisterJassNative("CreateTrackable");
	CreateQuest) UnregisterJassNative("CreateQuest");
	DestroyQuest) UnregisterJassNative("DestroyQuest");
	QuestSetTitle) UnregisterJassNative("QuestSetTitle");
	QuestSetDescription) UnregisterJassNative("QuestSetDescription");
	QuestSetIconPath) UnregisterJassNative("QuestSetIconPath");
	QuestSetRequired) UnregisterJassNative("QuestSetRequired");
	QuestSetCompleted) UnregisterJassNative("QuestSetCompleted");
	QuestSetDiscovered) UnregisterJassNative("QuestSetDiscovered");
	QuestSetFailed) UnregisterJassNative("QuestSetFailed");
	QuestSetEnabled) UnregisterJassNative("QuestSetEnabled");
	IsQuestRequired) UnregisterJassNative("IsQuestRequired");
	IsQuestCompleted) UnregisterJassNative("IsQuestCompleted");
	IsQuestDiscovered) UnregisterJassNative("IsQuestDiscovered");
	IsQuestFailed) UnregisterJassNative("IsQuestFailed");
	IsQuestEnabled) UnregisterJassNative("IsQuestEnabled");
	QuestCreateItem) UnregisterJassNative("QuestCreateItem");
	QuestItemSetDescription) UnregisterJassNative("QuestItemSetDescription");
	QuestItemSetCompleted) UnregisterJassNative("QuestItemSetCompleted");
	IsQuestItemCompleted) UnregisterJassNative("IsQuestItemCompleted");
	CreateDefeatCondition) UnregisterJassNative("CreateDefeatCondition");
	DestroyDefeatCondition) UnregisterJassNative("DestroyDefeatCondition");
	DefeatConditionSetDescription) UnregisterJassNative("DefeatConditionSetDescription");
	FlashQuestDialogButton) UnregisterJassNative("FlashQuestDialogButton");
	ForceQuestDialogUpdate) UnregisterJassNative("ForceQuestDialogUpdate");
	CreateTimerDialog) UnregisterJassNative("CreateTimerDialog");
	DestroyTimerDialog) UnregisterJassNative("DestroyTimerDialog");
	TimerDialogSetTitle) UnregisterJassNative("TimerDialogSetTitle");
	TimerDialogSetTitleColor) UnregisterJassNative("TimerDialogSetTitleColor");
	TimerDialogSetTimeColor) UnregisterJassNative("TimerDialogSetTimeColor");
	TimerDialogSetSpeed) UnregisterJassNative("TimerDialogSetSpeed");
	TimerDialogDisplay) UnregisterJassNative("TimerDialogDisplay");
	IsTimerDialogDisplayed) UnregisterJassNative("IsTimerDialogDisplayed");
	TimerDialogSetRealTimeRemaining) UnregisterJassNative("TimerDialogSetRealTimeRemaining");
	CreateLeaderboard) UnregisterJassNative("CreateLeaderboard");
	DestroyLeaderboard) UnregisterJassNative("DestroyLeaderboard");
	LeaderboardDisplay) UnregisterJassNative("LeaderboardDisplay");
	IsLeaderboardDisplayed) UnregisterJassNative("IsLeaderboardDisplayed");
	LeaderboardGetItemCount) UnregisterJassNative("LeaderboardGetItemCount");
	LeaderboardSetSizeByItemCount) UnregisterJassNative("LeaderboardSetSizeByItemCount");
	LeaderboardAddItem) UnregisterJassNative("LeaderboardAddItem");
	LeaderboardRemoveItem) UnregisterJassNative("LeaderboardRemoveItem");
	LeaderboardRemovePlayerItem) UnregisterJassNative("LeaderboardRemovePlayerItem");
	LeaderboardClear) UnregisterJassNative("LeaderboardClear");
	LeaderboardSortItemsByValue) UnregisterJassNative("LeaderboardSortItemsByValue");
	LeaderboardSortItemsByPlayer) UnregisterJassNative("LeaderboardSortItemsByPlayer");
	LeaderboardSortItemsByLabel) UnregisterJassNative("LeaderboardSortItemsByLabel");
	LeaderboardHasPlayerItem) UnregisterJassNative("LeaderboardHasPlayerItem");
	LeaderboardGetPlayerIndex) UnregisterJassNative("LeaderboardGetPlayerIndex");
	LeaderboardSetLabel) UnregisterJassNative("LeaderboardSetLabel");
	LeaderboardGetLabelText) UnregisterJassNative("LeaderboardGetLabelText");
	PlayerSetLeaderboard) UnregisterJassNative("PlayerSetLeaderboard");
	PlayerGetLeaderboard) UnregisterJassNative("PlayerGetLeaderboard");
	LeaderboardSetLabelColor) UnregisterJassNative("LeaderboardSetLabelColor");
	LeaderboardSetValueColor) UnregisterJassNative("LeaderboardSetValueColor");
	LeaderboardSetStyle) UnregisterJassNative("LeaderboardSetStyle");
	LeaderboardSetItemValue) UnregisterJassNative("LeaderboardSetItemValue");
	LeaderboardSetItemLabel) UnregisterJassNative("LeaderboardSetItemLabel");
	LeaderboardSetItemStyle) UnregisterJassNative("LeaderboardSetItemStyle");
	LeaderboardSetItemLabelColor) UnregisterJassNative("LeaderboardSetItemLabelColor");
	LeaderboardSetItemValueColor) UnregisterJassNative("LeaderboardSetItemValueColor");
	CreateMultiboard) UnregisterJassNative("CreateMultiboard");
	DestroyMultiboard) UnregisterJassNative("DestroyMultiboard");
	MultiboardDisplay) UnregisterJassNative("MultiboardDisplay");
	IsMultiboardDisplayed) UnregisterJassNative("IsMultiboardDisplayed");
	MultiboardMinimize) UnregisterJassNative("MultiboardMinimize");
	IsMultiboardMinimized) UnregisterJassNative("IsMultiboardMinimized");
	MultiboardClear) UnregisterJassNative("MultiboardClear");
	MultiboardSetTitleText) UnregisterJassNative("MultiboardSetTitleText");
	MultiboardGetTitleText) UnregisterJassNative("MultiboardGetTitleText");
	MultiboardSetTitleTextColor) UnregisterJassNative("MultiboardSetTitleTextColor");
	MultiboardGetRowCount) UnregisterJassNative("MultiboardGetRowCount");
	MultiboardGetColumnCount) UnregisterJassNative("MultiboardGetColumnCount");
	MultiboardSetColumnCount) UnregisterJassNative("MultiboardSetColumnCount");
	MultiboardSetRowCount) UnregisterJassNative("MultiboardSetRowCount");
	MultiboardSetItemsStyle) UnregisterJassNative("MultiboardSetItemsStyle");
	MultiboardSetItemsValue) UnregisterJassNative("MultiboardSetItemsValue");
	MultiboardSetItemsValueColor) UnregisterJassNative("MultiboardSetItemsValueColor");
	MultiboardSetItemsWidth) UnregisterJassNative("MultiboardSetItemsWidth");
	MultiboardSetItemsIcon) UnregisterJassNative("MultiboardSetItemsIcon");
	MultiboardGetItem) UnregisterJassNative("MultiboardGetItem");
	MultiboardReleaseItem) UnregisterJassNative("MultiboardReleaseItem");
	MultiboardSetItemStyle) UnregisterJassNative("MultiboardSetItemStyle");
	MultiboardSetItemValue) UnregisterJassNative("MultiboardSetItemValue");
	MultiboardSetItemValueColor) UnregisterJassNative("MultiboardSetItemValueColor");
	MultiboardSetItemWidth) UnregisterJassNative("MultiboardSetItemWidth");
	MultiboardSetItemIcon) UnregisterJassNative("MultiboardSetItemIcon");
	MultiboardSuppressDisplay) UnregisterJassNative("MultiboardSuppressDisplay");
	SetCameraPosition) UnregisterJassNative("SetCameraPosition");
	SetCameraQuickPosition) UnregisterJassNative("SetCameraQuickPosition");
	SetCameraBounds) UnregisterJassNative("SetCameraBounds");
	StopCamera) UnregisterJassNative("StopCamera");
	ResetToGameCamera) UnregisterJassNative("ResetToGameCamera");
	PanCameraTo) UnregisterJassNative("PanCameraTo");
	PanCameraToTimed) UnregisterJassNative("PanCameraToTimed");
	PanCameraToWithZ) UnregisterJassNative("PanCameraToWithZ");
	PanCameraToTimedWithZ) UnregisterJassNative("PanCameraToTimedWithZ");
	SetCinematicCamera) UnregisterJassNative("SetCinematicCamera");
	SetCameraRotateMode) UnregisterJassNative("SetCameraRotateMode");
	SetCameraField) UnregisterJassNative("SetCameraField");
	AdjustCameraField) UnregisterJassNative("AdjustCameraField");
	SetCameraTargetController) UnregisterJassNative("SetCameraTargetController");
	SetCameraOrientController) UnregisterJassNative("SetCameraOrientController");
	CreateCameraSetup) UnregisterJassNative("CreateCameraSetup");
	CameraSetupSetField) UnregisterJassNative("CameraSetupSetField");
	CameraSetupGetField) UnregisterJassNative("CameraSetupGetField");
	CameraSetupSetDestPosition) UnregisterJassNative("CameraSetupSetDestPosition");
	CameraSetupGetDestPositionLoc) UnregisterJassNative("CameraSetupGetDestPositionLoc");
	CameraSetupGetDestPositionX) UnregisterJassNative("CameraSetupGetDestPositionX");
	CameraSetupGetDestPositionY) UnregisterJassNative("CameraSetupGetDestPositionY");
	CameraSetupApply) UnregisterJassNative("CameraSetupApply");
	CameraSetupApplyWithZ) UnregisterJassNative("CameraSetupApplyWithZ");
	CameraSetupApplyForceDuration) UnregisterJassNative("CameraSetupApplyForceDuration");
	CameraSetupApplyForceDurationWithZ) UnregisterJassNative("CameraSetupApplyForceDurationWithZ");
	CameraSetTargetNoise) UnregisterJassNative("CameraSetTargetNoise");
	CameraSetSourceNoise) UnregisterJassNative("CameraSetSourceNoise");
	CameraSetTargetNoiseEx) UnregisterJassNative("CameraSetTargetNoiseEx");
	CameraSetSourceNoiseEx) UnregisterJassNative("CameraSetSourceNoiseEx");
	CameraSetSmoothingFactor) UnregisterJassNative("CameraSetSmoothingFactor");
	SetCineFilterTexture) UnregisterJassNative("SetCineFilterTexture");
	SetCineFilterBlendMode) UnregisterJassNative("SetCineFilterBlendMode");
	SetCineFilterTexMapFlags) UnregisterJassNative("SetCineFilterTexMapFlags");
	SetCineFilterStartUV) UnregisterJassNative("SetCineFilterStartUV");
	SetCineFilterEndUV) UnregisterJassNative("SetCineFilterEndUV");
	SetCineFilterStartColor) UnregisterJassNative("SetCineFilterStartColor");
	SetCineFilterEndColor) UnregisterJassNative("SetCineFilterEndColor");
	SetCineFilterDuration) UnregisterJassNative("SetCineFilterDuration");
	DisplayCineFilter) UnregisterJassNative("DisplayCineFilter");
	IsCineFilterDisplayed) UnregisterJassNative("IsCineFilterDisplayed");
	SetCinematicScene) UnregisterJassNative("SetCinematicScene");
	EndCinematicScene) UnregisterJassNative("EndCinematicScene");
	ForceCinematicSubtitles) UnregisterJassNative("ForceCinematicSubtitles");
	GetCameraMargin) UnregisterJassNative("GetCameraMargin");
	GetCameraBoundMinX) UnregisterJassNative("GetCameraBoundMinX");
	GetCameraBoundMinY) UnregisterJassNative("GetCameraBoundMinY");
	GetCameraBoundMaxX) UnregisterJassNative("GetCameraBoundMaxX");
	GetCameraBoundMaxY) UnregisterJassNative("GetCameraBoundMaxY");
	GetCameraField) UnregisterJassNative("GetCameraField");
	GetCameraTargetPositionX) UnregisterJassNative("GetCameraTargetPositionX");
	GetCameraTargetPositionY) UnregisterJassNative("GetCameraTargetPositionY");
	GetCameraTargetPositionZ) UnregisterJassNative("GetCameraTargetPositionZ");
	GetCameraTargetPositionLoc) UnregisterJassNative("GetCameraTargetPositionLoc");
	GetCameraEyePositionX) UnregisterJassNative("GetCameraEyePositionX");
	GetCameraEyePositionY) UnregisterJassNative("GetCameraEyePositionY");
	GetCameraEyePositionZ) UnregisterJassNative("GetCameraEyePositionZ");
	GetCameraEyePositionLoc) UnregisterJassNative("GetCameraEyePositionLoc");
	NewSoundEnvironment) UnregisterJassNative("NewSoundEnvironment");
	CreateSound) UnregisterJassNative("CreateSound");
	CreateSoundFilenameWithLabel) UnregisterJassNative("CreateSoundFilenameWithLabel");
	CreateSoundFromLabel) UnregisterJassNative("CreateSoundFromLabel");
	CreateMIDISound) UnregisterJassNative("CreateMIDISound");
	SetSoundParamsFromLabel) UnregisterJassNative("SetSoundParamsFromLabel");
	SetSoundDistanceCutoff) UnregisterJassNative("SetSoundDistanceCutoff");
	SetSoundChannel) UnregisterJassNative("SetSoundChannel");
	SetSoundVolume) UnregisterJassNative("SetSoundVolume");
	SetSoundPitch) UnregisterJassNative("SetSoundPitch");
	SetSoundPlayPosition) UnregisterJassNative("SetSoundPlayPosition");
	SetSoundDistances) UnregisterJassNative("SetSoundDistances");
	SetSoundConeAngles) UnregisterJassNative("SetSoundConeAngles");
	SetSoundConeOrientation) UnregisterJassNative("SetSoundConeOrientation");
	SetSoundPosition) UnregisterJassNative("SetSoundPosition");
	SetSoundVelocity) UnregisterJassNative("SetSoundVelocity");
	AttachSoundToUnit) UnregisterJassNative("AttachSoundToUnit");
	StartSound) UnregisterJassNative("StartSound");
	StopSound) UnregisterJassNative("StopSound");
	KillSoundWhenDone) UnregisterJassNative("KillSoundWhenDone");
	SetMapMusic) UnregisterJassNative("SetMapMusic");
	ClearMapMusic) UnregisterJassNative("ClearMapMusic");
	PlayMusic) UnregisterJassNative("PlayMusic");
	PlayMusicEx) UnregisterJassNative("PlayMusicEx");
	StopMusic) UnregisterJassNative("StopMusic");
	ResumeMusic) UnregisterJassNative("ResumeMusic");
	PlayThematicMusic) UnregisterJassNative("PlayThematicMusic");
	PlayThematicMusicEx) UnregisterJassNative("PlayThematicMusicEx");
	EndThematicMusic) UnregisterJassNative("EndThematicMusic");
	SetMusicVolume) UnregisterJassNative("SetMusicVolume");
	SetMusicPlayPosition) UnregisterJassNative("SetMusicPlayPosition");
	SetThematicMusicPlayPosition) UnregisterJassNative("SetThematicMusicPlayPosition");
	SetSoundDuration) UnregisterJassNative("SetSoundDuration");
	GetSoundDuration) UnregisterJassNative("GetSoundDuration");
	GetSoundFileDuration) UnregisterJassNative("GetSoundFileDuration");
	VolumeGroupSetVolume) UnregisterJassNative("VolumeGroupSetVolume");
	VolumeGroupReset) UnregisterJassNative("VolumeGroupReset");
	GetSoundIsPlaying) UnregisterJassNative("GetSoundIsPlaying");
	GetSoundIsLoading) UnregisterJassNative("GetSoundIsLoading");
	RegisterStackedSound) UnregisterJassNative("RegisterStackedSound");
	UnregisterStackedSound) UnregisterJassNative("UnregisterStackedSound");
	AddWeatherEffect) UnregisterJassNative("AddWeatherEffect");
	RemoveWeatherEffect) UnregisterJassNative("RemoveWeatherEffect");
	EnableWeatherEffect) UnregisterJassNative("EnableWeatherEffect");
	TerrainDeformCrater) UnregisterJassNative("TerrainDeformCrater");
	TerrainDeformRipple) UnregisterJassNative("TerrainDeformRipple");
	TerrainDeformWave) UnregisterJassNative("TerrainDeformWave");
	TerrainDeformRandom) UnregisterJassNative("TerrainDeformRandom");
	TerrainDeformStop) UnregisterJassNative("TerrainDeformStop");
	TerrainDeformStopAll) UnregisterJassNative("TerrainDeformStopAll");
	AddSpecialEffect) UnregisterJassNative("AddSpecialEffect");
	AddSpecialEffectLoc) UnregisterJassNative("AddSpecialEffectLoc");
	AddSpecialEffectTarget) UnregisterJassNative("AddSpecialEffectTarget");
	DestroyEffect) UnregisterJassNative("DestroyEffect");
	AddSpellEffect) UnregisterJassNative("AddSpellEffect");
	AddSpellEffectLoc) UnregisterJassNative("AddSpellEffectLoc");
	AddSpellEffectById) UnregisterJassNative("AddSpellEffectById");
	AddSpellEffectByIdLoc) UnregisterJassNative("AddSpellEffectByIdLoc");
	AddSpellEffectTarget) UnregisterJassNative("AddSpellEffectTarget");
	AddSpellEffectTargetById) UnregisterJassNative("AddSpellEffectTargetById");
	AddLightning) UnregisterJassNative("AddLightning");
	AddLightningEx) UnregisterJassNative("AddLightningEx");
	DestroyLightning) UnregisterJassNative("DestroyLightning");
	MoveLightning) UnregisterJassNative("MoveLightning");
	MoveLightningEx) UnregisterJassNative("MoveLightningEx");
	GetLightningColorA) UnregisterJassNative("GetLightningColorA");
	GetLightningColorR) UnregisterJassNative("GetLightningColorR");
	GetLightningColorG) UnregisterJassNative("GetLightningColorG");
	GetLightningColorB) UnregisterJassNative("GetLightningColorB");
	SetLightningColor) UnregisterJassNative("SetLightningColor");
	GetAbilityEffect) UnregisterJassNative("GetAbilityEffect");
	GetAbilityEffectById) UnregisterJassNative("GetAbilityEffectById");
	GetAbilitySound) UnregisterJassNative("GetAbilitySound");
	GetAbilitySoundById) UnregisterJassNative("GetAbilitySoundById");
	GetTerrainCliffLevel) UnregisterJassNative("GetTerrainCliffLevel");
	SetWaterBaseColor) UnregisterJassNative("SetWaterBaseColor");
	SetWaterDeforms) UnregisterJassNative("SetWaterDeforms");
	GetTerrainType) UnregisterJassNative("GetTerrainType");
	GetTerrainVariance) UnregisterJassNative("GetTerrainVariance");
	SetTerrainType) UnregisterJassNative("SetTerrainType");
	IsTerrainPathable) UnregisterJassNative("IsTerrainPathable");
	SetTerrainPathable) UnregisterJassNative("SetTerrainPathable");
	CreateImage) UnregisterJassNative("CreateImage");
	DestroyImage) UnregisterJassNative("DestroyImage");
	ShowImage) UnregisterJassNative("ShowImage");
	SetImageConstantHeight) UnregisterJassNative("SetImageConstantHeight");
	SetImagePosition) UnregisterJassNative("SetImagePosition");
	SetImageColor) UnregisterJassNative("SetImageColor");
	SetImageRender) UnregisterJassNative("SetImageRender");
	SetImageRenderAlways) UnregisterJassNative("SetImageRenderAlways");
	SetImageAboveWater) UnregisterJassNative("SetImageAboveWater");
	SetImageType) UnregisterJassNative("SetImageType");
	CreateUbersplat) UnregisterJassNative("CreateUbersplat");
	DestroyUbersplat) UnregisterJassNative("DestroyUbersplat");
	ResetUbersplat) UnregisterJassNative("ResetUbersplat");
	FinishUbersplat) UnregisterJassNative("FinishUbersplat");
	ShowUbersplat) UnregisterJassNative("ShowUbersplat");
	SetUbersplatRender) UnregisterJassNative("SetUbersplatRender");
	SetUbersplatRenderAlways) UnregisterJassNative("SetUbersplatRenderAlways");
	SetBlight) UnregisterJassNative("SetBlight");
	SetBlightRect) UnregisterJassNative("SetBlightRect");
	SetBlightPoint) UnregisterJassNative("SetBlightPoint");
	SetBlightLoc) UnregisterJassNative("SetBlightLoc");
	CreateBlightedGoldmine) UnregisterJassNative("CreateBlightedGoldmine");
	IsPointBlighted) UnregisterJassNative("IsPointBlighted");
	SetDoodadAnimation) UnregisterJassNative("SetDoodadAnimation");
	SetDoodadAnimationRect) UnregisterJassNative("SetDoodadAnimationRect");
	StartMeleeAI) UnregisterJassNative("StartMeleeAI");
	StartCampaignAI) UnregisterJassNative("StartCampaignAI");
	CommandAI) UnregisterJassNative("CommandAI");
	PauseCompAI) UnregisterJassNative("PauseCompAI");
	GetAIDifficulty) UnregisterJassNative("GetAIDifficulty");
	RemoveGuardPosition) UnregisterJassNative("RemoveGuardPosition");
	RecycleGuardPosition) UnregisterJassNative("RecycleGuardPosition");
	RemoveAllGuardPositions) UnregisterJassNative("RemoveAllGuardPositions");
	Cheat) UnregisterJassNative("Cheat");
	IsNoVictoryCheat) UnregisterJassNative("IsNoVictoryCheat");
	IsNoDefeatCheat) UnregisterJassNative("IsNoDefeatCheat");
	Preload) UnregisterJassNative("Preload");
	PreloadEnd) UnregisterJassNative("PreloadEnd");
	PreloadStart) UnregisterJassNative("PreloadStart");
	PreloadRefresh) UnregisterJassNative("PreloadRefresh");
	PreloadEndEx) UnregisterJassNative("PreloadEndEx");
	PreloadGenClear) UnregisterJassNative("PreloadGenClear");
	PreloadGenStart) UnregisterJassNative("PreloadGenStart");
	PreloadGenEnd) UnregisterJassNative("PreloadGenEnd");
	Preloader) UnregisterJassNative("Preloader");

	Sleep) UnregisterJassNative("Sleep");

	CountUnitsInGroup) UnregisterJassNative("CountUnitsInGroup");
	GetUnitsInRectAll) UnregisterJassNative("GetUnitsInRectAll");
	IssueTargetItemOrder) UnregisterJassNative("IssueTargetItemOrder");*/
	
	return TRUE;
}

bool fRegistrNatives()
{
	/*Pointer pVoid;
	int * pInt;
	pVoid = &_CreateUnit;
	pInt = (int*) pVoid;
	*(pInt) = (int)GetJassNative("CreateUnit");
	pVoid = &_Player;
	pInt = (int*) pVoid;
	*(pInt) = (int)GetJassNative("Player");*/
	*((int*)&_ConvertRace) = (int)GetJassNative("ConvertRace");
	*((int*)&_ConvertAllianceType) = (int)GetJassNative("ConvertAllianceType");
	*((int*)&_ConvertRacePref) = (int)GetJassNative("ConvertRacePref");
	*((int*)&_ConvertIGameState) = (int)GetJassNative("ConvertIGameState");
	*((int*)&_ConvertFGameState) = (int)GetJassNative("ConvertFGameState");
	*((int*)&_ConvertPlayerState) = (int)GetJassNative("ConvertPlayerState");
	*((int*)&_ConvertPlayerScore) = (int)GetJassNative("ConvertPlayerScore");
	*((int*)&_ConvertPlayerGameResult) = (int)GetJassNative("ConvertPlayerGameResult");
	*((int*)&_ConvertUnitState) = (int)GetJassNative("ConvertUnitState");
	*((int*)&_ConvertAIDifficulty) = (int)GetJassNative("ConvertAIDifficulty");
	*((int*)&_ConvertGameEvent) = (int)GetJassNative("ConvertGameEvent");
	*((int*)&_ConvertPlayerEvent) = (int)GetJassNative("ConvertPlayerEvent");
	*((int*)&_ConvertPlayerUnitEvent) = (int)GetJassNative("ConvertPlayerUnitEvent");
	*((int*)&_ConvertWidgetEvent) = (int)GetJassNative("ConvertWidgetEvent");
	*((int*)&_ConvertDialogEvent) = (int)GetJassNative("ConvertDialogEvent");
	*((int*)&_ConvertUnitEvent) = (int)GetJassNative("ConvertUnitEvent");
	*((int*)&_ConvertLimitOp) = (int)GetJassNative("ConvertLimitOp");
	*((int*)&_ConvertUnitType) = (int)GetJassNative("ConvertUnitType");
	*((int*)&_ConvertGameSpeed) = (int)GetJassNative("ConvertGameSpeed");
	*((int*)&_ConvertPlacement) = (int)GetJassNative("ConvertPlacement");
	*((int*)&_ConvertStartLocPrio) = (int)GetJassNative("ConvertStartLocPrio");
	*((int*)&_ConvertGameDifficulty) = (int)GetJassNative("ConvertGameDifficulty");
	*((int*)&_ConvertGameType) = (int)GetJassNative("ConvertGameType");
	*((int*)&_ConvertMapFlag) = (int)GetJassNative("ConvertMapFlag");
	*((int*)&_ConvertMapVisibility) = (int)GetJassNative("ConvertMapVisibility");
	*((int*)&_ConvertMapSetting) = (int)GetJassNative("ConvertMapSetting");
	*((int*)&_ConvertMapDensity) = (int)GetJassNative("ConvertMapDensity");
	*((int*)&_ConvertMapControl) = (int)GetJassNative("ConvertMapControl");
	*((int*)&_ConvertPlayerColor) = (int)GetJassNative("ConvertPlayerColor");
	*((int*)&_ConvertPlayerSlotState) = (int)GetJassNative("ConvertPlayerSlotState");
	*((int*)&_ConvertVolumeGroup) = (int)GetJassNative("ConvertVolumeGroup");
	*((int*)&_ConvertCameraField) = (int)GetJassNative("ConvertCameraField");
	*((int*)&_ConvertBlendMode) = (int)GetJassNative("ConvertBlendMode");
	*((int*)&_ConvertRarityControl) = (int)GetJassNative("ConvertRarityControl");
	*((int*)&_ConvertTexMapFlags) = (int)GetJassNative("ConvertTexMapFlags");
	*((int*)&_ConvertFogState) = (int)GetJassNative("ConvertFogState");
	*((int*)&_ConvertEffectType) = (int)GetJassNative("ConvertEffectType");
	*((int*)&_ConvertVersion) = (int)GetJassNative("ConvertVersion");
	*((int*)&_ConvertItemType) = (int)GetJassNative("ConvertItemType");
	*((int*)&_ConvertAttackType) = (int)GetJassNative("ConvertAttackType");
	*((int*)&_ConvertDamageType) = (int)GetJassNative("ConvertDamageType");
	*((int*)&_ConvertWeaponType) = (int)GetJassNative("ConvertWeaponType");
	*((int*)&_ConvertSoundType) = (int)GetJassNative("ConvertSoundType");
	*((int*)&_ConvertPathingType) = (int)GetJassNative("ConvertPathingType");
	*((int*)&_OrderId) = (int)GetJassNative("OrderId");
	*((int*)&_OrderId2String) = (int)GetJassNative("OrderId2String");
	*((int*)&_UnitId) = (int)GetJassNative("UnitId");
	*((int*)&_UnitId2String) = (int)GetJassNative("UnitId2String");
	*((int*)&_AbilityId) = (int)GetJassNative("AbilityId");
	*((int*)&_AbilityId2String) = (int)GetJassNative("AbilityId2String");
	*((int*)&_GetObjectName) = (int)GetJassNative("GetObjectName");
	*((int*)&_Deg2Rad) = (int)GetJassNative("Deg2Rad");
	*((int*)&_Rad2Deg) = (int)GetJassNative("Rad2Deg");
	*((int*)&_Sin) = (int)GetJassNative("Sin");
	*((int*)&_Cos) = (int)GetJassNative("Cos");
	*((int*)&_Tan) = (int)GetJassNative("Tan");
	*((int*)&_Asin) = (int)GetJassNative("Asin");
	*((int*)&_Acos) = (int)GetJassNative("Acos");
	*((int*)&_Atan) = (int)GetJassNative("Atan");
	*((int*)&_Atan2) = (int)GetJassNative("Atan2");
	*((int*)&_SquareRoot) = (int)GetJassNative("SquareRoot");
	*((int*)&_Pow) = (int)GetJassNative("Pow");
	*((int*)&_I2R) = (int)GetJassNative("I2R");
	*((int*)&_R2I) = (int)GetJassNative("R2I");
	*((int*)&_I2S) = (int)GetJassNative("I2S");
	*((int*)&_R2S) = (int)GetJassNative("R2S");
	*((int*)&_R2SW) = (int)GetJassNative("R2SW");
	*((int*)&_S2I) = (int)GetJassNative("S2I");
	*((int*)&_S2R) = (int)GetJassNative("S2R");
	*((int*)&_GetHandleId) = (int)GetJassNative("GetHandleId");
	*((int*)&_SubString) = (int)GetJassNative("SubString");
	*((int*)&_StringLength) = (int)GetJassNative("StringLength");
	*((int*)&_StringCase) = (int)GetJassNative("StringCase");
	*((int*)&_StringHash) = (int)GetJassNative("StringHash");
	*((int*)&_GetLocalizedString) = (int)GetJassNative("GetLocalizedString");
	*((int*)&_GetLocalizedHotkey) = (int)GetJassNative("GetLocalizedHotkey");
	*((int*)&_SetMapName) = (int)GetJassNative("SetMapName");
	*((int*)&_SetMapDescription) = (int)GetJassNative("SetMapDescription");
	*((int*)&_SetTeams) = (int)GetJassNative("SetTeams");
	*((int*)&_SetPlayers) = (int)GetJassNative("SetPlayers");
	*((int*)&_DefineStartLocation) = (int)GetJassNative("DefineStartLocation");
	*((int*)&_DefineStartLocationLoc) = (int)GetJassNative("DefineStartLocationLoc");
	*((int*)&_SetStartLocPrioCount) = (int)GetJassNative("SetStartLocPrioCount");
	*((int*)&_SetStartLocPrio) = (int)GetJassNative("SetStartLocPrio");
	*((int*)&_GetStartLocPrioSlot) = (int)GetJassNative("GetStartLocPrioSlot");
	*((int*)&_GetStartLocPrio) = (int)GetJassNative("GetStartLocPrio");
	*((int*)&_SetGameTypeSupported) = (int)GetJassNative("SetGameTypeSupported");
	*((int*)&_SetMapFlag) = (int)GetJassNative("SetMapFlag");
	*((int*)&_SetGamePlacement) = (int)GetJassNative("SetGamePlacement");
	*((int*)&_SetGameSpeed) = (int)GetJassNative("SetGameSpeed");
	*((int*)&_SetGameDifficulty) = (int)GetJassNative("SetGameDifficulty");
	*((int*)&_SetResourceDensity) = (int)GetJassNative("SetResourceDensity");
	*((int*)&_SetCreatureDensity) = (int)GetJassNative("SetCreatureDensity");
	*((int*)&_GetTeams) = (int)GetJassNative("GetTeams");
	*((int*)&_GetPlayers) = (int)GetJassNative("GetPlayers");
	*((int*)&_IsGameTypeSupported) = (int)GetJassNative("IsGameTypeSupported");
	*((int*)&_GetGameTypeSelected) = (int)GetJassNative("GetGameTypeSelected");
	*((int*)&_IsMapFlagSet) = (int)GetJassNative("IsMapFlagSet");
	*((int*)&_GetGamePlacement) = (int)GetJassNative("GetGamePlacement");
	*((int*)&_GetGameSpeed) = (int)GetJassNative("GetGameSpeed");
	*((int*)&_GetGameDifficulty) = (int)GetJassNative("GetGameDifficulty");
	*((int*)&_GetResourceDensity) = (int)GetJassNative("GetResourceDensity");
	*((int*)&_GetCreatureDensity) = (int)GetJassNative("GetCreatureDensity");
	*((int*)&_GetStartLocationX) = (int)GetJassNative("GetStartLocationX");
	*((int*)&_GetStartLocationY) = (int)GetJassNative("GetStartLocationY");
	*((int*)&_GetStartLocationLoc) = (int)GetJassNative("GetStartLocationLoc");
	*((int*)&_SetPlayerTeam) = (int)GetJassNative("SetPlayerTeam");
	*((int*)&_SetPlayerStartLocation) = (int)GetJassNative("SetPlayerStartLocation");
	*((int*)&_ForcePlayerStartLocation) = (int)GetJassNative("ForcePlayerStartLocation");
	*((int*)&_SetPlayerColor) = (int)GetJassNative("SetPlayerColor");
	*((int*)&_SetPlayerAlliance) = (int)GetJassNative("SetPlayerAlliance");
	*((int*)&_SetPlayerTaxRate) = (int)GetJassNative("SetPlayerTaxRate");
	*((int*)&_SetPlayerRacePreference) = (int)GetJassNative("SetPlayerRacePreference");
	*((int*)&_SetPlayerRaceSelectable) = (int)GetJassNative("SetPlayerRaceSelectable");
	*((int*)&_SetPlayerController) = (int)GetJassNative("SetPlayerController");
	*((int*)&_SetPlayerName) = (int)GetJassNative("SetPlayerName");
	*((int*)&_SetPlayerOnScoreScreen) = (int)GetJassNative("SetPlayerOnScoreScreen");
	*((int*)&_GetPlayerTeam) = (int)GetJassNative("GetPlayerTeam");
	*((int*)&_GetPlayerStartLocation) = (int)GetJassNative("GetPlayerStartLocation");
	*((int*)&_GetPlayerColor) = (int)GetJassNative("GetPlayerColor");
	*((int*)&_GetPlayerSelectable) = (int)GetJassNative("GetPlayerSelectable");
	*((int*)&_GetPlayerController) = (int)GetJassNative("GetPlayerController");
	*((int*)&_GetPlayerSlotState) = (int)GetJassNative("GetPlayerSlotState");
	*((int*)&_GetPlayerTaxRate) = (int)GetJassNative("GetPlayerTaxRate");
	*((int*)&_IsPlayerRacePrefSet) = (int)GetJassNative("IsPlayerRacePrefSet");
	*((int*)&_GetPlayerName) = (int)GetJassNative("GetPlayerName");
	*((int*)&_CreateTimer) = (int)GetJassNative("CreateTimer");
	*((int*)&_DestroyTimer) = (int)GetJassNative("DestroyTimer");
	*((int*)&_TimerStart) = (int)GetJassNative("TimerStart");
	*((int*)&_TimerGetElapsed) = (int)GetJassNative("TimerGetElapsed");
	*((int*)&_TimerGetRemaining) = (int)GetJassNative("TimerGetRemaining");
	*((int*)&_TimerGetTimeout) = (int)GetJassNative("TimerGetTimeout");
	*((int*)&_PauseTimer) = (int)GetJassNative("PauseTimer");
	*((int*)&_ResumeTimer) = (int)GetJassNative("ResumeTimer");
	*((int*)&_GetExpiredTimer) = (int)GetJassNative("GetExpiredTimer");
	*((int*)&_CreateGroup) = (int)GetJassNative("CreateGroup");
	*((int*)&_DestroyGroup) = (int)GetJassNative("DestroyGroup");
	*((int*)&_GroupAddUnit) = (int)GetJassNative("GroupAddUnit");
	*((int*)&_GroupRemoveUnit) = (int)GetJassNative("GroupRemoveUnit");
	*((int*)&_GroupClear) = (int)GetJassNative("GroupClear");
	*((int*)&_GroupEnumUnitsOfType) = (int)GetJassNative("GroupEnumUnitsOfType");
	*((int*)&_GroupEnumUnitsOfPlayer) = (int)GetJassNative("GroupEnumUnitsOfPlayer");
	*((int*)&_GroupEnumUnitsOfTypeCounted) = (int)GetJassNative("GroupEnumUnitsOfTypeCounted");
	*((int*)&_GroupEnumUnitsInRect) = (int)GetJassNative("GroupEnumUnitsInRect");
	*((int*)&_GroupEnumUnitsInRectCounted) = (int)GetJassNative("GroupEnumUnitsInRectCounted");
	*((int*)&_GroupEnumUnitsInRange) = (int)GetJassNative("GroupEnumUnitsInRange");
	*((int*)&_GroupEnumUnitsInRangeOfLoc) = (int)GetJassNative("GroupEnumUnitsInRangeOfLoc");
	*((int*)&_GroupEnumUnitsInRangeCounted) = (int)GetJassNative("GroupEnumUnitsInRangeCounted");
	*((int*)&_GroupEnumUnitsInRangeOfLocCounted) = (int)GetJassNative("GroupEnumUnitsInRangeOfLocCounted");
	*((int*)&_GroupEnumUnitsSelected) = (int)GetJassNative("GroupEnumUnitsSelected");
	*((int*)&_GroupImmediateOrder) = (int)GetJassNative("GroupImmediateOrder");
	*((int*)&_GroupImmediateOrderById) = (int)GetJassNative("GroupImmediateOrderById");
	*((int*)&_GroupPointOrder) = (int)GetJassNative("GroupPointOrder");
	*((int*)&_GroupPointOrderLoc) = (int)GetJassNative("GroupPointOrderLoc");
	*((int*)&_GroupPointOrderById) = (int)GetJassNative("GroupPointOrderById");
	*((int*)&_GroupPointOrderByIdLoc) = (int)GetJassNative("GroupPointOrderByIdLoc");
	*((int*)&_GroupTargetOrder) = (int)GetJassNative("GroupTargetOrder");
	*((int*)&_GroupTargetOrderById) = (int)GetJassNative("GroupTargetOrderById");
	*((int*)&_ForGroup) = (int)GetJassNative("ForGroup");
	*((int*)&_FirstOfGroup) = (int)GetJassNative("FirstOfGroup");
	*((int*)&_CreateForce) = (int)GetJassNative("CreateForce");
	*((int*)&_DestroyForce) = (int)GetJassNative("DestroyForce");
	*((int*)&_ForceAddPlayer) = (int)GetJassNative("ForceAddPlayer");
	*((int*)&_ForceRemovePlayer) = (int)GetJassNative("ForceRemovePlayer");
	*((int*)&_ForceClear) = (int)GetJassNative("ForceClear");
	*((int*)&_ForceEnumPlayers) = (int)GetJassNative("ForceEnumPlayers");
	*((int*)&_ForceEnumPlayersCounted) = (int)GetJassNative("ForceEnumPlayersCounted");
	*((int*)&_ForceEnumAllies) = (int)GetJassNative("ForceEnumAllies");
	*((int*)&_ForceEnumEnemies) = (int)GetJassNative("ForceEnumEnemies");
	*((int*)&_ForForce) = (int)GetJassNative("ForForce");
	*((int*)&_Rect) = (int)GetJassNative("Rect");
	*((int*)&_RectFromLoc) = (int)GetJassNative("RectFromLoc");
	*((int*)&_RemoveRect) = (int)GetJassNative("RemoveRect");
	*((int*)&_SetRect) = (int)GetJassNative("SetRect");
	*((int*)&_SetRectFromLoc) = (int)GetJassNative("SetRectFromLoc");
	*((int*)&_MoveRectTo) = (int)GetJassNative("MoveRectTo");
	*((int*)&_MoveRectToLoc) = (int)GetJassNative("MoveRectToLoc");
	*((int*)&_GetRectCenterX) = (int)GetJassNative("GetRectCenterX");
	*((int*)&_GetRectCenterY) = (int)GetJassNative("GetRectCenterY");
	*((int*)&_GetRectMinX) = (int)GetJassNative("GetRectMinX");
	*((int*)&_GetRectMinY) = (int)GetJassNative("GetRectMinY");
	*((int*)&_GetRectMaxX) = (int)GetJassNative("GetRectMaxX");
	*((int*)&_GetRectMaxY) = (int)GetJassNative("GetRectMaxY");
	*((int*)&_CreateRegion) = (int)GetJassNative("CreateRegion");
	*((int*)&_RemoveRegion) = (int)GetJassNative("RemoveRegion");
	*((int*)&_RegionAddRect) = (int)GetJassNative("RegionAddRect");
	*((int*)&_RegionClearRect) = (int)GetJassNative("RegionClearRect");
	*((int*)&_RegionAddCell) = (int)GetJassNative("RegionAddCell");
	*((int*)&_RegionAddCellAtLoc) = (int)GetJassNative("RegionAddCellAtLoc");
	*((int*)&_RegionClearCell) = (int)GetJassNative("RegionClearCell");
	*((int*)&_RegionClearCellAtLoc) = (int)GetJassNative("RegionClearCellAtLoc");
	*((int*)&_Location) = (int)GetJassNative("Location");
	*((int*)&_RemoveLocation) = (int)GetJassNative("RemoveLocation");
	*((int*)&_MoveLocation) = (int)GetJassNative("MoveLocation");
	*((int*)&_GetLocationX) = (int)GetJassNative("GetLocationX");
	*((int*)&_GetLocationY) = (int)GetJassNative("GetLocationY");
	*((int*)&_GetLocationZ) = (int)GetJassNative("GetLocationZ");
	*((int*)&_IsUnitInRegion) = (int)GetJassNative("IsUnitInRegion");
	*((int*)&_IsPointInRegion) = (int)GetJassNative("IsPointInRegion");
	*((int*)&_IsLocationInRegion) = (int)GetJassNative("IsLocationInRegion");
	*((int*)&_GetWorldBounds) = (int)GetJassNative("GetWorldBounds");
	*((int*)&_CreateTrigger) = (int)GetJassNative("CreateTrigger");
	*((int*)&_DestroyTrigger) = (int)GetJassNative("DestroyTrigger");
	*((int*)&_ResetTrigger) = (int)GetJassNative("ResetTrigger");
	*((int*)&_EnableTrigger) = (int)GetJassNative("EnableTrigger");
	*((int*)&_DisableTrigger) = (int)GetJassNative("DisableTrigger");
	*((int*)&_IsTriggerEnabled) = (int)GetJassNative("IsTriggerEnabled");
	*((int*)&_TriggerWaitOnSleeps) = (int)GetJassNative("TriggerWaitOnSleeps");
	*((int*)&_IsTriggerWaitOnSleeps) = (int)GetJassNative("IsTriggerWaitOnSleeps");
	*((int*)&_GetFilterUnit) = (int)GetJassNative("GetFilterUnit");
	*((int*)&_GetEnumUnit) = (int)GetJassNative("GetEnumUnit");
	*((int*)&_GetFilterDestructable) = (int)GetJassNative("GetFilterDestructable");
	*((int*)&_GetEnumDestructable) = (int)GetJassNative("GetEnumDestructable");
	*((int*)&_GetFilterItem) = (int)GetJassNative("GetFilterItem");
	*((int*)&_GetEnumItem) = (int)GetJassNative("GetEnumItem");
	*((int*)&_GetFilterPlayer) = (int)GetJassNative("GetFilterPlayer");
	*((int*)&_GetEnumPlayer) = (int)GetJassNative("GetEnumPlayer");
	*((int*)&_GetTriggeringTrigger) = (int)GetJassNative("GetTriggeringTrigger");
	*((int*)&_GetTriggerEventId) = (int)GetJassNative("GetTriggerEventId");
	*((int*)&_GetTriggerEvalCount) = (int)GetJassNative("GetTriggerEvalCount");
	*((int*)&_GetTriggerExecCount) = (int)GetJassNative("GetTriggerExecCount");
	*((int*)&_ExecuteFunc) = (int)GetJassNative("ExecuteFunc");
	*((int*)&_And_) = (int)GetJassNative("And_");
	*((int*)&_Or_) = (int)GetJassNative("Or_");
	*((int*)&_Not_) = (int)GetJassNative("Not_");
	*((int*)&_Condition) = (int)GetJassNative("Condition");
	*((int*)&_DestroyCondition) = (int)GetJassNative("DestroyCondition");
	*((int*)&_Filter) = (int)GetJassNative("Filter");
	*((int*)&_DestroyFilter) = (int)GetJassNative("DestroyFilter");
	*((int*)&_DestroyBoolExpr) = (int)GetJassNative("DestroyBoolExpr");
	*((int*)&_TriggerRegisterVariableEvent) = (int)GetJassNative("TriggerRegisterVariableEvent");
	*((int*)&_TriggerRegisterTimerEvent) = (int)GetJassNative("TriggerRegisterTimerEvent");
	*((int*)&_TriggerRegisterTimerExpireEvent) = (int)GetJassNative("TriggerRegisterTimerExpireEvent");
	*((int*)&_TriggerRegisterGameStateEvent) = (int)GetJassNative("TriggerRegisterGameStateEvent");
	*((int*)&_TriggerRegisterDialogEvent) = (int)GetJassNative("TriggerRegisterDialogEvent");
	*((int*)&_TriggerRegisterDialogButtonEvent) = (int)GetJassNative("TriggerRegisterDialogButtonEvent");
	*((int*)&_GetEventGameState) = (int)GetJassNative("GetEventGameState");
	*((int*)&_TriggerRegisterGameEvent) = (int)GetJassNative("TriggerRegisterGameEvent");
	*((int*)&_GetWinningPlayer) = (int)GetJassNative("GetWinningPlayer");
	*((int*)&_TriggerRegisterEnterRegion) = (int)GetJassNative("TriggerRegisterEnterRegion");
	*((int*)&_GetTriggeringRegion) = (int)GetJassNative("GetTriggeringRegion");
	*((int*)&_GetEnteringUnit) = (int)GetJassNative("GetEnteringUnit");
	*((int*)&_TriggerRegisterLeaveRegion) = (int)GetJassNative("TriggerRegisterLeaveRegion");
	*((int*)&_GetLeavingUnit) = (int)GetJassNative("GetLeavingUnit");
	*((int*)&_TriggerRegisterTrackableHitEvent) = (int)GetJassNative("TriggerRegisterTrackableHitEvent");
	*((int*)&_TriggerRegisterTrackableTrackEvent) = (int)GetJassNative("TriggerRegisterTrackableTrackEvent");
	*((int*)&_GetTriggeringTrackable) = (int)GetJassNative("GetTriggeringTrackable");
	*((int*)&_GetClickedButton) = (int)GetJassNative("GetClickedButton");
	*((int*)&_GetClickedDialog) = (int)GetJassNative("GetClickedDialog");
	*((int*)&_GetTournamentFinishSoonTimeRemaining) = (int)GetJassNative("GetTournamentFinishSoonTimeRemaining");
	*((int*)&_GetTournamentFinishNowRule) = (int)GetJassNative("GetTournamentFinishNowRule");
	*((int*)&_GetTournamentFinishNowPlayer) = (int)GetJassNative("GetTournamentFinishNowPlayer");
	*((int*)&_GetTournamentScore) = (int)GetJassNative("GetTournamentScore");
	*((int*)&_GetSaveBasicFilename) = (int)GetJassNative("GetSaveBasicFilename");
	*((int*)&_TriggerRegisterPlayerEvent) = (int)GetJassNative("TriggerRegisterPlayerEvent");
	*((int*)&_GetTriggerPlayer) = (int)GetJassNative("GetTriggerPlayer");
	*((int*)&_TriggerRegisterPlayerUnitEvent) = (int)GetJassNative("TriggerRegisterPlayerUnitEvent");
	*((int*)&_GetLevelingUnit) = (int)GetJassNative("GetLevelingUnit");
	*((int*)&_GetLearningUnit) = (int)GetJassNative("GetLearningUnit");
	*((int*)&_GetLearnedSkill) = (int)GetJassNative("GetLearnedSkill");
	*((int*)&_GetLearnedSkillLevel) = (int)GetJassNative("GetLearnedSkillLevel");
	*((int*)&_GetRevivableUnit) = (int)GetJassNative("GetRevivableUnit");
	*((int*)&_GetRevivingUnit) = (int)GetJassNative("GetRevivingUnit");
	*((int*)&_GetAttacker) = (int)GetJassNative("GetAttacker");
	*((int*)&_GetRescuer) = (int)GetJassNative("GetRescuer");
	*((int*)&_GetDyingUnit) = (int)GetJassNative("GetDyingUnit");
	*((int*)&_GetKillingUnit) = (int)GetJassNative("GetKillingUnit");
	*((int*)&_GetDecayingUnit) = (int)GetJassNative("GetDecayingUnit");
	*((int*)&_GetSelectedUnit) = (int)GetJassNative("GetSelectedUnit");
	*((int*)&_GetConstructingStructure) = (int)GetJassNative("GetConstructingStructure");
	*((int*)&_GetCancelledStructure) = (int)GetJassNative("GetCancelledStructure");
	*((int*)&_GetConstructedStructure) = (int)GetJassNative("GetConstructedStructure");
	*((int*)&_GetResearchingUnit) = (int)GetJassNative("GetResearchingUnit");
	*((int*)&_GetResearched) = (int)GetJassNative("GetResearched");
	*((int*)&_GetTrainedUnitType) = (int)GetJassNative("GetTrainedUnitType");
	*((int*)&_GetTrainedUnit) = (int)GetJassNative("GetTrainedUnit");
	*((int*)&_GetDetectedUnit) = (int)GetJassNative("GetDetectedUnit");
	*((int*)&_GetSummoningUnit) = (int)GetJassNative("GetSummoningUnit");
	*((int*)&_GetSummonedUnit) = (int)GetJassNative("GetSummonedUnit");
	*((int*)&_GetTransportUnit) = (int)GetJassNative("GetTransportUnit");
	*((int*)&_GetLoadedUnit) = (int)GetJassNative("GetLoadedUnit");
	*((int*)&_GetSellingUnit) = (int)GetJassNative("GetSellingUnit");
	*((int*)&_GetSoldUnit) = (int)GetJassNative("GetSoldUnit");
	*((int*)&_GetBuyingUnit) = (int)GetJassNative("GetBuyingUnit");
	*((int*)&_GetSoldItem) = (int)GetJassNative("GetSoldItem");
	*((int*)&_GetChangingUnit) = (int)GetJassNative("GetChangingUnit");
	*((int*)&_GetChangingUnitPrevOwner) = (int)GetJassNative("GetChangingUnitPrevOwner");
	*((int*)&_GetManipulatingUnit) = (int)GetJassNative("GetManipulatingUnit");
	*((int*)&_GetManipulatedItem) = (int)GetJassNative("GetManipulatedItem");
	*((int*)&_GetOrderedUnit) = (int)GetJassNative("GetOrderedUnit");
	*((int*)&_GetIssuedOrderId) = (int)GetJassNative("GetIssuedOrderId");
	*((int*)&_GetOrderPointX) = (int)GetJassNative("GetOrderPointX");
	*((int*)&_GetOrderPointY) = (int)GetJassNative("GetOrderPointY");
	*((int*)&_GetOrderPointLoc) = (int)GetJassNative("GetOrderPointLoc");
	*((int*)&_GetOrderTarget) = (int)GetJassNative("GetOrderTarget");
	*((int*)&_GetOrderTargetDestructable) = (int)GetJassNative("GetOrderTargetDestructable");
	*((int*)&_GetOrderTargetItem) = (int)GetJassNative("GetOrderTargetItem");
	*((int*)&_GetOrderTargetUnit) = (int)GetJassNative("GetOrderTargetUnit");
	*((int*)&_GetSpellAbilityUnit) = (int)GetJassNative("GetSpellAbilityUnit");
	*((int*)&_GetSpellAbilityId) = (int)GetJassNative("GetSpellAbilityId");
	*((int*)&_GetSpellAbility) = (int)GetJassNative("GetSpellAbility");
	*((int*)&_GetSpellTargetLoc) = (int)GetJassNative("GetSpellTargetLoc");
	*((int*)&_GetSpellTargetX) = (int)GetJassNative("GetSpellTargetX");
	*((int*)&_GetSpellTargetY) = (int)GetJassNative("GetSpellTargetY");
	*((int*)&_GetSpellTargetDestructable) = (int)GetJassNative("GetSpellTargetDestructable");
	*((int*)&_GetSpellTargetItem) = (int)GetJassNative("GetSpellTargetItem");
	*((int*)&_GetSpellTargetUnit) = (int)GetJassNative("GetSpellTargetUnit");
	*((int*)&_TriggerRegisterPlayerAllianceChange) = (int)GetJassNative("TriggerRegisterPlayerAllianceChange");
	*((int*)&_TriggerRegisterPlayerStateEvent) = (int)GetJassNative("TriggerRegisterPlayerStateEvent");
	*((int*)&_GetEventPlayerState) = (int)GetJassNative("GetEventPlayerState");
	*((int*)&_TriggerRegisterPlayerChatEvent) = (int)GetJassNative("TriggerRegisterPlayerChatEvent");
	*((int*)&_GetEventPlayerChatString) = (int)GetJassNative("GetEventPlayerChatString");
	*((int*)&_GetEventPlayerChatStringMatched) = (int)GetJassNative("GetEventPlayerChatStringMatched");
	*((int*)&_TriggerRegisterDeathEvent) = (int)GetJassNative("TriggerRegisterDeathEvent");
	*((int*)&_GetTriggerUnit) = (int)GetJassNative("GetTriggerUnit");
	*((int*)&_TriggerRegisterUnitStateEvent) = (int)GetJassNative("TriggerRegisterUnitStateEvent");
	*((int*)&_GetEventUnitState) = (int)GetJassNative("GetEventUnitState");
	*((int*)&_TriggerRegisterUnitEvent) = (int)GetJassNative("TriggerRegisterUnitEvent");
	*((int*)&_GetEventDamage) = (int)GetJassNative("GetEventDamage");
	*((int*)&_GetEventDamageSource) = (int)GetJassNative("GetEventDamageSource");
	*((int*)&_GetEventDetectingPlayer) = (int)GetJassNative("GetEventDetectingPlayer");
	*((int*)&_TriggerRegisterFilterUnitEvent) = (int)GetJassNative("TriggerRegisterFilterUnitEvent");
	*((int*)&_GetEventTargetUnit) = (int)GetJassNative("GetEventTargetUnit");
	*((int*)&_TriggerRegisterUnitInRange) = (int)GetJassNative("TriggerRegisterUnitInRange");
	*((int*)&_TriggerAddCondition) = (int)GetJassNative("TriggerAddCondition");
	*((int*)&_TriggerRemoveCondition) = (int)GetJassNative("TriggerRemoveCondition");
	*((int*)&_TriggerClearConditions) = (int)GetJassNative("TriggerClearConditions");
	*((int*)&_TriggerAddAction) = (int)GetJassNative("TriggerAddAction");
	*((int*)&_TriggerRemoveAction) = (int)GetJassNative("TriggerRemoveAction");
	*((int*)&_TriggerClearActions) = (int)GetJassNative("TriggerClearActions");
	*((int*)&_TriggerSleepAction) = (int)GetJassNative("TriggerSleepAction");
	*((int*)&_TriggerWaitForSound) = (int)GetJassNative("TriggerWaitForSound");
	*((int*)&_TriggerEvaluate) = (int)GetJassNative("TriggerEvaluate");
	*((int*)&_TriggerExecute) = (int)GetJassNative("TriggerExecute");
	*((int*)&_TriggerExecuteWait) = (int)GetJassNative("TriggerExecuteWait");
	*((int*)&_TriggerSyncStart) = (int)GetJassNative("TriggerSyncStart");
	*((int*)&_TriggerSyncReady) = (int)GetJassNative("TriggerSyncReady");
	*((int*)&_GetWidgetLife) = (int)GetJassNative("GetWidgetLife");
	*((int*)&_SetWidgetLife) = (int)GetJassNative("SetWidgetLife");
	*((int*)&_GetWidgetX) = (int)GetJassNative("GetWidgetX");
	*((int*)&_GetWidgetY) = (int)GetJassNative("GetWidgetY");
	*((int*)&_GetTriggerWidget) = (int)GetJassNative("GetTriggerWidget");
	*((int*)&_CreateDestructable) = (int)GetJassNative("CreateDestructable");
	*((int*)&_CreateDestructableZ) = (int)GetJassNative("CreateDestructableZ");
	*((int*)&_CreateDeadDestructable) = (int)GetJassNative("CreateDeadDestructable");
	*((int*)&_CreateDeadDestructableZ) = (int)GetJassNative("CreateDeadDestructableZ");
	*((int*)&_RemoveDestructable) = (int)GetJassNative("RemoveDestructable");
	*((int*)&_KillDestructable) = (int)GetJassNative("KillDestructable");
	*((int*)&_SetDestructableInvulnerable) = (int)GetJassNative("SetDestructableInvulnerable");
	*((int*)&_IsDestructableInvulnerable) = (int)GetJassNative("IsDestructableInvulnerable");
	*((int*)&_EnumDestructablesInRect) = (int)GetJassNative("EnumDestructablesInRect");
	*((int*)&_GetDestructableTypeId) = (int)GetJassNative("GetDestructableTypeId");
	*((int*)&_GetDestructableX) = (int)GetJassNative("GetDestructableX");
	*((int*)&_GetDestructableY) = (int)GetJassNative("GetDestructableY");
	*((int*)&_SetDestructableLife) = (int)GetJassNative("SetDestructableLife");
	*((int*)&_GetDestructableLife) = (int)GetJassNative("GetDestructableLife");
	*((int*)&_SetDestructableMaxLife) = (int)GetJassNative("SetDestructableMaxLife");
	*((int*)&_GetDestructableMaxLife) = (int)GetJassNative("GetDestructableMaxLife");
	*((int*)&_DestructableRestoreLife) = (int)GetJassNative("DestructableRestoreLife");
	*((int*)&_QueueDestructableAnimation) = (int)GetJassNative("QueueDestructableAnimation");
	*((int*)&_SetDestructableAnimation) = (int)GetJassNative("SetDestructableAnimation");
	*((int*)&_SetDestructableAnimationSpeed) = (int)GetJassNative("SetDestructableAnimationSpeed");
	*((int*)&_ShowDestructable) = (int)GetJassNative("ShowDestructable");
	*((int*)&_GetDestructableOccluderHeight) = (int)GetJassNative("GetDestructableOccluderHeight");
	*((int*)&_SetDestructableOccluderHeight) = (int)GetJassNative("SetDestructableOccluderHeight");
	*((int*)&_GetDestructableName) = (int)GetJassNative("GetDestructableName");
	*((int*)&_GetTriggerDestructable) = (int)GetJassNative("GetTriggerDestructable");
	*((int*)&_CreateItem) = (int)GetJassNative("CreateItem");
	*((int*)&_RemoveItem) = (int)GetJassNative("RemoveItem");
	*((int*)&_GetItemPlayer) = (int)GetJassNative("GetItemPlayer");
	*((int*)&_GetItemTypeId) = (int)GetJassNative("GetItemTypeId");
	*((int*)&_GetItemX) = (int)GetJassNative("GetItemX");
	*((int*)&_GetItemY) = (int)GetJassNative("GetItemY");
	*((int*)&_SetItemPosition) = (int)GetJassNative("SetItemPosition");
	*((int*)&_SetItemDropOnDeath) = (int)GetJassNative("SetItemDropOnDeath");
	*((int*)&_SetItemDroppable) = (int)GetJassNative("SetItemDroppable");
	*((int*)&_SetItemPawnable) = (int)GetJassNative("SetItemPawnable");
	*((int*)&_SetItemPlayer) = (int)GetJassNative("SetItemPlayer");
	*((int*)&_SetItemInvulnerable) = (int)GetJassNative("SetItemInvulnerable");
	*((int*)&_IsItemInvulnerable) = (int)GetJassNative("IsItemInvulnerable");
	*((int*)&_SetItemVisible) = (int)GetJassNative("SetItemVisible");
	*((int*)&_IsItemVisible) = (int)GetJassNative("IsItemVisible");
	*((int*)&_IsItemOwned) = (int)GetJassNative("IsItemOwned");
	*((int*)&_IsItemPowerup) = (int)GetJassNative("IsItemPowerup");
	*((int*)&_IsItemSellable) = (int)GetJassNative("IsItemSellable");
	*((int*)&_IsItemPawnable) = (int)GetJassNative("IsItemPawnable");
	*((int*)&_IsItemIdPowerup) = (int)GetJassNative("IsItemIdPowerup");
	*((int*)&_IsItemIdSellable) = (int)GetJassNative("IsItemIdSellable");
	*((int*)&_IsItemIdPawnable) = (int)GetJassNative("IsItemIdPawnable");
	*((int*)&_EnumItemsInRect) = (int)GetJassNative("EnumItemsInRect");
	*((int*)&_GetItemLevel) = (int)GetJassNative("GetItemLevel");
	*((int*)&_GetItemType) = (int)GetJassNative("GetItemType");
	*((int*)&_SetItemDropID) = (int)GetJassNative("SetItemDropID");
	*((int*)&_GetItemName) = (int)GetJassNative("GetItemName");
	*((int*)&_GetItemCharges) = (int)GetJassNative("GetItemCharges");
	*((int*)&_SetItemCharges) = (int)GetJassNative("SetItemCharges");
	*((int*)&_GetItemUserData) = (int)GetJassNative("GetItemUserData");
	*((int*)&_SetItemUserData) = (int)GetJassNative("SetItemUserData");
	*((int*)&_CreateUnit) = (int)GetJassNative("CreateUnit");
	*((int*)&_CreateUnitByName) = (int)GetJassNative("CreateUnitByName");
	*((int*)&_CreateUnitAtLoc) = (int)GetJassNative("CreateUnitAtLoc");
	*((int*)&_CreateUnitAtLocByName) = (int)GetJassNative("CreateUnitAtLocByName");
	*((int*)&_CreateCorpse) = (int)GetJassNative("CreateCorpse");
	*((int*)&_KillUnit) = (int)GetJassNative("KillUnit");
	*((int*)&_RemoveUnit) = (int)GetJassNative("RemoveUnit");
	*((int*)&_ShowUnit) = (int)GetJassNative("ShowUnit");
	*((int*)&_SetUnitState) = (int)GetJassNative("SetUnitState");
	*((int*)&_SetUnitX) = (int)GetJassNative("SetUnitX");
	*((int*)&_SetUnitY) = (int)GetJassNative("SetUnitY");
	*((int*)&_SetUnitPosition) = (int)GetJassNative("SetUnitPosition");
	*((int*)&_SetUnitPositionLoc) = (int)GetJassNative("SetUnitPositionLoc");
	*((int*)&_SetUnitFacing) = (int)GetJassNative("SetUnitFacing");
	*((int*)&_SetUnitFacingTimed) = (int)GetJassNative("SetUnitFacingTimed");
	*((int*)&_SetUnitMoveSpeed) = (int)GetJassNative("SetUnitMoveSpeed");
	*((int*)&_SetUnitFlyHeight) = (int)GetJassNative("SetUnitFlyHeight");
	*((int*)&_SetUnitTurnSpeed) = (int)GetJassNative("SetUnitTurnSpeed");
	*((int*)&_SetUnitPropWindow) = (int)GetJassNative("SetUnitPropWindow");
	*((int*)&_SetUnitAcquireRange) = (int)GetJassNative("SetUnitAcquireRange");
	*((int*)&_SetUnitCreepGuard) = (int)GetJassNative("SetUnitCreepGuard");
	*((int*)&_GetUnitAcquireRange) = (int)GetJassNative("GetUnitAcquireRange");
	*((int*)&_GetUnitTurnSpeed) = (int)GetJassNative("GetUnitTurnSpeed");
	*((int*)&_GetUnitPropWindow) = (int)GetJassNative("GetUnitPropWindow");
	*((int*)&_GetUnitFlyHeight) = (int)GetJassNative("GetUnitFlyHeight");
	*((int*)&_GetUnitDefaultAcquireRange) = (int)GetJassNative("GetUnitDefaultAcquireRange");
	*((int*)&_GetUnitDefaultTurnSpeed) = (int)GetJassNative("GetUnitDefaultTurnSpeed");
	*((int*)&_GetUnitDefaultPropWindow) = (int)GetJassNative("GetUnitDefaultPropWindow");
	*((int*)&_GetUnitDefaultFlyHeight) = (int)GetJassNative("GetUnitDefaultFlyHeight");
	*((int*)&_SetUnitOwner) = (int)GetJassNative("SetUnitOwner");
	*((int*)&_SetUnitColor) = (int)GetJassNative("SetUnitColor");
	*((int*)&_SetUnitScale) = (int)GetJassNative("SetUnitScale");
	*((int*)&_SetUnitTimeScale) = (int)GetJassNative("SetUnitTimeScale");
	*((int*)&_SetUnitBlendTime) = (int)GetJassNative("SetUnitBlendTime");
	*((int*)&_SetUnitVertexColor) = (int)GetJassNative("SetUnitVertexColor");
	*((int*)&_QueueUnitAnimation) = (int)GetJassNative("QueueUnitAnimation");
	*((int*)&_SetUnitAnimation) = (int)GetJassNative("SetUnitAnimation");
	*((int*)&_SetUnitAnimationByIndex) = (int)GetJassNative("SetUnitAnimationByIndex");
	*((int*)&_SetUnitAnimationWithRarity) = (int)GetJassNative("SetUnitAnimationWithRarity");
	*((int*)&_AddUnitAnimationProperties) = (int)GetJassNative("AddUnitAnimationProperties");
	*((int*)&_SetUnitLookAt) = (int)GetJassNative("SetUnitLookAt");
	*((int*)&_ResetUnitLookAt) = (int)GetJassNative("ResetUnitLookAt");
	*((int*)&_SetUnitRescuable) = (int)GetJassNative("SetUnitRescuable");
	*((int*)&_SetUnitRescueRange) = (int)GetJassNative("SetUnitRescueRange");
	*((int*)&_SetHeroStr) = (int)GetJassNative("SetHeroStr");
	*((int*)&_SetHeroAgi) = (int)GetJassNative("SetHeroAgi");
	*((int*)&_SetHeroInt) = (int)GetJassNative("SetHeroInt");
	*((int*)&_GetHeroStr) = (int)GetJassNative("GetHeroStr");
	*((int*)&_GetHeroAgi) = (int)GetJassNative("GetHeroAgi");
	*((int*)&_GetHeroInt) = (int)GetJassNative("GetHeroInt");
	*((int*)&_UnitStripHeroLevel) = (int)GetJassNative("UnitStripHeroLevel");
	*((int*)&_GetHeroXP) = (int)GetJassNative("GetHeroXP");
	*((int*)&_SetHeroXP) = (int)GetJassNative("SetHeroXP");
	*((int*)&_GetHeroSkillPoints) = (int)GetJassNative("GetHeroSkillPoints");
	*((int*)&_UnitModifySkillPoints) = (int)GetJassNative("UnitModifySkillPoints");
	*((int*)&_AddHeroXP) = (int)GetJassNative("AddHeroXP");
	*((int*)&_SetHeroLevel) = (int)GetJassNative("SetHeroLevel");
	*((int*)&_GetHeroLevel) = (int)GetJassNative("GetHeroLevel");
	*((int*)&_GetUnitLevel) = (int)GetJassNative("GetUnitLevel");
	*((int*)&_GetHeroProperName) = (int)GetJassNative("GetHeroProperName");
	*((int*)&_SuspendHeroXP) = (int)GetJassNative("SuspendHeroXP");
	*((int*)&_IsSuspendedXP) = (int)GetJassNative("IsSuspendedXP");
	*((int*)&_SelectHeroSkill) = (int)GetJassNative("SelectHeroSkill");
	*((int*)&_GetUnitAbilityLevel) = (int)GetJassNative("GetUnitAbilityLevel");
	*((int*)&_DecUnitAbilityLevel) = (int)GetJassNative("DecUnitAbilityLevel");
	*((int*)&_IncUnitAbilityLevel) = (int)GetJassNative("IncUnitAbilityLevel");
	*((int*)&_SetUnitAbilityLevel) = (int)GetJassNative("SetUnitAbilityLevel");
	*((int*)&_ReviveHero) = (int)GetJassNative("ReviveHero");
	*((int*)&_ReviveHeroLoc) = (int)GetJassNative("ReviveHeroLoc");
	*((int*)&_SetUnitExploded) = (int)GetJassNative("SetUnitExploded");
	*((int*)&_SetUnitInvulnerable) = (int)GetJassNative("SetUnitInvulnerable");
	*((int*)&_PauseUnit) = (int)GetJassNative("PauseUnit");
	*((int*)&_IsUnitPaused) = (int)GetJassNative("IsUnitPaused");
	*((int*)&_SetUnitPathing) = (int)GetJassNative("SetUnitPathing");
	*((int*)&_ClearSelection) = (int)GetJassNative("ClearSelection");
	*((int*)&_SelectUnit) = (int)GetJassNative("SelectUnit");
	*((int*)&_GetUnitPointValue) = (int)GetJassNative("GetUnitPointValue");
	*((int*)&_GetUnitPointValueByType) = (int)GetJassNative("GetUnitPointValueByType");
	*((int*)&_SetUnitPointValueByType) = (int)GetJassNative("SetUnitPointValueByType");
	*((int*)&_UnitAddItem) = (int)GetJassNative("UnitAddItem");
	*((int*)&_UnitAddItemById) = (int)GetJassNative("UnitAddItemById");
	*((int*)&_UnitAddItemToSlotById) = (int)GetJassNative("UnitAddItemToSlotById");
	*((int*)&_UnitRemoveItem) = (int)GetJassNative("UnitRemoveItem");
	*((int*)&_UnitRemoveItemFromSlot) = (int)GetJassNative("UnitRemoveItemFromSlot");
	*((int*)&_UnitHasItem) = (int)GetJassNative("UnitHasItem");
	*((int*)&_UnitItemInSlot) = (int)GetJassNative("UnitItemInSlot");
	*((int*)&_UnitInventorySize) = (int)GetJassNative("UnitInventorySize");
	*((int*)&_UnitDropItemPoint) = (int)GetJassNative("UnitDropItemPoint");
	*((int*)&_UnitDropItemSlot) = (int)GetJassNative("UnitDropItemSlot");
	*((int*)&_UnitDropItemTarget) = (int)GetJassNative("UnitDropItemTarget");
	*((int*)&_UnitUseItem) = (int)GetJassNative("UnitUseItem");
	*((int*)&_UnitUseItemPoint) = (int)GetJassNative("UnitUseItemPoint");
	*((int*)&_UnitUseItemTarget) = (int)GetJassNative("UnitUseItemTarget");
	*((int*)&_GetUnitX) = (int)GetJassNative("GetUnitX");
	*((int*)&_GetUnitY) = (int)GetJassNative("GetUnitY");
	*((int*)&_GetUnitLoc) = (int)GetJassNative("GetUnitLoc");
	*((int*)&_GetUnitFacing) = (int)GetJassNative("GetUnitFacing");
	*((int*)&_GetUnitMoveSpeed) = (int)GetJassNative("GetUnitMoveSpeed");
	*((int*)&_GetUnitDefaultMoveSpeed) = (int)GetJassNative("GetUnitDefaultMoveSpeed");
	*((int*)&_GetUnitState) = (int)GetJassNative("GetUnitState");
	*((int*)&_GetOwningPlayer) = (int)GetJassNative("GetOwningPlayer");
	*((int*)&_GetUnitTypeId) = (int)GetJassNative("GetUnitTypeId");
	*((int*)&_GetUnitRace) = (int)GetJassNative("GetUnitRace");
	*((int*)&_GetUnitName) = (int)GetJassNative("GetUnitName");
	*((int*)&_GetUnitFoodUsed) = (int)GetJassNative("GetUnitFoodUsed");
	*((int*)&_GetUnitFoodMade) = (int)GetJassNative("GetUnitFoodMade");
	*((int*)&_GetFoodMade) = (int)GetJassNative("GetFoodMade");
	*((int*)&_GetFoodUsed) = (int)GetJassNative("GetFoodUsed");
	*((int*)&_SetUnitUseFood) = (int)GetJassNative("SetUnitUseFood");
	*((int*)&_GetUnitRallyPoint) = (int)GetJassNative("GetUnitRallyPoint");
	*((int*)&_GetUnitRallyUnit) = (int)GetJassNative("GetUnitRallyUnit");
	*((int*)&_GetUnitRallyDestructable) = (int)GetJassNative("GetUnitRallyDestructable");
	*((int*)&_IsUnitInGroup) = (int)GetJassNative("IsUnitInGroup");
	*((int*)&_IsUnitInForce) = (int)GetJassNative("IsUnitInForce");
	*((int*)&_IsUnitOwnedByPlayer) = (int)GetJassNative("IsUnitOwnedByPlayer");
	*((int*)&_IsUnitAlly) = (int)GetJassNative("IsUnitAlly");
	*((int*)&_IsUnitEnemy) = (int)GetJassNative("IsUnitEnemy");
	*((int*)&_IsUnitVisible) = (int)GetJassNative("IsUnitVisible");
	*((int*)&_IsUnitDetected) = (int)GetJassNative("IsUnitDetected");
	*((int*)&_IsUnitInvisible) = (int)GetJassNative("IsUnitInvisible");
	*((int*)&_IsUnitFogged) = (int)GetJassNative("IsUnitFogged");
	*((int*)&_IsUnitMasked) = (int)GetJassNative("IsUnitMasked");
	*((int*)&_IsUnitSelected) = (int)GetJassNative("IsUnitSelected");
	*((int*)&_IsUnitRace) = (int)GetJassNative("IsUnitRace");
	*((int*)&_IsUnitType) = (int)GetJassNative("IsUnitType");
	*((int*)&_IsUnit) = (int)GetJassNative("IsUnit");
	*((int*)&_IsUnitInRange) = (int)GetJassNative("IsUnitInRange");
	*((int*)&_IsUnitInRangeXY) = (int)GetJassNative("IsUnitInRangeXY");
	*((int*)&_IsUnitInRangeLoc) = (int)GetJassNative("IsUnitInRangeLoc");
	*((int*)&_IsUnitHidden) = (int)GetJassNative("IsUnitHidden");
	*((int*)&_IsUnitIllusion) = (int)GetJassNative("IsUnitIllusion");
	*((int*)&_IsUnitInTransport) = (int)GetJassNative("IsUnitInTransport");
	*((int*)&_IsUnitLoaded) = (int)GetJassNative("IsUnitLoaded");
	*((int*)&_IsHeroUnitId) = (int)GetJassNative("IsHeroUnitId");
	*((int*)&_IsUnitIdType) = (int)GetJassNative("IsUnitIdType");
	*((int*)&_UnitShareVision) = (int)GetJassNative("UnitShareVision");
	*((int*)&_UnitSuspendDecay) = (int)GetJassNative("UnitSuspendDecay");
	*((int*)&_UnitAddType) = (int)GetJassNative("UnitAddType");
	*((int*)&_UnitRemoveType) = (int)GetJassNative("UnitRemoveType");
	*((int*)&_UnitAddAbility) = (int)GetJassNative("UnitAddAbility");
	*((int*)&_UnitRemoveAbility) = (int)GetJassNative("UnitRemoveAbility");
	*((int*)&_UnitMakeAbilityPermanent) = (int)GetJassNative("UnitMakeAbilityPermanent");
	*((int*)&_UnitRemoveBuffs) = (int)GetJassNative("UnitRemoveBuffs");
	*((int*)&_UnitRemoveBuffsEx) = (int)GetJassNative("UnitRemoveBuffsEx");
	*((int*)&_UnitHasBuffsEx) = (int)GetJassNative("UnitHasBuffsEx");
	*((int*)&_UnitCountBuffsEx) = (int)GetJassNative("UnitCountBuffsEx");
	*((int*)&_UnitAddSleep) = (int)GetJassNative("UnitAddSleep");
	*((int*)&_UnitCanSleep) = (int)GetJassNative("UnitCanSleep");
	*((int*)&_UnitAddSleepPerm) = (int)GetJassNative("UnitAddSleepPerm");
	*((int*)&_UnitCanSleepPerm) = (int)GetJassNative("UnitCanSleepPerm");
	*((int*)&_UnitIsSleeping) = (int)GetJassNative("UnitIsSleeping");
	*((int*)&_UnitWakeUp) = (int)GetJassNative("UnitWakeUp");
	*((int*)&_UnitApplyTimedLife) = (int)GetJassNative("UnitApplyTimedLife");
	*((int*)&_UnitIgnoreAlarm) = (int)GetJassNative("UnitIgnoreAlarm");
	*((int*)&_UnitIgnoreAlarmToggled) = (int)GetJassNative("UnitIgnoreAlarmToggled");
	*((int*)&_UnitResetCooldown) = (int)GetJassNative("UnitResetCooldown");
	*((int*)&_UnitSetConstructionProgress) = (int)GetJassNative("UnitSetConstructionProgress");
	*((int*)&_UnitSetUpgradeProgress) = (int)GetJassNative("UnitSetUpgradeProgress");
	*((int*)&_UnitPauseTimedLife) = (int)GetJassNative("UnitPauseTimedLife");
	*((int*)&_UnitSetUsesAltIcon) = (int)GetJassNative("UnitSetUsesAltIcon");
	*((int*)&_UnitDamagePoint) = (int)GetJassNative("UnitDamagePoint");
	*((int*)&_UnitDamageTarget) = (int)GetJassNative("UnitDamageTarget");
	*((int*)&_IssueImmediateOrder) = (int)GetJassNative("IssueImmediateOrder");
	*((int*)&_IssueImmediateOrderById) = (int)GetJassNative("IssueImmediateOrderById");
	*((int*)&_IssuePointOrder) = (int)GetJassNative("IssuePointOrder");
	*((int*)&_IssuePointOrderLoc) = (int)GetJassNative("IssuePointOrderLoc");
	*((int*)&_IssuePointOrderById) = (int)GetJassNative("IssuePointOrderById");
	*((int*)&_IssuePointOrderByIdLoc) = (int)GetJassNative("IssuePointOrderByIdLoc");
	*((int*)&_IssueTargetOrder) = (int)GetJassNative("IssueTargetOrder");
	*((int*)&_IssueTargetOrderById) = (int)GetJassNative("IssueTargetOrderById");
	*((int*)&_IssueInstantPointOrder) = (int)GetJassNative("IssueInstantPointOrder");
	*((int*)&_IssueInstantPointOrderById) = (int)GetJassNative("IssueInstantPointOrderById");
	*((int*)&_IssueInstantTargetOrder) = (int)GetJassNative("IssueInstantTargetOrder");
	*((int*)&_IssueInstantTargetOrderById) = (int)GetJassNative("IssueInstantTargetOrderById");
	*((int*)&_IssueBuildOrder) = (int)GetJassNative("IssueBuildOrder");
	*((int*)&_IssueBuildOrderById) = (int)GetJassNative("IssueBuildOrderById");
	*((int*)&_IssueNeutralImmediateOrder) = (int)GetJassNative("IssueNeutralImmediateOrder");
	*((int*)&_IssueNeutralImmediateOrderById) = (int)GetJassNative("IssueNeutralImmediateOrderById");
	*((int*)&_IssueNeutralPointOrder) = (int)GetJassNative("IssueNeutralPointOrder");
	*((int*)&_IssueNeutralPointOrderById) = (int)GetJassNative("IssueNeutralPointOrderById");
	*((int*)&_IssueNeutralTargetOrder) = (int)GetJassNative("IssueNeutralTargetOrder");
	*((int*)&_IssueNeutralTargetOrderById) = (int)GetJassNative("IssueNeutralTargetOrderById");
	*((int*)&_GetUnitCurrentOrder) = (int)GetJassNative("GetUnitCurrentOrder");
	*((int*)&_SetResourceAmount) = (int)GetJassNative("SetResourceAmount");
	*((int*)&_AddResourceAmount) = (int)GetJassNative("AddResourceAmount");
	*((int*)&_GetResourceAmount) = (int)GetJassNative("GetResourceAmount");
	*((int*)&_WaygateGetDestinationX) = (int)GetJassNative("WaygateGetDestinationX");
	*((int*)&_WaygateGetDestinationY) = (int)GetJassNative("WaygateGetDestinationY");
	*((int*)&_WaygateSetDestination) = (int)GetJassNative("WaygateSetDestination");
	*((int*)&_WaygateActivate) = (int)GetJassNative("WaygateActivate");
	*((int*)&_WaygateIsActive) = (int)GetJassNative("WaygateIsActive");
	*((int*)&_AddItemToAllStock) = (int)GetJassNative("AddItemToAllStock");
	*((int*)&_AddItemToStock) = (int)GetJassNative("AddItemToStock");
	*((int*)&_AddUnitToAllStock) = (int)GetJassNative("AddUnitToAllStock");
	*((int*)&_AddUnitToStock) = (int)GetJassNative("AddUnitToStock");
	*((int*)&_RemoveItemFromAllStock) = (int)GetJassNative("RemoveItemFromAllStock");
	*((int*)&_RemoveItemFromStock) = (int)GetJassNative("RemoveItemFromStock");
	*((int*)&_RemoveUnitFromAllStock) = (int)GetJassNative("RemoveUnitFromAllStock");
	*((int*)&_RemoveUnitFromStock) = (int)GetJassNative("RemoveUnitFromStock");
	*((int*)&_SetAllItemTypeSlots) = (int)GetJassNative("SetAllItemTypeSlots");
	*((int*)&_SetAllUnitTypeSlots) = (int)GetJassNative("SetAllUnitTypeSlots");
	*((int*)&_SetItemTypeSlots) = (int)GetJassNative("SetItemTypeSlots");
	*((int*)&_SetUnitTypeSlots) = (int)GetJassNative("SetUnitTypeSlots");
	*((int*)&_GetUnitUserData) = (int)GetJassNative("GetUnitUserData");
	*((int*)&_SetUnitUserData) = (int)GetJassNative("SetUnitUserData");
	*((int*)&_Player) = (int)GetJassNative("Player");
	*((int*)&_GetLocalPlayer) = (int)GetJassNative("GetLocalPlayer");
	*((int*)&_IsPlayerAlly) = (int)GetJassNative("IsPlayerAlly");
	*((int*)&_IsPlayerEnemy) = (int)GetJassNative("IsPlayerEnemy");
	*((int*)&_IsPlayerInForce) = (int)GetJassNative("IsPlayerInForce");
	*((int*)&_IsPlayerObserver) = (int)GetJassNative("IsPlayerObserver");
	*((int*)&_IsVisibleToPlayer) = (int)GetJassNative("IsVisibleToPlayer");
	*((int*)&_IsLocationVisibleToPlayer) = (int)GetJassNative("IsLocationVisibleToPlayer");
	*((int*)&_IsFoggedToPlayer) = (int)GetJassNative("IsFoggedToPlayer");
	*((int*)&_IsLocationFoggedToPlayer) = (int)GetJassNative("IsLocationFoggedToPlayer");
	*((int*)&_IsMaskedToPlayer) = (int)GetJassNative("IsMaskedToPlayer");
	*((int*)&_IsLocationMaskedToPlayer) = (int)GetJassNative("IsLocationMaskedToPlayer");
	*((int*)&_GetPlayerRace) = (int)GetJassNative("GetPlayerRace");
	*((int*)&_GetPlayerId) = (int)GetJassNative("GetPlayerId");
	*((int*)&_GetPlayerUnitCount) = (int)GetJassNative("GetPlayerUnitCount");
	*((int*)&_GetPlayerTypedUnitCount) = (int)GetJassNative("GetPlayerTypedUnitCount");
	*((int*)&_GetPlayerStructureCount) = (int)GetJassNative("GetPlayerStructureCount");
	*((int*)&_GetPlayerState) = (int)GetJassNative("GetPlayerState");
	*((int*)&_GetPlayerScore) = (int)GetJassNative("GetPlayerScore");
	*((int*)&_GetPlayerAlliance) = (int)GetJassNative("GetPlayerAlliance");
	*((int*)&_GetPlayerHandicap) = (int)GetJassNative("GetPlayerHandicap");
	*((int*)&_GetPlayerHandicapXP) = (int)GetJassNative("GetPlayerHandicapXP");
	*((int*)&_SetPlayerHandicap) = (int)GetJassNative("SetPlayerHandicap");
	*((int*)&_SetPlayerHandicapXP) = (int)GetJassNative("SetPlayerHandicapXP");
	*((int*)&_SetPlayerTechMaxAllowed) = (int)GetJassNative("SetPlayerTechMaxAllowed");
	*((int*)&_GetPlayerTechMaxAllowed) = (int)GetJassNative("GetPlayerTechMaxAllowed");
	*((int*)&_AddPlayerTechResearched) = (int)GetJassNative("AddPlayerTechResearched");
	*((int*)&_SetPlayerTechResearched) = (int)GetJassNative("SetPlayerTechResearched");
	*((int*)&_GetPlayerTechResearched) = (int)GetJassNative("GetPlayerTechResearched");
	*((int*)&_GetPlayerTechCount) = (int)GetJassNative("GetPlayerTechCount");
	*((int*)&_SetPlayerUnitsOwner) = (int)GetJassNative("SetPlayerUnitsOwner");
	*((int*)&_CripplePlayer) = (int)GetJassNative("CripplePlayer");
	*((int*)&_SetPlayerAbilityAvailable) = (int)GetJassNative("SetPlayerAbilityAvailable");
	*((int*)&_SetPlayerState) = (int)GetJassNative("SetPlayerState");
	*((int*)&_RemovePlayer) = (int)GetJassNative("RemovePlayer");
	*((int*)&_CachePlayerHeroData) = (int)GetJassNative("CachePlayerHeroData");
	*((int*)&_SetFogStateRect) = (int)GetJassNative("SetFogStateRect");
	*((int*)&_SetFogStateRadius) = (int)GetJassNative("SetFogStateRadius");
	*((int*)&_SetFogStateRadiusLoc) = (int)GetJassNative("SetFogStateRadiusLoc");
	*((int*)&_FogMaskEnable) = (int)GetJassNative("FogMaskEnable");
	*((int*)&_IsFogMaskEnabled) = (int)GetJassNative("IsFogMaskEnabled");
	*((int*)&_FogEnable) = (int)GetJassNative("FogEnable");
	*((int*)&_IsFogEnabled) = (int)GetJassNative("IsFogEnabled");
	*((int*)&_CreateFogModifierRect) = (int)GetJassNative("CreateFogModifierRect");
	*((int*)&_CreateFogModifierRadius) = (int)GetJassNative("CreateFogModifierRadius");
	*((int*)&_CreateFogModifierRadiusLoc) = (int)GetJassNative("CreateFogModifierRadiusLoc");
	*((int*)&_DestroyFogModifier) = (int)GetJassNative("DestroyFogModifier");
	*((int*)&_FogModifierStart) = (int)GetJassNative("FogModifierStart");
	*((int*)&_FogModifierStop) = (int)GetJassNative("FogModifierStop");
	*((int*)&_VersionGet) = (int)GetJassNative("VersionGet");
	*((int*)&_VersionCompatible) = (int)GetJassNative("VersionCompatible");
	*((int*)&_VersionSupported) = (int)GetJassNative("VersionSupported");
	*((int*)&_EndGame) = (int)GetJassNative("EndGame");
	*((int*)&_ChangeLevel) = (int)GetJassNative("ChangeLevel");
	*((int*)&_RestartGame) = (int)GetJassNative("RestartGame");
	*((int*)&_ReloadGame) = (int)GetJassNative("ReloadGame");
	*((int*)&_SetCampaignMenuRace) = (int)GetJassNative("SetCampaignMenuRace");
	*((int*)&_SetCampaignMenuRaceEx) = (int)GetJassNative("SetCampaignMenuRaceEx");
	*((int*)&_ForceCampaignSelectScreen) = (int)GetJassNative("ForceCampaignSelectScreen");
	*((int*)&_LoadGame) = (int)GetJassNative("LoadGame");
	*((int*)&_SaveGame) = (int)GetJassNative("SaveGame");
	*((int*)&_RenameSaveDirectory) = (int)GetJassNative("RenameSaveDirectory");
	*((int*)&_RemoveSaveDirectory) = (int)GetJassNative("RemoveSaveDirectory");
	*((int*)&_CopySaveGame) = (int)GetJassNative("CopySaveGame");
	*((int*)&_SaveGameExists) = (int)GetJassNative("SaveGameExists");
	*((int*)&_SyncSelections) = (int)GetJassNative("SyncSelections");
	*((int*)&_SetFloatGameState) = (int)GetJassNative("SetFloatGameState");
	*((int*)&_GetFloatGameState) = (int)GetJassNative("GetFloatGameState");
	*((int*)&_SetIntegerGameState) = (int)GetJassNative("SetIntegerGameState");
	*((int*)&_GetIntegerGameState) = (int)GetJassNative("GetIntegerGameState");
	*((int*)&_SetTutorialCleared) = (int)GetJassNative("SetTutorialCleared");
	*((int*)&_SetMissionAvailable) = (int)GetJassNative("SetMissionAvailable");
	*((int*)&_SetCampaignAvailable) = (int)GetJassNative("SetCampaignAvailable");
	*((int*)&_SetOpCinematicAvailable) = (int)GetJassNative("SetOpCinematicAvailable");
	*((int*)&_SetEdCinematicAvailable) = (int)GetJassNative("SetEdCinematicAvailable");
	*((int*)&_GetDefaultDifficulty) = (int)GetJassNative("GetDefaultDifficulty");
	*((int*)&_SetDefaultDifficulty) = (int)GetJassNative("SetDefaultDifficulty");
	*((int*)&_SetCustomCampaignButtonVisible) = (int)GetJassNative("SetCustomCampaignButtonVisible");
	*((int*)&_GetCustomCampaignButtonVisible) = (int)GetJassNative("GetCustomCampaignButtonVisible");
	*((int*)&_DoNotSaveReplay) = (int)GetJassNative("DoNotSaveReplay");
	*((int*)&_DialogCreate) = (int)GetJassNative("DialogCreate");
	*((int*)&_DialogDestroy) = (int)GetJassNative("DialogDestroy");
	*((int*)&_DialogClear) = (int)GetJassNative("DialogClear");
	*((int*)&_DialogSetMessage) = (int)GetJassNative("DialogSetMessage");
	*((int*)&_DialogAddButton) = (int)GetJassNative("DialogAddButton");
	*((int*)&_DialogAddQuitButton) = (int)GetJassNative("DialogAddQuitButton");
	*((int*)&_DialogDisplay) = (int)GetJassNative("DialogDisplay");
	*((int*)&_ReloadGameCachesFromDisk) = (int)GetJassNative("ReloadGameCachesFromDisk");
	*((int*)&_InitGameCache) = (int)GetJassNative("InitGameCache");
	*((int*)&_SaveGameCache) = (int)GetJassNative("SaveGameCache");
	*((int*)&_StoreInteger) = (int)GetJassNative("StoreInteger");
	*((int*)&_StoreReal) = (int)GetJassNative("StoreReal");
	*((int*)&_StoreBoolean) = (int)GetJassNative("StoreBoolean");
	*((int*)&_StoreUnit) = (int)GetJassNative("StoreUnit");
	*((int*)&_StoreString) = (int)GetJassNative("StoreString");
	*((int*)&_SyncStoredInteger) = (int)GetJassNative("SyncStoredInteger");
	*((int*)&_SyncStoredReal) = (int)GetJassNative("SyncStoredReal");
	*((int*)&_SyncStoredBoolean) = (int)GetJassNative("SyncStoredBoolean");
	*((int*)&_SyncStoredUnit) = (int)GetJassNative("SyncStoredUnit");
	*((int*)&_SyncStoredString) = (int)GetJassNative("SyncStoredString");
	*((int*)&_HaveStoredInteger) = (int)GetJassNative("HaveStoredInteger");
	*((int*)&_HaveStoredReal) = (int)GetJassNative("HaveStoredReal");
	*((int*)&_HaveStoredBoolean) = (int)GetJassNative("HaveStoredBoolean");
	*((int*)&_HaveStoredUnit) = (int)GetJassNative("HaveStoredUnit");
	*((int*)&_HaveStoredString) = (int)GetJassNative("HaveStoredString");
	*((int*)&_FlushGameCache) = (int)GetJassNative("FlushGameCache");
	*((int*)&_FlushStoredMission) = (int)GetJassNative("FlushStoredMission");
	*((int*)&_FlushStoredInteger) = (int)GetJassNative("FlushStoredInteger");
	*((int*)&_FlushStoredReal) = (int)GetJassNative("FlushStoredReal");
	*((int*)&_FlushStoredBoolean) = (int)GetJassNative("FlushStoredBoolean");
	*((int*)&_FlushStoredUnit) = (int)GetJassNative("FlushStoredUnit");
	*((int*)&_FlushStoredString) = (int)GetJassNative("FlushStoredString");
	*((int*)&_GetStoredInteger) = (int)GetJassNative("GetStoredInteger");
	*((int*)&_GetStoredReal) = (int)GetJassNative("GetStoredReal");
	*((int*)&_GetStoredBoolean) = (int)GetJassNative("GetStoredBoolean");
	*((int*)&_GetStoredString) = (int)GetJassNative("GetStoredString");
	*((int*)&_RestoreUnit) = (int)GetJassNative("RestoreUnit");
	*((int*)&_InitHashtable) = (int)GetJassNative("InitHashtable");
	*((int*)&_SaveInteger) = (int)GetJassNative("SaveInteger");
	*((int*)&_SaveReal) = (int)GetJassNative("SaveReal");
	*((int*)&_SaveBoolean) = (int)GetJassNative("SaveBoolean");
	*((int*)&_SaveStr) = (int)GetJassNative("SaveStr");
	*((int*)&_SavePlayerHandle) = (int)GetJassNative("SavePlayerHandle");
	*((int*)&_SaveWidgetHandle) = (int)GetJassNative("SaveWidgetHandle");
	*((int*)&_SaveDestructableHandle) = (int)GetJassNative("SaveDestructableHandle");
	*((int*)&_SaveItemHandle) = (int)GetJassNative("SaveItemHandle");
	*((int*)&_SaveUnitHandle) = (int)GetJassNative("SaveUnitHandle");
	*((int*)&_SaveAbilityHandle) = (int)GetJassNative("SaveAbilityHandle");
	*((int*)&_SaveTimerHandle) = (int)GetJassNative("SaveTimerHandle");
	*((int*)&_SaveTriggerHandle) = (int)GetJassNative("SaveTriggerHandle");
	*((int*)&_SaveTriggerConditionHandle) = (int)GetJassNative("SaveTriggerConditionHandle");
	*((int*)&_SaveTriggerActionHandle) = (int)GetJassNative("SaveTriggerActionHandle");
	*((int*)&_SaveTriggerEventHandle) = (int)GetJassNative("SaveTriggerEventHandle");
	*((int*)&_SaveForceHandle) = (int)GetJassNative("SaveForceHandle");
	*((int*)&_SaveGroupHandle) = (int)GetJassNative("SaveGroupHandle");
	*((int*)&_SaveLocationHandle) = (int)GetJassNative("SaveLocationHandle");
	*((int*)&_SaveRectHandle) = (int)GetJassNative("SaveRectHandle");
	*((int*)&_SaveBooleanExprHandle) = (int)GetJassNative("SaveBooleanExprHandle");
	*((int*)&_SaveSoundHandle) = (int)GetJassNative("SaveSoundHandle");
	*((int*)&_SaveEffectHandle) = (int)GetJassNative("SaveEffectHandle");
	*((int*)&_SaveUnitPoolHandle) = (int)GetJassNative("SaveUnitPoolHandle");
	*((int*)&_SaveItemPoolHandle) = (int)GetJassNative("SaveItemPoolHandle");
	*((int*)&_SaveQuestHandle) = (int)GetJassNative("SaveQuestHandle");
	*((int*)&_SaveQuestItemHandle) = (int)GetJassNative("SaveQuestItemHandle");
	*((int*)&_SaveDefeatConditionHandle) = (int)GetJassNative("SaveDefeatConditionHandle");
	*((int*)&_SaveTimerDialogHandle) = (int)GetJassNative("SaveTimerDialogHandle");
	*((int*)&_SaveLeaderboardHandle) = (int)GetJassNative("SaveLeaderboardHandle");
	*((int*)&_SaveMultiboardHandle) = (int)GetJassNative("SaveMultiboardHandle");
	*((int*)&_SaveMultiboardItemHandle) = (int)GetJassNative("SaveMultiboardItemHandle");
	*((int*)&_SaveTrackableHandle) = (int)GetJassNative("SaveTrackableHandle");
	*((int*)&_SaveDialogHandle) = (int)GetJassNative("SaveDialogHandle");
	*((int*)&_SaveButtonHandle) = (int)GetJassNative("SaveButtonHandle");
	*((int*)&_SaveTextTagHandle) = (int)GetJassNative("SaveTextTagHandle");
	*((int*)&_SaveLightningHandle) = (int)GetJassNative("SaveLightningHandle");
	*((int*)&_SaveImageHandle) = (int)GetJassNative("SaveImageHandle");
	*((int*)&_SaveUbersplatHandle) = (int)GetJassNative("SaveUbersplatHandle");
	*((int*)&_SaveRegionHandle) = (int)GetJassNative("SaveRegionHandle");
	*((int*)&_SaveFogStateHandle) = (int)GetJassNative("SaveFogStateHandle");
	*((int*)&_SaveFogModifierHandle) = (int)GetJassNative("SaveFogModifierHandle");
	*((int*)&_SaveAgentHandle) = (int)GetJassNative("SaveAgentHandle");
	*((int*)&_SaveHashtableHandle) = (int)GetJassNative("SaveHashtableHandle");
	*((int*)&_LoadInteger) = (int)GetJassNative("LoadInteger");
	*((int*)&_LoadReal) = (int)GetJassNative("LoadReal");
	*((int*)&_LoadBoolean) = (int)GetJassNative("LoadBoolean");
	*((int*)&_LoadStr) = (int)GetJassNative("LoadStr");
	*((int*)&_LoadPlayerHandle) = (int)GetJassNative("LoadPlayerHandle");
	*((int*)&_LoadWidgetHandle) = (int)GetJassNative("LoadWidgetHandle");
	*((int*)&_LoadDestructableHandle) = (int)GetJassNative("LoadDestructableHandle");
	*((int*)&_LoadItemHandle) = (int)GetJassNative("LoadItemHandle");
	*((int*)&_LoadUnitHandle) = (int)GetJassNative("LoadUnitHandle");
	*((int*)&_LoadAbilityHandle) = (int)GetJassNative("LoadAbilityHandle");
	*((int*)&_LoadTimerHandle) = (int)GetJassNative("LoadTimerHandle");
	*((int*)&_LoadTriggerHandle) = (int)GetJassNative("LoadTriggerHandle");
	*((int*)&_LoadTriggerConditionHandle) = (int)GetJassNative("LoadTriggerConditionHandle");
	*((int*)&_LoadTriggerActionHandle) = (int)GetJassNative("LoadTriggerActionHandle");
	*((int*)&_LoadTriggerEventHandle) = (int)GetJassNative("LoadTriggerEventHandle");
	*((int*)&_LoadForceHandle) = (int)GetJassNative("LoadForceHandle");
	*((int*)&_LoadGroupHandle) = (int)GetJassNative("LoadGroupHandle");
	*((int*)&_LoadLocationHandle) = (int)GetJassNative("LoadLocationHandle");
	*((int*)&_LoadRectHandle) = (int)GetJassNative("LoadRectHandle");
	*((int*)&_LoadBooleanExprHandle) = (int)GetJassNative("LoadBooleanExprHandle");
	*((int*)&_LoadSoundHandle) = (int)GetJassNative("LoadSoundHandle");
	*((int*)&_LoadEffectHandle) = (int)GetJassNative("LoadEffectHandle");
	*((int*)&_LoadUnitPoolHandle) = (int)GetJassNative("LoadUnitPoolHandle");
	*((int*)&_LoadItemPoolHandle) = (int)GetJassNative("LoadItemPoolHandle");
	*((int*)&_LoadQuestHandle) = (int)GetJassNative("LoadQuestHandle");
	*((int*)&_LoadQuestItemHandle) = (int)GetJassNative("LoadQuestItemHandle");
	*((int*)&_LoadDefeatConditionHandle) = (int)GetJassNative("LoadDefeatConditionHandle");
	*((int*)&_LoadTimerDialogHandle) = (int)GetJassNative("LoadTimerDialogHandle");
	*((int*)&_LoadLeaderboardHandle) = (int)GetJassNative("LoadLeaderboardHandle");
	*((int*)&_LoadMultiboardHandle) = (int)GetJassNative("LoadMultiboardHandle");
	*((int*)&_LoadMultiboardItemHandle) = (int)GetJassNative("LoadMultiboardItemHandle");
	*((int*)&_LoadTrackableHandle) = (int)GetJassNative("LoadTrackableHandle");
	*((int*)&_LoadDialogHandle) = (int)GetJassNative("LoadDialogHandle");
	*((int*)&_LoadButtonHandle) = (int)GetJassNative("LoadButtonHandle");
	*((int*)&_LoadTextTagHandle) = (int)GetJassNative("LoadTextTagHandle");
	*((int*)&_LoadLightningHandle) = (int)GetJassNative("LoadLightningHandle");
	*((int*)&_LoadImageHandle) = (int)GetJassNative("LoadImageHandle");
	*((int*)&_LoadUbersplatHandle) = (int)GetJassNative("LoadUbersplatHandle");
	*((int*)&_LoadRegionHandle) = (int)GetJassNative("LoadRegionHandle");
	*((int*)&_LoadFogStateHandle) = (int)GetJassNative("LoadFogStateHandle");
	*((int*)&_LoadFogModifierHandle) = (int)GetJassNative("LoadFogModifierHandle");
	*((int*)&_LoadHashtableHandle) = (int)GetJassNative("LoadHashtableHandle");
	*((int*)&_HaveSavedInteger) = (int)GetJassNative("HaveSavedInteger");
	*((int*)&_HaveSavedReal) = (int)GetJassNative("HaveSavedReal");
	*((int*)&_HaveSavedBoolean) = (int)GetJassNative("HaveSavedBoolean");
	*((int*)&_HaveSavedString) = (int)GetJassNative("HaveSavedString");
	*((int*)&_HaveSavedHandle) = (int)GetJassNative("HaveSavedHandle");
	*((int*)&_RemoveSavedInteger) = (int)GetJassNative("RemoveSavedInteger");
	*((int*)&_RemoveSavedReal) = (int)GetJassNative("RemoveSavedReal");
	*((int*)&_RemoveSavedBoolean) = (int)GetJassNative("RemoveSavedBoolean");
	*((int*)&_RemoveSavedString) = (int)GetJassNative("RemoveSavedString");
	*((int*)&_RemoveSavedHandle) = (int)GetJassNative("RemoveSavedHandle");
	*((int*)&_FlushParentHashtable) = (int)GetJassNative("FlushParentHashtable");
	*((int*)&_FlushChildHashtable) = (int)GetJassNative("FlushChildHashtable");
	*((int*)&_GetRandomInt) = (int)GetJassNative("GetRandomInt");
	*((int*)&_GetRandomReal) = (int)GetJassNative("GetRandomReal");
	*((int*)&_CreateUnitPool) = (int)GetJassNative("CreateUnitPool");
	*((int*)&_DestroyUnitPool) = (int)GetJassNative("DestroyUnitPool");
	*((int*)&_UnitPoolAddUnitType) = (int)GetJassNative("UnitPoolAddUnitType");
	*((int*)&_UnitPoolRemoveUnitType) = (int)GetJassNative("UnitPoolRemoveUnitType");
	*((int*)&_PlaceRandomUnit) = (int)GetJassNative("PlaceRandomUnit");
	*((int*)&_CreateItemPool) = (int)GetJassNative("CreateItemPool");
	*((int*)&_DestroyItemPool) = (int)GetJassNative("DestroyItemPool");
	*((int*)&_ItemPoolAddItemType) = (int)GetJassNative("ItemPoolAddItemType");
	*((int*)&_ItemPoolRemoveItemType) = (int)GetJassNative("ItemPoolRemoveItemType");
	*((int*)&_PlaceRandomItem) = (int)GetJassNative("PlaceRandomItem");
	*((int*)&_ChooseRandomCreep) = (int)GetJassNative("ChooseRandomCreep");
	*((int*)&_ChooseRandomNPBuilding) = (int)GetJassNative("ChooseRandomNPBuilding");
	*((int*)&_ChooseRandomItem) = (int)GetJassNative("ChooseRandomItem");
	*((int*)&_ChooseRandomItemEx) = (int)GetJassNative("ChooseRandomItemEx");
	*((int*)&_SetRandomSeed) = (int)GetJassNative("SetRandomSeed");
	*((int*)&_SetTerrainFog) = (int)GetJassNative("SetTerrainFog");
	*((int*)&_ResetTerrainFog) = (int)GetJassNative("ResetTerrainFog");
	*((int*)&_SetUnitFog) = (int)GetJassNative("SetUnitFog");
	*((int*)&_SetTerrainFogEx) = (int)GetJassNative("SetTerrainFogEx");
	*((int*)&_DisplayTextToPlayer) = (int)GetJassNative("DisplayTextToPlayer");
	*((int*)&_DisplayTimedTextToPlayer) = (int)GetJassNative("DisplayTimedTextToPlayer");
	*((int*)&_DisplayTimedTextFromPlayer) = (int)GetJassNative("DisplayTimedTextFromPlayer");
	*((int*)&_ClearTextMessages) = (int)GetJassNative("ClearTextMessages");
	*((int*)&_SetDayNightModels) = (int)GetJassNative("SetDayNightModels");
	*((int*)&_SetSkyModel) = (int)GetJassNative("SetSkyModel");
	*((int*)&_EnableUserControl) = (int)GetJassNative("EnableUserControl");
	*((int*)&_EnableUserUI) = (int)GetJassNative("EnableUserUI");
	*((int*)&_SuspendTimeOfDay) = (int)GetJassNative("SuspendTimeOfDay");
	*((int*)&_SetTimeOfDayScale) = (int)GetJassNative("SetTimeOfDayScale");
	*((int*)&_GetTimeOfDayScale) = (int)GetJassNative("GetTimeOfDayScale");
	*((int*)&_ShowInterface) = (int)GetJassNative("ShowInterface");
	*((int*)&_PauseGame) = (int)GetJassNative("PauseGame");
	*((int*)&_UnitAddIndicator) = (int)GetJassNative("UnitAddIndicator");
	*((int*)&_AddIndicator) = (int)GetJassNative("AddIndicator");
	*((int*)&_PingMinimap) = (int)GetJassNative("PingMinimap");
	*((int*)&_PingMinimapEx) = (int)GetJassNative("PingMinimapEx");
	*((int*)&_EnableOcclusion) = (int)GetJassNative("EnableOcclusion");
	*((int*)&_SetIntroShotText) = (int)GetJassNative("SetIntroShotText");
	*((int*)&_SetIntroShotModel) = (int)GetJassNative("SetIntroShotModel");
	*((int*)&_EnableWorldFogBoundary) = (int)GetJassNative("EnableWorldFogBoundary");
	*((int*)&_PlayModelCinematic) = (int)GetJassNative("PlayModelCinematic");
	*((int*)&_PlayCinematic) = (int)GetJassNative("PlayCinematic");
	*((int*)&_ForceUIKey) = (int)GetJassNative("ForceUIKey");
	*((int*)&_ForceUICancel) = (int)GetJassNative("ForceUICancel");
	*((int*)&_DisplayLoadDialog) = (int)GetJassNative("DisplayLoadDialog");
	*((int*)&_SetAltMinimapIcon) = (int)GetJassNative("SetAltMinimapIcon");
	*((int*)&_DisableRestartMission) = (int)GetJassNative("DisableRestartMission");
	*((int*)&_CreateTextTag) = (int)GetJassNative("CreateTextTag");
	*((int*)&_DestroyTextTag) = (int)GetJassNative("DestroyTextTag");
	*((int*)&_SetTextTagText) = (int)GetJassNative("SetTextTagText");
	*((int*)&_SetTextTagPos) = (int)GetJassNative("SetTextTagPos");
	*((int*)&_SetTextTagPosUnit) = (int)GetJassNative("SetTextTagPosUnit");
	*((int*)&_SetTextTagColor) = (int)GetJassNative("SetTextTagColor");
	*((int*)&_SetTextTagVelocity) = (int)GetJassNative("SetTextTagVelocity");
	*((int*)&_SetTextTagVisibility) = (int)GetJassNative("SetTextTagVisibility");
	*((int*)&_SetTextTagSuspended) = (int)GetJassNative("SetTextTagSuspended");
	*((int*)&_SetTextTagPermanent) = (int)GetJassNative("SetTextTagPermanent");
	*((int*)&_SetTextTagAge) = (int)GetJassNative("SetTextTagAge");
	*((int*)&_SetTextTagLifespan) = (int)GetJassNative("SetTextTagLifespan");
	*((int*)&_SetTextTagFadepoint) = (int)GetJassNative("SetTextTagFadepoint");
	*((int*)&_SetReservedLocalHeroButtons) = (int)GetJassNative("SetReservedLocalHeroButtons");
	*((int*)&_GetAllyColorFilterState) = (int)GetJassNative("GetAllyColorFilterState");
	*((int*)&_SetAllyColorFilterState) = (int)GetJassNative("SetAllyColorFilterState");
	*((int*)&_GetCreepCampFilterState) = (int)GetJassNative("GetCreepCampFilterState");
	*((int*)&_SetCreepCampFilterState) = (int)GetJassNative("SetCreepCampFilterState");
	*((int*)&_EnableMinimapFilterButtons) = (int)GetJassNative("EnableMinimapFilterButtons");
	*((int*)&_EnableDragSelect) = (int)GetJassNative("EnableDragSelect");
	*((int*)&_EnablePreSelect) = (int)GetJassNative("EnablePreSelect");
	*((int*)&_EnableSelect) = (int)GetJassNative("EnableSelect");
	*((int*)&_CreateTrackable) = (int)GetJassNative("CreateTrackable");
	*((int*)&_CreateQuest) = (int)GetJassNative("CreateQuest");
	*((int*)&_DestroyQuest) = (int)GetJassNative("DestroyQuest");
	*((int*)&_QuestSetTitle) = (int)GetJassNative("QuestSetTitle");
	*((int*)&_QuestSetDescription) = (int)GetJassNative("QuestSetDescription");
	*((int*)&_QuestSetIconPath) = (int)GetJassNative("QuestSetIconPath");
	*((int*)&_QuestSetRequired) = (int)GetJassNative("QuestSetRequired");
	*((int*)&_QuestSetCompleted) = (int)GetJassNative("QuestSetCompleted");
	*((int*)&_QuestSetDiscovered) = (int)GetJassNative("QuestSetDiscovered");
	*((int*)&_QuestSetFailed) = (int)GetJassNative("QuestSetFailed");
	*((int*)&_QuestSetEnabled) = (int)GetJassNative("QuestSetEnabled");
	*((int*)&_IsQuestRequired) = (int)GetJassNative("IsQuestRequired");
	*((int*)&_IsQuestCompleted) = (int)GetJassNative("IsQuestCompleted");
	*((int*)&_IsQuestDiscovered) = (int)GetJassNative("IsQuestDiscovered");
	*((int*)&_IsQuestFailed) = (int)GetJassNative("IsQuestFailed");
	*((int*)&_IsQuestEnabled) = (int)GetJassNative("IsQuestEnabled");
	*((int*)&_QuestCreateItem) = (int)GetJassNative("QuestCreateItem");
	*((int*)&_QuestItemSetDescription) = (int)GetJassNative("QuestItemSetDescription");
	*((int*)&_QuestItemSetCompleted) = (int)GetJassNative("QuestItemSetCompleted");
	*((int*)&_IsQuestItemCompleted) = (int)GetJassNative("IsQuestItemCompleted");
	*((int*)&_CreateDefeatCondition) = (int)GetJassNative("CreateDefeatCondition");
	*((int*)&_DestroyDefeatCondition) = (int)GetJassNative("DestroyDefeatCondition");
	*((int*)&_DefeatConditionSetDescription) = (int)GetJassNative("DefeatConditionSetDescription");
	*((int*)&_FlashQuestDialogButton) = (int)GetJassNative("FlashQuestDialogButton");
	*((int*)&_ForceQuestDialogUpdate) = (int)GetJassNative("ForceQuestDialogUpdate");
	*((int*)&_CreateTimerDialog) = (int)GetJassNative("CreateTimerDialog");
	*((int*)&_DestroyTimerDialog) = (int)GetJassNative("DestroyTimerDialog");
	*((int*)&_TimerDialogSetTitle) = (int)GetJassNative("TimerDialogSetTitle");
	*((int*)&_TimerDialogSetTitleColor) = (int)GetJassNative("TimerDialogSetTitleColor");
	*((int*)&_TimerDialogSetTimeColor) = (int)GetJassNative("TimerDialogSetTimeColor");
	*((int*)&_TimerDialogSetSpeed) = (int)GetJassNative("TimerDialogSetSpeed");
	*((int*)&_TimerDialogDisplay) = (int)GetJassNative("TimerDialogDisplay");
	*((int*)&_IsTimerDialogDisplayed) = (int)GetJassNative("IsTimerDialogDisplayed");
	*((int*)&_TimerDialogSetRealTimeRemaining) = (int)GetJassNative("TimerDialogSetRealTimeRemaining");
	*((int*)&_CreateLeaderboard) = (int)GetJassNative("CreateLeaderboard");
	*((int*)&_DestroyLeaderboard) = (int)GetJassNative("DestroyLeaderboard");
	*((int*)&_LeaderboardDisplay) = (int)GetJassNative("LeaderboardDisplay");
	*((int*)&_IsLeaderboardDisplayed) = (int)GetJassNative("IsLeaderboardDisplayed");
	*((int*)&_LeaderboardGetItemCount) = (int)GetJassNative("LeaderboardGetItemCount");
	*((int*)&_LeaderboardSetSizeByItemCount) = (int)GetJassNative("LeaderboardSetSizeByItemCount");
	*((int*)&_LeaderboardAddItem) = (int)GetJassNative("LeaderboardAddItem");
	*((int*)&_LeaderboardRemoveItem) = (int)GetJassNative("LeaderboardRemoveItem");
	*((int*)&_LeaderboardRemovePlayerItem) = (int)GetJassNative("LeaderboardRemovePlayerItem");
	*((int*)&_LeaderboardClear) = (int)GetJassNative("LeaderboardClear");
	*((int*)&_LeaderboardSortItemsByValue) = (int)GetJassNative("LeaderboardSortItemsByValue");
	*((int*)&_LeaderboardSortItemsByPlayer) = (int)GetJassNative("LeaderboardSortItemsByPlayer");
	*((int*)&_LeaderboardSortItemsByLabel) = (int)GetJassNative("LeaderboardSortItemsByLabel");
	*((int*)&_LeaderboardHasPlayerItem) = (int)GetJassNative("LeaderboardHasPlayerItem");
	*((int*)&_LeaderboardGetPlayerIndex) = (int)GetJassNative("LeaderboardGetPlayerIndex");
	*((int*)&_LeaderboardSetLabel) = (int)GetJassNative("LeaderboardSetLabel");
	*((int*)&_LeaderboardGetLabelText) = (int)GetJassNative("LeaderboardGetLabelText");
	*((int*)&_PlayerSetLeaderboard) = (int)GetJassNative("PlayerSetLeaderboard");
	*((int*)&_PlayerGetLeaderboard) = (int)GetJassNative("PlayerGetLeaderboard");
	*((int*)&_LeaderboardSetLabelColor) = (int)GetJassNative("LeaderboardSetLabelColor");
	*((int*)&_LeaderboardSetValueColor) = (int)GetJassNative("LeaderboardSetValueColor");
	*((int*)&_LeaderboardSetStyle) = (int)GetJassNative("LeaderboardSetStyle");
	*((int*)&_LeaderboardSetItemValue) = (int)GetJassNative("LeaderboardSetItemValue");
	*((int*)&_LeaderboardSetItemLabel) = (int)GetJassNative("LeaderboardSetItemLabel");
	*((int*)&_LeaderboardSetItemStyle) = (int)GetJassNative("LeaderboardSetItemStyle");
	*((int*)&_LeaderboardSetItemLabelColor) = (int)GetJassNative("LeaderboardSetItemLabelColor");
	*((int*)&_LeaderboardSetItemValueColor) = (int)GetJassNative("LeaderboardSetItemValueColor");
	*((int*)&_CreateMultiboard) = (int)GetJassNative("CreateMultiboard");
	*((int*)&_DestroyMultiboard) = (int)GetJassNative("DestroyMultiboard");
	*((int*)&_MultiboardDisplay) = (int)GetJassNative("MultiboardDisplay");
	*((int*)&_IsMultiboardDisplayed) = (int)GetJassNative("IsMultiboardDisplayed");
	*((int*)&_MultiboardMinimize) = (int)GetJassNative("MultiboardMinimize");
	*((int*)&_IsMultiboardMinimized) = (int)GetJassNative("IsMultiboardMinimized");
	*((int*)&_MultiboardClear) = (int)GetJassNative("MultiboardClear");
	*((int*)&_MultiboardSetTitleText) = (int)GetJassNative("MultiboardSetTitleText");
	*((int*)&_MultiboardGetTitleText) = (int)GetJassNative("MultiboardGetTitleText");
	*((int*)&_MultiboardSetTitleTextColor) = (int)GetJassNative("MultiboardSetTitleTextColor");
	*((int*)&_MultiboardGetRowCount) = (int)GetJassNative("MultiboardGetRowCount");
	*((int*)&_MultiboardGetColumnCount) = (int)GetJassNative("MultiboardGetColumnCount");
	*((int*)&_MultiboardSetColumnCount) = (int)GetJassNative("MultiboardSetColumnCount");
	*((int*)&_MultiboardSetRowCount) = (int)GetJassNative("MultiboardSetRowCount");
	*((int*)&_MultiboardSetItemsStyle) = (int)GetJassNative("MultiboardSetItemsStyle");
	*((int*)&_MultiboardSetItemsValue) = (int)GetJassNative("MultiboardSetItemsValue");
	*((int*)&_MultiboardSetItemsValueColor) = (int)GetJassNative("MultiboardSetItemsValueColor");
	*((int*)&_MultiboardSetItemsWidth) = (int)GetJassNative("MultiboardSetItemsWidth");
	*((int*)&_MultiboardSetItemsIcon) = (int)GetJassNative("MultiboardSetItemsIcon");
	*((int*)&_MultiboardGetItem) = (int)GetJassNative("MultiboardGetItem");
	*((int*)&_MultiboardReleaseItem) = (int)GetJassNative("MultiboardReleaseItem");
	*((int*)&_MultiboardSetItemStyle) = (int)GetJassNative("MultiboardSetItemStyle");
	*((int*)&_MultiboardSetItemValue) = (int)GetJassNative("MultiboardSetItemValue");
	*((int*)&_MultiboardSetItemValueColor) = (int)GetJassNative("MultiboardSetItemValueColor");
	*((int*)&_MultiboardSetItemWidth) = (int)GetJassNative("MultiboardSetItemWidth");
	*((int*)&_MultiboardSetItemIcon) = (int)GetJassNative("MultiboardSetItemIcon");
	*((int*)&_MultiboardSuppressDisplay) = (int)GetJassNative("MultiboardSuppressDisplay");
	*((int*)&_SetCameraPosition) = (int)GetJassNative("SetCameraPosition");
	*((int*)&_SetCameraQuickPosition) = (int)GetJassNative("SetCameraQuickPosition");
	*((int*)&_SetCameraBounds) = (int)GetJassNative("SetCameraBounds");
	*((int*)&_StopCamera) = (int)GetJassNative("StopCamera");
	*((int*)&_ResetToGameCamera) = (int)GetJassNative("ResetToGameCamera");
	*((int*)&_PanCameraTo) = (int)GetJassNative("PanCameraTo");
	*((int*)&_PanCameraToTimed) = (int)GetJassNative("PanCameraToTimed");
	*((int*)&_PanCameraToWithZ) = (int)GetJassNative("PanCameraToWithZ");
	*((int*)&_PanCameraToTimedWithZ) = (int)GetJassNative("PanCameraToTimedWithZ");
	*((int*)&_SetCinematicCamera) = (int)GetJassNative("SetCinematicCamera");
	*((int*)&_SetCameraRotateMode) = (int)GetJassNative("SetCameraRotateMode");
	*((int*)&_SetCameraField) = (int)GetJassNative("SetCameraField");
	*((int*)&_AdjustCameraField) = (int)GetJassNative("AdjustCameraField");
	*((int*)&_SetCameraTargetController) = (int)GetJassNative("SetCameraTargetController");
	*((int*)&_SetCameraOrientController) = (int)GetJassNative("SetCameraOrientController");
	*((int*)&_CreateCameraSetup) = (int)GetJassNative("CreateCameraSetup");
	*((int*)&_CameraSetupSetField) = (int)GetJassNative("CameraSetupSetField");
	*((int*)&_CameraSetupGetField) = (int)GetJassNative("CameraSetupGetField");
	*((int*)&_CameraSetupSetDestPosition) = (int)GetJassNative("CameraSetupSetDestPosition");
	*((int*)&_CameraSetupGetDestPositionLoc) = (int)GetJassNative("CameraSetupGetDestPositionLoc");
	*((int*)&_CameraSetupGetDestPositionX) = (int)GetJassNative("CameraSetupGetDestPositionX");
	*((int*)&_CameraSetupGetDestPositionY) = (int)GetJassNative("CameraSetupGetDestPositionY");
	*((int*)&_CameraSetupApply) = (int)GetJassNative("CameraSetupApply");
	*((int*)&_CameraSetupApplyWithZ) = (int)GetJassNative("CameraSetupApplyWithZ");
	*((int*)&_CameraSetupApplyForceDuration) = (int)GetJassNative("CameraSetupApplyForceDuration");
	*((int*)&_CameraSetupApplyForceDurationWithZ) = (int)GetJassNative("CameraSetupApplyForceDurationWithZ");
	*((int*)&_CameraSetTargetNoise) = (int)GetJassNative("CameraSetTargetNoise");
	*((int*)&_CameraSetSourceNoise) = (int)GetJassNative("CameraSetSourceNoise");
	*((int*)&_CameraSetTargetNoiseEx) = (int)GetJassNative("CameraSetTargetNoiseEx");
	*((int*)&_CameraSetSourceNoiseEx) = (int)GetJassNative("CameraSetSourceNoiseEx");
	*((int*)&_CameraSetSmoothingFactor) = (int)GetJassNative("CameraSetSmoothingFactor");
	*((int*)&_SetCineFilterTexture) = (int)GetJassNative("SetCineFilterTexture");
	*((int*)&_SetCineFilterBlendMode) = (int)GetJassNative("SetCineFilterBlendMode");
	*((int*)&_SetCineFilterTexMapFlags) = (int)GetJassNative("SetCineFilterTexMapFlags");
	*((int*)&_SetCineFilterStartUV) = (int)GetJassNative("SetCineFilterStartUV");
	*((int*)&_SetCineFilterEndUV) = (int)GetJassNative("SetCineFilterEndUV");
	*((int*)&_SetCineFilterStartColor) = (int)GetJassNative("SetCineFilterStartColor");
	*((int*)&_SetCineFilterEndColor) = (int)GetJassNative("SetCineFilterEndColor");
	*((int*)&_SetCineFilterDuration) = (int)GetJassNative("SetCineFilterDuration");
	*((int*)&_DisplayCineFilter) = (int)GetJassNative("DisplayCineFilter");
	*((int*)&_IsCineFilterDisplayed) = (int)GetJassNative("IsCineFilterDisplayed");
	*((int*)&_SetCinematicScene) = (int)GetJassNative("SetCinematicScene");
	*((int*)&_EndCinematicScene) = (int)GetJassNative("EndCinematicScene");
	*((int*)&_ForceCinematicSubtitles) = (int)GetJassNative("ForceCinematicSubtitles");
	*((int*)&_GetCameraMargin) = (int)GetJassNative("GetCameraMargin");
	*((int*)&_GetCameraBoundMinX) = (int)GetJassNative("GetCameraBoundMinX");
	*((int*)&_GetCameraBoundMinY) = (int)GetJassNative("GetCameraBoundMinY");
	*((int*)&_GetCameraBoundMaxX) = (int)GetJassNative("GetCameraBoundMaxX");
	*((int*)&_GetCameraBoundMaxY) = (int)GetJassNative("GetCameraBoundMaxY");
	*((int*)&_GetCameraField) = (int)GetJassNative("GetCameraField");
	*((int*)&_GetCameraTargetPositionX) = (int)GetJassNative("GetCameraTargetPositionX");
	*((int*)&_GetCameraTargetPositionY) = (int)GetJassNative("GetCameraTargetPositionY");
	*((int*)&_GetCameraTargetPositionZ) = (int)GetJassNative("GetCameraTargetPositionZ");
	*((int*)&_GetCameraTargetPositionLoc) = (int)GetJassNative("GetCameraTargetPositionLoc");
	*((int*)&_GetCameraEyePositionX) = (int)GetJassNative("GetCameraEyePositionX");
	*((int*)&_GetCameraEyePositionY) = (int)GetJassNative("GetCameraEyePositionY");
	*((int*)&_GetCameraEyePositionZ) = (int)GetJassNative("GetCameraEyePositionZ");
	*((int*)&_GetCameraEyePositionLoc) = (int)GetJassNative("GetCameraEyePositionLoc");
	*((int*)&_NewSoundEnvironment) = (int)GetJassNative("NewSoundEnvironment");
	*((int*)&_CreateSound) = (int)GetJassNative("CreateSound");
	*((int*)&_CreateSoundFilenameWithLabel) = (int)GetJassNative("CreateSoundFilenameWithLabel");
	*((int*)&_CreateSoundFromLabel) = (int)GetJassNative("CreateSoundFromLabel");
	*((int*)&_CreateMIDISound) = (int)GetJassNative("CreateMIDISound");
	*((int*)&_SetSoundParamsFromLabel) = (int)GetJassNative("SetSoundParamsFromLabel");
	*((int*)&_SetSoundDistanceCutoff) = (int)GetJassNative("SetSoundDistanceCutoff");
	*((int*)&_SetSoundChannel) = (int)GetJassNative("SetSoundChannel");
	*((int*)&_SetSoundVolume) = (int)GetJassNative("SetSoundVolume");
	*((int*)&_SetSoundPitch) = (int)GetJassNative("SetSoundPitch");
	*((int*)&_SetSoundPlayPosition) = (int)GetJassNative("SetSoundPlayPosition");
	*((int*)&_SetSoundDistances) = (int)GetJassNative("SetSoundDistances");
	*((int*)&_SetSoundConeAngles) = (int)GetJassNative("SetSoundConeAngles");
	*((int*)&_SetSoundConeOrientation) = (int)GetJassNative("SetSoundConeOrientation");
	*((int*)&_SetSoundPosition) = (int)GetJassNative("SetSoundPosition");
	*((int*)&_SetSoundVelocity) = (int)GetJassNative("SetSoundVelocity");
	*((int*)&_AttachSoundToUnit) = (int)GetJassNative("AttachSoundToUnit");
	*((int*)&_StartSound) = (int)GetJassNative("StartSound");
	*((int*)&_StopSound) = (int)GetJassNative("StopSound");
	*((int*)&_KillSoundWhenDone) = (int)GetJassNative("KillSoundWhenDone");
	*((int*)&_SetMapMusic) = (int)GetJassNative("SetMapMusic");
	*((int*)&_ClearMapMusic) = (int)GetJassNative("ClearMapMusic");
	*((int*)&_PlayMusic) = (int)GetJassNative("PlayMusic");
	*((int*)&_PlayMusicEx) = (int)GetJassNative("PlayMusicEx");
	*((int*)&_StopMusic) = (int)GetJassNative("StopMusic");
	*((int*)&_ResumeMusic) = (int)GetJassNative("ResumeMusic");
	*((int*)&_PlayThematicMusic) = (int)GetJassNative("PlayThematicMusic");
	*((int*)&_PlayThematicMusicEx) = (int)GetJassNative("PlayThematicMusicEx");
	*((int*)&_EndThematicMusic) = (int)GetJassNative("EndThematicMusic");
	*((int*)&_SetMusicVolume) = (int)GetJassNative("SetMusicVolume");
	*((int*)&_SetMusicPlayPosition) = (int)GetJassNative("SetMusicPlayPosition");
	*((int*)&_SetThematicMusicPlayPosition) = (int)GetJassNative("SetThematicMusicPlayPosition");
	*((int*)&_SetSoundDuration) = (int)GetJassNative("SetSoundDuration");
	*((int*)&_GetSoundDuration) = (int)GetJassNative("GetSoundDuration");
	*((int*)&_GetSoundFileDuration) = (int)GetJassNative("GetSoundFileDuration");
	*((int*)&_VolumeGroupSetVolume) = (int)GetJassNative("VolumeGroupSetVolume");
	*((int*)&_VolumeGroupReset) = (int)GetJassNative("VolumeGroupReset");
	*((int*)&_GetSoundIsPlaying) = (int)GetJassNative("GetSoundIsPlaying");
	*((int*)&_GetSoundIsLoading) = (int)GetJassNative("GetSoundIsLoading");
	*((int*)&_RegisterStackedSound) = (int)GetJassNative("RegisterStackedSound");
	*((int*)&_UnregisterStackedSound) = (int)GetJassNative("UnregisterStackedSound");
	*((int*)&_AddWeatherEffect) = (int)GetJassNative("AddWeatherEffect");
	*((int*)&_RemoveWeatherEffect) = (int)GetJassNative("RemoveWeatherEffect");
	*((int*)&_EnableWeatherEffect) = (int)GetJassNative("EnableWeatherEffect");
	*((int*)&_TerrainDeformCrater) = (int)GetJassNative("TerrainDeformCrater");
	*((int*)&_TerrainDeformRipple) = (int)GetJassNative("TerrainDeformRipple");
	*((int*)&_TerrainDeformWave) = (int)GetJassNative("TerrainDeformWave");
	*((int*)&_TerrainDeformRandom) = (int)GetJassNative("TerrainDeformRandom");
	*((int*)&_TerrainDeformStop) = (int)GetJassNative("TerrainDeformStop");
	*((int*)&_TerrainDeformStopAll) = (int)GetJassNative("TerrainDeformStopAll");
	*((int*)&_AddSpecialEffect) = (int)GetJassNative("AddSpecialEffect");
	*((int*)&_AddSpecialEffectLoc) = (int)GetJassNative("AddSpecialEffectLoc");
	*((int*)&_AddSpecialEffectTarget) = (int)GetJassNative("AddSpecialEffectTarget");
	*((int*)&_DestroyEffect) = (int)GetJassNative("DestroyEffect");
	*((int*)&_AddSpellEffect) = (int)GetJassNative("AddSpellEffect");
	*((int*)&_AddSpellEffectLoc) = (int)GetJassNative("AddSpellEffectLoc");
	*((int*)&_AddSpellEffectById) = (int)GetJassNative("AddSpellEffectById");
	*((int*)&_AddSpellEffectByIdLoc) = (int)GetJassNative("AddSpellEffectByIdLoc");
	*((int*)&_AddSpellEffectTarget) = (int)GetJassNative("AddSpellEffectTarget");
	*((int*)&_AddSpellEffectTargetById) = (int)GetJassNative("AddSpellEffectTargetById");
	*((int*)&_AddLightning) = (int)GetJassNative("AddLightning");
	*((int*)&_AddLightningEx) = (int)GetJassNative("AddLightningEx");
	*((int*)&_DestroyLightning) = (int)GetJassNative("DestroyLightning");
	*((int*)&_MoveLightning) = (int)GetJassNative("MoveLightning");
	*((int*)&_MoveLightningEx) = (int)GetJassNative("MoveLightningEx");
	*((int*)&_GetLightningColorA) = (int)GetJassNative("GetLightningColorA");
	*((int*)&_GetLightningColorR) = (int)GetJassNative("GetLightningColorR");
	*((int*)&_GetLightningColorG) = (int)GetJassNative("GetLightningColorG");
	*((int*)&_GetLightningColorB) = (int)GetJassNative("GetLightningColorB");
	*((int*)&_SetLightningColor) = (int)GetJassNative("SetLightningColor");
	*((int*)&_GetAbilityEffect) = (int)GetJassNative("GetAbilityEffect");
	*((int*)&_GetAbilityEffectById) = (int)GetJassNative("GetAbilityEffectById");
	*((int*)&_GetAbilitySound) = (int)GetJassNative("GetAbilitySound");
	*((int*)&_GetAbilitySoundById) = (int)GetJassNative("GetAbilitySoundById");
	*((int*)&_GetTerrainCliffLevel) = (int)GetJassNative("GetTerrainCliffLevel");
	*((int*)&_SetWaterBaseColor) = (int)GetJassNative("SetWaterBaseColor");
	*((int*)&_SetWaterDeforms) = (int)GetJassNative("SetWaterDeforms");
	*((int*)&_GetTerrainType) = (int)GetJassNative("GetTerrainType");
	*((int*)&_GetTerrainVariance) = (int)GetJassNative("GetTerrainVariance");
	*((int*)&_SetTerrainType) = (int)GetJassNative("SetTerrainType");
	*((int*)&_IsTerrainPathable) = (int)GetJassNative("IsTerrainPathable");
	*((int*)&_SetTerrainPathable) = (int)GetJassNative("SetTerrainPathable");
	*((int*)&_CreateImage) = (int)GetJassNative("CreateImage");
	*((int*)&_DestroyImage) = (int)GetJassNative("DestroyImage");
	*((int*)&_ShowImage) = (int)GetJassNative("ShowImage");
	*((int*)&_SetImageConstantHeight) = (int)GetJassNative("SetImageConstantHeight");
	*((int*)&_SetImagePosition) = (int)GetJassNative("SetImagePosition");
	*((int*)&_SetImageColor) = (int)GetJassNative("SetImageColor");
	*((int*)&_SetImageRender) = (int)GetJassNative("SetImageRender");
	*((int*)&_SetImageRenderAlways) = (int)GetJassNative("SetImageRenderAlways");
	*((int*)&_SetImageAboveWater) = (int)GetJassNative("SetImageAboveWater");
	*((int*)&_SetImageType) = (int)GetJassNative("SetImageType");
	*((int*)&_CreateUbersplat) = (int)GetJassNative("CreateUbersplat");
	*((int*)&_DestroyUbersplat) = (int)GetJassNative("DestroyUbersplat");
	*((int*)&_ResetUbersplat) = (int)GetJassNative("ResetUbersplat");
	*((int*)&_FinishUbersplat) = (int)GetJassNative("FinishUbersplat");
	*((int*)&_ShowUbersplat) = (int)GetJassNative("ShowUbersplat");
	*((int*)&_SetUbersplatRender) = (int)GetJassNative("SetUbersplatRender");
	*((int*)&_SetUbersplatRenderAlways) = (int)GetJassNative("SetUbersplatRenderAlways");
	*((int*)&_SetBlight) = (int)GetJassNative("SetBlight");
	*((int*)&_SetBlightRect) = (int)GetJassNative("SetBlightRect");
	*((int*)&_SetBlightPoint) = (int)GetJassNative("SetBlightPoint");
	*((int*)&_SetBlightLoc) = (int)GetJassNative("SetBlightLoc");
	*((int*)&_CreateBlightedGoldmine) = (int)GetJassNative("CreateBlightedGoldmine");
	*((int*)&_IsPointBlighted) = (int)GetJassNative("IsPointBlighted");
	*((int*)&_SetDoodadAnimation) = (int)GetJassNative("SetDoodadAnimation");
	*((int*)&_SetDoodadAnimationRect) = (int)GetJassNative("SetDoodadAnimationRect");
	*((int*)&_StartMeleeAI) = (int)GetJassNative("StartMeleeAI");
	*((int*)&_StartCampaignAI) = (int)GetJassNative("StartCampaignAI");
	*((int*)&_CommandAI) = (int)GetJassNative("CommandAI");
	*((int*)&_PauseCompAI) = (int)GetJassNative("PauseCompAI");
	*((int*)&_GetAIDifficulty) = (int)GetJassNative("GetAIDifficulty");
	*((int*)&_RemoveGuardPosition) = (int)GetJassNative("RemoveGuardPosition");
	*((int*)&_RecycleGuardPosition) = (int)GetJassNative("RecycleGuardPosition");
	*((int*)&_RemoveAllGuardPositions) = (int)GetJassNative("RemoveAllGuardPositions");
	*((int*)&_Cheat) = (int)GetJassNative("Cheat");
	*((int*)&_IsNoVictoryCheat) = (int)GetJassNative("IsNoVictoryCheat");
	*((int*)&_IsNoDefeatCheat) = (int)GetJassNative("IsNoDefeatCheat");
	*((int*)&_Preload) = (int)GetJassNative("Preload");
	*((int*)&_PreloadEnd) = (int)GetJassNative("PreloadEnd");
	*((int*)&_PreloadStart) = (int)GetJassNative("PreloadStart");
	*((int*)&_PreloadRefresh) = (int)GetJassNative("PreloadRefresh");
	*((int*)&_PreloadEndEx) = (int)GetJassNative("PreloadEndEx");
	*((int*)&_PreloadGenClear) = (int)GetJassNative("PreloadGenClear");
	*((int*)&_PreloadGenStart) = (int)GetJassNative("PreloadGenStart");
	*((int*)&_PreloadGenEnd) = (int)GetJassNative("PreloadGenEnd");
	*((int*)&_Preloader) = (int)GetJassNative("Preloader");
	*((int*)&_SetAmbientDaySound) = (int)GetJassNative("SetAmbientDaySound");
	*((int*)&_SetAmbientNightSound) = (int)GetJassNative("SetAmbientNightSound");
	
	// AI
	//*((int*)&_GetAiPlayer) = (int)GetJassNative("GetAiPlayer");
	// Sleep Jass
	//native Sleep                takes real seconds                          returns nothing
	*((int*)&_Sleep) = (int)GetJassNative("Sleep");

	*((int*)&_CountUnitsInGroup) = (int)GetJassNative("CountUnitsInGroup");
	*((int*)&_GetUnitsInRectAll) = (int)GetJassNative("GetUnitsInRectAll");
	*((int*)&_IssueTargetItemOrder) = (int)GetJassNative("IssueTargetItemOrder");
	

	return TRUE;
}

// Natives functions

PJassString GetJassString(PChar s)
{
	return CreateJassString(s);
}

/*procedure DisplayTextToPlayer(HPLAYER toPlayer, Single x, Single y, String message)
{
	PJassString pStr;
	pStr = CreateJassString(PChar(message));
	_DisplayTextToPlayer(toPlayer, &x, &y, pStr);
	DestroyJassString(pStr);
}*/

HRACE ConvertRace(Integer i)
{
	return _ConvertRace(i);
}

HALLIANCETYPE ConvertAllianceType(Integer i)
{
	return _ConvertAllianceType(i);
}

HRACEPREFERENCE ConvertRacePref(Integer i)
{
	return _ConvertRacePref(i);
}

HIGAMESTATE ConvertIGameState(Integer i)
{
	return _ConvertIGameState(i);
}

HFGAMESTATE ConvertFGameState(Integer i)
{
	return _ConvertFGameState(i);
}

HPLAYERSTATE ConvertPlayerState(Integer i)
{
	return _ConvertPlayerState(i);
}

HPLAYERSCORE ConvertPlayerScore(Integer i)
{
	return _ConvertPlayerScore(i);
}

HPLAYERGAMERESULT ConvertPlayerGameResult(Integer i)
{
	return _ConvertPlayerGameResult(i);
}

HUNITSTATE ConvertUnitState(Integer i)
{
	return _ConvertUnitState(i);
}

HAIDIFFICULTY ConvertAIDifficulty(Integer i)
{
	return _ConvertAIDifficulty(i);
}

HGAMEEVENT ConvertGameEvent(Integer i)
{
	return _ConvertGameEvent(i);
}

HPLAYEREVENT ConvertPlayerEvent(Integer i)
{
	return _ConvertPlayerEvent(i);
}

HPLAYERUNITEVENT ConvertPlayerUnitEvent(Integer i)
{
	return _ConvertPlayerUnitEvent(i);
}

HWIDGETEVENT ConvertWidgetEvent(Integer i)
{
	return _ConvertWidgetEvent(i);
}

HDIALOGEVENT ConvertDialogEvent(Integer i)
{
	return _ConvertDialogEvent(i);
}

HUNITEVENT ConvertUnitEvent(Integer i)
{
	return _ConvertUnitEvent(i);
}

HLIMITOP ConvertLimitOp(Integer i)
{
	return _ConvertLimitOp(i);
}

HUNITTYPE ConvertUnitType(Integer i)
{
	return _ConvertUnitType(i);
}

HGAMESPEED ConvertGameSpeed(Integer i)
{
	return _ConvertGameSpeed(i);
}

HPLACEMENT ConvertPlacement(Integer i)
{
	return _ConvertPlacement(i);
}

HSTARTLOCPRIO ConvertStartLocPrio(Integer i)
{
	return _ConvertStartLocPrio(i);
}

HGAMEDIFFICULTY ConvertGameDifficulty(Integer i)
{
	return _ConvertGameDifficulty(i);
}

HGAMETYPE ConvertGameType(Integer i)
{
	return _ConvertGameType(i);
}

HMAPFLAG ConvertMapFlag(Integer i)
{
	return _ConvertMapFlag(i);
}

HMAPVISIBILITY ConvertMapVisibility(Integer i)
{
	return _ConvertMapVisibility(i);
}

HMAPSETTING ConvertMapSetting(Integer i)
{
	return _ConvertMapSetting(i);
}

HMAPDENSITY ConvertMapDensity(Integer i)
{
	return _ConvertMapDensity(i);
}

HMAPCONTROL ConvertMapControl(Integer i)
{
	return _ConvertMapControl(i);
}

HPLAYERCOLOR ConvertPlayerColor(Integer i)
{
	return _ConvertPlayerColor(i);
}

HPLAYERSLOTSTATE ConvertPlayerSlotState(Integer i)
{
	return _ConvertPlayerSlotState(i);
}

HVOLUMEGROUP ConvertVolumeGroup(Integer i)
{
	return _ConvertVolumeGroup(i);
}

HCAMERAFIELD ConvertCameraField(Integer i)
{
	return _ConvertCameraField(i);
}

HBLENDMODE ConvertBlendMode(Integer i)
{
	return _ConvertBlendMode(i);
}

HRARITYCONTROL ConvertRarityControl(Integer i)
{
	return _ConvertRarityControl(i);
}

HTEXMAPFLAGS ConvertTexMapFlags(Integer i)
{
	return _ConvertTexMapFlags(i);
}

HFOGSTATE ConvertFogState(Integer i)
{
	return _ConvertFogState(i);
}

HEFFECTTYPE ConvertEffectType(Integer i)
{
	return _ConvertEffectType(i);
}

HVERSION ConvertVersion(Integer i)
{
	return _ConvertVersion(i);
}

HITEMTYPE ConvertItemType(Integer i)
{
	return _ConvertItemType(i);
}

HATTACKTYPE ConvertAttackType(Integer i)
{
	return _ConvertAttackType(i);
}

HDAMAGETYPE ConvertDamageType(Integer i)
{
	return _ConvertDamageType(i);
}

HWEAPONTYPE ConvertWeaponType(Integer i)
{
	return _ConvertWeaponType(i);
}

HSOUNDTYPE ConvertSoundType(Integer i)
{
	return _ConvertSoundType(i);
}

HPATHINGTYPE ConvertPathingType(Integer i)
{
	return _ConvertPathingType(i);
}

Integer OrderId(String orderIdString)
{
	return _OrderId(GetJassString(PChar(orderIdString)));
}

String OrderId2String(Integer orderId)
{
	return GetStringFromHandle(_OrderId2String(orderId));
}

Integer UnitId(String unitIdString)
{
	return _UnitId(GetJassString(PChar(unitIdString)));
}

String UnitId2String(Integer unitId)
{
	return GetStringFromHandle(_UnitId2String(unitId));
}

Integer AbilityId(String abilityIdString)
{
	return _AbilityId(GetJassString(PChar(abilityIdString)));
}

String AbilityId2String(Integer abilityId)
{
	return GetStringFromHandle(_AbilityId2String(abilityId));
}

String GetObjectName(Integer objectId)
{
	return GetStringFromHandle(_GetObjectName(objectId));
}

Single Deg2Rad(Single degrees)
{
	return _Deg2Rad(&degrees).Value;
}

Single Rad2Deg(Single radians)
{
	return _Rad2Deg(&radians).Value;
}

Single Sin(Single radians)
{
	return _Sin(&radians).Value;
}

Single Cos(Single radians)
{
	return _Cos(&radians).Value;
}

Single Tan(Single radians)
{
	return _Tan(&radians).Value;
}

Single Asin(Single y)
{
	return _Asin(&y).Value;
}

Single Acos(Single x)
{
	return _Acos(&x).Value;
}

Single Atan(Single x)
{
	return _Atan(&x).Value;
}

Single Atan2(Single y, Single x)
{
	return _Atan2(&y, &x).Value;
}

Single SquareRoot(Single x)
{
	return _SquareRoot(&x).Value;
}

Single Pow(Single x, Single power)
{
	return _Pow(&x, &power).Value;
}

Single I2R(Integer i)
{
	return _I2R(i).Value;
}

Integer R2I(Single r)
{
	return _R2I(&r);
}

String I2S(Integer i)
{
	return GetStringFromHandle(_I2S(i));
}

String R2S(Single r)
{
	return GetStringFromHandle(_R2S(&r));
}

String R2SW(Single r, Integer width, Integer precision)
{
	return GetStringFromHandle(_R2SW(&r, width, precision));
}

Integer S2I(String s)
{
	return _S2I(GetJassString(PChar(s)));
}

Single S2R(String s)
{
	return _S2R(GetJassString(PChar(s))).Value;
}

Integer GetHandleId(TJassHandle h)
{
	return _GetHandleId(h);
}

String SubString(String source, Integer start, Integer end_)
{
	return GetStringFromHandle(_SubString(GetJassString(PChar(source)), start, end_));
}

Integer StringLength(String s)
{
	return _StringLength(GetJassString(PChar(s)));
}

String StringCase(String source, Boolean upper)
{
	return GetStringFromHandle(_StringCase(GetJassString(PChar(source)), upper));
}

Integer StringHash(String s)
{
	return _StringHash(GetJassString(PChar(s)));
}

String GetLocalizedString(String source)
{
	return GetStringFromHandle(_GetLocalizedString(GetJassString(PChar(source))));
}

Integer GetLocalizedHotkey(String source)
{
	return _GetLocalizedHotkey(GetJassString(PChar(source)));
}

procedure SetMapName(String name)
{
	_SetMapName(GetJassString(PChar(name)));
}

procedure SetMapDescription(String description)
{
	_SetMapDescription(GetJassString(PChar(description)));
}

procedure SetTeams(Integer teamcount)
{
	_SetTeams(teamcount);
}

procedure SetPlayers(Integer playercount)
{
	_SetPlayers(playercount);
}

procedure DefineStartLocation(Integer whichStartLoc, Single x, Single y)
{
	_DefineStartLocation(whichStartLoc, &x, &y);
}

procedure DefineStartLocationLoc(Integer whichStartLoc, HLOCATION whichLocation)
{
	_DefineStartLocationLoc(whichStartLoc, whichLocation);
}

procedure SetStartLocPrioCount(Integer whichStartLoc, Integer prioSlotCount)
{
	_SetStartLocPrioCount(whichStartLoc, prioSlotCount);
}

procedure SetStartLocPrio(Integer whichStartLoc, Integer prioSlotIndex, Integer otherStartLocIndex, HSTARTLOCPRIO priority)
{
	_SetStartLocPrio(whichStartLoc, prioSlotIndex, otherStartLocIndex, priority);
}

Integer GetStartLocPrioSlot(Integer whichStartLoc, Integer prioSlotIndex)
{
	return _GetStartLocPrioSlot(whichStartLoc, prioSlotIndex);
}

HSTARTLOCPRIO GetStartLocPrio(Integer whichStartLoc, Integer prioSlotIndex)
{
	return _GetStartLocPrio(whichStartLoc, prioSlotIndex);
}

procedure SetGameTypeSupported(HGAMETYPE whichGameType, Boolean value)
{
	_SetGameTypeSupported(whichGameType, value);
}

procedure SetMapFlag(HMAPFLAG whichMapFlag, Boolean value)
{
	_SetMapFlag(whichMapFlag, value);
}

procedure SetGamePlacement(HPLACEMENT whichPlacementType)
{
	_SetGamePlacement(whichPlacementType);
}

procedure SetGameSpeed(HGAMESPEED whichspeed)
{
	_SetGameSpeed(whichspeed);
}

procedure SetGameDifficulty(HGAMEDIFFICULTY whichdifficulty)
{
	_SetGameDifficulty(whichdifficulty);
}

procedure SetResourceDensity(HMAPDENSITY whichdensity)
{
	_SetResourceDensity(whichdensity);
}

procedure SetCreatureDensity(HMAPDENSITY whichdensity)
{
	_SetCreatureDensity(whichdensity);
}

Integer GetTeams()
{
	return _GetTeams();
}

Integer GetPlayers()
{
	return _GetPlayers();
}

Boolean IsGameTypeSupported(HGAMETYPE whichGameType)
{
	return _IsGameTypeSupported(whichGameType);
}

HGAMETYPE GetGameTypeSelected()
{
	return _GetGameTypeSelected();
}

Boolean IsMapFlagSet(HMAPFLAG whichMapFlag)
{
	return _IsMapFlagSet(whichMapFlag);
}

HPLACEMENT GetGamePlacement()
{
	return _GetGamePlacement();
}

HGAMESPEED GetGameSpeed()
{
	return _GetGameSpeed();
}

HGAMEDIFFICULTY GetGameDifficulty()
{
	return _GetGameDifficulty();
}

HMAPDENSITY GetResourceDensity()
{
	return _GetResourceDensity();
}

HMAPDENSITY GetCreatureDensity()
{
	return _GetCreatureDensity();
}

Single GetStartLocationX(Integer whichStartLocation)
{
	return _GetStartLocationX(whichStartLocation).Value;
}

Single GetStartLocationY(Integer whichStartLocation)
{
	return _GetStartLocationY(whichStartLocation).Value;
}

HLOCATION GetStartLocationLoc(Integer whichStartLocation)
{
	return _GetStartLocationLoc(whichStartLocation);
}

procedure SetPlayerTeam(HPLAYER whichPlayer, Integer whichTeam)
{
	_SetPlayerTeam(whichPlayer, whichTeam);
}

procedure SetPlayerStartLocation(HPLAYER whichPlayer, Integer startLocIndex)
{
	_SetPlayerStartLocation(whichPlayer, startLocIndex);
}

procedure ForcePlayerStartLocation(HPLAYER whichPlayer, Integer startLocIndex)
{
	_ForcePlayerStartLocation(whichPlayer, startLocIndex);
}

procedure SetPlayerColor(HPLAYER whichPlayer, HPLAYERCOLOR color)
{
	_SetPlayerColor(whichPlayer, color);
}

procedure SetPlayerAlliance(HPLAYER sourcePlayer, HPLAYER otherPlayer, HALLIANCETYPE whichAllianceSetting, Boolean value)
{
	_SetPlayerAlliance(sourcePlayer, otherPlayer, whichAllianceSetting, value);
}

procedure SetPlayerTaxRate(HPLAYER sourcePlayer, HPLAYER otherPlayer, HPLAYERSTATE whichResource, Integer rate)
{
	_SetPlayerTaxRate(sourcePlayer, otherPlayer, whichResource, rate);
}

procedure SetPlayerRacePreference(HPLAYER whichPlayer, HRACEPREFERENCE whichRacePreference)
{
	_SetPlayerRacePreference(whichPlayer, whichRacePreference);
}

procedure SetPlayerRaceSelectable(HPLAYER whichPlayer, Boolean value)
{
	_SetPlayerRaceSelectable(whichPlayer, value);
}

procedure SetPlayerController(HPLAYER whichPlayer, HMAPCONTROL controlType)
{
	_SetPlayerController(whichPlayer, controlType);
}

procedure SetPlayerName(HPLAYER whichPlayer, String name)
{
	_SetPlayerName(whichPlayer, GetJassString(PChar(name)));
}

procedure SetPlayerOnScoreScreen(HPLAYER whichPlayer, Boolean flag)
{
	_SetPlayerOnScoreScreen(whichPlayer, flag);
}

Integer GetPlayerTeam(HPLAYER whichPlayer)
{
	return _GetPlayerTeam(whichPlayer);
}

Integer GetPlayerStartLocation(HPLAYER whichPlayer)
{
	return _GetPlayerStartLocation(whichPlayer);
}

HPLAYERCOLOR GetPlayerColor(HPLAYER whichPlayer)
{
	return _GetPlayerColor(whichPlayer);
}

Boolean GetPlayerSelectable(HPLAYER whichPlayer)
{
	return _GetPlayerSelectable(whichPlayer);
}

HMAPCONTROL GetPlayerController(HPLAYER whichPlayer)
{
	return _GetPlayerController(whichPlayer);
}

HPLAYERSLOTSTATE GetPlayerSlotState(HPLAYER whichPlayer)
{
	return _GetPlayerSlotState(whichPlayer);
}

Integer GetPlayerTaxRate(HPLAYER sourcePlayer, HPLAYER otherPlayer, HPLAYERSTATE whichResource)
{
	return _GetPlayerTaxRate(sourcePlayer, otherPlayer, whichResource);
}

Boolean IsPlayerRacePrefSet(HPLAYER whichPlayer, HRACEPREFERENCE pref)
{
	return _IsPlayerRacePrefSet(whichPlayer, pref);
}

String GetPlayerName(HPLAYER whichPlayer)
{
	return GetStringFromHandle(_GetPlayerName(whichPlayer));
}

HTIMER CreateTimer()
{
	return _CreateTimer();
}

procedure DestroyTimer(HTIMER whichTimer)
{
	_DestroyTimer(whichTimer);
}

procedure TimerStart(HTIMER whichTimer, Single timeout, Boolean periodic, TCode handlerFunc)
{
	_TimerStart(whichTimer, &timeout, periodic, TJassFunctionHandle(handlerFunc));
}

Single TimerGetElapsed(HTIMER whichTimer)
{
	return _TimerGetElapsed(whichTimer).Value;
}

Single TimerGetRemaining(HTIMER whichTimer)
{
	return _TimerGetRemaining(whichTimer).Value;
}

Single TimerGetTimeout(HTIMER whichTimer)
{
	return _TimerGetTimeout(whichTimer).Value;
}

procedure PauseTimer(HTIMER whichTimer)
{
	_PauseTimer(whichTimer);
}

procedure ResumeTimer(HTIMER whichTimer)
{
	_ResumeTimer(whichTimer);
}

HTIMER GetExpiredTimer()
{
	return _GetExpiredTimer();
}

HGROUP CreateGroup()
{
	return _CreateGroup();
}

procedure DestroyGroup(HGROUP whichGroup)
{
	_DestroyGroup(whichGroup);
}

procedure GroupAddUnit(HGROUP whichGroup, HUNIT whichUnit)
{
	_GroupAddUnit(whichGroup, whichUnit);
}

procedure GroupRemoveUnit(HGROUP whichGroup, HUNIT whichUnit)
{
	_GroupRemoveUnit(whichGroup, whichUnit);
}

procedure GroupClear(HGROUP whichGroup)
{
	_GroupClear(whichGroup);
}

procedure GroupEnumUnitsOfType(HGROUP whichGroup, String unitname, HBOOLEXPR filter)
{
	_GroupEnumUnitsOfType(whichGroup, GetJassString(PChar(unitname)), filter);
}

procedure GroupEnumUnitsOfPlayer(HGROUP whichGroup, HPLAYER whichPlayer, HBOOLEXPR filter)
{
	_GroupEnumUnitsOfPlayer(whichGroup, whichPlayer, filter);
}

procedure GroupEnumUnitsOfTypeCounted(HGROUP whichGroup, String unitname, HBOOLEXPR filter, Integer countLimit)
{
	_GroupEnumUnitsOfTypeCounted(whichGroup, GetJassString(PChar(unitname)), filter, countLimit);
}

procedure GroupEnumUnitsInRect(HGROUP whichGroup, HRECT r, HBOOLEXPR filter)
{
	_GroupEnumUnitsInRect(whichGroup, r, filter);
}

procedure GroupEnumUnitsInRectCounted(HGROUP whichGroup, HRECT r, HBOOLEXPR filter, Integer countLimit)
{
	_GroupEnumUnitsInRectCounted(whichGroup, r, filter, countLimit);
}

procedure GroupEnumUnitsInRange(HGROUP whichGroup, Single x, Single y, Single radius, HBOOLEXPR filter)
{
	_GroupEnumUnitsInRange(whichGroup, &x, &y, &radius, filter);
}

procedure GroupEnumUnitsInRangeOfLoc(HGROUP whichGroup, HLOCATION whichLocation, Single radius, HBOOLEXPR filter)
{
	_GroupEnumUnitsInRangeOfLoc(whichGroup, whichLocation, &radius, filter);
}

procedure GroupEnumUnitsInRangeCounted(HGROUP whichGroup, Single x, Single y, Single radius, HBOOLEXPR filter, Integer countLimit)
{
	_GroupEnumUnitsInRangeCounted(whichGroup, &x, &y, &radius, filter, countLimit);
}

procedure GroupEnumUnitsInRangeOfLocCounted(HGROUP whichGroup, HLOCATION whichLocation, Single radius, HBOOLEXPR filter, Integer countLimit)
{
	_GroupEnumUnitsInRangeOfLocCounted(whichGroup, whichLocation, &radius, filter, countLimit);
}

procedure GroupEnumUnitsSelected(HGROUP whichGroup, HPLAYER whichPlayer, HBOOLEXPR filter)
{
	_GroupEnumUnitsSelected(whichGroup, whichPlayer, filter);
}

Boolean GroupImmediateOrder(HGROUP whichGroup, String order)
{
	return _GroupImmediateOrder(whichGroup, GetJassString(PChar(order)));
}

Boolean GroupImmediateOrderById(HGROUP whichGroup, Integer order)
{
	return _GroupImmediateOrderById(whichGroup, order);
}

Boolean GroupPointOrder(HGROUP whichGroup, String order, Single x, Single y)
{
	return _GroupPointOrder(whichGroup, GetJassString(PChar(order)), &x, &y);
}

Boolean GroupPointOrderLoc(HGROUP whichGroup, String order, HLOCATION whichLocation)
{
	return _GroupPointOrderLoc(whichGroup, GetJassString(PChar(order)), whichLocation);
}

Boolean GroupPointOrderById(HGROUP whichGroup, Integer order, Single x, Single y)
{
	return _GroupPointOrderById(whichGroup, order, &x, &y);
}

Boolean GroupPointOrderByIdLoc(HGROUP whichGroup, Integer order, HLOCATION whichLocation)
{
	return _GroupPointOrderByIdLoc(whichGroup, order, whichLocation);
}

Boolean GroupTargetOrder(HGROUP whichGroup, String order, HWIDGET targetWidget)
{
	return _GroupTargetOrder(whichGroup, GetJassString(PChar(order)), targetWidget);
}

Boolean GroupTargetOrderById(HGROUP whichGroup, Integer order, HWIDGET targetWidget)
{
	return _GroupTargetOrderById(whichGroup, order, targetWidget);
}

procedure ForGroup(HGROUP whichGroup, TCode callback)
{
	_ForGroup(whichGroup, TJassFunctionHandle(callback));
}

HUNIT FirstOfGroup(HGROUP whichGroup)
{
	return _FirstOfGroup(whichGroup);
}

HFORCE CreateForce()
{
	return _CreateForce();
}

procedure DestroyForce(HFORCE whichForce)
{
	_DestroyForce(whichForce);
}

procedure ForceAddPlayer(HFORCE whichForce, HPLAYER whichPlayer)
{
	_ForceAddPlayer(whichForce, whichPlayer);
}

procedure ForceRemovePlayer(HFORCE whichForce, HPLAYER whichPlayer)
{
	_ForceRemovePlayer(whichForce, whichPlayer);
}

procedure ForceClear(HFORCE whichForce)
{
	_ForceClear(whichForce);
}

procedure ForceEnumPlayers(HFORCE whichForce, HBOOLEXPR filter)
{
	_ForceEnumPlayers(whichForce, filter);
}

procedure ForceEnumPlayersCounted(HFORCE whichForce, HBOOLEXPR filter, Integer countLimit)
{
	_ForceEnumPlayersCounted(whichForce, filter, countLimit);
}

procedure ForceEnumAllies(HFORCE whichForce, HPLAYER whichPlayer, HBOOLEXPR filter)
{
	_ForceEnumAllies(whichForce, whichPlayer, filter);
}

procedure ForceEnumEnemies(HFORCE whichForce, HPLAYER whichPlayer, HBOOLEXPR filter)
{
	_ForceEnumEnemies(whichForce, whichPlayer, filter);
}

procedure ForForce(HFORCE whichForce, TCode callback)
{
	_ForForce(whichForce, TJassFunctionHandle(callback));
}

HRECT Rect(Single minx, Single miny, Single maxx, Single maxy)
{
	return _Rect(&minx, &miny, &maxx, &maxy);
}

HRECT RectFromLoc(HLOCATION min, HLOCATION max)
{
	return _RectFromLoc(min, max);
}

procedure RemoveRect(HRECT whichRect)
{
	_RemoveRect(whichRect);
}

procedure SetRect(HRECT whichRect, Single minx, Single miny, Single maxx, Single maxy)
{
	_SetRect(whichRect, &minx, &miny, &maxx, &maxy);
}

procedure SetRectFromLoc(HRECT whichRect, HLOCATION min, HLOCATION max)
{
	_SetRectFromLoc(whichRect, min, max);
}

procedure MoveRectTo(HRECT whichRect, Single newCenterX, Single newCenterY)
{
	_MoveRectTo(whichRect, &newCenterX, &newCenterY);
}

procedure MoveRectToLoc(HRECT whichRect, HLOCATION newCenterLoc)
{
	_MoveRectToLoc(whichRect, newCenterLoc);
}

Single GetRectCenterX(HRECT whichRect)
{
	return _GetRectCenterX(whichRect).Value;
}

Single GetRectCenterY(HRECT whichRect)
{
	return _GetRectCenterY(whichRect).Value;
}

Single GetRectMinX(HRECT whichRect)
{
	return _GetRectMinX(whichRect).Value;
}

Single GetRectMinY(HRECT whichRect)
{
	return _GetRectMinY(whichRect).Value;
}

Single GetRectMaxX(HRECT whichRect)
{
	return _GetRectMaxX(whichRect).Value;
}

Single GetRectMaxY(HRECT whichRect)
{
	return _GetRectMaxY(whichRect).Value;
}

HREGION CreateRegion()
{
	return _CreateRegion();
}

procedure RemoveRegion(HREGION whichRegion)
{
	_RemoveRegion(whichRegion);
}

procedure RegionAddRect(HREGION whichRegion, HRECT r)
{
	_RegionAddRect(whichRegion, r);
}

procedure RegionClearRect(HREGION whichRegion, HRECT r)
{
	_RegionClearRect(whichRegion, r);
}

procedure RegionAddCell(HREGION whichRegion, Single x, Single y)
{
	_RegionAddCell(whichRegion, &x, &y);
}

procedure RegionAddCellAtLoc(HREGION whichRegion, HLOCATION whichLocation)
{
	_RegionAddCellAtLoc(whichRegion, whichLocation);
}

procedure RegionClearCell(HREGION whichRegion, Single x, Single y)
{
	_RegionClearCell(whichRegion, &x, &y);
}

procedure RegionClearCellAtLoc(HREGION whichRegion, HLOCATION whichLocation)
{
	_RegionClearCellAtLoc(whichRegion, whichLocation);
}

HLOCATION Location(Single x, Single y)
{
	return _Location(&x, &y);
}

procedure RemoveLocation(HLOCATION whichLocation)
{
	_RemoveLocation(whichLocation);
}

procedure MoveLocation(HLOCATION whichLocation, Single newX, Single newY)
{
	_MoveLocation(whichLocation, &newX, &newY);
}

Single GetLocationX(HLOCATION whichLocation)
{
	return _GetLocationX(whichLocation).Value;
}

Single GetLocationY(HLOCATION whichLocation)
{
	return _GetLocationY(whichLocation).Value;
}

Single GetLocationZ(HLOCATION whichLocation)
{
	return _GetLocationZ(whichLocation).Value;
}

Boolean IsUnitInRegion(HREGION whichRegion, HUNIT whichUnit)
{
	return _IsUnitInRegion(whichRegion, whichUnit);
}

Boolean IsPointInRegion(HREGION whichRegion, Single x, Single y)
{
	return _IsPointInRegion(whichRegion, &x, &y);
}

Boolean IsLocationInRegion(HREGION whichRegion, HLOCATION whichLocation)
{
	return _IsLocationInRegion(whichRegion, whichLocation);
}

HRECT GetWorldBounds()
{
	return _GetWorldBounds();
}

HTRIGGER CreateTrigger()
{
	return _CreateTrigger();
}

procedure DestroyTrigger(HTRIGGER whichTrigger)
{
	_DestroyTrigger(whichTrigger);
}

procedure ResetTrigger(HTRIGGER whichTrigger)
{
	_ResetTrigger(whichTrigger);
}

procedure EnableTrigger(HTRIGGER whichTrigger)
{
	_EnableTrigger(whichTrigger);
}

procedure DisableTrigger(HTRIGGER whichTrigger)
{
	_DisableTrigger(whichTrigger);
}

Boolean IsTriggerEnabled(HTRIGGER whichTrigger)
{
	return _IsTriggerEnabled(whichTrigger);
}

procedure TriggerWaitOnSleeps(HTRIGGER whichTrigger, Boolean flag)
{
	_TriggerWaitOnSleeps(whichTrigger, flag);
}

Boolean IsTriggerWaitOnSleeps(HTRIGGER whichTrigger)
{
	return _IsTriggerWaitOnSleeps(whichTrigger);
}

HUNIT GetFilterUnit()
{
	return _GetFilterUnit();
}

HUNIT GetEnumUnit()
{
	return _GetEnumUnit();
}

HDESTRUCTABLE GetFilterDestructable()
{
	return _GetFilterDestructable();
}

HDESTRUCTABLE GetEnumDestructable()
{
	return _GetEnumDestructable();
}

HITEM GetFilterItem()
{
	return _GetFilterItem();
}

HITEM GetEnumItem()
{
	return _GetEnumItem();
}

HPLAYER GetFilterPlayer()
{
	return _GetFilterPlayer();
}

HPLAYER GetEnumPlayer()
{
	return _GetEnumPlayer();
}

HTRIGGER GetTriggeringTrigger()
{
	return _GetTriggeringTrigger();
}

HEVENTID GetTriggerEventId()
{
	return _GetTriggerEventId();
}

Integer GetTriggerEvalCount(HTRIGGER whichTrigger)
{
	return _GetTriggerEvalCount(whichTrigger);
}

Integer GetTriggerExecCount(HTRIGGER whichTrigger)
{
	return _GetTriggerExecCount(whichTrigger);
}

procedure ExecuteFunc(String funcName)
{
	_ExecuteFunc(GetJassString(PChar(funcName)));
}

HBOOLEXPR And_(HBOOLEXPR operandA, HBOOLEXPR operandB)
{
	return _And_(operandA, operandB);
}

HBOOLEXPR Or_(HBOOLEXPR operandA, HBOOLEXPR operandB)
{
	return _Or_(operandA, operandB);
}

HBOOLEXPR Not_(HBOOLEXPR operand)
{
	return _Not_(operand);
}

HCONDITIONFUNC Condition(TCode func)
{
	return _Condition(TJassFunctionHandle(func));
}

procedure DestroyCondition(HCONDITIONFUNC c)
{
	_DestroyCondition(c);
}

HFILTERFUNC Filter(TCode func)
{
	return _Filter(TJassFunctionHandle(func));
}

procedure DestroyFilter(HFILTERFUNC f)
{
	_DestroyFilter(f);
}

procedure DestroyBoolExpr(HBOOLEXPR e)
{
	_DestroyBoolExpr(e);
}

HEVENT TriggerRegisterVariableEvent(HTRIGGER whichTrigger, String varName, HLIMITOP opcode, Single limitval)
{
	return _TriggerRegisterVariableEvent(whichTrigger, GetJassString(PChar(varName)), opcode, &limitval);
}

HEVENT TriggerRegisterTimerEvent(HTRIGGER whichTrigger, Single timeout, Boolean periodic)
{
	return _TriggerRegisterTimerEvent(whichTrigger, &timeout, periodic);
}

HEVENT TriggerRegisterTimerExpireEvent(HTRIGGER whichTrigger, HTIMER t)
{
	return _TriggerRegisterTimerExpireEvent(whichTrigger, t);
}

HEVENT TriggerRegisterGameStateEvent(HTRIGGER whichTrigger, HGAMESTATE whichState, HLIMITOP opcode, Single limitval)
{
	return _TriggerRegisterGameStateEvent(whichTrigger, whichState, opcode, &limitval);
}

HEVENT TriggerRegisterDialogEvent(HTRIGGER whichTrigger, HDIALOG whichDialog)
{
	return _TriggerRegisterDialogEvent(whichTrigger, whichDialog);
}

HEVENT TriggerRegisterDialogButtonEvent(HTRIGGER whichTrigger, HBUTTON whichButton)
{
	return _TriggerRegisterDialogButtonEvent(whichTrigger, whichButton);
}

HGAMESTATE GetEventGameState()
{
	return _GetEventGameState();
}

HEVENT TriggerRegisterGameEvent(HTRIGGER whichTrigger, HGAMEEVENT whichGameEvent)
{
	return _TriggerRegisterGameEvent(whichTrigger, whichGameEvent);
}

HPLAYER GetWinningPlayer()
{
	return _GetWinningPlayer();
}

HEVENT TriggerRegisterEnterRegion(HTRIGGER whichTrigger, HREGION whichRegion, HBOOLEXPR filter)
{
	return _TriggerRegisterEnterRegion(whichTrigger, whichRegion, filter);
}

HREGION GetTriggeringRegion()
{
	return _GetTriggeringRegion();
}

HUNIT GetEnteringUnit()
{
	return _GetEnteringUnit();
}

HEVENT TriggerRegisterLeaveRegion(HTRIGGER whichTrigger, HREGION whichRegion, HBOOLEXPR filter)
{
	return _TriggerRegisterLeaveRegion(whichTrigger, whichRegion, filter);
}

HUNIT GetLeavingUnit()
{
	return _GetLeavingUnit();
}

HEVENT TriggerRegisterTrackableHitEvent(HTRIGGER whichTrigger, HTRACKABLE t)
{
	return _TriggerRegisterTrackableHitEvent(whichTrigger, t);
}

HEVENT TriggerRegisterTrackableTrackEvent(HTRIGGER whichTrigger, HTRACKABLE t)
{
	return _TriggerRegisterTrackableTrackEvent(whichTrigger, t);
}

HTRACKABLE GetTriggeringTrackable()
{
	return _GetTriggeringTrackable();
}

HBUTTON GetClickedButton()
{
	return _GetClickedButton();
}

HDIALOG GetClickedDialog()
{
	return _GetClickedDialog();
}

Single GetTournamentFinishSoonTimeRemaining()
{
	return _GetTournamentFinishSoonTimeRemaining().Value;
}

Integer GetTournamentFinishNowRule()
{
	return _GetTournamentFinishNowRule();
}

HPLAYER GetTournamentFinishNowPlayer()
{
	return _GetTournamentFinishNowPlayer();
}

Integer GetTournamentScore(HPLAYER whichPlayer)
{
	return _GetTournamentScore(whichPlayer);
}

String GetSaveBasicFilename()
{
	return GetStringFromHandle(_GetSaveBasicFilename());
}

HEVENT TriggerRegisterPlayerEvent(HTRIGGER whichTrigger, HPLAYER whichPlayer, HPLAYEREVENT whichPlayerEvent)
{
	return _TriggerRegisterPlayerEvent(whichTrigger, whichPlayer, whichPlayerEvent);
}

HPLAYER GetTriggerPlayer()
{
	return _GetTriggerPlayer();
}

HEVENT TriggerRegisterPlayerUnitEvent(HTRIGGER whichTrigger, HPLAYER whichPlayer, HPLAYERUNITEVENT whichPlayerUnitEvent, HBOOLEXPR filter)
{
	return _TriggerRegisterPlayerUnitEvent(whichTrigger, whichPlayer, whichPlayerUnitEvent, filter);
}

HUNIT GetLevelingUnit()
{
	return _GetLevelingUnit();
}

HUNIT GetLearningUnit()
{
	return _GetLearningUnit();
}

Integer GetLearnedSkill()
{
	return _GetLearnedSkill();
}

Integer GetLearnedSkillLevel()
{
	return _GetLearnedSkillLevel();
}

HUNIT GetRevivableUnit()
{
	return _GetRevivableUnit();
}

HUNIT GetRevivingUnit()
{
	return _GetRevivingUnit();
}

HUNIT GetAttacker()
{
	return _GetAttacker();
}

HUNIT GetRescuer()
{
	return _GetRescuer();
}

HUNIT GetDyingUnit()
{
	return _GetDyingUnit();
}

HUNIT GetKillingUnit()
{
	return _GetKillingUnit();
}

HUNIT GetDecayingUnit()
{
	return _GetDecayingUnit();
}

HUNIT GetSelectedUnit()
{
	return _GetSelectedUnit();
}

HUNIT GetConstructingStructure()
{
	return _GetConstructingStructure();
}

HUNIT GetCancelledStructure()
{
	return _GetCancelledStructure();
}

HUNIT GetConstructedStructure()
{
	return _GetConstructedStructure();
}

HUNIT GetResearchingUnit()
{
	return _GetResearchingUnit();
}

Integer GetResearched()
{
	return _GetResearched();
}

Integer GetTrainedUnitType()
{
	return _GetTrainedUnitType();
}

HUNIT GetTrainedUnit()
{
	return _GetTrainedUnit();
}

HUNIT GetDetectedUnit()
{
	return _GetDetectedUnit();
}

HUNIT GetSummoningUnit()
{
	return _GetSummoningUnit();
}

HUNIT GetSummonedUnit()
{
	return _GetSummonedUnit();
}

HUNIT GetTransportUnit()
{
	return _GetTransportUnit();
}

HUNIT GetLoadedUnit()
{
	return _GetLoadedUnit();
}

HUNIT GetSellingUnit()
{
	return _GetSellingUnit();
}

HUNIT GetSoldUnit()
{
	return _GetSoldUnit();
}

HUNIT GetBuyingUnit()
{
	return _GetBuyingUnit();
}

HITEM GetSoldItem()
{
	return _GetSoldItem();
}

HUNIT GetChangingUnit()
{
	return _GetChangingUnit();
}

HPLAYER GetChangingUnitPrevOwner()
{
	return _GetChangingUnitPrevOwner();
}

HUNIT GetManipulatingUnit()
{
	return _GetManipulatingUnit();
}

HITEM GetManipulatedItem()
{
	return _GetManipulatedItem();
}

HUNIT GetOrderedUnit()
{
	return _GetOrderedUnit();
}

Integer GetIssuedOrderId()
{
	return _GetIssuedOrderId();
}

Single GetOrderPointX()
{
	return _GetOrderPointX().Value;
}

Single GetOrderPointY()
{
	return _GetOrderPointY().Value;
}

HLOCATION GetOrderPointLoc()
{
	return _GetOrderPointLoc();
}

HWIDGET GetOrderTarget()
{
	return _GetOrderTarget();
}

HDESTRUCTABLE GetOrderTargetDestructable()
{
	return _GetOrderTargetDestructable();
}

HITEM GetOrderTargetItem()
{
	return _GetOrderTargetItem();
}

HUNIT GetOrderTargetUnit()
{
	return _GetOrderTargetUnit();
}

HUNIT GetSpellAbilityUnit()
{
	return _GetSpellAbilityUnit();
}

Integer GetSpellAbilityId()
{
	return _GetSpellAbilityId();
}

HABILITY GetSpellAbility()
{
	return _GetSpellAbility();
}

HLOCATION GetSpellTargetLoc()
{
	return _GetSpellTargetLoc();
}

Single GetSpellTargetX()
{
	return _GetSpellTargetX().Value;
}

Single GetSpellTargetY()
{
	return _GetSpellTargetY().Value;
}

HDESTRUCTABLE GetSpellTargetDestructable()
{
	return _GetSpellTargetDestructable();
}

HITEM GetSpellTargetItem()
{
	return _GetSpellTargetItem();
}

HUNIT GetSpellTargetUnit()
{
	return _GetSpellTargetUnit();
}

HEVENT TriggerRegisterPlayerAllianceChange(HTRIGGER whichTrigger, HPLAYER whichPlayer, HALLIANCETYPE whichAlliance)
{
	return _TriggerRegisterPlayerAllianceChange(whichTrigger, whichPlayer, whichAlliance);
}

HEVENT TriggerRegisterPlayerStateEvent(HTRIGGER whichTrigger, HPLAYER whichPlayer, HPLAYERSTATE whichState, HLIMITOP opcode, Single limitval)
{
	return _TriggerRegisterPlayerStateEvent(whichTrigger, whichPlayer, whichState, opcode, &limitval);
}

HPLAYERSTATE GetEventPlayerState()
{
	return _GetEventPlayerState();
}

HEVENT TriggerRegisterPlayerChatEvent(HTRIGGER whichTrigger, HPLAYER whichPlayer, String chatMessageToDetect, Boolean exactMatchOnly)
{
	return _TriggerRegisterPlayerChatEvent(whichTrigger, whichPlayer, GetJassString(PChar(chatMessageToDetect)), exactMatchOnly);
}

String GetEventPlayerChatString()
{
	return GetStringFromHandle(_GetEventPlayerChatString());
}

String GetEventPlayerChatStringMatched()
{
	return GetStringFromHandle(_GetEventPlayerChatStringMatched());
}

HEVENT TriggerRegisterDeathEvent(HTRIGGER whichTrigger, HWIDGET whichWidget)
{
	return _TriggerRegisterDeathEvent(whichTrigger, whichWidget);
}

HUNIT GetTriggerUnit()
{
	return _GetTriggerUnit();
}

HEVENT TriggerRegisterUnitStateEvent(HTRIGGER whichTrigger, HUNIT whichUnit, HUNITSTATE whichState, HLIMITOP opcode, Single limitval)
{
	return _TriggerRegisterUnitStateEvent(whichTrigger, whichUnit, whichState, opcode, &limitval);
}

HUNITSTATE GetEventUnitState()
{
	return _GetEventUnitState();
}

HEVENT TriggerRegisterUnitEvent(HTRIGGER whichTrigger, HUNIT whichUnit, HUNITEVENT whichEvent)
{
	return _TriggerRegisterUnitEvent(whichTrigger, whichUnit, whichEvent);
}

Single GetEventDamage()
{
	return _GetEventDamage().Value;
}

HUNIT GetEventDamageSource()
{
	return _GetEventDamageSource();
}

HPLAYER GetEventDetectingPlayer()
{
	return _GetEventDetectingPlayer();
}

HEVENT TriggerRegisterFilterUnitEvent(HTRIGGER whichTrigger, HUNIT whichUnit, HUNITEVENT whichEvent, HBOOLEXPR filter)
{
	return _TriggerRegisterFilterUnitEvent(whichTrigger, whichUnit, whichEvent, filter);
}

HUNIT GetEventTargetUnit()
{
	return _GetEventTargetUnit();
}

HEVENT TriggerRegisterUnitInRange(HTRIGGER whichTrigger, HUNIT whichUnit, Single range, HBOOLEXPR filter)
{
	return _TriggerRegisterUnitInRange(whichTrigger, whichUnit, &range, filter);
}

HTRIGGERCONDITION TriggerAddCondition(HTRIGGER whichTrigger, HBOOLEXPR condition)
{
	return _TriggerAddCondition(whichTrigger, condition);
}

procedure TriggerRemoveCondition(HTRIGGER whichTrigger, HTRIGGERCONDITION whichCondition)
{
	_TriggerRemoveCondition(whichTrigger, whichCondition);
}

procedure TriggerClearConditions(HTRIGGER whichTrigger)
{
	_TriggerClearConditions(whichTrigger);
}

HTRIGGERACTION TriggerAddAction(HTRIGGER whichTrigger, TCode actionFunc)
{
	return _TriggerAddAction(whichTrigger, TJassFunctionHandle(actionFunc));
}

procedure TriggerRemoveAction(HTRIGGER whichTrigger, HTRIGGERACTION whichAction)
{
	_TriggerRemoveAction(whichTrigger, whichAction);
}

procedure TriggerClearActions(HTRIGGER whichTrigger)
{
	_TriggerClearActions(whichTrigger);
}

procedure TriggerSleepAction(Single timeout)
{
	_TriggerSleepAction(&timeout);
}

procedure TriggerWaitForSound(HSOUND s, Single offset)
{
	_TriggerWaitForSound(s, &offset);
}

Boolean TriggerEvaluate(HTRIGGER whichTrigger)
{
	return _TriggerEvaluate(whichTrigger);
}

procedure TriggerExecute(HTRIGGER whichTrigger)
{
	_TriggerExecute(whichTrigger);
}

procedure TriggerExecuteWait(HTRIGGER whichTrigger)
{
	_TriggerExecuteWait(whichTrigger);
}

procedure TriggerSyncStart()
{
	_TriggerSyncStart();
}

procedure TriggerSyncReady()
{
	_TriggerSyncReady();
}

Single GetWidgetLife(HWIDGET whichWidget)
{
	return _GetWidgetLife(whichWidget).Value;
}

procedure SetWidgetLife(HWIDGET whichWidget, Single newLife)
{
	_SetWidgetLife(whichWidget, &newLife);
}

Single GetWidgetX(HWIDGET whichWidget)
{
	return _GetWidgetX(whichWidget).Value;
}

Single GetWidgetY(HWIDGET whichWidget)
{
	return _GetWidgetY(whichWidget).Value;
}

HWIDGET GetTriggerWidget()
{
	return _GetTriggerWidget();
}

HDESTRUCTABLE CreateDestructable(Integer objectid, Single x, Single y, Single face, Single scale, Integer variation)
{
	return _CreateDestructable(objectid, &x, &y, &face, &scale, variation);
}

HDESTRUCTABLE CreateDestructableZ(Integer objectid, Single x, Single y, Single z, Single face, Single scale, Integer variation)
{
	return _CreateDestructableZ(objectid, &x, &y, &z, &face, &scale, variation);
}

HDESTRUCTABLE CreateDeadDestructable(Integer objectid, Single x, Single y, Single face, Single scale, Integer variation)
{
	return _CreateDeadDestructable(objectid, &x, &y, &face, &scale, variation);
}

HDESTRUCTABLE CreateDeadDestructableZ(Integer objectid, Single x, Single y, Single z, Single face, Single scale, Integer variation)
{
	return _CreateDeadDestructableZ(objectid, &x, &y, &z, &face, &scale, variation);
}

procedure RemoveDestructable(HDESTRUCTABLE d)
{
	_RemoveDestructable(d);
}

procedure KillDestructable(HDESTRUCTABLE d)
{
	_KillDestructable(d);
}

procedure SetDestructableInvulnerable(HDESTRUCTABLE d, Boolean flag)
{
	_SetDestructableInvulnerable(d, flag);
}

Boolean IsDestructableInvulnerable(HDESTRUCTABLE d)
{
	return _IsDestructableInvulnerable(d);
}

procedure EnumDestructablesInRect(HRECT r, HBOOLEXPR filter, TCode actionFunc)
{
	_EnumDestructablesInRect(r, filter, TJassFunctionHandle(actionFunc));
}

Integer GetDestructableTypeId(HDESTRUCTABLE d)
{
	return _GetDestructableTypeId(d);
}

Single GetDestructableX(HDESTRUCTABLE d)
{
	return _GetDestructableX(d).Value;
}

Single GetDestructableY(HDESTRUCTABLE d)
{
	return _GetDestructableY(d).Value;
}

procedure SetDestructableLife(HDESTRUCTABLE d, Single life)
{
	_SetDestructableLife(d, &life);
}

Single GetDestructableLife(HDESTRUCTABLE d)
{
	return _GetDestructableLife(d).Value;
}

procedure SetDestructableMaxLife(HDESTRUCTABLE d, Single max)
{
	_SetDestructableMaxLife(d, &max);
}

Single GetDestructableMaxLife(HDESTRUCTABLE d)
{
	return _GetDestructableMaxLife(d).Value;
}

procedure DestructableRestoreLife(HDESTRUCTABLE d, Single life, Boolean birth)
{
	_DestructableRestoreLife(d, &life, birth);
}

procedure QueueDestructableAnimation(HDESTRUCTABLE d, String whichAnimation)
{
	_QueueDestructableAnimation(d, GetJassString(PChar(whichAnimation)));
}

procedure SetDestructableAnimation(HDESTRUCTABLE d, String whichAnimation)
{
	_SetDestructableAnimation(d, GetJassString(PChar(whichAnimation)));
}

procedure SetDestructableAnimationSpeed(HDESTRUCTABLE d, Single speedFactor)
{
	_SetDestructableAnimationSpeed(d, &speedFactor);
}

procedure ShowDestructable(HDESTRUCTABLE d, Boolean flag)
{
	_ShowDestructable(d, flag);
}

Single GetDestructableOccluderHeight(HDESTRUCTABLE d)
{
	return _GetDestructableOccluderHeight(d).Value;
}

procedure SetDestructableOccluderHeight(HDESTRUCTABLE d, Single height)
{
	_SetDestructableOccluderHeight(d, &height);
}

String GetDestructableName(HDESTRUCTABLE d)
{
	return GetStringFromHandle(_GetDestructableName(d));
}

HDESTRUCTABLE GetTriggerDestructable()
{
	return _GetTriggerDestructable();
}

HITEM CreateItem(Integer itemid, Single x, Single y)
{
	return _CreateItem(itemid, &x, &y);
}

procedure RemoveItem(HITEM whichItem)
{
	_RemoveItem(whichItem);
}

HPLAYER GetItemPlayer(HITEM whichItem)
{
	return _GetItemPlayer(whichItem);
}

Integer GetItemTypeId(HITEM i)
{
	return _GetItemTypeId(i);
}

Single GetItemX(HITEM i)
{
	return _GetItemX(i).Value;
}

Single GetItemY(HITEM i)
{
	return _GetItemY(i).Value;
}

procedure SetItemPosition(HITEM i, Single x, Single y)
{
	_SetItemPosition(i, &x, &y);
}

procedure SetItemDropOnDeath(HITEM whichItem, Boolean flag)
{
	_SetItemDropOnDeath(whichItem, flag);
}

procedure SetItemDroppable(HITEM i, Boolean flag)
{
	_SetItemDroppable(i, flag);
}

procedure SetItemPawnable(HITEM i, Boolean flag)
{
	_SetItemPawnable(i, flag);
}

procedure SetItemPlayer(HITEM whichItem, HPLAYER whichPlayer, Boolean changeColor)
{
	_SetItemPlayer(whichItem, whichPlayer, changeColor);
}

procedure SetItemInvulnerable(HITEM whichItem, Boolean flag)
{
	_SetItemInvulnerable(whichItem, flag);
}

Boolean IsItemInvulnerable(HITEM whichItem)
{
	return _IsItemInvulnerable(whichItem);
}

procedure SetItemVisible(HITEM whichItem, Boolean show)
{
	_SetItemVisible(whichItem, show);
}

Boolean IsItemVisible(HITEM whichItem)
{
	return _IsItemVisible(whichItem);
}

Boolean IsItemOwned(HITEM whichItem)
{
	return _IsItemOwned(whichItem);
}

Boolean IsItemPowerup(HITEM whichItem)
{
	return _IsItemPowerup(whichItem);
}

Boolean IsItemSellable(HITEM whichItem)
{
	return _IsItemSellable(whichItem);
}

Boolean IsItemPawnable(HITEM whichItem)
{
	return _IsItemPawnable(whichItem);
}

Boolean IsItemIdPowerup(Integer itemId)
{
	return _IsItemIdPowerup(itemId);
}

Boolean IsItemIdSellable(Integer itemId)
{
	return _IsItemIdSellable(itemId);
}

Boolean IsItemIdPawnable(Integer itemId)
{
	return _IsItemIdPawnable(itemId);
}

procedure EnumItemsInRect(HRECT r, HBOOLEXPR filter, TCode actionFunc)
{
	_EnumItemsInRect(r, filter, TJassFunctionHandle(actionFunc));
}

Integer GetItemLevel(HITEM whichItem)
{
	return _GetItemLevel(whichItem);
}

HITEMTYPE GetItemType(HITEM whichItem)
{
	return _GetItemType(whichItem);
}

procedure SetItemDropID(HITEM whichItem, Integer unitId)
{
	_SetItemDropID(whichItem, unitId);
}

String GetItemName(HITEM whichItem)
{
	return GetStringFromHandle(_GetItemName(whichItem));
}

Integer GetItemCharges(HITEM whichItem)
{
	return _GetItemCharges(whichItem);
}

procedure SetItemCharges(HITEM whichItem, Integer charges)
{
	_SetItemCharges(whichItem, charges);
}

Integer GetItemUserData(HITEM whichItem)
{
	return _GetItemUserData(whichItem);
}

procedure SetItemUserData(HITEM whichItem, Integer data)
{
	_SetItemUserData(whichItem, data);
}

HUNIT CreateUnit(HPLAYER id, Integer unitid, Single x, Single y, Single face)
{
	return _CreateUnit(id, unitid, &x, &y, &face);
}

HUNIT CreateUnitByName(HPLAYER whichPlayer, String unitname, Single x, Single y, Single face)
{
	return _CreateUnitByName(whichPlayer, GetJassString(PChar(unitname)), &x, &y, &face);
}

HUNIT CreateUnitAtLoc(HPLAYER id, Integer unitid, HLOCATION whichLocation, Single face)
{
	return _CreateUnitAtLoc(id, unitid, whichLocation, &face);
}

HUNIT CreateUnitAtLocByName(HPLAYER id, String unitname, HLOCATION whichLocation, Single face)
{
	return _CreateUnitAtLocByName(id, GetJassString(PChar(unitname)), whichLocation, &face);
}

HUNIT CreateCorpse(HPLAYER whichPlayer, Integer unitid, Single x, Single y, Single face)
{
	return _CreateCorpse(whichPlayer, unitid, &x, &y, &face);
}

procedure KillUnit(HUNIT whichUnit)
{
	_KillUnit(whichUnit);
}

procedure RemoveUnit(HUNIT whichUnit)
{
	_RemoveUnit(whichUnit);
}

procedure ShowUnit(HUNIT whichUnit, Boolean show)
{
	_ShowUnit(whichUnit, show);
}

procedure SetUnitState(HUNIT whichUnit, HUNITSTATE whichUnitState, Single newVal)
{
	_SetUnitState(whichUnit, whichUnitState, &newVal);
}

procedure SetUnitX(HUNIT whichUnit, Single newX)
{
	_SetUnitX(whichUnit, &newX);
}

procedure SetUnitY(HUNIT whichUnit, Single newY)
{
	_SetUnitY(whichUnit, &newY);
}

procedure SetUnitPosition(HUNIT whichUnit, Single newX, Single newY)
{
	_SetUnitPosition(whichUnit, &newX, &newY);
}

procedure SetUnitPositionLoc(HUNIT whichUnit, HLOCATION whichLocation)
{
	_SetUnitPositionLoc(whichUnit, whichLocation);
}

procedure SetUnitFacing(HUNIT whichUnit, Single facingAngle)
{
	_SetUnitFacing(whichUnit, &facingAngle);
}

procedure SetUnitFacingTimed(HUNIT whichUnit, Single facingAngle, Single duration)
{
	_SetUnitFacingTimed(whichUnit, &facingAngle, &duration);
}

procedure SetUnitMoveSpeed(HUNIT whichUnit, Single newSpeed)
{
	_SetUnitMoveSpeed(whichUnit, &newSpeed);
}

procedure SetUnitFlyHeight(HUNIT whichUnit, Single newHeight, Single rate)
{
	_SetUnitFlyHeight(whichUnit, &newHeight, &rate);
}

procedure SetUnitTurnSpeed(HUNIT whichUnit, Single newTurnSpeed)
{
	_SetUnitTurnSpeed(whichUnit, &newTurnSpeed);
}

procedure SetUnitPropWindow(HUNIT whichUnit, Single newPropWindowAngle)
{
	_SetUnitPropWindow(whichUnit, &newPropWindowAngle);
}

procedure SetUnitAcquireRange(HUNIT whichUnit, Single newAcquireRange)
{
	_SetUnitAcquireRange(whichUnit, &newAcquireRange);
}

procedure SetUnitCreepGuard(HUNIT whichUnit, Boolean creepGuard)
{
	_SetUnitCreepGuard(whichUnit, creepGuard);
}

Single GetUnitAcquireRange(HUNIT whichUnit)
{
	return _GetUnitAcquireRange(whichUnit).Value;
}

Single GetUnitTurnSpeed(HUNIT whichUnit)
{
	return _GetUnitTurnSpeed(whichUnit).Value;
}

Single GetUnitPropWindow(HUNIT whichUnit)
{
	return _GetUnitPropWindow(whichUnit).Value;
}

Single GetUnitFlyHeight(HUNIT whichUnit)
{
	return _GetUnitFlyHeight(whichUnit).Value;
}

Single GetUnitDefaultAcquireRange(HUNIT whichUnit)
{
	return _GetUnitDefaultAcquireRange(whichUnit).Value;
}

Single GetUnitDefaultTurnSpeed(HUNIT whichUnit)
{
	return _GetUnitDefaultTurnSpeed(whichUnit).Value;
}

Single GetUnitDefaultPropWindow(HUNIT whichUnit)
{
	return _GetUnitDefaultPropWindow(whichUnit).Value;
}

Single GetUnitDefaultFlyHeight(HUNIT whichUnit)
{
	return _GetUnitDefaultFlyHeight(whichUnit).Value;
}

procedure SetUnitOwner(HUNIT whichUnit, HPLAYER whichPlayer, Boolean changeColor)
{
	_SetUnitOwner(whichUnit, whichPlayer, changeColor);
}

procedure SetUnitColor(HUNIT whichUnit, HPLAYERCOLOR whichColor)
{
	_SetUnitColor(whichUnit, whichColor);
}

procedure SetUnitScale(HUNIT whichUnit, Single scaleX, Single scaleY, Single scaleZ)
{
	_SetUnitScale(whichUnit, &scaleX, &scaleY, &scaleZ);
}

procedure SetUnitTimeScale(HUNIT whichUnit, Single timeScale)
{
	_SetUnitTimeScale(whichUnit, &timeScale);
}

procedure SetUnitBlendTime(HUNIT whichUnit, Single blendTime)
{
	_SetUnitBlendTime(whichUnit, &blendTime);
}

procedure SetUnitVertexColor(HUNIT whichUnit, Integer red, Integer green, Integer blue, Integer alpha)
{
	_SetUnitVertexColor(whichUnit, red, green, blue, alpha);
}

procedure QueueUnitAnimation(HUNIT whichUnit, String whichAnimation)
{
	_QueueUnitAnimation(whichUnit, GetJassString(PChar(whichAnimation)));
}

procedure SetUnitAnimation(HUNIT whichUnit, String whichAnimation)
{
	_SetUnitAnimation(whichUnit, GetJassString(PChar(whichAnimation)));
}

procedure SetUnitAnimationByIndex(HUNIT whichUnit, Integer whichAnimation)
{
	_SetUnitAnimationByIndex(whichUnit, whichAnimation);
}

procedure SetUnitAnimationWithRarity(HUNIT whichUnit, String whichAnimation, HRARITYCONTROL rarity)
{
	_SetUnitAnimationWithRarity(whichUnit, GetJassString(PChar(whichAnimation)), rarity);
}

procedure AddUnitAnimationProperties(HUNIT whichUnit, String animProperties, Boolean add)
{
	_AddUnitAnimationProperties(whichUnit, GetJassString(PChar(animProperties)), add);
}

procedure SetUnitLookAt(HUNIT whichUnit, String whichBone, HUNIT lookAtTarget, Single offsetX, Single offsetY, Single offsetZ)
{
	_SetUnitLookAt(whichUnit, GetJassString(PChar(whichBone)), lookAtTarget, &offsetX, &offsetY, &offsetZ);
}

procedure ResetUnitLookAt(HUNIT whichUnit)
{
	_ResetUnitLookAt(whichUnit);
}

procedure SetUnitRescuable(HUNIT whichUnit, HPLAYER byWhichPlayer, Boolean flag)
{
	_SetUnitRescuable(whichUnit, byWhichPlayer, flag);
}

procedure SetUnitRescueRange(HUNIT whichUnit, Single range)
{
	_SetUnitRescueRange(whichUnit, &range);
}

procedure SetHeroStr(HUNIT whichHero, Integer newStr, Boolean permanent)
{
	_SetHeroStr(whichHero, newStr, permanent);
}

procedure SetHeroAgi(HUNIT whichHero, Integer newAgi, Boolean permanent)
{
	_SetHeroAgi(whichHero, newAgi, permanent);
}

procedure SetHeroInt(HUNIT whichHero, Integer newInt, Boolean permanent)
{
	_SetHeroInt(whichHero, newInt, permanent);
}

Integer GetHeroStr(HUNIT whichHero, Boolean includeBonuses)
{
	return _GetHeroStr(whichHero, includeBonuses);
}

Integer GetHeroAgi(HUNIT whichHero, Boolean includeBonuses)
{
	return _GetHeroAgi(whichHero, includeBonuses);
}

Integer GetHeroInt(HUNIT whichHero, Boolean includeBonuses)
{
	return _GetHeroInt(whichHero, includeBonuses);
}

Boolean UnitStripHeroLevel(HUNIT whichHero, Integer howManyLevels)
{
	return _UnitStripHeroLevel(whichHero, howManyLevels);
}

Integer GetHeroXP(HUNIT whichHero)
{
	return _GetHeroXP(whichHero);
}

procedure SetHeroXP(HUNIT whichHero, Integer newXpVal, Boolean showEyeCandy)
{
	_SetHeroXP(whichHero, newXpVal, showEyeCandy);
}

Integer GetHeroSkillPoints(HUNIT whichHero)
{
	return _GetHeroSkillPoints(whichHero);
}

Boolean UnitModifySkillPoints(HUNIT whichHero, Integer skillPointDelta)
{
	return _UnitModifySkillPoints(whichHero, skillPointDelta);
}

procedure AddHeroXP(HUNIT whichHero, Integer xpToAdd, Boolean showEyeCandy)
{
	_AddHeroXP(whichHero, xpToAdd, showEyeCandy);
}

procedure SetHeroLevel(HUNIT whichHero, Integer level, Boolean showEyeCandy)
{
	_SetHeroLevel(whichHero, level, showEyeCandy);
}

Integer GetHeroLevel(HUNIT whichHero)
{
	return _GetHeroLevel(whichHero);
}

Integer GetUnitLevel(HUNIT whichUnit)
{
	return _GetUnitLevel(whichUnit);
}

String GetHeroProperName(HUNIT whichHero)
{
	return GetStringFromHandle(_GetHeroProperName(whichHero));
}

procedure SuspendHeroXP(HUNIT whichHero, Boolean flag)
{
	_SuspendHeroXP(whichHero, flag);
}

Boolean IsSuspendedXP(HUNIT whichHero)
{
	return _IsSuspendedXP(whichHero);
}

procedure SelectHeroSkill(HUNIT whichHero, Integer abilcode)
{
	_SelectHeroSkill(whichHero, abilcode);
}

Integer GetUnitAbilityLevel(HUNIT whichUnit, Integer abilcode)
{
	return _GetUnitAbilityLevel(whichUnit, abilcode);
}

Integer DecUnitAbilityLevel(HUNIT whichUnit, Integer abilcode)
{
	return _DecUnitAbilityLevel(whichUnit, abilcode);
}

Integer IncUnitAbilityLevel(HUNIT whichUnit, Integer abilcode)
{
	return _IncUnitAbilityLevel(whichUnit, abilcode);
}

Integer SetUnitAbilityLevel(HUNIT whichUnit, Integer abilcode, Integer level)
{
	return _SetUnitAbilityLevel(whichUnit, abilcode, level);
}

Boolean ReviveHero(HUNIT whichHero, Single x, Single y, Boolean doEyecandy)
{
	return _ReviveHero(whichHero, &x, &y, doEyecandy);
}

Boolean ReviveHeroLoc(HUNIT whichHero, HLOCATION loc, Boolean doEyecandy)
{
	return _ReviveHeroLoc(whichHero, loc, doEyecandy);
}

procedure SetUnitExploded(HUNIT whichUnit, Boolean exploded)
{
	_SetUnitExploded(whichUnit, exploded);
}

procedure SetUnitInvulnerable(HUNIT whichUnit, Boolean flag)
{
	_SetUnitInvulnerable(whichUnit, flag);
}

procedure PauseUnit(HUNIT whichUnit, Boolean flag)
{
	_PauseUnit(whichUnit, flag);
}

Boolean IsUnitPaused(HUNIT whichHero)
{
	return _IsUnitPaused(whichHero);
}

procedure SetUnitPathing(HUNIT whichUnit, Boolean flag)
{
	_SetUnitPathing(whichUnit, flag);
}

procedure ClearSelection()
{
	_ClearSelection();
}

procedure SelectUnit(HUNIT whichUnit, Boolean flag)
{
	_SelectUnit(whichUnit, flag);
}

Integer GetUnitPointValue(HUNIT whichUnit)
{
	return _GetUnitPointValue(whichUnit);
}

Integer GetUnitPointValueByType(Integer unitType)
{
	return _GetUnitPointValueByType(unitType);
}

procedure SetUnitPointValueByType(Integer unitType, Integer newPointValue)
{
	_SetUnitPointValueByType(unitType, newPointValue);
}

Boolean UnitAddItem(HUNIT whichUnit, HITEM whichItem)
{
	return _UnitAddItem(whichUnit, whichItem);
}

HITEM UnitAddItemById(HUNIT whichUnit, Integer itemId)
{
	return _UnitAddItemById(whichUnit, itemId);
}

Boolean UnitAddItemToSlotById(HUNIT whichUnit, Integer itemId, Integer itemSlot)
{
	return _UnitAddItemToSlotById(whichUnit, itemId, itemSlot);
}

procedure UnitRemoveItem(HUNIT whichUnit, HITEM whichItem)
{
	_UnitRemoveItem(whichUnit, whichItem);
}

HITEM UnitRemoveItemFromSlot(HUNIT whichUnit, Integer itemSlot)
{
	return _UnitRemoveItemFromSlot(whichUnit, itemSlot);
}

Boolean UnitHasItem(HUNIT whichUnit, HITEM whichItem)
{
	return _UnitHasItem(whichUnit, whichItem);
}

HITEM UnitItemInSlot(HUNIT whichUnit, Integer itemSlot)
{
	return _UnitItemInSlot(whichUnit, itemSlot);
}

Integer UnitInventorySize(HUNIT whichUnit)
{
	return _UnitInventorySize(whichUnit);
}

Boolean UnitDropItemPoint(HUNIT whichUnit, HITEM whichItem, Single x, Single y)
{
	return _UnitDropItemPoint(whichUnit, whichItem, &x, &y);
}

Boolean UnitDropItemSlot(HUNIT whichUnit, HITEM whichItem, Integer slot)
{
	return _UnitDropItemSlot(whichUnit, whichItem, slot);
}

Boolean UnitDropItemTarget(HUNIT whichUnit, HITEM whichItem, HWIDGET target)
{
	return _UnitDropItemTarget(whichUnit, whichItem, target);
}

Boolean UnitUseItem(HUNIT whichUnit, HITEM whichItem)
{
	return _UnitUseItem(whichUnit, whichItem);
}

Boolean UnitUseItemPoint(HUNIT whichUnit, HITEM whichItem, Single x, Single y)
{
	return _UnitUseItemPoint(whichUnit, whichItem, &x, &y);
}

Boolean UnitUseItemTarget(HUNIT whichUnit, HITEM whichItem, HWIDGET target)
{
	return _UnitUseItemTarget(whichUnit, whichItem, target);
}

Single GetUnitX(HUNIT whichUnit)
{
	if (whichUnit < 0)
	{
		return 0;
	}
	return _GetUnitX(whichUnit).Value;
}

Single GetUnitY(HUNIT whichUnit)
{
	if (whichUnit < 0)
	{
		return 0;
	}
	return _GetUnitY(whichUnit).Value;
}

HLOCATION GetUnitLoc(HUNIT whichUnit)
{
	return _GetUnitLoc(whichUnit);
}

Single GetUnitFacing(HUNIT whichUnit)
{
	return _GetUnitFacing(whichUnit).Value;
}

Single GetUnitMoveSpeed(HUNIT whichUnit)
{
	return _GetUnitMoveSpeed(whichUnit).Value;
}

Single GetUnitDefaultMoveSpeed(HUNIT whichUnit)
{
	return _GetUnitDefaultMoveSpeed(whichUnit).Value;
}

Single GetUnitState(HUNIT whichUnit, HUNITSTATE whichUnitState)
{
	return _GetUnitState(whichUnit, whichUnitState).Value;
}

HPLAYER GetOwningPlayer(HUNIT whichUnit)
{
	return _GetOwningPlayer(whichUnit);
}

Integer GetUnitTypeId(HUNIT whichUnit)
{
	if (whichUnit < 0)
	{
		return 0;
	}
	return _GetUnitTypeId(whichUnit);
}

HRACE GetUnitRace(HUNIT whichUnit)
{
	return _GetUnitRace(whichUnit);
}

String GetUnitName(HUNIT whichUnit)
{
	//TJassStringHandle v1 = _GetUnitName(whichUnit);
	return GetStringFromHandle(_GetUnitName(whichUnit));
}

Integer GetUnitFoodUsed(HUNIT whichUnit)
{
	return _GetUnitFoodUsed(whichUnit);
}

Integer GetUnitFoodMade(HUNIT whichUnit)
{
	return _GetUnitFoodMade(whichUnit);
}

Integer GetFoodMade(Integer unitId)
{
	return _GetFoodMade(unitId);
}

Integer GetFoodUsed(Integer unitId)
{
	return _GetFoodUsed(unitId);
}

procedure SetUnitUseFood(HUNIT whichUnit, Boolean useFood)
{
	_SetUnitUseFood(whichUnit, useFood);
}

HLOCATION GetUnitRallyPoint(HUNIT whichUnit)
{
	return _GetUnitRallyPoint(whichUnit);
}

HUNIT GetUnitRallyUnit(HUNIT whichUnit)
{
	return _GetUnitRallyUnit(whichUnit);
}

HDESTRUCTABLE GetUnitRallyDestructable(HUNIT whichUnit)
{
	return _GetUnitRallyDestructable(whichUnit);
}

Boolean IsUnitInGroup(HUNIT whichUnit, HGROUP whichGroup)
{
	return _IsUnitInGroup(whichUnit, whichGroup);
}

Boolean IsUnitInForce(HUNIT whichUnit, HFORCE whichForce)
{
	return _IsUnitInForce(whichUnit, whichForce);
}

Boolean IsUnitOwnedByPlayer(HUNIT whichUnit, HPLAYER whichPlayer)
{
	return _IsUnitOwnedByPlayer(whichUnit, whichPlayer);
}

Boolean IsUnitAlly(HUNIT whichUnit, HPLAYER whichPlayer)
{
	return _IsUnitAlly(whichUnit, whichPlayer);
}

Boolean IsUnitEnemy(HUNIT whichUnit, HPLAYER whichPlayer)
{
	return _IsUnitEnemy(whichUnit, whichPlayer);
}

Boolean IsUnitVisible(HUNIT whichUnit, HPLAYER whichPlayer)
{
	return _IsUnitVisible(whichUnit, whichPlayer);
}

Boolean IsUnitDetected(HUNIT whichUnit, HPLAYER whichPlayer)
{
	return _IsUnitDetected(whichUnit, whichPlayer);
}

Boolean IsUnitInvisible(HUNIT whichUnit, HPLAYER whichPlayer)
{
	return _IsUnitInvisible(whichUnit, whichPlayer);
}

Boolean IsUnitFogged(HUNIT whichUnit, HPLAYER whichPlayer)
{
	return _IsUnitFogged(whichUnit, whichPlayer);
}

Boolean IsUnitMasked(HUNIT whichUnit, HPLAYER whichPlayer)
{
	return _IsUnitMasked(whichUnit, whichPlayer);
}

Boolean IsUnitSelected(HUNIT whichUnit, HPLAYER whichPlayer)
{
	return _IsUnitSelected(whichUnit, whichPlayer);
}

Boolean IsUnitRace(HUNIT whichUnit, HRACE whichRace)
{
	return _IsUnitRace(whichUnit, whichRace);
}

Boolean IsUnitType(HUNIT whichUnit, HUNITTYPE whichUnitType)
{
	return _IsUnitType(whichUnit, whichUnitType);
}

Boolean IsUnit(HUNIT whichUnit, HUNIT whichSpecifiedUnit)
{
	return _IsUnit(whichUnit, whichSpecifiedUnit);
}

Boolean IsUnitInRange(HUNIT whichUnit, HUNIT otherUnit, Single distance)
{
	return _IsUnitInRange(whichUnit, otherUnit, &distance);
}

Boolean IsUnitInRangeXY(HUNIT whichUnit, Single x, Single y, Single distance)
{
	return _IsUnitInRangeXY(whichUnit, &x, &y, &distance);
}

Boolean IsUnitInRangeLoc(HUNIT whichUnit, HLOCATION whichLocation, Single distance)
{
	return _IsUnitInRangeLoc(whichUnit, whichLocation, &distance);
}

Boolean IsUnitHidden(HUNIT whichUnit)
{
	return _IsUnitHidden(whichUnit);
}

Boolean IsUnitIllusion(HUNIT whichUnit)
{
	return _IsUnitIllusion(whichUnit);
}

Boolean IsUnitInTransport(HUNIT whichUnit, HUNIT whichTransport)
{
	return _IsUnitInTransport(whichUnit, whichTransport);
}

Boolean IsUnitLoaded(HUNIT whichUnit)
{
	return _IsUnitLoaded(whichUnit);
}

Boolean IsHeroUnitId(Integer unitId)
{
	return _IsHeroUnitId(unitId);
}

Boolean IsUnitIdType(Integer unitId, HUNITTYPE whichUnitType)
{
	return _IsUnitIdType(unitId, whichUnitType);
}

procedure UnitShareVision(HUNIT whichUnit, HPLAYER whichPlayer, Boolean share)
{
	_UnitShareVision(whichUnit, whichPlayer, share);
}

procedure UnitSuspendDecay(HUNIT whichUnit, Boolean suspend)
{
	_UnitSuspendDecay(whichUnit, suspend);
}

Boolean UnitAddType(HUNIT whichUnit, HUNITTYPE whichUnitType)
{
	return _UnitAddType(whichUnit, whichUnitType);
}

Boolean UnitRemoveType(HUNIT whichUnit, HUNITTYPE whichUnitType)
{
	return _UnitRemoveType(whichUnit, whichUnitType);
}

Boolean UnitAddAbility(HUNIT whichUnit, Integer abilityId)
{
	return _UnitAddAbility(whichUnit, abilityId);
}

Boolean UnitRemoveAbility(HUNIT whichUnit, Integer abilityId)
{
	return _UnitRemoveAbility(whichUnit, abilityId);
}

Boolean UnitMakeAbilityPermanent(HUNIT whichUnit, Boolean permanent, Integer abilityId)
{
	return _UnitMakeAbilityPermanent(whichUnit, permanent, abilityId);
}

procedure UnitRemoveBuffs(HUNIT whichUnit, Boolean removePositive, Boolean removeNegative)
{
	_UnitRemoveBuffs(whichUnit, removePositive, removeNegative);
}

procedure UnitRemoveBuffsEx(HUNIT whichUnit, Boolean removePositive, Boolean removeNegative, Boolean magic, Boolean physical, Boolean timedLife, Boolean aura, Boolean autoDispel)
{
	_UnitRemoveBuffsEx(whichUnit, removePositive, removeNegative, magic, physical, timedLife, aura, autoDispel);
}

Boolean UnitHasBuffsEx(HUNIT whichUnit, Boolean removePositive, Boolean removeNegative, Boolean magic, Boolean physical, Boolean timedLife, Boolean aura, Boolean autoDispel)
{
	return _UnitHasBuffsEx(whichUnit, removePositive, removeNegative, magic, physical, timedLife, aura, autoDispel);
}

Integer UnitCountBuffsEx(HUNIT whichUnit, Boolean removePositive, Boolean removeNegative, Boolean magic, Boolean physical, Boolean timedLife, Boolean aura, Boolean autoDispel)
{
	return _UnitCountBuffsEx(whichUnit, removePositive, removeNegative, magic, physical, timedLife, aura, autoDispel);
}

procedure UnitAddSleep(HUNIT whichUnit, Boolean add)
{
	_UnitAddSleep(whichUnit, add);
}

Boolean UnitCanSleep(HUNIT whichUnit)
{
	return _UnitCanSleep(whichUnit);
}

procedure UnitAddSleepPerm(HUNIT whichUnit, Boolean add)
{
	_UnitAddSleepPerm(whichUnit, add);
}

Boolean UnitCanSleepPerm(HUNIT whichUnit)
{
	return _UnitCanSleepPerm(whichUnit);
}

Boolean UnitIsSleeping(HUNIT whichUnit)
{
	return _UnitIsSleeping(whichUnit);
}

procedure UnitWakeUp(HUNIT whichUnit)
{
	_UnitWakeUp(whichUnit);
}

procedure UnitApplyTimedLife(HUNIT whichUnit, Integer buffId, Single duration)
{
	_UnitApplyTimedLife(whichUnit, buffId, &duration);
}

Boolean UnitIgnoreAlarm(HUNIT whichUnit, Boolean flag)
{
	return _UnitIgnoreAlarm(whichUnit, flag);
}

Boolean UnitIgnoreAlarmToggled(HUNIT whichUnit)
{
	return _UnitIgnoreAlarmToggled(whichUnit);
}

procedure UnitResetCooldown(HUNIT whichUnit)
{
	_UnitResetCooldown(whichUnit);
}

procedure UnitSetConstructionProgress(HUNIT whichUnit, Integer constructionPercentage)
{
	_UnitSetConstructionProgress(whichUnit, constructionPercentage);
}

procedure UnitSetUpgradeProgress(HUNIT whichUnit, Integer upgradePercentage)
{
	_UnitSetUpgradeProgress(whichUnit, upgradePercentage);
}

procedure UnitPauseTimedLife(HUNIT whichUnit, Boolean flag)
{
	_UnitPauseTimedLife(whichUnit, flag);
}

procedure UnitSetUsesAltIcon(HUNIT whichUnit, Boolean flag)
{
	_UnitSetUsesAltIcon(whichUnit, flag);
}

Boolean UnitDamagePoint(HUNIT whichUnit, Single delay, Single radius, Single x, Single y, Single amount, Boolean attack, Boolean ranged, HATTACKTYPE attackType, HDAMAGETYPE damageType, HWEAPONTYPE weaponType)
{
	return _UnitDamagePoint(whichUnit, &delay, &radius, &x, &y, &amount, attack, ranged, attackType, damageType, weaponType);
}

Boolean UnitDamageTarget(HUNIT whichUnit, HWIDGET target, Single amount, Boolean attack, Boolean ranged, HATTACKTYPE attackType, HDAMAGETYPE damageType, HWEAPONTYPE weaponType)
{
	return _UnitDamageTarget(whichUnit, target, &amount, attack, ranged, attackType, damageType, weaponType);
}

Boolean IssueImmediateOrder(HUNIT whichUnit, String order)
{
	return _IssueImmediateOrder(whichUnit, GetJassString(PChar(order)));
}

Boolean IssueImmediateOrderById(HUNIT whichUnit, Integer order)
{
	if (GetUnitTypeId(whichUnit) == 0)
	{
		return FALSE;
	}
	return _IssueImmediateOrderById(whichUnit, order);
}

Boolean IssuePointOrder(HUNIT whichUnit, String order, Single x, Single y)
{
	return _IssuePointOrder(whichUnit, GetJassString(PChar(order)), &x, &y);
}

Boolean IssuePointOrderLoc(HUNIT whichUnit, String order, HLOCATION whichLocation)
{
	return _IssuePointOrderLoc(whichUnit, GetJassString(PChar(order)), whichLocation);
}

Boolean IssuePointOrderById(HUNIT whichUnit, Integer order, Single x, Single y)
{
	if (fNullUnit((unit)order))
	{
		return FALSE;
	}
	return _IssuePointOrderById(whichUnit, order, &x, &y);
}

Boolean IssuePointOrderByIdLoc(HUNIT whichUnit, Integer order, HLOCATION whichLocation)
{
	return _IssuePointOrderByIdLoc(whichUnit, order, whichLocation);
}

Boolean IssueTargetOrder(HUNIT whichUnit, String order, HWIDGET targetWidget)
{
	return _IssueTargetOrder(whichUnit, GetJassString(PChar(order)), targetWidget);
}

Boolean IssueTargetOrderById(HUNIT whichUnit, Integer order, HWIDGET targetWidget)
{
	if (fNullUnit((unit)order) || fNullUnit((unit)targetWidget) || GetUnitTypeId(whichUnit) == 0)
	{
		return FALSE;
	} 
	return _IssueTargetOrderById(whichUnit, order, targetWidget);
}

Boolean IssueInstantPointOrder(HUNIT whichUnit, String order, Single x, Single y, HWIDGET instantTargetWidget)
{
	return _IssueInstantPointOrder(whichUnit, GetJassString(PChar(order)), &x, &y, instantTargetWidget);
}

Boolean IssueInstantPointOrderById(HUNIT whichUnit, Integer order, Single x, Single y, HWIDGET instantTargetWidget)
{
	return _IssueInstantPointOrderById(whichUnit, order, &x, &y, instantTargetWidget);
}

Boolean IssueInstantTargetOrder(HUNIT whichUnit, String order, HWIDGET targetWidget, HWIDGET instantTargetWidget)
{
	return _IssueInstantTargetOrder(whichUnit, GetJassString(PChar(order)), targetWidget, instantTargetWidget);
}

Boolean IssueInstantTargetOrderById(HUNIT whichUnit, Integer order, HWIDGET targetWidget, HWIDGET instantTargetWidget)
{
	return _IssueInstantTargetOrderById(whichUnit, order, targetWidget, instantTargetWidget);
}

Boolean IssueBuildOrder(HUNIT whichPeon, String unitToBuild, Single x, Single y)
{
	return _IssueBuildOrder(whichPeon, GetJassString(PChar(unitToBuild)), &x, &y);
}

Boolean IssueBuildOrderById(HUNIT whichPeon, Integer unitId, Single x, Single y)
{
	return _IssueBuildOrderById(whichPeon, unitId, &x, &y);
}

Boolean IssueNeutralImmediateOrder(HPLAYER forWhichPlayer, HUNIT neutralStructure, String unitToBuild)
{
	return _IssueNeutralImmediateOrder(forWhichPlayer, neutralStructure, GetJassString(PChar(unitToBuild)));
}

Boolean IssueNeutralImmediateOrderById(HPLAYER forWhichPlayer, HUNIT neutralStructure, Integer unitId)
{
	return _IssueNeutralImmediateOrderById(forWhichPlayer, neutralStructure, unitId);
}

Boolean IssueNeutralPointOrder(HPLAYER forWhichPlayer, HUNIT neutralStructure, String unitToBuild, Single x, Single y)
{
	return _IssueNeutralPointOrder(forWhichPlayer, neutralStructure, GetJassString(PChar(unitToBuild)), &x, &y);
}

Boolean IssueNeutralPointOrderById(HPLAYER forWhichPlayer, HUNIT neutralStructure, Integer unitId, Single x, Single y)
{
	return _IssueNeutralPointOrderById(forWhichPlayer, neutralStructure, unitId, &x, &y);
}

Boolean IssueNeutralTargetOrder(HPLAYER forWhichPlayer, HUNIT neutralStructure, String unitToBuild, HWIDGET target)
{
	return _IssueNeutralTargetOrder(forWhichPlayer, neutralStructure, GetJassString(PChar(unitToBuild)), target);
}

Boolean IssueNeutralTargetOrderById(HPLAYER forWhichPlayer, HUNIT neutralStructure, Integer unitId, HWIDGET target)
{
	return _IssueNeutralTargetOrderById(forWhichPlayer, neutralStructure, unitId, target);
}

Integer GetUnitCurrentOrder(HUNIT whichUnit)
{
	return _GetUnitCurrentOrder(whichUnit);
}

procedure SetResourceAmount(HUNIT whichUnit, Integer amount)
{
	_SetResourceAmount(whichUnit, amount);
}

procedure AddResourceAmount(HUNIT whichUnit, Integer amount)
{
	_AddResourceAmount(whichUnit, amount);
}

Integer GetResourceAmount(HUNIT whichUnit)
{
	return _GetResourceAmount(whichUnit);
}

Single WaygateGetDestinationX(HUNIT waygate)
{
	return _WaygateGetDestinationX(waygate).Value;
}

Single WaygateGetDestinationY(HUNIT waygate)
{
	return _WaygateGetDestinationY(waygate).Value;
}

procedure WaygateSetDestination(HUNIT waygate, Single x, Single y)
{
	_WaygateSetDestination(waygate, &x, &y);
}

procedure WaygateActivate(HUNIT waygate, Boolean activate)
{
	_WaygateActivate(waygate, activate);
}

Boolean WaygateIsActive(HUNIT waygate)
{
	return _WaygateIsActive(waygate);
}

procedure AddItemToAllStock(Integer itemId, Integer currentStock, Integer stockMax)
{
	_AddItemToAllStock(itemId, currentStock, stockMax);
}

procedure AddItemToStock(HUNIT whichUnit, Integer itemId, Integer currentStock, Integer stockMax)
{
	_AddItemToStock(whichUnit, itemId, currentStock, stockMax);
}

procedure AddUnitToAllStock(Integer unitId, Integer currentStock, Integer stockMax)
{
	_AddUnitToAllStock(unitId, currentStock, stockMax);
}

procedure AddUnitToStock(HUNIT whichUnit, Integer unitId, Integer currentStock, Integer stockMax)
{
	_AddUnitToStock(whichUnit, unitId, currentStock, stockMax);
}

procedure RemoveItemFromAllStock(Integer itemId)
{
	_RemoveItemFromAllStock(itemId);
}

procedure RemoveItemFromStock(HUNIT whichUnit, Integer itemId)
{
	_RemoveItemFromStock(whichUnit, itemId);
}

procedure RemoveUnitFromAllStock(Integer unitId)
{
	_RemoveUnitFromAllStock(unitId);
}

procedure RemoveUnitFromStock(HUNIT whichUnit, Integer unitId)
{
	_RemoveUnitFromStock(whichUnit, unitId);
}

procedure SetAllItemTypeSlots(Integer slots)
{
	_SetAllItemTypeSlots(slots);
}

procedure SetAllUnitTypeSlots(Integer slots)
{
	_SetAllUnitTypeSlots(slots);
}

procedure SetItemTypeSlots(HUNIT whichUnit, Integer slots)
{
	_SetItemTypeSlots(whichUnit, slots);
}

procedure SetUnitTypeSlots(HUNIT whichUnit, Integer slots)
{
	_SetUnitTypeSlots(whichUnit, slots);
}

Integer GetUnitUserData(HUNIT whichUnit)
{
	return _GetUnitUserData(whichUnit);
}

procedure SetUnitUserData(HUNIT whichUnit, Integer data)
{
	_SetUnitUserData(whichUnit, data);
}

HPLAYER Player(Integer number)
{
	return _Player(number);
}

HPLAYER GetLocalPlayer()
{
	return _GetLocalPlayer();
}

Boolean IsPlayerAlly(HPLAYER whichPlayer, HPLAYER otherPlayer)
{
	return _IsPlayerAlly(whichPlayer, otherPlayer);
}

Boolean IsPlayerEnemy(HPLAYER whichPlayer, HPLAYER otherPlayer)
{
	return _IsPlayerEnemy(whichPlayer, otherPlayer);
}

Boolean IsPlayerInForce(HPLAYER whichPlayer, HFORCE whichForce)
{
	return _IsPlayerInForce(whichPlayer, whichForce);
}

Boolean IsPlayerObserver(HPLAYER whichPlayer)
{
	return _IsPlayerObserver(whichPlayer);
}

Boolean IsVisibleToPlayer(Single x, Single y, HPLAYER whichPlayer)
{
	return _IsVisibleToPlayer(&x, &y, whichPlayer);
}

Boolean IsLocationVisibleToPlayer(HLOCATION whichLocation, HPLAYER whichPlayer)
{
	return _IsLocationVisibleToPlayer(whichLocation, whichPlayer);
}

Boolean IsFoggedToPlayer(Single x, Single y, HPLAYER whichPlayer)
{
	return _IsFoggedToPlayer(&x, &y, whichPlayer);
}

Boolean IsLocationFoggedToPlayer(HLOCATION whichLocation, HPLAYER whichPlayer)
{
	return _IsLocationFoggedToPlayer(whichLocation, whichPlayer);
}

Boolean IsMaskedToPlayer(Single x, Single y, HPLAYER whichPlayer)
{
	return _IsMaskedToPlayer(&x, &y, whichPlayer);
}

Boolean IsLocationMaskedToPlayer(HLOCATION whichLocation, HPLAYER whichPlayer)
{
	return _IsLocationMaskedToPlayer(whichLocation, whichPlayer);
}

HRACE GetPlayerRace(HPLAYER whichPlayer)
{
	return _GetPlayerRace(whichPlayer);
}

Integer GetPlayerId(HPLAYER whichPlayer)
{
	return _GetPlayerId(whichPlayer);
}

Integer GetPlayerUnitCount(HPLAYER whichPlayer, Boolean includeIncomplete)
{
	return _GetPlayerUnitCount(whichPlayer, includeIncomplete);
}

Integer GetPlayerTypedUnitCount(HPLAYER whichPlayer, String unitName, Boolean includeIncomplete, Boolean includeUpgrades)
{
	return _GetPlayerTypedUnitCount(whichPlayer, GetJassString(PChar(unitName)), includeIncomplete, includeUpgrades);
}

Integer GetPlayerStructureCount(HPLAYER whichPlayer, Boolean includeIncomplete)
{
	return _GetPlayerStructureCount(whichPlayer, includeIncomplete);
}

Integer GetPlayerState(HPLAYER whichPlayer, HPLAYERSTATE whichPlayerState)
{
	return _GetPlayerState(whichPlayer, whichPlayerState);
}

Integer GetPlayerScore(HPLAYER whichPlayer, HPLAYERSCORE whichPlayerScore)
{
	return _GetPlayerScore(whichPlayer, whichPlayerScore);
}

Boolean GetPlayerAlliance(HPLAYER sourcePlayer, HPLAYER otherPlayer, HALLIANCETYPE whichAllianceSetting)
{
	return _GetPlayerAlliance(sourcePlayer, otherPlayer, whichAllianceSetting);
}

Single GetPlayerHandicap(HPLAYER whichPlayer)
{
	return _GetPlayerHandicap(whichPlayer).Value;
}

Single GetPlayerHandicapXP(HPLAYER whichPlayer)
{
	return _GetPlayerHandicapXP(whichPlayer).Value;
}

procedure SetPlayerHandicap(HPLAYER whichPlayer, Single handicap)
{
	_SetPlayerHandicap(whichPlayer, &handicap);
}

procedure SetPlayerHandicapXP(HPLAYER whichPlayer, Single handicap)
{
	_SetPlayerHandicapXP(whichPlayer, &handicap);
}

procedure SetPlayerTechMaxAllowed(HPLAYER whichPlayer, Integer techid, Integer maximum)
{
	_SetPlayerTechMaxAllowed(whichPlayer, techid, maximum);
}

Integer GetPlayerTechMaxAllowed(HPLAYER whichPlayer, Integer techid)
{
	return _GetPlayerTechMaxAllowed(whichPlayer, techid);
}

procedure AddPlayerTechResearched(HPLAYER whichPlayer, Integer techid, Integer levels)
{
	_AddPlayerTechResearched(whichPlayer, techid, levels);
}

procedure SetPlayerTechResearched(HPLAYER whichPlayer, Integer techid, Integer setToLevel)
{
	_SetPlayerTechResearched(whichPlayer, techid, setToLevel);
}

Boolean GetPlayerTechResearched(HPLAYER whichPlayer, Integer techid, Boolean specificonly)
{
	return _GetPlayerTechResearched(whichPlayer, techid, specificonly);
}

Integer GetPlayerTechCount(HPLAYER whichPlayer, Integer techid, Boolean specificonly)
{
	return _GetPlayerTechCount(whichPlayer, techid, specificonly);
}

procedure SetPlayerUnitsOwner(HPLAYER whichPlayer, Integer newOwner)
{
	_SetPlayerUnitsOwner(whichPlayer, newOwner);
}

procedure CripplePlayer(HPLAYER whichPlayer, HFORCE toWhichPlayers, Boolean flag)
{
	_CripplePlayer(whichPlayer, toWhichPlayers, flag);
}

procedure SetPlayerAbilityAvailable(HPLAYER whichPlayer, Integer abilid, Boolean avail)
{
	_SetPlayerAbilityAvailable(whichPlayer, abilid, avail);
}

procedure SetPlayerState(HPLAYER whichPlayer, HPLAYERSTATE whichPlayerState, Integer value)
{
	_SetPlayerState(whichPlayer, whichPlayerState, value);
}

procedure RemovePlayer(HPLAYER whichPlayer, HPLAYERGAMERESULT gameResult)
{
	_RemovePlayer(whichPlayer, gameResult);
}

procedure CachePlayerHeroData(HPLAYER whichPlayer)
{
	_CachePlayerHeroData(whichPlayer);
}

procedure SetFogStateRect(HPLAYER forWhichPlayer, HFOGSTATE whichState, HRECT _where, Boolean useSharedVision)
{
	_SetFogStateRect(forWhichPlayer, whichState, _where, useSharedVision);
}

procedure SetFogStateRadius(HPLAYER forWhichPlayer, HFOGSTATE whichState, Single centerx, Single centerY, Single radius, Boolean useSharedVision)
{
	_SetFogStateRadius(forWhichPlayer, whichState, &centerx, &centerY, &radius, useSharedVision);
}

procedure SetFogStateRadiusLoc(HPLAYER forWhichPlayer, HFOGSTATE whichState, HLOCATION center, Single radius, Boolean useSharedVision)
{
	_SetFogStateRadiusLoc(forWhichPlayer, whichState, center, &radius, useSharedVision);
}

procedure FogMaskEnable(Boolean enable)
{
	_FogMaskEnable(enable);
}

Boolean IsFogMaskEnabled()
{
	return _IsFogMaskEnabled();
}

procedure FogEnable(Boolean enable)
{
	_FogEnable(enable);
}

Boolean IsFogEnabled()
{
	return _IsFogEnabled();
}

HFOGMODIFIER CreateFogModifierRect(HPLAYER forWhichPlayer, HFOGSTATE whichState, HRECT _where, Boolean useSharedVision, Boolean afterUnits)
{
	return _CreateFogModifierRect(forWhichPlayer, whichState, _where, useSharedVision, afterUnits);
}

HFOGMODIFIER CreateFogModifierRadius(HPLAYER forWhichPlayer, HFOGSTATE whichState, Single centerx, Single centerY, Single radius, Boolean useSharedVision, Boolean afterUnits)
{
	return _CreateFogModifierRadius(forWhichPlayer, whichState, &centerx, &centerY, &radius, useSharedVision, afterUnits);
}

HFOGMODIFIER CreateFogModifierRadiusLoc(HPLAYER forWhichPlayer, HFOGSTATE whichState, HLOCATION center, Single radius, Boolean useSharedVision, Boolean afterUnits)
{
	return _CreateFogModifierRadiusLoc(forWhichPlayer, whichState, center, &radius, useSharedVision, afterUnits);
}

procedure DestroyFogModifier(HFOGMODIFIER whichFogModifier)
{
	_DestroyFogModifier(whichFogModifier);
}

procedure FogModifierStart(HFOGMODIFIER whichFogModifier)
{
	_FogModifierStart(whichFogModifier);
}

procedure FogModifierStop(HFOGMODIFIER whichFogModifier)
{
	_FogModifierStop(whichFogModifier);
}

HVERSION VersionGet()
{
	return _VersionGet();
}

Boolean VersionCompatible(HVERSION whichVersion)
{
	return _VersionCompatible(whichVersion);
}

Boolean VersionSupported(HVERSION whichVersion)
{
	return _VersionSupported(whichVersion);
}

procedure EndGame(Boolean doScoreScreen)
{
	_EndGame(doScoreScreen);
}

procedure ChangeLevel(String newLevel, Boolean doScoreScreen)
{
	_ChangeLevel(GetJassString(PChar(newLevel)), doScoreScreen);
}

procedure RestartGame(Boolean doScoreScreen)
{
	_RestartGame(doScoreScreen);
}

procedure ReloadGame()
{
	_ReloadGame();
}

procedure SetCampaignMenuRace(HRACE r)
{
	_SetCampaignMenuRace(r);
}

procedure SetCampaignMenuRaceEx(Integer campaignIndex)
{
	_SetCampaignMenuRaceEx(campaignIndex);
}

procedure ForceCampaignSelectScreen()
{
	_ForceCampaignSelectScreen();
}

procedure LoadGame(String saveFileName, Boolean doScoreScreen)
{
	_LoadGame(GetJassString(PChar(saveFileName)), doScoreScreen);
}

procedure SaveGame(String saveFileName)
{
	_SaveGame(GetJassString(PChar(saveFileName)));
}

Boolean RenameSaveDirectory(String sourceDirName, String destDirName)
{
	return _RenameSaveDirectory(GetJassString(PChar(sourceDirName)), GetJassString(PChar(destDirName)));
}

Boolean RemoveSaveDirectory(String sourceDirName)
{
	return _RemoveSaveDirectory(GetJassString(PChar(sourceDirName)));
}

Boolean CopySaveGame(String sourceSaveName, String destSaveName)
{
	return _CopySaveGame(GetJassString(PChar(sourceSaveName)), GetJassString(PChar(destSaveName)));
}

Boolean SaveGameExists(String saveName)
{
	return _SaveGameExists(GetJassString(PChar(saveName)));
}

procedure SyncSelections()
{
	_SyncSelections();
}

procedure SetFloatGameState(HFGAMESTATE whichFloatGameState, Single value)
{
	_SetFloatGameState(whichFloatGameState, &value);
}

Single GetFloatGameState(HFGAMESTATE whichFloatGameState)
{
	return _GetFloatGameState(whichFloatGameState).Value;
}

procedure SetIntegerGameState(HIGAMESTATE whichIntegerGameState, Integer value)
{
	_SetIntegerGameState(whichIntegerGameState, value);
}

Integer GetIntegerGameState(HIGAMESTATE whichIntegerGameState)
{
	return _GetIntegerGameState(whichIntegerGameState);
}

procedure SetTutorialCleared(Boolean cleared)
{
	_SetTutorialCleared(cleared);
}

procedure SetMissionAvailable(Integer campaignNumber, Integer missionNumber, Boolean available)
{
	_SetMissionAvailable(campaignNumber, missionNumber, available);
}

procedure SetCampaignAvailable(Integer campaignNumber, Boolean available)
{
	_SetCampaignAvailable(campaignNumber, available);
}

procedure SetOpCinematicAvailable(Integer campaignNumber, Boolean available)
{
	_SetOpCinematicAvailable(campaignNumber, available);
}

procedure SetEdCinematicAvailable(Integer campaignNumber, Boolean available)
{
	_SetEdCinematicAvailable(campaignNumber, available);
}

HGAMEDIFFICULTY GetDefaultDifficulty()
{
	return _GetDefaultDifficulty();
}

procedure SetDefaultDifficulty(HGAMEDIFFICULTY g)
{
	_SetDefaultDifficulty(g);
}

procedure SetCustomCampaignButtonVisible(Integer whichButton, Boolean visible)
{
	_SetCustomCampaignButtonVisible(whichButton, visible);
}

Boolean GetCustomCampaignButtonVisible(Integer whichButton)
{
	return _GetCustomCampaignButtonVisible(whichButton);
}

procedure DoNotSaveReplay()
{
	_DoNotSaveReplay();
}

HDIALOG DialogCreate()
{
	return _DialogCreate();
}

procedure DialogDestroy(HDIALOG whichDialog)
{
	_DialogDestroy(whichDialog);
}

procedure DialogClear(HDIALOG whichDialog)
{
	_DialogClear(whichDialog);
}

procedure DialogSetMessage(HDIALOG whichDialog, String messageText)
{
	_DialogSetMessage(whichDialog, GetJassString(PChar(messageText)));
}

HBUTTON DialogAddButton(HDIALOG whichDialog, String buttonText, Integer hotkey)
{
	return _DialogAddButton(whichDialog, GetJassString(PChar(buttonText)), hotkey);
}

HBUTTON DialogAddQuitButton(HDIALOG whichDialog, Boolean doScoreScreen, String buttonText, Integer hotkey)
{
	return _DialogAddQuitButton(whichDialog, doScoreScreen, GetJassString(PChar(buttonText)), hotkey);
}

procedure DialogDisplay(HPLAYER whichPlayer, HDIALOG whichDialog, Boolean flag)
{
	_DialogDisplay(whichPlayer, whichDialog, flag);
}

Boolean ReloadGameCachesFromDisk()
{
	return _ReloadGameCachesFromDisk();
}

HGAMECACHE InitGameCache(String campaignFile)
{
	return _InitGameCache(GetJassString(PChar(campaignFile)));
}

Boolean SaveGameCache(HGAMECACHE whichCache)
{
	return _SaveGameCache(whichCache);
}

procedure StoreInteger(HGAMECACHE cache, String missionKey, String key, Integer value)
{
	_StoreInteger(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)), value);
}

procedure StoreReal(HGAMECACHE cache, String missionKey, String key, Single value)
{
	_StoreReal(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)), &value);
}

procedure StoreBoolean(HGAMECACHE cache, String missionKey, String key, Boolean value)
{
	_StoreBoolean(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)), value);
}

Boolean StoreUnit(HGAMECACHE cache, String missionKey, String key, HUNIT whichUnit)
{
	return _StoreUnit(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)), whichUnit);
}

Boolean StoreString(HGAMECACHE cache, String missionKey, String key, String value)
{
	return _StoreString(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)), GetJassString(PChar(value)));
}

procedure SyncStoredInteger(HGAMECACHE cache, String missionKey, String key)
{
	_SyncStoredInteger(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)));
}

procedure SyncStoredReal(HGAMECACHE cache, String missionKey, String key)
{
	_SyncStoredReal(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)));
}

procedure SyncStoredBoolean(HGAMECACHE cache, String missionKey, String key)
{
	_SyncStoredBoolean(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)));
}

procedure SyncStoredUnit(HGAMECACHE cache, String missionKey, String key)
{
	_SyncStoredUnit(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)));
}

procedure SyncStoredString(HGAMECACHE cache, String missionKey, String key)
{
	_SyncStoredString(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)));
}

Boolean HaveStoredInteger(HGAMECACHE cache, String missionKey, String key)
{
	return _HaveStoredInteger(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)));
}

Boolean HaveStoredReal(HGAMECACHE cache, String missionKey, String key)
{
	return _HaveStoredReal(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)));
}

Boolean HaveStoredBoolean(HGAMECACHE cache, String missionKey, String key)
{
	return _HaveStoredBoolean(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)));
}

Boolean HaveStoredUnit(HGAMECACHE cache, String missionKey, String key)
{
	return _HaveStoredUnit(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)));
}

Boolean HaveStoredString(HGAMECACHE cache, String missionKey, String key)
{
	return _HaveStoredString(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)));
}

procedure FlushGameCache(HGAMECACHE cache)
{
	_FlushGameCache(cache);
}

procedure FlushStoredMission(HGAMECACHE cache, String missionKey)
{
	_FlushStoredMission(cache, GetJassString(PChar(missionKey)));
}

procedure FlushStoredInteger(HGAMECACHE cache, String missionKey, String key)
{
	_FlushStoredInteger(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)));
}

procedure FlushStoredReal(HGAMECACHE cache, String missionKey, String key)
{
	_FlushStoredReal(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)));
}

procedure FlushStoredBoolean(HGAMECACHE cache, String missionKey, String key)
{
	_FlushStoredBoolean(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)));
}

procedure FlushStoredUnit(HGAMECACHE cache, String missionKey, String key)
{
	_FlushStoredUnit(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)));
}

procedure FlushStoredString(HGAMECACHE cache, String missionKey, String key)
{
	_FlushStoredString(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)));
}

Integer GetStoredInteger(HGAMECACHE cache, String missionKey, String key)
{
	return _GetStoredInteger(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)));
}

Single GetStoredReal(HGAMECACHE cache, String missionKey, String key)
{
	return _GetStoredReal(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key))).Value;
}

Boolean GetStoredBoolean(HGAMECACHE cache, String missionKey, String key)
{
	return _GetStoredBoolean(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)));
}

String GetStoredString(HGAMECACHE cache, String missionKey, String key)
{
	return GetStringFromHandle(_GetStoredString(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key))));
}

HUNIT RestoreUnit(HGAMECACHE cache, String missionKey, String key, HPLAYER forWhichPlayer, Single x, Single y, Single facing)
{
	return _RestoreUnit(cache, GetJassString(PChar(missionKey)), GetJassString(PChar(key)), forWhichPlayer, &x, &y, &facing);
}

HHASHTABLE InitHashtable()
{
	return _InitHashtable();
}

procedure SaveInteger(HHASHTABLE table, Integer parentKey, Integer childKey, Integer value)
{
	_SaveInteger(table, parentKey, childKey, value);
}

procedure SaveReal(HHASHTABLE table, Integer parentKey, Integer childKey, Single value)
{
	_SaveReal(table, parentKey, childKey, &value);
}

procedure SaveBoolean(HHASHTABLE table, Integer parentKey, Integer childKey, Boolean value)
{
	_SaveBoolean(table, parentKey, childKey, value);
}

Boolean SaveStr(HHASHTABLE table, Integer parentKey, Integer childKey, String value)
{
	return _SaveStr(table, parentKey, childKey, GetJassString(PChar(value)));
}

Boolean SavePlayerHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HPLAYER whichPlayer)
{
	return _SavePlayerHandle(table, parentKey, childKey, whichPlayer);
}

Boolean SaveWidgetHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HWIDGET whichWidget)
{
	return _SaveWidgetHandle(table, parentKey, childKey, whichWidget);
}

Boolean SaveDestructableHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HDESTRUCTABLE whichDestructable)
{
	return _SaveDestructableHandle(table, parentKey, childKey, whichDestructable);
}

Boolean SaveItemHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HITEM whichItem)
{
	return _SaveItemHandle(table, parentKey, childKey, whichItem);
}

Boolean SaveUnitHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HUNIT whichUnit)
{
	return _SaveUnitHandle(table, parentKey, childKey, whichUnit);
}

Boolean SaveAbilityHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HABILITY whichAbility)
{
	return _SaveAbilityHandle(table, parentKey, childKey, whichAbility);
}

Boolean SaveTimerHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HTIMER whichTimer)
{
	return _SaveTimerHandle(table, parentKey, childKey, whichTimer);
}

Boolean SaveTriggerHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HTRIGGER whichTrigger)
{
	return _SaveTriggerHandle(table, parentKey, childKey, whichTrigger);
}

Boolean SaveTriggerConditionHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HTRIGGERCONDITION whichTriggercondition)
{
	return _SaveTriggerConditionHandle(table, parentKey, childKey, whichTriggercondition);
}

Boolean SaveTriggerActionHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HTRIGGERACTION whichTriggeraction)
{
	return _SaveTriggerActionHandle(table, parentKey, childKey, whichTriggeraction);
}

Boolean SaveTriggerEventHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HEVENT whichEvent)
{
	return _SaveTriggerEventHandle(table, parentKey, childKey, whichEvent);
}

Boolean SaveForceHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HFORCE whichForce)
{
	return _SaveForceHandle(table, parentKey, childKey, whichForce);
}

Boolean SaveGroupHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HGROUP whichGroup)
{
	return _SaveGroupHandle(table, parentKey, childKey, whichGroup);
}

Boolean SaveLocationHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HLOCATION whichLocation)
{
	return _SaveLocationHandle(table, parentKey, childKey, whichLocation);
}

Boolean SaveRectHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HRECT whichRect)
{
	return _SaveRectHandle(table, parentKey, childKey, whichRect);
}

Boolean SaveBooleanExprHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HBOOLEXPR whichBoolexpr)
{
	return _SaveBooleanExprHandle(table, parentKey, childKey, whichBoolexpr);
}

Boolean SaveSoundHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HSOUND whichSound)
{
	return _SaveSoundHandle(table, parentKey, childKey, whichSound);
}

Boolean SaveEffectHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HEFFECT whichEffect)
{
	return _SaveEffectHandle(table, parentKey, childKey, whichEffect);
}

Boolean SaveUnitPoolHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HUNITPOOL whichUnitpool)
{
	return _SaveUnitPoolHandle(table, parentKey, childKey, whichUnitpool);
}

Boolean SaveItemPoolHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HITEMPOOL whichItempool)
{
	return _SaveItemPoolHandle(table, parentKey, childKey, whichItempool);
}

Boolean SaveQuestHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HQUEST whichQuest)
{
	return _SaveQuestHandle(table, parentKey, childKey, whichQuest);
}

Boolean SaveQuestItemHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HQUESTITEM whichQuestitem)
{
	return _SaveQuestItemHandle(table, parentKey, childKey, whichQuestitem);
}

Boolean SaveDefeatConditionHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HDEFEATCONDITION whichDefeatcondition)
{
	return _SaveDefeatConditionHandle(table, parentKey, childKey, whichDefeatcondition);
}

Boolean SaveTimerDialogHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HTIMERDIALOG whichTimerdialog)
{
	return _SaveTimerDialogHandle(table, parentKey, childKey, whichTimerdialog);
}

Boolean SaveLeaderboardHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HLEADERBOARD whichLeaderboard)
{
	return _SaveLeaderboardHandle(table, parentKey, childKey, whichLeaderboard);
}

Boolean SaveMultiboardHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HMULTIBOARD whichMultiboard)
{
	return _SaveMultiboardHandle(table, parentKey, childKey, whichMultiboard);
}

Boolean SaveMultiboardItemHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HMULTIBOARDITEM whichMultiboarditem)
{
	return _SaveMultiboardItemHandle(table, parentKey, childKey, whichMultiboarditem);
}

Boolean SaveTrackableHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HTRACKABLE whichTrackable)
{
	return _SaveTrackableHandle(table, parentKey, childKey, whichTrackable);
}

Boolean SaveDialogHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HDIALOG whichDialog)
{
	return _SaveDialogHandle(table, parentKey, childKey, whichDialog);
}

Boolean SaveButtonHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HBUTTON whichButton)
{
	return _SaveButtonHandle(table, parentKey, childKey, whichButton);
}

Boolean SaveTextTagHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HTEXTTAG whichTexttag)
{
	return _SaveTextTagHandle(table, parentKey, childKey, whichTexttag);
}

Boolean SaveLightningHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HLIGHTNING whichLightning)
{
	return _SaveLightningHandle(table, parentKey, childKey, whichLightning);
}

Boolean SaveImageHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HIMAGE whichImage)
{
	return _SaveImageHandle(table, parentKey, childKey, whichImage);
}

Boolean SaveUbersplatHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HUBERSPLAT whichUbersplat)
{
	return _SaveUbersplatHandle(table, parentKey, childKey, whichUbersplat);
}

Boolean SaveRegionHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HREGION whichRegion)
{
	return _SaveRegionHandle(table, parentKey, childKey, whichRegion);
}

Boolean SaveFogStateHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HFOGSTATE whichFogState)
{
	return _SaveFogStateHandle(table, parentKey, childKey, whichFogState);
}

Boolean SaveFogModifierHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HFOGMODIFIER whichFogModifier)
{
	return _SaveFogModifierHandle(table, parentKey, childKey, whichFogModifier);
}

Boolean SaveAgentHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HAGENT whichAgent)
{
	return _SaveAgentHandle(table, parentKey, childKey, whichAgent);
}

Boolean SaveHashtableHandle(HHASHTABLE table, Integer parentKey, Integer childKey, HHASHTABLE whichHashtable)
{
	return _SaveHashtableHandle(table, parentKey, childKey, whichHashtable);
}

Integer LoadInteger(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadInteger(table, parentKey, childKey);
}

Single LoadReal(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadReal(table, parentKey, childKey).Value;
}

Boolean LoadBoolean(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadBoolean(table, parentKey, childKey);
}

String LoadStr(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return GetStringFromHandle(_LoadStr(table, parentKey, childKey));
}

HPLAYER LoadPlayerHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadPlayerHandle(table, parentKey, childKey);
}

HWIDGET LoadWidgetHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadWidgetHandle(table, parentKey, childKey);
}

HDESTRUCTABLE LoadDestructableHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadDestructableHandle(table, parentKey, childKey);
}

HITEM LoadItemHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadItemHandle(table, parentKey, childKey);
}

HUNIT LoadUnitHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadUnitHandle(table, parentKey, childKey);
}

HABILITY LoadAbilityHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadAbilityHandle(table, parentKey, childKey);
}

HTIMER LoadTimerHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadTimerHandle(table, parentKey, childKey);
}

HTRIGGER LoadTriggerHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadTriggerHandle(table, parentKey, childKey);
}

HTRIGGERCONDITION LoadTriggerConditionHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadTriggerConditionHandle(table, parentKey, childKey);
}

HTRIGGERACTION LoadTriggerActionHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadTriggerActionHandle(table, parentKey, childKey);
}

HEVENT LoadTriggerEventHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadTriggerEventHandle(table, parentKey, childKey);
}

HFORCE LoadForceHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadForceHandle(table, parentKey, childKey);
}

HGROUP LoadGroupHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadGroupHandle(table, parentKey, childKey);
}

HLOCATION LoadLocationHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadLocationHandle(table, parentKey, childKey);
}

HRECT LoadRectHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadRectHandle(table, parentKey, childKey);
}

HBOOLEXPR LoadBooleanExprHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadBooleanExprHandle(table, parentKey, childKey);
}

HSOUND LoadSoundHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadSoundHandle(table, parentKey, childKey);
}

HEFFECT LoadEffectHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadEffectHandle(table, parentKey, childKey);
}

HUNITPOOL LoadUnitPoolHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadUnitPoolHandle(table, parentKey, childKey);
}

HITEMPOOL LoadItemPoolHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadItemPoolHandle(table, parentKey, childKey);
}

HQUEST LoadQuestHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadQuestHandle(table, parentKey, childKey);
}

HQUESTITEM LoadQuestItemHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadQuestItemHandle(table, parentKey, childKey);
}

HDEFEATCONDITION LoadDefeatConditionHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadDefeatConditionHandle(table, parentKey, childKey);
}

HTIMERDIALOG LoadTimerDialogHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadTimerDialogHandle(table, parentKey, childKey);
}

HLEADERBOARD LoadLeaderboardHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadLeaderboardHandle(table, parentKey, childKey);
}

HMULTIBOARD LoadMultiboardHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadMultiboardHandle(table, parentKey, childKey);
}

HMULTIBOARDITEM LoadMultiboardItemHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadMultiboardItemHandle(table, parentKey, childKey);
}

HTRACKABLE LoadTrackableHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadTrackableHandle(table, parentKey, childKey);
}

HDIALOG LoadDialogHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadDialogHandle(table, parentKey, childKey);
}

HBUTTON LoadButtonHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadButtonHandle(table, parentKey, childKey);
}

HTEXTTAG LoadTextTagHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadTextTagHandle(table, parentKey, childKey);
}

HLIGHTNING LoadLightningHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadLightningHandle(table, parentKey, childKey);
}

HIMAGE LoadImageHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadImageHandle(table, parentKey, childKey);
}

HUBERSPLAT LoadUbersplatHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadUbersplatHandle(table, parentKey, childKey);
}

HREGION LoadRegionHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadRegionHandle(table, parentKey, childKey);
}

HFOGSTATE LoadFogStateHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadFogStateHandle(table, parentKey, childKey);
}

HFOGMODIFIER LoadFogModifierHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadFogModifierHandle(table, parentKey, childKey);
}

HHASHTABLE LoadHashtableHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _LoadHashtableHandle(table, parentKey, childKey);
}

Boolean HaveSavedInteger(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _HaveSavedInteger(table, parentKey, childKey);
}

Boolean HaveSavedReal(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _HaveSavedReal(table, parentKey, childKey);
}

Boolean HaveSavedBoolean(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _HaveSavedBoolean(table, parentKey, childKey);
}

Boolean HaveSavedString(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _HaveSavedString(table, parentKey, childKey);
}

Boolean HaveSavedHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	return _HaveSavedHandle(table, parentKey, childKey);
}

procedure RemoveSavedInteger(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	_RemoveSavedInteger(table, parentKey, childKey);
}

procedure RemoveSavedReal(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	_RemoveSavedReal(table, parentKey, childKey);
}

procedure RemoveSavedBoolean(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	_RemoveSavedBoolean(table, parentKey, childKey);
}

procedure RemoveSavedString(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	_RemoveSavedString(table, parentKey, childKey);
}

procedure RemoveSavedHandle(HHASHTABLE table, Integer parentKey, Integer childKey)
{
	_RemoveSavedHandle(table, parentKey, childKey);
}

procedure FlushParentHashtable(HHASHTABLE table)
{
	_FlushParentHashtable(table);
}

procedure FlushChildHashtable(HHASHTABLE table, Integer parentKey)
{
	_FlushChildHashtable(table, parentKey);
}

Integer GetRandomInt(Integer lowBound, Integer highBound)
{
	return _GetRandomInt(lowBound, highBound);
}

Single GetRandomReal(Single lowBound, Single highBound)
{
	return _GetRandomReal(&lowBound, &highBound).Value;
}

HUNITPOOL CreateUnitPool()
{
	return _CreateUnitPool();
}

procedure DestroyUnitPool(HUNITPOOL whichPool)
{
	_DestroyUnitPool(whichPool);
}

procedure UnitPoolAddUnitType(HUNITPOOL whichPool, Integer unitId, Single weight)
{
	_UnitPoolAddUnitType(whichPool, unitId, &weight);
}

procedure UnitPoolRemoveUnitType(HUNITPOOL whichPool, Integer unitId)
{
	_UnitPoolRemoveUnitType(whichPool, unitId);
}

HUNIT PlaceRandomUnit(HUNITPOOL whichPool, HPLAYER forWhichPlayer, Single x, Single y, Single facing)
{
	return _PlaceRandomUnit(whichPool, forWhichPlayer, &x, &y, &facing);
}

HITEMPOOL CreateItemPool()
{
	return _CreateItemPool();
}

procedure DestroyItemPool(HITEMPOOL whichItemPool)
{
	_DestroyItemPool(whichItemPool);
}

procedure ItemPoolAddItemType(HITEMPOOL whichItemPool, Integer itemId, Single weight)
{
	_ItemPoolAddItemType(whichItemPool, itemId, &weight);
}

procedure ItemPoolRemoveItemType(HITEMPOOL whichItemPool, Integer itemId)
{
	_ItemPoolRemoveItemType(whichItemPool, itemId);
}

HITEM PlaceRandomItem(HITEMPOOL whichItemPool, Single x, Single y)
{
	return _PlaceRandomItem(whichItemPool, &x, &y);
}

Integer ChooseRandomCreep(Integer level)
{
	return _ChooseRandomCreep(level);
}

Integer ChooseRandomNPBuilding()
{
	return _ChooseRandomNPBuilding();
}

Integer ChooseRandomItem(Integer level)
{
	return _ChooseRandomItem(level);
}

Integer ChooseRandomItemEx(HITEMTYPE whichType, Integer level)
{
	return _ChooseRandomItemEx(whichType, level);
}

procedure SetRandomSeed(Integer seed)
{
	_SetRandomSeed(seed);
}

procedure SetTerrainFog(Single a, Single b, Single c, Single d, Single e)
{
	_SetTerrainFog(&a, &b, &c, &d, &e);
}

procedure ResetTerrainFog()
{
	_ResetTerrainFog();
}

procedure SetUnitFog(Single a, Single b, Single c, Single d, Single e)
{
	_SetUnitFog(&a, &b, &c, &d, &e);
}

procedure SetTerrainFogEx(Integer style, Single zstart, Single zend, Single density, Single red, Single green, Single blue)
{
	_SetTerrainFogEx(style, &zstart, &zend, &density, &red, &green, &blue);
}

procedure DisplayTextToPlayer(HPLAYER toPlayer, Single x, Single y, String message)
{
	_DisplayTextToPlayer(toPlayer, &x, &y, GetJassString(PChar(message)));
}

procedure DisplayTimedTextToPlayer(HPLAYER toPlayer, Single x, Single y, Single duration, String message)
{
	_DisplayTimedTextToPlayer(toPlayer, &x, &y, &duration, GetJassString(PChar(message)));
}

procedure DisplayTimedTextFromPlayer(HPLAYER toPlayer, Single x, Single y, Single duration, String message)
{
	_DisplayTimedTextFromPlayer(toPlayer, &x, &y, &duration, GetJassString(PChar(message)));
}

procedure ClearTextMessages()
{
	_ClearTextMessages();
}

procedure SetDayNightModels(String terrainDNCFile, String unitDNCFile)
{
	_SetDayNightModels(GetJassString(PChar(terrainDNCFile)), GetJassString(PChar(unitDNCFile)));
}

procedure SetSkyModel(String skyModelFile)
{
	_SetSkyModel(GetJassString(PChar(skyModelFile)));
}

procedure EnableUserControl(Boolean b)
{
	_EnableUserControl(b);
}

procedure EnableUserUI(Boolean b)
{
	_EnableUserUI(b);
}

procedure SuspendTimeOfDay(Boolean b)
{
	_SuspendTimeOfDay(b);
}

procedure SetTimeOfDayScale(Single r)
{
	_SetTimeOfDayScale(&r);
}

Single GetTimeOfDayScale()
{
	return _GetTimeOfDayScale().Value;
}

procedure ShowInterface(Boolean flag, Single fadeDuration)
{
	_ShowInterface(flag, &fadeDuration);
}

procedure PauseGame(Boolean flag)
{
	_PauseGame(flag);
}

procedure UnitAddIndicator(HUNIT whichUnit, Integer red, Integer green, Integer blue, Integer alpha)
{
	_UnitAddIndicator(whichUnit, red, green, blue, alpha);
}

procedure AddIndicator(HWIDGET whichWidget, Integer red, Integer green, Integer blue, Integer alpha)
{
	_AddIndicator(whichWidget, red, green, blue, alpha);
}

procedure PingMinimap(Single x, Single y, Single duration)
{
	_PingMinimap(&x, &y, &duration);
}

procedure PingMinimapEx(Single x, Single y, Single duration, Integer red, Integer green, Integer blue, Boolean extraEffects)
{
	_PingMinimapEx(&x, &y, &duration, red, green, blue, extraEffects);
}

procedure EnableOcclusion(Boolean flag)
{
	_EnableOcclusion(flag);
}

procedure SetIntroShotText(String introText)
{
	_SetIntroShotText(GetJassString(PChar(introText)));
}

procedure SetIntroShotModel(String introModelPath)
{
	_SetIntroShotModel(GetJassString(PChar(introModelPath)));
}

procedure EnableWorldFogBoundary(Boolean b)
{
	_EnableWorldFogBoundary(b);
}

procedure PlayModelCinematic(String modelName)
{
	_PlayModelCinematic(GetJassString(PChar(modelName)));
}

procedure PlayCinematic(String movieName)
{
	_PlayCinematic(GetJassString(PChar(movieName)));
}

procedure ForceUIKey(String key)
{
	_ForceUIKey(GetJassString(PChar(key)));
}

procedure ForceUICancel()
{
	_ForceUICancel();
}

procedure DisplayLoadDialog()
{
	_DisplayLoadDialog();
}

procedure SetAltMinimapIcon(String iconPath)
{
	_SetAltMinimapIcon(GetJassString(PChar(iconPath)));
}

procedure DisableRestartMission(Boolean flag)
{
	_DisableRestartMission(flag);
}

HTEXTTAG CreateTextTag()
{
	return _CreateTextTag();
}

procedure DestroyTextTag(HTEXTTAG t)
{
	_DestroyTextTag(t);
}

procedure SetTextTagText(HTEXTTAG t, String s, Single height)
{
	_SetTextTagText(t, GetJassString(PChar(s)), &height);
}

procedure SetTextTagPos(HTEXTTAG t, Single x, Single y, Single heightOffset)
{
	_SetTextTagPos(t, &x, &y, &heightOffset);
}

procedure SetTextTagPosUnit(HTEXTTAG t, HUNIT whichUnit, Single heightOffset)
{
	_SetTextTagPosUnit(t, whichUnit, &heightOffset);
}

procedure SetTextTagColor(HTEXTTAG t, Integer red, Integer green, Integer blue, Integer alpha)
{
	_SetTextTagColor(t, red, green, blue, alpha);
}

procedure SetTextTagVelocity(HTEXTTAG t, Single xvel, Single yvel)
{
	_SetTextTagVelocity(t, &xvel, &yvel);
}

procedure SetTextTagVisibility(HTEXTTAG t, Boolean flag)
{
	_SetTextTagVisibility(t, flag);
}

procedure SetTextTagSuspended(HTEXTTAG t, Boolean flag)
{
	_SetTextTagSuspended(t, flag);
}

procedure SetTextTagPermanent(HTEXTTAG t, Boolean flag)
{
	_SetTextTagPermanent(t, flag);
}

procedure SetTextTagAge(HTEXTTAG t, Single age)
{
	_SetTextTagAge(t, &age);
}

procedure SetTextTagLifespan(HTEXTTAG t, Single lifespan)
{
	_SetTextTagLifespan(t, &lifespan);
}

procedure SetTextTagFadepoint(HTEXTTAG t, Single fadepoint)
{
	_SetTextTagFadepoint(t, &fadepoint);
}

procedure SetReservedLocalHeroButtons(Integer reserved)
{
	_SetReservedLocalHeroButtons(reserved);
}

Integer GetAllyColorFilterState()
{
	return _GetAllyColorFilterState();
}

procedure SetAllyColorFilterState(Integer state)
{
	_SetAllyColorFilterState(state);
}

Boolean GetCreepCampFilterState()
{
	return _GetCreepCampFilterState();
}

procedure SetCreepCampFilterState(Boolean state)
{
	_SetCreepCampFilterState(state);
}

procedure EnableMinimapFilterButtons(Boolean enableAlly, Boolean enableCreep)
{
	_EnableMinimapFilterButtons(enableAlly, enableCreep);
}

procedure EnableDragSelect(Boolean state, Boolean ui)
{
	_EnableDragSelect(state, ui);
}

procedure EnablePreSelect(Boolean state, Boolean ui)
{
	_EnablePreSelect(state, ui);
}

procedure EnableSelect(Boolean state, Boolean ui)
{
	_EnableSelect(state, ui);
}

HTRACKABLE CreateTrackable(String trackableModelPath, Single x, Single y, Single facing)
{
	return _CreateTrackable(GetJassString(PChar(trackableModelPath)), &x, &y, &facing);
}

HQUEST CreateQuest()
{
	return _CreateQuest();
}

procedure DestroyQuest(HQUEST whichQuest)
{
	_DestroyQuest(whichQuest);
}

procedure QuestSetTitle(HQUEST whichQuest, String title)
{
	_QuestSetTitle(whichQuest, GetJassString(PChar(title)));
}

procedure QuestSetDescription(HQUEST whichQuest, String description)
{
	_QuestSetDescription(whichQuest, GetJassString(PChar(description)));
}

procedure QuestSetIconPath(HQUEST whichQuest, String iconPath)
{
	_QuestSetIconPath(whichQuest, GetJassString(PChar(iconPath)));
}

procedure QuestSetRequired(HQUEST whichQuest, Boolean required)
{
	_QuestSetRequired(whichQuest, required);
}

procedure QuestSetCompleted(HQUEST whichQuest, Boolean completed)
{
	_QuestSetCompleted(whichQuest, completed);
}

procedure QuestSetDiscovered(HQUEST whichQuest, Boolean discovered)
{
	_QuestSetDiscovered(whichQuest, discovered);
}

procedure QuestSetFailed(HQUEST whichQuest, Boolean failed)
{
	_QuestSetFailed(whichQuest, failed);
}

procedure QuestSetEnabled(HQUEST whichQuest, Boolean enabled)
{
	_QuestSetEnabled(whichQuest, enabled);
}

Boolean IsQuestRequired(HQUEST whichQuest)
{
	return _IsQuestRequired(whichQuest);
}

Boolean IsQuestCompleted(HQUEST whichQuest)
{
	return _IsQuestCompleted(whichQuest);
}

Boolean IsQuestDiscovered(HQUEST whichQuest)
{
	return _IsQuestDiscovered(whichQuest);
}

Boolean IsQuestFailed(HQUEST whichQuest)
{
	return _IsQuestFailed(whichQuest);
}

Boolean IsQuestEnabled(HQUEST whichQuest)
{
	return _IsQuestEnabled(whichQuest);
}

HQUESTITEM QuestCreateItem(HQUEST whichQuest)
{
	return _QuestCreateItem(whichQuest);
}

procedure QuestItemSetDescription(HQUESTITEM whichQuestItem, String description)
{
	_QuestItemSetDescription(whichQuestItem, GetJassString(PChar(description)));
}

procedure QuestItemSetCompleted(HQUESTITEM whichQuestItem, Boolean completed)
{
	_QuestItemSetCompleted(whichQuestItem, completed);
}

Boolean IsQuestItemCompleted(HQUESTITEM whichQuestItem)
{
	return _IsQuestItemCompleted(whichQuestItem);
}

HDEFEATCONDITION CreateDefeatCondition()
{
	return _CreateDefeatCondition();
}

procedure DestroyDefeatCondition(HDEFEATCONDITION whichCondition)
{
	_DestroyDefeatCondition(whichCondition);
}

procedure DefeatConditionSetDescription(HDEFEATCONDITION whichCondition, String description)
{
	_DefeatConditionSetDescription(whichCondition, GetJassString(PChar(description)));
}

procedure FlashQuestDialogButton()
{
	_FlashQuestDialogButton();
}

procedure ForceQuestDialogUpdate()
{
	_ForceQuestDialogUpdate();
}

HTIMERDIALOG CreateTimerDialog(HTIMER t)
{
	return _CreateTimerDialog(t);
}

procedure DestroyTimerDialog(HTIMERDIALOG whichDialog)
{
	_DestroyTimerDialog(whichDialog);
}

procedure TimerDialogSetTitle(HTIMERDIALOG whichDialog, String title)
{
	_TimerDialogSetTitle(whichDialog, GetJassString(PChar(title)));
}

procedure TimerDialogSetTitleColor(HTIMERDIALOG whichDialog, Integer red, Integer green, Integer blue, Integer alpha)
{
	_TimerDialogSetTitleColor(whichDialog, red, green, blue, alpha);
}

procedure TimerDialogSetTimeColor(HTIMERDIALOG whichDialog, Integer red, Integer green, Integer blue, Integer alpha)
{
	_TimerDialogSetTimeColor(whichDialog, red, green, blue, alpha);
}

procedure TimerDialogSetSpeed(HTIMERDIALOG whichDialog, Single speedMultFactor)
{
	_TimerDialogSetSpeed(whichDialog, &speedMultFactor);
}

procedure TimerDialogDisplay(HTIMERDIALOG whichDialog, Boolean display)
{
	_TimerDialogDisplay(whichDialog, display);
}

Boolean IsTimerDialogDisplayed(HTIMERDIALOG whichDialog)
{
	return _IsTimerDialogDisplayed(whichDialog);
}

procedure TimerDialogSetRealTimeRemaining(HTIMERDIALOG whichDialog, Single timeRemaining)
{
	_TimerDialogSetRealTimeRemaining(whichDialog, &timeRemaining);
}

HLEADERBOARD CreateLeaderboard()
{
	return _CreateLeaderboard();
}

procedure DestroyLeaderboard(HLEADERBOARD lb)
{
	_DestroyLeaderboard(lb);
}

procedure LeaderboardDisplay(HLEADERBOARD lb, Boolean show)
{
	_LeaderboardDisplay(lb, show);
}

Boolean IsLeaderboardDisplayed(HLEADERBOARD lb)
{
	return _IsLeaderboardDisplayed(lb);
}

Integer LeaderboardGetItemCount(HLEADERBOARD lb)
{
	return _LeaderboardGetItemCount(lb);
}

procedure LeaderboardSetSizeByItemCount(HLEADERBOARD lb, Integer count)
{
	_LeaderboardSetSizeByItemCount(lb, count);
}

procedure LeaderboardAddItem(HLEADERBOARD lb, String label_, Integer value, HPLAYER p)
{
	_LeaderboardAddItem(lb, GetJassString(PChar(label_)), value, p);
}

procedure LeaderboardRemoveItem(HLEADERBOARD lb, Integer index)
{
	_LeaderboardRemoveItem(lb, index);
}

procedure LeaderboardRemovePlayerItem(HLEADERBOARD lb, HPLAYER p)
{
	_LeaderboardRemovePlayerItem(lb, p);
}

procedure LeaderboardClear(HLEADERBOARD lb)
{
	_LeaderboardClear(lb);
}

procedure LeaderboardSortItemsByValue(HLEADERBOARD lb, Boolean ascending)
{
	_LeaderboardSortItemsByValue(lb, ascending);
}

procedure LeaderboardSortItemsByPlayer(HLEADERBOARD lb, Boolean ascending)
{
	_LeaderboardSortItemsByPlayer(lb, ascending);
}

procedure LeaderboardSortItemsByLabel(HLEADERBOARD lb, Boolean ascending)
{
	_LeaderboardSortItemsByLabel(lb, ascending);
}

Boolean LeaderboardHasPlayerItem(HLEADERBOARD lb, HPLAYER p)
{
	return _LeaderboardHasPlayerItem(lb, p);
}

Integer LeaderboardGetPlayerIndex(HLEADERBOARD lb, HPLAYER p)
{
	return _LeaderboardGetPlayerIndex(lb, p);
}

procedure LeaderboardSetLabel(HLEADERBOARD lb, String label_)
{
	_LeaderboardSetLabel(lb, GetJassString(PChar(label_)));
}

String LeaderboardGetLabelText(HLEADERBOARD lb)
{
	return GetStringFromHandle(_LeaderboardGetLabelText(lb));
}

procedure PlayerSetLeaderboard(HPLAYER toPlayer, HLEADERBOARD lb)
{
	_PlayerSetLeaderboard(toPlayer, lb);
}

HLEADERBOARD PlayerGetLeaderboard(HPLAYER toPlayer)
{
	return _PlayerGetLeaderboard(toPlayer);
}

procedure LeaderboardSetLabelColor(HLEADERBOARD lb, Integer red, Integer green, Integer blue, Integer alpha)
{
	_LeaderboardSetLabelColor(lb, red, green, blue, alpha);
}

procedure LeaderboardSetValueColor(HLEADERBOARD lb, Integer red, Integer green, Integer blue, Integer alpha)
{
	_LeaderboardSetValueColor(lb, red, green, blue, alpha);
}

procedure LeaderboardSetStyle(HLEADERBOARD lb, Boolean showLabel, Boolean showNames, Boolean showValues, Boolean showIcons)
{
	_LeaderboardSetStyle(lb, showLabel, showNames, showValues, showIcons);
}

procedure LeaderboardSetItemValue(HLEADERBOARD lb, Integer whichItem, Integer val)
{
	_LeaderboardSetItemValue(lb, whichItem, val);
}

procedure LeaderboardSetItemLabel(HLEADERBOARD lb, Integer whichItem, String val)
{
	_LeaderboardSetItemLabel(lb, whichItem, GetJassString(PChar(val)));
}

procedure LeaderboardSetItemStyle(HLEADERBOARD lb, Integer whichItem, Boolean showLabel, Boolean showValue, Boolean showIcon)
{
	_LeaderboardSetItemStyle(lb, whichItem, showLabel, showValue, showIcon);
}

procedure LeaderboardSetItemLabelColor(HLEADERBOARD lb, Integer whichItem, Integer red, Integer green, Integer blue, Integer alpha)
{
	_LeaderboardSetItemLabelColor(lb, whichItem, red, green, blue, alpha);
}

procedure LeaderboardSetItemValueColor(HLEADERBOARD lb, Integer whichItem, Integer red, Integer green, Integer blue, Integer alpha)
{
	_LeaderboardSetItemValueColor(lb, whichItem, red, green, blue, alpha);
}

HMULTIBOARD CreateMultiboard()
{
	return _CreateMultiboard();
}

procedure DestroyMultiboard(HMULTIBOARD lb)
{
	_DestroyMultiboard(lb);
}

procedure MultiboardDisplay(HMULTIBOARD lb, Boolean show)
{
	_MultiboardDisplay(lb, show);
}

Boolean IsMultiboardDisplayed(HMULTIBOARD lb)
{
	return _IsMultiboardDisplayed(lb);
}

procedure MultiboardMinimize(HMULTIBOARD lb, Boolean minimize)
{
	_MultiboardMinimize(lb, minimize);
}

Boolean IsMultiboardMinimized(HMULTIBOARD lb)
{
	return _IsMultiboardMinimized(lb);
}

procedure MultiboardClear(HMULTIBOARD lb)
{
	_MultiboardClear(lb);
}

procedure MultiboardSetTitleText(HMULTIBOARD lb, String label_)
{
	_MultiboardSetTitleText(lb, GetJassString(PChar(label_)));
}

String MultiboardGetTitleText(HMULTIBOARD lb)
{
	return GetStringFromHandle(_MultiboardGetTitleText(lb));
}

procedure MultiboardSetTitleTextColor(HMULTIBOARD lb, Integer red, Integer green, Integer blue, Integer alpha)
{
	_MultiboardSetTitleTextColor(lb, red, green, blue, alpha);
}

Integer MultiboardGetRowCount(HMULTIBOARD lb)
{
	return _MultiboardGetRowCount(lb);
}

Integer MultiboardGetColumnCount(HMULTIBOARD lb)
{
	return _MultiboardGetColumnCount(lb);
}

procedure MultiboardSetColumnCount(HMULTIBOARD lb, Integer count)
{
	_MultiboardSetColumnCount(lb, count);
}

procedure MultiboardSetRowCount(HMULTIBOARD lb, Integer count)
{
	_MultiboardSetRowCount(lb, count);
}

procedure MultiboardSetItemsStyle(HMULTIBOARD lb, Boolean showValues, Boolean showIcons)
{
	_MultiboardSetItemsStyle(lb, showValues, showIcons);
}

procedure MultiboardSetItemsValue(HMULTIBOARD lb, String value)
{
	_MultiboardSetItemsValue(lb, GetJassString(PChar(value)));
}

procedure MultiboardSetItemsValueColor(HMULTIBOARD lb, Integer red, Integer green, Integer blue, Integer alpha)
{
	_MultiboardSetItemsValueColor(lb, red, green, blue, alpha);
}

procedure MultiboardSetItemsWidth(HMULTIBOARD lb, Single width)
{
	_MultiboardSetItemsWidth(lb, &width);
}

procedure MultiboardSetItemsIcon(HMULTIBOARD lb, String iconPath)
{
	_MultiboardSetItemsIcon(lb, GetJassString(PChar(iconPath)));
}

HMULTIBOARDITEM MultiboardGetItem(HMULTIBOARD lb, Integer row, Integer column)
{
	return _MultiboardGetItem(lb, row, column);
}

procedure MultiboardReleaseItem(HMULTIBOARDITEM mbi)
{
	_MultiboardReleaseItem(mbi);
}

procedure MultiboardSetItemStyle(HMULTIBOARDITEM mbi, Boolean showValue, Boolean showIcon)
{
	_MultiboardSetItemStyle(mbi, showValue, showIcon);
}

procedure MultiboardSetItemValue(HMULTIBOARDITEM mbi, String val)
{
	_MultiboardSetItemValue(mbi, GetJassString(PChar(val)));
}

procedure MultiboardSetItemValueColor(HMULTIBOARDITEM mbi, Integer red, Integer green, Integer blue, Integer alpha)
{
	_MultiboardSetItemValueColor(mbi, red, green, blue, alpha);
}

procedure MultiboardSetItemWidth(HMULTIBOARDITEM mbi, Single width)
{
	_MultiboardSetItemWidth(mbi, &width);
}

procedure MultiboardSetItemIcon(HMULTIBOARDITEM mbi, String iconFileName)
{
	_MultiboardSetItemIcon(mbi, GetJassString(PChar(iconFileName)));
}

procedure MultiboardSuppressDisplay(Boolean flag)
{
	_MultiboardSuppressDisplay(flag);
}

procedure SetCameraPosition(Single x, Single y)
{
	_SetCameraPosition(&x, &y);
}

procedure SetCameraQuickPosition(Single x, Single y)
{
	_SetCameraQuickPosition(&x, &y);
}

procedure SetCameraBounds(Single x1, Single y1, Single x2, Single y2, Single x3, Single y3, Single x4, Single y4)
{
	_SetCameraBounds(&x1, &y1, &x2, &y2, &x3, &y3, &x4, &y4);
}

procedure StopCamera()
{
	_StopCamera();
}

procedure ResetToGameCamera(Single duration)
{
	_ResetToGameCamera(&duration);
}

procedure PanCameraTo(Single x, Single y)
{
	_PanCameraTo(&x, &y);
}

procedure PanCameraToTimed(Single x, Single y, Single duration)
{
	_PanCameraToTimed(&x, &y, &duration);
}

procedure PanCameraToWithZ(Single x, Single y, Single zOffsetDest)
{
	_PanCameraToWithZ(&x, &y, &zOffsetDest);
}

procedure PanCameraToTimedWithZ(Single x, Single y, Single zOffsetDest, Single duration)
{
	_PanCameraToTimedWithZ(&x, &y, &zOffsetDest, &duration);
}

procedure SetCinematicCamera(String cameraModelFile)
{
	_SetCinematicCamera(GetJassString(PChar(cameraModelFile)));
}

procedure SetCameraRotateMode(Single x, Single y, Single radiansToSweep, Single duration)
{
	_SetCameraRotateMode(&x, &y, &radiansToSweep, &duration);
}

procedure SetCameraField(HCAMERAFIELD whichField, Single value, Single duration)
{
	_SetCameraField(whichField, &value, &duration);
}

procedure AdjustCameraField(HCAMERAFIELD whichField, Single offset, Single duration)
{
	_AdjustCameraField(whichField, &offset, &duration);
}

procedure SetCameraTargetController(HUNIT whichUnit, Single xoffset, Single yoffset, Boolean inheritOrientation)
{
	_SetCameraTargetController(whichUnit, &xoffset, &yoffset, inheritOrientation);
}

procedure SetCameraOrientController(HUNIT whichUnit, Single xoffset, Single yoffset)
{
	_SetCameraOrientController(whichUnit, &xoffset, &yoffset);
}

HCAMERASETUP CreateCameraSetup()
{
	return _CreateCameraSetup();
}

procedure CameraSetupSetField(HCAMERASETUP whichSetup, HCAMERAFIELD whichField, Single value, Single duration)
{
	_CameraSetupSetField(whichSetup, whichField, &value, &duration);
}

Single CameraSetupGetField(HCAMERASETUP whichSetup, HCAMERAFIELD whichField)
{
	return _CameraSetupGetField(whichSetup, whichField).Value;
}

procedure CameraSetupSetDestPosition(HCAMERASETUP whichSetup, Single x, Single y, Single duration)
{
	_CameraSetupSetDestPosition(whichSetup, &x, &y, &duration);
}

HLOCATION CameraSetupGetDestPositionLoc(HCAMERASETUP whichSetup)
{
	return _CameraSetupGetDestPositionLoc(whichSetup);
}

Single CameraSetupGetDestPositionX(HCAMERASETUP whichSetup)
{
	return _CameraSetupGetDestPositionX(whichSetup).Value;
}

Single CameraSetupGetDestPositionY(HCAMERASETUP whichSetup)
{
	return _CameraSetupGetDestPositionY(whichSetup).Value;
}

procedure CameraSetupApply(HCAMERASETUP whichSetup, Boolean doPan, Boolean panTimed)
{
	_CameraSetupApply(whichSetup, doPan, panTimed);
}

procedure CameraSetupApplyWithZ(HCAMERASETUP whichSetup, Single zDestOffset)
{
	_CameraSetupApplyWithZ(whichSetup, &zDestOffset);
}

procedure CameraSetupApplyForceDuration(HCAMERASETUP whichSetup, Boolean doPan, Single forceDuration)
{
	_CameraSetupApplyForceDuration(whichSetup, doPan, &forceDuration);
}

procedure CameraSetupApplyForceDurationWithZ(HCAMERASETUP whichSetup, Single zDestOffset, Single forceDuration)
{
	_CameraSetupApplyForceDurationWithZ(whichSetup, &zDestOffset, &forceDuration);
}

procedure CameraSetTargetNoise(Single mag, Single velocity)
{
	_CameraSetTargetNoise(&mag, &velocity);
}

procedure CameraSetSourceNoise(Single mag, Single velocity)
{
	_CameraSetSourceNoise(&mag, &velocity);
}

procedure CameraSetTargetNoiseEx(Single mag, Single velocity, Boolean vertOnly)
{
	_CameraSetTargetNoiseEx(&mag, &velocity, vertOnly);
}

procedure CameraSetSourceNoiseEx(Single mag, Single velocity, Boolean vertOnly)
{
	_CameraSetSourceNoiseEx(&mag, &velocity, vertOnly);
}

procedure CameraSetSmoothingFactor(Single factor)
{
	_CameraSetSmoothingFactor(&factor);
}

procedure SetCineFilterTexture(String filename)
{
	_SetCineFilterTexture(GetJassString(PChar(filename)));
}

procedure SetCineFilterBlendMode(HBLENDMODE whichMode)
{
	_SetCineFilterBlendMode(whichMode);
}

procedure SetCineFilterTexMapFlags(HTEXMAPFLAGS whichFlags)
{
	_SetCineFilterTexMapFlags(whichFlags);
}

procedure SetCineFilterStartUV(Single minu, Single minv, Single maxu, Single maxv)
{
	_SetCineFilterStartUV(&minu, &minv, &maxu, &maxv);
}

procedure SetCineFilterEndUV(Single minu, Single minv, Single maxu, Single maxv)
{
	_SetCineFilterEndUV(&minu, &minv, &maxu, &maxv);
}

procedure SetCineFilterStartColor(Integer red, Integer green, Integer blue, Integer alpha)
{
	_SetCineFilterStartColor(red, green, blue, alpha);
}

procedure SetCineFilterEndColor(Integer red, Integer green, Integer blue, Integer alpha)
{
	_SetCineFilterEndColor(red, green, blue, alpha);
}

procedure SetCineFilterDuration(Single duration)
{
	_SetCineFilterDuration(&duration);
}

procedure DisplayCineFilter(Boolean flag)
{
	_DisplayCineFilter(flag);
}

Boolean IsCineFilterDisplayed()
{
	return _IsCineFilterDisplayed();
}

procedure SetCinematicScene(Integer portraitUnitId, HPLAYERCOLOR color, String speakerTitle, String text, Single sceneDuration, Single voiceoverDuration)
{
	_SetCinematicScene(portraitUnitId, color, GetJassString(PChar(speakerTitle)), GetJassString(PChar(text)), &sceneDuration, &voiceoverDuration);
}

procedure EndCinematicScene()
{
	_EndCinematicScene();
}

procedure ForceCinematicSubtitles(Boolean flag)
{
	_ForceCinematicSubtitles(flag);
}

Single GetCameraMargin(Integer whichMargin)
{
	return _GetCameraMargin(whichMargin).Value;
}

Single GetCameraBoundMinX()
{
	return _GetCameraBoundMinX().Value;
}

Single GetCameraBoundMinY()
{
	return _GetCameraBoundMinY().Value;
}

Single GetCameraBoundMaxX()
{
	return _GetCameraBoundMaxX().Value;
}

Single GetCameraBoundMaxY()
{
	return _GetCameraBoundMaxY().Value;
}

Single GetCameraField(HCAMERAFIELD whichField)
{
	return _GetCameraField(whichField).Value;
}

Single GetCameraTargetPositionX()
{
	return _GetCameraTargetPositionX().Value;
}

Single GetCameraTargetPositionY()
{
	return _GetCameraTargetPositionY().Value;
}

Single GetCameraTargetPositionZ()
{
	return _GetCameraTargetPositionZ().Value;
}

HLOCATION GetCameraTargetPositionLoc()
{
	return _GetCameraTargetPositionLoc();
}

Single GetCameraEyePositionX()
{
	return _GetCameraEyePositionX().Value;
}

Single GetCameraEyePositionY()
{
	return _GetCameraEyePositionY().Value;
}

Single GetCameraEyePositionZ()
{
	return _GetCameraEyePositionZ().Value;
}

HLOCATION GetCameraEyePositionLoc()
{
	return _GetCameraEyePositionLoc();
}

procedure NewSoundEnvironment(String environmentName)
{
	_NewSoundEnvironment(GetJassString(PChar(environmentName)));
}

HSOUND CreateSound(String fileName, Boolean looping, Boolean is3D, Boolean stopwhenoutofrange, Integer fadeInRate, Integer fadeOutRate, String eaxSetting)
{
	return _CreateSound(GetJassString(PChar(fileName)), looping, is3D, stopwhenoutofrange, fadeInRate, fadeOutRate, GetJassString(PChar(eaxSetting)));
}

HSOUND CreateSoundFilenameWithLabel(String fileName, Boolean looping, Boolean is3D, Boolean stopwhenoutofrange, Integer fadeInRate, Integer fadeOutRate, String SLKEntryName)
{
	return _CreateSoundFilenameWithLabel(GetJassString(PChar(fileName)), looping, is3D, stopwhenoutofrange, fadeInRate, fadeOutRate, GetJassString(PChar(SLKEntryName)));
}

HSOUND CreateSoundFromLabel(String soundLabel, Boolean looping, Boolean is3D, Boolean stopwhenoutofrange, Integer fadeInRate, Integer fadeOutRate)
{
	return _CreateSoundFromLabel(GetJassString(PChar(soundLabel)), looping, is3D, stopwhenoutofrange, fadeInRate, fadeOutRate);
}

HSOUND CreateMIDISound(String soundLabel, Integer fadeInRate, Integer fadeOutRate)
{
	return _CreateMIDISound(GetJassString(PChar(soundLabel)), fadeInRate, fadeOutRate);
}

procedure SetSoundParamsFromLabel(HSOUND soundHandle, String soundLabel)
{
	_SetSoundParamsFromLabel(soundHandle, GetJassString(PChar(soundLabel)));
}

procedure SetSoundDistanceCutoff(HSOUND soundHandle, Single cutoff)
{
	_SetSoundDistanceCutoff(soundHandle, &cutoff);
}

procedure SetSoundChannel(HSOUND soundHandle, Integer channel)
{
	_SetSoundChannel(soundHandle, channel);
}

procedure SetSoundVolume(HSOUND soundHandle, Integer volume)
{
	_SetSoundVolume(soundHandle, volume);
}

procedure SetSoundPitch(HSOUND soundHandle, Single pitch)
{
	_SetSoundPitch(soundHandle, &pitch);
}

procedure SetSoundPlayPosition(HSOUND soundHandle, Integer millisecs)
{
	_SetSoundPlayPosition(soundHandle, millisecs);
}

procedure SetSoundDistances(HSOUND soundHandle, Single minDist, Single maxDist)
{
	_SetSoundDistances(soundHandle, &minDist, &maxDist);
}

procedure SetSoundConeAngles(HSOUND soundHandle, Single inside, Single outside, Integer outsideVolume)
{
	_SetSoundConeAngles(soundHandle, &inside, &outside, outsideVolume);
}

procedure SetSoundConeOrientation(HSOUND soundHandle, Single x, Single y, Single z)
{
	_SetSoundConeOrientation(soundHandle, &x, &y, &z);
}

procedure SetSoundPosition(HSOUND soundHandle, Single x, Single y, Single z)
{
	_SetSoundPosition(soundHandle, &x, &y, &z);
}

procedure SetSoundVelocity(HSOUND soundHandle, Single x, Single y, Single z)
{
	_SetSoundVelocity(soundHandle, &x, &y, &z);
}

procedure AttachSoundToUnit(HSOUND soundHandle, HUNIT whichUnit)
{
	_AttachSoundToUnit(soundHandle, whichUnit);
}

procedure StartSound(HSOUND soundHandle)
{
	_StartSound(soundHandle);
}

procedure StopSound(HSOUND soundHandle, Boolean killWhenDone, Boolean fadeOut)
{
	_StopSound(soundHandle, killWhenDone, fadeOut);
}

procedure KillSoundWhenDone(HSOUND soundHandle)
{
	_KillSoundWhenDone(soundHandle);
}

procedure SetMapMusic(String musicName, Boolean random, Integer index)
{
	_SetMapMusic(GetJassString(PChar(musicName)), random, index);
}

procedure ClearMapMusic()
{
	_ClearMapMusic();
}

procedure PlayMusic(String musicName)
{
	_PlayMusic(GetJassString(PChar(musicName)));
}

procedure PlayMusicEx(String musicName, Integer frommsecs, Integer fadeinmsecs)
{
	_PlayMusicEx(GetJassString(PChar(musicName)), frommsecs, fadeinmsecs);
}

procedure StopMusic(Boolean fadeOut)
{
	_StopMusic(fadeOut);
}

procedure ResumeMusic()
{
	_ResumeMusic();
}

procedure PlayThematicMusic(String musicFileName)
{
	_PlayThematicMusic(GetJassString(PChar(musicFileName)));
}

procedure PlayThematicMusicEx(String musicFileName, Integer frommsecs)
{
	_PlayThematicMusicEx(GetJassString(PChar(musicFileName)), frommsecs);
}

procedure EndThematicMusic()
{
	_EndThematicMusic();
}

procedure SetMusicVolume(Integer volume)
{
	_SetMusicVolume(volume);
}

procedure SetMusicPlayPosition(Integer millisecs)
{
	_SetMusicPlayPosition(millisecs);
}

procedure SetThematicMusicPlayPosition(Integer millisecs)
{
	_SetThematicMusicPlayPosition(millisecs);
}

procedure SetSoundDuration(HSOUND soundHandle, Integer duration)
{
	_SetSoundDuration(soundHandle, duration);
}

Integer GetSoundDuration(HSOUND soundHandle)
{
	return _GetSoundDuration(soundHandle);
}

Integer GetSoundFileDuration(String musicFileName)
{
	return _GetSoundFileDuration(GetJassString(PChar(musicFileName)));
}

procedure VolumeGroupSetVolume(HVOLUMEGROUP vgroup, Single scale)
{
	_VolumeGroupSetVolume(vgroup, &scale);
}

procedure VolumeGroupReset()
{
	_VolumeGroupReset();
}

Boolean GetSoundIsPlaying(HSOUND soundHandle)
{
	return _GetSoundIsPlaying(soundHandle);
}

Boolean GetSoundIsLoading(HSOUND soundHandle)
{
	return _GetSoundIsLoading(soundHandle);
}

procedure RegisterStackedSound(HSOUND soundHandle, Boolean byPosition, Single rectwidth, Single rectheight)
{
	_RegisterStackedSound(soundHandle, byPosition, &rectwidth, &rectheight);
}

procedure UnregisterStackedSound(HSOUND soundHandle, Boolean byPosition, Single rectwidth, Single rectheight)
{
	_UnregisterStackedSound(soundHandle, byPosition, &rectwidth, &rectheight);
}

HWEATHEREFFECT AddWeatherEffect(HRECT _where, Integer effectID)
{
	return _AddWeatherEffect(_where, effectID);
}

procedure RemoveWeatherEffect(HWEATHEREFFECT whichEffect)
{
	_RemoveWeatherEffect(whichEffect);
}

procedure EnableWeatherEffect(HWEATHEREFFECT whichEffect, Boolean enable)
{
	_EnableWeatherEffect(whichEffect, enable);
}

HTERRAINDEFORMATION TerrainDeformCrater(Single x, Single y, Single radius, Single depth, Integer duration, Boolean permanent)
{
	return _TerrainDeformCrater(&x, &y, &radius, &depth, duration, permanent);
}

HTERRAINDEFORMATION TerrainDeformRipple(Single x, Single y, Single radius, Single depth, Integer duration, Integer count, Single spaceWaves, Single timeWaves, Single radiusStartPct, Boolean limitNeg)
{
	return _TerrainDeformRipple(&x, &y, &radius, &depth, duration, count, &spaceWaves, &timeWaves, &radiusStartPct, limitNeg);
}

HTERRAINDEFORMATION TerrainDeformWave(Single x, Single y, Single dirX, Single dirY, Single distance, Single speed, Single radius, Single depth, Integer trailTime, Integer count)
{
	return _TerrainDeformWave(&x, &y, &dirX, &dirY, &distance, &speed, &radius, &depth, trailTime, count);
}

HTERRAINDEFORMATION TerrainDeformRandom(Single x, Single y, Single radius, Single minDelta, Single maxDelta, Integer duration, Integer updateInterval)
{
	return _TerrainDeformRandom(&x, &y, &radius, &minDelta, &maxDelta, duration, updateInterval);
}

procedure TerrainDeformStop(HTERRAINDEFORMATION deformation, Integer duration)
{
	_TerrainDeformStop(deformation, duration);
}

procedure TerrainDeformStopAll()
{
	_TerrainDeformStopAll();
}

HEFFECT AddSpecialEffect(String modelName, Single x, Single y)
{
	return _AddSpecialEffect(GetJassString(PChar(modelName)), &x, &y);
}

HEFFECT AddSpecialEffectLoc(String modelName, HLOCATION _where)
{
	return _AddSpecialEffectLoc(GetJassString(PChar(modelName)), _where);
}

HEFFECT AddSpecialEffectTarget(String modelName, HWIDGET targetWidget, String attachPointName)
{
	return _AddSpecialEffectTarget(GetJassString(PChar(modelName)), targetWidget, GetJassString(PChar(attachPointName)));
}

procedure DestroyEffect(HEFFECT whichEffect)
{
	_DestroyEffect(whichEffect);
}

HEFFECT AddSpellEffect(String abilityString, HEFFECTTYPE t, Single x, Single y)
{
	return _AddSpellEffect(GetJassString(PChar(abilityString)), t, &x, &y);
}

HEFFECT AddSpellEffectLoc(String abilityString, HEFFECTTYPE t, HLOCATION _where)
{
	return _AddSpellEffectLoc(GetJassString(PChar(abilityString)), t, _where);
}

HEFFECT AddSpellEffectById(Integer abilityId, HEFFECTTYPE t, Single x, Single y)
{
	return _AddSpellEffectById(abilityId, t, &x, &y);
}

HEFFECT AddSpellEffectByIdLoc(Integer abilityId, HEFFECTTYPE t, HLOCATION _where)
{
	return _AddSpellEffectByIdLoc(abilityId, t, _where);
}

HEFFECT AddSpellEffectTarget(String modelName, HEFFECTTYPE t, HWIDGET targetWidget, String attachPoint)
{
	return _AddSpellEffectTarget(GetJassString(PChar(modelName)), t, targetWidget, GetJassString(PChar(attachPoint)));
}

HEFFECT AddSpellEffectTargetById(Integer abilityId, HEFFECTTYPE t, HWIDGET targetWidget, String attachPoint)
{
	return _AddSpellEffectTargetById(abilityId, t, targetWidget, GetJassString(PChar(attachPoint)));
}

HLIGHTNING AddLightning(String codeName, Boolean checkVisibility, Single x1, Single y1, Single x2, Single y2)
{
	return _AddLightning(GetJassString(PChar(codeName)), checkVisibility, &x1, &y1, &x2, &y2);
}

HLIGHTNING AddLightningEx(String codeName, Boolean checkVisibility, Single x1, Single y1, Single z1, Single x2, Single y2, Single z2)
{
	return _AddLightningEx(GetJassString(PChar(codeName)), checkVisibility, &x1, &y1, &z1, &x2, &y2, &z2);
}

Boolean DestroyLightning(HLIGHTNING whichBolt)
{
	return _DestroyLightning(whichBolt);
}

Boolean MoveLightning(HLIGHTNING whichBolt, Boolean checkVisibility, Single x1, Single y1, Single x2, Single y2)
{
	return _MoveLightning(whichBolt, checkVisibility, &x1, &y1, &x2, &y2);
}

Boolean MoveLightningEx(HLIGHTNING whichBolt, Boolean checkVisibility, Single x1, Single y1, Single z1, Single x2, Single y2, Single z2)
{
	return _MoveLightningEx(whichBolt, checkVisibility, &x1, &y1, &z1, &x2, &y2, &z2);
}

Single GetLightningColorA(HLIGHTNING whichBolt)
{
	return _GetLightningColorA(whichBolt).Value;
}

Single GetLightningColorR(HLIGHTNING whichBolt)
{
	return _GetLightningColorR(whichBolt).Value;
}

Single GetLightningColorG(HLIGHTNING whichBolt)
{
	return _GetLightningColorG(whichBolt).Value;
}

Single GetLightningColorB(HLIGHTNING whichBolt)
{
	return _GetLightningColorB(whichBolt).Value;
}

Boolean SetLightningColor(HLIGHTNING whichBolt, Single r, Single g, Single b, Single a)
{
	return _SetLightningColor(whichBolt, &r, &g, &b, &a);
}

String GetAbilityEffect(String abilityString, HEFFECTTYPE t, Integer index)
{
	return GetStringFromHandle(_GetAbilityEffect(GetJassString(PChar(abilityString)), t, index));
}

String GetAbilityEffectById(Integer abilityId, HEFFECTTYPE t, Integer index)
{
	return GetStringFromHandle(_GetAbilityEffectById(abilityId, t, index));
}

String GetAbilitySound(String abilityString, HSOUNDTYPE t)
{
	return GetStringFromHandle(_GetAbilitySound(GetJassString(PChar(abilityString)), t));
}

String GetAbilitySoundById(Integer abilityId, HSOUNDTYPE t)
{
	return GetStringFromHandle(_GetAbilitySoundById(abilityId, t));
}

Integer GetTerrainCliffLevel(Single x, Single y)
{
	return _GetTerrainCliffLevel(&x, &y);
}

procedure SetWaterBaseColor(Integer red, Integer green, Integer blue, Integer alpha)
{
	_SetWaterBaseColor(red, green, blue, alpha);
}

procedure SetWaterDeforms(Boolean val)
{
	_SetWaterDeforms(val);
}

Integer GetTerrainType(Single x, Single y)
{
	return _GetTerrainType(&x, &y);
}

Integer GetTerrainVariance(Single x, Single y)
{
	return _GetTerrainVariance(&x, &y);
}

procedure SetTerrainType(Single x, Single y, Integer terrainType, Integer variation, Integer area, Integer shape)
{
	_SetTerrainType(&x, &y, terrainType, variation, area, shape);
}

Boolean IsTerrainPathable(Single x, Single y, HPATHINGTYPE t)
{
	return _IsTerrainPathable(&x, &y, t);
}

procedure SetTerrainPathable(Single x, Single y, HPATHINGTYPE t, Boolean flag)
{
	_SetTerrainPathable(&x, &y, t, flag);
}

HIMAGE CreateImage(String file_, Single sizeX, Single sizeY, Single sizeZ, Single posX, Single posY, Single posZ, Single originX, Single originY, Single originZ, Integer imageType)
{
	return _CreateImage(GetJassString(PChar(file_)), &sizeX, &sizeY, &sizeZ, &posX, &posY, &posZ, &originX, &originY, &originZ, imageType);
}

procedure DestroyImage(HIMAGE whichImage)
{
	_DestroyImage(whichImage);
}

procedure ShowImage(HIMAGE whichImage, Boolean flag)
{
	_ShowImage(whichImage, flag);
}

procedure SetImageConstantHeight(HIMAGE whichImage, Boolean flag, Single height)
{
	_SetImageConstantHeight(whichImage, flag, &height);
}

procedure SetImagePosition(HIMAGE whichImage, Single x, Single y, Single z)
{
	_SetImagePosition(whichImage, &x, &y, &z);
}

procedure SetImageColor(HIMAGE whichImage, Integer red, Integer green, Integer blue, Integer alpha)
{
	_SetImageColor(whichImage, red, green, blue, alpha);
}

procedure SetImageRender(HIMAGE whichImage, Boolean flag)
{
	_SetImageRender(whichImage, flag);
}

procedure SetImageRenderAlways(HIMAGE whichImage, Boolean flag)
{
	_SetImageRenderAlways(whichImage, flag);
}

procedure SetImageAboveWater(HIMAGE whichImage, Boolean flag, Boolean useWaterAlpha)
{
	_SetImageAboveWater(whichImage, flag, useWaterAlpha);
}

procedure SetImageType(HIMAGE whichImage, Integer imageType)
{
	_SetImageType(whichImage, imageType);
}

HUBERSPLAT CreateUbersplat(Single x, Single y, String name, Integer red, Integer green, Integer blue, Integer alpha, Boolean forcePaused, Boolean noBirthTime)
{
	return _CreateUbersplat(&x, &y, GetJassString(PChar(name)), red, green, blue, alpha, forcePaused, noBirthTime);
}

procedure DestroyUbersplat(HUBERSPLAT whichSplat)
{
	_DestroyUbersplat(whichSplat);
}

procedure ResetUbersplat(HUBERSPLAT whichSplat)
{
	_ResetUbersplat(whichSplat);
}

procedure FinishUbersplat(HUBERSPLAT whichSplat)
{
	_FinishUbersplat(whichSplat);
}

procedure ShowUbersplat(HUBERSPLAT whichSplat, Boolean flag)
{
	_ShowUbersplat(whichSplat, flag);
}

procedure SetUbersplatRender(HUBERSPLAT whichSplat, Boolean flag)
{
	_SetUbersplatRender(whichSplat, flag);
}

procedure SetUbersplatRenderAlways(HUBERSPLAT whichSplat, Boolean flag)
{
	_SetUbersplatRenderAlways(whichSplat, flag);
}

procedure SetBlight(HPLAYER whichPlayer, Single x, Single y, Single radius, Boolean addBlight)
{
	_SetBlight(whichPlayer, &x, &y, &radius, addBlight);
}

procedure SetBlightRect(HPLAYER whichPlayer, HRECT r, Boolean addBlight)
{
	_SetBlightRect(whichPlayer, r, addBlight);
}

procedure SetBlightPoint(HPLAYER whichPlayer, Single x, Single y, Boolean addBlight)
{
	_SetBlightPoint(whichPlayer, &x, &y, addBlight);
}

procedure SetBlightLoc(HPLAYER whichPlayer, HLOCATION whichLocation, Single radius, Boolean addBlight)
{
	_SetBlightLoc(whichPlayer, whichLocation, &radius, addBlight);
}

HUNIT CreateBlightedGoldmine(HPLAYER id, Single x, Single y, Single face)
{
	return _CreateBlightedGoldmine(id, &x, &y, &face);
}

Boolean IsPointBlighted(Single x, Single y)
{
	return _IsPointBlighted(&x, &y);
}

procedure SetDoodadAnimation(Single x, Single y, Single radius, Integer doodadID, Boolean nearestOnly, String animName, Boolean animRandom)
{
	_SetDoodadAnimation(&x, &y, &radius, doodadID, nearestOnly, GetJassString(PChar(animName)), animRandom);
}

procedure SetDoodadAnimationRect(HRECT r, Integer doodadID, String animName, Boolean animRandom)
{
	_SetDoodadAnimationRect(r, doodadID, GetJassString(PChar(animName)), animRandom);
}

procedure StartMeleeAI(HPLAYER num, String script)
{
	_StartMeleeAI(num, GetJassString(PChar(script)));
}

procedure StartCampaignAI(HPLAYER num, String script)
{
	_StartCampaignAI(num, GetJassString(PChar(script)));
}

procedure CommandAI(HPLAYER num, Integer command, Integer data)
{
	_CommandAI(num, command, data);
}

procedure PauseCompAI(HPLAYER p, Boolean pause)
{
	_PauseCompAI(p, pause);
}

HAIDIFFICULTY GetAIDifficulty(HPLAYER num)
{
	return _GetAIDifficulty(num);
}

procedure RemoveGuardPosition(HUNIT hUnit)
{
	_RemoveGuardPosition(hUnit);
}

procedure RecycleGuardPosition(HUNIT hUnit)
{
	_RecycleGuardPosition(hUnit);
}

procedure RemoveAllGuardPositions(HPLAYER num)
{
	_RemoveAllGuardPositions(num);
}

procedure Cheat(String cheatStr)
{
	_Cheat(GetJassString(PChar(cheatStr)));
}

Boolean IsNoVictoryCheat()
{
	return _IsNoVictoryCheat();
}

Boolean IsNoDefeatCheat()
{
	return _IsNoDefeatCheat();
}

procedure Preload(String filename)
{
	_Preload(GetJassString(PChar(filename)));
}

procedure PreloadEnd(Single timeout)
{
	_PreloadEnd(&timeout);
}

procedure PreloadStart()
{
	_PreloadStart();
}

procedure PreloadRefresh()
{
	_PreloadRefresh();
}

procedure PreloadEndEx()
{
	_PreloadEndEx();
}

procedure PreloadGenClear()
{
	_PreloadGenClear();
}

procedure PreloadGenStart()
{
	_PreloadGenStart();
}

procedure PreloadGenEnd(String filename)
{
	_PreloadGenEnd(GetJassString(PChar(filename)));
}

procedure Preloader(String filename)
{
	_Preloader((PJassString)GetJassString(PChar(filename)));
}

procedure SetAmbientDaySound(String filename)
{
	_SetAmbientDaySound((PJassString)GetJassString(PChar(filename)));
}

procedure SetAmbientNightSound(String filename)
{
	_SetAmbientNightSound((PJassString)GetJassString(PChar(filename)));
}


// AI

/*Integer GetAiPlayer()
{
	return _GetAiPlayer();
}*/

// SleepJass

procedure SleepJass(Single seconds)
{
	return _Sleep(seconds);
}

Integer CountUnitsInGroup(HGROUP group)
{
	return _CountUnitsInGroup(group);
}

HGROUP GetUnitsInRectAll(HREGION region)
{
	return _GetUnitsInRectAll(region);
}


Boolean IssueTargetItemOrder(HUNIT whichUnit, String order, HWIDGET targetWidget)
{
	return _IssueTargetItemOrder(whichUnit,order,targetWidget);
}



int fGetAddressShowUnitToMap(HUNIT u)
{
	if (u == NULL || u == 0xcccccccc) return 0;
	int vAddress;
	int vFunc_6F474460;
	int vVar1,vVar2;
	int vVar3;
	int vVar4;
	int vVar5;
	vFunc_6F474460 = 0x6F474460;
	vAddress = 0;
	__asm
	{
		mov			vVar3,esp
		mov			ecx, dword ptr ds:[6FAB65F4h]
		mov			vVar4,ecx
		lea         esi,[ecx+1Ch]
		mov         eax,dword ptr [esi]
		mov         ecx,eax
		mov         ecx,dword ptr [ecx+19Ch]
		mov			eax,u
		lea         eax,[eax+eax*2] 
		mov         eax,dword ptr [ecx+eax*4-0BFFFFCh]
		mov			vVar5,eax
		mov			ecx,eax
		lea         eax,[ecx+164h]
		mov			ecx,eax

		push		esp
		push		esp
		push		esp
		push		esp
		push		esp
		push		esp
		push		esp
		push		esp
		mov			ebx,0
		mov			esi,vVar4
		mov			edi,vVar5
		call        vFunc_6F474460
		pop			vVar1
		pop			vVar2
		mov			eax,0Ch
		sub			esp,eax

		cmp			vVar1,0
		je			m2

			mov			esi, dword ptr ds:[6FAB65F4h]

m6F3A3974:  mov         ecx,vVar2 
m6F3A3978:  mov         eax,vVar1  
m6F3A397C:  sar         ecx,2  
m6F3A3980:  sar         eax,2   
m6F3A3984:  mov         dword ptr [esp+1Ch],ecx
			mov         vVar1,eax
			mov         vVar2,ecx
m6F3A3988:  mov         ecx,dword ptr [esi+34h]  

m6F00E830:  mov         edx,ecx  
m6F00E832:  mov         eax,dword ptr [edx+60h]  
m6F00E835:  mov         ecx,vVar1
m6F00E839:  sub         eax,1  
m6F00E83C:  cmp         eax,ecx  
m6F00E83E:  jb          m6F00E842  
m6F00E840:  mov         eax,ecx  
m6F00E842:  xor         ecx,ecx  
m6F00E844:  test        eax,eax  
m6F00E846:  setl        cl  
m6F00E84B:  sub         ecx,1  
m6F00E84E:  and         ecx,eax  
m6F00E850:  mov         eax,dword ptr [edx+6Ch]  
m6F00E853:  mov         esi,ecx  
m6F00E855:  mov         ecx,vVar2
m6F00E859:  sub         eax,1  
m6F00E85C:  cmp         eax,ecx  
m6F00E85E:  jb          m6F00E862  
m6F00E860:  mov         eax,ecx  
m6F00E862:  mov         ecx,dword ptr [edx+68h]  
m6F00E865:  xor         ebx,ebx  
m6F00E867:  test        eax,eax  
m6F00E869:  setl        bl  
m6F00E86C:  sub         ebx,1  
m6F00E86F:  and         ebx,eax  
m6F00E871:  shl         ebx,cl  
m6F00E873:  add         ebx,esi 
m6F00E876:  mov         eax,ebx  

		mov         ecx,dword ptr [edx+2Ch]  
		movzx       ecx,word ptr [ecx+eax*2]  
		and         ecx,0FFFF0FFFh    
		mov         ecx,dword ptr [edx+30h]  
		movzx       eax,word ptr [ecx+eax*2]  
		or          eax,0F000h
		mov			vAddress,eax
m2:
		mov			esp,vVar3
	}
	return vAddress;
}

int fShowPlayer(HPLAYER p)
{
	if (p == NULL || p == 0xcccccc) return 0;
	int vAddress;
	int vFunc_6F3BD4D0;
	int vVar3;
	vFunc_6F3BD4D0 = 0x6F3BD4D0;
	vAddress = 0;
	__asm
	{
		mov			vVar3,esp
		mov         ecx,p
		call        vFunc_6F3BD4D0 
		test        eax,eax  
		je          m1  
		movzx       eax,byte ptr [eax+30h]
		mov         ecx,eax
		mov         eax,1  
		shl         eax,cl
		mov			vAddress,eax
m1:
		mov			esp,vVar3
	}
	return vAddress;
}

bool fIsUnitVisible(HUNIT u, HPLAYER p)
{
	int vShowUnit;
	int vShowPlayer;
	vShowUnit = fGetAddressShowUnitToMap(u);
	vShowPlayer = fShowPlayer(p);
	bool vResult;
	vResult = FALSE;
	__asm
	{
		mov         edx,vShowUnit
		mov         ecx,vShowPlayer  
		and         edx,ecx  
		test        dx,dx
		je			m2
		mov			vResult,TRUE
m2:
	}
	return vResult;
}