Acid81 Posted August 12, 2013 Share Posted August 12, 2013 The XComGame.exe base building values - Has anyone had success modifying this area ? Link to comment Share on other sites More sharing options...
theoldone22 Posted August 12, 2013 Share Posted August 12, 2013 no Link to comment Share on other sites More sharing options...
Amineri Posted August 12, 2013 Share Posted August 12, 2013 I vaguely recall seeing an old thread that claimed that reducing the base size by adjusting the DGC.ini value worked but that increasing the value didn't work. Link to comment Share on other sites More sharing options...
TheOldOne822 Posted August 23, 2013 Share Posted August 23, 2013 I've tried editing the Build Facilities flash UI for NUM_TERAIN work with no luck. Flash is hard coded to 7 by 4 in AS but changing it to 9 by 5 did nothing. Edit: on a side note I cut out most of the UPK code that was left at the end of the SWF files cutting the flash zip from 460MB to 2MB. Link to comment Share on other sites More sharing options...
Bertilsson Posted August 23, 2013 Share Posted August 23, 2013 I guess this is mostly of topic...But I just did some experimenting with the XGBase functions in XComStragegyGame.upk and it seems relatively easy to remove the access lifts and the requirement to have them, thereby making the base a big 7*4 section instead of 2*3*4.Alternatively it is very simple to move the elevators to column zero and have a single 6*4 section.http://hem.bredband.net/bertrich/XCOM/Temp/xcom_baselayoutchanges.jpg Link to comment Share on other sites More sharing options...
johnnylump Posted August 23, 2013 Share Posted August 23, 2013 That's kinda cool ... does the ant farm reflect the moved / eliminated elevators? Link to comment Share on other sites More sharing options...
Bertilsson Posted August 23, 2013 Share Posted August 23, 2013 (edited) Yepp Edit: On closer inspection... the buildings placed in column 3 are a bit truncated and weird looking in the ant farm but the elavators look good :) Edited August 23, 2013 by Bertilsson Link to comment Share on other sites More sharing options...
TheOldOne822 Posted August 23, 2013 Share Posted August 23, 2013 I have said before I don't know much about Unreal modding but could this code in XGBase.GenerateTiles have something to do with being unable to use NUM_TERAIN function GenerateTiles() { local int X, Y; local array<int> arrDeepRockTiles; local int iNumSteamVents, iTile, I; iNumSteamVents = 1 + Rand(class'XGTacticalGameCore'.default.NUM_STARTING_STEAM_VENTS); m_arrTiles.Add(5 * 7); m_arrFacilities.Add(5 * 7); Y = 0; J0x5A: // End:0x333 [Loop If] if(Y < 5) { X = 0; J0x75: // End:0x325 [Loop If] if(X < 7) { // End:0xD3 if(Y == 0) { m_arrTiles[TileIndex(X, Y)].iType = 3; } // End:0x291 else { // End:0x181 if(Y == 1) { m_arrTiles[TileIndex(X, Y)].iType = 3; // End:0x17E if((X > (7 / 2)) && Roll(75)) { m_arrTiles[TileIndex(X, Y)].iType = 0; } } // End:0x291 else { // End:0x1DF if(IsAccessLocation(X, Y)) { m_arrTiles[TileIndex(X, Y)].iType = 3; } // End:0x291 else { // End:0x22D if(Roll(20)) { m_arrTiles[TileIndex(X, Y)].iType = 2; } // End:0x291 else { m_arrTiles[TileIndex(X, Y)].iType = 0; arrDeepRockTiles.AddItem(TileIndex(X, Y)); } } } } m_arrTiles[TileIndex(X, Y)].X = X; m_arrTiles[TileIndex(X, Y)].Y = Y; ++ X; // [Loop Continue] goto J0x75; } ++ Y; // [Loop Continue] goto J0x5A; } I = 0; J0x33E: // End:0x3E0 [Loop If] if(I < iNumSteamVents) { iTile = Rand(arrDeepRockTiles.Length); m_arrTiles[arrDeepRockTiles[iTile]].iType = 1; m_arrSteamTiles.AddItem(arrDeepRockTiles[iTile]); arrDeepRockTiles.Remove(iTile, 1); ++ I; // [Loop Continue] goto J0x33E; } SetFacility(1, 0, 0); SetFacility(3, 2, 0); SetFacility(2, 4, 0); SetFacility(4, 6, 0); SetFacility(6, 3, 1); m_arrTiles[TileIndex(3, 1)].iTileState = 1; SetFacility(9, 2, 1); // End:0x4BC if(Game().GetDifficulty() <= 0) { SetFacility(12, 0, 1); Game().m_arrFacilityUnlocks[12] = 1; } UpdateTiles(); //return; } Found better looking code in XGBuildUI function int GetTilesWide() { return 7; //return ReturnValue; } function int GetTilesHigh() { return 5; //return ReturnValue; } Looks to be a few places with hard coded base size function OnCursorLeft() { // End:0x2E if(m_kCursor.X == 0) { PlayBadSound(); return; } // End:0xC3 if(Base().GetTileAt(m_kCursor.X - 1, m_kCursor.Y).bSecondTile) { m_kCursor.X -= 2; } // End:0xE2 else { m_kCursor.X -= 1; } PlayScrollSound(); UpdateView(); //return; } function OnCursorRight() { // End:0x32 if(m_kCursor.X == (7 - 1)) { PlayBadSound(); return; } m_kCursor.X += m_kCursor.iSize; PlayScrollSound(); UpdateView(); //return; } function OnCursorUp() { // End:0x2E if(m_kCursor.Y == 1) { PlayBadSound(); return; } m_kCursor.Y -= 1; // End:0xDB if(Base().GetTileAt(m_kCursor.X, m_kCursor.Y).bSecondTile) { m_kCursor.X -= 1; } PlayScrollSound(); UpdateView(); //return; } function OnCursorDown() { // End:0x32 if(m_kCursor.Y == (5 - 1)) { PlayBadSound(); return; } m_kCursor.Y += 1; // End:0xDF if(Base().GetTileAt(m_kCursor.X, m_kCursor.Y).bSecondTile) { m_kCursor.X -= 1; } PlayScrollSound(); UpdateView(); //return; } Link to comment Share on other sites More sharing options...
Bertilsson Posted August 23, 2013 Share Posted August 23, 2013 (edited) There are lots of hard coded references to higth and width in the XGBase functions.On the positive side the functions are relatively easy to grasp and mod... In case anyone is satisfied with simpler mod only getting rid of the elevator shaft, I have made a modlet for that which can be found in the following thread where it is a little less of topic:http://forums.nexusmods.com/index.php?/topic/811577-base-generation/?p=8892090 Edited August 23, 2013 by Bertilsson Link to comment Share on other sites More sharing options...
Recommended Posts