//================================================================================================== // Native Function Prototypes //================================================================================================== include "TriggerLibs/GameData/GameDataAllNatives.galaxy" //-------------------------------------------------------------------------------------------------- // Contents //-------------------------------------------------------------------------------------------------- // - About Types // - Common // - Achievements // - Actor // - Animation // - Bank // - Boards // - Camera // - Campaign // - Catalogs // - Cinematics // - Conversions // - Conversation // - Data Table // - Dialogs // - Environment // - Game // - Looping // - Markers // - Math // - Melee // - Minimap // - Movie // - Objectives // - Orders // - Ping // - Planet // - Players // - Player Groups // - Points // - Portraits // - Preload // - PurchaseItems // - Regions // - Sound // - Story Mode // - Strings // - Tech Tree // - Text Tags // - Timing // - Transmission // - Triggers // - Units // - Unit Filters // - Unit Groups // - Unit Reference // - Unit Selection // - User Interface // - Visibility // //-------------------------------------------------------------------------------------------------- // About Types //-------------------------------------------------------------------------------------------------- // // -- Complex types and automatic deletion -- // // Many native types represent "complex" objects (i.e. larger than 4 bytes). The script language // automatically keeps track of these objects and deletes them from memory when they are no longer // used (that is, when nothing in the script references them any longer). The types which benefit // from automatic deletion are: // // abilcmd, bank, camerainfo, marker, order, playergroup, point, // region, soundlink, string, text, timer, transmissionsource, unitfilter, unitgroup, unitref, // waveinfo, wavetarget // // Other object types must be explicitly destroyed with the appropriate native function when you // are done using them. // // // -- Complex types and equality -- // // Normally, comparing two "complex" objects with the == or != operators will only compare the // object reference, not the contained object data. However, a few types will compare the contained // data instead. These types are: // // abilcmd, point, string, unitfilter, unitref // // Examples: // // Point(1, 2) == Point(1, 2) // True // "test string" == "test string" // True (note: this is case sensitive) // AbilityCommand("move", 0) == AbilityCommand("move", 0) // True // Order(abilCmd) == Order(abilCmd) // False (two different order instances) // RegionEmpty() == RegionEmpty() // False (two different region instances) // // // -- Complex types and +/- operators -- // // Besides numerical types (byte, int, fixed), a few complex types support + and/or - operators: // // string, text + operator will concatenate the strings or text // point +/- operators will add or subtract the x and y components of the points // //-------------------------------------------------------------------------------------------------- // Common // - Constants used in multiple sections //-------------------------------------------------------------------------------------------------- // Alignment const int c_alignLeft = 0; const int c_alignTop = 0; const int c_alignRight = 1; const int c_alignBottom = 1; const int c_alignCenter = 2; // Anchor const int c_anchorTopLeft = 0; const int c_anchorTop = 1; const int c_anchorTopRight = 2; const int c_anchorLeft = 3; const int c_anchorCenter = 4; const int c_anchorRight = 5; const int c_anchorBottomLeft = 6; const int c_anchorBottom = 7; const int c_anchorBottomRight = 8; //-------------------------------------------------------------------------------------------------- // Achievements //-------------------------------------------------------------------------------------------------- native void AchievementPanelSetVisible (playergroup players, bool visible); native void AchievementsDisable (int player); //-------------------------------------------------------------------------------------------------- // Actor // - Can send actor messages through API that is temporarily similar to the animation API. // // Design Comments // - Trigger code is synchronous and actors are asynchronous. This means we can't have any // routines that return any results, since anything from the actor system is suspect. // This includes even the existence of actors themselves; an actor might only be created on // machines with good graphics cards, for instance. // - This also means collection classes are out, since we can't return a count that is guaranteed // to match. (Technically, we could still have them, but just not populate them via "query". // The value at this point is unfortunately low enough to not be worth the complexity.) // - We can return actors and scopes, but these will be opaque values that might even be NULL. // The client can do stuff with them, but won't be guaranteed to have them work. In other // words, the client always appears to get a valid object, but the user has no way of actually // knowing whether it was valid, except to look at the screen. Testing against null only // determines whether there has ever been an attempt to assign these values. // // FAQ // // Q01 Why do we not use scope names to get a hold of scopes? // A01 Scope names started as a debugging tool. We want to see if we can get by with that. // Until there's a super compelling need, we want to get by without exposing a whole new // namespace. // // Q02 Why does ::LastCreated only get set with new values if they are successfully created? // Won't this create subtle bugs where we send messages to the prior actor that was created, // b/c we are accidentally not creating a new one? // A02 Well, it might. But it's also a simply explained rule. No one will remember the // alternative, which is something like actors/scopes created by ActorCreate, and create // messages sent by the user. It also leads to simpler, less bug-prone C++ code on my end. :) // // Q03 Why does ActorCreate have 3 content params? Is that many really necessary? // A03 It is exactly enough to create a beam with a custom model and two custom sites. //-------------------------------------------------------------------------------------------------- native actorscope ActorScopeCreate (string name); native actorscope ActorScopeFrom (string name); native actorscope ActorScopeFromActor (actor a); native actorscope ActorScopeFromUnit (unit u); native actorscope ActorScopeFromPortrait (int p); native text ActorScopeGetText (actorscope as); native void ActorScopeKill (actorscope as); native void ActorScopeOrphan (actorscope as); native actor ActorScopeRefGet (actorscope as, string refName); native void ActorScopeRefSet (actorscope as, string refName, actor aValue); native void ActorScopeSend (actorscope as, string msg); native actor ActorCreate (actorscope as, string actorName, string content1Name, string content2Name, string content3Name); native actor ActorFrom (string name); native actor ActorFromActor (actor a, string name); native actor ActorFromScope (actorscope as, string name); native actor ActorFromDoodad (doodad d); native actor ActorFromPortrait (int p); native text ActorGetText (actor a); native actor ActorRefGet (actor a, string refName); native void ActorRefSet (actor a, string refName, actor aValue); native void ActorSend (actor a, string msg); native void ActorSendTo (actor a, string refName, string msg); native void ActorLookAtStart (actor s, string lookAt, int weight, fixed time, actor t); native void ActorLookAtStop (actor s, string lookAt, int weight, fixed time); native void ActorLookAtTypeStart (actor s, string type, actor t); native void ActorLookAtTypeStop (actor s, string type); native void ActorTextureGroupApplyGlobal (string textureProps); native void ActorTextureGroupRemoveGlobal (string textureProps); native void ActorWorldParticleFXDestroy (); native actor ActorRegionCreate (actorscope as, string actorName, region r); native void ActorRegionSend (actor a, int intersect, string msg, string filters, string terms); const int c_actorIntersectAgainstCenter = 0; const int c_actorIntersectAgainstRadiusContact = 1; const int c_actorIntersectAgainstRadiusGame = 2; const int c_actorIntersectAgainstRadiusVisual = 3; const int c_animTimeVariantAsAutomatic = 0; const int c_animTimeVariantAsDuration = 1; const int c_animTimeVariantAsTimeScale = 2; const int c_animTransitionFlagInstant = (1 << 0); const int c_animBracketStartFlagClosingFull = (1 << 0); const int c_animBracketStartFlagContentNonLooping = (1 << 1); const int c_animBracketStartFlagContentPlayOnce = (1 << 2); const int c_animBracketStartFlagOpeningPlayForever = (1 << 3); const int c_animBracketStartFlagInstant = (1 << 4); const int c_animGroupApplyFlagClosingFull = (1 << 0); const int c_animGroupApplyFlagInstant = (1 << 1); const int c_animFlagFullMatch = (1 << 0); const int c_animFlagPlayForever = (1 << 1); const int c_animFlagNonLooping = (1 << 2); const int c_animFlagAssetDrivenLooping = (1 << 3); const int c_animFlagRandomStartOffset = (1 << 4); // Currently unused. const int e_actorRefFlagGroup = (1 << 1); const int c_actorRefSpaceGlobal = 1; const int c_actorRefSpaceScope = 2; const int c_actorRefSpaceActor = 3; const int c_actorRequestScopeImplicit = 0; const int c_actorRequestScopeCaster = 1; const int c_actorRequestScopeEffect = 2; const int c_actorRequestScopeMissile = 3; const int c_actorRequestScopeOuter = 4; const int c_actorRequestScopeSource = 5; const int c_actorRequestScopeTarget = 6; const int c_actorRequestActorImplicit = 0; const int c_actorRequestActorCreate = 1; const int c_actorRequestActorFind = 2; const int c_textureVideoPlayFlagLooping = (1 << 0); const int c_textureVideoPlayFlagSynced = (1 << 1); const int c_physicsDisabled = 0; const int e_physicsKeyframed = 1; const int e_physicsSimulated = 2; const int c_actorTransitionIn = 0; const int c_actorTransitionOut = 1; const int c_textureSlotComponentDefault = 0; const int c_textureSlotComponentDiffuse = 1; const int c_textureSlotComponentEmissive = 2; const int c_textureSlotComponentNormal = 3; const int c_textureSlotComponentSpecular = 4; native string MakeMsgAnimBracketResume ( string animName, int animTransitionFlags, fixed timeVariant, int timeType ); native string MakeMsgAnimBracketStart ( string animName, string propsOpening, string propsContent, string propsClosing, int animBracketStartFlags, fixed timeVariant, int timeType ); native string MakeMsgAnimBracketStop ( string animName, int animTransitionFlags, fixed timeVariant, int timeType ); native string MakeMsgAnimGroupApply ( string animGroup, string atApply, string atRemove, int animGroupApplyFlags, fixed timeVariant, int timeType ); native string MakeMsgAnimGroupRemove ( string animGroup, int animTransitionFlags, fixed timeVariant, int timeType ); native string MakeMsgAnimPlay ( string animName, string animProps, int animFlags, fixed blendIn, fixed blendOut, fixed timeVariant, int timeType ); native string MakeMsgRefCreate (string refName); native string MakeMsgRefSetFromRequest ( string refName, string subject, string effectName, int requestScope, int requestActor ); native string MakeMsgRefTableDump (int space); native string MakeMsgSetPhysicsState (int physicsState, fixed delayLow, fixed delayHigh); native string MakeMsgTextureSelectByMatch ( string slotName, int slotComponent, string sourceSlotName, int sourceSlotComponent ); native string MakeMsgTextureSelectBySlot ( string slotName, int slotComponent, string textureExpression ); native string MakeMsgTextureVideoPlay ( string slotName, int slotComponent, int fps, int textureVideoPlayFlags, int videoSoundType, string attachQuery ); native string MakeMsgTextureVideoStop (string slotName, int slotComponent); native string MakeMsgTextureVideoSetFrame (string slotName, int slotComponent, int frame); native string MakeMsgTextureVideoSetPaused (string slotName, int slotComponent, bool isPaused); native string MakeMsgTextureVideoSetTime (string slotName, int slotComponent, fixed time); native string MakeMsgTransition (int transitionType, fixed durationBase, fixed durationRange); native string TextureGetSlotName (string textureLink); native int TextureGetSlotComponent (string textureLink); native doodad DoodadFromId (int id); //-------------------------------------------------------------------------------------------------- // Animation //-------------------------------------------------------------------------------------------------- const fixed c_animTimeDefault = -1; const string c_animNameDefault = "Default"; native void ModelAnimationLoad (string modelPath, string animPath); native void ModelAnimationUnload (string modelPath, string animPath); //-------------------------------------------------------------------------------------------------- // Bank //-------------------------------------------------------------------------------------------------- const int c_bankTypeFixed = 0; const int c_bankTypeFlag = 1; const int c_bankTypeInt = 2; const int c_bankTypeString = 3; const int c_bankTypeUnit = 4; const int c_bankTypePoint = 5; const int c_bankTypeText = 6; native bool BankExists (string name, int player); native bank BankLastCreated (); native bank BankLoad (string name, int player); native string BankName (bank b); native int BankPlayer (bank b); native void BankRemove (bank b); native void BankSave (bank b); native int BankSectionCount (bank b); native bool BankSectionExists (bank b, string section); native string BankSectionName (bank b, int index); native void BankSectionRemove (bank b, string section); native int BankKeyCount (bank b, string section); native bool BankKeyExists (bank b, string section, string key); native string BankKeyName (bank b, string section, int index); native void BankKeyRemove (bank b, string section, string key); native bool BankValueIsType (bank b, string section, string key, int type); native fixed BankValueGetAsFixed (bank b, string section, string key); native void BankValueSetFromFixed (bank b, string section, string key, fixed value); native bool BankValueGetAsFlag (bank b, string section, string key); native void BankValueSetFromFlag (bank b, string section, string key, bool value); native int BankValueGetAsInt (bank b, string section, string key); native void BankValueSetFromInt (bank b, string section, string key, int value); native point BankValueGetAsPoint (bank b, string section, string key); native void BankValueSetFromPoint (bank b, string section, string key, point value); native string BankValueGetAsString (bank b, string section, string key); native void BankValueSetFromString (bank b, string section, string key, string value); native text BankValueGetAsText (bank b, string section, string key); native void BankValueSetFromText (bank b, string section, string key, text value); native unit BankLastRestoredUnit (); native unit BankValueGetAsUnit (bank b, string section, string key, int player, point p, fixed facing); native void BankValueSetFromUnit (bank b, string section, string key, unit value); //-------------------------------------------------------------------------------------------------- // Battle Report //-------------------------------------------------------------------------------------------------- const int c_invalidBattleReportId = 0; const int c_battleReportStateNormal = 0; const int c_battleReportStateCompleted = 1; const int c_battleReportStateHidden = 2; const int c_battleReportTypeMission = 0; const int c_battleReportTypeScene = 1; native void BattleReportPanelSetSelectedBattleReport (playergroup players, int inBattleReport); native int BattleReportPanelGetSelectedBattleReport (int inPlayer); native int BattleReportCreate (playergroup inPlayerGroup, text inText, int inType, int inState); native int BattleReportLastCreated (); native void BattleReportDestroy (int inBattleReportId); native void BattleReportSetState (int inBattleReportId, int inState); native void BattleReportSetPriority (int inBattleReportId, int inPriority); native void BattleReportSetButtonText (int inBattleReportId, text inText); native void BattleReportSetButtonImage (int inBattleReportId, string inImage); native void BattleReportSetMissionText (int inBattleReportId, text inText); native void BattleReportSetResearchTitle (int inBattleReportId, text inText); native void BattleReportSetResearchText (int inBattleReportId, text inText); native void BattleReportSetBonusTitle (int inBattleReportId, text inText); native void BattleReportSetBonusText (int inBattleReportId, text inText); native void BattleReportSetWorldText (int inBattleReportId, text inText); native void BattleReportSetObjectiveTitle (int inBattleReportId, text inText); native void BattleReportSetObjectiveText (int inBattleReportId, text inText); native void BattleReportSetAchievementTitle (int inBattleReportId, text inText); native void BattleReportSetBestTimeText (int inBattleReportId, text inText); native void BattleReportSetMissionImage (int inBattleReportId, string inImage); native void BattleReportSetDifficultyLevelCompleted (int inBattleReportId, int inDifficultyLevel, bool inCompleted); native void BattleReportSetDifficultyLevelBestTimeText (int inBattleReportId, int inDifficultyLevel, text inText); native void BattleReportAddAchievement (int inBattleReportId, string inAchievement); native void BattleReportSetSceneText (int inBattleReportId, text inText); native void BattleReportSetSceneImage (int inBattleReportId, string inImage); // Battle Report events native void TriggerAddEventBattleReportPanelExit (trigger t, int inPlayer); native void TriggerAddEventBattleReportPanelPlayMission (trigger t, int inPlayer); native void TriggerAddEventBattleReportPanelPlayScene (trigger t, int inPlayer); native void TriggerAddEventBattleReportPanelSelectionChanged (trigger t, int inPlayer); native int EventBattleReportPanelMissionSelected (); native int EventBattleReportPanelDifficultySelected (); native int EventBattleReportPanelSceneSelected (); //-------------------------------------------------------------------------------------------------- // Boards //-------------------------------------------------------------------------------------------------- const int c_boardNone = 0; native int BoardCreate (int inCols, int inRows, text inName, color inColor); native int BoardLastCreated (); native void BoardDestroy (int inBoard); native void BoardShowAll (bool inShow, playergroup inPlayers); // Board title const int c_boardColorText = 0; const int c_boardColorBackground = 1; const int c_boardIconPosLeft = 0; const int c_boardIconPosRight = 1; native void BoardTitleShow (int inBoard, playergroup inPlayers, bool inShow); native void BoardTitleSetText (int inBoard, text inText); native void BoardTitleSetColor (int inBoard, int inType, color inColor); native void BoardTitleSetIcon (int inBoard, string inIcon); native void BoardTitleSetAlignment (int inBoard, int inAlign, int inIconPos); native void BoardTitleSetClickable (int inBoard, bool inClickable); // Board properties native void BoardSetName (int inBoard, text inName, color inColor); const int c_boardStateShowing = 0; const int c_boardStateShowTitle = 1; const int c_boardStateShowMinimize = 2; const int c_boardStateMinimized = 3; const int c_boardStateShowHeader = 4; const int c_boardStateSorted = 5; native void BoardSetState (int inBoard, playergroup inPlayers, int inState, bool inVal); // Board minimize button native void BoardMinimizeShow (int inBoard, playergroup inPlayers, bool inShow); native void BoardMinimizeEnable (int inBoard, playergroup inPlayers, bool inEnable); native void BoardMinimizeSetState (int inBoard, playergroup inPlayers, bool inVal); native void BoardMinimizeSetColor (int inBoard, color inColor); // Board columns and rows native void BoardSetColumnCount (int inBoard, int inCols); native void BoardSetRowCount (int inBoard, int inRows); const fixed c_boardWidthAuto = 0; // Automatically size the column to fit all items native void BoardSetColumnWidth (int inBoard, int inCol, fixed inWidth); // Board row groups native void BoardSetGroupCount (int inBoard, int inGroups); native void BoardRowSetGroup (int inBoard, int inRow, int inGroup); // Board items const int c_boardColGroups = -3; // Use as column value to treat row value as group instead const int c_boardItemAll = -2; // Use as row or column value to modify all items const int c_boardRowHeader = -1; // Use as row value to access header items native void BoardItemSetText (int inBoard, int inCol, int inRow, text inText); native void BoardItemSetTextColor (int inBoard, int inCol, int inRow, color inColor); native void BoardItemSetBackgroundColor (int inBoard, int inCol, int inRow, color inColor); native void BoardItemSetIcon (int inBoard, int inCol, int inRow, string inIcon, bool inLeft); native void BoardItemSetAlignment (int inBoard, int inCol, int inRow, int inAlign); native void BoardItemSetFontSize (int inBoard, int inCol, int inRow, int inSize); native void BoardItemSetSortValue (int inBoard, int inCol, int inRow, int inVal); native void BoardItemSetProgressShow (int inBoard, int inCol, int inRow, bool inShow); native void BoardItemSetProgressRange (int inBoard, int inCol, int inRow, fixed inMin, fixed inMax); native void BoardItemSetProgressValue (int inBoard, int inCol, int inRow, fixed inVal); native void BoardItemSetProgressColor (int inBoard, int inCol, int inRow, color inColor, int inStep); // Board sorting // Note: inPriority defines multi-column sorting behavior. If two items are identical, the next // sort priority is used (lowest priority value comes first). inPriority should range // from 1 to the number of columns. // native void BoardSort (int inBoard, int inCol, bool inAscending, int inPriority); // Automatic player column // Note: Once a player column has been added, the "row" values passed in to the functions above // should be the player id instead. // native void BoardSetPlayerColumn (int inBoard, int inCol, bool inGroupByTeams); native void BoardPlayerAdd (int inBoard, int inPlayer); native void BoardPlayerRemove (int inBoard, int inPlayer); //-------------------------------------------------------------------------------------------------- // Camera //-------------------------------------------------------------------------------------------------- const int c_cameraValueFieldOfView = 0; const int c_cameraValueNearClip = 1; const int c_cameraValueFarClip = 2; const int c_cameraValueShadowClip = 3; const int c_cameraValueDistance = 4; const int c_cameraValuePitch = 5; const int c_cameraValueYaw = 6; const int c_cameraValueRoll = 7; const int c_cameraValueHeightOffset = 8; const int c_cameraValueDepthOfField = 9; const int c_cameraValueFocalDepth = 10; const int c_cameraValueFalloffStart = 11; const int c_cameraValueFalloffEnd = 12; const int c_cameraPositionEye = 0; const int c_cameraPositionTarget = 1; const int c_cameraPositionBoth = 2; const int c_cameraDirectionX = 0; const int c_cameraDirectionY = 1; const int c_cameraDirectionZ = 2; const int c_cameraDirectionXY = 3; const int c_cameraDirectionXZ = 4; const int c_cameraDirectionYZ = 5; const int c_cameraDirectionXYZ = 6; const int c_cameraRotationPitch = 0; const int c_cameraRotationRoll = 1; const int c_cameraRotationYaw = 2; // Camera Info native camerainfo CameraInfoDefault (); native camerainfo CameraInfoFromId (int id); native void CameraInfoSetValue (camerainfo c, int type, fixed value); native fixed CameraInfoGetValue (camerainfo c, int type); native void CameraInfoSetTarget (camerainfo c, point p); native point CameraInfoGetTarget (camerainfo c); // Player Camera native void CameraApplyInfo (int player, camerainfo c, fixed duration, fixed velocity, fixed decelerate, bool useTarget); native void CameraPan (int player, point p, fixed duration, fixed velocity, fixed decelerate, bool smart); native void CameraSetValue (int player, int type, fixed value, fixed duration, fixed velocity, fixed decelerate); native void CameraUseModel (int player, unit u, string name, fixed duration); native void CameraForceMouseRelative (int player, bool value); native void CameraLockInput (int player, bool lock); native void CameraSetMouseRotates (int player, bool value); native void CameraSetMouseRotationSpeed (int player, int direction, fixed value); native void CameraSetVerticalFieldOfView (int player, bool value); native void CameraUseHeightDisplacement (int player, bool value); native void CameraUseHeightSmoothing (int player, bool value); native void CameraSetChannel (int player, unit cameraUnit, string cameraName, int channel, fixed aspectRatio); native void CameraClearChannel (int player, int channel); native void CameraSetChannelOnPortrait (int player, camerainfo c, fixed aspectRatio, int portraitId, int channel); native void CameraClearChannelOnPortrait (int player, int portraitId, int channel); native void CameraShakeStart ( int player, int position, // c_cameraPosition* int direction, // c_cameraDirection* fixed amplitude, fixed frequency, fixed randomPercent, fixed duration ); native void CameraShakeStop (int player); // - CameraSave saves the current camera settings for the given player, // which can later be restored using CameraRestore. // native void CameraSave (int player); native void CameraRestore (int player, fixed duration, fixed velocity, fixed decelerate); // - CameraGetTarget returns the synchronized target for the given player // native point CameraGetTarget (int player); native fixed CameraGetPitch (int player); native fixed CameraGetYaw (int player); // Camera Bounds, optionally adjusting the minimap as well // Camera bounds can never extend beyond the playable map area // native void CameraSetBounds (playergroup players, region bounds, bool includeMinimap); // Force the camera to start/stop following a group of units // native void CameraFollowUnitGroup (int player, unitgroup group, bool follow, bool isOffset); native void CameraLookAt (int player, point p, fixed duration, fixed velocity, fixed decelerate); // Make the camera look at an actor or unit, updating as it moves. Use null to stop looking. // native void CameraLookAtActor (int player, actor a); native void CameraLookAtUnit (int player, unit u); // Camera movement events const int c_cameraMoveReasonAny = -1; const int c_cameraMoveReasonAlert = 0; const int c_cameraMoveReasonKeyScroll = 1; const int c_cameraMoveReasonMinimap = 2; const int c_cameraMoveReasonMouseScroll = 3; const int c_cameraMoveReasonSelection = 4; const int c_cameraMoveReasonTown = 5; const int c_cameraMoveReasonView = 6; native void TriggerAddEventCameraMove (trigger t, int player, int reason); native int EventCameraMoveReason (); //-------------------------------------------------------------------------------------------------- // Campaign // // Game initialization and configuration associated with standard campaign games //-------------------------------------------------------------------------------------------------- native void CampaignInitAI (); native void CampaignProgressSetText (playergroup players, string campaignId, text inText); // Blizzard maps only native void CampaignProgressSetImageFilePath (playergroup players, string campaignId, string inFilePath); // Blizzard maps only native void CampaignProgressSetTutorialFinished (playergroup players, string campaignId, bool inFinished); // Blizzard maps only native void CampaignProgressSetCampaignFinished (playergroup players, string campaignId, bool inFinished); // Blizzard maps only //-------------------------------------------------------------------------------------------------- // Catalogs // // Note: The catalog entry table includes references to entries from other fields, // even if that entry is not actually defined. This means it is possible that // enumerating entries via CatalogEntryCount and CatalogEntryGet may return entries // that don't actually exist. Use CatalogEntryIsValid to check for this case. // //-------------------------------------------------------------------------------------------------- native int AbilityClass (string ability); native int CatalogEntryCount (int catalog); native string CatalogEntryGet (int catalog, int index); native bool CatalogEntryIsValid (int catalog, string entry); native int CatalogEntryClass (int catalog, string entry); native string CatalogEntryParent (int catalog, string entry); native string CatalogEntryScope (int catalog, string entry); native int CatalogFieldCount (string scope); native string CatalogFieldGet (string scope, int index); native bool CatalogFieldIsArray (string scope, string field); native bool CatalogFieldIsScope (string scope, string field); native string CatalogFieldType (string scope, string field); native int CatalogFieldValueCount (int catalog, string entry, string fieldPath, int player); native string CatalogFieldValueGet (int catalog, string entry, string fieldPath, int player); native bool CatalogFieldValueSet (int catalog, string entry, string fieldPath, int player, string value); //-------------------------------------------------------------------------------------------------- // CharacterSheet //-------------------------------------------------------------------------------------------------- native void CharacterSheetPanelSetNameText (playergroup players, text inText); native void CharacterSheetPanelSetDescriptionText (playergroup players, text inText); native void CharacterSheetPanelSetPortraitModelLink (playergroup players, string inModelLink); //-------------------------------------------------------------------------------------------------- // Cinematics //-------------------------------------------------------------------------------------------------- native void CinematicMode (playergroup players, bool cinematicMode, fixed duration); const int c_fadeStyleNormal = 0; const int c_fadeStyleExponential = 1; const int c_fadeStyleSine = 2; const int c_fadeStyleSquareRoot = 3; native void CinematicFade ( bool fadeIn, fixed duration, int style, color inColor, fixed transparency, bool waitUntilDone ); native void CinematicOverlay ( bool fadeIn, fixed duration, string imagePath, fixed transparency, bool waitUntilDone ); native void CinematicDataRun (int id, playergroup players, bool waitUntilDone); native void CinematicDataStop (); //-------------------------------------------------------------------------------------------------- // Conversions //-------------------------------------------------------------------------------------------------- native int BoolToInt (bool f); native int Color255FromFixed (fixed f); native fixed IntToFixed (int x); native string IntToString (int x); native text IntToText (int x); const int c_fixedPrecisionAny = -1; native int FixedToInt (fixed x); native string FixedToString (fixed x, int precision); native text FixedToText (fixed x, int precision); native int StringToInt (string x); native fixed StringToFixed (string x); // Color // Note: Component values are in percent (0-100) // const int c_colorComponentRed = 0; const int c_colorComponentGreen = 1; const int c_colorComponentBlue = 2; const int c_colorComponentAlpha = 3; native color Color (fixed r, fixed g, fixed b); native color ColorWithAlpha (fixed r, fixed g, fixed b, fixed a); native color ColorFromIndex (int inIndex, int inType); native fixed ColorGetComponent (color c, int component); native text FormatNumber (int number); native text FormatDuration (int seconds); //-------------------------------------------------------------------------------------------------- // Conversations //-------------------------------------------------------------------------------------------------- const int c_invalidConversationId = 0; const int c_invalidReplyId = 0; const int c_conversationReplyStateUnread = 0; const int c_conversationReplyStateRead = 1; const int c_conversationReplyStateOld = 2; native int ConversationCreate (bool visible); native int ConversationLastCreated (); native void ConversationDestroy (int intId); native void ConversationDestroyAll (); native void ConversationShow (int intId, playergroup to, bool visible); native bool ConversationVisible (int intId, int player); native int ConversationReplyCreate (int intId, text inText); native int ConversationReplyLastCreated (); native void ConversationReplyDestroy (int intId, int replyId); native void ConversationReplyDestroyAll (int intId); native void ConversationReplySetText (int intId, int replyId, text inText); native text ConversationReplyGetText (int intId, int replyId); native void ConversationReplySetState (int intId, int replyId, int state); native int ConversationReplyGetState (int intId, int replyId); // Conversation events native void TriggerAddEventConversationReplySelected (trigger t, int player, int intId, int replyId); native int EventConversation (); native int EventConversationReply (); native int ConversationReplyGetIndex (int intId, int replyId); // Data-driven conversations // Note: The stateIndex parameters specify the state id and the index id (if any), separated by "|". // ConversationDataStateIndex may be used to assemble the proper string for a given numerical // index in the state definition. // native int ConversationDataStateIndexCount (string inStateId); native string ConversationDataStateIndex (string inStateId, int inIndex); native text ConversationDataStateName (string stateIndex); native text ConversationDataStateText (string stateIndex, string inInfoName); native fixed ConversationDataStateFixedValue (string stateIndex, string inInfoName); native string ConversationDataStateImagePath (string stateIndex); native int ConversationDataStateImageEdge (string stateIndex); native string ConversationDataStateAttachPoint (string stateIndex); native string ConversationDataStateMoviePath (string stateIndex); native string ConversationDataStateModel (string stateIndex, string inInfoName); native string ConversationDataStateUpgrade (string stateIndex, string inInfoName); native abilcmd ConversationDataStateAbilCmd (string stateIndex, string inInfoName); native void ConversationDataRegisterCamera (string camIndex, string charIndex, camerainfo c, trigger t, bool wait); native void ConversationDataRegisterUnit (string stateIndex, unit u); native void ConversationDataRegisterPortrait (string stateIndex, int p); native void ConversationDataStateSetValue (string stateIndex, int value); native int ConversationDataStateGetValue (string stateIndex); native int ConversationDataChoiceCount (string convId); native string ConversationDataChoiceId (string convId, int index); native void ConversationDataChoiceSetState (string convId, string choiceId, int state); native int ConversationDataChoiceGetState (string convId, string choiceId); native void ConversationDataChoiceSetPicked (string convId, string choiceId, bool picked); native bool ConversationDataChoiceGetPicked (string convId, string choiceId); native void ConversationDataChoiceSetPickedCount (string convId, string choiceId, int count); native int ConversationDataChoiceGetPickedCount (string convId, string choiceId); native int ConversationDataLineCount (string convId); native string ConversationDataLineId (string convId, int index); native void ConversationDataLineSetPickedCount (string convId, string lineId, int count); native int ConversationDataLineGetPickedCount (string convId, string lineId); // State save/load via bank // - State values are the arbitrary integer values associated with state objects. // native void ConversationDataSaveStateValues (string stateId, bank b, string section); native void ConversationDataLoadStateValues (string stateId, bank b, string section); native void ConversationDataResetStateValues (string stateId); // - Node state is the read/unread and picked state associated with lines and choices (nodes) // within a given conversation. // native void ConversationDataSaveNodeState (string convId, bank b, string section); native void ConversationDataLoadNodeState (string convId, bank b, string section); native void ConversationDataResetNodeState (string convId); // ConversationDataPreloadLines preloads sounds for all lines that are available to run given // the current state. // native void ConversationDataPreloadLines (string convId); // ConversationDataCanRun returns true if the given conversation has any lines or choices available // to run given the current state. // native bool ConversationDataCanRun (string convId, bool unpickedOnly); const int c_conversationSkipNone = 0; // Skipping not allowed const int c_conversationSkipSimple = 1; // Skipping only allowed for all lines (esc key), // not individual lines (space bar, left click) const int c_conversationSkipFull = 2; // Skipping allowed for all lines or individual lines native void ConversationDataRun (string convId, playergroup players, int skipType, bool waitUntilDone); native void ConversationDataStop (); native string ConversationDataActiveSound (); // Sound id associated with the active line native string ConversationDataActiveCamera (); // Last camera state to be applied // Data Conversation events native void TriggerAddEventConversationStateChanged (trigger t, string stateIndex); native string EventConversationState (); //-------------------------------------------------------------------------------------------------- // Data Table // - Data tables provide named storage for any script type. // Table access may be either global or thread-local. //-------------------------------------------------------------------------------------------------- // Types const int c_dataTypeUnknown = -1; const int c_dataTypeAbilCmd = 0; const int c_dataTypeActor = 1; const int c_dataTypeActorScope = 2; const int c_dataTypeAIFilter = 3; const int c_dataTypeBank = 4; const int c_dataTypeBool = 5; const int c_dataTypeByte = 6; const int c_dataTypeCameraInfo = 7; const int c_dataTypeCinematic = 8; const int c_dataTypeColor = 9; const int c_dataTypeControl = 10; const int c_dataTypeConversation = 11; const int c_dataTypeDialog = 12; const int c_dataTypeDoodad = 13; const int c_dataTypeFixed = 14; const int c_dataTypeInt = 15; const int c_dataTypeMarker = 16; const int c_dataTypeObjective = 17; const int c_dataTypeOrder = 18; const int c_dataTypePing = 19; const int c_dataTypePlanet = 20; const int c_dataTypePlayerGroup = 21; const int c_dataTypePoint = 22; const int c_dataTypePortrait = 23; const int c_dataTypeRegion = 24; const int c_dataTypeReply = 25; const int c_dataTypeRevealer = 26; const int c_dataTypeRoom = 27; const int c_dataTypeSound = 28; const int c_dataTypeSoundLink = 29; const int c_dataTypeString = 30; const int c_dataTypeText = 31; const int c_dataTypeTimer = 32; const int c_dataTypeTransmission = 33; const int c_dataTypeTransmissionSource = 34; const int c_dataTypeTrigger = 35; const int c_dataTypeUnit = 36; const int c_dataTypeUnitFilter = 37; const int c_dataTypeUnitGroup = 38; const int c_dataTypeUnitRef = 39; const int c_dataTypeWave = 40; const int c_dataTypeWaveInfo = 41; const int c_dataTypeWaveTarget = 42; // General functionality native void DataTableClear (bool global); native int DataTableValueCount (bool global); native string DataTableValueName (bool global, int index); native bool DataTableValueExists (bool global, string name); native int DataTableValueType (bool global, string name); native void DataTableValueRemove (bool global, string name); // Type-specific value set/get // - c_dataTypeAbilCmd native void DataTableSetAbilCmd (bool global, string name, abilcmd val); native abilcmd DataTableGetAbilCmd (bool global, string name); // - c_dataTypeActor native void DataTableSetActor (bool global, string name, actor val); native actor DataTableGetActor (bool global, string name); // - c_dataTypeActorScope native void DataTableSetActorScope (bool global, string name, actorscope val); native actorscope DataTableGetActorScope (bool global, string name); // - c_dataTypeAIFilter native void DataTableSetAIFilter (bool global, string name, aifilter val); native aifilter DataTableGetAIFilter (bool global, string name); // - c_dataTypeBank native void DataTableSetBank (bool global, string name, bank val); native bank DataTableGetBank (bool global, string name); // - c_dataTypeBool native void DataTableSetBool (bool global, string name, bool val); native bool DataTableGetBool (bool global, string name); // - c_dataTypeByte native void DataTableSetByte (bool global, string name, byte val); native byte DataTableGetByte (bool global, string name); // - c_dataTypeCameraInfo native void DataTableSetCameraInfo (bool global, string name, camerainfo val); native camerainfo DataTableGetCameraInfo (bool global, string name); // - c_dataTypeCinematic native void DataTableSetCinematic (bool global, string name, int val); native int DataTableGetCinematic (bool global, string name); // - c_dataTypeColor native void DataTableSetColor (bool global, string name, color val); native color DataTableGetColor (bool global, string name); // - c_dataTypeControl native void DataTableSetControl (bool global, string name, int val); native int DataTableGetControl (bool global, string name); // - c_dataTypeConversation native void DataTableSetConversation (bool global, string name, int val); native int DataTableGetConversation (bool global, string name); // - c_dataTypeDialog native void DataTableSetDialog (bool global, string name, int val); native int DataTableGetDialog (bool global, string name); // - c_dataTypeDoodad native void DataTableSetDoodad (bool global, string name, doodad val); native doodad DataTableGetDoodad (bool global, string name); // - c_dataTypeFixed native void DataTableSetFixed (bool global, string name, fixed val); native fixed DataTableGetFixed (bool global, string name); // - c_dataTypeInt native void DataTableSetInt (bool global, string name, int val); native int DataTableGetInt (bool global, string name); // - c_dataTypeMarker native void DataTableSetMarker (bool global, string name, marker val); native marker DataTableGetMarker (bool global, string name); // - c_dataTypeObjective native void DataTableSetObjective (bool global, string name, int val); native int DataTableGetObjective (bool global, string name); // - c_dataTypeOrder native void DataTableSetOrder (bool global, string name, order val); native order DataTableGetOrder (bool global, string name); // - c_dataTypePing native void DataTableSetPing (bool global, string name, int val); native int DataTableGetPing (bool global, string name); // - c_dataTypePlanet native void DataTableSetPlanet (bool global, string name, int val); native int DataTableGetPlanet (bool global, string name); // - c_dataTypePlayerGroup native void DataTableSetPlayerGroup (bool global, string name, playergroup val); native playergroup DataTableGetPlayerGroup (bool global, string name); // - c_dataTypePoint native void DataTableSetPoint (bool global, string name, point val); native point DataTableGetPoint (bool global, string name); // - c_dataTypePortrait native void DataTableSetPortrait (bool global, string name, int val); native int DataTableGetPortrait (bool global, string name); // - c_dataTypeRegion native void DataTableSetRegion (bool global, string name, region val); native region DataTableGetRegion (bool global, string name); // - c_dataTypeReply native void DataTableSetReply (bool global, string name, int val); native int DataTableGetReply (bool global, string name); // - c_dataTypeRevealer native void DataTableSetRevealer (bool global, string name, revealer val); native revealer DataTableGetRevealer (bool global, string name); // - c_dataTypeRoom native void DataTableSetRoom (bool global, string name, int val); native int DataTableGetRoom (bool global, string name); // - c_dataTypeSound native void DataTableSetSound (bool global, string name, sound val); native sound DataTableGetSound (bool global, string name); // - c_dataTypeSoundLink native void DataTableSetSoundLink (bool global, string name, soundlink val); native soundlink DataTableGetSoundLink (bool global, string name); // - c_dataTypeString native void DataTableSetString (bool global, string name, string val); native string DataTableGetString (bool global, string name); // - c_dataTypeText native void DataTableSetText (bool global, string name, text val); native text DataTableGetText (bool global, string name); // - c_dataTypeTimer native void DataTableSetTimer (bool global, string name, timer val); native timer DataTableGetTimer (bool global, string name); // - c_dataTypeTransmission native void DataTableSetTransmission (bool global, string name, int val); native int DataTableGetTransmission (bool global, string name); // - c_dataTypeTransmissionSource native void DataTableSetTransmissionSource (bool global, string name, transmissionsource val); native transmissionsource DataTableGetTransmissionSource (bool global, string name); // - c_dataTypeTrigger native void DataTableSetTrigger (bool global, string name, trigger val); native trigger DataTableGetTrigger (bool global, string name); // - c_dataTypeUnit native void DataTableSetUnit (bool global, string name, unit val); native unit DataTableGetUnit (bool global, string name); // - c_dataTypeUnitFilter native void DataTableSetUnitFilter (bool global, string name, unitfilter val); native unitfilter DataTableGetUnitFilter (bool global, string name); // - c_dataTypeUnitGroup native void DataTableSetUnitGroup (bool global, string name, unitgroup val); native unitgroup DataTableGetUnitGroup (bool global, string name); // - c_dataTypeUnitRef native void DataTableSetUnitRef (bool global, string name, unitref val); native unitref DataTableGetUnitRef (bool global, string name); // - c_dataTypeWave native void DataTableSetWave (bool global, string name, wave val); native wave DataTableGetWave (bool global, string name); // - c_dataTypeWaveInfo native void DataTableSetWaveInfo (bool global, string name, waveinfo val); native waveinfo DataTableGetWaveInfo (bool global, string name); // - c_dataTypeWaveTarget native void DataTableSetWaveTarget (bool global, string name, wavetarget val); native wavetarget DataTableGetWaveTarget (bool global, string name); //-------------------------------------------------------------------------------------------------- // Dialogs //-------------------------------------------------------------------------------------------------- const int c_invalidDialogId = 0; native int DialogCreate ( int width, int height, int anchor, int offsetX, int offsetY, bool modal ); native int DialogLastCreated (); native void DialogDestroy (int dialog); native void DialogDestroyAll (); native void DialogSetSubtitlePositionOverride (int dialog); native void DialogClearSubtitlePositionOverride (); native void DialogSetTitle (int dialog, text title); native void DialogSetSize (int dialog, int width, int height); native void DialogSetPosition (int dialog, int anchor, int offsetX, int offsetY); native void DialogSetPositionRelative (int dialog, int anchor, int relative, int relativeAnchor, int offsetX, int offsetY); native void DialogSetVisible (int dialog, playergroup players, bool isVisible); native void DialogSetTransparency (int dialog, fixed inTransparency); native void DialogSetImage (int dialog, string image); native void DialogSetImageVisible (int dialog, bool isVisible); native void DialogSetOffscreen (int dialog, bool isOffscreen); native void DialogSetFullscreen (int dialog, bool isFullscreen); native void DialogSetChannel (int dialog, int channel); native bool DialogIsModal (int dialog); native text DialogGetTitle (int dialog); native int DialogGetWidth (int dialog); native int DialogGetHeight (int dialog); native int DialogGetAnchor (int dialog); native int DialogGetRelativeDialog (int dialog); native int DialogGetRelativeAnchor (int dialog); native int DialogGetOffsetX (int dialog); native int DialogGetOffsetY (int dialog); native bool DialogIsVisible (int dialog, int player); native fixed DialogGetTransparency (int dialog); native string DialogGetImage (int dialog); native bool DialogIsImageVisible (int dialog); native bool DialogIsOffscreen (int dialog); native bool DialogIsFullscreen (int dialog); native int DialogGetChannel (int dialog); // Control types const int c_triggerControlTypeInvalid = 0; const int c_triggerControlTypeLabel = 1; const int c_triggerControlTypeImage = 2; const int c_triggerControlTypeButton = 3; const int c_triggerControlTypeCheckBox = 4; const int c_triggerControlTypeListBox = 5; const int c_triggerControlTypePulldown = 6; const int c_triggerControlTypeProgressBar = 7; const int c_triggerControlTypeSlider = 8; const int c_triggerControlTypeEditBox = 9; const int c_triggerControlTypeAchievement = 11; // Control properties const int c_triggerControlPropertyInvalid = 0; const int c_triggerControlPropertyText = 1; // text const int c_triggerControlPropertyStyle = 3; // string const int c_triggerControlPropertyImage = 4; // string const int c_triggerControlPropertyImageType = 5; // int const int c_triggerControlPropertyColor = 6; // color const int c_triggerControlPropertyChecked = 7; // bool const int c_triggerControlPropertyMinValue = 8; // fixed const int c_triggerControlPropertyMaxValue = 9; // fixed const int c_triggerControlPropertyValue = 10; // fixed const int c_triggerControlPropertyTooltip = 11; // text const int c_triggerControlPropertyVisible = 12; // bool const int c_triggerControlPropertyEnabled = 13; // bool const int c_triggerControlPropertyWidth = 14; // int const int c_triggerControlPropertyHeight = 15; // int const int c_triggerControlPropertyAnchor = 16; // int const int c_triggerControlPropertyRelative = 17; // int const int c_triggerControlPropertyRelativeAnchor = 18; // int const int c_triggerControlPropertyOffsetX = 19; // int const int c_triggerControlPropertyOffsetY = 20; // int const int c_triggerControlPropertyEditText = 21; // string const int c_triggerControlPropertyItemCount = 22; // int const int c_triggerControlPropertySelectionIndex = 23; // int const int c_triggerControlPropertyFile = 24; // string const int c_triggerControlPropertyOffscreen = 25; // bool const int c_triggerControlPropertyChannel = 26; // int const int c_triggerControlPropertyFullDialog = 27; // bool const int c_triggerControlPropertyTextWriteout = 28; // bool const int c_triggerControlPropertyTextWriteoutDuration = 29; // fixed const int c_triggerControlPropertyBlendMode = 30; // int const int c_triggerControlPropertyHoverImage = 31; // string const int c_triggerControlPropertyTiled = 32; // bool const int c_triggerControlPropertyRotation = 33; // int const int c_triggerControlPropertyAchievement = 34; // string const int c_triggerControlPropertyRenderPriority = 35; // int // Image types const int c_triggerImageTypeNone = 0; const int c_triggerImageTypeNormal = 1; const int c_triggerImageTypeBorder = 2; const int c_triggerImageTypeHorizontalBorder = 3; const int c_triggerImageTypeEndCap = 4; // Blend Modes const int c_triggerBlendModeNormal = 0; const int c_triggerBlendModeMultiply = 1; const int c_triggerBlendModeLighten = 2; const int c_triggerBlendModeDarken = 3; const int c_triggerBlendModeAdd = 4; const int c_triggerBlendModeSubtract = 5; const int c_triggerBlendModeAlpha = 6; // Item constants const int c_invalidDialogControlId = 0; const int c_dialogControlItemNone = -1; // Controls native int DialogControlCreate (int dialog, int type); native int DialogControlCreateFromTemplate (int dialog, int type, string inTemplate); native int DialogControlLastCreated (); native void DialogControlDestroy (int control); native void DialogControlDestroyAll (int dialog); native void DialogControlSetSize (int control, playergroup players, int width, int height); native void DialogControlSetPosition (int control, playergroup players, int anchor, int offsetX, int offsetY); native void DialogControlSetPositionRelative (int control, playergroup players, int anchor, int relative, int relativeAnchor, int offsetX, int offsetY); native void DialogControlSetVisible (int control, playergroup players, bool isVisible); native void DialogControlSetEnabled (int control, playergroup players, bool isEnabled); native void DialogControlSetFullDialog (int control, playergroup players, bool isFullDialog); native void DialogControlFadeTransparency (int control, playergroup players, fixed fadeTime, fixed inTargetTransparency); native int DialogControlGetType (int control); native int DialogControlGetWidth (int control, int player); native int DialogControlGetHeight (int control, int player); native int DialogControlGetAnchor (int control, int player); native int DialogControlGetRelativeControl (int control, int player); native int DialogControlGetRelativeAnchor (int control, int player); native int DialogControlGetOffsetX (int control, int player); native int DialogControlGetOffsetY (int control, int player); native bool DialogControlIsVisible (int control, int player); native bool DialogControlIsEnabled (int control, int player); native bool DialogControlIsFullDialog (int control, int player); native void DialogControlSetPropertyAsText (int control, int property, playergroup players, text value); native void DialogControlSetPropertyAsString (int control, int property, playergroup players, string value); native void DialogControlSetPropertyAsInt (int control, int property, playergroup players, int value); native void DialogControlSetPropertyAsFixed (int control, int property, playergroup players, fixed value); native void DialogControlSetPropertyAsBool (int control, int property, playergroup players, bool value); native void DialogControlSetPropertyAsColor (int control, int property, playergroup players, color value); native void DialogControlSetPropertyAsControl (int control, int property, playergroup players, int value); native text DialogControlGetPropertyAsText (int control, int property, int player); native string DialogControlGetPropertyAsString (int control, int property, int player); native int DialogControlGetPropertyAsInt (int control, int property, int player); native fixed DialogControlGetPropertyAsFixed (int control, int property, int player); native bool DialogControlGetPropertyAsBool (int control, int property, int player); native color DialogControlGetPropertyAsColor (int control, int property, int player); native int DialogControlGetPropertyAsControl (int control, int property, int player); native void DialogControlAddItem (int control, playergroup players, text value); native void DialogControlRemoveItem (int control, playergroup players, int index); native void DialogControlRemoveAllItems (int control, playergroup players); native void DialogControlSelectItem (int control, playergroup players, int index); native int DialogControlGetItemCount (int control, int player); native int DialogControlGetSelectedItem (int control, int player); native void DialogControlInvokeAsText (int control, playergroup players, string method, text param1, text param2, text param3, text param4); // Blizzard maps only native void DialogControlInvokeAsString (int control, playergroup players, string method, string param1, string param2, string param3, string param4); // Blizzard maps only // Dialog events const int c_dialogControlAny = -1; const int c_triggerControlEventTypeAny = -1; const int c_triggerControlEventTypeClick = 0; const int c_triggerControlEventTypeChecked = 1; const int c_triggerControlEventTypeValueChanged = 2; const int c_triggerControlEventTypeSelectionChanged = 3; const int c_triggerControlEventTypeSelectionDoubleClicked = 4; const int c_triggerControlEventTypeTextChanged = 5; native void TriggerAddEventDialogControl (trigger t, int player, int control, int eventType); native int EventDialogControl (); native int EventDialogControlEventType (); //-------------------------------------------------------------------------------------------------- // Environment //-------------------------------------------------------------------------------------------------- // Time Of Day native string GameTimeOfDayGet (); native void GameTimeOfDaySet (string x); native fixed GameTimeOfDayGetLength (); // Length of a day in game time seconds native void GameTimeOfDaySetLength (fixed inSecs); native void GameTimeOfDayPause (bool inPause); native bool GameTimeOfDayIsPaused (); // Creep native int CreepAdjacent (point inPos); native bool CreepIsPresent (point inPos); native void CreepModify (point inPos, fixed inRadius, bool inAdd, bool inPermanent); const int c_creepSpeedGrowth = 0; const int c_creepSpeedDecay = 1; const int c_creepSpeedBlend = 2; native void CreepSetSpeed (int inType, fixed inPercent); // Pathing // - Modifications made using PathingModify will only take effect after: // a) PathingUpdate is called // - OR - // b) The end of the game loop // // - PathingReset resets *all* trigger-based modifications // const int c_pathingNoPathing = 0; const int c_pathingNoBuilding = 1; const int c_pathingGround = 2; native void PathingModify (region inArea, int inType, bool inAdd); native void PathingUpdate (); native void PathingReset (); // Power native int PowerLevel (int inPlayer, point inPos); native bool PowerIsProvidedBy (int inPlayer, point inPos, unit inSource, int inMinLevel); // Height native int CliffLevel (point inPos); native fixed WorldHeight (int inType, point inPos); // inType uses the c_heightMap<*> values // Miscellaneous const int c_backgroundFixed = 0; // Attached to camera position (never appears to move) const int c_backgroundTerrain = 1; // Attached to terrain (moves as camera scrolls) native void GameSetLighting (string inId, fixed inBlendTime); native void GameSetToDLighting (string inId); native void SelectMainShadowLight (string inId); native void GameSetBackground (int inType, string inModel, fixed inAnimSpeed); native void GameDestroyEffects (point pos, fixed radius, int maxCount, string effectType); native void TerrainShowRegion (region inArea, bool inShow); const int c_wtcLinear = 0; const int c_wtcSine = 1; const int c_wtcExponential = 2; const int c_wtcSquareRoot = 3; // First parameter is Water Template + Water State in one string, delimited by | native void WaterSetState (string inWater, fixed inDuration, int inMorphType); // Fog native void FogSetEnabled (bool f); native void FogSetDensity (fixed d); native void FogSetColor (color c); native void FogSetFallOff (fixed f); native void FogSetStartHeight (fixed h); // General environment visibility const int c_environmentAll = 0; // All of the below const int c_environmentTerrain = 1; const int c_environmentWater = 2; const int c_environmentDoodads = 3; const int c_environmentBackgroundFixed = 4; const int c_environmentBackgroundTerrain = 5; native void EnvironmentShow (int inType, bool inShow); //-------------------------------------------------------------------------------------------------- // Game //-------------------------------------------------------------------------------------------------- native bool ConsoleCommand (string inText, bool allowDefault, bool allowMacros); native bool GameIsDebugOptionSet (string inOptionName, int player); const int c_gameSpeedSlower = 0; const int c_gameSpeedSlow = 1; const int c_gameSpeedNormal = 2; const int c_gameSpeedFast = 3; const int c_gameSpeedFaster = 4; native text GameMapName (); native text GameMapDescription (); native fixed GameGetSpeed (); native void GameSetSpeedValue (int speed); native int GameGetSpeedValue (); native void GameSetSpeedValueMinimum (int speed); native int GameGetSpeedValueMinimum (); native void GameSetSpeedLocked (bool isLocked); native bool GameIsSpeedLocked (); native string GameAttributeGameValue (string name); native string GameAttributePlayerValue (string name, int player); native void GameSetSeedLocked (bool locked); native bool GameIsSeedLocked (); native void GameSetAbsoluteTimeRemaining (fixed inTime); native fixed GameGetAbsoluteTimeRemaining (); native void GameSetAbsoluteTimeRemainingPaused (bool inPaused); native bool GameGetAbsoluteTimeRemainingPaused (); native void GamePauseAllCharges (bool inPaused); native void GamePauseAllCooldowns (bool inPaused); native void GameAddChargeRegen (string inCharge, fixed inVal); native fixed GameGetChargeRegen (string inCharge); native void GameAddChargeUsed (string inCharge, fixed inVal); native fixed GameGetChargeUsed (string inCharge); native void GameAddCooldown (string inCooldown, fixed inVal); native fixed GameGetCooldown (string inCooldown); native bool GameIsTestMap (bool inAuto); native void GameSetNextMap (string inMap); native void SetNextMissionDifficulty (playergroup inPlayerGroup, int inDifficultyLevel); native bool GameIsTransitionMap (); native void GameSetTransitionMap (string transitionMap); native string GameTerrainSet (); native void GameWaitForResourcesToComplete (); const int c_gameOverVictory = 0; const int c_gameOverDefeat = 1; const int c_gameOverTie = 2; native void GameOver (int player, int type, bool showDialog, bool showScore); native void RestartGame (playergroup inPlayerGroup); // Game Events native void TriggerAddEventMapInit (trigger t); native void TriggerAddEventSaveGame (trigger t); native void TriggerAddEventChatMessage (trigger t, int player, string inText, bool exact); native string EventChatMessage (bool matchedOnly); //-------------------------------------------------------------------------------------------------- // Looping // // Convenience functions to allow for loops without creating any local variables. // Notes: // - The loop data is stored locally to the executing thread // - Nested loops (of the same type) are not supported, and will produce a run-time error // //-------------------------------------------------------------------------------------------------- // Integer // - Start and end are inclusive // native void IntLoopBegin (int start, int end); native void IntLoopStep (); native bool IntLoopDone (); native int IntLoopCurrent (); native void IntLoopEnd (); // Player group native void PlayerGroupLoopBegin (playergroup g); native void PlayerGroupLoopStep (); native bool PlayerGroupLoopDone (); native int PlayerGroupLoopCurrent (); native void PlayerGroupLoopEnd (); // Unit group native void UnitGroupLoopBegin (unitgroup g); native void UnitGroupLoopStep (); native bool UnitGroupLoopDone (); native unit UnitGroupLoopCurrent (); native void UnitGroupLoopEnd (); //-------------------------------------------------------------------------------------------------- // Markers //-------------------------------------------------------------------------------------------------- native marker Marker (string link); native marker MarkerCastingPlayer (string link, int player); native marker MarkerCastingUnit (string link, unit u); native void MarkerSetCastingPlayer (marker m, int player); native int MarkerGetCastingPlayer (marker m); native void MarkerSetCastingUnit (marker m, unit u); native unit MarkerGetCastingUnit (marker m); native void MarkerSetMatchFlag (marker m, int flag, bool state); native bool MarkerGetMatchFlag (marker m, int flag); native void MarkerSetMismatchFlag (marker m, int flag, bool state); native bool MarkerGetMismatchFlag (marker m, int flag); //-------------------------------------------------------------------------------------------------- // Math //-------------------------------------------------------------------------------------------------- // General math native fixed SquareRoot (fixed x); native fixed Pow (fixed x, fixed power); native fixed ModF (fixed x, fixed m); native fixed MinF (fixed x1, fixed x2); native fixed MaxF (fixed x1, fixed x2); native fixed AbsF (fixed x); native int ModI (int x, int m); native int MinI (int x1, int x2); native int MaxI (int x1, int x2); native int AbsI (int x); // Trigonometry // Note: All angles are in degrees native fixed Sin (fixed degrees); native fixed Cos (fixed degrees); native fixed Tan (fixed degrees); native fixed ASin (fixed x); native fixed ACos (fixed x); native fixed ATan (fixed x); native fixed ATan2 (fixed y, fixed x); // Random // Note: Bounds are inclusive // native int RandomInt (int min, int max); native fixed RandomFixed (fixed min, fixed max); bool OneIn (int value) { return RandomInt(1, value) == 1; } //-------------------------------------------------------------------------------------------------- // Melee // // Game initialization and configuration associated with standard melee games //-------------------------------------------------------------------------------------------------- native void MeleeInitResourcesForPlayer (int player, string race); native void MeleeInitResources (); native void MeleeInitUnitsForPlayer (int player, string race, point position); native void MeleeInitUnits (); native void MeleeInitAI (); const int c_meleeOptionReveal = 0; const int c_meleeOptionDefeat = 1; const int c_meleeOptionVictory = 2; native void MeleeSetOption (int player, int option, bool value); native bool MeleeGetOption (int player, int option); native void MeleeInitOptions (); //-------------------------------------------------------------------------------------------------- // Mercenary //-------------------------------------------------------------------------------------------------- const int c_invalidMercenaryId = 0; const int c_mercenaryStateEnabled = 0; const int c_mercenaryStateDisabled = 1; const int c_mercenaryStatePurchased = 2; const int c_mercenaryStateHidden = 3; const int c_mercenaryStateNew = 4; native int MercenaryCreate (playergroup inPlayerGroup, int inState); native int MercenaryLastCreated (); native void MercenaryDestroy (int inMercenaryId); native void MercenarySetPlayerGroup (int inMercenaryId, playergroup inPlayerGroup); native void MercenarySetState (int inMercenaryId, int inState); native void MercenarySetCost (int inMercenaryId, int inCost); native void MercenarySetTitleText (int inMercenaryId, text inText); native void MercenarySetDescriptionText (int inMercenaryId, text inText); native void MercenarySetCostText (int inMercenaryId, text inText); native void MercenarySetUnitText (int inMercenaryId, text inText); native void MercenarySetAvailabilityText (int inMercenaryId, text inText); native void MercenarySetSpecialText (int inMercenaryId, text inText); native void MercenarySetTooltipText (int inMercenaryId, text inText); native void MercenarySetModelLink (int inMercenaryId, string inModelLink); native void MercenarySetScenePath (int inMercenaryId, string inFilePath); native void MercenarySetImageFilePath (int inMercenaryId, string inFilePath); native void MercenarySetRecentlyPurchased (int inMercenaryId, bool inRecent); native void MercenaryPurchase (int inMercenaryId); native bool MercenaryIsRecentlyPurchased (int inMercenaryId); native void MercenarySetSelected (playergroup inPlayerGroup, int inMercenaryId); native int MercenaryGetSelected (int player); // Mercenary events native void TriggerAddEventMercenaryPanelExit (trigger t, int player); native void TriggerAddEventMercenaryPanelPurchase (trigger t, int player); native void TriggerAddEventMercenaryPanelSelectionChanged (trigger t, int player, int inMercenaryId); //-------------------------------------------------------------------------------------------------- // Minimap //-------------------------------------------------------------------------------------------------- native void MinimapPing (playergroup players, point position, fixed duration, color c); //-------------------------------------------------------------------------------------------------- // Misc //-------------------------------------------------------------------------------------------------- native void PerfTestStart (text name); native void PerfTestStop (); native void PerfTestGetFPS (); native void UnitStatsStart (text name, text unitName, text unitFood); native void UnitStatsStop (); native void EngineReset (); //-------------------------------------------------------------------------------------------------- // Movie //-------------------------------------------------------------------------------------------------- native void MoviePlayAfterGame (playergroup players, string assetLink); native void TriggerAddEventMovieStarted (trigger t, int player); native void TriggerAddEventMovieFinished (trigger t, int player); native void TriggerAddEventMovieFunction (trigger t, int player, string functionName); //-------------------------------------------------------------------------------------------------- // Objectives //-------------------------------------------------------------------------------------------------- const int c_invalidObjectiveId = 0; const int c_primaryObjectivesId = 1; const int c_secondaryObjectivesId = 2; const int c_objectiveStateUnknown = -1; const int c_objectiveStateHidden = 0; const int c_objectiveStateActive = 1; const int c_objectiveStateCompleted = 2; const int c_objectiveStateFailed = 3; native int ObjectiveCreate3 ( text inName, text inDescription, int inState, bool inVisible, bool inPrimary ); native int ObjectiveLastCreated (); native void ObjectiveDestroy (int inObjective); native void ObjectiveDestroyAll (playergroup inPlayers); native void ObjectiveShow (int inObjective, playergroup inPlayers, bool inShow); native bool ObjectiveVisible (int inObjective, int inPlayer); native void ObjectiveSetName (int inObjective, text inName); native text ObjectiveGetName (int inObjective); native void ObjectiveSetDescription (int inObjective, text inText); native text ObjectiveGetDescription (int inObjective); native void ObjectiveSetState (int inObjective, int inState); native int ObjectiveGetState (int inObjective); native void ObjectiveSetPlayerGroup (int inObjective, playergroup inPlayers); native playergroup ObjectiveGetPlayerGroup (int inObjective); native void ObjectiveSetPrimary (int inObjective, bool inPrimary); native bool ObjectiveGetPrimary (int inObjective); //-------------------------------------------------------------------------------------------------- // Orders // - Use a "null" abilcmd for "smart" orders (automatically determine ability based on target) //-------------------------------------------------------------------------------------------------- native abilcmd AbilityCommand (string inAbil, int inCmdIndex); native string AbilityCommandGetAbility (abilcmd inAbilCmd); native int AbilityCommandGetCommand (abilcmd inAbilCmd); // - Command "action" type, which can be used to determine if the command needs a target or not // const int c_cmdActionNone = 0; const int c_cmdActionInstant = 1; const int c_cmdActionTarget = 2; native int AbilityCommandGetAction (abilcmd inAbilCmd); native order Order (abilcmd inAbilCmd); native order OrderTargetingPoint (abilcmd inAbilCmd, point inPoint); native order OrderTargetingRelativePoint (abilcmd inAbilCmd, point inPoint); native order OrderTargetingUnit (abilcmd inAbilCmd, unit inUnit); native order OrderTargetingUnitGroup (abilcmd inAbilCmd, unitgroup inUnitGroup); native order OrderTargetingItem (abilcmd inAbilCmd, unit inItem); native order OrderSetAutoCast (abilcmd inAbilCmd, bool inAutoCastOn); native void OrderSetAbilityCommand (order inOrder, abilcmd inAbilCmd); native abilcmd OrderGetAbilityCommand (order inOrder); native void OrderSetPlayer (order inOrder, int inPlayer); native int OrderGetPlayer (order inOrder); const int c_orderTargetNone = 0; const int c_orderTargetPoint = 1; const int c_orderTargetUnit = 2; const int c_orderTargetItem = 3; native int OrderGetTargetType (order inOrder); native bool OrderSetTargetPlacement (order inOrder, point inPoint, unit inPlacer, string inType); native void OrderSetTargetPoint (order inOrder, point inPoint); native point OrderGetTargetPoint (order inOrder); native point OrderGetTargetPosition (order inOrder); // doesn't care what the target type is native void OrderSetTargetUnit (order inOrder, unit inUnit); native unit OrderGetTargetUnit (order inOrder); native void OrderSetTargetPassenger (order inOrder, unit inUnit); native void OrderSetTargetItem (order inOrder, unit inItem); native unit OrderGetTargetItem (order inOrder); native void OrderSetFlag (order inOrder, int inFlag, bool inValue); native bool OrderGetFlag (order inOrder, int inFlag); //-------------------------------------------------------------------------------------------------- // Ping //-------------------------------------------------------------------------------------------------- const int c_invalidPingId = 0; native int PingCreate ( playergroup players, string modelLink, point position, color intColor, fixed duration ); native int PingLastCreated (); native void PingDestroy (int p); native void PingDestroyAll (); native void PingSetPlayerGroup (int p, playergroup playerMask); native playergroup PingGetPlayerGroup (int p); native void PingSetModel (int p, string modelLink); native void PingSetPosition (int p, point position); native point PingGetPosition (int p); native void PingSetScale (int p, fixed scale); native fixed PingGetScale (int p); native void PingSetRotation (int p, fixed rotation); native fixed PingGetRotation (int p); native void PingSetColor (int p, color intColor); native color PingGetColor (int p); native void PingSetDuration (int p, fixed duration); native fixed PingGetDuration (int p); native void PingSetUnit (int p, unit u); native unit PingGetUnit (int p); native void PingSetTooltip (int p, text tooltip); native text PingGetTooltip (int p); native void PingSetVisible (int p, bool isVisible); native bool PingIsVisible (int p); //-------------------------------------------------------------------------------------------------- // Planet //-------------------------------------------------------------------------------------------------- const int c_invalidPlanetId = 0; const int c_planetStateHidden = 0; const int c_planetStateActive = 1; const int c_planetStateEmphasized = 2; const int c_planetPanelContactButtonStateDisabled = 0; const int c_planetPanelContactButtonStateBlinking = 1; const int c_planetPanelContactButtonStatePlay = 2; const int c_planetPanelContactButtonStatePause = 3; native int PlanetCreate (playergroup inPlayerGroup, int inState); native int PlanetLastCreated (); native void PlanetDestroy (int inPlanetId); native void PlanetDestroyAll (playergroup inPlayerGroup); native void PlanetSetSelected (playergroup inPlayerGroup, int inPlanetId); native int PlanetGetSelected (int player); native void PlanetClearSelected (playergroup inPlayerGroup); native void PlanetSetPlayerGroup (int inPlanetId, playergroup inPlayerGroup); native void PlanetSetState (int inPlanetId, int inState); native void PlanetSetPlanetName (int inPlanetId, text inText); native void PlanetSetDescriptionText (int inPlanetId, text inText); native void PlanetSetTooltipText (int inPlanetId, text inText); native void PlanetSetContactTooltipText (int inPlanetId, text inText); native void PlanetSetTechnologyTooltipText (int inPlanetId, text inText); native void PlanetSetMissionTitle (int inPlanetId, text inText); native void PlanetSetMissionName (int inPlanetId, text inText); native void PlanetSetPrimaryObjectiveTitle (int inPlanetId, text inText); native void PlanetSetPrimaryObjectiveText (int inPlanetId, text inText); native void PlanetSetSecondaryObjectiveTitle (int inPlanetId, text inText); native void PlanetSetSecondaryObjectiveText (int inPlanetId, text inText); native void PlanetSetRewardTitle (int inPlanetId, text inText); native void PlanetSetRewardText (int inPlanetId, text inText); native void PlanetSetResearchTitle (int inPlanetId, text inText); native void PlanetSetResearchText (int inPlanetId, text inText); native void PlanetSetBonusTitle (int inPlanetId, text inText); native void PlanetSetBonusText (int inPlanetId, text inText); native void PlanetSetPlanetText (int inPlanetId, text inText); native void PlanetSetTechnologyTitle (int inPlanetId, text inText); native void PlanetSetTechnologyName (int inPlanetId, text inText); native void PlanetSetTechnologyText (int inPlanetId, text inText); native void PlanetSetContactTitle (int inPlanetId, text inText); native void PlanetSetContactName (int inPlanetId, text inText); native void PlanetSetContactModelLink (int inPlanetId, string inContactModelLink); native void PlanetSetBackgroundModelLink (int inPlanetId, string inBackgroundModelLink); native void PlanetSetPlanetModelLink (int inPlanetId, string inPlanetModelLink); native void PlanetSetTechnologyIconFilePath (int inPlanetId, string inTechnologyIconFilePath); native void PlanetSetTechnologyUnitLink (int inPlanetId, string inUnitLink); native void PlanetPanelSetContactButtonState (playergroup players, int inState); native int PlanetPanelGetContactButtonState (int player); native void PlanetPanelSetBackButtonEnabled (playergroup players, bool inEnabled); native void PlanetPanelSetBackgroundImage (playergroup players, string inFilePath); // Planet events native void TriggerAddEventPlanetMissionLaunched (trigger t, int player); native void TriggerAddEventPlanetMissionSelected (trigger t, int player, int planetId); native void TriggerAddEventPlanetPanelCanceled (trigger t, int player); native void TriggerAddEventPlanetPanelReplayPressed (trigger t, int player); native void TriggerAddEventPlanetPanelBirthComplete (trigger t, int player); native void TriggerAddEventPlanetPanelDeathComplete (trigger t, int player); native int EventPlanetPanelMissionSelected (); native int EventPlanetPanelDifficultySelected (); //-------------------------------------------------------------------------------------------------- // Victory Panel //-------------------------------------------------------------------------------------------------- native void VictoryPanelSetMissionTitle (text inText); native void VictoryPanelSetMissionText (text inText); native void VictoryPanelSetMissionTimeTitle (text inText); native void VictoryPanelSetMissionTimeText (text inText); native void VictoryPanelSetRewardTitle (text inText); native void VictoryPanelSetRewardText (text inText); native void VictoryPanelSetRewardCredits (int inCredits); native void VictoryPanelSetAchievementsTitle (text inText); native void VictoryPanelSetStatisticsTitle (text inText); native void VictoryPanelSetCustomStatisticText (text inText); native void VictoryPanelSetCustomStatisticValue (text inText); native void VictoryPanelSetPlanetModelLink (string inModelLink); native void VictoryPanelAddCustomStatisticLine (text inText, text inValueText); native void VictoryPanelClearCustomStatisticTable (); native void VictoryPanelAddTrackedStatistic (string inStatistic); native void VictoryPanelAddAchievement (string inAchievement); native void TriggerAddEventVictoryPanelExit (trigger t, int player); native void TriggerAddEventVictoryPanelPlayMissionAgain (trigger t, int player); native int EventVictoryPanelDifficultySelected (); //-------------------------------------------------------------------------------------------------- // Help //-------------------------------------------------------------------------------------------------- const int c_helpPanelPageTips = 0; const int c_helpPanelPageTutorials = 1; native void HelpPanelAddTip (playergroup players, text titleText, text descriptionText, text alertText, string iconPath); native void HelpPanelAddHint (playergroup players, text titleText, text descriptionText, string iconPath); native void HelpPanelAddTutorial (playergroup players, text titleText, text descriptionText, string iconPath, string moviePath, bool flashing); native void HelpPanelDisplayPage (playergroup players, int inPage); native void HelpPanelEnableTechTreeButton (playergroup inPlayerGroup, bool inEnable); native void HelpPanelEnableTechGlossaryButton (playergroup inPlayerGroup, bool inEnable); native void HelpPanelShowTechTreeRace (playergroup inPlayerGroup, string inRace, bool inShow); native void TipAlertPanelClear (playergroup inPlayerGroup); //-------------------------------------------------------------------------------------------------- // Room //-------------------------------------------------------------------------------------------------- const int c_invalidRoomId = 0; native void RoomPanelSetPositionUnit (unit inUnit); native void RoomPanelAddButton (playergroup players, text buttonText, string iconPath); native int RoomPanelLastAdded (); native void RoomPanelRemoveButton (int roomId); native void RoomPanelRemoveAllButtons (playergroup players); native void RoomPanelShowRoomButton (int roomId, playergroup players, bool isVisible); native void RoomPanelSetButtonPressedIcon (int inRoomId, string inPressedIconPath); native void RoomPanelSetButtonEnabled (int inRoomId, bool inEnabled); // Room events native void TriggerAddEventRoomPanelPressedButton (trigger t, int player, int roomId); native void TriggerAddEventRoomPanelCanceled (trigger t, int player); native void TriggerAddEventRoomPanelMouseRollOver (trigger t, int player); native void TriggerAddEventRoomPanelMouseRollOut (trigger t, int player); native int EventRoomPanelButtonPressed (); //-------------------------------------------------------------------------------------------------- // Players //-------------------------------------------------------------------------------------------------- const int c_playerAny = -1; const int c_maxPlayers = 32; // Player properties const int c_playerPropMinerals = 0; const int c_playerPropVespene = 1; const int c_playerPropTerrazine = 2; const int c_playerPropCustom = 3; const int c_playerPropSuppliesUsed = 4; const int c_playerPropSuppliesMade = 5; const int c_playerPropSuppliesLimit = 6; const int c_playerPropCredits = 7; const int c_playerPropCreditsSpent = 8; const int c_playerPropResearchPoints = 9; const int c_playerPropResearchPointsSpent = 10; const int c_playerPropHandicap = 11; const int c_playerPropMineralsCollected = 12; const int c_playerPropVespeneCollected = 13; const int c_playerPropTerrazineCollected = 14; const int c_playerPropCustomCollected = 15; // Player property operations const int c_playerPropOperSetTo = 0; const int c_playerPropOperAdd = 1; const int c_playerPropOperSubtract = 2; native void PlayerModifyPropertyInt (int inPlayer, int inProp, int inOper, int inVal); native void PlayerModifyPropertyFixed (int inPlayer, int inProp, int inOper, fixed inVal); native int PlayerGetPropertyInt (int inPlayer, int inProp); native fixed PlayerGetPropertyFixed (int inPlayer, int inProp); // Player status const int c_playerStatusUnused = 0; // No player in this slot const int c_playerStatusActive = 1; // Player is actively playing const int c_playerStatusLeft = 2; // Player has left the game native int PlayerStatus (int inPlayer); native int PlayerType (int inPlayer); // Returns c_playerType<*> value native text PlayerName (int inPlayer); native string PlayerRace (int inPlayer); native int PlayerDifficulty (int inPlayer); native void PlayerSetDifficulty (int inPlayer, int inDifficulty); native point PlayerStartLocation (int inPlayer); native void PlayerSetColorIndex (int inPlayer, int inIndex, bool inChangeUnits); native int PlayerGetColorIndex (int inPlayer, bool inDefault); native text PlayerColorName (int inColor); native void PlayerSetAlliance (int inSourcePlayer, int inAllianceId, int inTargetPlayer, bool ally); native bool PlayerGetAlliance (int inSourcePlayer, int inAllianceId, int inTargetPlayer); // Player states const int c_playerStateShowScore = 0; const int c_playerStateXPGain = 1; const int c_playerStateAbortEnabled = 2; const int c_playerStateRestartEnabled = 3; const int c_playerStateContinueEnabled = 4; const int c_playerStateShowWorldTip = 5; const int c_playerStateFidgetingEnabled = 6; const int c_playerStateDisplayInLeaderPanel = 7; const int c_playerStateDisplayInViewMenu = 8; native void PlayerSetState (int inPlayer, int inState, bool inVal); native bool PlayerGetState (int inPlayer, int inState); native void PlayerBeaconClearTarget (int inPlayer, int inBeacon); native bool PlayerBeaconIsAutoCast (int inPlayer, int inBeacon); native bool PlayerBeaconIsFromUser (int inPlayer, int inBeacon); native bool PlayerBeaconIsSet (int inPlayer, int inBeacon); native point PlayerBeaconGetTargetPoint (int inPlayer, int inBeacon); native unit PlayerBeaconGetTargetUnit (int inPlayer, int inBeacon); native void PlayerBeaconSetAutoCast (int inPlayer, int inBeacon, bool enable); native void PlayerBeaconSetTargetPoint (int inPlayer, int inBeacon, point inPoint, bool alert); native void PlayerBeaconSetTargetUnit (int inPlayer, int inBeacon, unit inUnit, bool alert); native void PlayerBeaconAlert (int inPlayer, int inBeacon, string inAlert, text inMessage); native void PlayerPauseAllCharges (int inPlayer, bool inPause); native void PlayerPauseAllCooldowns (int inPlayer, bool inPause); native void PlayerAddChargeRegen (int inPlayer, string inCharge, fixed inVal); native fixed PlayerGetChargeRegen (int inPlayer, string inCharge); native void PlayerAddChargeUsed (int inPlayer, string inCharge, fixed inVal); native fixed PlayerGetChargeUsed (int inPlayer, string inCharge); native void PlayerAddCooldown (int inPlayer, string inCooldown, fixed inVal); native fixed PlayerGetCooldown (int inPlayer, string inCooldown); native void PlayerCreateEffectPoint (int inPlayer, string inEffect, point inTarget); native void PlayerCreateEffectUnit (int inPlayer, string inEffect, unit inTarget); native int PlayerValidateEffectPoint (int inPlayer, string inEffect, point inTarget); native int PlayerValidateEffectUnit (int inPlayer, string inEffect, unit inTarget); // Player scores native void PlayerScoreValueEnable (int player, string value, bool enable); native fixed PlayerScoreValueGetAsFixed (int player, string value); native int PlayerScoreValueGetAsInt (int player, string value); native void PlayerScoreValueSetFromFixed (int player, string value, fixed amount); native void PlayerScoreValueSetFromInt (int player, string value, int amount); // Player events const int c_gameResultUndecided = 0; const int c_gameResultVictory = 1; const int c_gameResultDefeat = 2; const int c_gameResultTie = 3; native void TriggerAddEventPlayerAllianceChange (trigger inTrigger, int player); native void TriggerAddEventPlayerLeft (trigger inTrigger, int player, int inResult); native void TriggerAddEventPlayerPropChange (trigger inTrigger, int player, int inProp); native void TriggerAddEventPlayerAIWave (trigger inTrigger, int player); native int EventPlayer (); native int EventPlayerProperty (); // Difficulty info native text DifficultyName (int inDifficulty); native text DifficultyNameCampaign (int inDifficulty); native bool DifficultyEnabled (int inDifficulty); native int DifficultyAPM (int inDifficulty); // AI Actions Per Minute //-------------------------------------------------------------------------------------------------- // Player Groups //-------------------------------------------------------------------------------------------------- native playergroup PlayerGroupEmpty (); native playergroup PlayerGroupCopy (playergroup inGroup); native playergroup PlayerGroupAll (); native playergroup PlayerGroupActive (); native playergroup PlayerGroupSingle (int inPlayer); const int c_playerGroupAlly = 0; // Allied players of the given player const int c_playerGroupEnemy = 1; // Enemy players of the given player const int c_playerGroupAny = 2; // Any player. native playergroup PlayerGroupAlliance (int inType, int inPlayer); native void PlayerGroupClear (playergroup inGroup); native void PlayerGroupAdd (playergroup inGroup, int inPlayer); native void PlayerGroupRemove (playergroup inGroup, int inPlayer); native int PlayerGroupCount (playergroup inGroup); native int PlayerGroupPlayer (playergroup inGroup, int inIndex); native bool PlayerGroupHasPlayer (playergroup inGroup, int inPlayer); //-------------------------------------------------------------------------------------------------- // Points //-------------------------------------------------------------------------------------------------- native point Point (fixed x, fixed y); native point PointWithOffset (point p, fixed x, fixed y); native point PointWithOffsetPolar (point p, fixed distance, fixed angle); native point PointFromId (int id); native fixed PointGetX (point p); native fixed PointGetY (point p); native void PointSet (point p1, point p2); native fixed PointGetFacing (point p); native void PointSetFacing (point p, fixed inFacing); native fixed PointGetHeight (point p); native void PointSetHeight (point p, fixed inHeight); native bool PointsInRange (point p1, point p2, fixed range); native fixed AngleBetweenPoints (point p1, point p2); native fixed DistanceBetweenPoints (point p1, point p2); native int PointPathingCost (point p1, point p2); native fixed PointPathingCliffLevel (point p); native bool PointPathingPassable (point p); native bool PointPathingIsConnected (point p1, point p2); native point PointReflect (point source, point dest, fixed angle); //-------------------------------------------------------------------------------------------------- // Portrait //-------------------------------------------------------------------------------------------------- const int c_noPortraitChannel = -1; const int c_invalidPortraitId = 0; //These need to match the ERenderType enum in CFrame.h const int c_portraitRenderTypeHDR = 0; const int c_portraitRenderTypeLDR = 1; native int PortraitCreate ( int offsetX, int offsetY, int anchor, int width, int height, string modelLink, string cameraLink, string animProps, bool visible, bool waitUntilLoaded ); native int PortraitLastCreated (); native void PortraitDestroy (int p); native void PortraitDestroyAll (); native void PortraitWaitForLoad (int p); native int PortraitGetGame (); native int PortraitGetPlanetPanel (); native void PortraitSetModel (int p, string modelLink, bool waitUntilLoaded); native void PortraitSetAnim (int p, string anim); native void PortraitSetCamera (int p, string cameraName); native void PortraitSetSize (int p, int width, int height); native void PortraitSetPosition (int p, int anchor, int offsetX, int offsetY); native void PortraitSetFullscreen (int p, bool isFullscreen); native void PortraitSetOffscreen (int p, bool isOffscreen); native void PortraitSetVisible (int p, playergroup players, bool isVisible, bool forceVisible); native void PortraitSetBorderVisible (int p, bool isBorderVisible); native void PortraitSetBorderTexture (int p, string inBorderFilePath); native void PortraitSetBackgroundVisible (int p, bool isBackgroundVisible); native void PortraitSetChannel (int p, int channel); native void PortraitSetChannelPortrait (int p, int dest, int channel); native void PortraitUseTransition (int p, bool useTransition); native void PortraitSetRenderType (int p, int renderType); native void PortraitSetMuted (int p, bool isMuted); native void PortraitForceTransition (int p, bool isVisible, bool isInstant); native void PortraitSetPaused (int p, bool isPaused); native void PortraitSetTintColor (int p, color inColor); native void PortraitSetLight (int p, string lightLink); native void PortraitSetTransitionModel (int p, string modelLink); native bool PortraitVisible (int p, int player); //-------------------------------------------------------------------------------------------------- // Preload //-------------------------------------------------------------------------------------------------- native void PreloadAsset (string key, bool queue); native void PreloadImage (string path, bool queue); native void PreloadModel (string path, bool queue); native void PreloadMovie (string path, bool queue); native void PreloadObject (int catalog, string id, bool queue); native void PreloadScene (string path, bool queue); native void PreloadScript (string path, bool queue); native void PreloadSound (string path, bool queue); //-------------------------------------------------------------------------------------------------- // Purchase //-------------------------------------------------------------------------------------------------- const int c_invalidPurchaseItemId = 0; const int c_invalidPurchaseCategoryId = 0; const int c_invalidPurchaseGroupId = 0; const int c_purchaseCategoryStateEnabled = 0; const int c_purchaseCategoryStateDisabled = 1; const int c_purchaseCategoryStateHidden = 2; const int c_purchaseCategoryStateNew = 3; const int c_purchaseGroupStateEnabled = 0; const int c_purchaseGroupStateDisabled = 1; const int c_purchaseGroupStateHidden = 2; const int c_purchaseGroupStateNew = 3; const int c_purchaseItemStateEnabled = 0; const int c_purchaseItemStateDisabled = 1; const int c_purchaseItemStatePurchased = 2; const int c_purchaseItemStateHidden = 3; //-------------------------------------------------------------------------------------------------- native int PurchaseCategoryCreate (playergroup inPlayerGroup, int inSlot); native int PurchaseCategoryLastCreated (); native void PurchaseCategoryDestroy (int inPurchaseCategoryId); native void PurchaseCategoryDestroyAll (playergroup inPlayerGroup); native void PurchaseCategorySetPlayerGroup (int inPurchaseCategoryId, playergroup inPlayerGroup); native void PurchaseCategorySetNameText (int inPurchaseCategoryId, text inText); native void PurchaseCategorySetState (int inPurchaseCategoryId, int inState); native void PurchaseCategorySetSlot (int inPurchaseCategoryId, int inSlot); native void PurchaseSetSelectedPurchaseCategory (playergroup inPlayerGroup, int inPurchaseCategoryId); native int PurchaseGetSelectedPurchaseCategory (int inPlayer); //-------------------------------------------------------------------------------------------------- native int PurchaseGroupCreate (playergroup inPlayerGroup, int inPurchaseCategoryId, int inSlot); native int PurchaseGroupLastCreated (); native void PurchaseGroupDestroy (int inPurchaseGroupId); native void PurchaseGroupDestroyAll (playergroup inPlayerGroup); native void PurchaseGroupSetPlayerGroup (int inPurchaseGroupId, playergroup inPlayerGroup); native void PurchaseGroupSetNameText (int inPurchaseGroupId, text inText); native void PurchaseGroupSetTooltipText (int inPurchaseGroupId, text inText); native void PurchaseGroupSetIconFilePath (int inPurchaseGroupId, string inFilePath); native void PurchaseGroupSetState (int inPurchaseGroupId, int inState); native void PurchaseGroupSetSlot (int inPurchaseGroupId, int inSlot); native void PurchaseGroupSetUnitLink (int inPurchaseGroupId, string inUnitLink); //-------------------------------------------------------------------------------------------------- native int PurchaseItemCreate (playergroup inPlayerGroup, int inPurchaseGroupId, int inSlot); native int PurchaseItemLastCreated (); native void PurchaseItemDestroy (int inPurchaseItemId); native void PurchaseItemDestroyAll (playergroup inPlayerGroup); native void PurchaseItemSetPlayerGroup (int inPurchaseItemId, playergroup inPlayerGroup); native void PurchaseItemSetNameText (int inPurchaseItemId, text inText); native void PurchaseItemSetTooltipText (int inPurchaseItemId, text inText); native void PurchaseItemSetDescriptionText (int inPurchaseItemId, text inText); native void PurchaseItemSetIconFilePath (int inPurchaseItemId, string inFilePath); native void PurchaseItemSetMovieFilePath (int inPurchaseItemId, string inFilePath); native void PurchaseItemSetCost (int inPurchaseItemId, int inCost); native void PurchaseItemSetState (int inPurchaseItemId, int inState); native void PurchaseItemSetRecentlyPurchased (int inPurchaseItemId, bool inRecent); native void PurchaseItemSetSlot (int inPurchaseItemId, int inSlot); native void PurchaseItemPurchase (int inPurchaseItemId); native bool PurchaseItemIsRecentlyPurchased (int inPurchaseItemId); native void PurchaseSetSelectedPurchaseItem (playergroup inPlayerGroup, int inPurchaseItemId); native int PurchaseGetSelectedPurchaseItem (int inPlayer); //-------------------------------------------------------------------------------------------------- // Purchase events native void TriggerAddEventPurchaseMade (trigger t, int player, int inPurchaseItemId); native void TriggerAddEventPurchaseExit (trigger t, int player); native void TriggerAddEventSelectedPurchaseItemChanged (trigger t, int player, int inPurchaseItemId); native void TriggerAddEventSelectedPurchaseCategoryChanged (trigger t, int player, int inPurchaseCategoryId); native int EventPurchaseMade (); //-------------------------------------------------------------------------------------------------- // Regions // // Regions are comprised of any number of basic shapes (rectangles, circles, etc). Each shape // can be specified as positive or negative. A point is considered within the region if it is // within a least one positive shape but not within any negative shapes. // // Example: // An L-shaped region could be created with either // // (a) Two positive rectangles // _ // | | <-- (+) // | | // |_|___ // |_____| <-- (+) // // (b) One positive and one negative rectangle // _____ // _|___ | // | | | | // | | | | <-- (-) // | |___|_| // |_____| <-- (+) // // The "bounds" of the region are defined as the smallest rectangle which contains all positive // shapes. The "center" is the average of the center of all positive shapes, weighted by area. // // The "offset" of the region is relative to the shape coordinates. The center and bounds take // the offset into account. // //-------------------------------------------------------------------------------------------------- native region RegionEmpty (); native region RegionEntireMap (); native region RegionPlayableMap (); native void RegionPlayableMapSet (region r); native region RegionRect (fixed minx, fixed miny, fixed maxx, fixed maxy); native region RegionCircle (point center, fixed radius); native region RegionFromId (int id); native void RegionAddRect (region r, bool positive, fixed minx, fixed miny, fixed maxx, fixed maxy); native void RegionAddCircle (region r, bool positive, point center, fixed radius); native void RegionAddRegion (region r, region regToAdd); native void RegionSetOffset (region r, point offset); native point RegionGetOffset (region r); native bool RegionContainsPoint (region r, point p); // RegionRandomPoint attempts to find a random point somewhere within the region. For regions // containing only a single positive shape, this is guaranteed to work, but for more complex // sets of shapes it may give up after a maximum number of tries and return (0, 0). // native point RegionRandomPoint (region r); native point RegionGetBoundsMin (region r); native point RegionGetBoundsMax (region r); native point RegionGetCenter (region r); // Setting the center will adjust the offset such that // the region becomes centered on the given point. // native void RegionSetCenter (region r, point p); // RegionAttachToUnit will attach the region to the given unit such that the region center // is always at the unit's position plus the given offset. Use a null unit to detach the region // from whatever unit it may already be attached to. // native void RegionAttachToUnit (region r, unit u, point offset); native unit RegionGetAttachUnit (region r); //-------------------------------------------------------------------------------------------------- // Research //-------------------------------------------------------------------------------------------------- const int c_invalidResearchCategoryId = 0; const int c_invalidResearchTierId = 0; const int c_invalidResearchItemId = 0; const int c_researchItemStateEnabled = 0; const int c_researchItemStateDisabled = 1; const int c_researchItemStatePurchased = 2; //-------------------------------------------------------------------------------------------------- native int ResearchCategoryCreate (playergroup inPlayerGroup, int inSlot); native int ResearchCategoryLastCreated (); native void ResearchCategoryDestroy (int inResearchCategoryId); native void ResearchCategoryDestroyAll (playergroup inPlayerGroup); native void ResearchCategorySetPlayerGroup (int inResearchCategoryId, playergroup inPlayerGroup); native void ResearchCategorySetSlot (int inResearchCategoryId, int inSlot); native void ResearchCategorySetNameText (int inResearchCategoryId, text inText); native void ResearchCategorySetCurrentLevel (int inResearchCategoryId, int inLevel); native void ResearchCategorySetLastLevel (int inResearchCategoryId, int inLevel); //-------------------------------------------------------------------------------------------------- native int ResearchTierCreate (playergroup inPlayerGroup, int inResearchCategoryId, int inSlot); native int ResearchTierLastCreated (); native void ResearchTierDestroy (int inResearchTierId); native void ResearchTierDestroyAll (playergroup inPlayerGroup); native void ResearchTierSetPlayerGroup (int inResearchTierId, playergroup inPlayerGroup); native void ResearchTierSetSlot (int inResearchTierId, int inSlot); native void ResearchTierSetRequiredLevel (int inResearchTierId, int inLevel); native void ResearchTierSetMaxPurchasesAllowed (int inResearchTierId, int inMax); //-------------------------------------------------------------------------------------------------- native int ResearchItemCreate (playergroup inPlayerGroup, int inResearchTierId, int inState); native int ResearchItemLastCreated (); native void ResearchItemDestroy (int inResearchItemId); native void ResearchItemDestroyAll (playergroup inPlayerGroup); native void ResearchItemSetPlayerGroup (int inResearchItemId, playergroup inPlayerGroup); native void ResearchItemSetSlot (int inResearchItemId, int inSlot); native void ResearchItemSetState (int inResearchItemId, int inState); native void ResearchItemSetNameText (int inResearchItemId, text inText); native void ResearchItemSetDescriptionText (int inResearchItemId, text inText); native void ResearchItemSetTooltipText (int inResearchItemId, text inText); native void ResearchItemSetConfirmationText (int inResearchItemId, text inText); native void ResearchItemSetIconFilePath (int inResearchItemId, string inFilePath); native void ResearchItemSetMovieFilePath (int inResearchItemId, string inFilePath); native void ResearchItemSetRecentlyPurchased (int inResearchItemId, bool inRecent); native bool ResearchItemIsRecentlyPurchased (int inResearchItemId); native void ResearchItemPurchase (int inResearchItemId); native void ResearchItemSetSelected (playergroup inPlayerGroup, int inResearchItemId); native int ResearchItemGetSelected (int inPlayer); // Research events native void TriggerAddEventResearchPanelExit (trigger t, int player); native void TriggerAddEventResearchPanelPurchase (trigger t, int player); native void TriggerAddEventResearchPanelSelectionChanged (trigger t, int player, int inResearchItemId); //-------------------------------------------------------------------------------------------------- // Sound // // - A specific sound index within the sound list may be specified. // Using c_soundIndexAny will choose a sound either sequentially or randomly, // based on the sound data. // // - Use a "null" playergroup to play the sound for all players. // // - 3d sounds are only played for players who currently have vision of the sound position. // // - Volumes are expressed as a percent (0-100) of maximum volume. //-------------------------------------------------------------------------------------------------- const int c_soundIndexAny = -1; // Sound Info native soundlink SoundLink (string soundId, int soundIndex); native string SoundLinkId (soundlink soundId); native int SoundLinkAsset (soundlink soundId); // Sound native void SoundPlay ( soundlink link, playergroup players, fixed volume, fixed offset ); native void SoundPlayAtPoint ( soundlink link, playergroup players, point inPoint, fixed height, fixed volume, fixed offset ); native void SoundPlayOnUnit ( soundlink link, playergroup players, unit inUnit, fixed height, fixed volume, fixed offset ); // - SoundPlayScene attempts to synchronize unit animations with the sound duration native void SoundPlayScene ( soundlink link, playergroup players, unitgroup units, string animProps ); native void SoundPlaySceneFile ( soundlink link, playergroup players, string sceneFile, string camera ); native sound SoundLastPlayed (); native void SoundStop (sound s, bool fade); native void SoundStopAllModelSounds (); native void SoundStopAllTriggerSounds (bool fade); native void SoundSetVolume (sound s, fixed volume); native void SoundSetPosition (sound s, point position, fixed height); const int c_soundOffsetStart = 0; const int c_soundOffsetEnd = 1; native void SoundSetOffset (sound s, fixed offset, int offsetType); native void SoundWait (sound s, fixed offset, int offsetType); native void SoundAttachUnit (sound s, unit u, fixed height); // Sound Lengths // - Note: Since sound files are localized and potentially different for each player, // a network query must be sent to all players, and all results must be // received before a synchronous result can be accessed. // // SoundLengthQuery - Initiate a network query for the given sound // // SoundLengthQueryWait - Pause the current thread until all outstanding sound length // query results have been synchronized // // SoundLengthSync - Retrieve the synchronized sound length result for the given // sound // native void SoundLengthQuery (soundlink info); native void SoundLengthQueryWait (); native fixed SoundLengthSync (soundlink info); // Sound channels native void SoundChannelSetVolume (playergroup players, int channel, fixed volume, fixed duration); native void SoundChannelMute (playergroup players, int channel, bool mute); native void SoundChannelPause (playergroup players, int channel, bool pause); native void SoundChannelStop (playergroup players, int channel); // Other properties native void SoundSetReverb (string inReverbLink, fixed inDuration, bool inAmbient, bool inGlobal); native void SoundSetFactors (fixed distance, fixed doppler, fixed rolloff); native text SoundSubtitleText (soundlink link); //-------------------------------------------------------------------------------------------------- // Soundtracks //-------------------------------------------------------------------------------------------------- const int c_soundtrackCueAny = -1; const int c_soundtrackIndexAny = -1; native void SoundtrackDefault (playergroup players, int category, string soundtrack, int cue, int index); native void SoundtrackPlay (playergroup players, int category, string soundtrack, int cue, int index, bool makeDefault); native void SoundtrackPause (playergroup players, int category, bool pause, bool fade); native void SoundtrackSetContinuous (playergroup players, int category, bool continuous); native void SoundtrackSetDelay (playergroup players, int category, fixed delay); native void SoundtrackStop (playergroup players, int category, bool fade); native void SoundtrackWait (string soundtrack); //-------------------------------------------------------------------------------------------------- // Story Mode //-------------------------------------------------------------------------------------------------- native void StoryMode (playergroup players, bool storyMode); // Blizzard maps only //-------------------------------------------------------------------------------------------------- // Strings //-------------------------------------------------------------------------------------------------- native int StringLength (string s); native string StringCase (string s, bool upper); native text TextCase (text t, bool upper); native string StringSub (string s, int start, int end); const bool c_stringCase = true; const bool c_stringNoCase = false; native bool StringEqual (string s1, string s2, bool caseSens); // StringFind returns the position of the first occurrence of s2 within s1, // or c_stringNotFound if there isn't one. // const int c_stringNotFound = -1; native int StringFind (string s1, string s2, bool caseSens); // StringContains const int c_stringBegin = 0; // True if s1 begins with s2 const int c_stringEnd = 1; // True if s1 ends with s2 const int c_stringAnywhere = 2; // True if s1 contains s2 anywhere native bool StringContains (string s1, string s2, int location, bool caseSens); // StringWord splits the string into words separated by whitespace, // and returns the word corresponding to the given index. // // Ex: StringWord("klaatu barada nikto", 2) will return "barada" // native string StringWord (string s, int index); // StringReplace replaces the indexed character range in the string with the replacement string // and returns the result. // native string StringReplace (string s, string replace, int start, int end); // StringReplaceWord replaces occurrences of the given word in the string with the replacement // string and returns the result. // const int c_stringReplaceAll = -1; // Use as maxCount for all occurrences native string StringReplaceWord (string s, string word, string replace, int maxCount, bool caseSens); native text TextReplaceWord (text t, text word, text replace, int maxCount, bool caseSens); // StringExternal looks up the given string identifer in the externalized string table native text StringExternal (string s); // StringToText converts the given string to text directly (not externalized) native text StringToText (string s); // TextWithColor applies a formatting tag to the input text for the given color native text TextWithColor (text t, color c); // TextTimeFormat converts a time value, in seconds, to text using a format string // - The time format string should use the following tokens: // // = hour count, rounded down // = hour count, rounded down, always two digits // = total hour count, rounded down // = total hour count, rounded to nearest // = total hour count, rounded up // = minute count, rounded down // = minute count, rounded down, always two digits // = total minute count, rounded down // = total minute count, rounded to nearest // = total minute count, rounded up // = second count // = second count, always two digits // = total second count // = one of "h", "m", or "s" // // Examples (these all represent the same value): // "::" -> 1:08:38 (this is the default format) // " minutes" -> 69 minutes // ":" -> 68:38 // "" -> 1h // native text TextTimeFormat (text inFormat, int inSecs); //-------------------------------------------------------------------------------------------------- // Tech Tree //-------------------------------------------------------------------------------------------------- const int c_techCountQueuedOnly = 0; const int c_techCountQueuedOrBetter = 1; // Queued + In Progress + Complete const int c_techCountInProgressOnly = 2; const int c_techCountInProgressOrBetter = 3; // In Progress + Complete const int c_techCountCompleteOnly = 4; const int c_techCountIncompleteOnly = 5; // Queued + In Progress native void TechTreeAbilityAllow (int player, abilcmd inAbilCmd, bool allow); native int TechTreeAbilityCount (int player, string abilType, int countType); native bool TechTreeAbilityIsAllowed (int player, abilcmd inAbilCmd); native void TechTreeBehaviorAllow (int player, string behaviorType, bool allow); native int TechTreeBehaviorCount (int player, string behaviorType, int countType); native bool TechTreeBehaviorIsAllowed (int player, string behaviorType); native abilcmd TechTreeBehaviorProducedAbilCmd (string behaviorType, int index); native int TechTreeBehaviorProducedAbilCmdCount (string behaviorType); native void TechTreeRequirementsEnable (int player, bool enable); native bool TechTreeRequirementsEnabled (int player); native void TechTreeRestrictionsEnable (int player, bool enable); native bool TechTreeRestrictionsEnabled (int player); native void TechTreeUnitAllow (int player, string unitType, bool allow); native int TechTreeUnitCount (int player, string unitType, int countType); native int TechTreeUnitAliasCount (int player, string unitType, int countType); native int TechTreeUnitCountEx (int player, string unitType, string equivType, int countType); native bool TechTreeUnitIsAllowed (int player, string unitType); native void TechTreeUnitHelp (int player, string unitType, bool display); native void TechTreeUnitHelpDefault (int player, bool display); native abilcmd TechTreeUnitProducedAbilCmd (string unitType, int index); native int TechTreeUnitProducedAbilCmdCount (string unitType); native string TechTreeUnitProducesUnit (string unitType, int index); native int TechTreeUnitProducesUnitCount (string unitType); native string TechTreeUnitProducesUpgrade (string unitType, int index); native int TechTreeUnitProducesUpgradeCount (string unitType); native void TechTreeUpgradeAddLevel (int player, string upgradeType, int levels); native void TechTreeUpgradeAllow (int player, string upgradeType, bool allow); native int TechTreeUpgradeCount (int player, string upgradeType, int countType); native bool TechTreeUpgradeIsAllowed (int player, string upgradeType); native abilcmd TechTreeUpgradeProducedAbilCmd (string upgradeType, int index); native int TechTreeUpgradeProducedAbilCmdCount (string upgradeType); //-------------------------------------------------------------------------------------------------- // Text Tags //-------------------------------------------------------------------------------------------------- const int c_textTagNone = 0; // Edge const int c_textTagEdgeTop = 0; const int c_textTagEdgeLeft = 1; const int c_textTagEdgeBottom = 2; const int c_textTagEdgeRight = 3; native int TextTagCreate ( text inText, int inFontSize, point inPoint, fixed inHeightOffset, bool inShow, bool useFogofWar, playergroup inPlayers ); native int TextTagLastCreated (); native void TextTagDestroy (int inTag); native void TextTagSetText (int inTag, text inText); native void TextTagSetTextShadow (int inTag, bool inVal); native void TextTagSetFontSize (int inTag, int inFontSize); native void TextTagSetPosition (int inTag, point inPoint, fixed inHeightOffset); native void TextTagAttachToUnit (int inTag, unit inUnit, fixed inHeightOffset); native void TextTagAttachToUnitPoint (int inTag, unit inUnit, string attachmentPoint, int offsetX, int offsetY); native void TextTagSetVelocity (int inTag, fixed inSpeed, fixed inAngle); native void TextTagSetAlignment (int inTag, int inHoriz, int inVert); native void TextTagSetTextAlignment (int inTag, int inHoriz, int inVert); native void TextTagSetMaxSize (int inTag, fixed inWidth, fixed inHeight); native void TextTagShowBackground (int inTag, bool inShow); native void TextTagSetBackgroundImage (int inTag, string inPath, bool inTiled); native void TextTagSetBackgroundBorderSize (int inTag, fixed inX, fixed inY); native void TextTagSetBackgroundOffset (int inTag, fixed inX, fixed inY); native void TextTagSetEdgeImage (int inTag, int inEdge, string inPath, int inXOffset, int inYOffset); native void TextTagShow (int inTag, playergroup inPlayers, bool inShow); native bool TextTagVisible (int inTag, int inPlayer); native void TextTagPause (int inTag, bool inPause); native void TextTagFogofWar (int inTag, bool inPause); const int c_textTagColorText = -1; const int c_textTagColorTextStart = 0; const int c_textTagColorTextEnd = 1; const int c_textTagColorBackground = -2; const int c_textTagColorBackgroundStart = 2; const int c_textTagColorBackgroundEnd = 3; const int c_textTagColorEdge = -3; const int c_textTagColorEdgeStart = 4; const int c_textTagColorEdgeEnd = 5; native void TextTagSetColor (int inTag, int inType, color inColor); const int c_textTagFadeAll = -1; const int c_textTagFadeText = 0; const int c_textTagFadeBackground = 1; const int c_textTagFadeEdge = 2; native void TextTagSetFadedTransparency (int inTag, int inType, fixed inTransparency); const int c_textTagTimeDuration = 0; const int c_textTagTimeFadeOut = 1; const int c_textTagTimeFadeDuration = 2; // If zero, will fade over full duration const int c_textTagTimeCurrent = 3; const fixed c_textTagTimePermanent = 0; // Use with c_textTagTimeDuration for permanent text native void TextTagSetTime (int inTag, int inType, fixed inVal); //-------------------------------------------------------------------------------------------------- // Timing // // -- Time types -- // // Timing functions can work with three different types of time: // // Game Time - Takes into account the current game speed, and will pass more slowly at slower // speeds, and vice versa. // // Real Time - Passes at the same rate regardless of game speed, and approximates time passing // in the real world for the user. However, "real" time is still synchronous, and // will therefore be affected by lag due to network or system issues. // // AI Time - Passes at the same rate as game time, but may be paused/unpaused independently // of game time via triggers. This is most commonly done to pause the AI while // an in-game cinematic sequence is run. // //-------------------------------------------------------------------------------------------------- const int c_timeGame = 0; const int c_timeReal = 1; const int c_timeAI = 2; native void Wait (fixed inSecs, int inTimeType); // AI Time native void AITimePause (bool inPause); native bool AITimeIsPaused (); // Timers const fixed c_timerDurationInfinite = -1.0; native timer TimerCreate (); native void TimerStart (timer t, fixed duration, bool periodic, int timeType); native void TimerRestart (timer t); native timer TimerLastStarted (); native void TimerPause (timer t, bool pause); native bool TimerIsPaused (timer t); native fixed TimerGetElapsed (timer t); native fixed TimerGetRemaining (timer t); native fixed TimerGetDuration (timer t); // Timer events native void TriggerAddEventTimer (trigger inTrigger, timer inTimer); native void TriggerAddEventTimeElapsed (trigger inTrigger, fixed inTime, int inTimeType); native void TriggerAddEventTimePeriodic (trigger inTrigger, fixed inTime, int inTimeType); native timer EventTimer (); // Timer windows // inShowElapsed shows elapsed vs. remaining time (defaults off) // const int c_timerWindowNone = 0; native int TimerWindowCreate (timer inTimer, text inTitle, bool inShow, bool inShowElapsed); native int TimerWindowLastCreated (); native void TimerWindowDestroy (int inWindow); native void TimerWindowShow (int inWindow, playergroup inPlayers, bool inShow); native bool TimerWindowVisible (int inWindow, int inPlayer); native void TimerWindowSetTimer (int inWindow, timer inTimer); native void TimerWindowSetTitle (int inWindow, text inTitle); // - Style const int c_timerWindowStyleHorizontalTitleTime = 0; const int c_timerWindowStyleHorizontalTimeTitle = 1; const int c_timerWindowStyleVerticalTitleTime = 2; const int c_timerWindowStyleVerticalTimeTitle = 3; native void TimerWindowSetStyle (int inWindow, int inStyle, bool inShowElapsed); native void TimerWindowSetGapWidth (int inWindow, int inWidth); // - Time Format - See the TextTimeFormat function for details on the format string native void TimerWindowSetFormat (int inWindow, text inFormat); const int c_timerWindowColorTitle = 0; const int c_timerWindowColorTime = 1; const int c_timerWindowColorBackground = 2; native void TimerWindowSetColor (int inWindow, int inType, color inColor, fixed transparency); //-------------------------------------------------------------------------------------------------- // Transmission //-------------------------------------------------------------------------------------------------- const int c_invalidTransmissionId = 0; const fixed c_transmissionTransitionDuration = 0.5; const int c_transmissionDurationDefault = 0; const int c_transmissionDurationAdd = 1; const int c_transmissionDurationSub = 2; const int c_transmissionDurationSet = 3; native transmissionsource TransmissionSource (); native transmissionsource TransmissionSourceFromUnit (unit u, bool flash, bool overridePortrait, string anim); native transmissionsource TransmissionSourceFromUnitType (string unitType, bool overridePortrait); native transmissionsource TransmissionSourceFromModel (string modelLink); native transmissionsource TransmissionSourceFromMovie (string assetLink, bool subtitles); native int TransmissionSend ( playergroup players, transmissionsource source, int targetPortrait, string targetAnim, soundlink soundLink, text speaker, text subtitle, fixed duration, int durationType, bool waitUntilDone ); native int TransmissionLastSent (); native void TransmissionClear (int t); native void TransmissionClearAll (); native void TransmissionWait (int t, fixed offset); //-------------------------------------------------------------------------------------------------- // Triggers // // Each trigger has one script function, registered in TriggerCreate, // which is expected to look like: // // bool TriggerFunc (bool testConditions, bool runActions) { // if (testConditions) { // if () { // return false; // } // } // // if (!runActions) { // return true; // } // // // return true; // } // //-------------------------------------------------------------------------------------------------- native trigger TriggerCreate (string inFunction); native void TriggerDestroy (trigger t); native void TriggerEnable (trigger t, bool enable); native bool TriggerIsEnabled (trigger t); native void TriggerResetCounts (trigger t); native int TriggerGetEvalCount (trigger t); native int TriggerGetExecCount (trigger t); native bool TriggerEvaluate (trigger t); native void TriggerExecute (trigger t, bool testConds, bool waitUntilDone); native trigger TriggerGetCurrent (); // Returns the trigger currently executing, if any native void TriggerStop (trigger t); // Kills all executing instances of the input trigger native void TriggerWaitForTrigger (trigger t, bool waitUntilDone); // Wait until the given trigger executes native void TriggerQueueEnter (); native void TriggerQueueExit (); native bool TriggerQueueIsEmpty (); native void TriggerQueuePause (bool pause); // Options for handling the active thread when clearing the trigger queue const int c_triggerQueueRetain = 0; // Leave in the queue const int c_triggerQueueRemove = 1; // Remove from the queue, but leave it running const int c_triggerQueueKill = 2; // Remove from the queue and kill it immediately native void TriggerQueueClear (int activeOption); native void TriggerSkippableBegin ( playergroup allowedToSkip, int requiredCount, trigger onSkip, bool testConds, bool waitUntilDone ); native void TriggerSkippableEnd (); // Trigger Debugging native void TriggerDebugWindowOpen (bool open); native void TriggerDebugOutput (int type, text inText, bool includeGameUI); native void TriggerDebugSetTypeName (int type, text inText); native void TriggerDebugSetTypeColor (int type, color c); native void TriggerDebugSetTypeFile (int type, string file); //-------------------------------------------------------------------------------------------------- // Units //-------------------------------------------------------------------------------------------------- // Spend locations for simulating spend calls const int c_spendLocationAll = -1; const int c_spendLocationAbility = 0; const int c_spendLocationBehavior = 1; const int c_spendLocationUnit = 2; const int c_spendLocationPlayer = 3; const int c_spendLocationGlobal = 4; // Unit creation styles const int c_unitCreateConstruct = (1 << 0); const int c_unitCreateIgnorePlacement = (1 << 1); native unitgroup UnitCreate ( int inCount, string inUnitType, int inCreateStyle, int inPlayer, point inPos, fixed inFacing ); native unit UnitLastCreated (); native unitgroup UnitLastCreatedGroup (); native unit UnitFromId (int id); native void UnitLoadModel (unit inUnit); native void UnitUnloadModel (unit inUnit); native void UnitRemove (unit inUnit); native void UnitKill (unit inUnit); native void UnitRevive (unit inUnit); native bool UnitIsAlive (unit inUnit); native bool UnitIsValid (unit inUnit); native void UnitWaitUntilIdle (unit inUnit, bool inIdle); native string UnitGetType (unit inUnit); native int UnitGetOwner (unit inUnit); native void UnitSetOwner (unit inUnit, int inPlayer, bool inChangeColor); native void UnitSetTeamColorIndex (unit inUnit, int inIndex); native void UnitResetTeamColorIndex (unit inUnit); native point UnitGetPosition (unit inUnit); native void UnitSetPosition (unit inUnit, point inPos, bool blend); native fixed UnitGetHeight (unit inUnit); // Absolute height in world space native void UnitSetHeight (unit inUnit, fixed inHeight, fixed inDuration); native fixed UnitGetFacing (unit inUnit); native void UnitSetFacing (unit inUnit, fixed inFacing, fixed inDuration); native point UnitGetAttachmentPoint (unit inUnit, string attachment); native void UnitResetSpeed (unit inUnit); native void UnitSetScale (unit inUnit, fixed x, fixed y, fixed z); native void UnitPauseAll (bool inPause); native void UnitSetCursor (unit inUnit, string cursorLink); native void UnitSetInfoText (unit inUnit, text info, text tip, text subTip); native void UnitClearInfoText (unit inUnit); native void UnitForceStatusBar (unit inUnit, bool inShow); // Unit states const int c_unitStateBuried = 0; // Read-only const int c_unitStateCloaked = 1; // Read-only const int c_unitStateDetector = 2; // Read-only const int c_unitStateRadar = 3; // Read-only const int c_unitStateVisionSuppressed = 4; // Read-only const int c_unitStateAttackSuppressed = 5; // Read-only const int c_unitStateInStasis = 6; // Read-only const int c_unitStateHallucination = 7; // Read-only const int c_unitStateInvulnerable = 8; const int c_unitStatePaused = 9; const int c_unitStateHidden = 10; const int c_unitStateHighlightable = 11; const int c_unitStateIgnoreTerrainZ = 12; const int c_unitStateUnderConstruction = 13; // Read-only const int c_unitStateInsideTransport = 14; // Read-only const int c_unitStateIdle = 15; // Read-only const int c_unitStateFidget = 16; const int c_unitStateSelectable = 17; const int c_unitStateTargetable = 18; const int c_unitStateStatusBar = 19; const int c_unitStateTooltipable = 20; const int c_unitStateCursorable = 21; const int c_unitStateIsDead = 22; // Read-only const int c_unitStateIsTransport = 23; // Read-only const int c_unitStateMoveSuppressed = 24; const int c_unitStateTurnSuppressed = 25; const int c_unitStateHighlighted = 26; const int c_unitStateUsingSupply = 27; const int c_unitStateRevivable = 28; // Read-only native void UnitSetState (unit inUnit, int inState, bool inVal); native bool UnitTestState (unit inUnit, int inState); // Unit properties const int c_unitPropLife = 0; const int c_unitPropLifePercent = 1; const int c_unitPropLifeMax = 2; const int c_unitPropLifeRegen = 3; const int c_unitPropEnergy = 4; const int c_unitPropEnergyPercent = 5; const int c_unitPropEnergyMax = 6; const int c_unitPropEnergyRegen = 7; const int c_unitPropShields = 8; const int c_unitPropShieldsPercent = 9; const int c_unitPropShieldsMax = 10; const int c_unitPropShieldsRegen = 11; const int c_unitPropSuppliesUsed = 12; // Read-only const int c_unitPropSuppliesMade = 13; // Read-only const int c_unitPropKills = 14; const int c_unitPropVitality = 15; // Read-only const int c_unitPropVitalityPercent = 16; // Read-only const int c_unitPropVitalityMax = 17; // Read-only const int c_unitPropAcceleration = 18; // Read-only const int c_unitPropHeight = 19; const int c_unitPropMovementSpeed = 20; const int c_unitPropTurnRate = 21; // Read-only const int c_unitPropResources = 22; const int c_unitPropRadius = 23; // Read-only const bool c_unitPropCurrent = true; const bool c_unitPropNormal = false; native void UnitSetPropertyInt (unit inUnit, int inProp, int inVal); native void UnitSetPropertyFixed (unit inUnit, int inProp, fixed inVal); native int UnitGetPropertyInt (unit inUnit, int inProp, bool inCurrent); native fixed UnitGetPropertyFixed (unit inUnit, int inProp, bool inCurrent); native void UnitSetCustomValue (unit inUnit, int inIndex, fixed inVal); native fixed UnitGetCustomValue (unit inUnit, int inIndex); native void UnitAddChargeRegen (unit inUnit, string inCharge, fixed inVal); native fixed UnitGetChargeRegen (unit inUnit, string inCharge); native void UnitAddChargeUsed (unit inUnit, string inCharge, fixed inVal); native fixed UnitGetChargeUsed (unit inUnit, string inCharge); native void UnitAddCooldown (unit inUnit, string inCooldown, fixed inVal); native fixed UnitGetCooldown (unit inUnit, string inCooldown); native void UnitCreateEffectPoint (unit inUnit, string inEffect, point inTarget); native void UnitCreateEffectUnit (unit inUnit, string inEffect, unit inTarget); native int UnitValidateEffectPoint (unit inUnit, string inEffect, point inTarget); native int UnitValidateEffectUnit (unit inUnit, string inEffect, unit inTarget); // Unit AI options const int c_unitAIOptionUsable = 0; native void UnitSetAIOption (unit inUnit, int inOption, bool inVal); native bool UnitGetAIOption (unit inUnit, int inOption); // Unit abilities // Ability charge types const int c_unitAbilChargeCountMax = 0; const int c_unitAbilChargeCountUse = 1; const int c_unitAbilChargeCountLeft = 2; const int c_unitAbilChargeRegenMax = 3; const int c_unitAbilChargeRegenLeft = 4; native void UnitAbilitySpend (unit inUnit, abilcmd inAbilCmd, int inLocation); native void UnitAbilityReset (unit inUnit, abilcmd inAbilCmd, int inLocation); native fixed UnitAbilityChargeInfo (unit inUnit, abilcmd inAbilCmd, int inType); native int UnitAbilityCount (unit inUnit); native bool UnitAbilityExists (unit inUnit, string inAbil); native void UnitAbilityEnable (unit inUnit, string inAbil, bool inEnable); native void UnitAbilityShow (unit inUnit, string inAbil, bool inShow); native string UnitAbilityGet (unit inUnit, int inIndex); native bool UnitAbilityCheck (unit inUnit, string inAbil, bool inEnabled); native void UnitAbilityChangeLevel (unit inUnit, string inAbil, int inLevel); native int UnitAbilityGetLevel (unit inUnit, string inAbil); native int UnitAbilityMaxLevel (unit inUnit, string inAbil); native void UnitAbilityAddChargeRegen (unit inUnit, string inAbil, string inCharge, fixed inVal); native fixed UnitAbilityGetChargeRegen (unit inUnit, string inAbil, string inCharge); native void UnitAbilityAddChargeUsed (unit inUnit, string inAbil, string inCharge, fixed inVal); native fixed UnitAbilityGetChargeUsed (unit inUnit, string inAbil, string inCharge); native void UnitAbilityAddCooldown (unit inUnit, string inAbil, string inCooldown, fixed inVal); native fixed UnitAbilityGetCooldown (unit inUnit, string inAbil, string inCooldown); // Ability command states const int c_cmdStateHidden = (1 << 0); const int c_cmdStateExecuting = (1 << 1); const int c_cmdStateCanAutoCast = (1 << 2); const int c_cmdStateIsAutoCast = (1 << 3); const int c_cmdStateMaxCharges = (1 << 4); const int c_cmdStateHasCharges = (1 << 5); const int c_cmdStateDisabled = (1 << 6); const int c_cmdStateCooldown = (1 << 7); const int c_cmdStateNoLife = (1 << 8); const int c_cmdStateNoShields = (1 << 9); const int c_cmdStateNoEnergy = (1 << 10); const int c_cmdStateNoMinerals = (1 << 11); const int c_cmdStateNoVespene = (1 << 12); const int c_cmdStateNoTerrazine = (1 << 13); const int c_cmdStateNoCustom = (1 << 14); const int c_cmdStateNoFood = (1 << 15); const int c_cmdStateCantSpend = (1 << 16); native bool UnitCheckAbilCmdState (unit inUnit, abilcmd inAbilCmd, int inState); const int c_unitCargoUnitCount = 0; // Number of units contained as cargo const int c_unitCargoSpaceTotal = 1; // Total cargo space const int c_unitCargoSpaceUsed = 2; // Cargo space in use const int c_unitCargoSpaceFree = 3; // Cargo space available (total - used) const int c_unitCargoSizeAsCargo = 4; // Space used by this unit as cargo const int c_unitCargoSizeMax = 5; // Maximum cargo size per unit this unit can contain const int c_unitCargoPosition = 6; // Unit's index in the transport list native void UnitCargoCreate (unit inUnit, string inId, int inCount); native unit UnitCargoLastCreated (); native unitgroup UnitCargoLastCreatedGroup (); native unit UnitCargo (unit inUnit, int inIndex); native unitgroup UnitCargoGroup (unit inUnit); native int UnitCargoValue (unit inUnit, int inValue); native unit UnitTransport (unit inUnit); native unit UnitAgent (unit inUnit, int inPlayer); native void UnitMagazineArm (unit inUnit, abilcmd inAbilCmd, int inCount); native int UnitMagazineCount (unit inUnit, string inAbil); const int c_unitQueueTimeElapsed = 0; const int c_unitQueueTimeRemaining = 1; const int c_unitQueueTimeTotal = 2; const int c_unitQueuePropertyAvailable = 0; const int c_unitQueuePropertyTotal = 1; const int c_unitQueuePropertyUsed = 2; const int c_unitQueuePropertyCount = 3; native int UnitQueueItemCount (unit inUnit, int inSlot); native string UnitQueueItemGet (unit inUnit, int inItem, int inSlot); native fixed UnitQueueItemTime (unit inUnit, int inTimeType, int inItem); native bool UnitQueueItemTypeCheck (unit inUnit, int inItem, int inType); native int UnitQueueGetProperty (unit inUnit, int inProp); native bool UnitMoverExists (unit inUnit, string inMover); native bool UnitTestPlane (unit inUnit, int inPlane); // Unit progress const int c_unitProgressTypeConstruct = 0; const int c_unitProgressTypeTrain = 1; const int c_unitProgressTypeResearch = 2; const int c_unitProgressTypeArmMagazine = 3; const int c_unitProgressTypeSpecialize = 4; const int c_unitProgressTypeRevive = 5; const int c_unitProgressTypeLearn = 6; const int c_unitProgressStageStart = 0; const int c_unitProgressStageCancel = 1; const int c_unitProgressStageComplete = 2; const int c_unitProgressStagePause = 3; const int c_unitProgressStageResume = 4; const int c_unitProgressStateEmpty = 0; const int c_unitProgressStateActive = 1; const int c_unitProgressStatePaused = 2; native fixed UnitGetProgressComplete (unit inUnit, int inSlot); native void UnitSetProgressComplete (unit inUnit, int inSlot, int inPercent); native void UnitSetProgressStage (unit inUnit, int inSlot, int inStage); native bool UnitCheckProgressState (unit inUnit, int inSlot, int inState); // Unit behaviors // Behavior categories const int c_unitBehaviorFlagPermanent = 0; const int c_unitBehaviorFlagRestorable = 1; const int c_unitBehaviorFlagTemporary = 2; // Behavior buff flags const int c_unitBehaviorFlagChanneled = 3; const int c_unitBehaviorFlagChanneling = 4; const int c_unitBehaviorFlagCountdown = 5; const int c_unitBehaviorFlagExtend = 6; const int c_unitBehaviorFlagDisableBuilding = 7; const int c_unitBehaviorFlagRemoveDamageResponseExhausted = 8; // Behavior info flags const int c_unitBehaviorFlagHidden = 9; // Behavior count const int c_unitBehaviorCountAll = -1; native void UnitBehaviorAdd (unit inUnit, string inBehavior, unit inCaster, int inCount); native void UnitBehaviorAddPlayer (unit inUnit, string inBehavior, int inPlayer, int inCount); native int UnitBehaviorCountAll (unit inUnit); native int UnitBehaviorCount (unit inUnit, string inBehavior); native fixed UnitBehaviorDuration (unit inUnit, string inBehavior); native void UnitBehaviorSetDuration (unit inUnit, string inBehavior, fixed inDuration); native bool UnitBehaviorEnabled (unit inUnit, string inBehavior); native string UnitBehaviorGet (unit inUnit, int inIndex); native bool UnitHasBehavior (unit inUnit, string inBehavior); native void UnitBehaviorRemove (unit inUnit, string inBehavior, int inCount); native void UnitBehaviorRemovePlayer (unit inUnit, string inBehavior, int inPlayer, int inCount); native void UnitBehaviorTransfer (unit inSource, unit inDest, string inBehavior, int inCount); native bool UnitBehaviorHasFlag (string inBehavior, int inCategory); native void UnitBehaviorRemoveCategory (unit inUnit, int inCategory); native void UnitBehaviorAddChargeRegen (unit inUnit, string inBehavior, string inCharge, fixed inVal); native fixed UnitBehaviorGetChargeRegen (unit inUnit, string inBehavior, string inCharge); native void UnitBehaviorAddChargeUsed (unit inUnit, string inBehavior, string inCharge, fixed inVal); native fixed UnitBehaviorGetChargeUsed (unit inUnit, string inBehavior, string inCharge); native void UnitBehaviorAddCooldown (unit inUnit, string inBehavior, string inCooldown, fixed inVal); native fixed UnitBehaviorGetCooldown (unit inUnit, string inBehavior, string inCooldown); native void UnitXPGainEnable (unit inUnit, string inBehavior, bool inEnable); // Unit markers native marker UnitMarker (unit inUnit, int inIndex); native void UnitMarkerAdd (unit inUnit, marker inMarker); native int UnitMarkerCount (unit inUnit, marker inMarker); native void UnitMarkerRemove (unit inUnit, marker inMarker); // Unit orders const int c_orderQueueReplace = 0; const int c_orderQueueAddToEnd = 1; const int c_orderQueueAddToFront = 2; native order UnitOrder (unit inUnit, int inIndex); native int UnitOrderCount (unit inUnit); native bool UnitOrderHasAbil (unit inUnit, string abilLink); native bool UnitOrderIsValid (unit inUnit, order inOrder); native bool UnitIsHarvesting (unit inUnit, int inResource); native bool UnitIssueOrder (unit inUnit, order inOrder, int inQueueType); // Unit rallying native int UnitRallyPoint (unit inUnit, unit inUser); native int UnitRallyPointCount (unit inUnit); native int UnitRallyPointTargetCount (unit inUnit, int inPoint); native point UnitRallyPointTargetPoint (unit inUnit, int inPoint, int inTarget); native unit UnitRallyPointTargetUnit (unit inUnit, int inPoint, int inTarget); // Unit tech native int UnitTechTreeBehaviorCount (unit inUnit, string behaviorType, int countType); native int UnitTechTreeUnitCount (unit inUnit, string unitType, int countType); native int UnitTechTreeUpgradeCount (unit inUnit, string upgradeType, int countType); // Unit inventory const int c_unitInventoryCountCarried = 0; const int c_unitInventoryCountEmpty = 1; const int c_unitInventoryCountTotal = 2; native int UnitInventoryCount (unit inUnit, int inCountType); native unit UnitInventoryItem (unit inUnit, int inIndex); native unitgroup UnitInventoryGroup (unit inUnit); native unit UnitInventoryCreate (unit inUnit, string itemType); native unit UnitInventoryLastCreated (); // Unit weapons native void UnitWeaponAdd (unit inUnit, string inWeapon, string inTurret); native int UnitWeaponCount (unit inUnit); native bool UnitWeaponCheck (unit inUnit, int inIndex, int inTarget); native string UnitWeaponGet (unit inUnit, int inIndex); native bool UnitWeaponIsEnabled (unit inUnit, int inIndex); native fixed UnitWeaponPeriod (unit inUnit, int inIndex); native void UnitWeaponRemove (unit inUnit, string inWeapon); native bool UnitWeaponsPlaneTest (unit inUnit, int inPlane); // Unit experience native fixed UnitXPTotal (unit inUnit); native int UnitLevel (unit inUnit); // Unit Costs const int c_unitCostMinerals = 0; const int c_unitCostVespene = 1; const int c_unitCostTerrazine = 2; const int c_unitCostCustomResource = 3; const int c_unitCostSumMineralsVespene = 4; native string UnitTypeFromString (string inString); native text UnitTypeGetName (string inUnitType); native fixed UnitTypeGetProperty (string inUnitType, int inProp); native int UnitTypeGetCost (string inUnitType, int inCostType); native bool UnitTypeTestFlag (string inUnitType, int inFlag); native bool UnitTypeTestAttribute (string inUnitType, int inAttribute); native bool UnitTypeIsAffectedByUpgrade (string inUnitType, string inUpgrade); native void UnitTypeAnimationLoad (string inUnitType, string animPath); native void UnitTypeAnimationUnload (string inUnitType, string animPath); // Unit events // Note: Use a null unit for "any unit" events // Damage fatal option const int c_unitDamageEither = 0; const int c_unitDamageFatal = 1; const int c_unitDamageNonFatal = 2; // Damage type const int c_unitDamageTypeAny = -1; const int c_unitDamageTypeSpell = 0; const int c_unitDamageTypeMelee = 1; const int c_unitDamageTypeRanged = 2; const int c_unitDamageTypeSplash = 3; native void TriggerAddEventUnitCreated (trigger t, unitref u, string creatorAbil, string creatorBehavior); native void TriggerAddEventUnitRemoved (trigger t, unitref u); native void TriggerAddEventUnitDied (trigger t, unitref u); native void TriggerAddEventUnitGainExperience (trigger t, unitref u); native void TriggerAddEventUnitGainLevel (trigger t, unitref u); native void TriggerAddEventUnitAcquiredTarget (trigger t, unitref u); native void TriggerAddEventUnitStartedAttack (trigger t, unitref u); native void TriggerAddEventUnitAttacked (trigger t, unitref u); native void TriggerAddEventUnitAttributeChange (trigger t, unitref u); native void TriggerAddEventUnitDamaged (trigger inTrigger, unitref inUnit, int inDamageType, int inDamageFatal, string inEffect); native void TriggerAddEventUnitBecomesIdle (trigger t, unitref u, bool idle); native unit EventUnit (); native unit EventUnitTarget (); // Responses // - c_unitEventCreated native unit EventUnitCreatedUnit (); native string EventUnitCreatedAbil (); native string EventUnitCreatedBehavior (); // - c_unitEventDamaged // - c_unitEventDied native fixed EventUnitDamageAmount (); native unit EventUnitDamageSourceUnit (); native int EventUnitDamageSourcePlayer (); native point EventUnitDamageSourcePoint (); native bool EventUnitDamageDeathCheck (int inType); native string EventUnitDamageEffect (); // - c_unitEventGainExperience // - c_unitEventGainLevel native string EventUnitBehavior (); native fixed EventUnitXPDelta (); native int EventUnitAttributePoints (); // Property change events native void TriggerAddEventUnitProperty (trigger t, unitref u, int prop); // State events // region/range events - true = entered, false = exited // cargo events - true = loaded, false = unloaded // selection events - true = selected, false = deselected // highlight events - true = highlighted, false = unhighlighted // native void TriggerAddEventUnitRegion (trigger t, unitref u, region r, bool state); native void TriggerAddEventUnitRange (trigger t, unitref u, unit fromUnit, fixed range, bool state); native void TriggerAddEventUnitRangePoint (trigger t, unitref u, point p, fixed distance, bool state); native void TriggerAddEventUnitCargo (trigger t, unitref u, bool state); native region EventUnitRegion (); native unit EventUnitCargo (); // Player events // Note: EventPlayer (defined in the Players section) is valid for these events // native void TriggerAddEventUnitSelected (trigger t, unitref u, int player, bool state); native void TriggerAddEventUnitClick (trigger t, unitref u, int player); native void TriggerAddEventUnitHighlight (trigger t, unitref u, int player, bool state); // Order events native void TriggerAddEventUnitOrder (trigger t, unitref u, abilcmd a); native order EventUnitOrder (); // Ability events const int c_unitAbilStageComplete = -6; const int c_unitAbilStagePreempt = -5; const int c_unitAbilStageCancel = -4; const int c_unitAbilStageExecute = -3; const int c_unitAbilStageQueue = -2; const int c_unitAbilStageAll = -1; native void TriggerAddEventUnitAbility (trigger t, unitref u, abilcmd a, int stage, bool includeSharedAbils); native abilcmd EventUnitAbility (); native int EventUnitAbilityStage (); native point EventUnitTargetPoint (); native unit EventUnitTargetUnit (); // Progress events native void TriggerAddEventUnitConstructProgress (trigger t, unitref u, int stage); native void TriggerAddEventUnitTrainProgress (trigger t, unitref u, int stage); native void TriggerAddEventUnitResearchProgress (trigger t, unitref u, int stage); native void TriggerAddEventUnitArmMagazineProgress (trigger t, unitref u, int stage); native void TriggerAddEventUnitSpecializeProgress (trigger t, unitref u, int stage); native string EventUnitProgressObjectType (); // The type of object being trained/researched/etc native unit EventUnitProgressUnit (); // The unit being trained, if any // Powerup native void TriggerAddEventUnitPowerup (trigger t, unitref u); native unit EventUnitPowerupUnit (); // Revive native void TriggerAddEventUnitRevive (trigger t, unitref u); //-------------------------------------------------------------------------------------------------- // Unit Filters //-------------------------------------------------------------------------------------------------- // Construct a unitfilter based on bit flags corresponding to c_targetFilter<*> constants // Note: If the target flag is >= than 32, it should go in the second integer. For example: // // UnitFilter ( // (1 << c_targetFilterGround), // Require ground // 0, // 0, // (1 << (c_targetFilterInvulnerable - 32)) // Exclude invulnerable // ); // native unitfilter UnitFilter (int inRequired1, int inRequired2, int inExcluded1, int inExcluded2); native unitfilter UnitFilterStr (string filters); // Set/Get individual filter states by index // const int c_unitFilterAllowed = 0; // Neither required nor excluded const int c_unitFilterRequired = 1; const int c_unitFilterExcluded = 2; native void UnitFilterSetState (unitfilter inFilter, int inType, int inState); native int UnitFilterGetState (unitfilter inFilter, int inType); native bool UnitFilterMatch (unit inUnit, int inPlayer, unitfilter inFilter); //-------------------------------------------------------------------------------------------------- // Unit Groups //-------------------------------------------------------------------------------------------------- const int c_unitAllianceAny = 0; // Any unit const int c_unitAllianceAlly = 1; // Units owned by allied players const int c_unitAllianceEnemy = 2; // Units owned by enemy players const int c_unitAllianceAllyExcludeSelf = 3; // Units owned by allied players not owned by player const int c_unitAllianceAnyExcludeSelf = 4; // Any unit not owned by player const int c_noMaxCount = 0; native unitgroup UnitGroupEmpty (); native unitgroup UnitGroupCopy (unitgroup inGroup); native unitgroup UnitGroupFromId (int id); native unitgroup UnitGroup (string type, int player, region r, unitfilter filter, int maxCount); native unitgroup UnitGroupAlliance (int player, int alliance, region r, unitfilter filter, int maxCount); native unitgroup UnitGroupFilter (string type, int player, unitgroup g, unitfilter filter, int maxCount); native unitgroup UnitGroupFilterAlliance (unitgroup g, int player, int alliance, int maxCount); native unitgroup UnitGroupFilterPlane (unitgroup g, int plane, int maxCount); native unitgroup UnitGroupFilterPlayer (unitgroup g, int player, int maxCount); native unitgroup UnitGroupFilterRegion (unitgroup g, region r, int maxCount); native unitgroup UnitGroupFilterThreat (unitgroup g, unit u, string alternateType, int maxCount); native unitgroup UnitGroupIdle (int player, bool workerOnly); native void UnitGroupClear (unitgroup inGroup); native void UnitGroupAdd (unitgroup inGroup, unit inUnit); native void UnitGroupRemove (unitgroup inGroup, unit inUnit); native bool UnitGroupIssueOrder (unitgroup inGroup, order inOrder, int inQueueType); native void UnitGroupWaitUntilIdle (unitgroup inGroup, int inCount, bool inIdle); const int c_unitCountAll = 0; const int c_unitCountAlive = 1; const int c_unitCountDead = 2; native int UnitGroupCount (unitgroup inGroup, int inType); native unit UnitGroupUnit (unitgroup inGroup, int inIndex); // index is one-based native unit UnitGroupRandomUnit (unitgroup inGroup, int inType); native bool UnitGroupHasUnit (unitgroup inGroup, unit inUnit); native bool UnitGroupTestPlane (unitgroup inGroup, int inPlane); native unit UnitGroupNearestUnit (unitgroup inGroup, point inPoint); //-------------------------------------------------------------------------------------------------- // Unit Reference // - A unitref may refer to a unit explicitly or through a unit variable //-------------------------------------------------------------------------------------------------- native unitref UnitRefFromUnit (unit u); native unitref UnitRefFromVariable (string v); native unit UnitRefToUnit (unitref r); //-------------------------------------------------------------------------------------------------- // Unit Selection // // Notes: // - UnitSelect and UnitGroupSelect set the local selection state, // which must be then transmitted across the network. // // However, UnitIsSelected and UnitGroupSelected query the synchronous selection state, // which means that if you set the selection, then immediately query it, the results will // not match. // // - Unit selection state cannot be set during map initialization events. // //-------------------------------------------------------------------------------------------------- native void UnitSelect (unit inUnit, int inPlayer, bool inSelect); native void UnitGroupSelect (unitgroup inGroup, int inPlayer, bool inSelect); native void UnitClearSelection (int inPlayer); native bool UnitIsSelected (unit inUnit, int inPlayer); native unitgroup UnitGroupSelected (int inPlayer); native void UnitFlashSelection (unit inUnit, fixed inPeriod); // Control groups native void UnitControlGroupAddUnit (int inPlayer, int inGroup, unit inUnit); native void UnitControlGroupAddUnits (int inPlayer, int inGroup, unitgroup inUnits); native void UnitControlGroupRemoveUnit (int inPlayer, int inGroup, unit inUnit); native void UnitControlGroupRemoveUnits (int inPlayer, int inGroup, unitgroup inUnits); native void UnitControlGroupClear (int inPlayer, int inGroup); //-------------------------------------------------------------------------------------------------- // User Interface //-------------------------------------------------------------------------------------------------- const fixed c_transitionDurationImmediate = 0.0; const fixed c_transitionDurationDefault = -1.0; const int c_messageAreaAll = 0; const int c_messageAreaChat = 1; const int c_messageAreaObjective = 2; const int c_messageAreaDirective = 3; const int c_messageAreaError = 4; const int c_messageAreaSubtitle = 5; const int c_messageAreaCinematic = 6; const int c_messageAreaDebug = 7; const int c_messageAreaWarning = 8; const int c_uiModeFullscreen = 0; const int c_uiModeLetterboxed = 1; const int c_uiModeConsole = 2; const int c_mouseButtonNone = 0; const int c_mouseButtonLeft = 1; const int c_mouseButtonMiddle = 2; const int c_mouseButtonRight = 3; const int c_mouseButtonXButton1 = 4; const int c_mouseButtonXButton2 = 5; const int c_scaleNormal = 0; const int c_scaleAspect = 1; const int c_scaleStretch = 2; const int c_keyNone = -1; const int c_keyShift = 0; const int c_keyControl = 1; const int c_keyAlt = 2; const int c_key0 = 3; const int c_key1 = 4; const int c_key2 = 5; const int c_key3 = 6; const int c_key4 = 7; const int c_key5 = 8; const int c_key6 = 9; const int c_key7 = 10; const int c_key8 = 11; const int c_key9 = 12; const int c_keyA = 13; const int c_keyB = 14; const int c_keyC = 15; const int c_keyD = 16; const int c_keyE = 17; const int c_keyF = 18; const int c_keyG = 19; const int c_keyH = 20; const int c_keyI = 21; const int c_keyJ = 22; const int c_keyK = 23; const int c_keyL = 24; const int c_keyM = 25; const int c_keyN = 26; const int c_keyO = 27; const int c_keyP = 28; const int c_keyQ = 29; const int c_keyR = 30; const int c_keyS = 31; const int c_keyT = 32; const int c_keyU = 33; const int c_keyV = 34; const int c_keyW = 35; const int c_keyX = 36; const int c_keyY = 37; const int c_keyZ = 38; const int c_keySpace = 39; const int c_keyGrave = 40; const int c_keyNumPad0 = 41; const int c_keyNumPad1 = 42; const int c_keyNumPad2 = 43; const int c_keyNumPad3 = 44; const int c_keyNumPad4 = 45; const int c_keyNumPad5 = 46; const int c_keyNumPad6 = 47; const int c_keyNumPad7 = 48; const int c_keyNumPad8 = 49; const int c_keyNumPad9 = 50; const int c_keyNumPadPlus = 51; const int c_keyNumPadMinus = 52; const int c_keyNumPadMultiply = 53; const int c_keyNumPadDivide = 54; const int c_keyNumPadDecimal = 55; const int c_keyEquals = 56; const int c_keyMinus = 57; const int c_keyBracketOpen = 58; const int c_keyBracketClose = 59; const int c_keyBackSlash = 60; const int c_keySemiColon = 61; const int c_keyApostrophe = 62; const int c_keyComma = 63; const int c_keyPeriod = 64; const int c_keySlash = 65; const int c_keyEscape = 66; const int c_keyEnter = 67; const int c_keyBackSpace = 68; const int c_keyTab = 69; const int c_keyLeft = 70; const int c_keyUp = 71; const int c_keyRight = 72; const int c_keyDown = 73; const int c_keyInsert = 74; const int c_keyDelete = 75; const int c_keyHome = 76; const int c_keyEnd = 77; const int c_keyPageUp = 78; const int c_keyPageDown = 79; const int c_keyCapsLock = 80; const int c_keyNumLock = 81; const int c_keyScrollLock = 82; const int c_keyPause = 83; const int c_keyPrintScreen = 84; const int c_keyNextTrack = 85; const int c_keyPrevTrack = 86; const int c_keyF1 = 87; const int c_keyF2 = 88; const int c_keyF3 = 89; const int c_keyF4 = 90; const int c_keyF5 = 91; const int c_keyF6 = 92; const int c_keyF7 = 93; const int c_keyF8 = 94; const int c_keyF9 = 95; const int c_keyF10 = 96; const int c_keyF11 = 97; const int c_keyF12 = 98; const int c_keyModifierStateIgnore = 0; const int c_keyModifierStateRequire = 1; const int c_keyModifierStateExclude = 2; // Types of custom dialogs const int c_customDialogTypeMessage = 0; const int c_customDialogTypeQuery = 1; // Results of custom dialogs const int c_customDialogResultAny = 0; const int c_customDialogResultYes = 1; const int c_customDialogResultNo = 2; // Frames that can be synchronously shown / hidden const int c_syncFrameTypeMenuBar = 0; const int c_syncFrameTypeCashPanel = 1; const int c_syncFrameTypeTipAlertPanel = 2; const int c_syncFrameTypeObjectivePanel = 3; const int c_syncFrameTypeCharacterSheetButton = 4; const int c_syncFrameTypeSupply = 5; const int c_syncFrameTypeResourcePanel = 6; const int c_syncFrameTypeRoomPanel = 7; const int c_syncFrameTypePlanetPanel = 8; const int c_syncFrameTypeMercenaryPanel = 9; const int c_syncFrameTypeResearchPanel = 10; const int c_syncFrameTypePurchasePanel = 11; const int c_syncFrameTypeVictoryPanel = 12; const int c_syncFrameTypeBattleReportPanel = 13; const int c_syncFrameTypeAlertPanel = 14; const int c_syncFrameTypeHeroPanel = 15; const int c_syncFrameTypeErrorDisplayPanel = 16; const int c_syncFrameTypeCreditsPanel = 17; const int c_syncFrameTypeTechTreePanel = 18; const int c_syncFrameTypeTechGlossaryPanel = 19; // Game Menu Dialog Items const int c_gameMenuDialogItemAny = -1; // Buttons that can be renamed const int c_gameMenuDialogAbortButton = 0; const int c_gameMenuDialogGenericButton1 = 1; const int c_gameMenuDialogGenericButton2 = 2; const int c_gameMenuDialogGenericButton3 = 3; const int c_gameMenuDialogGenericButton4 = 4; const int c_gameMenuDialogGenericButton5 = 5; const int c_gameMenuDialogGenericButton6 = 6; const int c_gameMenuDialogGenericButton7 = 7; const int c_gameMenuDialogGenericButton8 = 8; const int c_gameMenuDialogGenericButton9 = 9; const int c_gameMenuDialogGenericButton10 = 10; // Buttons that cannot be renamed const int c_gameMenuDialogOptionsButton = 11; const int c_gameMenuDialogLoadButton = 12; const int c_gameMenuDialogSaveButton = 13; const int c_gameMenuDialogPauseButton = 14; const int c_gameMenuDialogRestartButton = 15; const int c_gameMenuDialogReturnToGameplayButton = 16; const int c_gameMenuDialogRestartDifficultyPulldown = 17; const int c_gameMenuDialogQuitButton = 18; // UI command allowables const int c_uiCommandAllowButtons = 0; const int c_uiCommandAllowHotkeys = 1; const int c_uiCommandAllowSmartClick = 2; const int c_uiCommandAllowModifiers = 3; const int c_uiCommandAllowInfoPanel = 4; const int c_uiCommandAllowMinimap = 5; const int c_uiCommandAllowPings = 6; native void UISetMode (playergroup players, int mode, fixed duration); native void UISetWorldVisible (playergroup players, bool isVisible); native void UISetCursorVisible (playergroup players, bool isCursorVisible); native void UISetCursorAutoHide (playergroup players, bool autoHide, fixed delay); native void UIDisplayMessage (playergroup players, int messageArea, text messageText); native void UIClearMessages (playergroup players, int messageArea); native void UIShowCinematicText (playergroup inPlayers, text inMessageText, fixed inTimeBetweenCharacters, fixed inMaxTime, soundlink inSoundLink); native void UIHideCinematicText (playergroup inPlayers); native void UIShowTextCrawl (playergroup inPlayers, text inTitle, text inText, fixed inMaxTime, soundlink inBirthSoundLink, soundlink inTypeSoundLink); native void UIHideTextCrawl (playergroup inPlayers); native void UIUnitColorStyleOverride (playergroup inPlayers, int style); native void UIUnitColorStyleClearOverride (playergroup inPlayers); native void UISetNextLoadingScreen (string imagePath, text title, text subtitle, text body, text help, bool waitForInput); native void UISetNextLoadingScreenImageScale (int imageScale); native void UISetNextLoadingScreenTextPosition (int anchor, int offsetX, int offsetY, int width, int height); native void UISetRestartLoadingScreen (text help); // Alerts (message display and recall via spacebar to a given point or unit) // - icon may be null for the default icon // native void UIAlert (string alert, int player, text message, string icon); native void UIAlertPoint (string alert, int player, text message, string icon, point p); native void UIAlertUnit (string alert, int player, text message, string icon, unit u); native void UIAlertClear (int player); native void UISetFrameVisible (playergroup inPlayers, int inFrameType, bool inVisible); native bool UIFrameVisible (int inPlayer, int inFrameType); native void UISetGameMenuItemVisible (playergroup inPlayers, int inMenuItemType, bool inVisible); native bool UIGameMenuItemVisible (int inPlayer, int inMenuItemType); native void UISetGameMenuItemText (playergroup inPlayers, int inMenuItemType, text inText); native void UIClearCustomMenuItemList (playergroup inPlayers); native void UISetCustomMenuItemVisible (playergroup inPlayers, int inMenuItemType, bool inVisible); native bool UICustomMenuItemVisible (int inPlayer, int inMenuItemType); native void UISetCustomMenuItemText (playergroup inPlayers, int inMenuItemType, text inText); native void UIShowCustomMenu (playergroup inPlayers, text inTitleText); native void UIShowCustomDialog (playergroup inPlayers, int inType, text inTitle, text inText, bool pause); native void UISetResourceTradeCountdownTime (int time); native void UISetButtonHighlighted (playergroup inPlayers, abilcmd inAbilCmd, bool inHighlight); native void UISetMiniMapBackGroundColor (color inColor); native void UISetCommandAllowed (playergroup players, int option, bool allow); native void UISetCommandDisallowedMessage (playergroup players, text message); // User Interface events native void TriggerAddEventAbortMission (trigger t, int player); native void TriggerAddEventCustomDialogDismissed (trigger t, int player, int result); native void TriggerAddEventGameMenuItemSelected (trigger t, int player, int gameMenuIndex); native void TriggerAddEventMouseClicked (trigger t, int player, int mouseButton, bool down); native void TriggerAddEventKeyPressed (trigger t, int player, int key, bool down, int s, int c, int a); native void TriggerAddEventButtonPressed (trigger t, int player, string button); native void TriggerAddEventGameCreditsFinished (trigger t, int player); native int EventCustomDialogResult (); native int EventGameMenuItemSelected (); native int EventMouseClickedButton (); native int EventMouseClickedPosXUI (); native int EventMouseClickedPosYUI (); native fixed EventMouseClickedPosXWorld (); native fixed EventMouseClickedPosYWorld (); native fixed EventMouseClickedPosZWorld (); native int EventKeyPressed (); native bool EventKeyShift (); native bool EventKeyControl (); native bool EventKeyAlt (); native string EventButtonPressed (); //-------------------------------------------------------------------------------------------------- // Visibility //-------------------------------------------------------------------------------------------------- const int c_visTypeMask = 0; const int c_visTypeFog = 1; native void VisEnable (int visType, bool enable); native bool VisIsEnabled (int visType); native void VisExploreArea (int player, region area, bool explored, bool checkCliffLevel); native void VisRevealArea (int player, region area, fixed duration, bool checkCliffLevel); // Zero duration means permanent native revealer VisRevealerCreate (int player, region area); native revealer VisRevealerLastCreated (); native void VisRevealerDestroy (revealer r); native void VisRevealerEnable (revealer r, bool enable); native void VisRevealerUpdate (revealer r); // Update revealer after region has changed include "TriggerLibs/AI" include "TriggerLibs/CampaignAI" include "TriggerLibs/MeleeAI" include "TriggerLibs/TacticalAI" // $AS - Trigger Editor(Bug 33070): In order for line numbers to be correct you need a newline at the end of this file