Skip to content

Commit

Permalink
v2.5.3 Beta Merge pull request #515 from Die4Ever/develop
Browse files Browse the repository at this point in the history
v2.5.3 Beta
  • Loading branch information
Die4Ever authored Sep 11, 2023
2 parents 7c7fdee + 9f9fa8c commit fd0fd19
Show file tree
Hide file tree
Showing 49 changed files with 2,246 additions and 1,111 deletions.
4 changes: 3 additions & 1 deletion .github/release_template.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
Download `DXRandoInstaller.exe` in the Assets section under the changelog.
Download `DXRandoInstaller.exe` in the Assets section under the changelog. It is safe to update in the middle of a playthrough.

For Nvidia users, setting ultra low latency mode for DXRando.exe can help performance.

If you're having an issue with the installer program: [Manual Installation Instructions for Vanilla, Lay D Denton, GMDX, Revision, HX co-op, and Vanilla? Madder.](https://github.com/Die4Ever/deus-ex-randomizer/wiki/Installation-Instructions-and-performance-tweaks)

Expand Down
53 changes: 48 additions & 5 deletions .github/run-tests/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,9 @@ runs:
- run: pip3 install -r installer/requirements.txt 2>&1
shell: bash

# download launchers
- run: mkdir installer/3rdParty
shell: bash
- run: mkdir installer/3rdParty/d3d10drv
shell: bash

# https://github.com/Defaultplayer001/Deus-Ex-Universe-Community-Update-/tree/master/%5B1.0%5D%20Deus%20Ex%20-%20Windows-Linux-macOS-Android/DXCU%20Installer%20Source/Mods/Community%20Update/System/Alternative%20EXEs
- run: >-
curl -Lo installer/3rdParty/KentieDeusExe.exe
Expand All @@ -25,7 +23,34 @@ runs:
"https://github.com/Defaultplayer001/Deus-Ex-Universe-Community-Update-/raw/master/%5B1.0%5D%20Deus%20Ex%20-%20Windows-Linux-macOS-Android/DXCU%20Installer%20Source/Mods/Community%20Update/System/Alternative%20EXEs/Launch.exe"
shell: bash
# D3D10 stuff
# download D3D9
- run: >-
curl -Lo installer/3rdParty/D3D9Drv.dll
"https://github.com/Defaultplayer001/Deus-Ex-Universe-Community-Update-/raw/master/%5B1.0%5D%20Deus%20Ex%20-%20Windows-Linux-macOS-Android/DXCU%20Installer%20Source/Mods/Community%20Update/System/D3D9Drv.dll"
shell: bash
- run: >-
curl -Lo installer/3rdParty/D3D9Drv.hut
"https://github.com/Defaultplayer001/Deus-Ex-Universe-Community-Update-/raw/master/%5B1.0%5D%20Deus%20Ex%20-%20Windows-Linux-macOS-Android/DXCU%20Installer%20Source/Mods/Community%20Update/System/D3D9Drv.hut"
shell: bash
- run: >-
curl -Lo installer/3rdParty/D3D9Drv.int
"https://github.com/Defaultplayer001/Deus-Ex-Universe-Community-Update-/raw/master/%5B1.0%5D%20Deus%20Ex%20-%20Windows-Linux-macOS-Android/DXCU%20Installer%20Source/Mods/Community%20Update/System/D3D9Drv.int"
shell: bash
# download and extract OpenGL 2.0 https://github.com/Defaultplayer001/Deus-Ex-Universe-Community-Update-/tree/master/%5B1.0%5D%20Deus%20Ex%20-%20Windows-Linux-macOS-Android/CommunityUpdateFileArchiveDXPC/OpenGL
- run: >-
curl -Lo dxglr21.zip
"https://github.com/Defaultplayer001/Deus-Ex-Universe-Community-Update-/raw/master/%5B1.0%5D%20Deus%20Ex%20-%20Windows-Linux-macOS-Android/CommunityUpdateFileArchiveDXPC/OpenGL/dxglr21.zip"
shell: bash
- run: unzip dxglr21.zip
shell: bash
- run: cp OpenGLDrv.dll installer/3rdParty/OpenGLDrv.dll
shell: bash

# download D3D10 stuff
- run: mkdir installer/3rdParty/d3d10drv
shell: bash

- run: >-
curl -Lo installer/3rdParty/D3D10Drv.int
"https://github.com/Defaultplayer001/Deus-Ex-Universe-Community-Update-/raw/master/%5B1.0%5D%20Deus%20Ex%20-%20Windows-Linux-macOS-Android/DXCU%20Installer%20Source/Mods/Community%20Update/System/D3D10Drv.int"
Expand Down Expand Up @@ -97,6 +122,19 @@ runs:
"https://github.com/LayDDentonProject/Lay-D-Denton-Project/releases/download/v1.1/FemJC.u"
shell: bash
# download DXVK 32bit, the extracted folder has the version number in it like dxvk-2.3
- run: >-
curl -Lo dxvk.tar.gz
"https://github.com/doitsujin/dxvk/releases/download/v2.3/dxvk-2.3.tar.gz"
shell: bash
- run: tar -xf dxvk.tar.gz
shell: bash
- run: mkdir installer/3rdParty/dxvk/
shell: bash
- run: cp dxvk-*/x32/* installer/3rdParty/dxvk/
shell: bash

# check syntax and run tests
- run: python3 -m compileall -q . 2>&1
shell: bash
- run: python3 installer/tests.py 2>&1
Expand All @@ -112,7 +150,7 @@ runs:
shell: bash

# small test, use timeouts because on windows the GUI can catch errors and a dialog box will freeze the program
- run: timeout 30 ./dist/DXRandoInstaller --version 2>&1
- run: timeout 30 ./dist/DXRandoInstaller --version --verbose 2>&1
shell: bash
- run: timeout 30 ./dist/BingoViewer --version 2>&1
shell: bash
Expand All @@ -135,5 +173,10 @@ runs:
# working-directory: ./dist/BingoViewer
# shell: bash

# make sure we got everything
- run: find installer/3rdParty/
shell: bash
- run: find dist/
shell: bash
- run: ls -lah dist/
shell: bash
5 changes: 3 additions & 2 deletions .github/workflows/commit.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: commit
'on':
- push
on:
push:
paths: ['*', 'installer/**', '.github/**']

jobs:
windows:
Expand Down
25 changes: 13 additions & 12 deletions BingoDisplay.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import os.path
import urllib.request
import urllib.parse
import re
from tkinter import filedialog as fd
from tkinter import font
from tkinter import messagebox
Expand Down Expand Up @@ -40,6 +41,7 @@ def __init__(self,targetFile):
self.height=500
self.selectedMod=""
self.prevLines=None
self.bingoLineMatch = re.compile(r'bingoexport\[(?P<key>\d+)\]=\(Event="(?P<event>.*)",Desc="(?P<desc>.*)",Progress=(?P<progress>\d+),Max=(?P<max>\d+),Active=(?P<active>\d+)\)')
self.initDrawnBoard()

def closeWindow(self):
Expand Down Expand Up @@ -139,20 +141,19 @@ def bingoNumberToCoord(self,bingoNumber):
return (x,y)

def parseBingoLine(self,bingoLine):
bingoNumber = int(bingoLine.split("[")[1].split("]")[0])
bingoMatches=self.bingoLineMatch.match(bingoLine)
if (bingoMatches==None):
return

bingoNumber=int(bingoMatches.group('key'))
bingoCoord = self.bingoNumberToCoord(bingoNumber)
state = "=".join(bingoLine.split("=")[1:])[1:-1]
fields = state.split(",")

bingoItem = dict()
for field in fields:
split = field.split("=")
fieldName = split[0].lower()
fieldVal = split[1].replace('"',"")
try:
fieldVal = int(fieldVal)
except:
pass
bingoItem[fieldName]=fieldVal
bingoItem["event"]=bingoMatches.group('event')
bingoItem["desc"]=bingoMatches.group('desc')
bingoItem["progress"]=int(bingoMatches.group('progress'))
bingoItem["max"]=int(bingoMatches.group('max'))
bingoItem["active"]=int(bingoMatches.group('active'))

self.board[bingoCoord[0]][bingoCoord[1]] = bingoItem

Expand Down
50 changes: 44 additions & 6 deletions DXRCore/DeusEx/Classes/DXRActorsBase.uc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ struct FMinMax {
};

struct safe_rule {
var string map;
var name item_name;
var vector min_pos;
var vector max_pos;
Expand Down Expand Up @@ -1269,13 +1268,36 @@ function Vector GetCenter(Actor test)
return (MinVect+MaxVect)/2;
}

function int GetSafeRule(safe_rule rules[64], name item_name, vector newpos)
function safe_rule FixSafeRule(safe_rule r)
{
local float a, b;
r.min_pos *= coords_mult;
r.max_pos *= coords_mult;

a = FMin(r.min_pos.X, r.max_pos.X);
b = FMax(r.min_pos.X, r.max_pos.X);
r.min_pos.X = a;
r.max_pos.X = b;

a = FMin(r.min_pos.Y, r.max_pos.Y);
b = FMax(r.min_pos.Y, r.max_pos.Y);
r.min_pos.Y = a;
r.max_pos.Y = b;

a = FMin(r.min_pos.Z, r.max_pos.Z);
b = FMax(r.min_pos.Z, r.max_pos.Z);
r.min_pos.Z = a;
r.max_pos.Z = b;

return r;
}

function int GetSafeRule(safe_rule rules[16], name item_name, vector newpos)
{
local int i;

for(i=0; i<ArrayCount(rules); i++) {
if( item_name != rules[i].item_name ) continue;
if( dxr.localURL != rules[i].map ) continue;
if( AnyGreater( rules[i].min_pos, newpos ) ) continue;
if( AnyGreater( newpos, rules[i].max_pos ) ) continue;
return i;
Expand Down Expand Up @@ -1322,24 +1344,40 @@ static function GlowUp(Actor a, optional byte hue)
a.LightRadius=6;
}

function DebugMarkKeyPosition(Actor a, coerce string id)
function DebugMarkKeyActor(Actor a, coerce string id)
{
local ActorDisplayWindow actorDisplay;
if( ! #defined(debug)) {
err("Don't call DebugMarkKeyPosition without debug mode! Add debug to the compiler_settings.default.json file");
err("Don't call DebugMarkKeyActor without debug mode! Add debug to the compiler_settings.default.json file");
return;
}

if(DeusExDecoration(a) != None) {
DeusExDecoration(a).ItemName = id @ DeusExDecoration(a).ItemName;
} else if(Inventory(a) != None) {
Inventory(a).ItemName = id @ Inventory(a).ItemName;
} else if(DXRGoalMarker(a) != None) {
a.BindName = id;
a.bHidden = False;
}
GlowUp(a);
debug("DebugMarkKeyPosition "$a$ " ("$a.Location$") " $ id);
debug("DebugMarkKeyActor "$a$ " ("$a.Location$") " $ id);
actorDisplay = DeusExRootWindow(player().rootWindow).actorDisplay;
actorDisplay.SetViewClass(a.class);
actorDisplay.ShowLOS(false);
actorDisplay.ShowPos(true);
}
function DebugMarkKeyPosition(vector pos, coerce string id)
{
local ActorDisplayWindow actorDisplay;
local Actor a;
if( ! #defined(debug)) {
err("Don't call DebugMarkKeyPosition without debug mode! Add debug to the compiler_settings.default.json file");
return;
}

a = Spawn(class'DXRGoalMarker',,,pos);
DebugMarkKeyActor(a, id);
}
28 changes: 28 additions & 0 deletions DXRCore/DeusEx/Classes/DXRBase.uc
Original file line number Diff line number Diff line change
Expand Up @@ -489,6 +489,34 @@ simulated function MessageBoxClicked(int button, int callbackId) {
//OK = 2
}

//Returns true when you aren't in a menu, or in the intro, etc.
function bool InGame() {
#ifdef hx
return true;
#endif

if( player() == None )
return false;

if (player().InConversation()) {
return True;
}

if (None == DeusExRootWindow(player().rootWindow)) {
return False;
}

if (None == DeusExRootWindow(player().rootWindow).hud) {
return False;
}

if (!DeusExRootWindow(player().rootWindow).hud.isVisible()){
return False;
}

return True;
}

simulated function AddDXRCredits(CreditsWindow cw)
{
}
11 changes: 5 additions & 6 deletions DXRCore/DeusEx/Classes/DXRMenuSelectDifficulty.uc
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,7 @@ function BindControls(optional string action)
for( i=i; i < ArrayCount(f.difficulty_names); i++ ) {
if( f.difficulty_names[i] == "" ) continue;
EnumOption(f.difficulty_names[i], i, f.difficulty);
}
#ifndef hx
// TODO: menus for HX?
if(writing)
difficulty = f.SetDifficulty(f.difficulty).CombatDifficulty;
#endif
}// we write the difficulty and gamemode after setting the seed...

#ifdef injections
foreach f.AllActors(class'DXRAutosave', autosave) { break; }// need an object to access consts
Expand Down Expand Up @@ -125,6 +120,10 @@ function BindControls(optional string action)
}

if(writing) {
#ifndef hx
// we write the difficulty and gamemode after setting the seed, TODO: menus for HX?
difficulty = f.SetDifficulty(f.difficulty).CombatDifficulty;
#endif
if( action == "ADVANCED" ) NewGameSetup(difficulty);
else if( action == "MAXRANDO" ) {
f.ExecMaxRando();
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 @@ -86,7 +86,7 @@ function BindControls(optional string action)
NewMenuItem("Bingo Win", "How many completed lines to instantly win");
Slider(f.settings.bingo_win, 0, 12);

NewMenuItem("Bingo Scale", "How difficult should bingo goals be?");
NewMenuItem("Bingo Scale %", "How difficult should bingo goals be?");
Slider(f.bingo_scale, 0, 100);

NewMenuItem("Bingo Freespace", "Should the center be a Free Space, or even more Free Spaces");
Expand Down
6 changes: 3 additions & 3 deletions DXRCore/DeusEx/Classes/DXRVersion.uc
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@ simulated static function CurrentVersion(optional out int major, optional out in
{
major=2;
minor=5;
patch=2;
build=11;//build can't be higher than 99
patch=3;
build=6;//build can't be higher than 99
}

simulated static function string VersionString(optional bool full)
{
local int major,minor,patch,build;
local string status;

status = "";
status = "Beta";

if(status!="") {
status = " " $ status;
Expand Down
15 changes: 15 additions & 0 deletions DXRMapFixups/DeusEx/Classes/DXRFixupM02.uc
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ function PreFirstEntryMapFixes()
local #var(prefix)NanoKey k;
local CrateExplosiveSmall c;
local Terrorist nsf;
local #var(prefix)BoxSmall bs;
local #var(prefix)Keypad2 kp;
#ifdef injections
local #var(prefix)Newspaper np;
local class<#var(prefix)Newspaper> npClass;
Expand Down Expand Up @@ -51,6 +53,19 @@ function PreFirstEntryMapFixes()
npClass.static.SpawnInfoDevice(self,class'#var(prefix)NewspaperOpen',vectm(1700.929810,-519.988037,57.729870),rotm(0,0,0),'02_Newspaper06'); //Joe Greene article, table in room next to break room (near bathrooms)
npClass.static.SpawnInfoDevice(self,class'#var(prefix)NewspaperOpen',vectm(-1727.644775,2479.614990,1745.724976),rotm(0,0,0),'02_Newspaper06'); //Next to apartment(?) door on rooftops, near elevator

//Remove the small boxes in the sewers near the ladder so that bigger boxes don't shuffle into those spots
foreach AllActors(class'DeusExMover',d,'DrainGrate'){break;}
foreach d.RadiusActors(class'#var(prefix)BoxSmall',bs,800){bs.Destroy();}

//A switch in the sewer swimming path to allow backtracking
AddSwitch( vect(-1518.989136,278.541260,-439.973816), rot(0, 2768, 0), 'DrainGrate');

//A keypad in the sewer walking path to allow backtracking
kp = Spawn(class'Keypad2',,,vectm(-622.685,497.4295,-60.437), rotm(0,-49192,0));
kp.validCode="2577";
kp.bToggleLock=False;
kp.Event='DoorToWarehouse';

class'PlaceholderEnemy'.static.Create(self,vectm(782,-1452,48));
class'PlaceholderEnemy'.static.Create(self,vectm(1508,-1373,256));
class'PlaceholderEnemy'.static.Create(self,vectm(1814,-1842,48));
Expand Down
6 changes: 4 additions & 2 deletions DXRMapFixups/DeusEx/Classes/DXRFixupM04.uc
Original file line number Diff line number Diff line change
Expand Up @@ -170,8 +170,8 @@ function AnyEntryMapFixes()

switch (dxr.localURL)
{
#ifdef vanilla
case "04_NYC_HOTEL":
#ifdef vanilla
NYC_04_CheckPaulUndead();
if( ! dxr.flagbase.GetBool('PaulDenton_Dead') )
SetTimer(1, True);
Expand All @@ -182,8 +182,10 @@ function AnyEntryMapFixes()
// conversations are transient, so they need to be fixed in AnyEntry
FixConversationFlag(GetConversation('PaulAfterAttack'), 'M04RaidDone', true, 'PaulLeftHotel', true);
FixConversationFlag(GetConversation('PaulDuringAttack'), 'M04RaidDone', false, 'PaulLeftHotel', false);
break;
#endif
DeleteConversationFlag(GetConversation('FamilySquabbleWrapUpGilbertDead'), 'PlayerKilledRenton', false);
FixConversationFlag(GetConversation('SandraMadAtPlayer'), 'PlayerKilledRenton', true, 'AlwaysFalse', true);
break;

#ifdef vanillamaps
case "04_NYC_SMUG":
Expand Down
Loading

0 comments on commit fd0fd19

Please sign in to comment.