Merge branch 'master' into hitowner
20
Readme.md
|
|
@ -44,6 +44,7 @@ This mod requires GZDoom 3.5.0 or later.
|
|||
- Rocket Launcher (slot 9)
|
||||
- "Instant Rocket" mode toggleable with reload
|
||||
- Scaling/Customization options for the HUD
|
||||
- UT-like player movement physics
|
||||
|
||||
## In progress
|
||||
|
||||
|
|
@ -62,10 +63,15 @@ This mod requires GZDoom 3.5.0 or later.
|
|||
## Future plans
|
||||
|
||||
- Add ammo counters to Pulsegun, Minigun, Flak Cannon and Rocket Launcher once
|
||||
scripted textures are implemented.
|
||||
- Add player models + weapon attachment support when that is also added in.
|
||||
- Add option to have UT-like player movement physics.
|
||||
- Migrate RandomSpawners to CheckReplacement.
|
||||
scripted textures are implemented
|
||||
- Add player models once GZDoom gets a well deserved model animation system
|
||||
overhaul (at the moment this would require a monumental amount of work in
|
||||
the current state-tied system)
|
||||
- Add weapon attachment support to player models when that is also added in
|
||||
- Migrate RandomSpawners to CheckReplacement
|
||||
- Perhaps come up with an add-on that imitates UT's blood/gore system
|
||||
- Unreal 1 weapons mod and maybe also a monsters mod
|
||||
- Port some of my UT weapon mods
|
||||
|
||||
## Known bugs
|
||||
|
||||
|
|
@ -79,6 +85,6 @@ This mod requires GZDoom 3.5.0 or later.
|
|||
|
||||
## Known bugs that are not this mod's fault
|
||||
|
||||
- Pulse gun beams behave oddly when the player is moving or looking up and
|
||||
down. This is a rendering interpolation bug in GZDoom that has been fixed
|
||||
already in recent devbuilds
|
||||
- Pulse gun beams behave oddly when the player is standing on a moving floor.
|
||||
This is an interpolation quirk in GZDoom and I can probably find some hacky
|
||||
way to fix it eventually
|
||||
|
|
|
|||
|
|
@ -580,3 +580,12 @@ HardwareShader PostProcess scene
|
|||
Texture StaticTexture "textures/static1.png"
|
||||
Uniform float Timer
|
||||
}
|
||||
SkyBox "BlueSky" fliptop
|
||||
{
|
||||
"graphics/SkySetB_front.png"
|
||||
"graphics/SkySetB_right.png"
|
||||
"graphics/SkySetB_back.png"
|
||||
"graphics/SkySetB_left.png"
|
||||
"graphics/SkySetB_up.png"
|
||||
"graphics/SkySetB_down.png"
|
||||
}
|
||||
BIN
graphics/SkySetB_back.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
graphics/SkySetB_down.png
Normal file
|
After Width: | Height: | Size: 162 B |
BIN
graphics/SkySetB_front.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
graphics/SkySetB_left.png
Normal file
|
After Width: | Height: | Size: 8 KiB |
BIN
graphics/SkySetB_right.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
graphics/SkySetB_up.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
|
|
@ -240,3 +240,9 @@ warhead/explode warexplo
|
|||
warhead/fly warfly
|
||||
warhead/select warhpick
|
||||
warhead/fire warhshot
|
||||
|
||||
testamb/slime aslime2
|
||||
testamb/lava lava31
|
||||
testamb/water trickle1
|
||||
testamb/wind1 wind21
|
||||
testamb/wind2 wind23
|
||||
|
|
|
|||
BIN
sounds/doomtest/aslime2.ogg
Normal file
BIN
sounds/doomtest/lava31.ogg
Normal file
BIN
sounds/doomtest/trickle1.ogg
Normal file
BIN
sounds/doomtest/wind21.ogg
Normal file
BIN
sounds/doomtest/wind23.ogg
Normal file
|
|
@ -1,11 +1,3 @@
|
|||
// shrunk version of -noflat- for Kinsie's test map, looks better
|
||||
Texture "-kinsie-",128,128
|
||||
{
|
||||
XScale 8
|
||||
YScale 8
|
||||
WorldPanning
|
||||
Patch "-noflat-",0,0{}
|
||||
}
|
||||
Texture "FIZZHP00",256,256
|
||||
{
|
||||
Patch "LAVA1",0,0{Translation "0:255=#[0,0,255]"}
|
||||
|
|
|
|||
BIN
textures/doomtest/Glassg.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
textures/doomtest/rClfBas0.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
textures/doomtest/rClfFlr0.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
textures/doomtest/uAlnWl2b.png
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
textures/doomtest/xAlnWl2b.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
|
|
@ -49,7 +49,7 @@ Class DamageAmplifier : Powerup
|
|||
Default
|
||||
{
|
||||
Powerup.Duration -60;
|
||||
Powerup.Color "EE00FF", 0.15;
|
||||
Powerup.Color "EE00FF", 0.05;
|
||||
}
|
||||
|
||||
override void BeginPlay()
|
||||
|
|
@ -244,7 +244,7 @@ Class UTInvisibility : PowerupGiver replaces BlurSphere
|
|||
States
|
||||
{
|
||||
Spawn:
|
||||
INVS A -1 Bright;
|
||||
INVS A -1;
|
||||
Stop;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -149,10 +149,15 @@ Class SniperRifle : UTWeapon
|
|||
c.scale *= 1.25;
|
||||
c.vel = x*FRandom[Junk](-2,2)+y*FRandom[Junk](3,6)+z*FRandom[Junk](3,5);
|
||||
}
|
||||
override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack )
|
||||
{
|
||||
if ( mod == 'Decapitated' ) return "%k put a bullet through %o's head.";
|
||||
return Obituary;
|
||||
}
|
||||
Default
|
||||
{
|
||||
Tag "Sniper Rifle";
|
||||
Obituary "%k put a bullet through %o's head.";
|
||||
Obituary "%k put a bullet through %o.";
|
||||
Inventory.PickupMessage "You got the Sniper Rifle.";
|
||||
Weapon.UpSound "sniper/select";
|
||||
Weapon.SlotNumber 0;
|
||||
|
|
|
|||
|
|
@ -272,9 +272,9 @@ Class UTPlayer : DoomPlayer
|
|||
}
|
||||
}
|
||||
last_sm = sm;
|
||||
if ( player.onground )
|
||||
if ( !bNoGravity && player.onground )
|
||||
{
|
||||
if ( !bNoGravity && !waterlevel && (dodge.length() > 0) )
|
||||
if ( !waterlevel && (dodge.length() > 0) )
|
||||
{
|
||||
if ( doomspeed.GetBool() ) vel += dodge.unit()*(groundspeed_doomish*1.5)/TICRATE;
|
||||
else vel += dodge.unit()*(groundspeed*1.5)/TICRATE;
|
||||
|
|
@ -1137,16 +1137,125 @@ Class UTMainHandler : StaticEventHandler
|
|||
Array<QueuedFlash> flashes;
|
||||
transient CVar nobosstelefrag;
|
||||
|
||||
private Actor AddLight( Vector3 pos, Color col, int radius )
|
||||
{
|
||||
Actor l = Actor.Spawn("PointLightAttenuated",pos);
|
||||
if ( !l ) return null;
|
||||
l.args[0] = col.r;
|
||||
l.args[1] = col.g;
|
||||
l.args[2] = col.b;
|
||||
l.args[3] = radius;
|
||||
return l;
|
||||
}
|
||||
|
||||
private Actor AddAmbient( Vector3 pos, String snd, double volume = 1., double attenuation = ATTN_NORM )
|
||||
{
|
||||
Actor a = Actor.Spawn("MapSpot",pos);
|
||||
if ( !a ) return null;
|
||||
a.A_PlaySound(snd,CHAN_BODY,volume,true,attenuation);
|
||||
return a;
|
||||
}
|
||||
|
||||
override void WorldLoaded( WorldEvent e )
|
||||
{
|
||||
if ( gamestate != GS_LEVEL || e.IsSaveGame ) return;
|
||||
// prettify Kinsie's test map for a more Unreal feel
|
||||
if ( level.levelname ~== "Modder Test Map" )
|
||||
if ( level.GetChecksum() ~== "FBC3B6622A8B74AE06DE01E70007AC33" )
|
||||
{
|
||||
TexMan.ReplaceTextures("-noflat-","-kinsie-",0);
|
||||
TextureID deftex = TexMan.CheckForTexture("-noflat-",TexMan.Type_Any);
|
||||
TextureID skytx = TexMan.CheckForTexture("BlueSky",TexMan.Type_Any);
|
||||
TextureID baseflor = TexMan.CheckForTexture("rClfFlr0",TexMan.Type_Any);
|
||||
TextureID baseceil = TexMan.CheckForTexture("rClfBas0",TexMan.Type_Any);
|
||||
TextureID basewall = TexMan.CheckForTexture("uAlnWl2b",TexMan.Type_Any);
|
||||
TextureID xbasewall = TexMan.CheckForTexture("xAlnWl2b",TexMan.Type_Any);
|
||||
TextureID glasstex = TexMan.CheckForTexture("Glassg",TexMan.Type_Any);
|
||||
level.ChangeSky(skytx,skytx);
|
||||
// TODO handplace some dynamic lights and add Unreal/UT ambient sounds
|
||||
for ( int i=0; i<level.sectors.size(); i++ )
|
||||
{
|
||||
level.sectors[i].lightlevel = 0;
|
||||
level.sectors[i].SetPlaneLight(0,0);
|
||||
level.sectors[i].SetPlaneLight(1,0);
|
||||
// open some ceilings
|
||||
if ( level.sectors[i].ceilingplane.ZAtPoint(level.sectors[i].centerspot) == 1280 )
|
||||
level.sectors[i].SetTexture(1,skyflatnum);
|
||||
if ( level.sectors[i].GetTexture(0) == deftex )
|
||||
{
|
||||
level.sectors[i].SetTexture(0,(i==47)?baseceil:baseflor);
|
||||
level.sectors[i].SetXScale(0,2.);
|
||||
level.sectors[i].SetYScale(0,2.);
|
||||
}
|
||||
if ( level.sectors[i].GetTexture(1) == deftex )
|
||||
{
|
||||
level.sectors[i].SetTexture(1,(i==47)?baseflor:baseceil);
|
||||
level.sectors[i].SetXScale(1,2.);
|
||||
level.sectors[i].SetYScale(1,2.);
|
||||
}
|
||||
}
|
||||
for ( int i=0; i<level.sides.size(); i++ )
|
||||
{
|
||||
level.sides[i].light = 0;
|
||||
for ( int j=0; j<3; j++ )
|
||||
{
|
||||
if ( level.sides[i].GetTexture(j) != deftex ) continue;
|
||||
if ( (i==529) || (i==530) || (i==533) || (i==534) )
|
||||
{
|
||||
level.sides[i].SetTexture(j,xbasewall);
|
||||
level.sides[i].SetTextureYOffset(j,-2304);
|
||||
}
|
||||
else level.sides[i].SetTexture(j,basewall);
|
||||
level.sides[i].SetTextureXScale(j,2.);
|
||||
level.sides[i].SetTextureYScale(j,2.);
|
||||
}
|
||||
}
|
||||
// fixup
|
||||
for ( int i=215; i<246; i++ )
|
||||
{
|
||||
if ( (i==218) || (i==221) || (i==227)
|
||||
|| (i==230) || (i==232) || (i==234)
|
||||
|| (i==238) || (i==243) ) continue;
|
||||
level.sectors[i].SetSpecialColor(0,"00 00 00");
|
||||
}
|
||||
level.sectors[53].SetFade("00 00 20");
|
||||
level.sides[1844].SetTexture(1,glasstex);
|
||||
level.lines[945].alpha = 0.5;
|
||||
AddLight((0,-288,128),"E0 E0 FF",256);
|
||||
AddLight((-2560,1024,1280),"E0 E0 FF",1024);
|
||||
AddLight((0,1024,1280),"E0 E0 FF",1024);
|
||||
AddLight((2560,1024,1280),"E0 E0 FF",1024);
|
||||
AddLight((-384,-160,64),"FF FF FF",128);
|
||||
AddLight((-384,-288,64),"FF FF FF",128);
|
||||
AddLight((-384,-416,64),"FF FF FF",128);
|
||||
AddLight((0,2816,96),"FF FF FF",512);
|
||||
AddLight((2904,1344,128),"80 80 FF",256);
|
||||
AddLight((3408,1344,128),"80 80 FF",256);
|
||||
AddLight((1568,1760,64),"20 20 80",128);
|
||||
AddLight((1824,1760,64),"80 20 20",128);
|
||||
AddLight((2080,1760,64),"FF 80 20",128);
|
||||
AddLight((2336,1760,64),"20 FF 20",128);
|
||||
AddLight((2592,1760,64),"80 80 20",128);
|
||||
AddLight((2848,1760,64),"A0 A0 30",128);
|
||||
AddLight((2944,960,64),"20 FF 20",128);
|
||||
AddLight((2944,736,64),"20 FF 20",128);
|
||||
AddLight((3264,960,64),"FF 20 20",128);
|
||||
AddLight((3264,736,64),"A0 A0 30",128);
|
||||
AddLight((3264,512,64),"80 80 20",128);
|
||||
AddLight((3584,960,64),"80 80 20",128);
|
||||
AddLight((3584,736,64),"20 FF 20",128);
|
||||
AddLight((3584,512,64),"FF 80 20",128);
|
||||
AddLight((3584,288,64),"FF 80 FF",128);
|
||||
AddAmbient((0,-288,192),"testamb/wind1",0.5,1.6);
|
||||
AddAmbient((-2560,1024,768),"testamb/wind1",0.4,0.8);
|
||||
AddAmbient((0,1024,768),"testamb/wind1",0.4,0.8);
|
||||
AddAmbient((2560,1024,768),"testamb/wind1",0.4,0.8);
|
||||
AddAmbient((768,1600,1280),"testamb/wind2",0.8,1.6);
|
||||
AddAmbient((3174,1344,128),"testamb/water",0.4,1.6);
|
||||
AddAmbient((1568,1760,64),"testamb/water",0.4,2.4);
|
||||
AddAmbient((2080,1760,64),"testamb/lava",0.8,2.4);
|
||||
AddAmbient((2336,1760,64),"testamb/slime",0.4,2.4);
|
||||
AddAmbient((2944,960,64),"testamb/slime",0.4,2.4);
|
||||
AddAmbient((2944,736,64),"testamb/slime",0.4,2.4);
|
||||
AddAmbient((3584,736,64),"testamb/slime",0.4,2.4);
|
||||
AddAmbient((3584,512,64),"testamb/lava",0.8,2.4);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||