Jump to content

R&D XCOM Map Alterations


Amineri

Recommended Posts

I thought it won't be the problem here, as EU maps and textures are still XCOM's maps and textures. Drakous79 was talking about entirely new objects, created with UDK, which have licensee number set to zero. So I'm not sure it's a licensee problem.

 

I can test it under linux, but not right now. BTW, all the packages under windows and linux are binary identical, so they haven't recooked anything.

 

We can insert new default properties into existing ones, we just need to be very careful with any bulk data objects like embedded low-res textures.

 

I've also noticed a lot of GUID references inside textures/materials/meshes. Some of the objects on those old maps do load all the textures, so, again, I don't think it's licensee related. But it's possible that some of the map-specific objects got unused when they deleted those maps from EW and as a result some of the references became invalid.

Edited by wghost81
Link to comment
Share on other sites

  • Replies 473
  • Created
  • Last Reply

Top Posters In This Topic

The wierd thing is that the pod/fences/ rubble on the gastation roof get their material loaded IF I load them through the strategic game.

The Shader Caches should be different , windows uses directx, linux uses opengl. The windows file RefShaderCache-PC-D3D-SM3 stands for pc- directx-shadermodel 3

 

Hmm on the psi armors (EW uses the material MInst_PsionicMale and EU uses MInst_PsionicFem ) the only guids which are different are the last ones : ParentLightingGuid and LightingGuid

Edited by LiQuiD911
Link to comment
Share on other sites

In cookedPCconsole there are

RefShaderCache-PC-D3D-SM3.upk

GlobalShaderCache-PC-D3D-SM3.bin

PersistentCookerShaderData.bin

GlobalShaderCache-PC-D3D-SM3.bin

PersistentCookerShaderData.bin

 

I guess the texture surface effects and properties are compiled and stored there

Link to comment
Share on other sites

I may be wrong, this could be an import object problem

 

Here's the relevant part of the log

 

  Reveal hidden contents

 

 

It says that there are problems with the NetIndex of the objects

 

NetIndex is an internal variable of the Object class

 

var native private const editconst noexport int NetIndex;

 

Neither UPK utils nor UEexplorer show this particular variable and I haven't managed to patch it. Raw hexediting the upk works when the netindex is a big number but I can't search for small numbers.

 

I tried importing the EU laser rifle, the textures are ok but the actual laser fire lacks some materials and crashes on some animations

Edited by LiQuiD911
Link to comment
Share on other sites

  Quote

var native private const editconst noexport int NetIndex;

That is indeed interesting. Since it's native, it should be serialized directly via c++ code, not via Default Properties.

 

There is a file in CustomTFC.7z archive called "UPK Texture2D.pdf" - a description of binary part of Texture2D object made by Drakous79. I suspect those 4 bytes he was unable to identify can be the NextIndex you seek. Can you confirm it?

Link to comment
Share on other sites

Well this is straight from Engine.Object.uc in the udK/development/engine folder. I made a grep search for NetIndex.

 

//=============================================================================
// UObject variables.

// Internal variables.
var native private const editconst noexport pointer VfTableObject;
var native private const editconst pointer HashNext;
var native private const editconst qword ObjectFlags; // This needs to be 8-byte aligned in 32-bit!
var native private const editconst pointer HashOuterNext;
var native private const editconst pointer StateFrame;
var native private const editconst noexport Object Linker;
var native private const editconst noexport pointer LinkerIndex;
var native private const editconst noexport int ObjectInternalInteger;
var native private const editconst noexport int NetIndex;
var native const editconst Object Outer;
var() native const editconst name Name;
var native const editconst class Class;
var() native const editconst Object ObjectArchetype;
////////////////////////////////////////////////////////////////////////////////////////////////
// IMPORTANT: DO NOT ADD _ANY_ MEMBERS AFTER ObjectArchetype! Add ALL members before it, as the
// C++ code expects it to be the final member of UObject! (see UObject::InitProperties)
////////////////////////////////////////////////////////////////////////////////////////////////

Link to comment
Share on other sites

I'm trying to apply the map patches Liquid911 posted, but UPK Patcher (which I'm no expert in) gives the following error:

 

EDIT: I presume I need to decompress the EU map upks before attempting to patch them, correct?

 

  Quote

 

Opening package ...

Package file: C:\Program Files (x86)\Steam\SteamApps\common\XCom-Enemy-Unknown\XEW/xcomgame/cookedpcconsole/urb_gasstation.upk
Package opened successfully!
Searching for specified data chunk ...
Data found!
Global offset: 0x0164A32D (23372589)
Bad name: CharTextures
Bad token: <CharTextures>
Invalid/empty data!
Bad name: EUTextureEU
Bad token: <EUTextureEU>
Invalid/empty data!
Execution stopped at #2 command named REPLACE_CODE.
Link to comment
Share on other sites

The new names must be part of the upk name table, we cannot select arbitrary names for the TFCs. Unless there is a way to insert new ones.

 

No need to decompress.

 

I tried fixing the skyranger intros, it needs a bit more work because I wasn't able to remove ship elements.

Edited by LiQuiD911
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...