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.
18
Readme.md
|
|
@ -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).
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 803 B |
BIN
brightmaps/JTranslator1.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
48
gldefs.txt
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
BIN
graphics/crosshairs/XHAIRB10.png
Normal file
|
After Width: | Height: | Size: 123 B |
BIN
graphics/crosshairs/XHAIRB11.png
Normal file
|
After Width: | Height: | Size: 148 B |
BIN
graphics/crosshairs/XHAIRB12.png
Normal file
|
After Width: | Height: | Size: 166 B |
BIN
graphics/crosshairs/XHAIRB8.png
Normal file
|
After Width: | Height: | Size: 145 B |
BIN
graphics/crosshairs/XHAIRB9.png
Normal file
|
After Width: | Height: | Size: 153 B |
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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
BIN
models/BigFlash_d.3d
Normal file
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
BIN
models/JBigFlash1.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
models/JTranslator1.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
models/TranslatorMesh_a.3d
Normal file
BIN
models/TranslatorMesh_d.3d
Normal file
|
Before Width: | Height: | Size: 39 KiB |
|
|
@ -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
|
Before Width: | Height: | Size: 2 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
|
@ -1,2 +1 @@
|
|||
Sprite "TAZBA0",1,1{}
|
||||
Sprite "RNGXA0",1,1{}
|
||||
5
xhairs.txt
Normal 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"
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
version "4.3"
|
||||
version "4.2.2"
|
||||
|
||||
#include "zscript/unrealcommon.zsc"
|
||||
#include "zscript/dispersionpistol.zsc"
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -164,6 +164,8 @@ Class RazorBlade : Actor
|
|||
}
|
||||
Goto Spawn;
|
||||
Death:
|
||||
TNT1 A 0 A_RazorHit();
|
||||
XDeath:
|
||||
TNT1 A 1 A_StopSound(CHAN_VOICE);
|
||||
Stop;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
|
|||
|
|
@ -347,7 +347,7 @@ Class UAllMap : MapRevealer
|
|||
States
|
||||
{
|
||||
Spawn:
|
||||
MDET ABCDCB 6;
|
||||
TRNS ABCDCB 6;
|
||||
Loop;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||