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
(including dummied out stuff and others).
This mod requires GZDoom g4.3pre-125-g021e548db or later, and runs on top of
Doom Tournament (currently the devel branch is required).
This mod requires GZDoom 4.2.3 or later, and runs on top of Doom Tournament.
## Currently Implemented
@ -74,12 +73,12 @@ Doom Tournament (currently the devel branch is required).
## In progress
- Final polishing
- N/A, this is the 1.0 release.
## Planned
- 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
describes (unlit blobs at a rate of 4 per second that catch on fire with
explosions/lava/etc).
@ -88,13 +87,4 @@ Doom Tournament (currently the devel branch is required).
- Actual Bonesaw?
- Implement ASMD behavior described in the Unreal novels (highly destructive
green beam that bounces off mirrors and water).
- 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.
- Redo Quadshot animations (including partial reloads).

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" }
}
PointLight UCOMPLIGHT
{
Color 0.3 1.0 0.2
Size 12
Offset 0 8 0
Attenuate 1
}
Object UAllMap
{
Frame "PMAP" { light "UCOMPLIGHT" }
Frame "TRNS" { light "UTCOMPLIGHT" }
}
// Shaders / Brightmaps
@ -538,8 +531,11 @@ Brightmap Texture "models/JEightB1.png"
}
HardwareShader Texture "models/JFlashl1.png"
{
Shader "shaders/glsl/AmbientGlow_Brightmapped.fp"
Texture "brighttex" "brightmaps/JFlashl1.png"
Shader "shaders/glsl/AmbientGlow.fp"
}
HardwareShader Texture "models/JBigFlash1.png"
{
Shader "shaders/glsl/AmbientGlow.fp"
}
HardwareShader Texture "models/JImpale1_.png"
{
@ -858,38 +854,12 @@ HardwareShader Texture "models/FlametFX.png"
{
Shader "shaders/glsl/FlametFX.fp"
}
HardwareShader Texture "models/shield.png"
{
Shader "shaders/glsl/AmbientGlow.fp"
}
HardwareShader Texture "models/JAllMap1_a00.png"
HardwareShader Texture "models/JTranslator1.png"
{
Shader "shaders/glsl/AmbientGlow_Brightmapped.fp"
Texture "brighttex" "brightmaps/JAllMap1_a00.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"
Texture "brighttex" "brightmaps/JTranslator1.png"
}
// PP shaders
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_NSTOOFAR = "Cannot recall Sentry from this distance.";
M_FFNOROOM = "No room to activate Force Field.";
M_ISELECT = "%s selected.";
S_MINHUD = "Health %d Score %d Ammo %d";
S_MINHUD2 = "Health %d Score %d Ammo %d/%d";
/* 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_NSTOOFAR = "No se puede retirar la Torreta desde esta distancia.";
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_MINHUD2 = "Salud %d Puntuación %d Munición %d/%d";
/* Menus */

View file

@ -69,22 +69,6 @@ Model "ASMDBall"
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"
{
Path "models"

View file

@ -809,11 +809,11 @@ Model "UAllMap"
AngleOffset 90
SurfaceSkin 0 0 "JAllMap1_a00.png"
FrameIndex MDET A 0 0
FrameIndex TRNS A 0 0
SurfaceSkin 0 0 "JAllMap1_a01.png"
FrameIndex MDET B 0 0
FrameIndex TRNS B 0 0
SurfaceSkin 0 0 "JAllMap1_a02.png"
FrameIndex MDET C 0 0
FrameIndex TRNS C 0 0
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
lite/pickup fshlite1
lite/off fshlite2
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 "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/dispersionpistol.zsc"

View file

@ -169,7 +169,7 @@ Class SMiniGun : UnrealWeapon
if ( weap.Ammo1.Amount <= 0 ) return;
if ( !bAlt && !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
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_PlaySound(bAlt?"smini/altfire":"smini/fire",CHAN_WEAPON);
A_AlertMonsters();

View file

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

View file

@ -1,31 +1,8 @@
Class UnrealArmor : UTArmor
{
int priority;
Property AbsorptionPriority : priority;
Default
{
-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.InterHubAmount 100;
UTArmor.ArmorAbsorption 90;
UnrealArmor.AbsorptionPriority 7;
UTArmor.AbsorptionPriority 7;
Inventory.PickupMessage "$I_UARMOR";
Inventory.PickupSound "misc/u1armor";
Inventory.Icon "I_Armor";
@ -60,7 +37,7 @@ Class AsbestosSuit : UnrealArmor
Inventory.MaxAmount 50;
Inventory.InterHubAmount 50;
UTArmor.ArmorAbsorption 50;
UnrealArmor.AbsorptionPriority 6;
UTArmor.AbsorptionPriority 6;
Inventory.PickupMessage "$I_ASBSUIT";
Inventory.PickupSound "misc/suit";
Inventory.Icon "I_Suit";
@ -97,7 +74,7 @@ Class ToxinSuit : UnrealArmor
Inventory.MaxAmount 50;
Inventory.InterHubAmount 50;
UTArmor.ArmorAbsorption 50;
UnrealArmor.AbsorptionPriority 6;
UTArmor.AbsorptionPriority 6;
Inventory.PickupMessage "$I_TOXSUIT";
Inventory.PickupSound "misc/suit";
Inventory.Icon "I_TSuit";
@ -134,7 +111,7 @@ Class KevlarSuit : UnrealArmor
Inventory.MaxAmount 100;
Inventory.InterHubAmount 100;
UTArmor.ArmorAbsorption 80;
UnrealArmor.AbsorptionPriority 6;
UTArmor.AbsorptionPriority 6;
Inventory.PickupMessage "$I_KEVSUIT";
Inventory.PickupSound "misc/suit";
Inventory.Icon "I_Kevlar";
@ -184,7 +161,7 @@ Class ShieldBelt : UnrealArmor
Inventory.MaxAmount 100;
Inventory.InterHubAmount 100;
UTArmor.ArmorAbsorption 100;
UnrealArmor.AbsorptionPriority 10;
UTArmor.AbsorptionPriority 10;
Inventory.PickupMessage "$I_SHIELDBELT";
Inventory.PickupSound "belt/pickup";
Inventory.RespawnTics 2100;
@ -256,7 +233,7 @@ Class PowerShield : UnrealArmor
Inventory.MaxAmount 200;
Inventory.InterHubAmount 200;
UTArmor.ArmorAbsorption 100;
UnrealArmor.AbsorptionPriority 11; // wow dude
UTArmor.AbsorptionPriority 11; // wow dude
Inventory.PickupMessage "$I_POWERSHIELD";
Inventory.PickupSound "sbelt/pickup";
Inventory.RespawnTics 3500;
@ -327,7 +304,7 @@ Class UArmorBonus : UArmor
Inventory.MaxAmount 200;
Inventory.InterHubAmount 200;
UTArmor.ArmorAbsorption 25;
UnrealArmor.AbsorptionPriority 1;
UTArmor.AbsorptionPriority 1;
Inventory.PickupMessage "$I_ARMORBONUS";
Inventory.PickupSound "misc/u1armor";
Inventory.Icon "I_Bonus";

View file

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

View file

@ -202,6 +202,15 @@ Class UTranslocator : UnrealWeapon
invoker.FireEffect();
// squeeze down new z if ceiling is in the way
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) )
{
A_PlaySound("flak/click",CHAN_WEAPON);
@ -210,6 +219,11 @@ Class UTranslocator : UnrealWeapon
player.fov = min(175,player.desiredfov+60);
}
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 )
{
UTMainHandler.DoFlash(self,Color(255,255,255,255),50);