Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v3.2.0.0 Alpha #947

Merged
merged 40 commits into from
Sep 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
e5495f9
game mode grouping, and some other small tweaks
Die4Ever Sep 5, 2024
c572ace
Merge branch 'master' into develop
Die4Ever Sep 6, 2024
9099b39
bump version to v3.1.2.0 Alpha for dev purposes
Die4Ever Sep 6, 2024
4639fcf
Trying to save in a restricted-saving mode will now cause a message box
theastropath Sep 7, 2024
6decde9
Minor code cleanup with ifdefs
theastropath Sep 7, 2024
5d67110
Bingo failure now continues to show the missions a goal was possible on.
theastropath Sep 8, 2024
c709632
Hanging Decorations now swing when there are heavy footsteps nearby
theastropath Sep 8, 2024
f3764a1
tweak new game menu, demolition skill works as advertised in Zero Ran…
Die4Ever Sep 8, 2024
79b3b9d
Slightly increase Payphone collision radius as a lazy fix for badly
theastropath Sep 8, 2024
ba8031b
Tweaks to new DXRFashion clothes handling
theastropath Sep 9, 2024
4d38a92
Make sure DXRFashionManager doesn't end up on the belt
theastropath Sep 9, 2024
c0b66fe
Fix non-trench FemJC carcass meshes. Refactor some DXRFashionManager
theastropath Sep 9, 2024
e104c24
fix high FOV rendering for POVCorpse, LAW, and GEP Gun
Die4Ever Sep 9, 2024
611b009
more stuff in FixFOV()
Die4Ever Sep 9, 2024
64960cd
Make clothes racks highlightable
theastropath Sep 9, 2024
ed648b7
DXRMissions smarter mutual exclusions for fewer retries
Die4Ever Sep 9, 2024
3f9eba8
maintain paris chill % across loops (#939)
MQDuck Sep 9, 2024
9c24626
Tong starts in his 'Patrolling' state on later starts (#936)
MQDuck Sep 9, 2024
bd99ef0
fix compile errors with HX and VMD, no weird game modes for training,…
Die4Ever Sep 10, 2024
5178b0a
mrh rename and tweaks
Die4Ever Sep 10, 2024
ae28ccd
FixFOV() fix assault shotgun and gas grenade default values
Die4Ever Sep 10, 2024
324114f
FixFOV() cleanup
Die4Ever Sep 10, 2024
e96ca22
bingo failure fixes (#942)
MQDuck Sep 10, 2024
dbba7af
open comm building doors and disable infolink on 121+ starts (instead…
MQDuck Sep 10, 2024
f767aac
tweak name of 121 start inside commsat
Die4Ever Sep 10, 2024
a7ecbf2
disable "NSF everywhere" infolink if 'StatueMissionComplete' (#940)
MQDuck Sep 10, 2024
eccf484
Bingo goals check if they've failed before checking to see if the
theastropath Sep 10, 2024
a642e53
M09 minor tweaks
Die4Ever Sep 11, 2024
9dee57b
horde mode tweaks, a couple more M09 tweaks, and some more stuff
Die4Ever Sep 11, 2024
08b44dd
canal drug deal participants defend each other if attacked (#943)
MQDuck Sep 12, 2024
86a6f0d
mole people terrorists have already surrendered on 35+ starts (#944)
MQDuck Sep 12, 2024
8412a6e
minor piano tweaks and cleanup and stuff
Die4Ever Sep 12, 2024
46c9f22
give player m03 sewer door key on 36+ starts (#945)
MQDuck Sep 12, 2024
3b80c67
M03 helibase cameras are disabled afer dealing with Lebedev (#946)
MQDuck Sep 12, 2024
365dad7
DXRFashionManager now has fallback clothing textures in case the player
theastropath Sep 12, 2024
e104aa0
some cleanup, 03_NYC_AIRFIELDHELIBASE also disable turrets after fini…
Die4Ever Sep 12, 2024
b1b6097
fix issues with upgrading augs while active
Die4Ever Sep 12, 2024
2834f73
some small path finding improvement
Die4Ever Sep 13, 2024
e2eefb7
small tweaks
Die4Ever Sep 13, 2024
2e4fbb5
v3.2.0.0 Alpha builds
Die4Ever Sep 13, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions DXRBalance/DeusEx/Classes/BalanceAugDrone.uc
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,17 @@ function PostPostBeginPlay()
Description = default.Description;
}

function Reset()
{
//Don't actually reset if the aug is already inactive
if (!bIsActive) return;

Player.spyDroneLevel = CurrentLevel;
Player.spyDroneLevelValue = GetAugLevelValue();

Human(Player).SetDroneStats();
}

// original values went from 10 to 50, but we also adjust the multipliers in BalancePlayer.uc
defaultproperties
{
Expand Down
32 changes: 23 additions & 9 deletions DXRBalance/DeusEx/Classes/BalanceAugSpeed.uc
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,34 @@ simulated function DoActivate()
local float useEnergy;

// DXRando: instantly use 1 energy to prevent abuse
useEnergy = 1;
if(Level.LevelAction == LEVACT_None) {
useEnergy = 1;
}
if(Player.Energy < useEnergy) {
Deactivate();
} else {
if(Level.LevelAction == LEVACT_None) {
Player.Energy -= useEnergy;
}
Player.Energy -= useEnergy;
Reset();
}
}

function Reset()
{
//Don't actually reset if the aug is already inactive
if (!bIsActive) return;

// reset without burning 1 energy
if(class'MenuChoice_FixGlitches'.default.enabled) {
Player.GroundSpeed = Player.default.GroundSpeed * GetAugLevelValue();
Player.JumpZ = Player.default.JumpZ * GetAugLevelValue();
} else {
Player.GroundSpeed *= GetAugLevelValue();
Player.JumpZ *= GetAugLevelValue();
if ( Level.NetMode != NM_Standalone )
{
if ( Human(Player) != None )
Human(Player).UpdateAnimRate( GetAugLevelValue() );
}
}
if ( Level.NetMode != NM_Standalone )
{
if ( Human(Player) != None )
Human(Player).UpdateAnimRate( GetAugLevelValue() );
}
}

Expand Down
5 changes: 5 additions & 0 deletions DXRBalance/DeusEx/Classes/BalancePlayer.uc
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,11 @@ function CreateDrone()
loc.Z = BaseEyeHeight;
loc += Location;
aDrone = Spawn(class'SpyDrone', Self,, loc, ViewRotation);
SetDroneStats();
}

function SetDroneStats()
{
if (aDrone != None)
{
//aDrone.Speed = 3 * spyDroneLevelValue;
Expand Down
60 changes: 30 additions & 30 deletions DXRCore/DeusEx/Classes/DXRActorsBase.uc
Original file line number Diff line number Diff line change
Expand Up @@ -1223,6 +1223,29 @@ static function SetActorScale(Actor a, float scale)
a.DrawScale = scale;
}

function RandomizeSize(Actor a)
{
local Decoration carried;
local DeusExPlayer p;
local float scale;

p = DeusExPlayer(a);
if( p != None && p.carriedDecoration != None ) {
carried = p.carriedDecoration;
p.DropDecoration();
carried.SetPhysics(PHYS_None);
}

scale = rngrange(1, 0.9, 1.1);
SetActorScale(a, scale);
a.Fatness += rng(10) + rng(10) - 10;

if( carried != None ) {
p.carriedDecoration = carried;
p.PutCarriedDecorationInHand();
}
}

function bool CheckFreeSpace(out vector loc, float radius, float height)
{
local bool success;
Expand Down Expand Up @@ -1434,7 +1457,7 @@ function float GetDistanceFromSurface(vector StartTrace, vector EndTrace)

function bool NearestCeiling(out LocationNormal out, FMinMax distrange, optional float away_from_wall)
{
local vector EndTrace, MoveOffWall;
local vector EndTrace;
EndTrace = out.loc;
EndTrace.Z += distrange.max;
if( NearestSurface(out.loc + (vect(0,0,1)*distrange.min), EndTrace, out) == false ) {
Expand All @@ -1443,17 +1466,13 @@ function bool NearestCeiling(out LocationNormal out, FMinMax distrange, optional
if( ! IsCeilingNormal(out.norm) ) {
return false;
}
MoveOffWall.X = away_from_wall;
MoveOffWall.Y = away_from_wall;
MoveOffWall.Z = away_from_wall;
MoveOffWall *= out.norm;
out.loc += MoveOffWall;
out.loc += out.norm * away_from_wall;
return true;
}

function bool NearestFloor(out LocationNormal out, FMinMax distrange, optional float away_from_wall)
{
local vector EndTrace, MoveOffWall;
local vector EndTrace;
EndTrace = out.loc;
EndTrace.Z -= distrange.max;
if( NearestSurface(out.loc - (vect(0,0,1)*distrange.min), EndTrace, out) == false ) {
Expand All @@ -1462,11 +1481,7 @@ function bool NearestFloor(out LocationNormal out, FMinMax distrange, optional f
if( ! IsFloorNormal(out.norm) ) {
return false;
}
MoveOffWall.X = away_from_wall;
MoveOffWall.Y = away_from_wall;
MoveOffWall.Z = away_from_wall;
MoveOffWall *= out.norm;
out.loc += MoveOffWall;
out.loc += out.norm * away_from_wall;
return true;
}

Expand Down Expand Up @@ -1533,23 +1548,17 @@ function bool _NearestWall(out LocationNormal out, FMinMax distrange)

function bool NearestWall(out LocationNormal out, FMinMax distrange, optional float away_from_wall)
{
local vector MoveOffWall, normal;

if( _NearestWall(out, distrange) == false ) {
return false;
}
MoveOffWall.X = away_from_wall;
MoveOffWall.Y = away_from_wall;
MoveOffWall.Z = away_from_wall;
MoveOffWall *= out.norm;
out.loc += MoveOffWall;
out.loc += out.norm * away_from_wall;
return true;
}

function bool NearestWallSearchZ(out LocationNormal out, FMinMax distrange, float z_range, vector target, optional float away_from_wall)
{
local LocationNormal wall, ret;
local vector MoveOffWall;
local float closest_dist, dist;
local int i;
local float len;
Expand All @@ -1571,19 +1580,14 @@ function bool NearestWallSearchZ(out LocationNormal out, FMinMax distrange, floa
if( closest_dist >= distrange.max ) {
return false;
}
MoveOffWall.X = away_from_wall;
MoveOffWall.Y = away_from_wall;
MoveOffWall.Z = away_from_wall;
MoveOffWall *= ret.norm;
ret.loc += MoveOffWall;
ret.loc += ret.norm * away_from_wall;
out = ret;
return true;
}

function bool NearestCornerSearchZ(out LocationNormal out, FMinMax distrange, vector against, float z_range, vector target, optional float away_from_wall)
{
local LocationNormal wall, ret;
local vector MoveOffWall;
local float closest_dist, dist;
local int i;
local float len;
Expand All @@ -1605,11 +1609,7 @@ function bool NearestCornerSearchZ(out LocationNormal out, FMinMax distrange, ve
if( closest_dist >= distrange.max ) {
return false;
}
MoveOffWall.X = away_from_wall;
MoveOffWall.Y = away_from_wall;
MoveOffWall.Z = away_from_wall;
MoveOffWall *= ret.norm;
ret.loc += MoveOffWall;
ret.loc += ret.norm * away_from_wall;
out = ret;
return true;
}
Expand Down
6 changes: 1 addition & 5 deletions DXRCore/DeusEx/Classes/DXRInfo.uc
Original file line number Diff line number Diff line change
Expand Up @@ -192,17 +192,13 @@ function bool IsAprilFools()
function bool IsOctoberUnlocked()
{
// Happy Halloween! unlock gamemodes forever and other features
if(#defined(debug)) return true;
if(VersionOlderThan(VersionNumber(), 3,2,0,0)) return false;
if(!VersionIsStable()) return true;// allow alphas and betas of v3.2 to get access early
return Level.Month >= 10 || Level.Year > 2024;
return true;
}

function bool IsOctober()
{
// Happy Halloween! This will be used for general halloween things like cosmetic changes and piano song weighting
if(GetDXR().flags.IsHalloweenMode()) return true; // this takes priority over memes
if(VersionOlderThan(VersionNumber(), 3,2,0,0)) return false;
if(!class'MenuChoice_ToggleMemes'.static.IsEnabled(GetDXR().flags)) return false;
return Level.Month == 10;
}
Expand Down
38 changes: 28 additions & 10 deletions DXRCore/DeusEx/Classes/DXRMenuBase.uc
Original file line number Diff line number Diff line change
Expand Up @@ -159,13 +159,14 @@ function _InvokeNewGameScreen(float difficulty)
}
}

function NewMenuItem(string label, string helptext, optional bool hide_label)
function int NewMenuItem(string label, string helptext, optional bool hide_label)
{
id++;
labels[id] = label;
hide_labels[id] = int(hide_label);
helptexts[id] = helptext;
log(Self @ label);
return id;
}

function BreakLine()
Expand Down Expand Up @@ -606,7 +607,6 @@ function ClickEnum(int iEnum, bool rightClick)
{
local EnumBtn e;
local int numValues, i;
local DXREnumList list;

e = enums[iEnum];

Expand All @@ -617,14 +617,7 @@ function ClickEnum(int iEnum, bool rightClick)
}

if(numValues > 5) {
list = DXREnumList(root.InvokeUIScreen(class'DXREnumList'));
list.Init(self, iEnum, labels[iEnum], helptexts[iEnum], e.values[e.value]);
for(i=0; i<ArrayCount(e.values); i++) {
if(e.values[i] != "") {
list.AddButton(e.values[i]);
}
}
list.Finalize();
OpenEnumList(iEnum);
return;
}

Expand All @@ -646,6 +639,31 @@ function ClickEnum(int iEnum, bool rightClick)
enums[iEnum] = e;
}

function OpenEnumList(int iEnum)
{
local DXREnumList list;
local EnumBtn e;
local int i;
local string prev;

e = enums[iEnum];

list = DXREnumList(root.InvokeUIScreen(class'DXREnumList'));
list.Init(self, iEnum, labels[iEnum], helptexts[iEnum], e.values[e.value]);
for(i=0; i<ArrayCount(e.values); i++) {
if(e.values[i] != "") {
EnumListAddButton(list, labels[iEnum], e.values[i], prev);
prev = e.values[i];
}
}
list.Finalize();
}

function EnumListAddButton(DXREnumList list, string title, string val, string prev)
{
list.AddButton(val);
}

function int GetSliderValue(MenuUIEditWindow w)
{
return int(w.GetText());
Expand Down
46 changes: 40 additions & 6 deletions DXRCore/DeusEx/Classes/DXRMenuSelectDifficulty.uc
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ var string AdvancedBtnTitle, AdvancedBtnMessage;
var string ExtremeBtnTitle, ExtremeBtnMessage;
var string ImpossibleBtnTitle, ImpossibleBtnMessage;

var int gamemode_enum, autosave_enum;

enum ERandoMessageBoxModes
{
RMB_MaxRando,
Expand Down Expand Up @@ -36,7 +38,7 @@ function BindControls(optional string action)

f = GetFlags();

NewMenuItem("Game Mode", "Choose a game mode!");
gamemode_enum = NewMenuItem("Game Mode", "Choose a game mode!");
for(i=0; i<20; i++) {
temp = f.GameModeIdForSlot(i);
if(temp==999999) continue;
Expand Down Expand Up @@ -80,16 +82,17 @@ function BindControls(optional string action)

#ifdef injections
foreach f.AllActors(class'DXRAutosave', autosave) { break; }// need an object to access consts
NewMenuItem("Autosave", "Saves the game in case you die!");
EnumOption("Every Entry", autosave.EveryEntry, f.autosave);
EnumOption("First Entry", autosave.FirstEntry, f.autosave);
autosave_enum = NewMenuItem("Save Behavior", "Saves the game in case you die!");
EnumOption("Autosave Every Entry", autosave.EveryEntry, f.autosave);
EnumOption("Autosave First Entry", autosave.FirstEntry, f.autosave);
EnumOption("Autosaves-Only (Hardcore)", autosave.Hardcore, f.autosave);
EnumOption("Extra Safe (1+GB per playthrough)", autosave.ExtraSafe, f.autosave);
if(f.IsOctoberUnlocked()) {
EnumOption("Limited Saves", autosave.LimitedSaves, f.autosave);
EnumOption("Fixed Saves", autosave.FixedSaves, f.autosave);
EnumOption("Limited Fixed Saves", autosave.FixedSaves, f.autosave);
EnumOption("Unlimited Fixed Saves", autosave.UnlimitedFixedSaves, f.autosave);
}
EnumOption("Off", autosave.Disabled, f.autosave);
EnumOption("Autosaves Disabled", autosave.Disabled, f.autosave);
#endif

NewMenuItem("Crowd Control", "Let your Twitch/YouTube/Discord viewers troll you or help you!" $BR$ "See their website crowdcontrol.live");
Expand Down Expand Up @@ -163,6 +166,37 @@ function BindControls(optional string action)
}
}

function string SetEnumValue(int e, string text)
{
// HACK: this allows you to override the autosave option instead of SetDifficulty forcing it by game mode
Super.SetEnumValue(e, text);
if(e == gamemode_enum && #defined(injections)) {
if(InStr(text, "Halloween Mode")==0 || InStr(text, "WaltonWare Halloween")==0)
{
Super.SetEnumValue(autosave_enum, "Limited Fixed Saves");
}
else if(InStr(text, "Hardcore")==-1 && InStr(text, "Horde")==-1)
{
Super.SetEnumValue(autosave_enum, "Autosave Every Entry");
}
}
}

function EnumListAddButton(DXREnumList list, string title, string val, string prev)
{
if(title == "Game Mode") {
if(InStr(prev, "WaltonWare")==-1 && InStr(val, "WaltonWare")!=-1) {
list.CreateLabel("WaltonWare modes");
}
else if(InStr(prev, "Zero Rando")==-1 && InStr(val, "Zero Rando")!=-1) {
list.CreateLabel("Reduced Randomization modes");
} else if(prev == "Randomizer Medium") {
list.CreateLabel("Other game modes");
}
}
list.AddButton(val);
}

function HandleNewGameButton()
{
local DXRFlags f;
Expand Down
2 changes: 1 addition & 1 deletion DXRCore/DeusEx/Classes/DXRMenuSetupRando.uc
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ function BindControls(optional string action)
EnumOption("Random Non-human Stats", 100, f.settings.bot_stats);

NewMenuItem("Paris Chill %", "Removes MJ12 from the Champs-Elysees.");
Slider(f.moresettings.remove_paris_mj12, 0, 100);
Slider(f.remove_paris_mj12, 0, 100);


NewGroup("Skills");
Expand Down
Loading