1.0 release:

- Swap around some assets and code with Doom Tournament.
   - Searchlight moved to here.
   - Computer map and Armor bonus moved to DT.
   - Armor absorption priority code moved to DT.
 - Added Unreal crosshairs.
 - Fix incorrect Autocannon flash color.
 - Ported over Translocator ally telefrag prevention.
 - Fixed razor blades emitting no effects when hitting a non-bleeding enemy.
 - Misc. cleanup.
This commit is contained in:
Marisa the Magician 2019-10-21 22:09:50 +02:00
commit 28d0912eda
57 changed files with 49 additions and 109 deletions

View file

@ -3,8 +3,7 @@
The Unreal 1 counterpart to Doom Tournament. Adds Unreal 1 weapons and items The Unreal 1 counterpart to Doom Tournament. Adds Unreal 1 weapons and items
(including dummied out stuff and others). (including dummied out stuff and others).
This mod requires GZDoom g4.3pre-125-g021e548db or later, and runs on top of This mod requires GZDoom 4.2.3 or later, and runs on top of Doom Tournament.
Doom Tournament (currently the devel branch is required).
## Currently Implemented ## Currently Implemented
@ -74,12 +73,12 @@ Doom Tournament (currently the devel branch is required).
## In progress ## In progress
- Final polishing - N/A, this is the 1.0 release.
## Planned ## Planned
- Shifted to a 1.1 update: - Shifted to a 1.1 update:
- Impaler "slice" animation for melee alt - Impaler "slice" animation for melee alt.
- Alternate flamethrower secondary that behaves more like the Unreal Bible - Alternate flamethrower secondary that behaves more like the Unreal Bible
describes (unlit blobs at a rate of 4 per second that catch on fire with describes (unlit blobs at a rate of 4 per second that catch on fire with
explosions/lava/etc). explosions/lava/etc).
@ -88,13 +87,4 @@ Doom Tournament (currently the devel branch is required).
- Actual Bonesaw? - Actual Bonesaw?
- Implement ASMD behavior described in the Unreal novels (highly destructive - Implement ASMD behavior described in the Unreal novels (highly destructive
green beam that bounces off mirrors and water). green beam that bounces off mirrors and water).
- Redo Quadshot animations (including partial reloads).
- RTNP add-on
- Monster pack (someday)
- Map pack (maybe? who knows)
## Known bugs
- The Quadshot will visibly load 4 shells even when there's less available,
this is a limitation of the animation and I'll have to make alternate ones
for it eventually.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 803 B

BIN
brightmaps/JTranslator1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View file

@ -440,16 +440,9 @@ Object StarterImpalerBolt
Frame "PBLT" { light "IBOLTLIGHT" } Frame "PBLT" { light "IBOLTLIGHT" }
} }
PointLight UCOMPLIGHT
{
Color 0.3 1.0 0.2
Size 12
Offset 0 8 0
Attenuate 1
}
Object UAllMap Object UAllMap
{ {
Frame "PMAP" { light "UCOMPLIGHT" } Frame "TRNS" { light "UTCOMPLIGHT" }
} }
// Shaders / Brightmaps // Shaders / Brightmaps
@ -538,8 +531,11 @@ Brightmap Texture "models/JEightB1.png"
} }
HardwareShader Texture "models/JFlashl1.png" HardwareShader Texture "models/JFlashl1.png"
{ {
Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Shader "shaders/glsl/AmbientGlow.fp"
Texture "brighttex" "brightmaps/JFlashl1.png" }
HardwareShader Texture "models/JBigFlash1.png"
{
Shader "shaders/glsl/AmbientGlow.fp"
} }
HardwareShader Texture "models/JImpale1_.png" HardwareShader Texture "models/JImpale1_.png"
{ {
@ -858,38 +854,12 @@ HardwareShader Texture "models/FlametFX.png"
{ {
Shader "shaders/glsl/FlametFX.fp" Shader "shaders/glsl/FlametFX.fp"
} }
HardwareShader Texture "models/shield.png" HardwareShader Texture "models/JTranslator1.png"
{
Shader "shaders/glsl/AmbientGlow.fp"
}
HardwareShader Texture "models/JAllMap1_a00.png"
{ {
Shader "shaders/glsl/AmbientGlow_Brightmapped.fp" Shader "shaders/glsl/AmbientGlow_Brightmapped.fp"
Texture "brighttex" "brightmaps/JAllMap1_a00.png" Texture "brighttex" "brightmaps/JTranslator1.png"
}
HardwareShader Texture "models/JAllMap1_a01.png"
{
Shader "shaders/glsl/AmbientGlow_Brightmapped.fp"
Texture "brighttex" "brightmaps/JAllMap1_a01.png"
}
HardwareShader Texture "models/JAllMap1_a02.png"
{
Shader "shaders/glsl/AmbientGlow_Brightmapped.fp"
Texture "brighttex" "brightmaps/JAllMap1_a02.png"
}
HardwareShader Texture "models/JAllMap1_a03.png"
{
Shader "shaders/glsl/AmbientGlow_Brightmapped.fp"
Texture "brighttex" "brightmaps/JAllMap1_a03.png"
}
HardwareShader Texture "models/JAllMap2.png"
{
Shader "shaders/glsl/AmbientGlow.fp"
}
HardwareShader Texture "models/JAllMap3.png"
{
Shader "shaders/glsl/AmbientGlow.fp"
} }
// PP shaders // PP shaders
HardwareShader PostProcess scene HardwareShader PostProcess scene
{ {

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

View file

@ -213,7 +213,6 @@ M_MSNOFLOOR = "Cannot deploy Sentry at this height.";
M_MSNOFLAT = "Cannot deploy Sentry on such a steep slope."; M_MSNOFLAT = "Cannot deploy Sentry on such a steep slope.";
M_NSTOOFAR = "Cannot recall Sentry from this distance."; M_NSTOOFAR = "Cannot recall Sentry from this distance.";
M_FFNOROOM = "No room to activate Force Field."; M_FFNOROOM = "No room to activate Force Field.";
M_ISELECT = "%s selected.";
S_MINHUD = "Health %d Score %d Ammo %d"; S_MINHUD = "Health %d Score %d Ammo %d";
S_MINHUD2 = "Health %d Score %d Ammo %d/%d"; S_MINHUD2 = "Health %d Score %d Ammo %d/%d";
/* Menus */ /* Menus */
@ -463,7 +462,6 @@ M_MSNOFLOOR = "No se puede colocar la Torreta a esta altura.";
M_MSNOFLAT = "No se puede colocar la Torreta en una cuesta tan inclinada."; M_MSNOFLAT = "No se puede colocar la Torreta en una cuesta tan inclinada.";
M_NSTOOFAR = "No se puede retirar la Torreta desde esta distancia."; M_NSTOOFAR = "No se puede retirar la Torreta desde esta distancia.";
M_FFNOROOM = "No hay espacio para activar el Campo de Fuerza."; M_FFNOROOM = "No hay espacio para activar el Campo de Fuerza.";
M_ISELECT = "Seleccionado %s.";
S_MINHUD = "Salud %d Puntuación %d Munición %d"; S_MINHUD = "Salud %d Puntuación %d Munición %d";
S_MINHUD2 = "Salud %d Puntuación %d Munición %d/%d"; S_MINHUD2 = "Salud %d Puntuación %d Munición %d/%d";
/* Menus */ /* Menus */

View file

@ -69,22 +69,6 @@ Model "ASMDBall"
FrameIndex TAZB A 0 0 FrameIndex TAZB A 0 0
} }
/*Model "ASMDExpl"
{
Path "models"
Model 0 "TazerExpl_d.3d"
Skin 0 "AsmdBeam.png"
Scale 0.8 0.8 0.96
DONTCULLBACKFACES
FrameIndex TAZB A 0 0
FrameIndex TAZB B 0 1
FrameIndex TAZB C 0 2
FrameIndex TAZB D 0 3
FrameIndex TAZB E 0 4
FrameIndex TAZB F 0 5
}*/
Model "ASMDBeamRing" Model "ASMDBeamRing"
{ {
Path "models" Path "models"

View file

@ -809,11 +809,11 @@ Model "UAllMap"
AngleOffset 90 AngleOffset 90
SurfaceSkin 0 0 "JAllMap1_a00.png" SurfaceSkin 0 0 "JAllMap1_a00.png"
FrameIndex MDET A 0 0 FrameIndex TRNS A 0 0
SurfaceSkin 0 0 "JAllMap1_a01.png" SurfaceSkin 0 0 "JAllMap1_a01.png"
FrameIndex MDET B 0 0 FrameIndex TRNS B 0 0
SurfaceSkin 0 0 "JAllMap1_a02.png" SurfaceSkin 0 0 "JAllMap1_a02.png"
FrameIndex MDET C 0 0 FrameIndex TRNS C 0 0
SurfaceSkin 0 0 "JAllMap1_a03.png" SurfaceSkin 0 0 "JAllMap1_a03.png"
FrameIndex MDET D 0 0 FrameIndex TRNS D 0 0
} }

BIN
models/BigFlash_a.3d Normal file

Binary file not shown.

BIN
models/BigFlash_d.3d Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

BIN
models/JBigFlash1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
models/JTranslator1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
models/TranslatorMesh_a.3d Normal file

Binary file not shown.

BIN
models/TranslatorMesh_d.3d Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Binary file not shown.

View file

@ -218,6 +218,7 @@ voice/activate voicesnd
univis/toggle invisibl univis/toggle invisibl
lite/pickup fshlite1
lite/off fshlite2 lite/off fshlite2
scuba/stop scubada1 scuba/stop scubada1

BIN
sounds/FSHLITE1.ogg Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -1,2 +1 @@
Sprite "TAZBA0",1,1{} Sprite "TAZBA0",1,1{}
Sprite "RNGXA0",1,1{}

5
xhairs.txt Normal file
View file

@ -0,0 +1,5 @@
8 "Unreal Crosshair 1"
9 "Unreal Crosshair 2"
10 "Unreal Crosshair 3"
11 "Unreal Crosshair 4"
12 "Unreal Crosshair 5"

View file

@ -1,4 +1,4 @@
version "4.3" version "4.2.2"
#include "zscript/unrealcommon.zsc" #include "zscript/unrealcommon.zsc"
#include "zscript/dispersionpistol.zsc" #include "zscript/dispersionpistol.zsc"

View file

@ -169,7 +169,7 @@ Class SMiniGun : UnrealWeapon
if ( weap.Ammo1.Amount <= 0 ) return; if ( weap.Ammo1.Amount <= 0 ) return;
if ( !bAlt && !weap.DepleteAmmo(weap.bAltFire,true,1) ) return; if ( !bAlt && !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
invoker.FireEffect(); invoker.FireEffect();
UTMainHandler.DoFlash(self,Color(32,0,0,255),1); UTMainHandler.DoFlash(self,Color(32,255,255,0),1);
A_QuakeEx(2,2,2,bAlt?5:3,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollintensity:0.12); A_QuakeEx(2,2,2,bAlt?5:3,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollintensity:0.12);
A_PlaySound(bAlt?"smini/altfire":"smini/fire",CHAN_WEAPON); A_PlaySound(bAlt?"smini/altfire":"smini/fire",CHAN_WEAPON);
A_AlertMonsters(); A_AlertMonsters();

View file

@ -164,6 +164,8 @@ Class RazorBlade : Actor
} }
Goto Spawn; Goto Spawn;
Death: Death:
TNT1 A 0 A_RazorHit();
XDeath:
TNT1 A 1 A_StopSound(CHAN_VOICE); TNT1 A 1 A_StopSound(CHAN_VOICE);
Stop; Stop;
} }

View file

@ -1,31 +1,8 @@
Class UnrealArmor : UTArmor Class UnrealArmor : UTArmor
{ {
int priority;
Property AbsorptionPriority : priority;
Default Default
{ {
-INVENTORY.ALWAYSPICKUP; -INVENTORY.ALWAYSPICKUP;
UnrealArmor.AbsorptionPriority 0;
}
override void AttachToOwner( Actor other )
{
Super.AttachToOwner(other);
// find last armor that's better than us
Inventory found = null;
for ( Inventory i=other.Inv; i; i=i.Inv )
{
if ( !(i is 'UnrealArmor') || (i == self) || (UnrealArmor(i).priority < priority) ) continue;
found = i;
}
if ( !found ) return;
// place ourselves right after it
Inventory saved = found.Inv;
found.Inv = self;
other.Inv = Inv;
Inv = saved;
} }
} }
@ -38,7 +15,7 @@ Class UArmor : UnrealArmor
Inventory.MaxAmount 100; Inventory.MaxAmount 100;
Inventory.InterHubAmount 100; Inventory.InterHubAmount 100;
UTArmor.ArmorAbsorption 90; UTArmor.ArmorAbsorption 90;
UnrealArmor.AbsorptionPriority 7; UTArmor.AbsorptionPriority 7;
Inventory.PickupMessage "$I_UARMOR"; Inventory.PickupMessage "$I_UARMOR";
Inventory.PickupSound "misc/u1armor"; Inventory.PickupSound "misc/u1armor";
Inventory.Icon "I_Armor"; Inventory.Icon "I_Armor";
@ -60,7 +37,7 @@ Class AsbestosSuit : UnrealArmor
Inventory.MaxAmount 50; Inventory.MaxAmount 50;
Inventory.InterHubAmount 50; Inventory.InterHubAmount 50;
UTArmor.ArmorAbsorption 50; UTArmor.ArmorAbsorption 50;
UnrealArmor.AbsorptionPriority 6; UTArmor.AbsorptionPriority 6;
Inventory.PickupMessage "$I_ASBSUIT"; Inventory.PickupMessage "$I_ASBSUIT";
Inventory.PickupSound "misc/suit"; Inventory.PickupSound "misc/suit";
Inventory.Icon "I_Suit"; Inventory.Icon "I_Suit";
@ -97,7 +74,7 @@ Class ToxinSuit : UnrealArmor
Inventory.MaxAmount 50; Inventory.MaxAmount 50;
Inventory.InterHubAmount 50; Inventory.InterHubAmount 50;
UTArmor.ArmorAbsorption 50; UTArmor.ArmorAbsorption 50;
UnrealArmor.AbsorptionPriority 6; UTArmor.AbsorptionPriority 6;
Inventory.PickupMessage "$I_TOXSUIT"; Inventory.PickupMessage "$I_TOXSUIT";
Inventory.PickupSound "misc/suit"; Inventory.PickupSound "misc/suit";
Inventory.Icon "I_TSuit"; Inventory.Icon "I_TSuit";
@ -134,7 +111,7 @@ Class KevlarSuit : UnrealArmor
Inventory.MaxAmount 100; Inventory.MaxAmount 100;
Inventory.InterHubAmount 100; Inventory.InterHubAmount 100;
UTArmor.ArmorAbsorption 80; UTArmor.ArmorAbsorption 80;
UnrealArmor.AbsorptionPriority 6; UTArmor.AbsorptionPriority 6;
Inventory.PickupMessage "$I_KEVSUIT"; Inventory.PickupMessage "$I_KEVSUIT";
Inventory.PickupSound "misc/suit"; Inventory.PickupSound "misc/suit";
Inventory.Icon "I_Kevlar"; Inventory.Icon "I_Kevlar";
@ -184,7 +161,7 @@ Class ShieldBelt : UnrealArmor
Inventory.MaxAmount 100; Inventory.MaxAmount 100;
Inventory.InterHubAmount 100; Inventory.InterHubAmount 100;
UTArmor.ArmorAbsorption 100; UTArmor.ArmorAbsorption 100;
UnrealArmor.AbsorptionPriority 10; UTArmor.AbsorptionPriority 10;
Inventory.PickupMessage "$I_SHIELDBELT"; Inventory.PickupMessage "$I_SHIELDBELT";
Inventory.PickupSound "belt/pickup"; Inventory.PickupSound "belt/pickup";
Inventory.RespawnTics 2100; Inventory.RespawnTics 2100;
@ -256,7 +233,7 @@ Class PowerShield : UnrealArmor
Inventory.MaxAmount 200; Inventory.MaxAmount 200;
Inventory.InterHubAmount 200; Inventory.InterHubAmount 200;
UTArmor.ArmorAbsorption 100; UTArmor.ArmorAbsorption 100;
UnrealArmor.AbsorptionPriority 11; // wow dude UTArmor.AbsorptionPriority 11; // wow dude
Inventory.PickupMessage "$I_POWERSHIELD"; Inventory.PickupMessage "$I_POWERSHIELD";
Inventory.PickupSound "sbelt/pickup"; Inventory.PickupSound "sbelt/pickup";
Inventory.RespawnTics 3500; Inventory.RespawnTics 3500;
@ -327,7 +304,7 @@ Class UArmorBonus : UArmor
Inventory.MaxAmount 200; Inventory.MaxAmount 200;
Inventory.InterHubAmount 200; Inventory.InterHubAmount 200;
UTArmor.ArmorAbsorption 25; UTArmor.ArmorAbsorption 25;
UnrealArmor.AbsorptionPriority 1; UTArmor.AbsorptionPriority 1;
Inventory.PickupMessage "$I_ARMORBONUS"; Inventory.PickupMessage "$I_ARMORBONUS";
Inventory.PickupSound "misc/u1armor"; Inventory.PickupSound "misc/u1armor";
Inventory.Icon "I_Bonus"; Inventory.Icon "I_Bonus";

View file

@ -347,7 +347,7 @@ Class UAllMap : MapRevealer
States States
{ {
Spawn: Spawn:
MDET ABCDCB 6; TRNS ABCDCB 6;
Loop; Loop;
} }
} }

View file

@ -202,6 +202,15 @@ Class UTranslocator : UnrealWeapon
invoker.FireEffect(); invoker.FireEffect();
// squeeze down new z if ceiling is in the way // squeeze down new z if ceiling is in the way
if ( (newpos.z+height > moduleceilingz) ) newpos.z = max(modulefloorz,moduleceilingz-height); if ( (newpos.z+height > moduleceilingz) ) newpos.z = max(modulefloorz,moduleceilingz-height);
// temporarily disable telefragging for all allies
bool oldnotele[MAXPLAYERS];
for ( int i=0; i<MAXPLAYERS; i++ )
{
if ( !playeringame[i] || !players[i].mo ) continue;
oldnotele[i] = players[i].mo.bNOTELEFRAG;
if ( !IsFriend(players[i].mo) ) continue;
players[i].mo.bNOTELEFRAG = true;
}
if ( Warp(self,newpos.x,newpos.y,newpos.z,flags:WARPF_ABSOLUTEPOSITION|WARPF_TESTONLY) && TeleportMove(newpos,true) ) if ( Warp(self,newpos.x,newpos.y,newpos.z,flags:WARPF_ABSOLUTEPOSITION|WARPF_TESTONLY) && TeleportMove(newpos,true) )
{ {
A_PlaySound("flak/click",CHAN_WEAPON); A_PlaySound("flak/click",CHAN_WEAPON);
@ -210,6 +219,11 @@ Class UTranslocator : UnrealWeapon
player.fov = min(175,player.desiredfov+60); player.fov = min(175,player.desiredfov+60);
} }
else A_PlaySound("transloc/return",CHAN_WEAPON); else A_PlaySound("transloc/return",CHAN_WEAPON);
for ( int i=0; i<MAXPLAYERS; i++ )
{
if ( !playeringame[i] || !players[i].mo ) continue;
players[i].mo.bNOTELEFRAG = oldnotele[i];
}
if ( bBroken ) if ( bBroken )
{ {
UTMainHandler.DoFlash(self,Color(255,255,255,255),50); UTMainHandler.DoFlash(self,Color(255,255,255,255),50);