/** Functions EXPORTED to Lua by RegisterLuaAPIFunctions
FindEntityClass(entity);
SetPS2ModelMemory(number);
SetWorldExtents(number); // for CollisionManager and TreeGrid sizes...
StealArtistHeap(number*number); --for PS2
ReadDataFile(sourcefile);
ReadDataFileInGame(lua_State* aState);
SetupTempHeap(lua_State *aState);
ClearTempHeap(lua_State *aState);
AddCameraShot(x,y,y rotx, roty, rotz);
SetCameraRotation(lua_State* aState);
SetCameraPosition(lua_State* aState);
MoveCameraToEntity(lua_State* aState);
SetMapCameraOffset(lua_State* aState);
SetMapCameraPitch(lua_State* aState);
SetMapCameraZoom(lua_State* aState);
GetMapCameraZoom(lua_State* aState);
SnapMapCamera(lua_State* aState);
SetState("Shell"); --restarts the shell
SetHistorical(); --obsolete, from swbf1
SetTeamName(team, name);
SetTeamAggressiveness(team, number);
SetMinFlyHeight(number);
SetMaxFlyHeight(number);
SetMinPlayerFlyHeight(number);
SetMaxPlayerFlyHeight(number);
SetUberMode(boolean);
SetAllowBlindJetJumps(1 or 0);
SetStationaryWaitTime(lua_State* aState); --unused
SetTeamIcon(team, icon);
SetTeamAsEnemy(team, enemyteam);
SetTeamAsNeutral(team, neutralteam);
SetTeamAsFriend(team, friendteam);
SetUnitCount(team, number);
GetUnitCount(team);
SetReinforcementCount(team, number);
GetReinforcementCount(team);
AddReinforcements(team, number);
SetTeamPoints(team, number);
GetTeamPoints(team);
AddTeamPoints(team, number);
AddFlagCapturePoints(character);
AddAssaultDestroyPoints(character);
AddSpaceAssaultDestroyPoints(character, object);
GetTeamFactionId(lua_State* aState);
AddUnitClass(team, unitclass, minunits, maxunits);
//Hero
SetHeroClass(team, heroclass);
EnableSPHeroRules(boolean);
EnableSPScriptedHeroes(boolean);
SetHeroUnlockRule(lua_State* aState);
SetHeroTeamRule(lua_State* aState);
SetHeroPlayerRule(lua_State* aState);
SetHeroRespawnRule(lua_State* aState);
UnlockHeroForTeam(teamnumber);
AcceptHero(team);
ShowAllUnitsOnMinimap(lua_State* aState); --unused
ShowTeamPoints(team, boolean);
ActivateBonus(team, bonus{energy_boost,supplies,garrison,autoturrets,bacta_tanks,combat_shielding,sabotage,advanced_blasters,leader});--not sure if these are the right strings
SetBleedRate(team, rate);
GetBleedRate(team);
SetCarrierClass(lua_State* aState); --unused
SetSpawnDelay(number, number);
SetSpawnDelayTeam(number, number, team);
SetDenseEnvironment("boolean");
SetAttackerSnipeRange(number);
SetDefenderSnipeRange(number);
SetStayInTurrets(1 or 0); --found on endor
SetMaxCollisionDistance(number); --used in combination with asterioids
SetParticleLODBias(value);
SetMemoryPoolSize(memorypool, size);
SetNumBirdTypes(lua_State* aState);
SetBirdType(lua_State* aState);
SetBirdFlockMinHeight(lua_State* aState);
SetNumFishTypes(lua_State* aState);
SetFishType(lua_State* aState);
//Asterioids --require: SetMemoryPoolSize("Asteroid", count)
FillAsteroidRegion(region, class, count, x, y, z, rotx, roty, rotz); --last values guessed
FillAsteroidPath(path, number, class, count, x, y, z, rotx, roty, rotz); --last values guessed
AddDeathRegion(region);
AddLandingRegion(region);
RemoveRegion(region);
ClearWalkers();
AddWalkerType(legpairs, number);
SetAIVehicleNotifyRadius(number);
SetAIViewMultiplier(number );
AISnipeSuitabilityDist(number);
SetGroundFlyerMap(1 or 0);
EnableAIAutoBalance();
DisableAIAutoBalance();
SetAIDifficulty(number{friends}, number{enemys});
SetAIDifficulty(number{friends}, number{enemys}, difficulty{easy,medium,hard}});
AddMissionObjective(lua_State* aState);
ActivateObjective(lua_State* aState);
CompleteObjective(lua_State* aState);
AddMissionHint(hint);
SetFlagGameplayType(type{1flag,2flag,campaign});
//SpaceAssault
SpaceAssaultEnable(boolean);
SpaceAssaultAddCriticalSystem(name, point, hudx, hudy, display hudmarker(boolean));
SpaceAssaultLinkCriticalSystems(lua_State* aState);
SpaceAssaultSetupTeamNumbers(lua_State* aState);
SpaceAssaultSetupBitmaps(bitmap1, bitmap2...);
SpaceAssaultGetScoreLimit();
IsCampaign(lua_State* aState);
GetWorldFilename(); --used in multiobjectivescontainer.lua for soundsetup
//Messages
ShowMessageText(string, team);
ShowPopup(string);
ShowObjectiveTextPopup(string);
ShowTimer(timer);
ShowSelectionTextPopup(string); --used in spa2c_c for decision making but not for pc?!
BroadcastVoiceOver(VO, team);
ScriptCB_PlayerSuicide(lua_State *aState);
//Markers
MapAddRegionMarker(region, markerclass, number, number, team, color, boolean, boolean, boolean, boolean);
MapRemoveRegionMarker(region);
MapAddEntityMarker(objectname, markerclass, number, number, team, color, boolean, boolean, boolean, boolean);
MapRemoveEntityMarker(objectname);
MapAddClassMarker(class, markerclass, number, number, team, color, boolean, boolean, boolean, boolean);
MapRemoveClassMarker(class);
MapHideCommandPosts();
EnableBuildingLockOn(object, boolean);
//Timer
FindTimer(timer);
CreateTimer(timer);
DestroyTimer(timer);
StartTimer(timer);
StopTimer(timer);
SetTimerValue(timer, value);
GetTimerValue(timer);
SetTimerRate(timer, rate);
GetTimerRate(timer);
GetTimerName(lua_State *aState); --unused
SetDefeatTimer(timer, team);
SetMissionTimer(lua_State* aState); --unused
SetVictoryTimer(timer, team);
//Object
GetObjectPtr(object);
ActivateObject(object);
DeactivateObject(object);
SetObjectTeam(object, team);
GetObjectTeam(object);
IsObjectAlive(object);
GetObjectHealth(object);
GetObjectShield(object);
GetObjectLastHitWeaponClass(object);
KillObject(object);
RespawnObject(object);
//Entity
GetEntityPtr(entity);
GetEntityName(entity);
GetEntityClass(entity);
GetEntityClassName(entity);
SetEntityMatrix(entity, matrix);
GetEntityMatrix(entity);
SetProperty(object, property, value);
CreateEntity(class, node, name);
DeleteEntity(entity);
GetEntityClassPtr(entity);
SetClassProperty(class, property, value);
--flyer = vehiclespawnname
EntityFlyerTakeOff(flyer);
EntityFlyerLand(flyer);
EntityFlyerInitAsFlying(flyer);
EntityFlyerInitAsLanded(flyer);
EnterVehicle(lua_State* aState); --unused
ExitVehicle(lua_State* aState); --unused
EnableFlyerPath(path, 1 or 0);
GetPathPoint(path, nodenumber);
GetNumTeamMembersAlive(team);
CreateMatrix(lua_State* aState);
GetScreenPosition(object);
// procedural animation callbacks
PlayAnimation(animation);
PauseAnimation(animation);
RewindAnimation(animation);
SetAnimationStartPoint(animation);
PlayAnimationFromTo(animation, startframe, endframe);
//Character
GetTeamSize(team);
GetTeamMember(team, unitindex); --returns character
GetCharacterTeam(character);
SelectCharacterTeam(character, team);
IsCharacterHuman(character);
SelectCharacterClass(character, class);
GetCharacterClass(character);
BatchChangeTeams(sourceteam, destinationteam, unitnumber);
AllowAISpawn(team, boolean);
SpawnCharacter(character, nodename);
GetCharacterUnit(character);
GetCharacterVehicle(character);
GetCharacterRemote(character);
GetCharacterControllable(character);
GetCommandPostCaptureRegion(cp);
GetCommandPostBleedValue(cp);
GetCommandPostTeam(cp);
MissionVictory(team);
MissionDefeat(team);
SetMissionEndMovie(sourcefile, movieanme);
//AI Goal management functions
ClearAIGoals(team);
DeleteAIGoal(goal);
AddAIGoal(team, goal, weight);
//dynamic congraph functions
TogglePlanningGraphArcs(connection);
BlockPlanningGraphArcs(connection);
UnblockPlanningGraphArcs(connection);
//dynamic barrier functions
ToggleBarriers(barrier);
EnableBarriers(barrier);
DisableBarriers(barrier);
ForceAIOutOfVehicles(team, boolean);
AICanCaptureCP(cp, team, boolean);
SetAIDamageThreshold(object, number);
//Translate AI command ID's to strings
TranslateAICommand(lua_State* aState); --unused
// space boarding party functions
AddShieldStrength(lua_State* aState);
// set the north angle on the minimap
SetMapNorthAngle(angle, number);
SetMapNorthAngle(angle);
//for this map, forces all the non-AI players to join team 1
ForceHumansOntoTeam1();
//
CanCharacterInteractWithFlag(character);
GetFlagCarrier(flag);
//
SetMapRangeOverall(lua_State *aState);
SetMapRangeShooting(lua_State *aState);
SetMapRangeViewCone(lua_State *aState);
SetMapViewConeAngle(lua_State *aState);
DisableSmallMapMiniMap();
// effects
CreateEffect(effectfile);
RemoveEffect(effect);
AttachEffectToObject(effect, object);
AttachEffectToMatrix(effect, matrix/nodename);
GetEffectMatrix(effect);
SetEffectMatrix(lua_State* aState);
IsEffectActive(lua_State* aState);
SetEffectActive(lua_State* aState);