Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions src/Addons/Addons.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
<EmbeddedResource Include="Assets\Duke3D\duke64.jpg" />
<EmbeddedResource Include="Assets\Duke3D\dukedc.jpg" />
<EmbeddedResource Include="Assets\Duke3D\dukewt.jpg" />
<EmbeddedResource Include="Assets\Duke3D\dukezh.jpg" />
<EmbeddedResource Include="Assets\Duke3D\nwinter.jpg" />
<EmbeddedResource Include="Assets\Fury\aftershock.jpg" />
<EmbeddedResource Include="Assets\Fury\fury.jpg" />
Expand Down
Binary file added src/Addons/Assets/Duke3D/dukezh.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
40 changes: 39 additions & 1 deletion src/Addons/Providers/OriginalCampaignsProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,6 @@ Duke Nukem must travel to the North Pole in order to stop the brainwashed Santa
Description = """
**Duke Nukem 64** is the Nintendo 64 port of the first-person shooter MS-DOS/PC game Duke Nukem 3D.
The Nintendo 64 port features significant changes from the PC version, including modified and expanded levels and a different set of weapons.
The port also includes a four-player deathmatch mode and a two-player co-op mode via split-screen.
The game's mature themes have been minimized to satisfy Nintendo's adult content standards.
""",
SupportedGame = new(GameEnum.Duke64),
Expand All @@ -296,6 +295,45 @@ The game's mature themes have been minimized to satisfy Nintendo's adult content
});
}

if (dGame.IsDukeZHInstalled)
{
var duke64Id = nameof(GameEnum.DukeZeroHour).ToLower();
AddonId version = new(duke64Id, null);

campaigns.Add(version, new DukeCampaign()
{
AddonId = version,
Type = AddonTypeEnum.Official,
Title = "Duke Nukem Zero Hour",
GridImageHash = GameEnum.DukeZeroHour.GetUniqueHash(),
Author = "Eurocom",
ReleaseDate = new(1999, 08, 31),
Description = """
**Duke Nukem: Zero Hour** is a 1999 third-person shooter game in the Duke Nukem series,
developed by Eurocom and published by GT Interactive for the Nintendo 64.

The plot revolves around time traveling aliens attempting to alter the course of history
by eliminating Duke's ancestors.
""",
SupportedGame = new(GameEnum.DukeZeroHour),
RequiredFeatures = null,
PathToFile = null,
DependentAddons = null,
IncompatibleAddons = null,
MainCon = null,
AdditionalCons = null,
MainDef = null,
AdditionalDefs = null,
RTS = null,
StartMap = null,
PreviewImageHash = null,
IsUnpacked = false,
Executables = null,
IsFavorite = _config.FavoriteAddons.Contains(version),
Options = null
});
}

return campaigns;
}

Expand Down
7 changes: 7 additions & 0 deletions src/Avalonia.Desktop/Controls/CampaignsControl.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,13 @@ BitmapsCache bitmapsCache
InitializeComponent();

_supportedPorts = portsProvider.GetPortsThatSupportGame(viewModel.Game.GameEnum);

if (viewModel.Game.GameEnum is GameEnum.Duke3D)
{
var zhPorts = portsProvider.GetPortsThatSupportGame(GameEnum.DukeZeroHour);
_supportedPorts = [.. _supportedPorts, .. zhPorts];
}

_portsProvider = portsProvider;
_viewModel = viewModel;
_bitmapsCache = bitmapsCache;
Expand Down
3 changes: 3 additions & 0 deletions src/Avalonia.Desktop/Misc/BitmapsCache.cs
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,9 @@ private void InitOfficialCampaignsCache()
using var duke64 = ImageHelper.FileNameToStream("Duke3D.duke64.jpg", addonsAss);
_ = TryAddGridToCache(GameEnum.Duke64.GetUniqueHash(), duke64);

using var dukeZH = ImageHelper.FileNameToStream("Duke3D.dukezh.jpg", addonsAss);
_ = TryAddGridToCache(GameEnum.DukeZeroHour.GetUniqueHash(), dukeZH);

using var dukeDc = ImageHelper.FileNameToStream("Duke3D.dukedc.jpg", addonsAss);
_ = TryAddGridToCache(DukeAddonEnum.DukeDC.GetUniqueHash(), dukeDc);

Expand Down
Loading
Loading