Hobbes77 Posted January 17, 2014 Share Posted January 17, 2014 Number of EXALT depends on current month: switch(GetMonth()) { // End:0x18 case 0: // End:0x37 case 1: iNumPods = 2; iNumAliens = 6; // End:0x9F break; // End:0x3C case 2: // End:0x5C case 3: iNumPods = 3; iNumAliens = 9; // End:0x9F break; // End:0x61 case 4: // End:0x81 case 5: iNumPods = 4; iNumAliens = 12; // End:0x9F break; // End:0xFFFF default: iNumPods = 4; iNumAliens = 12; // End:0x9F break; } // End:0xDF if(Game().GetDifficulty() == 3) { iNumPods += 1; iNumAliens += 3; } Months 0-5 are set specifically and default used for all others (6+). Note that GetMonth() takes Marathon setting into account and halves the return value, resulting in slower progression. Yeah, I noticed that but since EXALT appears in May (case 2) that started me thinking if this code was used at all. And during an Impossible game, I've never seen less than 12 units which means that some other code is building those pods, or changing the iNumPods/TotalAliens values. Link to comment Share on other sites More sharing options...
wghost81 Posted January 17, 2014 Author Share Posted January 17, 2014 (edited) This code is used. But EXALT missions use the same abduction maps and there are only 4 alien spawn points on most of them. I think, this might be the case: for months 2-3 you get +1 pod for Impossible, resulting in total 4 pods, and for 4+ you still get 4, because most maps have 4 spawn points only. Edited January 17, 2014 by wghost81 Link to comment Share on other sites More sharing options...
wghost81 Posted January 17, 2014 Author Share Posted January 17, 2014 Just played EXALT mission in June and had 12 units total, including dynamic units. That's interesting. There is no explicit dynamic units definition for EXALT missions as opposed to other Council Missions. Well, seems my memory plays tricks on me, as I can't remember I ever had only 2 stationary pods before. Will have to check this carefully. I changed EXALT weapons to standard XCOM weapons via DefaultLoadouts.ini LoadoutTemplates=(eLoadoutType=eLoadout_ExaltOperative,Inventory=(iArmor=eItem_None,iPistol=eItem_None,arrLargeItems[0]=eItem_LaserAssaultRifle,iNumLargeItems=1,arrSmallItems[0]=eItem_FragGrenade,iNumSmallItems=1)) LoadoutTemplates=(eLoadoutType=eLoadout_ExaltSniper,Inventory=(iArmor=eItem_None,iPistol=eItem_None,arrLargeItems[0]=eItem_LaserSniperRifle,iNumLargeItems=1,iNumSmallItems=0)) LoadoutTemplates=(eLoadoutType=eLoadout_ExaltHeavy,Inventory=(iArmor=eItem_None,iPistol=eItem_None,arrLargeItems[0]=eItem_HeavyLaser,arrLargeItems[1]=eItem_RocketLauncher,iNumLargeItems=2,iNumSmallItems=0)) LoadoutTemplates=(eLoadoutType=eLoadout_ExaltMedic,Inventory=(iArmor=eItem_None,iPistol=eItem_None,arrLargeItems[0]=eItem_LaserAssaultRifle,iNumLargeItems=1,arrSmallItems[0]=eItem_Medikit,arrSmallItems[1]=eItem_SmokeGrenade,iNumSmallItems=2)) LoadoutTemplates=(eLoadoutType=eLoadout_ExaltEliteOperative,Inventory=(iArmor=eItem_None,iPistol=eItem_None,arrLargeItems[0]=eItem_PlasmaAssaultRifle,iNumLargeItems=1,arrSmallItems[0]=eItem_AlienGrenade,iNumSmallItems=1)) LoadoutTemplates=(eLoadoutType=eLoadout_ExaltEliteSniper,Inventory=(iArmor=eItem_None,iPistol=eItem_None,arrLargeItems[0]=eItem_PlasmaSniperRifle,iNumLargeItems=1,iNumSmallItems=0)) LoadoutTemplates=(eLoadoutType=eLoadout_ExaltEliteHeavy,Inventory=(iArmor=eItem_None,iPistol=eItem_None,arrLargeItems[0]=eItem_HeavyPlasma,arrLargeItems[1]=eItem_RocketLauncher,iNumLargeItems=2,arrSmallItems[0]=eItem_AlienGrenade,iNumSmallItems=1 )) LoadoutTemplates=(eLoadoutType=eLoadout_ExaltEliteMedic,Inventory=(iArmor=eItem_None,iPistol=eItem_None,arrLargeItems[0]=eItem_PlasmaAssaultRifle,iNumLargeItems=1,arrSmallItems[0]=eItem_Medikit,arrSmallItems[1]=eItem_SmokeGrenade,iNumSmallItems=2)) Everything works fine and weapons don't get collected (as expected), so still compatible with other mods (like Meld Reworked). I could even add some fragments via XGTacticalGameCore.GenerateWeaponFragments, but I'm still thinking if I should. Link to comment Share on other sites More sharing options...
Hobbes77 Posted January 17, 2014 Share Posted January 17, 2014 (edited) This code is used. But EXALT missions use the same abduction maps and there are only 4 alien spawn points on most of them. I think, this might be the case: for months 2-3 you get +1 pod for Impossible, resulting in total 4 pods, and for 4+ you still get 4, because most maps have 4 spawn points only. I take it that you're using the info on http://wiki.tesnexus.com/index.php/Game_maps_by_number_of_spawn_points_-_XCOM:EU_2012 to say that most Abduction maps only have 4 alien spawn points. However, I don't think that info is totally correct since it seems based on empirical observation by the poster rather cracking the map files and from my experience I'd say that some maps listed have more than the 4 points claimed. One example is the old Demolition map, which is listed as only having 4 points, which would mean that there would always be a pod of aliens behind the container on the right of the starting area, which in my experience isn't true since I played several abductions where there was no starting pod on that location. Another examples are PierA, SmallCemetary or StreetOverpass maps, where I can remember at least 5 spawn points for abductions but the page claims that there are only 4. And from a map design perspective, having only 4 spawn points makes no sense if you're trying to give maps some variety: the spawn locations would be quickly learned. Edited January 17, 2014 by Hobbes77 Link to comment Share on other sites More sharing options...
Amineri Posted January 17, 2014 Share Posted January 17, 2014 That data was collected for EU, and the maps were all re-worked for the expansion (with at least the addition of the meld containers). So it's quite possible that many of the maps that had only 4 alien spawn locations had additional spawn points added, which would help a bit with the variety. Link to comment Share on other sites More sharing options...
Hobbes77 Posted January 17, 2014 Share Posted January 17, 2014 (edited) That data was collected for EU, and the maps were all re-worked for the expansion (with at least the addition of the meld containers). So it's quite possible that many of the maps that had only 4 alien spawn locations had additional spawn points added, which would help a bit with the variety. EDIT: well, just made a few tests on EU and it does seem that PierA and Demolition have only 4 spawn points during Abductions, so I stand corrected. Edited January 17, 2014 by Hobbes77 Link to comment Share on other sites More sharing options...
wghost81 Posted January 18, 2014 Author Share Posted January 18, 2014 I decompiled some of the maps myself while working on Larger Pods - there are 4 spawn points on most of the maps. Yes, it makes little sense, but... well it's how it is. :smile: DetermineCovertOpsSquad is definitely used, other way larger pods changes wouldn't work. But something interferes with it later. I'm trying to find it, but with no luck so far. Link to comment Share on other sites More sharing options...
wghost81 Posted January 18, 2014 Author Share Posted January 18, 2014 This issue will drive me crazy. :smile: Just decompiled a wave system for URB_PierA_Terror_CovExt. Found 5 waves, which use 48 out of 49 available spawn points. Now I don't know what to think. :smile: Link to comment Share on other sites More sharing options...
wghost81 Posted January 18, 2014 Author Share Posted January 18, 2014 (edited) Wave system from PierA: FindObjectEntry Name to find: TheWorld.PersistentLevel.XComWaveSystem_0 Found Export Object: 0x000001E5 (485): XComWaveSystem'TheWorld.PersistentLevel.XComWaveSystem_0' TypeRef: 0xFFFFFFAF -> XComWaveSystem ParentClassRef: 0x00000000 -> OwnerRef: 0x0000000C -> PersistentLevel NameIdx: 0x000001EE (Index) 0x00000001 (Numeric) -> XComWaveSystem_0 ArchetypeRef: 0x00000000 -> ObjectFlagsH: 0x00000000 ObjectFlagsL: 0x02070001 0x00000001: Transactional 0x00010000: LoadForClient 0x00020000: LoadForServer 0x00040000: LoadForEdit 0x02000000: HasStack SerialSize: 0x00000AAC (2732) SerialOffset: 0x0005A51A ExportFlags: 0x00000000 NetObjectCount: 0 GUID: 00000000000000000000000000000000 Unknown1: 0x00000000 Attempting deserialization: UObject: PrevObjRef = 0xFFFFFFAF -> XComWaveSystem UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000000D8 (Index) 0x00000000 (Numeric) -> m_arrAlienSets TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x00000A0D ArrayIdx: 0x00000000 NumElements = 0x00000005 = 5 ArrayInnerType = None m_arrAlienSets[0]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x00000092 (Index) 0x00000000 (Numeric) -> EventName TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty PropertySize: 0x00000008 ArrayIdx: 0x00000000 Name: 0x0000019E (Index) 0x00000000 (Numeric) = StartWaveSpawner UDefaultProperty: NameIdx: 0x00000071 (Index) 0x00000000 (Numeric) -> DisableEvent TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty PropertySize: 0x00000008 ArrayIdx: 0x00000000 Name: 0x000001A4 (Index) 0x00000000 (Numeric) = StopWaveSpawner UDefaultProperty: NameIdx: 0x000001DA (Index) 0x00000000 (Numeric) -> Waves TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x000002B5 ArrayIdx: 0x00000000 NumElements = 0x00000001 = 1 ArrayInnerType = None Waves[0]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000001BD (Index) 0x00000000 (Numeric) -> TurnAppearance TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Integer: 0x00000000 = 0 UDefaultProperty: NameIdx: 0x000000AC (Index) 0x00000000 (Numeric) -> Groups TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x00000275 ArrayIdx: 0x00000000 NumElements = 0x00000002 = 2 ArrayInnerType = None Groups[0]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x0000015A (Index) 0x00000000 (Numeric) -> Scalable TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x000000FF (Index) 0x00000000 (Numeric) -> NumAliens TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Integer: 0x00000001 = 1 UDefaultProperty: NameIdx: 0x00000196 (Index) 0x00000000 (Numeric) -> SpawnPoints TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x0000001C ArrayIdx: 0x00000000 NumElements = 0x00000006 = 6 ArrayInnerType = None SpawnPoints[0]: Unsafe guess: It's an Integer: 0x000001D6 = 470 or a Reference: 0x000001D6 -> XComSpawnPoint_Alien_40 SpawnPoints[1]: Unsafe guess: It's an Integer: 0x000001D2 = 466 or a Reference: 0x000001D2 -> XComSpawnPoint_Alien_37 SpawnPoints[2]: Unsafe guess: It's an Integer: 0x000001D3 = 467 or a Reference: 0x000001D3 -> XComSpawnPoint_Alien_38 SpawnPoints[3]: Unsafe guess: It's an Integer: 0x000001D4 = 468 or a Reference: 0x000001D4 -> XComSpawnPoint_Alien_39 SpawnPoints[4]: Unsafe guess: It's an Integer: 0x000001D7 = 471 or a Reference: 0x000001D7 -> XComSpawnPoint_Alien_41 SpawnPoints[5]: Unsafe guess: It's an Integer: 0x000001D8 = 472 or a Reference: 0x000001D8 -> XComSpawnPoint_Alien_42 UDefaultProperty: NameIdx: 0x00000119 (Index) 0x00000000 (Numeric) -> OriginationPoints TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x0000001C ArrayIdx: 0x00000000 NumElements = 0x00000006 = 6 ArrayInnerType = None OriginationPoints[0]: Unsafe guess: It's an Integer: 0x000001CD = 461 or a Reference: 0x000001CD -> XComSpawnPoint_Alien_32 OriginationPoints[1]: Unsafe guess: It's an Integer: 0x000001CC = 460 or a Reference: 0x000001CC -> XComSpawnPoint_Alien_31 OriginationPoints[2]: Unsafe guess: It's an Integer: 0x000001CE = 462 or a Reference: 0x000001CE -> XComSpawnPoint_Alien_33 OriginationPoints[3]: Unsafe guess: It's an Integer: 0x000001D1 = 465 or a Reference: 0x000001D1 -> XComSpawnPoint_Alien_36 OriginationPoints[4]: Unsafe guess: It's an Integer: 0x000001D0 = 464 or a Reference: 0x000001D0 -> XComSpawnPoint_Alien_35 OriginationPoints[5]: Unsafe guess: It's an Integer: 0x000001CF = 463 or a Reference: 0x000001CF -> XComSpawnPoint_Alien_34 UDefaultProperty: NameIdx: 0x00000193 (Index) 0x00000000 (Numeric) -> SpawnMethod TypeIdx: 0x000001A8 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000062 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000194 (Index) 0x00000000 (Numeric) -> SpawnMethodData Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x00000198 (Index) 0x00000000 (Numeric) -> SpawnType TypeIdx: 0x0000004A (Index) 0x00000000 (Numeric) -> ByteProperty PropertySize: 0x00000008 ArrayIdx: 0x00000000 InnerNameIdx: 0x0000008E (Index) 0x00000000 (Numeric) -> ESpawnMethod Name: 0x0000008F (Index) 0x00000000 (Numeric) = eSpawnMethod_WalkIn UDefaultProperty: NameIdx: 0x0000013E (Index) 0x00000000 (Numeric) -> PlaySound TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x00000154 (Index) 0x00000000 (Numeric) -> RevealSpawn TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None UDefaultProperty: NameIdx: 0x000000DE (Index) 0x00000000 (Numeric) -> m_strOnGroupActivated TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty PropertySize: 0x00000008 ArrayIdx: 0x00000000 Name: 0x000001D8 (Index) 0x00000000 (Numeric) = Wave1Spawned UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None Groups[1]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x0000015A (Index) 0x00000000 (Numeric) -> Scalable TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x000000FF (Index) 0x00000000 (Numeric) -> NumAliens TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Integer: 0x00000001 = 1 UDefaultProperty: NameIdx: 0x00000196 (Index) 0x00000000 (Numeric) -> SpawnPoints TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x0000001C ArrayIdx: 0x00000000 NumElements = 0x00000006 = 6 ArrayInnerType = None SpawnPoints[0]: Unsafe guess: It's an Integer: 0x000001BE = 446 or a Reference: 0x000001BE -> XComSpawnPoint_Alien_19 SpawnPoints[1]: Unsafe guess: It's an Integer: 0x000001C1 = 449 or a Reference: 0x000001C1 -> XComSpawnPoint_Alien_21 SpawnPoints[2]: Unsafe guess: It's an Integer: 0x000001C3 = 451 or a Reference: 0x000001C3 -> XComSpawnPoint_Alien_23 SpawnPoints[3]: Unsafe guess: It's an Integer: 0x000001C5 = 453 or a Reference: 0x000001C5 -> XComSpawnPoint_Alien_25 SpawnPoints[4]: Unsafe guess: It's an Integer: 0x000001C7 = 455 or a Reference: 0x000001C7 -> XComSpawnPoint_Alien_27 SpawnPoints[5]: Unsafe guess: It's an Integer: 0x000001C9 = 457 or a Reference: 0x000001C9 -> XComSpawnPoint_Alien_29 UDefaultProperty: NameIdx: 0x00000119 (Index) 0x00000000 (Numeric) -> OriginationPoints TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x0000001C ArrayIdx: 0x00000000 NumElements = 0x00000006 = 6 ArrayInnerType = None OriginationPoints[0]: Unsafe guess: It's an Integer: 0x000001C0 = 448 or a Reference: 0x000001C0 -> XComSpawnPoint_Alien_20 OriginationPoints[1]: Unsafe guess: It's an Integer: 0x000001C2 = 450 or a Reference: 0x000001C2 -> XComSpawnPoint_Alien_22 OriginationPoints[2]: Unsafe guess: It's an Integer: 0x000001C4 = 452 or a Reference: 0x000001C4 -> XComSpawnPoint_Alien_24 OriginationPoints[3]: Unsafe guess: It's an Integer: 0x000001C6 = 454 or a Reference: 0x000001C6 -> XComSpawnPoint_Alien_26 OriginationPoints[4]: Unsafe guess: It's an Integer: 0x000001C8 = 456 or a Reference: 0x000001C8 -> XComSpawnPoint_Alien_28 OriginationPoints[5]: Unsafe guess: It's an Integer: 0x000001CB = 459 or a Reference: 0x000001CB -> XComSpawnPoint_Alien_30 UDefaultProperty: NameIdx: 0x00000193 (Index) 0x00000000 (Numeric) -> SpawnMethod TypeIdx: 0x000001A8 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000065 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000194 (Index) 0x00000000 (Numeric) -> SpawnMethodData Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x00000198 (Index) 0x00000000 (Numeric) -> SpawnType TypeIdx: 0x0000004A (Index) 0x00000000 (Numeric) -> ByteProperty PropertySize: 0x00000008 ArrayIdx: 0x00000000 InnerNameIdx: 0x0000008E (Index) 0x00000000 (Numeric) -> ESpawnMethod Name: 0x0000008F (Index) 0x00000000 (Numeric) = eSpawnMethod_WalkIn UDefaultProperty: NameIdx: 0x00000154 (Index) 0x00000000 (Numeric) -> RevealSpawn TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x00000079 (Index) 0x00000000 (Numeric) -> DropHeight TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Integer: 0x00000100 = 256 UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None m_arrAlienSets[1]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x00000092 (Index) 0x00000000 (Numeric) -> EventName TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty PropertySize: 0x00000008 ArrayIdx: 0x00000000 Name: 0x0000018F (Index) 0x00000000 (Numeric) = SpawnArray1Reinforcements UDefaultProperty: NameIdx: 0x000001DA (Index) 0x00000000 (Numeric) -> Waves TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x0000017D ArrayIdx: 0x00000000 NumElements = 0x00000001 = 1 ArrayInnerType = None Waves[0]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000001BD (Index) 0x00000000 (Numeric) -> TurnAppearance TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Integer: 0x00000000 = 0 UDefaultProperty: NameIdx: 0x000000AC (Index) 0x00000000 (Numeric) -> Groups TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x0000013D ArrayIdx: 0x00000000 NumElements = 0x00000001 = 1 ArrayInnerType = None Groups[0]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x0000015A (Index) 0x00000000 (Numeric) -> Scalable TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x000000FF (Index) 0x00000000 (Numeric) -> NumAliens TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Integer: 0x00000002 = 2 UDefaultProperty: NameIdx: 0x00000196 (Index) 0x00000000 (Numeric) -> SpawnPoints TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x0000001C ArrayIdx: 0x00000000 NumElements = 0x00000006 = 6 ArrayInnerType = None SpawnPoints[0]: Unsafe guess: It's an Integer: 0x000001B7 = 439 or a Reference: 0x000001B7 -> XComSpawnPoint_Alien_12 SpawnPoints[1]: Unsafe guess: It's an Integer: 0x000001B6 = 438 or a Reference: 0x000001B6 -> XComSpawnPoint_Alien_11 SpawnPoints[2]: Unsafe guess: It's an Integer: 0x000001B5 = 437 or a Reference: 0x000001B5 -> XComSpawnPoint_Alien_10 SpawnPoints[3]: Unsafe guess: It's an Integer: 0x000001E3 = 483 or a Reference: 0x000001E3 -> XComSpawnPoint_Alien_9 SpawnPoints[4]: Unsafe guess: It's an Integer: 0x000001E2 = 482 or a Reference: 0x000001E2 -> XComSpawnPoint_Alien_8 SpawnPoints[5]: Unsafe guess: It's an Integer: 0x000001E1 = 481 or a Reference: 0x000001E1 -> XComSpawnPoint_Alien_7 UDefaultProperty: NameIdx: 0x00000193 (Index) 0x00000000 (Numeric) -> SpawnMethod TypeIdx: 0x000001A8 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000088 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000194 (Index) 0x00000000 (Numeric) -> SpawnMethodData Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x00000000 (Index) 0x00000000 (Numeric) -> AdditionalSoundCue TypeIdx: 0x0000010D (Index) 0x00000000 (Numeric) -> ObjectProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Object: 0x00000190 = HelicopterFlyByCue UDefaultProperty: NameIdx: 0x000001CB (Index) 0x00000000 (Numeric) -> UseOverwatch TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x000001BB (Index) 0x00000000 (Numeric) -> TriggerOverwatch TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x0000013E (Index) 0x00000000 (Numeric) -> PlaySound TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x00000154 (Index) 0x00000000 (Numeric) -> RevealSpawn TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None UDefaultProperty: NameIdx: 0x000000DE (Index) 0x00000000 (Numeric) -> m_strOnGroupActivated TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty PropertySize: 0x00000008 ArrayIdx: 0x00000000 Name: 0x0000010C (Index) 0x00000000 (Numeric) = ObjectiveWaveSpawned UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None m_arrAlienSets[2]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x00000092 (Index) 0x00000000 (Numeric) -> EventName TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty PropertySize: 0x00000008 ArrayIdx: 0x00000000 Name: 0x00000190 (Index) 0x00000000 (Numeric) = SpawnArray2Reinforcements UDefaultProperty: NameIdx: 0x000001DA (Index) 0x00000000 (Numeric) -> Waves TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x0000017D ArrayIdx: 0x00000000 NumElements = 0x00000001 = 1 ArrayInnerType = None Waves[0]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000001BD (Index) 0x00000000 (Numeric) -> TurnAppearance TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Integer: 0x00000000 = 0 UDefaultProperty: NameIdx: 0x000000AC (Index) 0x00000000 (Numeric) -> Groups TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x0000013D ArrayIdx: 0x00000000 NumElements = 0x00000001 = 1 ArrayInnerType = None Groups[0]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x0000015A (Index) 0x00000000 (Numeric) -> Scalable TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x000000FF (Index) 0x00000000 (Numeric) -> NumAliens TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Integer: 0x00000002 = 2 UDefaultProperty: NameIdx: 0x00000196 (Index) 0x00000000 (Numeric) -> SpawnPoints TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x0000001C ArrayIdx: 0x00000000 NumElements = 0x00000006 = 6 ArrayInnerType = None SpawnPoints[0]: Unsafe guess: It's an Integer: 0x000001B4 = 436 or a Reference: 0x000001B4 -> XComSpawnPoint_Alien_0 SpawnPoints[1]: Unsafe guess: It's an Integer: 0x000001BF = 447 or a Reference: 0x000001BF -> XComSpawnPoint_Alien_2 SpawnPoints[2]: Unsafe guess: It's an Integer: 0x000001CA = 458 or a Reference: 0x000001CA -> XComSpawnPoint_Alien_3 SpawnPoints[3]: Unsafe guess: It's an Integer: 0x000001D5 = 469 or a Reference: 0x000001D5 -> XComSpawnPoint_Alien_4 SpawnPoints[4]: Unsafe guess: It's an Integer: 0x000001DF = 479 or a Reference: 0x000001DF -> XComSpawnPoint_Alien_5 SpawnPoints[5]: Unsafe guess: It's an Integer: 0x000001E0 = 480 or a Reference: 0x000001E0 -> XComSpawnPoint_Alien_6 UDefaultProperty: NameIdx: 0x00000193 (Index) 0x00000000 (Numeric) -> SpawnMethod TypeIdx: 0x000001A8 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000088 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000194 (Index) 0x00000000 (Numeric) -> SpawnMethodData Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000001CB (Index) 0x00000000 (Numeric) -> UseOverwatch TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x000001BB (Index) 0x00000000 (Numeric) -> TriggerOverwatch TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x0000013E (Index) 0x00000000 (Numeric) -> PlaySound TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x00000154 (Index) 0x00000000 (Numeric) -> RevealSpawn TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x00000079 (Index) 0x00000000 (Numeric) -> DropHeight TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Integer: 0x000000C0 = 192 UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None UDefaultProperty: NameIdx: 0x000000DE (Index) 0x00000000 (Numeric) -> m_strOnGroupActivated TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty PropertySize: 0x00000008 ArrayIdx: 0x00000000 Name: 0x0000010C (Index) 0x00000000 (Numeric) = ObjectiveWaveSpawned UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None m_arrAlienSets[3]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x00000092 (Index) 0x00000000 (Numeric) -> EventName TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty PropertySize: 0x00000008 ArrayIdx: 0x00000000 Name: 0x00000191 (Index) 0x00000000 (Numeric) = SpawnArray3Reinforcements UDefaultProperty: NameIdx: 0x000001DA (Index) 0x00000000 (Numeric) -> Waves TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x0000017D ArrayIdx: 0x00000000 NumElements = 0x00000001 = 1 ArrayInnerType = None Waves[0]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000001BD (Index) 0x00000000 (Numeric) -> TurnAppearance TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Integer: 0x00000000 = 0 UDefaultProperty: NameIdx: 0x000000AC (Index) 0x00000000 (Numeric) -> Groups TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x0000013D ArrayIdx: 0x00000000 NumElements = 0x00000001 = 1 ArrayInnerType = None Groups[0]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x0000015A (Index) 0x00000000 (Numeric) -> Scalable TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x000000FF (Index) 0x00000000 (Numeric) -> NumAliens TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Integer: 0x00000002 = 2 UDefaultProperty: NameIdx: 0x00000196 (Index) 0x00000000 (Numeric) -> SpawnPoints TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x0000001C ArrayIdx: 0x00000000 NumElements = 0x00000006 = 6 ArrayInnerType = None SpawnPoints[0]: Unsafe guess: It's an Integer: 0x000001B8 = 440 or a Reference: 0x000001B8 -> XComSpawnPoint_Alien_13 SpawnPoints[1]: Unsafe guess: It's an Integer: 0x000001B9 = 441 or a Reference: 0x000001B9 -> XComSpawnPoint_Alien_14 SpawnPoints[2]: Unsafe guess: It's an Integer: 0x000001BA = 442 or a Reference: 0x000001BA -> XComSpawnPoint_Alien_15 SpawnPoints[3]: Unsafe guess: It's an Integer: 0x000001BB = 443 or a Reference: 0x000001BB -> XComSpawnPoint_Alien_16 SpawnPoints[4]: Unsafe guess: It's an Integer: 0x000001BC = 444 or a Reference: 0x000001BC -> XComSpawnPoint_Alien_17 SpawnPoints[5]: Unsafe guess: It's an Integer: 0x000001BD = 445 or a Reference: 0x000001BD -> XComSpawnPoint_Alien_18 UDefaultProperty: NameIdx: 0x00000193 (Index) 0x00000000 (Numeric) -> SpawnMethod TypeIdx: 0x000001A8 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000088 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000194 (Index) 0x00000000 (Numeric) -> SpawnMethodData Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000001CB (Index) 0x00000000 (Numeric) -> UseOverwatch TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x000001BB (Index) 0x00000000 (Numeric) -> TriggerOverwatch TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x0000013E (Index) 0x00000000 (Numeric) -> PlaySound TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x00000154 (Index) 0x00000000 (Numeric) -> RevealSpawn TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x00000079 (Index) 0x00000000 (Numeric) -> DropHeight TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Integer: 0x000000C0 = 192 UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None UDefaultProperty: NameIdx: 0x000000DE (Index) 0x00000000 (Numeric) -> m_strOnGroupActivated TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty PropertySize: 0x00000008 ArrayIdx: 0x00000000 Name: 0x0000010C (Index) 0x00000000 (Numeric) = ObjectiveWaveSpawned UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None m_arrAlienSets[4]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x00000092 (Index) 0x00000000 (Numeric) -> EventName TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty PropertySize: 0x00000008 ArrayIdx: 0x00000000 Name: 0x00000192 (Index) 0x00000000 (Numeric) = SpawnArray4Reinforcements UDefaultProperty: NameIdx: 0x000001DA (Index) 0x00000000 (Numeric) -> Waves TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x0000017D ArrayIdx: 0x00000000 NumElements = 0x00000001 = 1 ArrayInnerType = None Waves[0]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x000001BD (Index) 0x00000000 (Numeric) -> TurnAppearance TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Integer: 0x00000000 = 0 UDefaultProperty: NameIdx: 0x000000AC (Index) 0x00000000 (Numeric) -> Groups TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x0000013D ArrayIdx: 0x00000000 NumElements = 0x00000001 = 1 ArrayInnerType = None Groups[0]: Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x0000015A (Index) 0x00000000 (Numeric) -> Scalable TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x000000FF (Index) 0x00000000 (Numeric) -> NumAliens TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Integer: 0x00000002 = 2 UDefaultProperty: NameIdx: 0x00000196 (Index) 0x00000000 (Numeric) -> SpawnPoints TypeIdx: 0x0000000D (Index) 0x00000000 (Numeric) -> ArrayProperty PropertySize: 0x0000001C ArrayIdx: 0x00000000 NumElements = 0x00000006 = 6 ArrayInnerType = None SpawnPoints[0]: Unsafe guess: It's an Integer: 0x000001D9 = 473 or a Reference: 0x000001D9 -> XComSpawnPoint_Alien_43 SpawnPoints[1]: Unsafe guess: It's an Integer: 0x000001DA = 474 or a Reference: 0x000001DA -> XComSpawnPoint_Alien_44 SpawnPoints[2]: Unsafe guess: It's an Integer: 0x000001DB = 475 or a Reference: 0x000001DB -> XComSpawnPoint_Alien_45 SpawnPoints[3]: Unsafe guess: It's an Integer: 0x000001DC = 476 or a Reference: 0x000001DC -> XComSpawnPoint_Alien_46 SpawnPoints[4]: Unsafe guess: It's an Integer: 0x000001DD = 477 or a Reference: 0x000001DD -> XComSpawnPoint_Alien_47 SpawnPoints[5]: Unsafe guess: It's an Integer: 0x000001DE = 478 or a Reference: 0x000001DE -> XComSpawnPoint_Alien_48 UDefaultProperty: NameIdx: 0x00000193 (Index) 0x00000000 (Numeric) -> SpawnMethod TypeIdx: 0x000001A8 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x00000088 ArrayIdx: 0x00000000 InnerNameIdx: 0x00000194 (Index) 0x00000000 (Numeric) -> SpawnMethodData Unsafe guess (it's a Property List): UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x00000000 (Index) 0x00000000 (Numeric) -> AdditionalSoundCue TypeIdx: 0x0000010D (Index) 0x00000000 (Numeric) -> ObjectProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Object: 0x00000190 = HelicopterFlyByCue UDefaultProperty: NameIdx: 0x000001CB (Index) 0x00000000 (Numeric) -> UseOverwatch TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x000001BB (Index) 0x00000000 (Numeric) -> TriggerOverwatch TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x0000013E (Index) 0x00000000 (Numeric) -> PlaySound TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x00000154 (Index) 0x00000000 (Numeric) -> RevealSpawn TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x01 = true UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None UDefaultProperty: NameIdx: 0x000000DE (Index) 0x00000000 (Numeric) -> m_strOnGroupActivated TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty PropertySize: 0x00000008 ArrayIdx: 0x00000000 Name: 0x0000010C (Index) 0x00000000 (Numeric) = ObjectiveWaveSpawned UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None UDefaultProperty: NameIdx: 0x000000D1 (Index) 0x00000000 (Numeric) -> Location TypeIdx: 0x000001A8 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x0000000C ArrayIdx: 0x00000000 InnerNameIdx: 0x000001D0 (Index) 0x00000000 (Numeric) -> Vector Vector (X, Y, Z) = (0xC33C3ABA, 0x451F3FC9, 0x43044844) = (-188.229, 2547.99, 132.282) UDefaultProperty: NameIdx: 0x00000018 (Index) 0x00000000 (Numeric) -> bDirtyComponents TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x00 = false UDefaultProperty: NameIdx: 0x000001AA (Index) 0x00000000 (Numeric) -> Tag TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty PropertySize: 0x00000008 ArrayIdx: 0x00000000 Name: 0x000001EE (Index) 0x00000000 (Numeric) = XComWaveSystem UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None Stream relative position: 0x00000AAC (2732) UObjectUnknown: Object unknown, can't deserialize! You can extract this from map files by decompressing them and runningFindObjectEntry.exe URB_PierA_Terror_CovExt.upk TheWorld.PersistentLevel.XComWaveSystem_0 > TheWorld.PersistentLevel.XComWaveSystem_0.txt This will place info in TheWorld.PersistentLevel.XComWaveSystem_0.txt. Now I need to understand, either initial spawn is a part of wave system too, or it's handled somewhere else. Edited January 18, 2014 by wghost81 Link to comment Share on other sites More sharing options...
wghost81 Posted January 18, 2014 Author Share Posted January 18, 2014 (edited) OK, I got it. But you won't gonna like it: it's in the maps. Alien pods deployment is handled via XGDeployAI in XComGame. GetPossibleSpawns function requests WorldInfo on AllActors of class XComAlienPod. XComAlienPod_X objects are defined in TheWorld.PersistentLevel of each map. EXALT maps have only two XComAlienPod objects, hence only two pods will be spawned on map during deployment. TheWorld.PersistentLevel.XComAlienPod_X objects contain default properties for XComAlienPod class instance variable. For example, URB_PierA_Terror_CovExt has two such objects: TheWorld.PersistentLevel.XComAlienPod_1 and TheWorld.PersistentLevel.XComAlienPod_3. Their properties are almost identical, only Location property is different and sets pod spawn location: FindObjectEntry Name to find: TheWorld.PersistentLevel.XComAlienPod_1 Found Export Object: 0x000001AA (426): XComAlienPod'TheWorld.PersistentLevel.XComAlienPod_1' TypeRef: 0xFFFFFFB7 -> XComAlienPod ParentClassRef: 0x00000000 -> OwnerRef: 0x0000000C -> PersistentLevel NameIdx: 0x000001E3 (Index) 0x00000002 (Numeric) -> XComAlienPod_1 ArchetypeRef: 0x00000000 -> ObjectFlagsH: 0x00000000 ObjectFlagsL: 0x02070001 0x00000001: Transactional 0x00010000: LoadForClient 0x00020000: LoadForServer 0x00040000: LoadForEdit 0x02000000: HasStack SerialSize: 0x0000012F (303) SerialOffset: 0x00057958 ExportFlags: 0x00000000 NetObjectCount: 0 GUID: 00000000000000000000000000000000 Unknown1: 0x00000000 Attempting deserialization: UObject: PrevObjRef = 0xFFFFFFB7 -> XComAlienPod UDefaultPropertiesList: UDefaultProperty: NameIdx: 0x00000140 (Index) 0x00000000 (Numeric) -> PodIndex TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Integer: 0x00000000 = 0 UDefaultProperty: NameIdx: 0x000000C5 (Index) 0x00000000 (Numeric) -> LightEnvironment TypeIdx: 0x0000010D (Index) 0x00000000 (Numeric) -> ObjectProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Object: 0x00000004 = DynamicLightEnvironmentComponent_1387 UDefaultProperty: NameIdx: 0x00000101 (Index) 0x00000000 (Numeric) -> NumAliens_Min TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Integer: 0x00000001 = 1 UDefaultProperty: NameIdx: 0x00000100 (Index) 0x00000000 (Numeric) -> NumAliens_Max TypeIdx: 0x000000B9 (Index) 0x00000000 (Numeric) -> IntProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Integer: 0x00000003 = 3 UDefaultProperty: NameIdx: 0x00000141 (Index) 0x00000000 (Numeric) -> PodMesh TypeIdx: 0x0000010D (Index) 0x00000000 (Numeric) -> ObjectProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Object: 0x00000196 = StaticMeshComponent_272 UDefaultProperty: NameIdx: 0x0000004C (Index) 0x00000000 (Numeric) -> CenterpieceMesh TypeIdx: 0x0000010D (Index) 0x00000000 (Numeric) -> ObjectProperty PropertySize: 0x00000004 ArrayIdx: 0x00000000 Object: 0x00000197 = StaticMeshComponent_273 UDefaultProperty: NameIdx: 0x000000D1 (Index) 0x00000000 (Numeric) -> Location TypeIdx: 0x000001A8 (Index) 0x00000000 (Numeric) -> StructProperty PropertySize: 0x0000000C ArrayIdx: 0x00000000 InnerNameIdx: 0x000001D0 (Index) 0x00000000 (Numeric) -> Vector Vector (X, Y, Z) = (0x44341EF0, 0x43D73EFE, 0x3A8FFFFA) = (720.483, 430.492, 0.00109863) UDefaultProperty: NameIdx: 0x00000018 (Index) 0x00000000 (Numeric) -> bDirtyComponents TypeIdx: 0x0000002B (Index) 0x00000000 (Numeric) -> BoolProperty PropertySize: 0x00000000 ArrayIdx: 0x00000000 Boolean value: 0x00 = false UDefaultProperty: NameIdx: 0x000001AA (Index) 0x00000000 (Numeric) -> Tag TypeIdx: 0x000000F8 (Index) 0x00000000 (Numeric) -> NameProperty PropertySize: 0x00000008 ArrayIdx: 0x00000000 Name: 0x000001E3 (Index) 0x00000000 (Numeric) = XComAlienPod UDefaultProperty: NameIdx: 0x000000FD (Index) 0x00000000 (Numeric) -> None Stream relative position: 0x0000012F (303) UObjectUnknown: Object unknown, can't deserialize! XComSpawnPoint_Alien_X objects are used by TheWorld.PersistentLevel.XComWaveSystem_0 to define SpawnPoints and OriginationPoints for dynamic alien spawns. Another example is CSmallScout_Badlands, which has four XComAlienPod objects. One of those contains bCommanderPod property set to 1 and stands for commander pod spawn point. XGDeployAI contains GetPossibleCommanderSpawns, GetPossibleSecondarySpawns and GetPossibleSoldierSpawns functions to determine spawn points for corresponding pod types. During deployment only pods of types defined via XComAlienPod map objects are spawned. I'm yet to find out how dynamic aliens are deployed and how it all works with the Wave System. Edited January 18, 2014 by wghost81 Link to comment Share on other sites More sharing options...
Recommended Posts