Page 2 of 7

Re: Map making - MP - .ies Scripting

Posted: 28 Sep 2017, 20:33
by Dr.MonaLisa
Loewenherz wrote: 28 Sep 2017, 06:53 Hello all,
this is a Thread over the ies scripts from EE2. The ies files are for scripted Missions in EE2, like in the Campaign.
Sorry, my English is not so good.

My first question. How can i set a Missiontimer, like in the 6 Us Mission?

Hi Loewenherz. I merged your topic with the existing one. I think it will be clearer to find more information about .ies scripting.
I attached the archive with scripts I coded for scenarios / Multiplayer scenarios for EE2:
EE2-DrMonasIESScripts-28.09.2017.zip
(367.06 KiB) Downloaded 212 times
(Please note that they were designed to only be used by me. Some variables might be offensive [for example: bHelloBitch = true, etc.]). Some functions are very advanced, like the one that decides about planes repairing at the Airport in the Planes scenario. Don't even try to understand them, it's not worth your time.

From what I remember all 3 scenarios had the Mission Timer, so you can make your timer based on it. I think the Pirates scenario has it in the most understandable way.

Code: Select all

RULE Heal1
if (DoesUnitExist("Ship1") && NamedUnitIsInArea("Ship1", "Safe") && Ship1T && GetUnitHealth("Ship1") < 0.50)
  then Heal1
END_RULE
ACTION Heal1
SCRIPT WORLD
Ship1T = false;
Ship1RepairTEXT = "tx_enum_eTeam_0";
SetMissionTimer(Ship1RepairTimer, 21);
StartMissionTimer(Ship1RepairTimer);
ShowMissionTimerWidget(Ship1RepairTimer, true);
PrintMessageFromPlayer( "We're repairing Ship1. Please wait for 20 seconds, and don't move your ship!!", 10 );
PlayVoiceOver("Fx_Bld_Dock.mp3");
DoDelay(20.0);
STEP
Ship1T = true;
ShowMissionTimerWidget(Ship1RepairTimer, false);
if (DoesUnitExist("Ship1") && NamedUnitIsInArea("Ship1", "Safe")) {
HealUnit("Ship1"); }
END_SCRIPT
END_ACTION
(don't forget to check the .ies script for definitions, etc.)

Re: Empire Earth 2 Map making - MP - .ies Scripting

Posted: 28 Sep 2017, 21:30
by Loewenherz
Hey Mona,

thanks for the Help. The scripting Docs haven't a declaration for the Missiontimer and the functions "StartMissionTimer", "SetMissionTimer" haven't a example.

Funy fact: But in Scripting Docs stand // See "Mission Timers" section. :lol:

Greatings Loewenherz

Re: Empire Earth 2 Map making - MP - .ies Scripting

Posted: 28 Sep 2017, 22:26
by Dr.MonaLisa
Yes, I actually found those functions by testing and... putting random function names, until it worked :/ I didn't have the dumped functions list back then :(

EDIT:
Some time ago I extracted the list of ALL available .IES functions from the .exe file:

Code: Select all

 ; char aParseiescriptb[]
 aParseiescriptb db 'ParseIEScriptBuffer',0 ; DATA XREF: sub_42B4B0+2
       ; sub_42B4B0+10
 aInumelements   db 'iNumElements',0     ; DATA XREF: sub_42B540+77
       ; sub_42B7A0+77 ...
align 4
 aM_size         db 'm_size',0           ; DATA XREF: sub_42B540+1D
       ; sub_42B7A0+1D ...
align 10h
 off_BF9AA0      dd offset a0_1          ; DATA XREF: sub_42C7E0:loc_42C7F2r
       ; sub_42C800
       ; "<0>"
dd offset aEof          ; "EOF"
dd offset a2_0          ; "<2>"
dd offset aNull_tree_look ; "NULL_TREE_LOOKAHEAD"
dd offset aFuncall      ; "FUNCALL"
dd offset aArglist      ; "ARGLIST"
dd offset aVarref       ; "VARREF"
dd offset aRule         ; "RULE"
dd offset aAction       ; "ACTION"
dd offset aScript       ; "SCRIPT"
dd offset aStep         ; "STEP"
dd offset aInitialization ; "INITIALIZATION"
dd offset aDefinitions  ; "DEFINITIONS"
dd offset aConstant_0   ; "CONSTANT"
dd offset aIf_1         ; "IF"
dd offset aSwitch       ; "SWITCH"
dd offset aCase         ; "CASE"
dd offset aEnumconst    ; "ENUMCONST"
dd offset aBlock        ; "BLOCK"
dd offset aScenario     ; "SCENARIO"
dd offset aObjective    ; "OBJECTIVE"
dd offset aRules_0      ; "\"RULES\""
dd offset aFor_0        ; "\"FOR\""
dd offset aIdentifier   ; "IDENTIFIER"
dd offset aDefinitions_0 ; "\"DEFINITIONS\""
dd offset aEnd_definiti_0 ; "\"END_DEFINITIONS\""
dd offset aConstant_1   ; "\"constant\""
dd offset aInitializati_1 ; "\"INITIALIZATION\""
dd offset aEnd_initiali_0 ; "\"END_INITIALIZATION\""
dd offset aRule_0       ; "\"RULE\""
dd offset aOneshot_0    ; "\"ONESHOT\""
dd offset aPeriodicity_0 ; "\"PERIODICITY\""
dd offset aFloat_0      ; "FLOAT"
dd offset aIf_0         ; "\"if\""
dd offset aLparen       ; "LPAREN"
dd offset aRparen       ; "RPAREN"
dd offset aThen_0       ; "\"then\""
dd offset aEnd_rule_0   ; "\"END_RULE\""
dd offset aAction_0     ; "\"ACTION\""
dd offset aEnd_action_0 ; "\"END_ACTION\""
dd offset aScript_0     ; "\"SCRIPT\""
dd offset aStep_0       ; "\"STEP\""
dd offset aEnd_script_0 ; "\"END_SCRIPT\""
dd offset aSemi         ; "SEMI"
dd offset aLcurly       ; "LCURLY"
dd offset aRcurly       ; "RCURLY"
dd offset aElse_0       ; "\"else\""
dd offset aComma        ; "COMMA"
dd offset aBool_0       ; "\"bool\""
dd offset aInt_0        ; "\"int\""
dd offset aFloat_1      ; "\"float\""
dd offset aString_0     ; "\"string\""
dd offset aChotint_0    ; "\"cHotInt\""
dd offset aChotfloat_0  ; "\"cHotFloat\""
dd offset aCtimerint_0  ; "\"cTimerInt\""
dd offset aCperiodicint_0 ; "\"cPeriodicInt\""
dd offset aString_1     ; "STRING"
dd offset aTrue_31      ; "\"true\""
dd offset aFalse_31     ; "\"false\""
dd offset aLnot         ; "LNOT"
dd offset aPlus         ; "PLUS"
dd offset aMinus        ; "MINUS"
dd offset aStar         ; "STAR"
dd offset aDiv          ; "DIV"
dd offset aMod_0        ; "MOD"
dd offset aOp_eq        ; "OP_EQ"
dd offset aOp_ne        ; "OP_NE"
dd offset aOp_ge        ; "OP_GE"
dd offset aOp_gt        ; "OP_GT"
dd offset aOp_le        ; "OP_LE"
dd offset aOp_lt        ; "OP_LT"
dd offset aLor          ; "LOR"
dd offset aLand_0       ; "LAND"
dd offset aAssign       ; "ASSIGN"
dd offset aScenario_3   ; "\"SCENARIO\""
dd offset aEnd_scenario_0 ; "\"END_SCENARIO\""
dd offset aObjective_1  ; "\"OBJECTIVE\""
dd offset aEnd_objectiv_0 ; "\"END_OBJECTIVE\""
dd offset aEsc          ; "ESC"
dd offset aInteger      ; "INTEGER"
dd offset aComment      ; "COMMENT"
dd offset aNewline      ; "NEWLINE"
dd offset aWhitespace   ; "WHITESPACE"
align 10h
 off_BF9BF0      dd offset off_B658C4    ; DATA XREF: .88
align 8
 a_?auiescriptwa db '.?AUIEScriptWalkerTokenTypes@@',0
align 4
 off_BF9C18      dd offset off_B658C4    ; DATA XREF: .A0
       ; .
align 10h
 a_?aviescriptwa db '.?AVIEScriptWalker@@',0
align 4
 ; char aUnknownActionS[]
 aUnknownActionS db 'Unknown action ',27h,'%s',27h,'.',0
       ; DATA XREF: sub_42C870+4E7
align 10h
 ; char aRedefinitionOf[]
 aRedefinitionOf db 'Redefinition of action ',27h,'%s',27h,'.',0
       ; DATA XREF: sub_42EB60+2FC
align 10h
 ; char aIllegalReDefin[]
 aIllegalReDefin db 'Illegal [re]definition of variable ',27h,'%s',27h,'.',0
       ; DATA XREF: sub_42F280+4C6
align 4
 ; char aVariableSNotFo[]
 aVariableSNotFo db 'Variable ',27h,'%s',27h,' not found.',0
       ; DATA XREF: sub_4308D0+3042
align 4
 ; char aArityMismatch_[]
 aArityMismatch_ db 'Arity mismatch. Function %s expects %d args, %d given.',0
       ; DATA XREF: sub_4308D0+2A5A
align 10h
 ; char aFunctionSNotFo[]
 aFunctionSNotFo db 'Function %s not found.',0 ; DATA XREF: sub_4308D0+2811
align 4
 off_BF9D08      dd offset off_B658C4    ; DATA XREF: .EC
align 10h
 a_?av?Lsizeda_1 db '.?AV?$LSizedArray@H@@',0
align 4
 off_BF9D28      dd offset off_B658C4    ; DATA XREF: .04
align 10h
 a_?av?Ldynarr_7 db '.?AV?$LDynArrayBase@H@@',0
 off_BF9D48      dd offset off_B658C4    ; DATA XREF: .1C
align 10h
 a_?av?Ldynarr_8 db '.?AV?$LDynArray@H@@',0
 off_BF9D64      dd offset off_B658C4    ; DATA XREF: .34
       ; .
db    0
db    0
db    0
db    0
db  2Eh ; .
db  3Fh ; ?
db  41h ; A
db  56h ; V
db  3Fh ; ?
db  24h ; $
db  4Ch ; L
db  53h ; S
db  61h ; a
db  76h ; v
db  61h ; a
db  62h ; b
db  6Ch ; l
db  65h ; e
db  44h ; D
db  79h ; y
db  6Eh ; n
db  41h ; A
db  72h ; r
db  72h ; r
db  61h ; a
db  79h ; y
db  40h ; @
db  48h ; H
db  40h ; @
db  40h ; @
db    0
db    0
 ; char aSymbolSNotFoun[]
 aSymbolSNotFoun db 'Symbol ',27h,'%s',27h,' not found.',0
       ; DATA XREF: sub_4365D0+2FD
align 10h
 aDodelay        db 'DoDelay',0          ; DATA XREF: sub_4381E0+9
       ; sub_4712F0+15
 off_BF9DA8      dd offset off_B658C4    ; DATA XREF: .88
       ; .
align 10h
 a_?avvalue@iesc db '.?AVValue@IEScriptParsed@@',0
align 4
 aDodisplaydialo db 'DoDisplayDialog',0  ; DATA XREF: sub_438490+9
       ; sub_471370+15
 aSetunitdisplay db 'SetUnitDisplayName',0 ; DATA XREF: sub_438610+9
       ; sub_4713E0+1A
align 10h
 aCreateunitatlo db 'CreateUnitAtLocation',0 ; DATA XREF: sub_438790+9
       ; sub_471580+1D
align 4
 aCreatenameduni db 'CreateNamedUnitAtLocation',0 ; DATA XREF: sub_438A30+9
       ; sub_4716E0+1D
align 4
 aCreategroupedu db 'CreateGroupedUnitAtLocation',0 ; DATA XREF: sub_438CF0+9
       ; sub_471880+1D
 aSetunitplaceme db 'SetUnitPlacementAngle',0 ; DATA XREF: sub_438FB0+9
align 4
 aCreateunitinar db 'CreateUnitInArea',0 ; DATA XREF: sub_4390C0+9
       ; sub_4720A0+1D
align 4
 aCreatenamedu_0 db 'CreateNamedUnitInArea',0 ; DATA XREF: sub_4392E0+9
       ; sub_4723F0+1E
align 4
 aCreategroupe_0 db 'CreateGroupedUnitInArea',0 ; DATA XREF: sub_439550+9
       ; sub_4727D0+1E
 aCreateunitinte db 'CreateUnitInTerritory',0 ; DATA XREF: sub_4397C0+9
       ; sub_472A70+1D ...
align 4
 aCreatenamedu_1 db 'CreateNamedUnitInTerritory',0 ; DATA XREF: sub_4399E0+9
       ; sub_472C10+1D
align 10h
 aCreategroupe_1 db 'CreateGroupedUnitInTerritory',0
       ; DATA XREF: sub_439C50+9
align 10h
 aCreateunitinun db 'CreateUnitInUnit',0 ; DATA XREF: sub_439EC0+9
       ; sub_471A10+20
align 4
 aCreatenamedu_2 db 'CreateNamedUnitInUnit',0 ; DATA XREF: sub_43A0E0+9
       ; sub_471C10+1E
align 4
 aCreategroupe_2 db 'CreateGroupedUnitInUnit',0 ; DATA XREF: sub_43A350+9
       ; sub_471E50+1E
 aGenerateaibuil db 'GenerateAIBuildManagers',0 ; DATA XREF: sub_43A5C0+9
       ; sub_472FC0+17
 aPauseplayerai  db 'PausePlayerAI',0    ; DATA XREF: sub_43A6E0+9
       ; sub_4730E0+15
align 4
 aSetaiinstantra db 'SetAIInstantRallying',0 ; DATA XREF: sub_43A840+9
       ; sub_4731B0+15
align 4
 ; char aAi_changeperso[]
 aAi_changeperso db 'AI_ChangePersonality',0 ; DATA XREF: sub_43A9A0+9
       ; sub_473270+1B ...
align 4
 aAi_loadcivspec db 'AI_LoadCivSpecificPersonality',0
       ; DATA XREF: sub_43AB10+9
       ; sub_473390+1B
align 4
 aAi_setattackfa db 'AI_SetAttackFactor',0 ; DATA XREF: sub_43AC20+9
       ; sub_473520+15
align 10h
 aAi_setbuildtim db 'AI_SetBuildTimeFactor',0 ; DATA XREF: sub_43AD80+9
       ; sub_4735F0+15
align 4
 aAi_setbuildcos db 'AI_SetBuildCostFactor',0 ; DATA XREF: sub_43AEE0+9
       ; sub_4736C0+15
align 10h
 aAi_createbatta db 'AI_CreateBattalion',0 ; DATA XREF: sub_43B040+9
       ; sub_473790+19
align 4
 aSetplayertocin db 'SetPlayerToCinematicOnly',0 ; DATA XREF: sub_43B290+9
       ; sub_4739B0+15
align 10h
 aSetplayerresou db 'SetPlayerResource',0 ; DATA XREF: sub_43B3F0+9
       ; sub_473A50+15
align 4
 aAddplayerresou db 'AddPlayerResource',0 ; DATA XREF: sub_43B5A0+9
       ; sub_473B70+15
align 4
 aRemoveplayerre db 'RemovePlayerResource',0 ; DATA XREF: sub_43B750+9
       ; sub_473C90+18
align 10h
 aLiftshroudforp db 'LiftShroudForPlayer',0 ; DATA XREF: sub_43B900+9
       ; sub_473DE0+15
 aTogglefogofwar db 'ToggleFogOfWar',0   ; DATA XREF: sub_43BA10+9
       ; sub_473E70+15
align 4
 aResetfogofwar  db 'ResetFogOfWar',0    ; DATA XREF: sub_43BB20+9
       ; sub_473EE0+15
align 4
 aCarveshroudcir db 'CarveShroudCircle',0 ; DATA XREF: sub_43BC30+9
       ; sub_473F80+1A
align 4
 aCarveshroudove db 'CarveShroudOverTerritory',0 ; DATA XREF: sub_43BE40+9
       ; sub_474480+1C
align 4
 aPlaceflare     db 'PlaceFlare',0       ; DATA XREF: sub_43BFB0+9
       ; sub_474720+1B ...
align 10h
 aFlushflares    db 'FlushFlares',0      ; DATA XREF: sub_43C210+9
       ; sub_474850+1B
 aFlareminimap   db 'FlareMiniMap',0     ; DATA XREF: sub_43C320+9
       ; sub_474960+18
align 4
 aFlareminimapfo db 'FlareMiniMapForDuration',0 ; DATA XREF: sub_43C4E0+9
       ; sub_474A10+18
 aAlertplayer    db 'AlertPlayer',0      ; DATA XREF: sub_43C6F0+9
       ; sub_474AD0+15
 aCarveshroudare db 'CarveShroudArea',0  ; DATA XREF: sub_43C790+9
       ; sub_474220+1B
 aSetpopcapperci db 'SetPopCapPerCityCenterForPlayer',0
       ; DATA XREF: sub_43C900+9
       ; sub_474B40+18
 aSetmaxpopcapac db 'SetMaxPopCapacity',0 ; DATA XREF: sub_43CA60+9
       ; sub_474BE0+15
align 4
 aNewmissiontime db 'NewMissionTimer',0  ; DATA XREF: sub_43CBC0+9
       ; sub_474C80+1B
 aNewmissionti_0 db 'NewMissionTimerWithFormattedName',0
       ; DATA XREF: sub_43CDA0+9
       ; sub_474DE0+1C
align 4
 aSetmissiontime db 'SetMissionTimer',0  ; DATA XREF: sub_43CF20+9
       ; sub_474F60+1A
 aStartmissionti db 'StartMissionTimer',0 ; DATA XREF: sub_43D080+9
       ; sub_475020+1A
align 4
 aPausemissionti db 'PauseMissionTimer',0 ; DATA XREF: sub_43D190+9
       ; sub_4750C0+1A
align 10h
 aNewmissionstat db 'NewMissionStatusString',0 ; DATA XREF: sub_43D2A0+9
       ; sub_475160+1C
align 4
 aSettechenabled db 'SetTechEnabled',0   ; DATA XREF: sub_43D460+9
       ; sub_4752E0+17
align 4
 aAdvanceplayere db 'AdvancePlayerEpoch',0 ; DATA XREF: sub_43D620+9
       ; sub_4753C0+15
align 4
 aAwardtech      db 'AwardTech',0        ; DATA XREF: sub_43D780+9
       ; sub_4754B0+17
align 4
 aSetmaxepochui  db 'SetMaxEpochUI',0    ; DATA XREF: sub_43D8F0+9
       ; sub_475590+3
align 4
 aCallnamedevent db 'CallNamedEventHandler',0 ; DATA XREF: sub_43DA00+9
       ; sub_4755C0+15
align 10h
 aAttacheffectto db 'AttachEffectToUnit',0 ; DATA XREF: sub_43DB80+9
       ; sub_475630+19
align 4
 aAttacheffect_0 db 'AttachEffectToGroup',0 ; DATA XREF: sub_43DD60+9
       ; sub_4757A0+1C
 aAttacheffect_1 db 'AttachEffectToPlayer',0 ; DATA XREF: sub_43DF40+9
       ; sub_475920+1A
align 10h
 aAttacheffect_2 db 'AttachEffectToPlayerAtLocation',0
       ; DATA XREF: sub_43E110+9
       ; sub_475A50+1C
align 10h
 aCanceleffect   db 'CancelEffect',0     ; DATA XREF: sub_43E370+9
       ; sub_475BB0+15
align 10h
 aSetplayerwinne db 'SetPlayerWinner',0  ; DATA XREF: sub_43E4D0+9
       ; sub_475C10+18
 aWinscenario    db 'WinScenario',0      ; DATA XREF: sub_43E5E0+9
       ; sub_475CA0+18
 aLosescenario   db 'LoseScenario',0     ; DATA XREF: sub_43E680+9
       ; sub_475D30+18
align 4
 aHasplayerresea db 'HasPlayerResearchedTech',0 ; DATA XREF: sub_43E720+9
       ; sub_475DC0+17
 aGetowningplaye db 'GetOwningPlayerForTerritory',0 ; DATA XREF: sub_43E8F0+9
       ; sub_475EC0+16 ...
 aChangeterritor db 'ChangeTerritoryOwner',0 ; DATA XREF: sub_43EA70+9
       ; sub_475F70+16
align 4
 aChangeterrit_0 db 'ChangeTerritoryCityName',0 ; DATA XREF: sub_43EBE0+9
       ; sub_476010+1A
 aGetnumterritor db 'GetNumTerritoriesForPlayer',0 ; DATA XREF: sub_43ED60+9
align 4
 aGetnumberterri db 'GetNumberTerritoriesTributed',0
       ; DATA XREF: sub_43EEE0+9
       ; sub_4761E0+16
align 4
 aDidplayertribu db 'DidPlayerTributeTerritoryToOwner',0
       ; DATA XREF: sub_43F0B0+9
       ; sub_4762B0+17
align 10h
 aAddairmissionw db 'AddAirMissionWayPoint',0 ; DATA XREF: sub_43F280+9
       ; sub_476370+1A
align 4
 aAddairmissio_0 db 'AddAirMissionWayPointArea',0 ; DATA XREF: sub_43F4E0+9
align 4
 aCancelairmissi db 'CancelAirMission',0 ; DATA XREF: sub_43F700+9
       ; sub_476780+17
align 4
 aAssignairplane db 'AssignAirplaneToMission',0 ; DATA XREF: sub_43F8C0+9
       ; sub_476850+18
 aGetcurrentbuyp db 'GetCurrentBuyPrice',0 ; DATA XREF: sub_43FAE0+9
       ; sub_476940+16
align 4
 aGetcurrentsell db 'GetCurrentSellPrice',0 ; DATA XREF: sub_43FCB0+9
       ; sub_476A10+16
 aGetcurrentinfl db 'GetCurrentInflationRate',0 ; DATA XREF: sub_43FE80+9
       ; sub_476AE0+16
 aGetcurrentdefl db 'GetCurrentDeflationRate',0 ; DATA XREF: sub_440050+9
       ; sub_476BB0+16
 aGetcurrentmaxb db 'GetCurrentMaxBuyPrice',0 ; DATA XREF: sub_440220+9
       ; sub_476C80+16
align 10h
 aGetcurrentmins db 'GetCurrentMinSellPrice',0 ; DATA XREF: sub_4403F0+9
       ; sub_476D50+15
align 4
 aSetbuyprice    db 'SetBuyPrice',0      ; DATA XREF: sub_4405C0+9
       ; sub_476DF0+15
 aSetsellprice   db 'SetSellPrice',0     ; DATA XREF: sub_440770+9
       ; sub_476E90+15
align 4
 aSetinflationra db 'SetInflationRate',0 ; DATA XREF: sub_440920+9
       ; sub_476F30+15
align 4
 aSetdeflationra db 'SetDeflationRate',0 ; DATA XREF: sub_440AD0+9
       ; sub_476FD0+15
align 4
 aSetmaxbuyprice db 'SetMaxBuyPrice',0   ; DATA XREF: sub_440C80+9
       ; sub_477070+15
align 4
 aSetminsellpric db 'SetMinSellPrice',0  ; DATA XREF: sub_440E30+9
       ; sub_477110+15
 aStartplayingci db 'StartPlayingCinematic',0 ; DATA XREF: sub_440FE0+9
       ; sub_4771B0+1E
align 4
 aDodelayuntilci db 'DoDelayUntilCinematicTime',0 ; DATA XREF: sub_441100+9
       ; sub_477380+1B
align 10h
 aDodelayuntil_0 db 'DoDelayUntilCinematicFinished',0
       ; DATA XREF: sub_441220+9
       ; sub_477570+1A
align 10h
 aSetcinematicti db 'SetCinematicTime',0 ; DATA XREF: sub_4412D0+9
       ; sub_477630+15
align 4
 aPlaybink       db 'PlayBink',0         ; DATA XREF: sub_4413E0+9
       ; sub_4776C0+15
align 10h
 aStartformat    db 'StartFormat',0      ; DATA XREF: sub_441500+9
       ; sub_477750+1D
 aFormatplayerna db 'FormatPlayerName',0 ; DATA XREF: sub_441620+9
       ; sub_4778B0+18
align 10h
 aFormatplayerci db 'FormatPlayerCiv',0  ; DATA XREF: sub_441790+9
       ; sub_477980+18
 aFormatint      db 'FormatInt',0        ; DATA XREF: sub_441900+9
       ; sub_477A50+18
align 4
 aFormatfloat    db 'FormatFloat',0      ; DATA XREF: sub_441A70+9
       ; sub_477AE0+18
 aFormatenum     db 'FormatEnum',0       ; DATA XREF: sub_441BE0+9
       ; sub_477B80+1C
align 4
 aFormatstring   db 'FormatString',0     ; DATA XREF: sub_441DB0+9
       ; sub_477CC0+1E
align 4
 aPrintformatted db 'PrintFormattedMessage',0 ; DATA XREF: sub_441F30+9
       ; sub_477E10+1C
align 4
 aPrintformatt_0 db 'PrintFormattedSubtitle',0 ; DATA XREF: sub_441FD0+9
       ; sub_477F10+1C
align 4
 aPrintformatt_1 db 'PrintFormattedMissionStatusString',0
       ; DATA XREF: sub_442070+9
       ; sub_478010+1B
align 4
 aPipsetbookmark db 'PIPSetBookmarkLocation',0 ; DATA XREF: sub_442180+9
       ; sub_478120+19
align 10h
 aPipsetbookma_0 db 'PIPSetBookmarkUnit',0 ; DATA XREF: sub_4423E0+9
       ; sub_478390+17
align 4
 aPipviewbookmar db 'PIPViewBookmark',0  ; DATA XREF: sub_4425F0+9
       ; sub_478460+15
 aPipcyclemode   db 'PIPCycleMode',0     ; DATA XREF: sub_442700+9
       ; sub_4784F0+15
align 4
 aPipenable      db 'PIPEnable',0        ; DATA XREF: sub_442810+9
       ; sub_478550+15
align 10h
 aCreatedialogbo db 'CreateDialogBox',0  ; DATA XREF: sub_442920+9
       ; sub_4785C0+17
 aCreateobject_3 db 'CreateObjectiveDialogBox',0 ; DATA XREF: sub_442AF0+9
       ; sub_4787C0+16
align 4
 aIsobjectivedia db 'IsObjectiveDialogBoxOpen',0 ; DATA XREF: sub_442C60+9
       ; sub_478890+16
align 4
 aSetallowobject db 'SetAllowObjectiveDialogInEncyclopedia',0
       ; DATA XREF: sub_442E60+9
       ; sub_4788F0+15
align 10h
 aIsobjectivecom db 'IsObjectiveCompleted',0 ; DATA XREF: sub_442F70+9
       ; sub_478960+17
align 4
 aIsobjectivefai db 'IsObjectiveFailed',0 ; DATA XREF: sub_4430F0+9
       ; sub_478A20+17
align 4
 aIsobjectiveunl db 'IsObjectiveUnlocked',0 ; DATA XREF: sub_443270+9
       ; sub_478AE0+17
 aAllprimaryobje db 'AllPrimaryObjectivesCompleted',0
       ; DATA XREF: sub_4433F0+9
       ; sub_478BA0+16
align 10h
 aAllsecondaryob db 'AllSecondaryObjectivesCompleted',0
       ; DATA XREF: sub_4435F0+9
       ; sub_478C40+16
 aAnyprimaryobje db 'AnyPrimaryObjectivesFailed',0 ; DATA XREF: sub_4437F0+9
       ; sub_478CE0+16
align 4
 aAnyloseconditi db 'AnyLoseConditionsFailed',0 ; DATA XREF: sub_4439F0+9
       ; sub_478D80+16
 aSetobjectiveun db 'SetObjectiveUnlocked',0 ; DATA XREF: sub_443BF0+9
       ; sub_478E20+16
align 4
 aSetobjectivelo db 'SetObjectiveLocked',0 ; DATA XREF: sub_443D10+9
       ; sub_478F00+16
align 10h
 aSetobjectiveco db 'SetObjectiveCompleted',0 ; DATA XREF: sub_443E30+9
       ; sub_478FE0+16
align 4
 aSetobjectiveno db 'SetObjectiveNotCompleted',0 ; DATA XREF: sub_443F50+9
       ; sub_4790F0+16
align 4
 aSetobjectivefa db 'SetObjectiveFailed',0 ; DATA XREF: sub_444070+9
       ; sub_4791D0+16
align 4
 aChangeobjectiv db 'ChangeObjectiveDescription',0 ; DATA XREF: sub_444190+9
       ; sub_4792B0+1A
align 4
 aObjectiveclear db 'ObjectiveClearAllTargets',0 ; DATA XREF: sub_444310+9
       ; sub_479400+19
align 10h
 aObjectivesetta db 'ObjectiveSetTargetLocation',0 ; DATA XREF: sub_444430+9
       ; sub_479530+1B
align 4
 aObjectiveaddta db 'ObjectiveAddTargetLocation',0 ; DATA XREF: sub_4445F0+9
       ; sub_479680+19
align 4
 aObjectiveremov db 'ObjectiveRemoveTargetLocation',0
       ; DATA XREF: sub_4447B0+9
       ; sub_4797B0+19
align 4
 aObjectivecle_0 db 'ObjectiveClearTargetLocations',0
       ; DATA XREF: sub_4449E0+9
       ; sub_479900+18
align 4
 aObjectiveset_0 db 'ObjectiveSetTargetUnit',0 ; DATA XREF: sub_444B00+9
       ; sub_4799C0+18
align 10h
 aObjectiveadd_0 db 'ObjectiveAddTargetUnit',0 ; DATA XREF: sub_444C80+9
       ; sub_479AA0+17
align 4
 aObjectiverem_0 db 'ObjectiveRemoveTargetUnit',0 ; DATA XREF: sub_444E00+9
       ; sub_479B80+18
align 4
 aObjectivecle_1 db 'ObjectiveClearTargetUnits',0 ; DATA XREF: sub_444FE0+9
       ; sub_479C80+16
align 10h
 aObjectiveset_1 db 'ObjectiveSetTargetArea',0 ; DATA XREF: sub_445100+9
       ; sub_479D20+19
align 4
 aObjectiveadd_1 db 'ObjectiveAddTargetArea',0 ; DATA XREF: sub_445280+9
       ; sub_479E60+17
align 10h
 aObjectiverem_1 db 'ObjectiveRemoveTargetArea',0 ; DATA XREF: sub_445400+9
       ; sub_479F40+18
align 4
 aObjectivecle_2 db 'ObjectiveClearTargetAreas',0 ; DATA XREF: sub_4455E0+9
       ; sub_47A040+19
align 4
 aObjectiveset_2 db 'ObjectiveSetTargetTerritory',0 ; DATA XREF: sub_445700+9
       ; sub_47A130+19
 aObjectiveadd_2 db 'ObjectiveAddTargetTerritory',0 ; DATA XREF: sub_445880+9
       ; sub_47A230+17
 aObjectiverem_2 db 'ObjectiveRemoveTargetTerritory',0
       ; DATA XREF: sub_445A00+9
       ; sub_47A310+17
align 10h
 aObjectivecle_3 db 'ObjectiveClearTargetTerritories',0
       ; DATA XREF: sub_445BE0+9
       ; sub_47A3F0+18
 aSelectunit     db 'SelectUnit',0       ; DATA XREF: sub_445D00+9
       ; sub_47A4B0+1A
align 4
 aSelectgroup    db 'SelectGroup',0      ; DATA XREF: sub_445E80+9
       ; sub_47A610+1E
 aSelectgroupfor db 'SelectGroupForPlayer',0 ; DATA XREF: sub_446000+9
       ; sub_47A7E0+1E
align 10h
 aClearselection db 'ClearSelection',0   ; DATA XREF: sub_4461D0+9
       ; sub_47A9C0+18
align 10h
 aCreatenamedgro db 'CreateNamedGroup',0 ; DATA XREF: sub_4463D0+9
       ; sub_47AA30+15
align 4
 aAddunittogroup db 'AddUnitToGroup',0   ; DATA XREF: sub_446550+9
       ; sub_47AA90+19
align 4
 aRemoveunitfrom db 'RemoveUnitFromGroup',0 ; DATA XREF: sub_446730+9
       ; sub_47ABD0+19
 aAddgrouptogrou db 'AddGroupToGroup',0  ; DATA XREF: sub_446910+9
       ; sub_47AD20+19
 aRemovegroupfro db 'RemoveGroupFromGroup',0 ; DATA XREF: sub_446AF0+9
       ; sub_47AEA0+19
align 10h
 aAddunitsbyattr db 'AddUnitsByAttributeToGroup',0 ; DATA XREF: sub_446CD0+9
       ; sub_47B030+1C
align 4
 aRemoveunitsbya db 'RemoveUnitsByAttributeFromGroup',0
       ; DATA XREF: sub_446F30+9
       ; sub_47B1C0+1C
 aAddunitsbytype db 'AddUnitsByTypeToGroup',0 ; DATA XREF: sub_447190+9
       ; sub_47B360+1C
align 4
 aRemoveunitsbyt db 'RemoveUnitsByTypeFromGroup',0 ; DATA XREF: sub_4473F0+9
       ; sub_47B700+1C
align 10h
 aAdddeadunitsby db 'AddDeadUnitsByAttributeToGroup',0
       ; DATA XREF: sub_447650+9
       ; sub_47B990+1C
align 10h
 aAdddeadunits_0 db 'AddDeadUnitsByTypeToGroup',0 ; DATA XREF: sub_4478B0+9
       ; sub_47BB20+1C
align 4
 aAddunitsincity db 'AddUnitsInCityToGroup',0 ; DATA XREF: sub_447B10+9
       ; sub_47BD90+1C
align 4
 aRemoveunitsinc db 'RemoveUnitsInCityFromGroup',0 ; DATA XREF: sub_447D70+9
       ; sub_47BF70+1C
align 10h
 aAddunitsbyat_0 db 'AddUnitsByAttributeToGroupFromTerritory',0
       ; DATA XREF: sub_447FD0+9
       ; sub_47C150+1E
 aRemoveunitsb_0 db 'RemoveUnitsByAttributeFromGroupFromTerritory',0
       ; DATA XREF: sub_448230+9
       ; sub_47C3A0+1F
align 4
 aAddunitsbyty_0 db 'AddUnitsByTypeToGroupFromTerritory',0
       ; DATA XREF: sub_448490+9
       ; sub_47C610+21
align 4
 aRemoveunitsb_1 db 'RemoveUnitsByTypeFromGroupFromTerritory',0
       ; DATA XREF: sub_4486F0+9
       ; sub_47C920+1F
 aAddunitsbyat_1 db 'AddUnitsByAttributeInLOSToGroup',0
       ; DATA XREF: sub_448950+9
       ; sub_47CC50+1C
 aRemoveunitsb_2 db 'RemoveUnitsByAttributeInLOSFromGroup',0
       ; DATA XREF: sub_448B80+9
       ; sub_47CDF0+1C
align 4
 aAddunitsbyty_1 db 'AddUnitsByTypeInLOSToGroup',0 ; DATA XREF: sub_448DB0+9
       ; sub_47CF90+20
align 4
 aRemoveunitsb_3 db 'RemoveUnitsByTypeInLOSFromGroup',0
       ; DATA XREF: sub_448FE0+9
       ; sub_47D1B0+20
 aPlayerhaslosto db 'PlayerHasLOSToAnyoneInGroup',0 ; DATA XREF: sub_449210+9
       ; sub_47D3D0+1C
 aUnithaslostoan db 'UnitHasLOSToAnyoneInGroup',0 ; DATA XREF: sub_4493E0+9
       ; sub_47D4F0+1C
align 10h
 aGrouphaslostoa db 'GroupHasLOSToAnyoneInGroup',0 ; DATA XREF: sub_4495C0+9
       ; sub_47D6C0+1C
align 4
 aNamedunitisina db 'NamedUnitIsInArea',0 ; DATA XREF: sub_4497A0+9
       ; sub_47D8A0+18
align 10h
 aAnyonefromgrou db 'AnyoneFromGroupIsInArea',0 ; DATA XREF: sub_449980+9
       ; sub_47D9C0+1C
 aEveryonefromgr db 'EveryoneFromGroupIsInArea',0 ; DATA XREF: sub_449B60+9
       ; sub_47DB20+1C
align 4
 aNamedunitisint db 'NamedUnitIsInTerritory',0 ; DATA XREF: sub_449D40+9
       ; sub_47DCA0+1B
align 4
 aAnyonefromgr_0 db 'AnyoneFromGroupIsInTerritory',0
       ; DATA XREF: sub_449F20+9
       ; sub_47DDB0+1C
align 4
 aEveryonefrom_0 db 'EveryoneFromGroupIsInTerritory',0
       ; DATA XREF: sub_44A100+9
       ; sub_47DF20+1C
align 4
 aAddtocontrolgr db 'AddToControlGroupFromGroup',0 ; DATA XREF: sub_44A2E0+9
       ; sub_47E160+19
align 4
 aSetcontrolgrou db 'SetControlGroupFromGroup',0 ; DATA XREF: sub_44A4A0+9
       ; sub_47E2C0+19
align 4
 aClearcontrolgr db 'ClearControlGroup',0 ; DATA XREF: sub_44A660+9
       ; sub_47E420+15
align 4
 aAddtogroupfrom db 'AddToGroupFromControlGroup',0 ; DATA XREF: sub_44A7C0+9
       ; sub_47E4F0+19
align 4
 aLookatcontrolg db 'LookAtControlGroup',0 ; DATA XREF: sub_44A980+9
       ; sub_47E650+15
align 4
 aControlgroupha db 'ControlGroupHasUnits',0 ; DATA XREF: sub_44AAE0+9
       ; sub_47E720+16
align 10h
 aMoveselection  db 'MoveSelection',0    ; DATA XREF: sub_44ACB0+9
       ; sub_47E810+1C ...
align 10h
 aMoveselectiont db 'MoveSelectionToArea',0 ; DATA XREF: sub_44AE20+9
       ; sub_47EB10+1E ...
 aMoveselectio_0 db 'MoveSelectionToTerritory',0 ; DATA XREF: sub_44AF40+9
       ; sub_47F090+1D
align 10h
 aMoveselectio_1 db 'MoveSelectionToAreaWithAttack',0
       ; DATA XREF: sub_44B060+9
align 10h
 aMoveselectio_2 db 'MoveSelectionToTerritoryWithAttack',0
       ; DATA XREF: sub_44B1D0+9
       ; sub_47F8A0+1D
align 4
 aInstantmovesel db 'InstantMoveSelectionToArea',0 ; DATA XREF: sub_44B340+9
       ; sub_47FB90+1E
align 10h
 aInstantmoves_0 db 'InstantMoveSelection',0 ; DATA XREF: sub_44B4B0+9
       ; sub_47FDE0+1D
align 4
 aReloadselectio db 'ReloadSelection',0  ; DATA XREF: sub_44B670+9
       ; sub_4802D0+1D
 aPatrolwithsele db 'PatrolWithSelection',0 ; DATA XREF: sub_44B710+9
       ; sub_4803E0+1C
 aAttackareawith db 'AttackAreaWithSelection',0 ; DATA XREF: sub_44BA10+9
       ; sub_4809E0+1C
 aGiveattackbase db 'GiveAttackBasePreference',0 ; DATA XREF: sub_44BB30+9
       ; sub_480D70+1B
align 10h
 aGivedefendbase db 'GiveDefendBasePreference',0 ; DATA XREF: sub_44BCF0+9
       ; sub_480EA0+1B
align 4
 aGivecaptureter db 'GiveCaptureTerritoryPreference',0
       ; DATA XREF: sub_44BEB0+9
       ; sub_480FD0+16
align 4
 aGiveattackarmy db 'GiveAttackArmyPreference',0 ; DATA XREF: sub_44C070+9
       ; sub_4810D0+1A
align 4
 aSetselectionfo db 'SetSelectionFormation',0 ; DATA XREF: sub_44C230+9
       ; sub_4811D0+1E
align 10h
 aAttackwithsele db 'AttackWithSelection',0 ; DATA XREF: sub_44C350+9
       ; sub_481310+1C
 aAttackgroupwit db 'AttackGroupWithSelection',0 ; DATA XREF: sub_44C470+9
       ; sub_481500+1C
align 10h
 aCapturewithsel db 'CaptureWithSelection',0 ; DATA XREF: sub_44C590+9
       ; sub_4816C0+1C
align 4
 aSetselectionst db 'SetSelectionStance',0 ; DATA XREF: sub_44C6B0+9
       ; sub_481880+18
align 4
 aSearchanddestr db 'SearchAndDestroyWithSelection',0
       ; DATA XREF: sub_44C7C0+9
       ; sub_481910+1B
align 4
 aSearchanddes_0 db 'SearchAndDestroyWallsWithSelection',0
       ; DATA XREF: sub_44C860+9
       ; sub_4819D0+1B
align 10h
 aGatherfromname db 'GatherFromNamedUnitWithSelection',0
       ; DATA XREF: sub_44C900+9
       ; sub_481A90+1D
align 4
 aGatherresource db 'GatherResourceWithSelection',0 ; DATA XREF: sub_44CA20+9
       ; sub_481BB0+18
 aGuardwithselec db 'GuardWithSelection',0 ; DATA XREF: sub_44CB30+9
       ; sub_481C50+1B
align 4
 aStopselection  db 'StopSelection',0    ; DATA XREF: sub_44CC50+9
       ; sub_481D60+1C
align 4
 aExplorewithsel db 'ExploreWithSelection',0 ; DATA XREF: sub_44CCF0+9
       ; sub_481E20+1B
align 4
 aIsunitexplorin db 'IsUnitExploring',0  ; DATA XREF: sub_44CD90+9
       ; sub_481EE0+17
 aIsanyoneingrou db 'IsAnyoneInGroupExploring',0 ; DATA XREF: sub_44CF10+9
       ; sub_481FD0+1B
align 4
 aIsunitpatrolli db 'IsUnitPatrolling',0 ; DATA XREF: sub_44D090+9
       ; sub_4820F0+17
align 4
 aIsanyoneingr_0 db 'IsAnyoneInGroupPatrolling',0 ; DATA XREF: sub_44D210+9
       ; sub_4821F0+1B
align 4
 aRemovegarrison db 'RemoveGarrisonedUnitsFromGroup',0
       ; DATA XREF: sub_44D390+9
       ; sub_482310+1C
align 4
 aGarrisonselect db 'GarrisonSelection',0 ; DATA XREF: sub_44D4B0+9
       ; sub_482450+1B
align 4
 aUngarrisonsele db 'UngarrisonSelection',0 ; DATA XREF: sub_44D5D0+9
       ; sub_4825A0+1B
 aUngarrisonse_0 db 'UngarrisonSelectionAtLocation',0
       ; DATA XREF: sub_44D670+9
       ; sub_482710+1C
align 10h
 aIsunitgarrison db 'IsUnitGarrisoned',0 ; DATA XREF: sub_44D790+9
       ; sub_482A50+18
align 4
 aIsunitsabotage db 'IsUnitSabotaged',0  ; DATA XREF: sub_44D910+9
       ; sub_482B20+18
 aGetnumgarrison db 'GetNumGarrisoned',0 ; DATA XREF: sub_44DA90+9
       ; sub_483AB0+1C
align 4
 aCountunitsgarr db 'CountUnitsGarrisonedInUnit',0 ; DATA XREF: sub_44DC10+9
       ; sub_482BF0+17
align 4
 aCountunitsga_0 db 'CountUnitsGarrisonedInGroup',0 ; DATA XREF: sub_44DD90+9
       ; sub_482CD0+1C
 aKillselection  db 'KillSelection',0    ; DATA XREF: sub_44DF10+9
       ; sub_482DF0+18
align 10h
 aRemoveselectio db 'RemoveSelection',0  ; DATA XREF: sub_44DFB0+9
       ; sub_482E90+18
 aHealunit       db 'HealUnit',0         ; DATA XREF: sub_44E050+9
       ; sub_482F30+17
align 4
 aHealgroup      db 'HealGroup',0        ; DATA XREF: sub_44E170+9
       ; sub_483040+1C
align 4
 aDamageunit     db 'DamageUnit',0       ; DATA XREF: sub_44E290+9
       ; sub_4831A0+17
align 4
 aDamagegroup    db 'DamageGroup',0      ; DATA XREF: sub_44E400+9
       ; sub_483260+1C
 aSetunitownedby db 'SetUnitOwnedBy',0   ; DATA XREF: sub_44E570+9
       ; sub_483390+17
align 10h
 aSetgroupownedb db 'SetGroupOwnedBy',0  ; DATA XREF: sub_44E6E0+9
       ; sub_483450+1C
 aPauseunitai    db 'PauseUnitAI',0      ; DATA XREF: sub_44E850+9
       ; sub_4835D0+17
 aPausegroupai   db 'PauseGroupAI',0     ; DATA XREF: sub_44E9C0+9
       ; sub_483690+1C
align 4
 aSetunitspecial db 'SetUnitSpecialForces',0 ; DATA XREF: sub_44EB30+9
       ; sub_4837A0+1A
align 4
 aSetgroupspecia db 'SetGroupSpecialForces',0 ; DATA XREF: sub_44ECA0+9
       ; sub_483850+1E
align 4
 aSetresourcesga db 'SetResourcesGatheredTypeAndAmount',0
       ; DATA XREF: sub_44EE10+9
       ; sub_4839A0+1C
align 10h
 aSetresources_0 db 'SetResourcesGatheredAmount',0 ; DATA XREF: sub_44EF70+9
align 4
 aIsselectionins db 'IsSelectionInsideCity',0 ; DATA XREF: sub_44F080+9
align 4
 aUsespecialpowe db 'UseSpecialPowerSelf',0 ; DATA XREF: sub_44F260+9
       ; sub_483D80+23
 aUsespecialpo_0 db 'UseSpecialPowerTarget',0 ; DATA XREF: sub_44F380+9
       ; sub_483FE0+23 ...
align 10h
 aUsespecialpo_1 db 'UseSpecialPowerLocation',0 ; DATA XREF: sub_44F500+9
 aUsespecialpo_2 db 'UseSpecialPowerOnTargetInArea',0
       ; DATA XREF: sub_44F6C0+9
       ; sub_4844D0+21
align 4
 aUsespecialpo_3 db 'UseSpecialPowerOnTargetInGroup',0
       ; DATA XREF: sub_44F840+9
       ; sub_484850+21
align 4
 aRechargepowerr db 'RechargePowerReserve',0 ; DATA XREF: sub_44F9C0+9
       ; sub_484BC0+1D
align 10h
 aHasplayeruseds db 'HasPlayerUsedSpecialPowerRecently',0
       ; DATA XREF: sub_44FA60+9
align 4
 aNumtimesplayer db 'NumTimesPlayerUsedRegionPower',0
       ; DATA XREF: sub_44FC80+9
       ; sub_484D70+16
align 4
 aIseffectoftype db 'IsEffectOfTypeOnSelection',0 ; DATA XREF: sub_44FE00+9
       ; sub_484E30+1D
align 10h
 aStartbuildwall db 'StartBuildWall',0   ; DATA XREF: sub_44FFD0+9
       ; sub_484F90+1C
align 10h
 aStartbuildroad db 'StartBuildRoad',0   ; DATA XREF: sub_4501E0+9
       ; sub_485110+1C
align 10h
 aAddconnectable db 'AddConnectableWaypoint',0 ; DATA XREF: sub_4503F0+9
       ; sub_485290+1B
align 4
 aSelectionbuild db 'SelectionBuildConnectable',0 ; DATA XREF: sub_450560+9
       ; sub_485380+19
align 4
 aBlinkselection db 'BlinkSelectionCircles',0 ; DATA XREF: sub_450600+9
       ; sub_485460+1E
align 4
 aShowmissiontim db 'ShowMissionTimerWidget',0 ; DATA XREF: sub_450710+9
       ; sub_485550+1A
align 4
 aShowmissionsta db 'ShowMissionStatusString',0 ; DATA XREF: sub_450870+9
       ; sub_4855F0+1A
 aSetvisualstate db 'SetVisualStateOnUnit',0 ; DATA XREF: sub_4509D0+9
       ; sub_4856A0+19
align 4
 aPrintmessage   db 'PrintMessage',0     ; DATA XREF: sub_450BF0+9
       ; sub_4857E0+19 ...
align 4
 aPrintmessagefr db 'PrintMessageFromPlayer',0 ; DATA XREF: sub_450D10+9
align 4
 aClearmessage   db 'ClearMessage',0     ; DATA XREF: sub_450E80+9
       ; sub_485A00+15
align 4
 aPrintsubtitle  db 'PrintSubtitle',0    ; DATA XREF: sub_450F20+9
       ; sub_485A60+19
align 4
 aClearsubtitle  db 'ClearSubtitle',0    ; DATA XREF: sub_451040+9
       ; sub_485B50+15
align 4
 aSetcameralooka db 'SetCameraLookAt',0  ; DATA XREF: sub_4510E0+9
       ; sub_485BB0+18
 aSetcameraloo_0 db 'SetCameraLookAtArea',0 ; DATA XREF: sub_4512A0+9
       ; sub_485C40+1A
 aSetcameraheadi db 'SetCameraHeading',0 ; DATA XREF: sub_451410+9
       ; sub_485EA0+15
align 4
 aSetcameradista db 'SetCameraDistanceFraction',0 ; DATA XREF: sub_451580+9
       ; sub_485F20+16
align 10h
 aDebugoutputstr db 'DebugOutputString',0 ; DATA XREF: sub_4516F0+9
       ; sub_486010+16
align 4
 aCleardebugbuff db 'ClearDebugBuffer',0 ; DATA XREF: sub_451810+9
       ; sub_4860B0+15
align 4
 aIsunitbookmark db 'IsUnitBookMarked',0 ; DATA XREF: sub_4518B0+9
       ; sub_486130+17
align 4
 aIsbookmarkset  db 'IsBookmarkSet',0    ; DATA XREF: sub_451A30+9
       ; sub_4861F0+16
align 4
 aIsunitselected db 'IsUnitSelectedUI',0 ; DATA XREF: sub_451BB0+9
align 10h
 aIsgroupselecte db 'IsGroupSelectedUI',0 ; DATA XREF: sub_451D30+9
align 4
 aIswidgetvisibl db 'IsWidgetVisible',0  ; DATA XREF: sub_451EB0+9
       ; sub_486490+16
 aSetwarplandele db 'SetWarPlanDeleteEnabled',0 ; DATA XREF: sub_452030+9
       ; sub_486500+3
 aSetwarplancopy db 'SetWarPlanCopyEnabled',0 ; DATA XREF: sub_452140+9
       ; sub_486530+3
align 4
 aSetwarplansend db 'SetWarPlanSendToAlliesEnabled',0
       ; DATA XREF: sub_452250+9
       ; sub_486560+3
align 4
 aShowmonthwidge db 'ShowMonthWidget',0  ; DATA XREF: sub_452360+9
       ; sub_486590+15
 aIsuserplacingt db 'IsUserPlacingType',0 ; DATA XREF: sub_452470+9
       ; sub_486600+15
align 4
 aDisablecitizen db 'DisableCitizenManager',0 ; DATA XREF: sub_4525F0+9
       ; sub_4866C0+15
align 10h
 aFlashwidgetunt db 'FlashWidgetUntilClicked',0 ; DATA XREF: sub_452690+9
       ; sub_486720+15
 aFlashwidgetfor db 'FlashWidgetForTime',0 ; DATA XREF: sub_452800+9
       ; sub_4867B0+15
align 4
 aFlashwidgetu_0 db 'FlashWidgetUntilStopped',0 ; DATA XREF: sub_452970+9
       ; sub_486880+15
 aStopflashingwi db 'StopFlashingWidget',0 ; DATA XREF: sub_452A90+9
       ; sub_486910+15
align 4
 aHackmakewidget db 'HackMakeWidgetFlashable',0 ; DATA XREF: sub_452BB0+9
       ; sub_486990+17
 aAddwidgetliste db 'AddWidgetListenForSelection',0 ; DATA XREF: sub_452CD0+9
       ; sub_486A50+15
 aAddwidgetlis_0 db 'AddWidgetListenForSelectionWithEventAndArg',0
       ; DATA XREF: sub_452E40+9
       ; sub_486AD0+15
align 4
 aRemovewidgetli db 'RemoveWidgetListenForSelection',0
       ; DATA XREF: sub_453010+9
       ; sub_486B80+15
align 4
 aHaswidgetbeens db 'HasWidgetBeenSelected',0 ; DATA XREF: sub_453130+9
       ; sub_486C00+17
align 10h
 aGetwidgetselec db 'GetWidgetSelectionCount',0 ; DATA XREF: sub_4532B0+9
       ; sub_486CE0+16
 aHastextbeentyp db 'HasTextBeenTyped',0 ; DATA XREF: sub_453430+9
align 4
 aSuppressterrit db 'SuppressTerritoryMessages',0 ; DATA XREF: sub_4535B0+9
       ; sub_486E30
align 4
 aSetdontpausedu db 'SetDontPauseDuringEncyclopedia',0
       ; DATA XREF: sub_4536C0+9
       ; sub_486E60+3
align 4
 aSetdontpause_0 db 'SetDontPauseDuringDiplomacy',0 ; DATA XREF: sub_4537D0+9
       ; sub_486E90+3
 aSetdontpause_1 db 'SetDontPauseDuringScenarioBriefing',0
       ; DATA XREF: sub_4538E0+9
       ; sub_486EC0+3
align 4
 aStartplayingso db 'StartPlayingSound',0 ; DATA XREF: sub_4539F0+9
       ; sub_486EF0+1B
align 4
 aStopsound      db 'StopSound',0        ; DATA XREF: sub_453B70+9
       ; sub_487000+1A
align 4
 aStopallscripts db 'StopAllScriptSounds',0 ; DATA XREF: sub_453C80+9
       ; sub_4870E0+1A
 aPlayvoiceover  db 'PlayVoiceOver',0    ; DATA XREF: sub_453D20+9
       ; sub_4871D0+1B
align 4
 aPlayunpausable db 'PlayUnpausableVoiceOver',0 ; DATA XREF: sub_453EA0+9
       ; sub_4872E0+1B
 aPlayloopingvoi db 'PlayLoopingVoiceOver',0 ; DATA XREF: sub_454020+9
       ; sub_4873F0+1B
align 4
 aFadeoutsound   db 'FadeOutSound',0     ; DATA XREF: sub_4541A0+9
       ; sub_487510+1B
align 4
 aIssoundplaying db 'IsSoundPlaying',0   ; DATA XREF: sub_454300+9
align 4
 aTogglestreamin db 'ToggleStreamingMusic',0 ; DATA XREF: sub_454480+9
align 4
 aPlayloopingmus db 'PlayLoopingMusic',0 ; DATA XREF: sub_454590+9
align 4
 aPlayoneshotmus db 'PlayOneShotMusic',0 ; DATA XREF: sub_4546B0+9
align 4
 aGetdiplomatics db 'GetDiplomaticState',0 ; DATA XREF: sub_4547D0+9
       ; sub_487700+16
align 10h
 aSetdiplomatics db 'SetDiplomaticState',0 ; DATA XREF: sub_4549A0+9
       ; sub_487770+15 ...
align 4
 aIsdiplomaticst db 'IsDiplomaticStateLocked',0 ; DATA XREF: sub_454B50+9
       ; sub_487810+16
 aLockdiplomatic db 'LockDiplomaticState',0 ; DATA XREF: sub_454D20+9
       ; sub_487880
 aUnlockdiplomat db 'UnlockDiplomaticState',0 ; DATA XREF: sub_454E80+9
       ; sub_4878D0
align 4
 aIsallianceprop db 'IsAllianceProposalWaiting',0 ; DATA XREF: sub_454FE0+9
       ; sub_487920+16
align 4
 aGetwaitingprop db 'GetWaitingProposalDurationType',0
       ; DATA XREF: sub_4551B0+9
       ; sub_487990+16
align 4
 aGetwaitingpr_0 db 'GetWaitingProposalTimeElapsed',0
       ; DATA XREF: sub_455380+9
       ; sub_487A50+15
align 4
 aGetwaitingpr_1 db 'GetWaitingProposalDuration',0 ; DATA XREF: sub_455550+9
       ; sub_487B10+15
align 10h
 aGetwaitingpr_2 db 'GetWaitingProposalLOSState',0 ; DATA XREF: sub_455720+9
       ; sub_487BD0+16
align 4
 aGetwaitingpr_3 db 'GetWaitingProposalBorderPermission',0
       ; DATA XREF: sub_4558F0+9
       ; sub_487C90+16
align 10h
 aWaitingproposa db 'WaitingProposalAllowsMiningOf',0
       ; DATA XREF: sub_455AC0+9
       ; sub_487D50+15
align 10h
 aWaitingpropo_0 db 'WaitingProposalTariffPercentage',0
       ; DATA XREF: sub_455CE0+9
       ; sub_487E00+16
 aGetwaitingpr_4 db 'GetWaitingProposalTribute',0 ; DATA XREF: sub_455F00+9
       ; sub_487EC0+18
align 4
 aRejectwaitingp db 'RejectWaitingProposal',0 ; DATA XREF: sub_456120+9
       ; sub_487FC0+1C
align 4
 aAcceptwaitingp db 'AcceptWaitingProposal',0 ; DATA XREF: sub_456280+9
       ; sub_488320+1C
align 4
 aEnteralliancep db 'EnterAllianceProposal',0 ; DATA XREF: sub_4563E0+9
       ; sub_488560+1C
align 4
 aStartalliancep db 'StartAllianceProposal',0 ; DATA XREF: sub_4566A0+9
       ; sub_488730+1E
align 4
 aSendalliancepr db 'SendAllianceProposal',0 ; DATA XREF: sub_456800+9
       ; sub_4888A0+1E
align 4
 aSetalliancepro db 'SetAllianceProposalDurationUntilWarIsDeclared',0
       ; DATA XREF: sub_456910+9
       ; sub_488AB0+18
align 4
 aSetalliancep_0 db 'SetAllianceProposalDurationTimed',0
       ; DATA XREF: sub_4569B0+9
align 4
 aSetalliancep_1 db 'SetAllianceProposalLOSState',0 ; DATA XREF: sub_456AC0+9
       ; sub_488BD0+18
 aSetalliancep_2 db 'SetAllianceProposalBorderPermission',0
       ; DATA XREF: sub_456BD0+9
       ; sub_488C60+18
 aSetalliancep_3 db 'SetAllianceProposalResourceRight',0
       ; DATA XREF: sub_456CE0+9
       ; sub_488CF0+18
align 4
 aAddalliancepro db 'AddAllianceProposalTributeResource',0
       ; DATA XREF: sub_456DF0+9
       ; sub_488D70+18
align 10h
 aAddalliancep_0 db 'AddAllianceProposalTributeUnits',0
       ; DATA XREF: sub_456F50+9
       ; sub_488E30+1E
 unk_BFBBD0      db  41h ; A             ; DATA XREF: sub_457070+9
       ; sub_488FA0+1C
db  64h ; d
db  64h ; d
db  41h ; A
db  6Ch ; l
db  6Ch ; l
db  69h ; i
db  61h ; a
db  6Eh ; n
db  63h ; c
db  65h ; e
db  50h ; P
db  72h ; r
db  6Fh ; o
db  70h ; p
db  6Fh ; o
db  73h ; s
db  61h ; a
db  6Ch ; l
db  54h ; T
db  72h ; r
db  69h ; i
db  62h ; b
db  75h ; u
db  74h ; t
db  65h ; e
db  54h ; T
db  65h ; e
db  72h ; r
db  72h ; r
db  69h ; i
 aTory           db 'tory',0             ; DATA XREF: 18o
 aStartverifyall db 'StartVerifyAllianceProposal',0 ; DATA XREF: sub_457190+9
       ; sub_489130+1E
 aVerifyproposal db 'VerifyProposalDurationNotLongerThan',0
       ; DATA XREF: sub_457360+9
       ; sub_489500+19
 aVerifypropos_0 db 'VerifyProposalDurationNotShorterThan',0
       ; DATA XREF: sub_457530+9
       ; sub_4896B0+1C
align 4
 aVerifypropos_1 db 'VerifyProposalLOS',0 ; DATA XREF: sub_457700+9
       ; sub_489870+1B
align 10h
 aVerifypropos_2 db 'VerifyProposalBorderPermissions',0
       ; DATA XREF: sub_457880+9
       ; sub_4899F0+1B
 aVerifypropos_3 db 'VerifyProposalResourceRightsNotMoreThan',0
       ; DATA XREF: sub_457A00+9
       ; sub_489B70+1B
 aVerifypropos_4 db 'VerifyProposalResourceRightsNotLessThan',0
       ; DATA XREF: sub_457B80+9
       ; sub_489D00+1B
 aVerifypropos_5 db 'VerifyProposalTributeResource',0
       ; DATA XREF: sub_457D00+9
       ; sub_489E90+1C
align 10h
 aVerifypropos_6 db 'VerifyProposalTributeTerritory',0
       ; DATA XREF: sub_457ED0+9
       ; sub_48A020+1E
align 10h
 aFinishverifyal db 'FinishVerifyAllianceProposal',0
       ; DATA XREF: sub_458050+9
       ; sub_48A230+1C
align 10h
 aForcealliance  db 'ForceAlliance',0    ; DATA XREF: sub_458250+9
       ; sub_48A3D0+18
align 10h
 aTributeresourc db 'TributeResource',0  ; DATA XREF: sub_458510+9
       ; sub_48A4A0+19
 aTributeterrito db 'TributeTerritory',0 ; DATA XREF: sub_458710+9
       ; sub_48A5D0+1A
align 4
 aTributeunits   db 'TributeUnits',0     ; DATA XREF: sub_458880+9
       ; sub_48A770+1C
align 4
 aSetaidiplomacy db 'SetAIDiplomacyEnabled',0 ; DATA XREF: sub_4589F0+9
       ; sub_48A970+15
align 4
 aSetaiwarplanse db 'SetAIWarplansEnabled',0 ; DATA XREF: sub_458B50+9
       ; sub_48AA40+15
align 4
 aSetaitauntsena db 'SetAITauntsEnabled',0 ; DATA XREF: sub_458CB0+9
       ; sub_48AB10
align 4
 aForcesurrender db 'ForceSurrenderOffer',0 ; DATA XREF: sub_458DC0+9
       ; sub_48AB40+15
 aIsanywarplanse db 'IsAnyWarplanSentFromPlayerToPlayer',0
       ; DATA XREF: sub_458F20+9
       ; sub_48AC10+17
align 10h
 aAcceptpendingp db 'AcceptPendingPlanFromPlayer',0 ; DATA XREF: sub_4590F0+9
 aGetcurrentmont db 'GetCurrentMonth',0  ; DATA XREF: sub_4592C0+9
       ; sub_48AE30+1
 aGetcurrentseas db 'GetCurrentSeason',0 ; DATA XREF: sub_459480+9
       ; sub_48AE60+15
align 10h
 aSetcurrentmont db 'SetCurrentMonth',0  ; DATA XREF: sub_459640+9
       ; sub_48AEE0+15
 aSetcurrenttime db 'SetCurrentTimeOfDay',0 ; DATA XREF: sub_459750+9
       ; sub_48AF90+15
 aSetsecondspery db 'SetSecondsPerYear',0 ; DATA XREF: sub_459860+9
       ; sub_48B010+15
align 4
 ; char aPausecalendar[]
 aPausecalendar  db 'PauseCalendar',0    ; DATA XREF: sub_459970+9
       ; sub_48B0B0 ...
align 4
 aPausecalendara db 'PauseCalendarAtMonth',0 ; DATA XREF: sub_459A80+9
       ; sub_48B0F0
align 10h
 aPauseweathersy db 'PauseWeatherSystem',0 ; DATA XREF: sub_459B90+9
       ; sub_48B120+15
align 4
 aChangetoweathe db 'ChangeToWeather',0  ; DATA XREF: sub_459CA0+9
       ; sub_48B180+15
 aStartlightning db 'StartLightningBolt',0 ; DATA XREF: sub_459E00+9
       ; sub_48B1F0+15
align 4
 aStartlightni_0 db 'StartLightningBoltAtLocation',0
       ; DATA XREF: sub_459EA0+9
       ; sub_48B250+18
align 4
 aStartlightni_1 db 'StartLightningBoltHitUnit',0 ; DATA XREF: sub_45A010+9
       ; sub_48B2D0+17
align 4
 aChangetoskybox db 'ChangeToSkybox',0   ; DATA XREF: sub_45A180+9
       ; sub_48B380+15
align 4
 aRandomintbetwe db 'RandomIntBetween',0 ; DATA XREF: sub_45A2F0+9
       ; sub_48B3F0+17
align 4
 aRandomfloatbet db 'RandomFloatBetween',0 ; DATA XREF: sub_45A4C0+9
       ; sub_48B4D0+16
align 4
 aIsmissiontimer db 'IsMissionTimerExpired',0 ; DATA XREF: sub_45A6A0+9
       ; sub_48B5B0+1B
align 4
 aGetmissiontime db 'GetMissionTimer',0  ; DATA XREF: sub_45A820+9
       ; sub_48B680+1A
 aGetdistancefro db 'GetDistanceFromUnitToPoint',0 ; DATA XREF: sub_45A9A0+9
       ; sub_48B740+1A
align 10h
 aGetdistancef_0 db 'GetDistanceFromUnitToUnit',0 ; DATA XREF: sub_45ABD0+9
       ; sub_48B840+18
align 4
 aGetmindistance db 'GetMinDistanceFromUnitToGroup',0
       ; DATA XREF: sub_45ADB0+9
       ; sub_48B950+1C
align 4
 aGetmaxdistance db 'GetMaxDistanceFromUnitToGroup',0
       ; DATA XREF: sub_45AF90+9
       ; sub_48BAE0+1C
align 4
 aDoeswallcoverg db 'DoesWallCoverGap',0 ; DATA XREF: sub_45B170+9
align 10h
 aDoesroadcoverg db 'DoesRoadCoverGap',0 ; DATA XREF: sub_45B3A0+9
align 4
 aDoesunitexist  db 'DoesUnitExist',0    ; DATA XREF: sub_45B5D0+9
       ; sub_48C430+16
align 4
 aNamerandomunit db 'NameRandomUnitInGroup',0 ; DATA XREF: sub_45B750+9
       ; sub_48C4F0+19
align 4
 aGetunitgoaltyp db 'GetUnitGoalType',0  ; DATA XREF: sub_45B930+9
       ; sub_48C600+18
 aGetunithealth  db 'GetUnitHealth',0    ; DATA XREF: sub_45BAB0+9
       ; sub_48C6C0+18
align 4
 aGetplayerresou db 'GetPlayerResource',0 ; DATA XREF: sub_45BC30+9
       ; sub_48C780+17
align 10h
 aGetplayercrown db 'GetPlayerCrownScore',0 ; DATA XREF: sub_45BE00+9
       ; sub_48C860+15
 aGetplayercro_0 db 'GetPlayerCrownThreshold',0 ; DATA XREF: sub_45BFD0+9
       ; sub_48C930+15
 aAdjustplayercr db 'AdjustPlayerCrownScore',0 ; DATA XREF: sub_45C1A0+9
       ; sub_48CA00+15
align 4
 aAwardcrown     db 'AwardCrown',0       ; DATA XREF: sub_45C360+9
       ; sub_48CA70+15
align 10h
 aAddcrownpowerf db 'AddCrownPowerForAllPlayers',0 ; DATA XREF: sub_45C4C0+9
       ; sub_48CAE0+1A
align 4
 aRemovecrownpow db 'RemoveCrownPowerForAllPlayers',0
       ; DATA XREF: sub_45C630+9
       ; sub_48CC10+1A
align 4
 aAddcrownpowe_0 db 'AddCrownPowerForOnePlayer',0 ; DATA XREF: sub_45C7A0+9
align 4
 aRemovecrownp_0 db 'RemoveCrownPowerForOnePlayer',0
       ; DATA XREF: sub_45C960+9
align 4
 aLimitplayertoo db 'LimitPlayerToOneCrownPower',0 ; DATA XREF: sub_45CB20+9
       ; sub_48CF60+1A
align 4
 aPlayerwhohascr db 'PlayerWhoHasCrown',0 ; DATA XREF: sub_45CCE0+9
       ; sub_48D070+16 ...
align 4
 aHasplayerearne db 'HasPlayerEarnedCrown',0 ; DATA XREF: sub_45CE60+9
align 10h
 aSetallowleader db 'SetAllowLeaderForCrown',0 ; DATA XREF: sub_45D030+9
       ; sub_48D1B0+15
align 4
 aGetamountofres db 'GetAmountOfResourcesCollected',0
       ; DATA XREF: sub_45D1F0+9
       ; sub_48D250+16
align 4
 aGetamountofgol db 'GetAmountOfGoldFromTrade',0 ; DATA XREF: sub_45D3C0+9
       ; sub_48D400+16
align 4
 aGetnumcitizens db 'GetNumCitizensGatheringResource',0
       ; DATA XREF: sub_45D540+9
       ; sub_48D320+16
 aGetnumdeadunit db 'GetNumDeadUnits',0  ; DATA XREF: sub_45D710+9
       ; sub_48D4D0+16
 aGetnumdeadun_0 db 'GetNumDeadUnitsOfType',0 ; DATA XREF: sub_45D890+9
       ; sub_48D590+19
align 4
 aGetnumdeadun_1 db 'GetNumDeadUnitsByAttribute',0 ; DATA XREF: sub_45DA60+9
       ; sub_48D700+17
align 4
 aGetnumconverte db 'GetNumConvertedUnitsOfType',0 ; DATA XREF: sub_45DC30+9
       ; sub_48D7F0+19
align 4
 aGetnumconver_0 db 'GetNumConvertedUnitsByAttribute',0
       ; DATA XREF: sub_45DE00+9
       ; sub_48D960+17
 aGetnumconver_1 db 'GetNumConvertedAwayUnitsOfType',0
       ; DATA XREF: sub_45DFD0+9
       ; sub_48DA50+19
align 4
 aGetnumconver_2 db 'GetNumConvertedAwayUnitsByAttribute',0
       ; DATA XREF: sub_45E1A0+9
       ; sub_48DBC0+17
 aGetnumconver_3 db 'GetNumConvertedUnitsFromPlayerOfType',0
       ; DATA XREF: sub_45E370+9
       ; sub_48DCB0+19
align 10h
 aGetnumconver_4 db 'GetNumConvertedUnitsFromPlayerByAttribute',0
       ; DATA XREF: sub_45E590+9
       ; sub_48DE50+17
align 4
 aGetnumkilledun db 'GetNumKilledUnitsOfType',0 ; DATA XREF: sub_45E7B0+9
       ; sub_48DF50+19
 aGetnumkilled_0 db 'GetNumKilledUnitsByAttribute',0
       ; DATA XREF: sub_45E980+9
       ; sub_48E0C0+17
align 4
 aGetnumkilled_1 db 'GetNumKilledUnitsFromPlayerOfType',0
       ; DATA XREF: sub_45EB50+9
       ; sub_48E1B0+19
align 4
 aGetnumkilled_2 db 'GetNumKilledUnitsFromPlayerByAttribute',0
       ; DATA XREF: sub_45ED70+9
       ; sub_48E320+17
align 10h
 aGetnumproduced db 'GetNumProducedUnitsOfType',0 ; DATA XREF: sub_45EF90+9
       ; sub_48E420+19
align 4
 aGetnumproduc_0 db 'GetNumProducedUnitsByAttribute',0
       ; DATA XREF: sub_45F160+9
       ; sub_48E590+17
align 4
 aGetamountoftri db 'GetAmountOfTribute',0 ; DATA XREF: sub_45F330+9
       ; sub_48E680+16
align 10h
 aGetowningpla_0 db 'GetOwningPlayerID',0 ; DATA XREF: sub_45F550+9
       ; sub_48E750+17
align 4
 aIsgroupownedby db 'IsGroupOwnedBy',0   ; DATA XREF: sub_45F6D0+9
       ; sub_48E830+1C
align 4
 aGetgroupowneri db 'GetGroupOwnerID',0  ; DATA XREF: sub_45F8A0+9
       ; sub_48E960+1C
 aGetelapsedgame db 'GetElapsedGameTime',0 ; DATA XREF: sub_45FA20+9
       ; sub_48EA90+1
align 4
 aPlayeringame   db 'PlayerInGame',0     ; DATA XREF: sub_45FBE0+9
       ; sub_48EAC0+18
align 4
 aPlayerhasresea db 'PlayerHasResearchedTech',0 ; DATA XREF: sub_45FD60+9
       ; sub_48EBB0+17
 aGetplayerepoch db 'GetPlayerEpoch',0   ; DATA XREF: sub_45FF30+9
       ; sub_48ECA0+16
align 10h
 aDoesplayerhave db 'DoesPlayerHaveEnoughTechsToAdvance',0
       ; DATA XREF: sub_4600B0+9
       ; sub_48ED60+16
align 4
 aNumunitsingrou db 'NumUnitsInGroup',0  ; DATA XREF: sub_460230+9
       ; sub_48EE40+19
 aNumunitsingr_0 db 'NumUnitsInGroupNotDead',0 ; DATA XREF: sub_4603B0+9
       ; sub_48EF50+1C
align 4
 aGetnumplayers  db 'GetNumPlayers',0    ; DATA XREF: sub_460530+9
       ; sub_48F070+1
align 4
 aIsplayerattack db 'IsPlayerAttackingInArea',0 ; DATA XREF: sub_4606F0+9
 aGetlandtradero db 'GetLandTradeRoutesBetweenPlayers',0
       ; DATA XREF: sub_460910+9
       ; sub_48F1F0+16
align 4
 aGetseatraderou db 'GetSeaTradeRoutesBetweenPlayers',0
       ; DATA XREF: sub_460AE0+9
       ; sub_48F2D0+16
 aGetalltraderou db 'GetAllTradeRoutesBetweenPlayers',0
       ; DATA XREF: sub_460CB0+9
       ; sub_48F3B0+16
 aGetalltrader_0 db 'GetAllTradeRoutesForPlayer',0 ; DATA XREF: sub_460E80+9
       ; sub_48F490+17
align 4
 aHaveplayerstra db 'HavePlayersTradedRecently',0 ; DATA XREF: sub_461000+9
       ; sub_48F560+16 ...
align 10h
 aIsweakestplaye db 'IsWeakestPlayer',0  ; DATA XREF: sub_461220+9
       ; sub_48F670+19
 aIsstrongestpla db 'IsStrongestPlayer',0 ; DATA XREF: sub_4613F0+9
       ; sub_48F850+19
align 4
 aHasleastresour db 'HasLeastResources',0 ; DATA XREF: sub_4615C0+9
       ; sub_48FA30+18
align 4
 aEnemiesareplan db 'EnemiesArePlaneHappy',0 ; DATA XREF: sub_461790+9
       ; sub_48FB60+16
align 10h
 aEnemieshavefor db 'EnemiesHaveForsakenPlanes',0 ; DATA XREF: sub_461910+9
       ; sub_48FC40+16
align 4
 aGetplayerpopul db 'GetPlayerPopulation',0 ; DATA XREF: sub_461A90+9
       ; sub_48FD20+16
 aOnislandsmap   db 'OnIslandsMap',0     ; DATA XREF: sub_461C10+9
       ; sub_48FDE0+16
align 10h
 aIsdeathmatchga db 'IsDeathmatchGame',0 ; DATA XREF: sub_461E10+9
       ; sub_48FE90+1
align 4
 aHavelowresourc db 'HaveLowResources',0 ; DATA XREF: sub_462010+9
       ; sub_48FEC0+18
align 4
 aGetpercentofma db 'GetPercentOfMapExploredByPlayer',0
       ; DATA XREF: sub_462190+9
       ; sub_48FFC0+15
 aIsplayerhumanc db 'IsPlayerHumanControlled',0 ; DATA XREF: sub_462310+9
       ; sub_490080+16
 aSetrollcredits db 'SetRollCreditsAfterScenario',0 ; DATA XREF: sub_462490+9
 aWashotkeypress db 'WasHotKeyPressedRecently',0 ; DATA XREF: sub_4625A0+9
align 4
 off_BFC698      dd offset off_B658C4    ; DATA XREF: .D0
align 10h
 a_?av?Lsizeda_2 db '.?AV?$LSizedArray@PAVScriptFunctionRegistrator@@@@',0
align 4
 off_BFC6D4      dd offset off_B658C4    ; DATA XREF: .E8
db    0
db    0     
The one useful function I found is: PlayBink(VideoFile.bik). It allows you to play a .bik video from movies / movies_ee2x folder.

Re: Empire Earth 2 Map making - MP - .ies Scripting

Posted: 28 Sep 2017, 22:52
by Loewenherz
... putting random function names, until it worked

You work made it me easy, but it was very hard for you. :shock:

Re: Empire Earth 2 Map making - MP - .ies Scripting

Posted: 28 Sep 2017, 22:59
by Dr.MonaLisa
Loewenherz wrote: 28 Sep 2017, 22:52 ... putting random function names, until it worked
Yeah, but I expected those functions to have "Timer", "Start", "Show", so it took a while to find, but wasn't as hard like putting XfewfwefFFNEFKEF function names :)

Re: Empire Earth 2 Map making - MP - .ies Scripting

Posted: 29 Sep 2017, 16:26
by Loewenherz
How can i give a Unit more Attack, Hit points or speed like in the Pirates or Planes Scanrios?

Re: Empire Earth 2 Map making - MP - .ies Scripting

Posted: 29 Sep 2017, 16:33
by Dr.MonaLisa
Crown Power I think. Probably "AddCrownPowerForOnePlayer" spammed multiple times until you get an expected result. However, you would need to find a correct crown power for your requirements.

Re: Empire Earth 2 Map making - MP - .ies Scripting

Posted: 29 Sep 2017, 18:14
by Loewenherz
or make a own Area effect under dbareaeffects_scenario.dff :).

Re: Empire Earth 2 Map making - MP - .ies Scripting

Posted: 29 Sep 2017, 20:38
by Dr.MonaLisa
Modifying such game files like aera effect will make your game incompatible with other players on Multiplayer. That's why I never recommend it.

Re: Empire Earth 2 Map making - MP - .ies Scripting

Posted: 29 Sep 2017, 22:30
by Loewenherz
Hey Mona,

the file is only intended for Campaign and Scenario effects like Russian Winter in Russia Campaign Mission 4 (EE2x) or the healing Malbork Castle in German Mission 3. Not for Multiplayer Maps. But i agree with you.