Merge branch 'devel'

This commit is contained in:
Marisa the Magician 2018-12-31 12:11:37 +01:00
commit 2ea4a9cb9c
5 changed files with 30 additions and 19 deletions

View file

@ -74,8 +74,6 @@ This mod requires GZDoom 3.7.0 or later.
## Known bugs ## Known bugs
- Sometimes the slave enforcer has its psprite "lower" slightly while the main
enforcer is reloading. No idea what causes this (Could be bobbing-related)
- Translocator allows telefragging other players in coop (no idea if I can - Translocator allows telefragging other players in coop (no idea if I can
even fix this) even fix this)
- Biorifle sludge doesn't handle 3d floors (especially sloped ones) properly. - Biorifle sludge doesn't handle 3d floors (especially sloped ones) properly.

View file

@ -28,6 +28,8 @@ server bool flak_classicsshock = false; // classic enhanced shock rifle (no al
server bool flak_utmovement = false; // emulate UE1's air/ground movement physics server bool flak_utmovement = false; // emulate UE1's air/ground movement physics
server bool flak_doomspeed = false; // keep Doomguy run speed when using UT movement server bool flak_doomspeed = false; // keep Doomguy run speed when using UT movement
server bool flak_doomaircontrol = false; // keep Doom's limited air control when using UT movement server bool flak_doomaircontrol = false; // keep Doom's limited air control when using UT movement
server bool flak_tapdodge = true; // enable double tap dodge (may be cheaty for maps that disallow jumping)
server int flak_taptics = 8; // maximum delay in tics between double taps for a successful dodge
server bool flak_nobosstelefrag = false; // disable telefragging of boss monsters (useful when translocator is enabled) server bool flak_nobosstelefrag = false; // disable telefragging of boss monsters (useful when translocator is enabled)
server bool flak_nowalkdrop = false; // [GLITCHY] don't drop off ledges while holding walk key server bool flak_nowalkdrop = false; // [GLITCHY] don't drop off ledges while holding walk key
server bool flak_corpsedamage = false; // [WIP/EXPERIMENTAL] allow corpses to take damage and be gibbed, currently just causes a jump to XDeath until gore system is implemented server bool flak_corpsedamage = false; // [WIP/EXPERIMENTAL] allow corpses to take damage and be gibbed, currently just causes a jump to XDeath until gore system is implemented
@ -35,4 +37,4 @@ server bool flak_swingers = true; // weapon recoil that affects player view
server float flak_swingerstrength = 0.5; // strength of visual recoil server float flak_swingerstrength = 0.5; // strength of visual recoil
server bool flak_radboots = true; // jump boots protect against damaging floors (this is to account for the lack of a radsuit) server bool flak_radboots = true; // jump boots protect against damaging floors (this is to account for the lack of a radsuit)
server bool flak_blood = true; // [WIP] use doom tournament blood (disable if using another gore mod) server bool flak_blood = true; // [WIP] use doom tournament blood (disable if using another gore mod)
server bool flak_gibs = false; // [WIP/UNSTABLE] use doom tournament gibbing (disable if using another gore mod) server bool flak_gibs = false; // [WIP/UNSTABLE] use doom tournament gibbing (disable if using another gore mod)

View file

@ -44,6 +44,8 @@ OptionMenu "UTOptionMenu"
Option "Doom Player Speed", "flak_doomspeed", "YesNo", "flak_utmovement" Option "Doom Player Speed", "flak_doomspeed", "YesNo", "flak_utmovement"
Option "Doom Air Control", "flak_doomaircontrol", "YesNo", "flak_utmovement" Option "Doom Air Control", "flak_doomaircontrol", "YesNo", "flak_utmovement"
Option "Walk Disables Dropoff (Glitchy)", "flak_nowalkdrop", "YesNo", "flak_utmovement" Option "Walk Disables Dropoff (Glitchy)", "flak_nowalkdrop", "YesNo", "flak_utmovement"
Option "Double Tap Dodge", "flak_tapdodge", "YesNo", "flak_utmovement"
Slider "Double Tap Sensibility In Tics", "flak_taptics", 1, 10, 1, 0
StaticText " " StaticText " "
StaticText "HUD Options", "Gold" StaticText "HUD Options", "Gold"
Option "Show Weapon Bar", "flak_showweapons", "YesNo" Option "Show Weapon Bar", "flak_showweapons", "YesNo"

View file

@ -195,7 +195,7 @@ Class Enforcer : UTWeapon
PSprite psp; PSprite psp;
for ( psp = Owner.player.psprites; psp; psp = psp.next ) for ( psp = Owner.player.psprites; psp; psp = psp.next )
{ {
if ( (psp.Caller == self) && (psp.id == 2) ) psp.Destroy(); if ( (psp.Caller == self) && ((psp.id == 2) || (psp.id == -9998)) ) psp.Destroy();
slaveactive = false; slaveactive = false;
slavedown = false; slavedown = false;
} }
@ -253,12 +253,22 @@ Class Enforcer : UTWeapon
if ( !weap || !player ) return; if ( !weap || !player ) return;
if ( player.cmd.buttons&BT_ATTACK && !player.ReadyWeapon.bAltFire ) if ( player.cmd.buttons&BT_ATTACK && !player.ReadyWeapon.bAltFire )
{ {
if ( flak_enforcerreload && (invoker.slaveclipcount <= 0) && (weap.Ammo1.Amount > 0) )
{
player.setpsprite(2,ResolveState("LeftReload"));
return;
}
invoker.slaverefire = 0; invoker.slaverefire = 0;
invoker.slavealtfire = false; invoker.slavealtfire = false;
player.setpsprite(2,ResolveState("LeftFire")); player.setpsprite(2,ResolveState("LeftFire"));
} }
else if ( player.cmd.buttons&BT_ALTATTACK && player.ReadyWeapon.bAltFire ) else if ( player.cmd.buttons&BT_ALTATTACK && player.ReadyWeapon.bAltFire )
{ {
if ( flak_enforcerreload && (invoker.slaveclipcount <= 0) && (weap.Ammo1.Amount > 0) )
{
player.setpsprite(2,ResolveState("LeftReload"));
return;
}
invoker.slaverefire = 0; invoker.slaverefire = 0;
invoker.slavealtfire = true; invoker.slavealtfire = true;
player.setpsprite(2,ResolveState("LeftAltFire")); player.setpsprite(2,ResolveState("LeftAltFire"));
@ -455,13 +465,13 @@ Class Enforcer : UTWeapon
invoker.slaveactive = false; invoker.slaveactive = false;
A_Overlay(2,"LeftDeselect"); A_Overlay(2,"LeftDeselect");
} }
else if ( flak_enforcerreload && (invoker.slavereload || (invoker.slaveclipcount < 0)) ) A_Overlay(2,"LeftReload"); else if ( flak_enforcerreload && invoker.slavereload ) A_Overlay(2,"LeftReload");
else if ( invoker.slavedown ) A_Overlay(2,"LeftDeselect"); else if ( invoker.slavedown ) A_Overlay(2,"LeftDeselect");
else A_LeftWeaponReady(); else A_LeftWeaponReady();
} }
Wait; Wait;
Fire: Fire:
ENFF A 0 A_Overlay(-9999,"Null"); ENFF A 0 A_Overlay(-9999,null);
Hold: Hold:
ENFF A 0 A_EnforcerFire(); ENFF A 0 A_EnforcerFire();
ENFF ABCDEFGHIJ 1; ENFF ABCDEFGHIJ 1;
@ -471,7 +481,7 @@ Class Enforcer : UTWeapon
ENFI A 0; ENFI A 0;
Goto Idle; Goto Idle;
LeftFire: LeftFire:
2NFI A 0 A_Overlay(-9998,"Null"); 2NFI A 0 A_Overlay(-9998,null);
2NFI A 5; 2NFI A 5;
2NFI A 0 A_EnforcerRefire(1,true); 2NFI A 0 A_EnforcerRefire(1,true);
Goto LeftIdle; Goto LeftIdle;
@ -484,7 +494,7 @@ Class Enforcer : UTWeapon
2NFI A 0; 2NFI A 0;
Goto LeftIdle; Goto LeftIdle;
AltFire: AltFire:
ENFA A 0 A_Overlay(-9999,"Null"); ENFA A 0 A_Overlay(-9999,null);
ENFA ABCDEF 1; ENFA ABCDEF 1;
AltHold: AltHold:
ENFA G 0 A_EnforcerFire(true); ENFA G 0 A_EnforcerFire(true);
@ -494,7 +504,7 @@ Class Enforcer : UTWeapon
ENFA OPQRSTU 1; ENFA OPQRSTU 1;
Goto Idle; Goto Idle;
LeftAltFire: LeftAltFire:
2NFI A 0 A_Overlay(-9998,"Null"); 2NFI A 0 A_Overlay(-9998,null);
2NFI A 5; 2NFI A 5;
2NFI A 0 A_EnforcerRefire(1,true); 2NFI A 0 A_EnforcerRefire(1,true);
Goto LeftIdle; Goto LeftIdle;
@ -509,13 +519,14 @@ Class Enforcer : UTWeapon
Reload: Reload:
ENFR A 0 ENFR A 0
{ {
invoker.slavereload = ((player.cmd.buttons&BT_RELOAD)&&(invoker.slaveclipcount < min(20,invoker.Ammo1.Amount)))||(invoker.slaveclipcount <= 0); invoker.slavereload = ((player.cmd.buttons&BT_RELOAD)&&invoker.slaveactive&&(invoker.slaveclipcount < min(20,invoker.Ammo1.Amount)))||(invoker.slaveclipcount <= 0);
return A_JumpIf(invoker.clipcount>=min(20,invoker.Ammo1.Amount),"Idle"); return A_JumpIf(invoker.clipcount>=min(20,invoker.Ammo1.Amount),"Idle");
} }
ENFR A 0 ENFR A 0
{ {
invoker.clipcount = Min(20,invoker.Ammo1.Amount); invoker.clipcount = Min(20,invoker.Ammo1.Amount);
A_Overlay(-9999,"Null"); A_Overlay(-9999,null);
A_WeaponOffset(0,32); // fix sudden psprite lowering
A_PlaySound("enforcer/click",CHAN_WEAPON); A_PlaySound("enforcer/click",CHAN_WEAPON);
} }
ENFR ABCDEFGHIJKLMNOPQRSTUVWXYZ 1; ENFR ABCDEFGHIJKLMNOPQRSTUVWXYZ 1;
@ -528,7 +539,7 @@ Class Enforcer : UTWeapon
{ {
invoker.slaveclipcount = Min(20,invoker.Ammo1.Amount); invoker.slaveclipcount = Min(20,invoker.Ammo1.Amount);
invoker.slavereload = false; invoker.slavereload = false;
A_Overlay(-9998,"Null"); A_Overlay(-9998,null);
A_PlaySound("enforcer/click",CHAN_6); A_PlaySound("enforcer/click",CHAN_6);
} }
2NFR ABCDEFGHIJKLMNOPQRSTUVWXYZ 1; 2NFR ABCDEFGHIJKLMNOPQRSTUVWXYZ 1;
@ -538,7 +549,7 @@ Class Enforcer : UTWeapon
Goto LeftReady; Goto LeftReady;
Deselect: Deselect:
ENFI A 1 { invoker.slavedown = true; } ENFI A 1 { invoker.slavedown = true; }
ENFD A 0 A_Overlay(-9999,"Null"); ENFD A 0 A_Overlay(-9999,null);
ENFD A 0 A_JumpIf(invoker.slaveactive,"Deselect"); ENFD A 0 A_JumpIf(invoker.slaveactive,"Deselect");
ENFD ABDEGHJK 1; ENFD ABDEGHJK 1;
ENFD L 1 A_Lower(int.max); ENFD L 1 A_Lower(int.max);
@ -546,7 +557,7 @@ Class Enforcer : UTWeapon
LeftDeselect: LeftDeselect:
2NFD A 0 2NFD A 0
{ {
A_Overlay(-9998,"Null"); A_Overlay(-9998,null);
invoker.slaveactive = false; invoker.slaveactive = false;
} }
2NFD ABDEGHJK 1; 2NFD ABDEGHJK 1;

View file

@ -43,8 +43,6 @@ Class UTPlayer : DoomPlayer
Player.DamageScreenColor "FF 00 00"; Player.DamageScreenColor "FF 00 00";
Player.ViewHeight 46; Player.ViewHeight 46;
Player.GruntSpeed 20; Player.GruntSpeed 20;
MaxDropoffHeight 18;
MaxStepHeight 18;
+NOMENU; +NOMENU;
UTPlayer.DollType DOLL_Male; UTPlayer.DollType DOLL_Male;
} }
@ -286,7 +284,7 @@ Class UTPlayer : DoomPlayer
if ( fm ) if ( fm )
{ {
int clk = abs(gametic-last_fm_tap); int clk = abs(gametic-last_fm_tap);
if ( (clk < 8) && (last_fm*fm == 0) && (last_tap_fm*fm>0) ) if ( (clk < flak_taptics) && (last_fm*fm == 0) && (last_tap_fm*fm>0) )
dodge += RotateVector((fm,0),angle).unit(); dodge += RotateVector((fm,0),angle).unit();
if ( !last_fm && (last_jump_held < gametic-1) ) if ( !last_fm && (last_jump_held < gametic-1) )
{ {
@ -298,7 +296,7 @@ Class UTPlayer : DoomPlayer
if ( sm ) if ( sm )
{ {
int clk = abs(gametic-last_sm_tap); int clk = abs(gametic-last_sm_tap);
if ( (clk < 8) && (last_sm*sm == 0) && (last_tap_sm*sm>0) ) if ( (clk < flak_taptics) && (last_sm*sm == 0) && (last_tap_sm*sm>0) )
dodge += RotateVector((0,-sm),angle).unit(); dodge += RotateVector((0,-sm),angle).unit();
if ( !last_sm && (last_jump_held < gametic-1) ) if ( !last_sm && (last_jump_held < gametic-1) )
{ {
@ -309,7 +307,7 @@ Class UTPlayer : DoomPlayer
last_sm = sm; last_sm = sm;
if ( !bNoGravity && player.onground && (waterlevel < 2) ) if ( !bNoGravity && player.onground && (waterlevel < 2) )
{ {
if ( dodge.length() > 0 ) if ( flak_tapdodge && (dodge.length() > 0) )
{ {
if ( flak_doomspeed ) vel += dodge.unit()*(groundspeed_doomish*1.5)/TICRATE; if ( flak_doomspeed ) vel += dodge.unit()*(groundspeed_doomish*1.5)/TICRATE;
else vel += dodge.unit()*(groundspeed*1.5)/TICRATE; else vel += dodge.unit()*(groundspeed*1.5)/TICRATE;