• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Jass Tags

Status
Not open for further replies.
I wanted to post these somewhere, not sure where. I know they're useful.

This is something for web developers, if you don't have a website then you probably won't need these.
What it does is it highlights jass code like this;

JASS:
local integer i = 0

Yes, this is the exact product that hive uses.

The product for the vBulletin software is attached below, for those of you using other forum softwares the parsing function is below.

Credits to Artificial for the parsing function.
And to phyrex1an for the vBulletin product.

PHP:
// Original idea and implementation by Asger Feldthaus (KaTTaNa)
// VBulletin "product" by phyrex1an
// Final "vJassSyntax" function provided by Artificial
function vJassSyntax($content) {
	// Configuration
	$highlight      = '@';
	$blockStyle			= '"font-weight: bold;"';
	$keywordStyle		= $blockStyle;// '"color: #666;"';
	$typeStyle			= '"color: #4477aa; font-weight: bold;"';
	$bjGlobalStyle	= '"color: #4477aa;"';// '"color: #660033;"';
	$operatorStyle	= '"color: sienna;"';
	$memberStyle		= '"color: #666666;"';
	$memberDotStyle = $operatorStyle;
	$valueStyle			= '"color: #3333ff;"';
	$rawcodeStyle		= '"font-weight: bold; text-decoration: underline;"';
	$commentStyle		= '"color: #009933;"';
	$stringStyle		= '"color: blue; font-style: italic;"';
	$compilerStyle	= '"color: #666;"';
	$highlightStyle	= '"background-color: #ffcccc;"';
	$constantsStyle	= $bjGlobalStyle;
	$nativeStyle		= '"color: purple;"';// '"color: #4477aa;"';
	$bjStyle			  = '"color: #dd4444;"';
	$escapeStyle		= '"font-weight: bold; font-style: normal;"';
	// End of configuration
	$content = html_entity_decode($content);

	$quote		= '"';
	$singQuote  = "'";
	$operators	= '\+|-|\/|\*|,|=|:|\(|\)|>=|<=|!=|\[|\]|<|>';
    $blocks 	= 'native|constant|exitwhen|takes|returns|private|public|keyword|static|delegate|initializer|uses|needs|requires|defaults|interface|endinterface|globals|endglobals|function|endfunction|scope|endscope|library|library_once|endlibrary|struct|endstruct|method|endmethod|loop|endloop|if|then|else|elseif|endif|operator|readonly|stub|module|endmodule|implement|optional';
	$keywords 	= 'and|or|call|not|set|local|return|debug|extends|type';
	$types		= 'nothing|array|string|integer|real|code|boolean|handle|event|player|widget|unit|destructable|item|ability|buff|force|group|trigger|triggercondition|triggeraction|timer|' .
				  'location|region|rect|boolexpr|sound|conditionfunc|filterfunc|unitpool|itempool|race|alliancetype|racepreference|gamestate|igamestate|fgamestate|playerstate|playergameresult|' .
				  'unitstate|aidifficulty|eventid|gameevent|playerevent|playerunitevent|unitevent|limitop|widgetevent|dialogevent|unittype|gamespeed|gamedifficulty|gametype|mapflag|mapvisibility|' .
				  'mapsetting|mapdensity|mapcontrol|playerslotstate|volumegroup|camerafield|camerasetup|playercolor|placement|startlocprio|raritycontrol|blendmode|texmapflags|effect|effecttype|' .
				  'weathereffect|terraindeformation|fogstate|fogmodifier|dialog|button|quest|questitem|defeatcondition|timerdialog|leaderboard|multiboard|multiboarditem|trackable|gamecache|version|' .
				  'itemtype|texttag|playerscore|lightning|pathingtype|image|ubersplat|attacktype|damagetype|weapontype|soundtype|thistype|key|hashtable';
	$bjglobals	= '(bj_[A-z]+)|filterEnumDestructablesInCircleBJ|filterGetUnitsInRectOfPlayer|filterGetUnitsOfPlayerAndTypeId|filterGetUnitsOfTypeIdAll|filterIssueHauntOrderAtLocBJ|filterLivingPlayerUnitsOfTypeId|filterMeleeTrainedUnitIsHeroBJ';
	$values		= 'true|false|null|super|this';

	$natives	= 'AbilityId|AbilityId2String|Acos|AddHeroXP|AddIndicator|AddItemToAllStock|AddItemToStock|AddLightning|AddLightningEx|AddPlayerTechResearched|AddResourceAmount|AddSpecialEffect|'.
				  'AddSpecialEffectLoc|AddSpecialEffectTarget|AddSpellEffect|AddSpellEffectById|AddSpellEffectByIdLoc|AddSpellEffectLoc|AddSpellEffectTarget|AddSpellEffectTargetById|'.
				  'AddUnitAnimationProperties|AddUnitToAllStock|AddUnitToStock|AddWeatherEffect|AdjustCameraField|And|Asin|Atan|Atan2|AttachSoundToUnit|CachePlayerHeroData|CameraSetSmoothingFactor|'.
				  'CameraSetSourceNoise|CameraSetSourceNoiseEx|CameraSetTargetNoise|CameraSetTargetNoiseEx|CameraSetupApply|CameraSetupApplyForceDuration|CameraSetupApplyForceDurationWithZ|'.
				  'CameraSetupApplyWithZ|CameraSetupGetDestPositionLoc|CameraSetupGetDestPositionX|CameraSetupGetDestPositionY|CameraSetupGetField|CameraSetupSetDestPosition|CameraSetupSetField|'.
				  'ChangeLevel|Cheat|ChooseRandomCreep|ChooseRandomItem|ChooseRandomItemEx|ChooseRandomNPBuilding|ClearMapMusic|ClearSelection|ClearTextMessages|CommandAI|Condition|ConvertAIDifficulty|'.
				  'ConvertAllianceType|ConvertAttackType|ConvertBlendMode|ConvertCameraField|ConvertDamageType|ConvertDialogEvent|ConvertEffectType|ConvertFGameState|ConvertFogState|ConvertGameDifficulty|'.
				  'ConvertGameEvent|ConvertGameSpeed|ConvertGameType|ConvertIGameState|ConvertItemType|ConvertLimitOp|ConvertMapControl|ConvertMapDensity|ConvertMapFlag|ConvertMapSetting|'.
				  'ConvertMapVisibility|ConvertPathingType|ConvertPlacement|ConvertPlayerColor|ConvertPlayerEvent|ConvertPlayerGameResult|ConvertPlayerScore|ConvertPlayerSlotState|ConvertPlayerState|'.
				  'ConvertPlayerUnitEvent|ConvertRace|ConvertRacePref|ConvertRarityControl|ConvertSoundType|ConvertStartLocPrio|ConvertTexMapFlags|ConvertUnitEvent|ConvertUnitState|ConvertUnitType|'.
				  'ConvertVersion|ConvertVolumeGroup|ConvertWeaponType|ConvertWidgetEvent|CopySaveGame|Cos|CreateBlightedGoldmine|CreateCameraSetup|CreateCorpse|CreateDeadDestructable|'.
				  'CreateDeadDestructableZ|CreateDefeatCondition|CreateDestructable|CreateDestructableZ|CreateFogModifierRadius|CreateFogModifierRadiusLoc|CreateFogModifierRect|CreateForce|CreateGroup|'.
				  'CreateImage|CreateItem|CreateItemPool|CreateLeaderboard|CreateMIDISound|CreateMultiboard|CreateQuest|CreateRegion|CreateSound|CreateSoundFilenameWithLabel|CreateSoundFromLabel|'.
				  'CreateTextTag|CreateTimer|CreateTimerDialog|CreateTrackable|CreateTrigger|CreateUbersplat|CreateUnit|CreateUnitAtLoc|CreateUnitAtLocByName|CreateUnitByName|CreateUnitPool|'.
				  'CripplePlayer|DecUnitAbilityLevel|DefeatConditionSetDescription|DefineStartLocation|DefineStartLocationLoc|Deg2Rad|DestroyBoolExpr|DestroyCondition|DestroyDefeatCondition|DestroyEffect|'.
				  'DestroyFilter|DestroyFogModifier|DestroyForce|DestroyGroup|DestroyImage|DestroyItemPool|DestroyLeaderboard|DestroyLightning|DestroyMultiboard|DestroyQuest|DestroyTextTag|DestroyTimer|'.
				  'DestroyTimerDialog|DestroyTrigger|DestroyUbersplat|DestroyUnitPool|DestructableRestoreLife|DialogAddButton|DialogAddQuitButton|DialogClear|DialogCreate|DialogDestroy|DialogDisplay|'.
				  'DialogSetMessage|DisableRestartMission|DisableTrigger|DisplayCineFilter|DisplayLoadDialog|DisplayTextToPlayer|DisplayTimedTextFromPlayer|DisplayTimedTextToPlayer|DoNotSaveReplay|'.
				  'EnableDragSelect|EnableMinimapFilterButtons|EnableOcclusion|EnablePreSelect|EnableSelect|EnableTrigger|EnableUserControl|EnableUserUI|EnableWeatherEffect|EnableWorldFogBoundary|'.
				  'EndCinematicScene|EndGame|EndThematicMusic|EnumDestructablesInRect|EnumItemsInRect|ExecuteFunc|Filter|FinishUbersplat|FirstOfGroup|FlashQuestDialogButton|FlushGameCache|'.
				  'FlushStoredBoolean|FlushStoredInteger|FlushStoredMission|FlushStoredReal|FlushStoredString|FlushStoredUnit|FogEnable|FogMaskEnable|FogModifierStart|FogModifierStop|ForceAddPlayer|'.
				  'ForceCampaignSelectScreen|ForceCinematicSubtitles|ForceClear|ForceEnumAllies|ForceEnumEnemies|ForceEnumPlayers|ForceEnumPlayersCounted|ForcePlayerStartLocation|ForceQuestDialogUpdate|'.
				  'ForceRemovePlayer|ForceUICancel|ForceUIKey|ForForce|ForGroup|GetAbilityEffect|GetAbilityEffectById|GetAbilitySound|GetAbilitySoundById|GetAIDifficulty|GetAllyColorFilterState|'.
				  'GetAttacker|GetBuyingUnit|GetCameraBoundMaxX|GetCameraBoundMaxY|GetCameraBoundMinX|GetCameraBoundMinY|GetCameraEyePositionLoc|GetCameraEyePositionX|GetCameraEyePositionY|'.
				  'GetCameraEyePositionZ|GetCameraField|GetCameraMargin|GetCameraTargetPositionLoc|GetCameraTargetPositionX|GetCameraTargetPositionY|GetCameraTargetPositionZ|GetCancelledStructure|'.
				  'GetChangingUnit|GetChangingUnitPrevOwner|GetClickedButton|GetClickedDialog|GetConstructedStructure|GetConstructingStructure|GetCreatureDensity|GetCreepCampFilterState|'.
				  'GetCustomCampaignButtonVisible|GetDecayingUnit|GetDefaultDifficulty|GetDestructableLife|GetDestructableMaxLife|GetDestructableName|GetDestructableOccluderHeight|GetDestructableTypeId|'.
				  'GetDestructableX|GetDestructableY|GetDetectedUnit|GetDyingUnit|GetEnteringUnit|GetEnumDestructable|GetEnumItem|GetEnumPlayer|GetEnumUnit|GetEventDamage|GetEventDamageSource|'.
				  'GetEventDetectingPlayer|GetEventGameState|GetEventPlayerChatString|GetEventPlayerChatStringMatched|GetEventPlayerState|GetEventTargetUnit|GetEventUnitState|GetExpiredTimer|'.
				  'GetFilterDestructable|GetFilterItem|GetFilterPlayer|GetFilterUnit|GetFloatGameState|GetFoodMade|GetFoodUsed|GetGameDifficulty|GetGamePlacement|GetGameSpeed|GetGameTypeSelected|GetHeroAgi|'.
				  'GetHeroInt|GetHeroLevel|GetHeroProperName|GetHeroSkillPoints|GetHeroStr|GetHeroXP|GetIntegerGameState|GetIssuedOrderId|GetItemCharges|GetItemLevel|GetItemName|GetItemPlayer|GetItemType|'.
				  'GetItemTypeId|GetItemUserData|GetItemX|GetItemY|GetKillingUnit|GetLearnedSkill|GetLearnedSkillLevel|GetLearningUnit|GetLeavingUnit|GetLevelingUnit|GetLightningColorA|GetLightningColorB|'.
				  'GetLightningColorG|GetLightningColorR|GetLoadedUnit|GetLocalizedHotkey|GetLocalizedString|GetLocalPlayer|GetLocationX|GetLocationY|GetLocationZ|GetManipulatedItem|GetManipulatingUnit|'.
				  'GetObjectName|GetOrderedUnit|GetOrderPointLoc|GetOrderPointX|GetOrderPointY|GetOrderTarget|GetOrderTargetDestructable|GetOrderTargetItem|GetOrderTargetUnit|GetOwningPlayer|GetPlayerAlliance|'.
				  'GetPlayerColor|GetPlayerController|GetPlayerHandicap|GetPlayerHandicapXP|GetPlayerId|GetPlayerName|GetPlayerRace|GetPlayers|GetPlayerScore|GetPlayerSelectable|GetPlayerSlotState|'.
				  'GetPlayerStartLocation|GetPlayerState|GetPlayerStructureCount|GetPlayerTaxRate|GetPlayerTeam|GetPlayerTechCount|GetPlayerTechMaxAllowed|GetPlayerTechResearched|GetPlayerTypedUnitCount|'.
				  'GetPlayerUnitCount|GetRandomInt|GetRandomReal|GetRectCenterX|GetRectCenterY|GetRectMaxX|GetRectMaxY|GetRectMinX|GetRectMinY|GetRescuer|GetResearched|GetResearchingUnit|GetResourceAmount|'.
				  'GetResourceDensity|GetRevivableUnit|GetRevivingUnit|GetSaveBasicFilename|GetSellingUnit|GetSoldItem|GetSoldUnit|GetSoundDuration|GetSoundFileDuration|GetSoundIsLoading|GetSoundIsPlaying|'.
				  'GetSpellAbility|GetSpellAbilityId|GetSpellAbilityUnit|GetSpellTargetDestructable|GetSpellTargetItem|GetSpellTargetLoc|GetSpellTargetUnit|GetStartLocationLoc|GetStartLocationX|GetStartLocationY|'.
				  'GetStartLocPrio|GetStartLocPrioSlot|GetStoredBoolean|GetStoredInteger|GetStoredReal|GetStoredString|GetSummonedUnit|GetSummoningUnit|GetTeams|GetTerrainCliffLevel|GetTerrainType|GetTerrainVariance|'.
				  'GetTimeOfDayScale|GetTournamentFinishNowPlayer|GetTournamentFinishNowRule|GetTournamentFinishSoonTimeRemaining|GetTournamentScore|GetTrainedUnit|GetTrainedUnitType|GetTransportUnit|'.
				  'GetTriggerEvalCount|GetTriggerEventId|GetTriggerExecCount|GetTriggeringRegion|GetTriggeringTrackable|GetTriggeringTrigger|GetTriggerPlayer|GetTriggerUnit|GetTriggerWidget|GetUnitAbilityLevel|'.
				  'GetUnitAcquireRange|GetUnitCurrentOrder|GetUnitDefaultAcquireRange|GetUnitDefaultFlyHeight|GetUnitDefaultMoveSpeed|GetUnitDefaultPropWindow|GetUnitDefaultTurnSpeed|GetUnitFacing|GetUnitFlyHeight|'.
				  'GetUnitFoodMade|GetUnitFoodUsed|GetUnitLevel|GetUnitLoc|GetUnitMoveSpeed|GetUnitName|GetUnitPointValue|GetUnitPointValueByType|GetUnitPropWindow|GetUnitRace|GetUnitRallyDestructable|GetUnitRallyPoint|'.
				  'GetUnitRallyUnit|GetUnitState|GetUnitTurnSpeed|GetUnitTypeId|GetUnitUserData|GetUnitX|GetUnitY|GetWidgetLife|GetWidgetX|GetWidgetY|GetWinningPlayer|GetWorldBounds|GroupAddUnit|GroupClear|'.
				  'GroupEnumUnitsInRange|GroupEnumUnitsInRangeCounted|GroupEnumUnitsInRangeOfLoc|GroupEnumUnitsInRangeOfLocCounted|GroupEnumUnitsInRect|GroupEnumUnitsInRectCounted|GroupEnumUnitsOfPlayer|'.
				  'GroupEnumUnitsOfType|GroupEnumUnitsOfTypeCounted|GroupEnumUnitsSelected|GroupImmediateOrder|GroupImmediateOrderById|GroupPointOrder|GroupPointOrderById|GroupPointOrderByIdLoc|GroupPointOrderLoc|'.
				  'GroupRemoveUnit|GroupTargetOrder|GroupTargetOrderById|HaveStoredBoolean|HaveStoredInteger|HaveStoredReal|HaveStoredString|HaveStoredUnit|I2R|I2S|IncUnitAbilityLevel|InitGameCache|IsCineFilterDisplayed|'.
				  'IsDestructableInvulnerable|IsFogEnabled|IsFoggedToPlayer|IsFogMaskEnabled|IsGameTypeSupported|IsHeroUnitId|IsItemIdPawnable|IsItemIdPowerup|IsItemIdSellable|IsItemInvulnerable|IsItemOwned|IsItemPawnable|'.
				  'IsItemPowerup|IsItemSellable|IsItemVisible|IsLeaderboardDisplayed|IsLocationFoggedToPlayer|IsLocationInRegion|IsLocationMaskedToPlayer|IsLocationVisibleToPlayer|IsMapFlagSet|IsMaskedToPlayer|'.
				  'IsMultiboardDisplayed|IsMultiboardMinimized|IsNoDefeatCheat|IsNoVictoryCheat|IsPlayerAlly|IsPlayerEnemy|IsPlayerInForce|IsPlayerObserver|IsPlayerRacePrefSet|IsPointBlighted|IsPointInRegion|IsQuestCompleted|'.
				  'IsQuestDiscovered|IsQuestEnabled|IsQuestFailed|IsQuestItemCompleted|IsQuestRequired|IssueBuildOrder|IssueBuildOrderById|IssueImmediateOrder|IssueImmediateOrderById|IssueInstantPointOrder|'.
				  'IssueInstantPointOrderById|IssueInstantTargetOrder|IssueInstantTargetOrderById|IssueNeutralImmediateOrder|IssueNeutralImmediateOrderById|IssueNeutralPointOrder|IssueNeutralPointOrderById|'.
				  'IssueNeutralTargetOrder|IssueNeutralTargetOrderById|IssuePointOrder|IssuePointOrderById|IssuePointOrderByIdLoc|IssuePointOrderLoc|IssueTargetOrder|IssueTargetOrderById|IsSuspendedXP|'.
				  'IsTerrainPathable|IsTimerDialogDisplayed|IsTriggerEnabled|IsTriggerWaitOnSleeps|IsUnit|IsUnitAlly|IsUnitDetected|IsUnitEnemy|IsUnitFogged|IsUnitHidden|IsUnitIdType|IsUnitIllusion|IsUnitInForce|'.
				  'IsUnitInGroup|IsUnitInRange|IsUnitInRangeLoc|IsUnitInRangeXY|IsUnitInRegion|IsUnitInTransport|IsUnitInvisible|IsUnitLoaded|IsUnitMasked|IsUnitOwnedByPlayer|IsUnitPaused|IsUnitRace|IsUnitSelected|'.
				  'IsUnitType|IsUnitVisible|IsVisibleToPlayer|ItemPoolAddItemType|ItemPoolRemoveItemType|KillDestructable|KillSoundWhenDone|KillUnit|LeaderboardAddItem|LeaderboardClear|LeaderboardDisplay|'.
				  'LeaderboardGetItemCount|LeaderboardGetLabelText|LeaderboardGetPlayerIndex|LeaderboardHasPlayerItem|LeaderboardRemoveItem|LeaderboardRemovePlayerItem|LeaderboardSetItemLabel|LeaderboardSetItemLabelColor|'.
				  'LeaderboardSetItemStyle|LeaderboardSetItemValue|LeaderboardSetItemValueColor|LeaderboardSetLabel|LeaderboardSetLabelColor|LeaderboardSetSizeByItemCount|LeaderboardSetStyle|LeaderboardSetValueColor|'.
				  'LeaderboardSortItemsByLabel|LeaderboardSortItemsByPlayer|LeaderboardSortItemsByValue|LoadGame|Location|MoveLightning|MoveLightningEx|MoveLocation|MoveRectTo|MoveRectToLoc|MultiboardClear|'.
				  'MultiboardDisplay|MultiboardGetColumnCount|MultiboardGetItem|MultiboardGetRowCount|MultiboardGetTitleText|MultiboardMinimize|MultiboardReleaseItem|MultiboardSetColumnCount|MultiboardSetItemIcon|'.
				  'MultiboardSetItemsIcon|MultiboardSetItemsStyle|MultiboardSetItemStyle|MultiboardSetItemsValue|MultiboardSetItemsValueColor|MultiboardSetItemsWidth|MultiboardSetItemValue|MultiboardSetItemValueColor|'.
				  'MultiboardSetItemWidth|MultiboardSetRowCount|MultiboardSetTitleText|MultiboardSetTitleTextColor|MultiboardSuppressDisplay|NewSoundEnvironment|Not|Or|OrderId|OrderId2String|PanCameraTo|PanCameraToTimed|'.
				  'PanCameraToTimedWithZ|PanCameraToWithZ|PauseCompAI|PauseGame|PauseTimer|PauseUnit|PingMinimap|PingMinimapEx|PlaceRandomItem|PlaceRandomUnit|PlayCinematic|Player|PlayerGetLeaderboard|PlayerSetLeaderboard|'.
				  'PlayModelCinematic|PlayMusic|PlayMusicEx|PlayThematicMusic|PlayThematicMusicEx|Pow|Preload|PreloadEnd|PreloadEndEx|Preloader|PreloadGenClear|PreloadGenEnd|PreloadGenStart|PreloadRefresh|PreloadStart|'.
				  'QuestCreateItem|QuestItemSetCompleted|QuestItemSetDescription|QuestSetCompleted|QuestSetDescription|QuestSetDiscovered|QuestSetEnabled|QuestSetFailed|QuestSetIconPath|QuestSetRequired|QuestSetTitle|'.
				  'QueueDestructableAnimation|QueueUnitAnimation|R2I|R2S|R2SW|Rad2Deg|Rect|RectFromLoc|RecycleGuardPosition|RegionAddCell|RegionAddCellAtLoc|RegionAddRect|RegionClearCell|RegionClearCellAtLoc|RegionClearRect|'.
				  'RegisterStackedSound|ReloadGame|ReloadGameCachesFromDisk|RemoveAllGuardPositions|RemoveDestructable|RemoveGuardPosition|RemoveItem|RemoveItemFromAllStock|RemoveItemFromStock|RemoveLocation|RemovePlayer|'.
				  'RemoveRect|RemoveRegion|RemoveSaveDirectory|RemoveUnit|RemoveUnitFromAllStock|RemoveUnitFromStock|RemoveWeatherEffect|RenameSaveDirectory|ResetTerrainFog|ResetToGameCamera|ResetTrigger|ResetUbersplat|ResetUnitLookAt|'.
				  'RestartGame|RestoreUnit|ResumeMusic|ResumeTimer|ReviveHero|ReviveHeroLoc|S2I|S2R|SaveGame|SaveGameCache|SaveGameExists|SelectHeroSkill|SelectUnit|SetAllItemTypeSlots|SetAllUnitTypeSlots|SetAllyColorFilterState|'.
				  'SetAltMinimapIcon|SetBlight|SetBlightLoc|SetBlightPoint|SetBlightRect|SetCameraBounds|SetCameraField|SetCameraOrientController|SetCameraPosition|SetCameraQuickPosition|SetCameraRotateMode|SetCameraTargetController|'.
				  'SetCampaignAvailable|SetCampaignMenuRace|SetCampaignMenuRaceEx|SetCineFilterBlendMode|SetCineFilterDuration|SetCineFilterEndColor|SetCineFilterEndUV|SetCineFilterStartColor|SetCineFilterStartUV|SetCineFilterTexMapFlags|'.
				  'SetCineFilterTexture|SetCinematicCamera|SetCinematicScene|SetCreatureDensity|SetCreepCampFilterState|SetCustomCampaignButtonVisible|SetDayNightModels|SetDefaultDifficulty|SetDestructableAnimation|SetDestructableAnimationSpeed|'.
				  'SetDestructableInvulnerable|SetDestructableLife|SetDestructableMaxLife|SetDestructableOccluderHeight|SetDoodadAnimation|SetDoodadAnimationRect|SetEdCinematicAvailable|SetFloatGameState|SetFogStateRadius|SetFogStateRadiusLoc|'.
				  'SetFogStateRect|SetGameDifficulty|SetGamePlacement|SetGameSpeed|SetGameTypeSupported|SetHeroAgi|SetHeroInt|SetHeroLevel|SetHeroStr|SetHeroXP|SetImageAboveWater|SetImageColor|SetImageConstantHeight|SetImagePosition|SetImageRender|'.
				  'SetImageRenderAlways|SetImageType|SetIntegerGameState|SetIntroShotModel|SetIntroShotText|SetItemCharges|SetItemDropID|SetItemDropOnDeath|SetItemDroppable|SetItemInvulnerable|SetItemPawnable|SetItemPlayer|SetItemPosition|'.
				  'SetItemTypeSlots|SetItemUserData|SetItemVisible|SetLightningColor|SetMapDescription|SetMapFlag|SetMapMusic|SetMapName|SetMissionAvailable|SetMusicPlayPosition|SetMusicVolume|SetOpCinematicAvailable|SetPlayerAbilityAvailable|'.
				  'SetPlayerAlliance|SetPlayerColor|SetPlayerController|SetPlayerHandicap|SetPlayerHandicapXP|SetPlayerName|SetPlayerOnScoreScreen|SetPlayerRacePreference|SetPlayerRaceSelectable|SetPlayers|SetPlayerStartLocation|SetPlayerState|'.
				  'SetPlayerTaxRate|SetPlayerTeam|SetPlayerTechMaxAllowed|SetPlayerTechResearched|SetPlayerUnitsOwner|SetRandomSeed|SetRect|SetRectFromLoc|SetReservedLocalHeroButtons|SetResourceAmount|SetResourceDensity|SetSkyModel|SetSoundChannel|'.
				  'SetSoundConeAngles|SetSoundConeOrientation|SetSoundDistanceCutoff|SetSoundDistances|SetSoundDuration|SetSoundParamsFromLabel|SetSoundPitch|SetSoundPlayPosition|SetSoundPosition|SetSoundVelocity|SetSoundVolume|SetStartLocPrio|'.
				  'SetStartLocPrioCount|SetTeams|SetTerrainFog|SetTerrainFogEx|SetTerrainPathable|SetTerrainType|SetTextTagAge|SetTextTagColor|SetTextTagFadepoint|SetTextTagLifespan|SetTextTagPermanent|SetTextTagPos|SetTextTagPosUnit|SetTextTagSuspended|'.
				  'SetTextTagText|SetTextTagVelocity|SetTextTagVisibility|SetThematicMusicPlayPosition|SetTimeOfDayScale|SetTutorialCleared|SetUbersplatRender|SetUbersplatRenderAlways|SetUnitAbilityLevel|SetUnitAcquireRange|SetUnitAnimation|'.
				  'SetUnitAnimationByIndex|SetUnitAnimationWithRarity|SetUnitBlendTime|SetUnitColor|SetUnitCreepGuard|SetUnitExploded|SetUnitFacing|SetUnitFacingTimed|SetUnitFlyHeight|SetUnitFog|SetUnitInvulnerable|SetUnitLookAt|SetUnitMoveSpeed|'.
				  'SetUnitOwner|SetUnitPathing|SetUnitPosition|SetUnitPositionLoc|SetUnitPropWindow|SetUnitRescuable|SetUnitRescueRange|SetUnitScale|SetUnitState|SetUnitTimeScale|SetUnitTurnSpeed|SetUnitTypeSlots|SetUnitUseFood|SetUnitUserData|'.
				  'SetUnitVertexColor|SetUnitX|SetUnitY|SetWaterBaseColor|SetWaterDeforms|SetWidgetLife|ShowDestructable|ShowImage|ShowInterface|ShowUbersplat|ShowUnit|Sin|SquareRoot|StartCampaignAI|StartMeleeAI|StartSound|StopCamera|StopMusic|'.
				  'StopSound|StoreBoolean|StoreInteger|StoreReal|StoreString|StoreUnit|StringCase|StringLength|SubString|SuspendHeroXP|SuspendTimeOfDay|SyncSelections|SyncStoredBoolean|SyncStoredInteger|SyncStoredReal|SyncStoredString|'.
				  'SyncStoredUnit|Tan|TerrainDeformCrater|TerrainDeformRandom|TerrainDeformRipple|TerrainDeformStop|TerrainDeformStopAll|TerrainDeformWave|TimerDialogDisplay|TimerDialogSetRealTimeRemaining|TimerDialogSetSpeed|TimerDialogSetTimeColor|'.
				  'TimerDialogSetTitle|TimerDialogSetTitleColor|TimerGetElapsed|TimerGetRemaining|TimerGetTimeout|TimerStart|TriggerAddAction|TriggerAddCondition|TriggerClearActions|TriggerClearConditions|TriggerEvaluate|TriggerExecute|'.
				  'TriggerExecuteWait|TriggerRegisterDeathEvent|TriggerRegisterDialogButtonEvent|TriggerRegisterDialogEvent|TriggerRegisterEnterRegion|TriggerRegisterFilterUnitEvent|TriggerRegisterGameEvent|TriggerRegisterGameStateEvent|'.
				  'TriggerRegisterLeaveRegion|TriggerRegisterPlayerAllianceChange|TriggerRegisterPlayerChatEvent|TriggerRegisterPlayerEvent|TriggerRegisterPlayerStateEvent|TriggerRegisterPlayerUnitEvent|TriggerRegisterTimerEvent|TriggerRegisterTimerExpireEvent|'.
				  'TriggerRegisterTrackableHitEvent|TriggerRegisterTrackableTrackEvent|TriggerRegisterUnitEvent|TriggerRegisterUnitInRange|TriggerRegisterUnitStateEvent|TriggerRegisterVariableEvent|TriggerRemoveAction|TriggerRemoveCondition|TriggerSleepAction|'.
				  'TriggerSyncReady|TriggerSyncStart|TriggerWaitForSound|TriggerWaitOnSleeps|UnitAddAbility|UnitAddIndicator|UnitAddItem|UnitAddItemById|UnitAddItemToSlotById|UnitAddSleep|UnitAddSleepPerm|UnitAddType|UnitApplyTimedLife|UnitCanSleep|UnitCanSleepPerm|'.
				  'UnitCountBuffsEx|UnitDamagePoint|UnitDamageTarget|UnitDropItemPoint|UnitDropItemSlot|UnitDropItemTarget|UnitHasBuffsEx|UnitHasItem|UnitId|UnitId2String|UnitIgnoreAlarm|UnitIgnoreAlarmToggled|UnitInventorySize|UnitIsSleeping|UnitItemInSlot|'.
				  'UnitMakeAbilityPermanent|UnitModifySkillPoints|UnitPauseTimedLife|UnitPoolAddUnitType|UnitPoolRemoveUnitType|UnitRemoveAbility|UnitRemoveBuffs|UnitRemoveBuffsEx|UnitRemoveItem|UnitRemoveItemFromSlot|UnitRemoveType|UnitResetCooldown|'.
				  'UnitSetConstructionProgress|UnitSetUpgradeProgress|UnitSetUsesAltIcon|UnitShareVision|UnitStripHeroLevel|UnitSuspendDecay|UnitUseItem|UnitUseItemPoint|UnitUseItemTarget|UnitWakeUp|UnregisterStackedSound|VersionCompatible|VersionGet|'.
				  'FlushChildHashtable|FlushParentHashtable|GetHandleId|GetTriggerDestructable|HaveSavedBoolean|HaveSavedHandle|HaveSavedInteger|HaveSavedReal|HaveSavedString|InitHashtable|LoadAbilityHandle|LoadBoolean|LoadBooleanExprHandle|LoadButtonHandle|LoadDefeatConditionHandle|'.
				  'LoadDestructableHandle|LoadDialogHandle|LoadEffectHandle|LoadFogModifierHandle|LoadFogStateHandle|LoadForceHandle|LoadGroupHandle|LoadImageHandle|LoadInteger|LoadItemHandle|LoadItemPoolHandle|LoadLeaderboardHandle|LoadLightningHandle|LoadLocationHandle|LoadMultiboardHandle|'.
				  'LoadMultiboardItemHandle|LoadPlayerHandle|LoadQuestHandle|LoadQuestItemHandle|LoadReal|LoadRectHandle|LoadRegionHandle|LoadSoundHandle|LoadStr|LoadTextTagHandle|LoadTimerDialogHandle|LoadTimerHandle|LoadTrackableHandle|LoadTriggerActionHandle|LoadTriggerConditionHandle|'.
				  'LoadTriggerEventHandle|LoadTriggerHandle|LoadUbersplatHandle|LoadUnitHandle|LoadUnitPoolHandle|LoadWidgetHandle|RemoveSavedBoolean|RemoveSavedHandle|RemoveSavedInteger|RemoveSavedReal|RemoveSavedString|SaveAbilityHandle|SaveBoolean|SaveBooleanExprHandle|SaveButtonHandle|'.
				  'SaveDefeatConditionHandle|SaveDestructableHandle|SaveDialogHandle|SaveEffectHandle|SaveFogModifierHandle|SaveFogStateHandle|SaveForceHandle|SaveGroupHandle|SaveImageHandle|SaveInteger|SaveItemHandle|SaveItemPoolHandle|SaveLeaderboardHandle|SaveLightningHandle|SaveLocationHandle|'.
				  'SaveMultiboardHandle|SaveMultiboardItemHandle|SavePlayerHandle|SaveQuestHandle|SaveQuestItemHandle|SaveReal|SaveRectHandle|SaveRegionHandle|SaveSoundHandle|SaveStr|SaveTextTagHandle|SaveTimerDialogHandle|SaveTimerHandle|SaveTrackableHandle|SaveTriggerActionHandle|'.
				  'SaveTriggerConditionHandle|SaveTriggerEventHandle|SaveTriggerHandle|SaveUbersplatHandle|SaveUnitHandle|SaveUnitPoolHandle|SaveWidgetHandle|StringHash|'.
				  'VersionSupported|VolumeGroupReset|VolumeGroupSetVolume|WaygateActivate|WaygateGetDestinationX|WaygateGetDestinationY|WaygateIsActive|WaygateSetDestination';
	$bjs		= 'AbortCinematicFadeBJ|AcosBJ|AddHeroXPSwapped|AddItemToStockBJ|AddLightningLoc|AddResourceAmountBJ|AddSpecialEffectLocBJ|AddSpecialEffectTargetUnitBJ|AddUnitAnimationPropertiesBJ|'.
				  'AddUnitToStockBJ|AddWeatherEffectSaveLast|AdjustCameraBoundsBJ|AdjustCameraBoundsForPlayerBJ|AdjustPlayerStateBJ|AdjustPlayerStateSimpleBJ|AllowVictoryDefeat|AngleBetweenPoints|'.
				  'AsinBJ|Atan2BJ|AtanBJ|AttachSoundToUnitBJ|BJDebugMsg|BlightGoldMineForPlayer|BlightGoldMineForPlayerBJ|CameraClearNoiseForPlayer|CameraResetSmoothingFactorBJ|CameraSetEQNoiseForPlayer|'.
				  'CameraSetSmoothingFactorBJ|CameraSetSourceNoiseForPlayer|CameraSetTargetNoiseForPlayer|CameraSetupApplyForPlayer|CameraSetupGetFieldSwap|CancelCineSceneBJ|ChangeElevatorHeight|'.
				  'ChangeElevatorWallBlocker|ChangeElevatorWalls|CheckInitPlayerSlotAvailability|CheckItemcodeStatus|CheckItemStatus|ChooseRandomCreepBJ|ChooseRandomItemBJ|ChooseRandomItemExBJ|'.
				  'ChooseRandomNPBuildingBJ|CinematicFadeBJ|CinematicFadeCommonBJ|CinematicFilterGenericBJ|CinematicModeBJ|CinematicModeExBJ|ClearMapMusicBJ|ClearSelectionForPlayer|ClearTextMessagesBJ|'.
				  'CommentString|CompareLocationsBJ|CompareRectsBJ|ConditionalTriggerExecute|ConfigureNeutralVictim|ContinueCinematicFadeAfterBJ|ContinueCinematicFadeBJ|ConvertedPlayer|CopySaveGameBJ|'.
				  'CosBJ|CountLivingPlayerUnitsOfTypeId|CountPlayersInForceBJ|CountPlayersInForceEnum|CountUnitsInGroup|CountUnitsInGroupEnum|CreateCorpseLocBJ|CreateDeadDestructableLocBJ|CreateDefeatConditionBJ|'.
				  'CreateDestructableLoc|CreateFogModifierRadiusLocBJ|CreateFogModifierRadiusLocSimple|CreateFogModifierRectBJ|CreateFogModifierRectSimple|CreateImageBJ|CreateItemLoc|CreateLeaderboardBJ|CreateMultiboardBJ|'.
				  'CreateNUnitsAtLoc|CreateNUnitsAtLocFacingLocBJ|CreatePermanentCorpseLocBJ|CreateQuestBJ|CreateQuestItemBJ|CreateTextTagLocBJ|CreateTextTagUnitBJ|CreateTimerBJ|CreateTimerDialogBJ|CreateUbersplatBJ|'.
				  'CreateUnitAtLocSaveLast|CustomDefeatBJ|CustomDefeatDialogBJ|CustomDefeatLoadBJ|CustomDefeatQuitBJ|CustomDefeatReduceDifficultyBJ|CustomDefeatRestartBJ|CustomVictoryBJ|CustomVictoryDialogBJ|CustomVictoryOkBJ|'.
				  'CustomVictoryQuitBJ|CustomVictorySkipBJ|DecUnitAbilityLevelSwapped|DefeatConditionSetDescriptionBJ|DelayedSuspendDecay|DelayedSuspendDecayBoneEnum|DelayedSuspendDecayCreate|DelayedSuspendDecayFleshEnum|'.
				  'DelayedSuspendDecayStopAnimEnum|DestroyDefeatConditionBJ|DestroyEffectBJ|DestroyLeaderboardBJ|DestroyLightningBJ|DestroyMultiboardBJ|DestroyQuestBJ|DestroyTextTagBJ|DestroyTimerBJ|DestroyTimerDialogBJ|'.
				  'DestructableAddIndicatorBJ|DetectGameStarted|DialogAddButtonBJ|DialogAddButtonWithHotkeyBJ|DialogClearBJ|DialogDisplayBJ|DialogSetMessageBJ|DisplayCineFilterBJ|DisplayTextToForce|DisplayTimedTextToForce|'.
				  'DistanceBetweenPoints|DoesUnitGenerateAlarms|DoNothing|DoTransmissionBasicsXYBJ|EnableCreepSleepBJ|EnableDawnDusk|EnableOcclusionBJ|EnableWorldFogBoundaryBJ|EndGameBJ|EndThematicMusicBJ|EnumDestructablesInCircleBJ|'.
				  'EnumDestructablesInCircleBJFilter|EnumDestructablesInRectAll|EnumItemsInRectBJ|EnumUnitsSelected|ExplodeUnitBJ|FFAInitPlayerSlots|FindElevatorWallBlockerEnum|FinishCinematicFadeAfterBJ|FinishCinematicFadeBJ|'.
				  'FlashQuestDialogButtonBJ|FlushGameCacheBJ|FlushStoredMissionBJ|FogEnableOff|FogEnableOn|FogMaskEnableOff|FogMaskEnableOn|ForceAddPlayerSimple|ForceCinematicSubtitlesBJ|ForcePickRandomPlayer|ForcePickRandomPlayerEnum|'.
				  'ForceRemovePlayerSimple|ForceSetLeaderboardBJ|ForceUICancelBJ|ForceUIKeyBJ|ForGroupBJ|GameOverDialogBJ|GetAbilityEffectBJ|GetAbilityName|GetAbilitySoundBJ|GetAttackedUnitBJ|GetBooleanAnd|GetBooleanOr|GetCameraBoundsMapRect|'.
				  'GetClickedButtonBJ|GetClickedDialogBJ|GetConvertedPlayerId|GetCurrentCameraBoundsMapRectBJ|GetCurrentCameraSetup|GetDestructableLoc|GetDyingDestructable|GetElevatorHeight|GetEntireMapRect|GetFadeFromSeconds|GetForceOfPlayer|'.
				  'GetForLoopIndexA|GetForLoopIndexB|GetHeroStatBJ|GetInventoryIndexOfItemTypeBJ|GetIssuedOrderIdBJ|GetItemLifeBJ|GetItemLoc|GetItemOfTypeFromUnitBJ|GetKillingUnitBJ|GetLastCreatedButtonBJ|GetLastCreatedDefeatConditionBJ|'.
				  'GetLastCreatedDestructable|GetLastCreatedEffectBJ|GetLastCreatedFogModifier|GetLastCreatedGameCacheBJ|GetLastCreatedGroup|GetLastCreatedGroupEnum|GetLastCreatedImage|GetLastCreatedItem|GetLastCreatedLeaderboard|'.
				  'GetLastCreatedLightningBJ|GetLastCreatedMultiboard|GetLastCreatedQuestBJ|GetLastCreatedQuestItemBJ|GetLastCreatedTerrainDeformation|GetLastCreatedTextTag|GetLastCreatedTimerBJ|GetLastCreatedTimerDialogBJ|GetLastCreatedUbersplat|'.
				  'GetLastCreatedUnit|GetLastCreatedWeatherEffect|GetLastHauntedGoldMine|GetLastPlayedMusic|GetLastPlayedSound|GetLastRemovedItem|GetLastReplacedUnitBJ|GetLastRestoredUnitBJ|GetLastTransmissionDurationBJ|GetLearnedSkillBJ|'.
				  'GetLightningColorABJ|GetLightningColorBBJ|GetLightningColorGBJ|GetLightningColorRBJ|GetLoadedUnitBJ|GetPlayableMapRect|GetPlayerHandicapBJ|GetPlayerHandicapXPBJ|GetPlayersAll|GetPlayersAllies|GetPlayersByMapControl|'.
				  'GetPlayersEnemies|GetPlayersMatching|GetPlayerStartLocationLoc|GetPlayerStartLocationX|GetPlayerStartLocationY|GetPlayerTaxRateBJ|GetPlayerTechCountSimple|GetPlayerTechMaxAllowedSwap|GetRandomDirectionDeg|GetRandomLocInRect|'.
				  'GetRandomPercentageBJ|GetRandomSubGroup|GetRandomSubGroupEnum|GetRectCenter|GetRectFromCircleBJ|GetRectHeightBJ|GetRectWidthBJ|GetSoundDurationBJ|GetSoundFileDurationBJ|GetSoundIsPlayingBJ|GetStoredBooleanBJ|GetStoredIntegerBJ|'.
				  'GetStoredRealBJ|GetStoredStringBJ|GetTerrainCliffLevelBJ|GetTerrainTypeBJ|GetTerrainVarianceBJ|GetTimeOfDay|GetTimeOfDayScalePercentBJ|GetTransmissionDuration|GetTransportUnitBJ|GetUnitAbilityLevelSwapped|GetUnitDefaultPropWindowBJ|'.
				  'GetUnitLifePercent|GetUnitManaPercent|GetUnitPropWindowBJ|GetUnitsInRangeOfLocAll|GetUnitsInRangeOfLocMatching|GetUnitsInRectAll|GetUnitsInRectMatching|GetUnitsInRectOfPlayer|GetUnitsInRectOfPlayerFilter|GetUnitsOfPlayerAll|'.
				  'GetUnitsOfPlayerAndTypeId|GetUnitsOfPlayerAndTypeIdFilter|GetUnitsOfPlayerMatching|GetUnitsOfTypeIdAll|GetUnitsOfTypeIdAllFilter|GetUnitsSelectedAll|GetUnitStatePercent|GetUnitStateSwap|GroupAddGroup|GroupAddGroupEnum|GroupAddUnitSimple|'.
				  'GroupImmediateOrderBJ|GroupPickRandomUnit|GroupPickRandomUnitEnum|GroupPointOrderLocBJ|GroupRemoveGroup|GroupRemoveGroupEnum|GroupRemoveUnitSimple|GroupTargetDestructableOrder|GroupTargetItemOrder|GroupTargetOrderBJ|GroupTrainOrderByIdBJ|'.
				  'HaveStoredValue|IAbsBJ|IMaxBJ|IMinBJ|IncUnitAbilityLevelSwapped|InitBlizzard|InitBlizzardGlobals|InitDNCSounds|InitGameCacheBJ|InitGenericPlayerSlots|InitMapRects|InitNeutralBuildings|InitQueuedTriggers|InitRescuableBehaviorBJ|InitSummonableCaps|'.
				  'IntegerTertiaryOp|IsCustomCampaignButtonVisibile|IsDawnDuskEnabled|IsDestructableAliveBJ|IsDestructableDeadBJ|IsDestructableInvulnerableBJ|ISignBJ|IsItemHiddenBJ|IsPlayerFlagSetBJ|IsPlayerSlotState|IsPointBlightedBJ|IssueBuildOrderByIdLocBJ|'.
				  'IssueHauntOrderAtLocBJ|IssueHauntOrderAtLocBJFilter|IssueImmediateOrderBJ|IssuePointOrderLocBJ|IssueTargetDestructableOrder|IssueTargetItemOrder|IssueTargetOrderBJ|IssueTrainOrderByIdBJ|IssueUpgradeOrderByIdBJ|IsTerrainPathableBJ|'.
				  'IsTriggerQueuedBJ|IsTriggerQueueEmptyBJ|IsUnitAliveBJ|IsUnitDeadBJ|IsUnitGroupDeadBJ|IsUnitGroupDeadBJEnum|IsUnitGroupEmptyBJ|IsUnitGroupEmptyBJEnum|IsUnitGroupInRectBJ|IsUnitGroupInRectBJEnum|IsUnitHiddenBJ|IsUnitIllusionBJ|IsUnitInTransportBJ|'.
				  'IsUnitLoadedBJ|IsUnitPausedBJ|ItemAddIndicatorBJ|KillSoundWhenDoneBJ|LeaderboardAddItemBJ|LeaderboardDisplayBJ|LeaderboardGetIndexedPlayerBJ|LeaderboardGetItemCountBJ|LeaderboardGetPlayerIndexBJ|LeaderboardHasPlayerItemBJ|LeaderboardRemovePlayerItemBJ|'.
				  'LeaderboardResizeBJ|LeaderboardSetLabelBJ|LeaderboardSetLabelColorBJ|LeaderboardSetPlayerItemLabelBJ|LeaderboardSetPlayerItemLabelColorBJ|LeaderboardSetPlayerItemStyleBJ|LeaderboardSetPlayerItemValueBJ|LeaderboardSetPlayerItemValueColorBJ|'.
				  'LeaderboardSetStyleBJ|LeaderboardSetValueColorBJ|LeaderboardSortItemsBJ|LeaderboardSortItemsByLabelBJ|LeaderboardSortItemsByPlayerBJ|LivingPlayerUnitsOfTypeIdFilter|LoadGameBJ|LockGameSpeedBJ|LockGuardPosition|MakeUnitRescuableToForceBJ|'.
				  'MakeUnitRescuableToForceBJEnum|MakeUnitsPassiveForPlayer|MakeUnitsPassiveForPlayerEnum|MakeUnitsPassiveForTeam|MarkGameStarted|MeleeCheckAddedUnit|MeleeCheckForCrippledPlayers|MeleeCheckForLosersAndVictors|MeleeCheckForVictors|MeleeCheckLostUnit|'.
				  'MeleeClearExcessUnit|MeleeClearExcessUnits|MeleeClearNearbyUnits|MeleeCrippledPlayerTimeout|MeleeDefeatDialogBJ|MeleeDoDefeat|MeleeDoDefeatEnum|MeleeDoDrawEnum|MeleeDoLeave|MeleeDoVictoryEnum|MeleeEnumFindNearestMine|MeleeExposeAllPlayers|'.
				  'MeleeExposePlayer|MeleeFindNearestMine|MeleeGetAllyCount|MeleeGetAllyKeyStructureCount|MeleeGetAllyStructureCount|MeleeGetCrippledRevealedMessage|MeleeGetCrippledTimerMessage|MeleeGetCrippledWarningMessage|MeleeGetLocWithinRect|MeleeGetNearestValueWithin|'.
				  'MeleeGetProjectedLoc|MeleeGrantHeroItems|MeleeGrantItemsToHero|MeleeGrantItemsToHiredHero|MeleeGrantItemsToTrainedHero|MeleeInitPlayerSlots|MeleeInitVictoryDefeat|MeleePlayerIsCrippled|MeleePlayerIsOpponent|MeleeRandomHeroLoc|MeleeRemoveObservers|'.
				  'MeleeStartingAI|MeleeStartingHeroLimit|MeleeStartingResources|MeleeStartingUnits|MeleeStartingUnitsForPlayer|MeleeStartingUnitsHuman|MeleeStartingUnitsNightElf|MeleeStartingUnitsOrc|MeleeStartingUnitsUndead|MeleeStartingUnitsUnknownRace|MeleeStartingVisibility|'.
				  'MeleeTournamentFinishNowRuleA|MeleeTrainedUnitIsHeroBJFilter|MeleeTriggerActionAllianceChange|MeleeTriggerActionConstructCancel|MeleeTriggerActionPlayerDefeated|MeleeTriggerActionPlayerLeft|MeleeTriggerActionUnitConstructionStart|MeleeTriggerActionUnitDeath|'.
				  'MeleeTriggerTournamentFinishNow|MeleeTriggerTournamentFinishSoon|MeleeVictoryDialogBJ|MeleeWasUserPlayer|ModifyGateBJ|ModifyHeroSkillPoints|ModifyHeroStat|ModuloInteger|ModuloReal|MoveLightningLoc|MultiboardAllowDisplayBJ|MultiboardDisplayBJ|MultiboardMinimizeBJ|'.
				  'MultiboardSetItemColorBJ|MultiboardSetItemIconBJ|MultiboardSetItemStyleBJ|MultiboardSetItemValueBJ|MultiboardSetItemWidthBJ|MultiboardSetTitleTextColorBJ|NearbyElevatorExists|NearbyElevatorExistsEnum|NudgeItemsInRectEnum|NudgeObjectsInRect|NudgeUnitsInRectEnum|'.
				  'OffsetLocation|OffsetRectBJ|OneOnOneInitPlayerSlots|OrderId2StringBJ|PanCameraToForPlayer|PanCameraToLocForPlayer|PanCameraToTimedForPlayer|PanCameraToTimedLocForPlayer|PanCameraToTimedLocWithZForPlayer|PauseAllUnitsBJ|PauseAllUnitsBJEnum|PauseGameOff|'.
				  'PauseGameOn|PauseTimerBJ|PauseUnitBJ|PercentTo255|PercentToInt|PerformStockUpdates|PickMeleeAI|PingMinimapForForce|PingMinimapForForceEx|PingMinimapForPlayer|PingMinimapLocForForce|PingMinimapLocForForceEx|PingMinimapLocForPlayer|PlayerGetLeaderboardBJ|'.
				  'PlayersAreCoAllied|PlayMusicBJ|PlayMusicExBJ|PlaySound|PlaySoundAtPointBJ|PlaySoundBJ|PlaySoundFromOffsetBJ|PlaySoundOnUnitBJ|PlayThematicMusicBJ|PlayThematicMusicExBJ|PolarProjectionBJ|PolledWait|PostTriggerExecuteBJ|QuestItemSetCompletedBJ|'.
				  'QuestItemSetDescriptionBJ|QuestMessageBJ|QuestSetCompletedBJ|QuestSetDescriptionBJ|QuestSetDiscoveredBJ|QuestSetEnabledBJ|QuestSetFailedBJ|QuestSetTitleBJ|QueueDestructableAnimationBJ|QueuedTriggerAddBJ|QueuedTriggerAttemptExec|QueuedTriggerCheck|'.
				  'QueuedTriggerClearBJ|QueuedTriggerClearInactiveBJ|QueuedTriggerCountBJ|QueuedTriggerDoneBJ|QueuedTriggerGetIndex|QueuedTriggerRemoveBJ|QueuedTriggerRemoveByIndex|QueueUnitAnimationBJ|RAbsBJ|RandomDestructableInRectBJ|RandomDestructableInRectBJEnum|'.
				  'RandomDestructableInRectSimpleBJ|RandomDistAddItem|RandomDistChoose|RandomDistReset|RandomItemInRectBJ|RandomItemInRectBJEnum|RandomItemInRectSimpleBJ|RectContainsCoords|RectContainsItem|RectContainsLoc|RectContainsUnit|RectFromCenterSizeBJ|'.
				  'ReducePlayerTechMaxAllowed|RegisterDestDeathInRegionEnum|RemoveItemFromStockBJ|RemovePlayerPreserveUnitsBJ|RemovePurchasedItem|RemoveSaveDirectoryBJ|RemoveUnitFromStockBJ|RemoveWeatherEffectBJ|RenameSaveDirectoryBJ|ReplaceUnitBJ|RescueUnitBJ|'.
				  'ResetTerrainFogBJ|ResetToGameCameraForPlayer|ResetUnitAnimation|RestoreUnitLocFacingAngleBJ|RestoreUnitLocFacingPointBJ|ResumeMusicBJ|RMaxBJ|RMinBJ|RotateCameraAroundLocBJ|RSignBJ|SaveAndChangeLevelBJ|SaveAndLoadGameBJ|SaveDyingWidget|'.
				  'SaveGameCacheBJ|SelectGroupBJ|SelectGroupBJEnum|SelectGroupForPlayerBJ|SelectUnitAdd|SelectUnitAddForPlayer|SelectUnitForPlayerSingle|SelectUnitRemove|SelectUnitRemoveForPlayer|SelectUnitSingle|SetAmbientDaySound|SetAmbientNightSound|'.
				  'SetBlightRadiusLocBJ|SetBlightRectBJ|SetCameraBoundsToRect|SetCameraBoundsToRectForPlayerBJ|SetCameraFieldForPlayer|SetCameraOrientControllerForPlayerBJ|SetCameraPositionForPlayer|SetCameraPositionLocForPlayer|SetCameraQuickPositionForPlayer|'.
				  'SetCameraQuickPositionLoc|SetCameraQuickPositionLocForPlayer|SetCameraTargetControllerNoZForPlayer|SetCampaignAvailableBJ|SetCampaignMenuRaceBJ|SetCinematicAvailableBJ|SetCinematicCameraForPlayer|SetCinematicSceneBJ|SetCineModeVolumeGroupsBJ|'.
				  'SetCineModeVolumeGroupsImmediateBJ|SetDestAnimationSpeedPercent|SetDestructableAnimationBJ|SetDestructableInvulnerableBJ|SetDestructableLifePercentBJ|SetDestructableMaxLifeBJ|SetDNCSoundsDawn|SetDNCSoundsDay|SetDNCSoundsDusk|SetDNCSoundsNight|'.
				  'SetDoodadAnimationBJ|SetDoodadAnimationRectBJ|SetForceAllianceStateBJ|SetForLoopIndexA|SetForLoopIndexB|SetHeroLevelBJ|SetHeroStat|SetImageColorBJ|SetImagePositionBJ|SetItemDropOnDeathBJ|SetItemDroppableBJ|SetItemInvulnerableBJ|SetItemLifeBJ|'.
				  'SetItemPlayerBJ|SetItemPositionLoc|SetItemVisibleBJ|SetLightningColorBJ|SetMapMusicIndexedBJ|SetMapMusicRandomBJ|SetMissionAvailableBJ|SetMusicOffsetBJ|SetMusicVolumeBJ|SetNextLevelBJ|SetPlayerAbilityAvailableBJ|SetPlayerAllianceBJ|'.
				  'SetPlayerAllianceStateAllyBJ|SetPlayerAllianceStateBJ|SetPlayerAllianceStateControlBJ|SetPlayerAllianceStateFullControlBJ|SetPlayerAllianceStateVisionBJ|SetPlayerColorBJ|SetPlayerColorBJEnum|SetPlayerFlagBJ|SetPlayerHandicapBJ|'.
				  'SetPlayerHandicapXPBJ|SetPlayerMaxHeroesAllowed|SetPlayerOnScoreScreenBJ|SetPlayerSlotAvailable|SetPlayerStateBJ|SetPlayerTaxRateBJ|SetPlayerTechMaxAllowedSwap|SetPlayerTechResearchedSwap|SetPlayerUnitAvailableBJ|SetRescueBuildingColorChangeBJ|'.
				  'SetRescueUnitColorChangeBJ|SetSoundConeAnglesBJ|SetSoundDistanceCutoffBJ|SetSoundOffsetBJ|SetSoundPitchBJ|SetSoundPositionLocBJ|SetSoundVolumeBJ|SetSpeechVolumeGroupsBJ|SetSpeechVolumeGroupsImmediateBJ|SetStackedSoundBJ|SetTerrainFogExBJ|'.
				  'SetTerrainPathableBJ|SetTerrainTypeBJ|SetTextTagAgeBJ|SetTextTagColorBJ|SetTextTagFadepointBJ|SetTextTagLifespanBJ|SetTextTagPermanentBJ|SetTextTagPosBJ|SetTextTagPosUnitBJ|SetTextTagSuspendedBJ|SetTextTagTextBJ|SetTextTagVelocityBJ|'.
				  'SetThematicMusicOffsetBJ|SetTimeOfDay|SetTimeOfDayScalePercentBJ|SetUnitAbilityLevelSwapped|SetUnitAcquireRangeBJ|SetUnitBlendTimeBJ|SetUnitExplodedBJ|SetUnitFacingToFaceLocTimed|SetUnitFacingToFaceUnitTimed|SetUnitFlyHeightBJ|SetUnitLifeBJ|'.
				  'SetUnitLifePercentBJ|SetUnitManaBJ|SetUnitManaPercentBJ|SetUnitPositionLocFacingBJ|SetUnitPositionLocFacingLocBJ|SetUnitPropWindowBJ|SetUnitRallyDestructable|SetUnitRallyPoint|SetUnitRallyUnit|SetUnitScalePercent|SetUnitTimeScalePercent|'.
				  'SetUnitTurnSpeedBJ|SetUnitUseFoodBJ|SetUnitVertexColorBJ|SetUserControlForceOff|SetUserControlForceOn|SetWaterBaseColorBJ|ShareEverythingWithTeam|ShareEverythingWithTeamAI|ShowCustomCampaignButton|ShowDestructableBJ|ShowImageBJ|ShowInterfaceForceOff|'.
				  'ShowInterfaceForceOn|ShowTextTagForceBJ|ShowUbersplatBJ|ShowUnitHide|ShowUnitShow|SinBJ|SmartCameraPanBJ|StartSoundForPlayerBJ|StartStockUpdates|StartTimerBJ|StopCameraForPlayerBJ|StopMusicBJ|StopSoundBJ|StoreBooleanBJ|StoreIntegerBJ|StoreRealBJ|'.
				  'StoreStringBJ|StoreUnitBJ|String2OrderIdBJ|String2UnitIdBJ|StringIdentity|SubStringBJ|SuspendHeroXPBJ|TanBJ|TeamInitPlayerSlots|TerrainDeformationCraterBJ|TerrainDeformationRandomBJ|TerrainDeformationRippleBJ|TerrainDeformationStopBJ|TerrainDeformationWaveBJ|'.
				  'TextTagSize2Height|TextTagSpeed2Velocity|TimerDialogDisplayBJ|TimerDialogDisplayForPlayerBJ|TimerDialogSetSpeedBJ|TimerDialogSetTimeColorBJ|TimerDialogSetTitleBJ|TimerDialogSetTitleColorBJ|TransmissionFromUnitTypeWithNameBJ|TransmissionFromUnitWithNameBJ|'.
				  'TriggerActionUnitRescuedBJ|TriggerExecuteBJ|TriggerRegisterAnyUnitEventBJ|TriggerRegisterBuildSubmenuEventBJ|TriggerRegisterDestDeathInRegionEvent|TriggerRegisterDialogEventBJ|TriggerRegisterDistanceBetweenUnits|TriggerRegisterEnterRectSimple|TriggerRegisterEnterRegionSimple|'.
				  'TriggerRegisterGameLoadedEventBJ|TriggerRegisterGameSavedEventBJ|TriggerRegisterGameStateEventTimeOfDay|TriggerRegisterLeaveRectSimple|TriggerRegisterLeaveRegionSimple|TriggerRegisterPlayerEventAllianceChanged|TriggerRegisterPlayerEventDefeat|TriggerRegisterPlayerEventEndCinematic|'.
				  'TriggerRegisterPlayerEventLeave|TriggerRegisterPlayerEventVictory|TriggerRegisterPlayerKeyEventBJ|TriggerRegisterPlayerSelectionEventBJ|TriggerRegisterPlayerUnitEventSimple|TriggerRegisterShowSkillEventBJ|TriggerRegisterTimerEventPeriodic|TriggerRegisterTimerEventSingle|'.
				  'TriggerRegisterTimerExpireEventBJ|TriggerRegisterUnitInRangeSimple|TriggerRegisterUnitLifeEvent|TriggerRegisterUnitManaEvent|TryInitCinematicBehaviorBJ|TryInitRescuableTriggersBJ|UnitAddAbilityBJ|UnitAddIndicatorBJ|UnitAddItemByIdSwapped|UnitAddItemSwapped|UnitAddTypeBJ|'.
				  'UnitApplyTimedLifeBJ|UnitCanSleepBJ|UnitCountBuffsExBJ|UnitDamagePointLoc|UnitDamageTargetBJ|UnitDropItem|UnitDropItemPointBJ|UnitDropItemPointLoc|UnitDropItemSlotBJ|UnitDropItemTargetBJ|UnitGenerateAlarms|UnitHasBuffBJ|UnitHasItemOfTypeBJ|UnitId2OrderIdBJ|UnitId2StringBJ|'.
				  'UnitInventoryCount|UnitInventorySizeBJ|UnitIsSleepingBJ|UnitItemInSlotBJ|UnitMakeAbilityPermanentBJ|UnitPauseTimedLifeBJ|UnitRemoveAbilityBJ|UnitRemoveBuffBJ|UnitRemoveBuffsBJ|UnitRemoveBuffsExBJ|UnitRemoveItemFromSlotSwapped|UnitRemoveItemSwapped|UnitRemoveTypeBJ|'.
				  'UnitSetCanSleepBJ|UnitSetUsesAltIconBJ|UnitShareVisionBJ|UnitSuspendDecayBJ|UnitUseItemDestructable|UnitUseItemPointLoc|UnitWakeUpBJ|UnlockGameSpeedBJ|UpdateEachStockBuilding|UpdateEachStockBuildingEnum|UpdateStockAvailability|UseTimeOfDayBJ|VolumeGroupResetBJ|'.
				  'VolumeGroupResetImmediateBJ|VolumeGroupSetVolumeBJ|VolumeGroupSetVolumeForPlayerBJ|WaitForSoundBJ|WaitTransmissionDuration|WakePlayerUnits|WakePlayerUnitsEnum|WaygateActivateBJ|WaygateGetDestinationLocBJ|WaygateIsActiveBJ|WaygateSetDestinationLocBJ|WidgetDropItem|'.
				  'FlushChildHashtableBJ|FlushParentHashtableBJ|GetHandleIdBJ|GetLastCreatedHashtableBJ|HaveSavedValue|InitHashtableBJ|LoadAbilityHandleBJ|LoadBooleanBJ|LoadBooleanExprHandleBJ|LoadButtonHandleBJ|LoadDefeatConditionHandleBJ|LoadDestructableHandleBJ|LoadDialogHandleBJ|'.
				  'LoadEffectHandleBJ|LoadFogModifierHandleBJ|LoadFogStateHandleBJ|LoadForceHandleBJ|LoadGroupHandleBJ|LoadImageHandleBJ|LoadIntegerBJ|LoadItemHandleBJ|LoadItemPoolHandleBJ|LoadLeaderboardHandleBJ|LoadLightningHandleBJ|LoadLocationHandleBJ|LoadMultiboardHandleBJ|'.
				  'LoadMultiboardItemHandleBJ|LoadPlayerHandleBJ|LoadQuestHandleBJ|LoadQuestItemHandleBJ|LoadRealBJ|LoadRectHandleBJ|LoadRegionHandleBJ|LoadSoundHandleBJ|LoadStringBJ|LoadTextTagHandleBJ|LoadTimerDialogHandleBJ|LoadTimerHandleBJ|LoadTrackableHandleBJ|LoadTriggerActionHandleBJ|'.
				  'LoadTriggerConditionHandleBJ|LoadTriggerEventHandleBJ|LoadTriggerHandleBJ|LoadUbersplatHandleBJ|LoadUnitHandleBJ|LoadUnitPoolHandleBJ|LoadWidgetHandleBJ|SaveAbilityHandleBJ|SaveBooleanBJ|SaveBooleanExprHandleBJ|SaveButtonHandleBJ|SaveDefeatConditionHandleBJ|'.
				  'SaveDestructableHandleBJ|SaveDialogHandleBJ|SaveEffectHandleBJ|SaveFogModifierHandleBJ|SaveFogStateHandleBJ|SaveForceHandleBJ|SaveGroupHandleBJ|SaveImageHandleBJ|SaveIntegerBJ|SaveItemHandleBJ|SaveItemPoolHandleBJ|SaveLeaderboardHandleBJ|SaveLightningHandleBJ|'.
				  'SaveLocationHandleBJ|SaveMultiboardHandleBJ|SaveMultiboardItemHandleBJ|SavePlayerHandleBJ|SaveQuestHandleBJ|SaveQuestItemHandleBJ|SaveRealBJ|SaveRectHandleBJ|SaveRegionHandleBJ|SaveSoundHandleBJ|SaveStringBJ|SaveTextTagHandleBJ|SaveTimerDialogHandleBJ|SaveTimerHandleBJ|'.
				  'SaveTrackableHandleBJ|SaveTriggerActionHandleBJ|SaveTriggerConditionHandleBJ|SaveTriggerEventHandleBJ|SaveTriggerHandleBJ|SaveUbersplatHandleBJ|SaveUnitHandleBJ|SaveUnitPoolHandleBJ|SaveWidgetHandleBJ|StoreBooleanBJ|StoreIntegerBJ|StoreRealBJ|StringHashBJ';
	$constants 	= 'AI_DIFFICULTY_INSANE|AI_DIFFICULTY_NEWBIE|AI_DIFFICULTY_NORMAL|ALLIANCE_HELP_REQUEST|ALLIANCE_HELP_RESPONSE|'.
				  'ALLIANCE_PASSIVE|ALLIANCE_RESCUABLE|ALLIANCE_SHARED_ADVANCED_CONTROL|ALLIANCE_SHARED_CONTROL|ALLIANCE_SHARED_SPELLS|'.
				  'ALLIANCE_SHARED_VISION|ALLIANCE_SHARED_VISION_FORCED|ALLIANCE_SHARED_XP|ATTACK_TYPE_CHAOS|ATTACK_TYPE_HERO|'.
				  'ATTACK_TYPE_MAGIC|ATTACK_TYPE_MELEE|ATTACK_TYPE_NORMAL|ATTACK_TYPE_PIERCE|ATTACK_TYPE_SIEGE|BLEND_MODE_ADDITIVE|'.
				  'BLEND_MODE_BLEND|BLEND_MODE_DONT_CARE|BLEND_MODE_KEYALPHA|BLEND_MODE_MODULATE|BLEND_MODE_MODULATE_2X|BLEND_MODE_NONE|'.
				  'CAMERA_FIELD_ANGLE_OF_ATTACK|CAMERA_FIELD_FARZ|CAMERA_FIELD_FIELD_OF_VIEW|CAMERA_FIELD_ROLL|CAMERA_FIELD_ROTATION|'.
				  'CAMERA_FIELD_TARGET_DISTANCE|CAMERA_FIELD_ZOFFSET|CAMERA_MARGIN_BOTTOM|CAMERA_MARGIN_LEFT|CAMERA_MARGIN_RIGHT|'.
				  'CAMERA_MARGIN_TOP|DAMAGE_TYPE_ACID|DAMAGE_TYPE_COLD|DAMAGE_TYPE_DEATH|DAMAGE_TYPE_DEFENSIVE|DAMAGE_TYPE_DEMOLITION|'.
				  'DAMAGE_TYPE_DISEASE|DAMAGE_TYPE_DIVINE|DAMAGE_TYPE_ENHANCED|DAMAGE_TYPE_FIRE|DAMAGE_TYPE_FORCE|DAMAGE_TYPE_LIGHTNING|'.
				  'DAMAGE_TYPE_MAGIC|DAMAGE_TYPE_MIND|DAMAGE_TYPE_NORMAL|DAMAGE_TYPE_PLANT|DAMAGE_TYPE_POISON|DAMAGE_TYPE_SHADOW_STRIKE|'.
				  'DAMAGE_TYPE_SLOW_POISON|DAMAGE_TYPE_SONIC|DAMAGE_TYPE_SPIRIT_LINK|DAMAGE_TYPE_UNIVERSAL|DAMAGE_TYPE_UNKNOWN|'.
				  'EFFECT_TYPE_AREA_EFFECT|EFFECT_TYPE_CASTER|EFFECT_TYPE_EFFECT|EFFECT_TYPE_LIGHTNING|EFFECT_TYPE_MISSILE|'.
				  'EFFECT_TYPE_SPECIAL|EFFECT_TYPE_TARGET|EQUAL|EVENT_DIALOG_BUTTON_CLICK|EVENT_DIALOG_CLICK|EVENT_GAME_BUILD_SUBMENU|'.
				  'EVENT_GAME_END_LEVEL|EVENT_GAME_ENTER_REGION|EVENT_GAME_LEAVE_REGION|EVENT_GAME_LOADED|EVENT_GAME_SAVE|'.
				  'EVENT_GAME_SHOW_SKILL|EVENT_GAME_STATE_LIMIT|EVENT_GAME_TIMER_EXPIRED|EVENT_GAME_TOURNAMENT_FINISH_NOW|'.
				  'EVENT_GAME_TOURNAMENT_FINISH_SOON|EVENT_GAME_TRACKABLE_HIT|EVENT_GAME_TRACKABLE_TRACK|EVENT_GAME_VARIABLE_LIMIT|'.
				  'EVENT_GAME_VICTORY|EVENT_PLAYER_ALLIANCE_CHANGED|EVENT_PLAYER_ARROW_DOWN_DOWN|EVENT_PLAYER_ARROW_DOWN_UP|'.
				  'EVENT_PLAYER_ARROW_LEFT_DOWN|EVENT_PLAYER_ARROW_LEFT_UP|EVENT_PLAYER_ARROW_RIGHT_DOWN|EVENT_PLAYER_ARROW_RIGHT_UP|'.
				  'EVENT_PLAYER_ARROW_UP_DOWN|EVENT_PLAYER_ARROW_UP_UP|EVENT_PLAYER_CHAT|EVENT_PLAYER_DEFEAT|EVENT_PLAYER_END_CINEMATIC|'.
				  'EVENT_PLAYER_HERO_LEVEL|EVENT_PLAYER_HERO_REVIVABLE|EVENT_PLAYER_HERO_REVIVE_CANCEL|EVENT_PLAYER_HERO_REVIVE_FINISH|'.
				  'EVENT_PLAYER_HERO_REVIVE_START|EVENT_PLAYER_HERO_SKILL|EVENT_PLAYER_LEAVE|EVENT_PLAYER_STATE_LIMIT|'.
				  'EVENT_PLAYER_UNIT_ATTACKED|EVENT_PLAYER_UNIT_CHANGE_OWNER|EVENT_PLAYER_UNIT_CONSTRUCT_CANCEL|'.
				  'EVENT_PLAYER_UNIT_CONSTRUCT_FINISH|EVENT_PLAYER_UNIT_CONSTRUCT_START|EVENT_PLAYER_UNIT_DEATH|EVENT_PLAYER_UNIT_DECAY|'.
				  'EVENT_PLAYER_UNIT_DESELECTED|EVENT_PLAYER_UNIT_DETECTED|EVENT_PLAYER_UNIT_DROP_ITEM|EVENT_PLAYER_UNIT_HIDDEN|'.
				  'EVENT_PLAYER_UNIT_ISSUED_ORDER|EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER|EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER|'.
				  'EVENT_PLAYER_UNIT_ISSUED_UNIT_ORDER|EVENT_PLAYER_UNIT_LOADED|EVENT_PLAYER_UNIT_PAWN_ITEM|EVENT_PLAYER_UNIT_PICKUP_ITEM|'.
				  'EVENT_PLAYER_UNIT_RESCUED|EVENT_PLAYER_UNIT_RESEARCH_CANCEL|EVENT_PLAYER_UNIT_RESEARCH_FINISH|'.
				  'EVENT_PLAYER_UNIT_RESEARCH_START|EVENT_PLAYER_UNIT_SELECTED|EVENT_PLAYER_UNIT_SELL|EVENT_PLAYER_UNIT_SELL_ITEM|'.
				  'EVENT_PLAYER_UNIT_SPELL_CAST|EVENT_PLAYER_UNIT_SPELL_CHANNEL|EVENT_PLAYER_UNIT_SPELL_EFFECT|'.
				  'EVENT_PLAYER_UNIT_SPELL_ENDCAST|EVENT_PLAYER_UNIT_SPELL_FINISH|EVENT_PLAYER_UNIT_SUMMON|EVENT_PLAYER_UNIT_TRAIN_CANCEL|'.
				  'EVENT_PLAYER_UNIT_TRAIN_FINISH|EVENT_PLAYER_UNIT_TRAIN_START|EVENT_PLAYER_UNIT_UPGRADE_CANCEL|'.
				  'EVENT_PLAYER_UNIT_UPGRADE_FINISH|EVENT_PLAYER_UNIT_UPGRADE_START|EVENT_PLAYER_UNIT_USE_ITEM|EVENT_PLAYER_VICTORY|'.
				  'EVENT_UNIT_ACQUIRED_TARGET|EVENT_UNIT_ATTACKED|EVENT_UNIT_CHANGE_OWNER|EVENT_UNIT_CONSTRUCT_CANCEL|'.
				  'EVENT_UNIT_CONSTRUCT_FINISH|EVENT_UNIT_DAMAGED|EVENT_UNIT_DEATH|EVENT_UNIT_DECAY|EVENT_UNIT_DESELECTED|'.
				  'EVENT_UNIT_DETECTED|EVENT_UNIT_DROP_ITEM|EVENT_UNIT_HERO_LEVEL|EVENT_UNIT_HERO_REVIVABLE|EVENT_UNIT_HERO_REVIVE_CANCEL|'.
				  'EVENT_UNIT_HERO_REVIVE_FINISH|EVENT_UNIT_HERO_REVIVE_START|EVENT_UNIT_HERO_SKILL|EVENT_UNIT_HIDDEN|'.
				  'EVENT_UNIT_ISSUED_ORDER|EVENT_UNIT_ISSUED_POINT_ORDER|EVENT_UNIT_ISSUED_TARGET_ORDER|EVENT_UNIT_LOADED|'.
				  'EVENT_UNIT_PAWN_ITEM|EVENT_UNIT_PICKUP_ITEM|EVENT_UNIT_RESCUED|EVENT_UNIT_RESEARCH_CANCEL|EVENT_UNIT_RESEARCH_FINISH|'.
				  'EVENT_UNIT_RESEARCH_START|EVENT_UNIT_SELECTED|EVENT_UNIT_SELL|EVENT_UNIT_SELL_ITEM|EVENT_UNIT_SPELL_CAST|'.
				  'EVENT_UNIT_SPELL_CHANNEL|EVENT_UNIT_SPELL_EFFECT|EVENT_UNIT_SPELL_ENDCAST|EVENT_UNIT_SPELL_FINISH|'.
				  'EVENT_UNIT_STATE_LIMIT|EVENT_UNIT_SUMMON|EVENT_UNIT_TARGET_IN_RANGE|EVENT_UNIT_TRAIN_CANCEL|EVENT_UNIT_TRAIN_FINISH|'.
				  'EVENT_UNIT_TRAIN_START|EVENT_UNIT_UPGRADE_CANCEL|EVENT_UNIT_UPGRADE_FINISH|EVENT_UNIT_UPGRADE_START|'.
				  'EVENT_UNIT_USE_ITEM|EVENT_WIDGET_DEATH|FALSE|FOG_OF_WAR_FOGGED|FOG_OF_WAR_MASKED|FOG_OF_WAR_VISIBLE|'.
				  'GAME_STATE_DISCONNECTED|GAME_STATE_DIVINE_INTERVENTION|GAME_STATE_TIME_OF_DAY|GAME_TYPE_BLIZ|GAME_TYPE_FFA|'.
				  'GAME_TYPE_FOUR_TEAM_PLAY|GAME_TYPE_MELEE|GAME_TYPE_ONE_ON_ONE|GAME_TYPE_THREE_TEAM_PLAY|GAME_TYPE_TWO_TEAM_PLAY|'.
				  'GAME_TYPE_USE_MAP_SETTINGS|GREATER_THAN|GREATER_THAN_OR_EQUAL|ITEM_TYPE_ANY|ITEM_TYPE_ARTIFACT|ITEM_TYPE_CAMPAIGN|'.
				  'ITEM_TYPE_CHARGED|ITEM_TYPE_MISCELLANEOUS|ITEM_TYPE_PERMANENT|ITEM_TYPE_POWERUP|ITEM_TYPE_PURCHASABLE|ITEM_TYPE_TOME|'.
				  'ITEM_TYPE_UNKNOWN|JASS_MAX_ARRAY_SIZE|LESS_THAN|LESS_THAN_OR_EQUAL|MAP_ALLIANCE_CHANGES_HIDDEN|MAP_CHEATS|'.
				  'MAP_CHEATS_HIDDEN|MAP_CONTROL_COMPUTER|MAP_CONTROL_CREEP|MAP_CONTROL_NEUTRAL|MAP_CONTROL_NONE|MAP_CONTROL_RESCUABLE|'.
				  'MAP_CONTROL_USER|MAP_DENSITY_HEAVY|MAP_DENSITY_LIGHT|MAP_DENSITY_MEDIUM|MAP_DENSITY_NONE|MAP_DIFFICULTY_EASY|'.
				  'MAP_DIFFICULTY_HARD|MAP_DIFFICULTY_INSANE|MAP_DIFFICULTY_NORMAL|MAP_FIXED_COLORS|MAP_FOG_ALWAYS_VISIBLE|'.
				  'MAP_FOG_HIDE_TERRAIN|MAP_FOG_MAP_EXPLORED|MAP_LOC_PRIO_HIGH|MAP_LOC_PRIO_LOW|MAP_LOC_PRIO_NOT|'.
				  'MAP_LOCK_ALLIANCE_CHANGES|MAP_LOCK_RANDOM_SEED|MAP_LOCK_RESOURCE_TRADING|MAP_LOCK_SPEED|MAP_OBSERVERS|'.
				  'MAP_OBSERVERS_ON_DEATH|MAP_PLACEMENT_FIXED|MAP_PLACEMENT_RANDOM|MAP_PLACEMENT_TEAMS_TOGETHER|'.
				  'MAP_PLACEMENT_USE_MAP_SETTINGS|MAP_RANDOM_HERO|MAP_RANDOM_RACES|MAP_RELOADED|MAP_RESOURCE_TRADING_ALLIES_ONLY|'.
				  'MAP_SHARED_ADVANCED_CONTROL|MAP_SPEED_FAST|MAP_SPEED_FASTEST|MAP_SPEED_NORMAL|MAP_SPEED_SLOW|MAP_SPEED_SLOWEST|'.
				  'MAP_USE_HANDICAPS|NOT_EQUAL|PATHING_TYPE_AMPHIBIOUSPATHING|PATHING_TYPE_ANY|PATHING_TYPE_BLIGHTPATHING|'.
				  'PATHING_TYPE_BUILDABILITY|PATHING_TYPE_FLOATABILITY|PATHING_TYPE_FLYABILITY|PATHING_TYPE_PEONHARVESTPATHING|'.
				  'PATHING_TYPE_WALKABILITY|PLAYER_COLOR_AQUA|PLAYER_COLOR_BLUE|PLAYER_COLOR_BROWN|PLAYER_COLOR_CYAN|PLAYER_COLOR_GREEN|'.
				  'PLAYER_COLOR_LIGHT_BLUE|PLAYER_COLOR_LIGHT_GRAY|PLAYER_COLOR_ORANGE|PLAYER_COLOR_PINK|PLAYER_COLOR_PURPLE|'.
				  'PLAYER_COLOR_RED|PLAYER_COLOR_YELLOW|PLAYER_GAME_RESULT_DEFEAT|PLAYER_GAME_RESULT_NEUTRAL|PLAYER_GAME_RESULT_TIE|'.
				  'PLAYER_GAME_RESULT_VICTORY|PLAYER_NEUTRAL_AGGRESSIVE|PLAYER_NEUTRAL_PASSIVE|PLAYER_SCORE_FOOD_MAXPROD|'.
				  'PLAYER_SCORE_FOOD_MAXUSED|PLAYER_SCORE_GOLD_GIVEN|PLAYER_SCORE_GOLD_LOST_TAX|PLAYER_SCORE_GOLD_LOST_UPKEEP|'.
				  'PLAYER_SCORE_GOLD_MINED_TOTAL|PLAYER_SCORE_GOLD_MINED_UPKEEP|PLAYER_SCORE_GOLD_RECEIVED|PLAYER_SCORE_HERO_TOTAL|'.
				  'PLAYER_SCORE_HEROES_KILLED|PLAYER_SCORE_ITEMS_GAINED|PLAYER_SCORE_LUMBER_GIVEN|PLAYER_SCORE_LUMBER_LOST_TAX|'.
				  'PLAYER_SCORE_LUMBER_LOST_UPKEEP|PLAYER_SCORE_LUMBER_RECEIVED|PLAYER_SCORE_LUMBER_TOTAL|PLAYER_SCORE_MERCS_HIRED|'.
				  'PLAYER_SCORE_RESOURCE_TOTAL|PLAYER_SCORE_STRUCT_BUILT|PLAYER_SCORE_STRUCT_RAZED|PLAYER_SCORE_TECH_PERCENT|'.
				  'PLAYER_SCORE_TOTAL|PLAYER_SCORE_UNIT_TOTAL|PLAYER_SCORE_UNITS_KILLED|PLAYER_SCORE_UNITS_TRAINED|'.
				  'PLAYER_SLOT_STATE_EMPTY|PLAYER_SLOT_STATE_LEFT|PLAYER_SLOT_STATE_PLAYING|PLAYER_STATE_ALLIED_VICTORY|'.
				  'PLAYER_STATE_FOOD_CAP_CEILING|PLAYER_STATE_GAME_RESULT|PLAYER_STATE_GIVES_BOUNTY|PLAYER_STATE_GOLD_GATHERED|'.
				  'PLAYER_STATE_GOLD_UPKEEP_RATE|PLAYER_STATE_LUMBER_GATHERED|PLAYER_STATE_LUMBER_UPKEEP_RATE|'.
				  'PLAYER_STATE_NO_CREEP_SLEEP|PLAYER_STATE_OBSERVER|PLAYER_STATE_OBSERVER_ON_DEATH|PLAYER_STATE_PLACED|'.
				  'PLAYER_STATE_RESOURCE_FOOD_CAP|PLAYER_STATE_RESOURCE_FOOD_USED|PLAYER_STATE_RESOURCE_GOLD|'.
				  'PLAYER_STATE_RESOURCE_HERO_TOKENS|PLAYER_STATE_RESOURCE_LUMBER|PLAYER_STATE_UNFOLLOWABLE|RACE_DEMON|RACE_HUMAN|'.
				  'RACE_NIGHTELF|RACE_ORC|RACE_OTHER|RACE_PREF_DEMON|RACE_PREF_HUMAN|RACE_PREF_NIGHTELF|RACE_PREF_ORC|RACE_PREF_RANDOM|'.
				  'RACE_PREF_UNDEAD|RACE_PREF_USER_SELECTABLE|RACE_UNDEAD|RARITY_FREQUENT|RARITY_RARE|SOUND_TYPE_EFFECT|'.
				  'SOUND_TYPE_EFFECT_LOOPED|SOUND_VOLUMEGROUP_AMBIENTSOUNDS|SOUND_VOLUMEGROUP_COMBAT|SOUND_VOLUMEGROUP_FIRE|'.
				  'SOUND_VOLUMEGROUP_MUSIC|SOUND_VOLUMEGROUP_SPELLS|SOUND_VOLUMEGROUP_UI|SOUND_VOLUMEGROUP_UNITMOVEMENT|'.
				  'SOUND_VOLUMEGROUP_UNITSOUNDS|TEXMAP_FLAG_NONE|TEXMAP_FLAG_WRAP_U|TEXMAP_FLAG_WRAP_UV|TEXMAP_FLAG_WRAP_V|TRUE|'.
				  'UNIT_STATE_LIFE|UNIT_STATE_MANA|UNIT_STATE_MAX_LIFE|UNIT_STATE_MAX_MANA|UNIT_TYPE_ANCIENT|UNIT_TYPE_ATTACKS_FLYING|'.
				  'UNIT_TYPE_ATTACKS_GROUND|UNIT_TYPE_DEAD|UNIT_TYPE_ETHEREAL|UNIT_TYPE_FLYING|UNIT_TYPE_GIANT|UNIT_TYPE_GROUND|'.
				  'UNIT_TYPE_HERO|UNIT_TYPE_MAGIC_IMMUNE|UNIT_TYPE_MECHANICAL|UNIT_TYPE_MELEE_ATTACKER|UNIT_TYPE_PEON|UNIT_TYPE_PLAGUED|'.
				  'UNIT_TYPE_POISONED|UNIT_TYPE_POLYMORPHED|UNIT_TYPE_RANGED_ATTACKER|UNIT_TYPE_RESISTANT|UNIT_TYPE_SAPPER|'.
				  'UNIT_TYPE_SLEEPING|UNIT_TYPE_SNARED|UNIT_TYPE_STRUCTURE|UNIT_TYPE_STUNNED|UNIT_TYPE_SUMMONED|UNIT_TYPE_TAUREN|'.
				  'UNIT_TYPE_TOWNHALL|UNIT_TYPE_UNDEAD|VERSION_FROZEN_THRONE|VERSION_REIGN_OF_CHAOS|WEAPON_TYPE_AXE_MEDIUM_CHOP|'.
				  'WEAPON_TYPE_CLAW_HEAVY_SLICE|WEAPON_TYPE_CLAW_LIGHT_SLICE|WEAPON_TYPE_CLAW_MEDIUM_SLICE|WEAPON_TYPE_METAL_HEAVY_BASH|'.
				  'WEAPON_TYPE_METAL_HEAVY_CHOP|WEAPON_TYPE_METAL_HEAVY_SLICE|WEAPON_TYPE_METAL_HEAVY_STAB|WEAPON_TYPE_METAL_LIGHT_CHOP|'.
				  'WEAPON_TYPE_METAL_LIGHT_SLICE|WEAPON_TYPE_METAL_MEDIUM_BASH|WEAPON_TYPE_METAL_MEDIUM_CHOP|'.
				  'WEAPON_TYPE_METAL_MEDIUM_SLICE|WEAPON_TYPE_METAL_MEDIUM_STAB|WEAPON_TYPE_ROCK_HEAVY_BASH|WEAPON_TYPE_WHOKNOWS|'.
				  'WEAPON_TYPE_WOOD_HEAVY_BASH|WEAPON_TYPE_WOOD_HEAVY_SLICE|WEAPON_TYPE_WOOD_LIGHT_BASH|WEAPON_TYPE_WOOD_LIGHT_SLICE|'.
				  'WEAPON_TYPE_WOOD_LIGHT_STAB|WEAPON_TYPE_WOOD_MEDIUM_BASH|WEAPON_TYPE_WOOD_MEDIUM_SLICE|WEAPON_TYPE_WOOD_MEDIUM_STAB';
        $content = str_replace("\t", '    ', $content);
	$content = trim($content, "\n\r");
	// We want to get rid of the extra spaces in the beginning of lines.
	// The line with the least spaces before it should have 0 spaces, and
	// the rest should have (the amount they had) - (the amount the one with least had).

  $lines = explode("\n", $content);
	$count = count($lines);
	$offset = -1;
	$min = 1000;
  for($i = 0; $i < $count AND $min != 0; $i++) {
    if (preg_match('/[^ \0\n\r]/', $lines[$i])) {
      $parts = preg_split('/[^( )]/', $lines[$i], 2);
      $spaces = $parts[0];
      $min = min($min, strlen($spaces));
    } elseif ($offset == $i - 1)
      $offset = $i;
  }

  if ($min != 0) {
    $content = "";
    for($i = $offset + 1; $i < $count; $i++)
      $content .= preg_replace('/^( ){'. $min .'}/', '', $lines[$i]) . "\n";
  }
  
  $content .= "\n";

	$separators = array('\\\\.', "\n", "\/\/", "\/\*", "\*\/", $singQuote, $quote, $highlight);
	$elements   = preg_split('/('. join('|', $separators) .')/', $content, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);

	$inString  = false;
	$inComment = false;
	$inRawcode = false;
	$longComment = 0;
	$inHighlight = false;
	$final   = "";
	$tempStr = "";
	$length  = 0;

	foreach($elements as $element) {
		if ($inString) {
			if ($element == $quote) { // String ends
				$final .= $quote . '</span>';
				$inString = false;
			} else
				if (preg_match('/\\\./', $element))
					$final .= '<span style=' . $escapeStyle . '>' . $element . '</span>';
				else
					$final .= preg_replace('/</', '&lt;', $element);
		} elseif ($inComment) {
			if ($element == "\n") { // Comment ends
				$final .= rtrim($tempStr) . "</span>\n";
				$inComment = false;
				$tempStr = "";
			} else {
				$tempStr .= preg_replace('/</', '&lt;', $element);
			}
		} elseif ($inRawcode) {
			if ($element == $singQuote OR $element == "\n") { // Rawcode ends
				if ($element == $singQuote AND ($length == 4 OR $length == 1))
					$final .= '<span style='. $rawcodeStyle .">'" . $tempStr . "'</span>";
				else
					$final .= "'" . $tempStr . $element;
				$tempStr = "";
				$inRawcode = false;
				$length = 0;
			} else
				if (preg_match('/\\\./', $element)) {
					$tempStr .= preg_replace('/</', '&lt;', $element);
					$length += 1;
				} else {
					$tempStr .= preg_replace('/</', '&lt;', $element);
					$length += strlen($element);
				}
		} elseif ($longComment) {
			if ($element == "/*") { // A nested comment.
				$longComment++;
				$tempStr .= '/*';
			} elseif ($element == "*/") { // A (nested?) comment ends.
				$longComment--;
				$tempStr .= '*/';
				
				if ($longComment == 0) { // The comment ends.
					$final .= $tempStr . "</span>";
					$tempStr = '';
				}
			} else { // Comment text.
				$tempStr .= preg_replace('/</', '&lt;', $element);
			}

		} elseif ($element == $quote) { // String starts
			$final .= '<span style='. $stringStyle .'>'. $quote;
			$inString = true;
		} elseif ($element == "//") { // Comment starts
			$final .= '<span style='. $commentStyle .'>//';
			$inComment = true;
		} elseif ($element == "'") { // Rawcode starts
			$inRawcode = true;
		} elseif ($element == "/*") { // Long comment starts
			$longComment = 1;
			$tempStr = '<span style='. $commentStyle .'>/*';

		} else { // Normal code.
			if ($element == $highlight)
				if ($inHighlight)  { // Highlight ends
					$final .= '</span>';
					$inHighlight = false;
				} else { // Highlight ends
					$final .= '<span style='. $highlightStyle .'>';
					$inHighlight = true;
				}
			else {
				$element = preg_replace('/(' . $operators . ')/', '<span style=' . $operatorStyle . '>\\0</span>', $element);
        //$element = preg_replace('/\b\d+\.\d+\b/', '<span style=' . $valueStyle . '>\\0</span>', $element);
        $element = preg_replace('/\b(\d+\.)\B/', '<span style=' . $valueStyle . '>\\0</span>', $element);
				$element = preg_replace('/\B(\.\d+)\b/', '<span style=' . $valueStyle . '>\\0</span>', $element);
				//$element = preg_replace('/\b(\d+)\b/', '<span style=' . $valueStyle . '>\\0</span>', $element);
				$element = preg_replace('/\b\d+(\.\d+){0,1}\b/', '<span style=' . $valueStyle . '>\\0</span>', $element);
				$element = preg_replace('/\b0x[0-9a-f]*\b/', '<span style=' . $valueStyle . '>\\0</span>', $element);
				$element = preg_replace('/\b('. $blocks .')\b/', '<span style=' . $blockStyle . '>\\0</span>', $element);
				$element = preg_replace('/\b('. $keywords .')\b/', '<span style=' . $keywordStyle . '>\\0</span>', $element);
				$element = preg_replace('/\b('. $types .')\b/', '<span style=' . $typeStyle . '>\\0</span>', $element);
				$element = preg_replace('/\b('. $bjglobals .')/', '<span style=' . $bjGlobalStyle . '>\\0</span>', $element);
				$element = preg_replace('/\b('. $values . ')\b/', '<span style=' . $valueStyle . '>\\0</span>', $element);
				$element = preg_replace('/\b('. $natives .')\b/', '<span style=' . $nativeStyle . '>\\0</span>', $element);
				$element = preg_replace('/\b('. $bjs .')\b/', '<span style=' . $bjStyle . '>\\0</span>', $element);
				$element = preg_replace('/\b('. $constants .')\b/', '<span style='. $constantsStyle .'>\\0</span>', $element);
				$element = preg_replace('/\. *[A-Za-z]+[A-Za-z0-9]*(_+[A-Za-z0-9]+)*/', '<span style=' . $memberStyle . '>\\0</span>', $element);
				$final .= $element;
			}
		}
	}

	$final = preg_replace('/<span style='. $commentStyle .'>\/\/!/', '<span style='. $compilerStyle .'>//!', $final);
  $final = preg_replace('/<span style='. $memberStyle .'>./', '<span style='. $memberDotStyle .'>.</span><span style='. $memberStyle .'>', $final);

	if ($inHighlight)
		$final .= '</span>';

	return rtrim($final);
}
 

Attachments

  • product-jass_bbcode.zip
    17.5 KB · Views: 75
Last edited:
Status
Not open for further replies.
Top