Skip to content
Snippets Groups Projects
Commit 0140ac59 authored by sphere's avatar sphere
Browse files

Merge remote-tracking branch 'udb/master'

parents cf892c3e 8aa5e9b5
Branches
No related tags found
No related merge requests found
**System requirements:** # Ultimate Doom Builder
## System requirements
- 2.4 GHz CPU or faster (multi-core recommended) - 2.4 GHz CPU or faster (multi-core recommended)
- Windows 7 or above - Windows 7 or above
- Graphics card with OpenGL 3.2 support - Graphics card with OpenGL 3.2 support
**Required software on Windows:** ### Required software on Windows
- [Microsoft .Net Framework 4.7.2](https://dotnet.microsoft.com/download/dotnet-framework/net472) - [Microsoft .Net Framework 4.7.2](https://dotnet.microsoft.com/download/dotnet-framework/net472)
**Building on Linux:** ## Building on Linux
These instructions are for Debian-based distros and were tested with Ubuntu 24.04 LTS and Arch.
These instructions are for Debian-based distros and were tested with Ubuntu 24.04 LTS. For others it should be similar.
__Note:__ this is experimental. None of the developers are using Linux as a desktop OS, so you're pretty much on your own if you encounter any problems with running the application. __Note:__ this is experimental. None of the main developers are using Linux as a desktop OS, so you're pretty much on your own if you encounter any problems with running the application.
- Install Mono. The `mono-complete` package from the Debian repo doesn't include `msbuild`, so you have to install `mono-complete` by following the instructions on the Mono project's website: https://www.mono-project.com/download/stable/#download-lin - Install Mono
- Install additional required packages: `sudo apt install make g++ git libx11-dev libxfixes-dev mesa-common-dev` - **Ubuntu:** The `mono-complete` package from the Debian repo doesn't include `msbuild`, so you have to install `mono-complete` by following the instructions on the Mono project's website: https://www.mono-project.com/download/stable/#download-lin
- Go to a directory of your choice and clone the repository (it'll automatically create an `UltimateZoneBuilder` directory in the current directory): `git clone https://github.com/jewalky/UltimateDoomBuilder.git` - **Arch:** mono (and msbuild which is also required) is in the *extra/* repo, which is enabled by default. `sudo pacman -S mono mono-msbuild`
- Install additional required packages
- **Ubuntu:** `sudo apt install make g++ git libx11-dev libxfixes-dev mesa-common-dev`
- **Arch:** `sudo pacman -S base-devel`
- If you're using X11 display manager you may need to install these packages: `libx11 libxfixes`
- If you are not using the proprietary nvidia driver you may need to install `mesa`
- Go to a directory of your choice and clone the repository (it'll automatically create an `UltimateZoneBuilder` directory in the current directory): `git clone https://git.do.srb2.org/STJr/UltimateZoneBuilder.git`
- Compile UZB: `cd UltimateZoneBuilder && make` - Compile UZB: `cd UltimateZoneBuilder && make`
- Run UZB: `cd Build && ./builder` - Run UZB: `cd Build && ./builder`
- Alternatively, to compile UZB in debug mode:
- Run `make BUILDTYPE=Debug` in the root project directory
- This includes a debug output terminal in the bottom panel
**Links:** **Links:**
- [SRB2MB thread](https://mb.srb2.org/addons/ultimate-zone-builder.6126/) - [SRB2MB thread](https://mb.srb2.org/addons/ultimate-zone-builder.6126/)
......
...@@ -283,6 +283,7 @@ namespace CodeImp.DoomBuilder.Controls ...@@ -283,6 +283,7 @@ namespace CodeImp.DoomBuilder.Controls
{ {
bool flag = false; bool flag = false;
#if !MONO_WINFORMS
if (Environment.OSVersion.Version.Major >= 6) if (Environment.OSVersion.Version.Major >= 6)
{ {
var r = new Reflector("System.Windows.Forms"); var r = new Reflector("System.Windows.Forms");
...@@ -313,6 +314,7 @@ namespace CodeImp.DoomBuilder.Controls ...@@ -313,6 +314,7 @@ namespace CodeImp.DoomBuilder.Controls
} }
else else
{ {
#endif
var fbd = new FolderBrowserDialog(); var fbd = new FolderBrowserDialog();
fbd.Description = this.Title; fbd.Description = this.Title;
fbd.SelectedPath = this.InitialDirectory; fbd.SelectedPath = this.InitialDirectory;
...@@ -320,7 +322,9 @@ namespace CodeImp.DoomBuilder.Controls ...@@ -320,7 +322,9 @@ namespace CodeImp.DoomBuilder.Controls
if (fbd.ShowDialog(new WindowWrapper(hWndOwner)) != DialogResult.OK) return false; if (fbd.ShowDialog(new WindowWrapper(hWndOwner)) != DialogResult.OK) return false;
ofd.FileName = fbd.SelectedPath; ofd.FileName = fbd.SelectedPath;
flag = true; flag = true;
#if !MONO_WINFORMS
} }
#endif
return flag; return flag;
} }
......
...@@ -530,10 +530,10 @@ namespace CodeImp.DoomBuilder.UDBScript.Wrapper ...@@ -530,10 +530,10 @@ namespace CodeImp.DoomBuilder.UDBScript.Wrapper
/// <param name="fields">UniFields of the map element</param> /// <param name="fields">UniFields of the map element</param>
internal override void AddManagedFields(IDictionary<string, object> fields) internal override void AddManagedFields(IDictionary<string, object> fields)
{ {
if (thing.ScaleX != 1.0) if (!fields.ContainsKey("scalex") && thing.ScaleX != 1.0)
fields.Add("scalex", thing.ScaleX); fields.Add("scalex", thing.ScaleX);
if (thing.ScaleY != 1.0) if (!fields.ContainsKey("scaley") && thing.ScaleY != 1.0)
fields.Add("scaley", thing.ScaleY); fields.Add("scaley", thing.ScaleY);
} }
...@@ -549,12 +549,28 @@ namespace CodeImp.DoomBuilder.UDBScript.Wrapper ...@@ -549,12 +549,28 @@ namespace CodeImp.DoomBuilder.UDBScript.Wrapper
switch(pname) switch(pname)
{ {
case "scalex": case "scalex":
if (newvalue == null) thing.SetScale(1.0, thing.ScaleY); if (newvalue == null)
else thing.SetScale((double)newvalue, thing.ScaleY); {
thing.SetScale(1.0, thing.ScaleY);
UniFields.RemoveField(fields, "scalex");
}
else
{
thing.SetScale((double)newvalue, thing.ScaleY);
UniFields.SetFloat(fields, "scalex", (double)newvalue);
}
return true; return true;
case "scaley": case "scaley":
if(newvalue == null) thing.SetScale(thing.ScaleX, 1.0); if (newvalue == null)
else thing.SetScale(thing.ScaleX, (double)newvalue); {
thing.SetScale(thing.ScaleX, 1.0);
UniFields.RemoveField(fields, "scaley");
}
else
{
thing.SetScale(thing.ScaleX, (double)newvalue);
UniFields.SetFloat(fields, "scaley", (double)newvalue);
}
return true; return true;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment