Im sure back in the day it would have taken ages, but the system im on now its not too bad, 30seconds at most to recompile both deusex.u and engine.u which contains the images.. and thats with firefox and other miscellaneous programs running in the background.
Yea too much work just to replace an item with another item using a different package, i know with something like shifter, it replaces the deusex.u because of the modifications to the already existing items and such... its ashame i cant do the same thing i do for zDoom in DECORATE.. something like:
- Code: Select all
class _TechGoggles replaces TechGoggles;
function blah()
{
blah blah
}
ect...
although i never tried lol
Really need to figure out why its not reading that bmp though, its strange, ill try changing the code to find a pcx instead, like the rest of them, i dont know why they decided to go bmp for that one font in the first place.
Update:
Okay i found a solution... Ive left engine.u as vanilla, has nothing to do with it anymore, instead though, inside DeusEx/Classes/DeusExLevelInfo.uc theres a function called PostBeginPlay(), in there i set nolighting to false.. im fair sure that resets it back to normal on level load, and because the main menu is technically a map, it loads on startup...
So heres a recap for anyone that reads this and wants WORKING TECH GOGGLES and FULL SCREEN NIGHTVISION.. and knows how to compile code
Firstly, the fullscreen part:
In Deusex/classes/augmentationdisplaywindow.uc
from line 1219, i comment out the first if statement (or delete):
- Code: Select all
// shift the entire screen to dark red (except for the middle box)
/*
if (player.Level.Netmode == NM_Standalone)
{
gc.SetStyle(DSTY_Modulated);
gc.DrawPattern(0, 0, width, boxTLY, 0, 0, Texture'ConWindowBackground');
gc.DrawPattern(0, boxBRY, width, height-boxBRY, 0, 0, Texture'ConWindowBackground');
gc.DrawPattern(0, boxTLY, boxTLX, boxH, 0, 0, Texture'ConWindowBackground');
gc.DrawPattern(boxBRX, boxTLY, width-boxBRX, boxH, 0, 0, Texture'ConWindowBackground');
gc.DrawPattern(0, 0, width, boxTLY, 0, 0, Texture'SolidRed');
gc.DrawPattern(0, boxBRY, width, height-boxBRY, 0, 0, Texture'SolidRed');
gc.DrawPattern(0, boxTLY, boxTLX, boxH, 0, 0, Texture'SolidRed');
gc.DrawPattern(boxBRX, boxTLY, width-boxBRX, boxH, 0, 0, Texture'SolidRed');
gc.SetStyle(DSTY_Translucent);
}
*/
That removes the red border on augvision as its no longer needed for this purpose.
from line 1421i comment out the "IRAmpActive" message as its not really needed
- Code: Select all
// draw text label
/*
if (player.Level.Netmode == NM_Standalone)
{
gc.GetTextExtent(0, w, h, msgIRAmpActive);
x = boxTLX + margin;
y = boxTLY - margin - h;
gc.SetTextColor(colHeaderText);
gc.DrawText(x, y, w, h, msgIRAmpActive);
}
*/
Next i find line 1357 and modify as follows:
- Code: Select all
// shift the middle of the screen green (NV) and increase the contrast
// DEUS_EX AMSD In singleplayer, draw this here
// In multiplayer, drawn earlier so you can still see through walls with it.
if (player.Level.Netmode == NM_Standalone)
{
gc.SetStyle(DSTY_Modulated);
gc.DrawPattern(0, 0, width, height, 0, 0, Texture'VisionBlue');
gc.DrawPattern(0, 0, width, height, 0, 0, Texture'SolidGreen');
}
gc.SetStyle(DSTY_Normal);
/*
if (player.Level.NetMode == NM_Standalone)
DrawDropShadowBox(gc, 0, 0, width, height);
// draw text label
if (player.Level.Netmode == NM_Standalone)
{
gc.GetTextExtent(0, w, h, msgLightAmpActive);
if(visionLevel>=1)
x = boxTLX + margin + width/2;
else
x = boxTLX + margin;
y = boxTLY + margin - h;
gc.SetTextColor(colHeaderText);
gc.DrawText(x, y, w, h, msgLightAmpActive);
}
*/
Here i have changed the first instance of 'SolidGreen' and changed it to vision blue, changed the width and height to the resolution of the screen, then i comment out the last two if statements as the first one is the thin white border where the mini lightamp window would be and the other is the string "LightAmpActive" that would be on the top left of that window, both of which are not needed anymore as i know the "LightAmp" is active because my whole screen is green now
Moving on....
Save that mofo, then open up augvision.uc
line 25, under function activate() and function deactivate() somewhere i added these new lines of code
- Code: Select all
function Activate()
{
local bool bWasActive;
bWasActive = bIsActive;
Super.Activate();
//NEW=======================
Player.ConsoleCommand("set ini:Engine.Engine.ViewportManager NoLighting" @ True);
Player.ConsoleCommand("FLUSH");
//==========================
if (!bWasActive && bIsActive)
{
SetVisionAugStatus(CurrentLevel,LevelValues[CurrentLevel],True);
Player.RelevantRadius = LevelValues[CurrentLevel];
}
}
- Code: Select all
function Deactivate()
{
local bool bWasActive;
bWasActive = bIsActive;
Super.Deactivate();
//NEW=======================
Player.ConsoleCommand("set ini:Engine.Engine.ViewportManager NoLighting" @ False);
Player.ConsoleCommand("FLUSH");
//==========================
if (bWasActive && !bIsActive)
{
SetVisionAugStatus(CurrentLevel,LevelValues[CurrentLevel],False);
Player.RelevantRadius = 0;
}
}
save that sucker and open techgoggles.uc
here we have ChargedPickupBegin and ChargedPickupEnd functions, in there i added these new lines of code
- Code: Select all
function ChargedPickupBegin(DeusExPlayer Player)
{
Super.ChargedPickupBegin(Player);
//NEW=======================
Player.ConsoleCommand("set ini:Engine.Engine.ViewportManager NoLighting" @ True);
Player.ConsoleCommand("FLUSH");
//==========================
DeusExRootWindow(Player.rootWindow).hud.augDisplay.activeCount++;
UpdateHUDDisplay(Player);
}
- Code: Select all
function ChargedPickupEnd(DeusExPlayer Player)
{
Super.ChargedPickupEnd(Player);
//NEW=======================
Player.ConsoleCommand("set ini:Engine.Engine.ViewportManager NoLighting" @ False);
Player.ConsoleCommand("FLUSH");
//==========================
if (--DeusExRootWindow(Player.rootWindow).hud.augDisplay.activeCount == 0)
DeusExRootWindow(Player.rootWindow).hud.augDisplay.bVisionActive = False;
}
save and lastly i open up DeusExLevelInfo.uc
At line 42 you will find function PostBeginPlay()
i modify as follows:
- Code: Select all
function PostBeginPlay()
{
Super.PostBeginPlay();
//NEW=======================
Level.ConsoleCommand("set ini:Engine.Engine.ViewportManager NoLighting" @ False);
Level.ConsoleCommand("FLUSH");
//==========================
SpawnScript();
}
save that, goto your deusex\system folder, rename deusex.u to deusex.u_ or something, just to keep a backup, then run ucc.exe make
All done, start the game, summon techgoggles, augadd augvision then allaugs and test your fancy new working nightvision.
a few things to keep in mind would be that, it removes the lighting, so you will be able to see things that the developers didnt intend for you to see, skybox borders for instance, where the map ends when looking in the water on liberty island and such, and when talking to someone it will disable the green filter but it will still be full bright due to the nolighting bool still being true whilst in these situations.
And theres my take on fixing the NightVision in deusex
never been done before until now