Skip to content

Commit

Permalink
PWAD Mode: IWAD now acts as a universal IWAD and PWAD.
Browse files Browse the repository at this point in the history
  • Loading branch information
Lemon-King committed Jun 9, 2024
1 parent 20fb4ab commit 9f54f28
Show file tree
Hide file tree
Showing 28 changed files with 319 additions and 140 deletions.
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ HXDD has a minimum version requirement with [GZDOOM 4.11+](https://zdoom.org/dow

Download HXDD from [Releases](https://github.com/Lemon-King/HXDD/releases) and unzip it into its own folder.

## Usage
## Setup

HXDD will make use of data from GZDOOM, Heretic, Hexen, Hexen's expansion Deathkings, and optionally Hexen II plus its Expansions.

Expand All @@ -89,7 +89,7 @@ HXDD will make use of data from GZDOOM, Heretic, Hexen, Hexen's expansion Deathk

Your selections will be stored for the next time you run it.

## Hexen II Usage
## Hexen II PAK Support

When using Hexen II PAK files with HXDD you will need [Noesis by Rich Whitehouse](https://richwhitehouse.com/index.php?content=inc_projects.php&showproject=91).

Expand All @@ -99,6 +99,9 @@ Select the PAK files in the application and ensure Enable Hexen II is checked.

HXDD will use Noesis to open PAK files and export model data for use with GZDOOM.

## DOOM Compatibility「PWAD Mode」
You can also use hxdd.ipk3 as a PWAD with DOOM, DOOM II, and [WadSmoosh](https://jp.itch.io/wadsmoosh).

## Screenshots & Video
<a href="https://i.imgur.com/8W0VM5p.png">
<img src="https://i.imgur.com/8W0VM5pm.png" alt="Logo" width="475" height="auto">
Expand Down
File renamed without changes.
7 changes: 7 additions & 0 deletions resources/assets/filter/game-doom/mapinfo.hxdd
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
include gameinfo/game-doom/doomednums.mapinfo
include gameinfo/game-doom/spawnnums.mapinfo

GameInfo {
AddPlayerClasses = "HXDDHereticPlayer", "HXDDFighterPlayer", "HXDDClericPlayer", "HXDDMagePlayer", "HX2PaladinPlayer", "HX2CrusaderPlayer", "HX2NecromancerPlayer","HX2AssassinPlayer", "HX2SuccubusPlayer"
AddEventHandlers = "HXDDWorldEventHandler", "PlayerSheetEventHandler"
}
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
include gameinfo/doomednums.mapinfo
include gameinfo/spawnnums.mapinfo
include gameinfo/game-raven/doomednums.mapinfo
include gameinfo/game-raven/spawnnums.mapinfo

include mapinfo/heretic.mapinfo
include mapinfo/hexen.mapinfo
Expand Down
26 changes: 26 additions & 0 deletions resources/assets/filter/game-raven/menudef.hxdd
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// Main Menu
DEFAULTLISTMENU
{
Font "BigFontX", "DarkGray"
LineSpacing 20

Selector "M_SLCTR1", -28, -1
}

LISTMENU "MainMenu" {
StaticPatch 88, 2, "assets/ui/M_HXDD.png"
StaticPatch 68, 68, "KGZ1A0"
StaticPatch 250, 68, "KGZ1A0"
StaticPatch 58, 2, "assets/ui/M_UI_ORB.png"
StaticPatch 240, 2, "assets/ui/M_UI_ORB.png"
Position 110, 66

TextItem "$MNU_NEWGAME", "n", "ZFPreGameSetup"
TextItem "$MNU_OPTIONS", "o", "OptionsMenu"
TextItem "$MNU_GAMEFILES", "g", "GameFilesMenu"
TextItem "$MNU_INFO", "i", "ReadThisMenu"
TextItem "$MNU_QUITGAME", "q", "QuitMenu"

font "SMALLFONT", "DarkGray"
StaticText -52, 190, "$HXDD_BUILD_VERSION"
}
12 changes: 12 additions & 0 deletions resources/assets/mapinfo/title.mapinfo
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
defaultmap
{
enableskyboxao
}

// Episode 1

map TITLEMAP lookup "HXDD: A Heretic & Hexen Wad Merger"
{
sky1 = "SKY1"
music = "MUS_TITL"
}
27 changes: 0 additions & 27 deletions resources/assets/menudef.hxdd → resources/assets/menudef.shared
Original file line number Diff line number Diff line change
@@ -1,30 +1,3 @@
// Main Menu
DEFAULTLISTMENU
{
Font "BigFontX", "DarkGray"
LineSpacing 20

Selector "M_SLCTR1", -28, -1
}

LISTMENU "MainMenu" {
StaticPatch 88, 2, "assets/ui/M_HXDD.png"
StaticPatch 68, 68, "KGZ1A0"
StaticPatch 250, 68, "KGZ1A0"
StaticPatch 58, 2, "assets/ui/M_UI_ORB.png"
StaticPatch 240, 2, "assets/ui/M_UI_ORB.png"
Position 110, 66

TextItem "$MNU_NEWGAME", "n", "ZFPreGameSetup"
TextItem "$MNU_OPTIONS", "o", "OptionsMenu"
TextItem "$MNU_GAMEFILES", "g", "GameFilesMenu"
TextItem "$MNU_INFO", "i", "ReadThisMenu"
TextItem "$MNU_QUITGAME", "q", "QuitMenu"

font "SMALLFONT", "DarkGray"
StaticText -52, 190, "$HXDD_BUILD_VERSION"
}

AddOptionMenu "OptionsMenu"
{
StaticText ""
Expand Down
39 changes: 39 additions & 0 deletions resources/assets/playersheets/clericplayer.playersheet
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,52 @@
"experience": [911,2160,5062,9787,20250,38475,70200,116100,148500,202500,202500],
"health": [65,75,5,10,3,150],
"mana": [88,98,7,10,2,300],
"ac": [10, 10, 25, 5, 20],
"stats": {
"strength": [12,15],
"intelligence": [10,13],
"wisdom": [15,18],
"dexterity": [6,10]
},
"xgame": {
"Fist": "Mana1",
"Chainsaw": "CWeaponPiece3",
"Pistol": "Mana1",
"Shotgun": "CWeapStaff",
"SuperShotgun": "CWeapFlame",
"Chaingun": "CWeapStaff",
"RocketLauncher": "CWeaponPiece2",
"PlasmaRifle": "CWeapFlame",
"BFG9000": "CWeaponPiece1",

"Clip": "none",
"ClipBox": "Mana3",
"Shell": "Mana1",
"ShellBox": "Mana3",
"RocketAmmo": "Mana2",
"RocketBox": "Mana3",
"Cell": "Mana2",
"CellPack": "Mana3",

"HealthBonus": "none",
"Stimpack": "CrystalVial",
"Medikit": "ArtiHealth",

"ArmorBonus": "ArtiPoisonBag",
"GreenArmor": "PlatinumHelm,MeshArmor",
"BlueArmor": "AmuletOfWarding,FalconShield",

"InvulnerabilitySphere": "ArtiInvulnerability2",
"Soulsphere": "ArtiSuperHealth",
"Megasphere": "ArtiBoostArmor",
"BlurSphere": "ArtiPork,ArtiTeleport,ArtiTeleportOther,ArtiBlastRadius",
"RadSuit": "ArtiSpeedBoots",
"Infrared": "ArtiTorch",
"Allmap": "SuperMap",
"Berserk": "ArtiDarkServant",

"Backpack": "ArtiBoostMana",

"GoldWandAmmo": "none",
"GoldWandHefty": "Mana1",

Expand Down
39 changes: 39 additions & 0 deletions resources/assets/playersheets/fighterplayer.playersheet
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,52 @@
"experience": [945,2240,5250,10150,21000,39900,72800,120400,154000,210000,210000],
"health": [70,85,8,13,4,150],
"mana": [84,94,6,9,1,300],
"ac": [15, 25, 20, 15, 5],
"stats": {
"strength": [15,18],
"intelligence": [6,10],
"wisdom": [6,10],
"dexterity": [10,13],
},
"xgame": {
"Fist": "Mana1",
"Chainsaw": "FWeaponPiece3",
"Pistol": "Mana1",
"Shotgun": "FWeapAxe",
"SuperShotgun": "FWeapHammer",
"Chaingun": "FWeapAxe",
"RocketLauncher": "FWeaponPiece2",
"PlasmaRifle": "FWeapHammer",
"BFG9000": "FWeaponPiece1",

"Clip": "none",
"ClipBox": "Mana3",
"Shell": "Mana1",
"ShellBox": "Mana3",
"RocketAmmo": "Mana2",
"RocketBox": "Mana3",
"Cell": "Mana2",
"CellPack": "Mana3",

"HealthBonus": "none",
"Stimpack": "CrystalVial",
"Medikit": "ArtiHealth",

"ArmorBonus": "ArtiPoisonBag",
"GreenArmor": "AmuletOfWarding,PlatinumHelm",
"BlueArmor": "FalconShield,MeshArmor",

"InvulnerabilitySphere": "ArtiInvulnerability2",
"Soulsphere": "ArtiSuperHealth",
"Megasphere": "ArtiBoostArmor",
"BlurSphere": "ArtiPork,ArtiTeleport,ArtiTeleportOther,ArtiBlastRadius",
"RadSuit": "ArtiSpeedBoots",
"Infrared": "ArtiTorch",
"Allmap": "SuperMap",
"Berserk": "ArtiDarkServant",

"Backpack": "ArtiBoostMana",

"GoldWandAmmo": "none",
"GoldWandHefty": "Mana1",

Expand Down
20 changes: 19 additions & 1 deletion resources/assets/playersheets/hereticplayer.playersheet
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"experience": [675,1600,3750,7250,15000,28500,52000,86000,110000,150000,150000],
"health": [65,75,5,10,3,150],
"mana": [80,90,5,10,3,200],
"ac": [10, 10, 25, 5, 15],
"stats": {
"strength": [6,10],
"intelligence": [10,13],
Expand All @@ -33,7 +34,24 @@
"Cell": "SkullRodAmmo,MaceAmmo",
"CellPack": "SkullRodHefty,MaceHefty",

"Backpack": "BagOfHolding",
"HealthBonus": "none",
"Stimpack": "CrystalVial",
"Medikit": "ArtiHealth",

"ArmorBonus": "ArtiTimeBomb",
"GreenArmor": "SilverShield",
"BlueArmor": "EnchantedShield",

"InvulnerabilitySphere": "ArtiInvulnerability",
"Soulsphere": "ArtiSuperHealth",
"Megasphere": "ArtiTomeOfPower",
"BlurSphere": "ArtiEgg,ArtiInvisibility",
"RadSuit": "ArtiTeleport",
"Infrared": "ArtiTorch",
"Allmap": "SuperMap",
"Berserk": "ArtiTomeOfPower",

"Backpack": "ArtiBoostMana",

"FWeapAxe": "Gauntlets",
"CWeapStaff": "Crossbow",
Expand Down
39 changes: 39 additions & 0 deletions resources/assets/playersheets/mageplayer.playersheet
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,52 @@
"experience": [823,1952,4575,8845,18300,34770,63440,104920,134200,183000,183000],
"health": [65,75,5,10,3,150],
"mana": [96,106,10,12,4,300],
"ac": [5, 5, 15, 10, 25],
"stats": {
"strength": [6,10],
"intelligence": [15,18],
"wisdom": [10,13],
"dexterity": [8,12]
},
"xgame": {
"Fist": "Mana1",
"Chainsaw": "MWeaponPiece3",
"Pistol": "Mana1",
"Shotgun": "MWeapFrost",
"SuperShotgun": "MWeapLightning",
"Chaingun": "MWeapFrost",
"RocketLauncher": "MWeaponPiece2",
"PlasmaRifle": "MWeapLightning",
"BFG9000": "MWeaponPiece1",

"Clip": "none",
"ClipBox": "Mana3",
"Shell": "Mana1",
"ShellBox": "Mana3",
"RocketAmmo": "Mana2",
"RocketBox": "Mana3",
"Cell": "Mana2",
"CellPack": "Mana3",

"HealthBonus": "none",
"Stimpack": "CrystalVial",
"Medikit": "ArtiHealth",

"ArmorBonus": "ArtiPoisonBag",
"GreenArmor": "MeshArmor,PlatinumHelm",
"BlueArmor": "FalconShield,AmuletOfWarding",

"InvulnerabilitySphere": "ArtiInvulnerability2",
"Soulsphere": "ArtiSuperHealth",
"Megasphere": "ArtiBoostArmor",
"BlurSphere": "ArtiPork,ArtiTeleport,ArtiTeleportOther,ArtiBlastRadius",
"RadSuit": "ArtiSpeedBoots",
"Infrared": "ArtiTorch",
"Allmap": "SuperMap",
"Berserk": "ArtiDarkServant",

"Backpack": "ArtiBoostMana",

"GoldWandAmmo": "none",
"GoldWandHefty": "Mana1",

Expand Down
1 change: 1 addition & 0 deletions resources/assets/playersheets/template.playersheet
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"experience": [675,1600,3750,7250,15000,28500,52000,86000,110000,150000,150000],
"health": [65,75,5,10,3,150],
"mana": [80,90,5,10,3,200],
"ac": [10, 10, 25, 5, 20],
"stats": {
"strength": [6,10],
"intelligence": [10,13],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ class GameModeCompat: Inventory {
Super.PostBeginPlay();

int cvarGameMode = LemonUtil.GetOptionGameMode();
if (cvarGameMode == GAME_Heretic) {
SetDamageScale_Heretic();
SetPlayerSize_Heretic();
if (LemonUtil.IsGameType(GAME_Doom) || cvarGameMode == GAME_Heretic) {
SetDamageScale_Standard();
SetPlayerSize_Standard();
} else if (cvarGameMode == GAME_Hexen) {
SetDamageScale_Hexen();
SetPlayerSize_Hexen();
Expand All @@ -41,21 +41,17 @@ class GameModeCompat: Inventory {
}
}

void SetDamageScale_Heretic() {
if (owner.player.mo is "DoomPlayer" || owner.player.mo is "HereticPlayer" || owner.player.mo is "HXDDHexenIIPlayerPawn") {
DamageMult = 1.0;
} else {
void SetDamageScale_Standard() {
if (!(owner.player.mo is "DoomPlayer" || owner.player.mo is "HereticPlayer" || owner.player.mo is "HXDDHexenIIPlayerPawn")) {
DamageMult = 0.5;
}
}
void SetDamageScale_Hexen() {
if (owner.player.mo is "DoomPlayer" || owner.player.mo is "HereticPlayer" || owner.player.mo is "HXDDHexenIIPlayerPawn") {
DamageMult = 1.5;
} else {
DamageMult = 1.0;
}
}
void SetPlayerSize_Heretic() {
void SetPlayerSize_Standard() {
PlayerPawn p = PlayerPawn(owner.player.mo);
if (p.Height == 56) {
return;
Expand Down
Loading

0 comments on commit 9f54f28

Please sign in to comment.