Jump to content

Map rotation/inclusion query


prune1

Recommended Posts

Couple of queries/requests:

 

1) Is it possible to put back into rotation maps such as: Museum, Museum_Euro, Demolition, which have apparently been removed from EW's possible maps.

 

I think there might be some more, ufopaedia/Hobbes on the 2k forums knows better than I, but those 3 are the ones I remember.

 

2) Is it possible to have the slingshot/progeny maps come up in standard rotation, where appropriate, especially if you toggle them off?

 

No point wasting good maps is how I see it.

Link to comment
Share on other sites

So it looks like meld is handled by including a bunch of possible meld canister locations within each map.

 

The meld initiation function appears to be in XGBattle_SP :

protected function InitMeldContainers()
{
    local array<XComMeldContainerSpawnPoint> arrEasyMeldSpawnPoints, arrHardMeldSpawnPoints;
    local XComMeldContainerActor kMeldActor;
    local XComMeldContainerSpawnPoint kSpawnPoint;
    local XComMeldContainerActor kMeldActor_Arc;

    foreach AllActors(class'XComMeldContainerSpawnPoint', kSpawnPoint)
    {
        if(kSpawnPoint.m_iSpawnGroup == (GetSpawnGroup()))
        {
            if(kSpawnPoint.m_eDifficulty == 0)
            {
                arrEasyMeldSpawnPoints.AddItem(kSpawnPoint);
                continue;
            }
            if(kSpawnPoint.m_eDifficulty == 1)
            {
                arrHardMeldSpawnPoints.AddItem(kSpawnPoint);
            }
        }        
    }    
    kMeldActor_Arc = XComMeldContainerActor(DynamicLoadObject("MeldCanister_MOD.MeldCanister_ARC", class'XComMeldContainerActor', false));
    if(arrEasyMeldSpawnPoints.Length > 0)
    {
        kSpawnPoint = arrEasyMeldSpawnPoints[Rand(arrEasyMeldSpawnPoints.Length)];
        kMeldActor = Spawn(class'XComMeldContainerActor', self,, kSpawnPoint.Location,, kMeldActor_Arc);
        kMeldActor.InitFromSpawnPoint(kSpawnPoint);
    }
    if(arrHardMeldSpawnPoints.Length > 0)
    {
        kSpawnPoint = arrHardMeldSpawnPoints[Rand(arrHardMeldSpawnPoints.Length)];
        kMeldActor = Spawn(class'XComMeldContainerActor', self,, kSpawnPoint.Location,, kMeldActor_Arc);
        kMeldActor.InitFromSpawnPoint(kSpawnPoint);
    }
    //return;    
}

The mapfile object-type for the meld locations must be class'XComMeldContainerSpawnPoint'.

 

These have two difficulties, m_eDifficulty = 0 or 1.

 

It randomly selects 1 easy and 1 hard spawn points and then spawns the class'XComMeldContainerActor' (the class for the actual meld mesh object) for each point.

 

This looks like it should be pretty crash-proof, and shouldn't be failing even if there aren't any MeldContainerSpawnPoints.

 

With a map with no meld spawnpoints:

1) First foreach loop will be empty and so will skip

2) Meld art asset will be loaded into memory

3) Both arrays of easy/hard meld spawnpoints will be empty, so both conditionals will be skipped

 

This particular function should simply exit without having spawned any meldcontainers.

 

It could somehow be related to the timer functions, which I haven't been able to decipher yet.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...