Jump to content

Modding EXALT


wghost81

Recommended Posts

  On 1/17/2014 at 5:03 PM, wghost81 said:

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

  • Replies 114
  • Created
  • Last Reply

Top Posters In This Topic

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 by wghost81
Link to comment
Share on other sites

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

 

  Reveal hidden contents

 

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

  On 1/17/2014 at 7:20 PM, wghost81 said:

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 by Hobbes77
Link to comment
Share on other sites

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

  On 1/17/2014 at 9:27 PM, Amineri said:

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 by Hobbes77
Link to comment
Share on other sites

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

Wave system from PierA:

 

  Reveal hidden contents

 

You can extract this from map files by decompressing them and running

FindObjectEntry.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 by wghost81
Link to comment
Share on other sites

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:

 

  Reveal hidden contents

 

 

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 by wghost81
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...