From 9b0b199bb558568231a7d12aae2932b9b5acc206 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sat, 23 Dec 2006 12:12:06 +0000 Subject: [PATCH] - Fixed: Commander Keen's death sequence had one state duplicated. - Fixed: Due to the changes for custom states the internal weapons shouldn't define a holdatk state unless it differs from the attack state. - Fixed: The bot code tried to spawn ACajunBodyNode instead of CajunBodyNode. - Changed: MF2_BLASTED doesn't work well for players so I had to take it out of A_BlastRadius. - Fixed: When MF2_BLASTED was cleared MF2_SLIDE got cleared as well, no matter whether it was set by default or not. Now the MF2_SLIDE check checks both flags and the BlastRadius code doesn't set MF2_SLIDE anymore. SVN r422 (trunk) --- docs/rh-log.txt | 13 +++++++++++++ src/b_func.cpp | 4 ++-- src/g_doom/a_doomweaps.cpp | 9 --------- src/g_heretic/a_hereticweaps.cpp | 10 ---------- src/g_hexen/a_blastradius.cpp | 11 ++--------- src/g_hexen/a_clericflame.cpp | 1 - src/g_hexen/a_clericholy.cpp | 1 - src/g_hexen/a_clericmace.cpp | 1 - src/g_hexen/a_clericstaff.cpp | 1 - src/g_hexen/a_fighteraxe.cpp | 1 - src/g_hexen/a_fighterhammer.cpp | 1 - src/g_hexen/a_fighterplayer.cpp | 1 - src/g_hexen/a_fighterquietus.cpp | 1 - src/g_hexen/a_magelightning.cpp | 1 - src/g_hexen/a_magestaff.cpp | 1 - src/g_hexen/a_magewand.cpp | 1 - src/g_strife/a_strifeweapons.cpp | 11 ----------- src/p_map.cpp | 24 +++++++++++++----------- src/p_mobj.cpp | 6 +----- wadsrc/decorate/doom/keen.txt | 1 - 20 files changed, 31 insertions(+), 69 deletions(-) diff --git a/docs/rh-log.txt b/docs/rh-log.txt index 4f68371ff..c7444a598 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,3 +1,14 @@ +December 23, 2006 (Changes by Graf Zahl) +- Fixed: Commander Keen's death sequence had one state duplicated. +- Fixed: Due to the changes for custom states the internal weapons shouldn't + define a holdatk state unless it differs from the attack state. +- Fixed: The bot code tried to spawn ACajunBodyNode instead of CajunBodyNode. +- Changed: MF2_BLASTED doesn't work well for players so I had to take it out + of A_BlastRadius. +- Fixed: When MF2_BLASTED was cleared MF2_SLIDE got cleared as well, no matter + whether it was set by default or not. Now the MF2_SLIDE check checks both + flags and the BlastRadius code doesn't set MF2_SLIDE anymore. + December 22, 2006 - Guests can now watch as other guests connect during i_net handshaking. - Fixed: The host would let more than the desired number of players connect. @@ -6,6 +17,7 @@ December 22, 2006 they received were from the host. - Removed the -net command line option. I'm not sure it even worked anymore. +>>>>>>> .r421 December 20, 2006 - Turned on warning level 4 just to see what it would produce: a lot of warnings. At first, I was going to try and clean them all up. Then I decided @@ -15,6 +27,7 @@ December 20, 2006 C4702 (unreachable code) C4512 (assignment operator could not be generated) +>>>>>>> .r420 December 19, 2006 - Fixed: D3DFB::Reset() also needs to restore the texture border color, otherwise it gets reset to black and unused. diff --git a/src/b_func.cpp b/src/b_func.cpp index db34a4add..27d33af96 100644 --- a/src/b_func.cpp +++ b/src/b_func.cpp @@ -455,14 +455,14 @@ void DCajunMaster::SetBodyAt (fixed_t x, fixed_t y, fixed_t z, int hostnum) if (body1) body1->SetOrigin (x, y, z); else - body1 = Spawn ("ACajunBodyNode", x, y, z, NO_REPLACE); + body1 = Spawn ("CajunBodyNode", x, y, z, NO_REPLACE); } else if (hostnum == 2) { if (body2) body2->SetOrigin (x, y, z); else - body2 = Spawn ("ACajunBodyNode", x, y, z, NO_REPLACE); + body2 = Spawn ("CajunBodyNode", x, y, z, NO_REPLACE); } } diff --git a/src/g_doom/a_doomweaps.cpp b/src/g_doom/a_doomweaps.cpp index a5e46f571..393780021 100644 --- a/src/g_doom/a_doomweaps.cpp +++ b/src/g_doom/a_doomweaps.cpp @@ -55,7 +55,6 @@ IMPLEMENT_ACTOR (AFist, Doom, -1, 0) PROP_Weapon_DownState (S_PUNCHDOWN) PROP_Weapon_ReadyState (S_PUNCH) PROP_Weapon_AtkState (S_PUNCH1) - PROP_Weapon_HoldAtkState (S_PUNCH1) PROP_Weapon_Kickback (100) PROP_Obituary("$OB_MPFIST") @@ -146,7 +145,6 @@ IMPLEMENT_ACTOR (APistol, Doom, -1, 0) PROP_Weapon_DownState (S_PISTOLDOWN) PROP_Weapon_ReadyState (S_PISTOL) PROP_Weapon_AtkState (S_PISTOL1) - PROP_Weapon_HoldAtkState (S_PISTOL1) PROP_Weapon_FlashState (S_PISTOLFLASH) PROP_Weapon_Kickback (100) PROP_Weapon_MoveCombatDist (25000000) @@ -228,7 +226,6 @@ IMPLEMENT_ACTOR (AChainsaw, Doom, 2005, 32) PROP_Weapon_DownState (S_SAWDOWN) PROP_Weapon_ReadyState (S_SAW) PROP_Weapon_AtkState (S_SAW1) - PROP_Weapon_HoldAtkState (S_SAW1) PROP_Weapon_UpSound ("weapons/sawup") PROP_Weapon_ReadySound ("weapons/sawidle") PROP_Obituary("$OB_MPCHAINSAW") @@ -364,7 +361,6 @@ IMPLEMENT_ACTOR (AShotgun, Doom, 2001, 27) PROP_Weapon_DownState (S_SGUNDOWN) PROP_Weapon_ReadyState (S_SGUN) PROP_Weapon_AtkState (S_SGUN1) - PROP_Weapon_HoldAtkState (S_SGUN1) PROP_Weapon_FlashState (S_SGUNFLASH) PROP_Weapon_Kickback (100) PROP_Weapon_MoveCombatDist (24000000) @@ -462,7 +458,6 @@ IMPLEMENT_ACTOR (ASuperShotgun, Doom, 82, 33) PROP_Weapon_DownState (S_DSGUNDOWN) PROP_Weapon_ReadyState (S_DSGUN) PROP_Weapon_AtkState (S_DSGUN1) - PROP_Weapon_HoldAtkState (S_DSGUN1) PROP_Weapon_FlashState (S_DSGUNFLASH) PROP_Weapon_Kickback (100) PROP_Weapon_MoveCombatDist (15000000) @@ -581,7 +576,6 @@ IMPLEMENT_ACTOR (AChaingun, Doom, 2002, 28) PROP_Weapon_DownState (S_CHAINDOWN) PROP_Weapon_ReadyState (S_CHAIN) PROP_Weapon_AtkState (S_CHAIN1) - PROP_Weapon_HoldAtkState (S_CHAIN1) PROP_Weapon_FlashState (S_CHAINFLASH) PROP_Weapon_Kickback (100) PROP_Weapon_MoveCombatDist (27000000) @@ -682,7 +676,6 @@ IMPLEMENT_ACTOR (ARocketLauncher, Doom, 2003, 29) PROP_Weapon_DownState (S_MISSILEDOWN) PROP_Weapon_ReadyState (S_MISSILE) PROP_Weapon_AtkState (S_MISSILE1) - PROP_Weapon_HoldAtkState (S_MISSILE1) PROP_Weapon_FlashState (S_MISSILEFLASH) PROP_Weapon_Kickback (100) PROP_Weapon_MoveCombatDist (18350080) @@ -786,7 +779,6 @@ IMPLEMENT_ACTOR (APlasmaRifle, Doom, 2004, 30) PROP_Weapon_DownState (S_PLASMADOWN) PROP_Weapon_ReadyState (S_PLASMA) PROP_Weapon_AtkState (S_PLASMA1) - PROP_Weapon_HoldAtkState (S_PLASMA1) PROP_Weapon_FlashState (S_PLASMAFLASH) PROP_Weapon_Kickback (100) PROP_Weapon_MoveCombatDist (27000000) @@ -962,7 +954,6 @@ IMPLEMENT_ACTOR (ABFG9000, Doom, 2006, 31) PROP_Weapon_DownState (S_BFGDOWN) PROP_Weapon_ReadyState (S_BFG) PROP_Weapon_AtkState (S_BFG1) - PROP_Weapon_HoldAtkState (S_BFG1) PROP_Weapon_FlashState (S_BFGFLASH) PROP_Weapon_Kickback (100) PROP_Weapon_MoveCombatDist (10000000) diff --git a/src/g_heretic/a_hereticweaps.cpp b/src/g_heretic/a_hereticweaps.cpp index 6addbb794..c51fc19e7 100644 --- a/src/g_heretic/a_hereticweaps.cpp +++ b/src/g_heretic/a_hereticweaps.cpp @@ -118,7 +118,6 @@ IMPLEMENT_ACTOR (AStaff, Heretic, -1, 0) PROP_Weapon_DownState (S_STAFFDOWN) PROP_Weapon_ReadyState (S_STAFFREADY) PROP_Weapon_AtkState (S_STAFFATK1) - PROP_Weapon_HoldAtkState (S_STAFFATK1) PROP_Weapon_SisterType ("StaffPowered") END_DEFAULTS @@ -128,7 +127,6 @@ IMPLEMENT_STATELESS_ACTOR (AStaffPowered, Heretic, -1, 0) PROP_Weapon_DownState (S_STAFFDOWN2) PROP_Weapon_ReadyState (S_STAFFREADY2) PROP_Weapon_AtkState (S_STAFFATK2) - PROP_Weapon_HoldAtkState (S_STAFFATK2) PROP_Weapon_ReadySound ("weapons/staffcrackle") PROP_Weapon_SisterType ("Staff") END_DEFAULTS @@ -317,7 +315,6 @@ IMPLEMENT_ACTOR (AGoldWand, Heretic, -1, 0) PROP_Weapon_DownState (S_GOLDWANDDOWN) PROP_Weapon_ReadyState (S_GOLDWANDREADY) PROP_Weapon_AtkState (S_GOLDWANDATK1) - PROP_Weapon_HoldAtkState (S_GOLDWANDATK1) PROP_Weapon_YAdjust (5) PROP_Weapon_MoveCombatDist (25000000) PROP_Weapon_AmmoType1 ("GoldWandAmmo") @@ -329,7 +326,6 @@ IMPLEMENT_STATELESS_ACTOR (AGoldWandPowered, Heretic, -1, 0) PROP_Weapon_AmmoUse1 (USE_GWND_AMMO_2) PROP_Weapon_AmmoGive1 (0) PROP_Weapon_AtkState (S_GOLDWANDATK2) - PROP_Weapon_HoldAtkState (S_GOLDWANDATK2) PROP_Weapon_SisterType ("GoldWand") END_DEFAULTS @@ -584,7 +580,6 @@ IMPLEMENT_ACTOR (ACrossbow, Heretic, 2001, 27) PROP_Weapon_DownState (S_CRBOWDOWN) PROP_Weapon_ReadyState (S_CRBOW) PROP_Weapon_AtkState (S_CRBOWATK1) - PROP_Weapon_HoldAtkState (S_CRBOWATK1) PROP_Weapon_YAdjust (15) PROP_Weapon_MoveCombatDist (24000000) PROP_Weapon_AmmoType1 ("CrossbowAmmo") @@ -598,7 +593,6 @@ IMPLEMENT_STATELESS_ACTOR (ACrossbowPowered, Heretic, -1, 0) PROP_Weapon_AmmoUse1 (USE_CBOW_AMMO_2) PROP_Weapon_AmmoGive1 (0) PROP_Weapon_AtkState (S_CRBOWATK2) - PROP_Weapon_HoldAtkState (S_CRBOWATK2) PROP_Weapon_SisterType ("Crossbow") PROP_Weapon_ProjectileType ("CrossbowFX2") END_DEFAULTS @@ -888,7 +882,6 @@ IMPLEMENT_STATELESS_ACTOR (AMacePowered, Heretic, -1, 0) PROP_Weapon_AmmoUse1 (USE_MACE_AMMO_2) PROP_Weapon_AmmoGive1 (0) PROP_Weapon_AtkState (S_MACEATK2) - PROP_Weapon_HoldAtkState (S_MACEATK2) PROP_Weapon_SisterType ("Mace") PROP_Weapon_ProjectileType ("MaceFX4") END_DEFAULTS @@ -2166,7 +2159,6 @@ IMPLEMENT_ACTOR (ASkullRod, Heretic, 2004, 30) PROP_Weapon_DownState (S_HORNRODDOWN) PROP_Weapon_ReadyState (S_HORNRODREADY) PROP_Weapon_AtkState (S_HORNRODATK1) - PROP_Weapon_HoldAtkState (S_HORNRODATK1) PROP_Weapon_YAdjust (15) PROP_Weapon_MoveCombatDist (27000000) PROP_Weapon_AmmoType1 ("SkullRodAmmo") @@ -2180,7 +2172,6 @@ IMPLEMENT_STATELESS_ACTOR (ASkullRodPowered, Heretic, -1, 0) PROP_Weapon_AmmoUse1 (USE_SKRD_AMMO_2) PROP_Weapon_AmmoGive1 (0) PROP_Weapon_AtkState (S_HORNRODATK2) - PROP_Weapon_HoldAtkState (S_HORNRODATK2) PROP_Weapon_SisterType ("SkullRod") PROP_Weapon_ProjectileType ("HornRodFX2") END_DEFAULTS @@ -2640,7 +2631,6 @@ IMPLEMENT_ACTOR (APhoenixRod, Heretic, 2003, 29) PROP_Weapon_DownState (S_PHOENIXDOWN) PROP_Weapon_ReadyState (S_PHOENIXREADY) PROP_Weapon_AtkState (S_PHOENIXATK1) - PROP_Weapon_HoldAtkState (S_PHOENIXATK1) PROP_Weapon_YAdjust (15) PROP_Weapon_MoveCombatDist (18350080) PROP_Weapon_AmmoType1 ("PhoenixRodAmmo") diff --git a/src/g_hexen/a_blastradius.cpp b/src/g_hexen/a_blastradius.cpp index bb4f46d3b..234f2db08 100644 --- a/src/g_hexen/a_blastradius.cpp +++ b/src/g_hexen/a_blastradius.cpp @@ -157,7 +157,7 @@ void AArtiBlastRadius::BlastActor (AActor *victim, fixed_t strength) } else { - victim->flags2 |= MF2_SLIDE | MF2_BLASTED; + victim->flags2 |= MF2_BLASTED; } } else // full strength blast from artifact @@ -207,14 +207,7 @@ void AArtiBlastRadius::BlastActor (AActor *victim, fixed_t strength) } else { - if (victim->flags & MF_MISSILE) - { // [RH] Missiles should not slide. - victim->flags2 |= MF2_BLASTED; - } - else - { - victim->flags2 |= MF2_SLIDE | MF2_BLASTED; - } + victim->flags2 |= MF2_BLASTED; } } } diff --git a/src/g_hexen/a_clericflame.cpp b/src/g_hexen/a_clericflame.cpp index 61c8901b7..227edafef 100644 --- a/src/g_hexen/a_clericflame.cpp +++ b/src/g_hexen/a_clericflame.cpp @@ -83,7 +83,6 @@ IMPLEMENT_ACTOR (ACWeapFlame, Hexen, 8009, 0) PROP_Weapon_DownState (S_CFLAMEDOWN) PROP_Weapon_ReadyState (S_CFLAMEREADY) PROP_Weapon_AtkState (S_CFLAMEATK) - PROP_Weapon_HoldAtkState (S_CFLAMEATK) PROP_Weapon_Kickback (150) PROP_Weapon_YAdjust (10) PROP_Weapon_MoveCombatDist (27000000) diff --git a/src/g_hexen/a_clericholy.cpp b/src/g_hexen/a_clericholy.cpp index 61309f5e9..0276cc6b9 100644 --- a/src/g_hexen/a_clericholy.cpp +++ b/src/g_hexen/a_clericholy.cpp @@ -207,7 +207,6 @@ IMPLEMENT_ACTOR (ACWeapWraithverge, Hexen, -1, 0) PROP_Weapon_DownState (S_CHOLYDOWN) PROP_Weapon_ReadyState (S_CHOLYREADY) PROP_Weapon_AtkState (S_CHOLYATK) - PROP_Weapon_HoldAtkState (S_CHOLYATK) PROP_Weapon_Kickback (150) PROP_Weapon_MoveCombatDist (22000000) PROP_Weapon_AmmoType1 ("Mana1") diff --git a/src/g_hexen/a_clericmace.cpp b/src/g_hexen/a_clericmace.cpp index b4162a234..3cfc0441d 100644 --- a/src/g_hexen/a_clericmace.cpp +++ b/src/g_hexen/a_clericmace.cpp @@ -64,7 +64,6 @@ IMPLEMENT_ACTOR (ACWeapMace, Hexen, -1, 0) PROP_Weapon_DownState (S_CMACEDOWN) PROP_Weapon_ReadyState (S_CMACEREADY) PROP_Weapon_AtkState (S_CMACEATK) - PROP_Weapon_HoldAtkState (S_CMACEATK) PROP_Weapon_Kickback (150) PROP_Weapon_YAdjust (0-8) END_DEFAULTS diff --git a/src/g_hexen/a_clericstaff.cpp b/src/g_hexen/a_clericstaff.cpp index aa14356c5..fa052aa06 100644 --- a/src/g_hexen/a_clericstaff.cpp +++ b/src/g_hexen/a_clericstaff.cpp @@ -88,7 +88,6 @@ IMPLEMENT_ACTOR (ACWeapStaff, Hexen, 10, 32) PROP_Weapon_DownState (S_CSTAFFDOWN) PROP_Weapon_ReadyState (S_CSTAFFREADY) PROP_Weapon_AtkState (S_CSTAFFATK) - PROP_Weapon_HoldAtkState (S_CSTAFFATK) PROP_Weapon_Kickback (150) PROP_Weapon_YAdjust (10) PROP_Weapon_MoveCombatDist (25000000) diff --git a/src/g_hexen/a_fighteraxe.cpp b/src/g_hexen/a_fighteraxe.cpp index 60a46db91..b8d0cff6e 100644 --- a/src/g_hexen/a_fighteraxe.cpp +++ b/src/g_hexen/a_fighteraxe.cpp @@ -110,7 +110,6 @@ IMPLEMENT_ACTOR (AFWeapAxe, Hexen, 8010, 27) PROP_Weapon_DownState (S_FAXEDOWN) PROP_Weapon_ReadyState (S_FAXEREADY) PROP_Weapon_AtkState (S_FAXEATK) - PROP_Weapon_HoldAtkState (S_FAXEATK) PROP_Weapon_Kickback (150) PROP_Weapon_YAdjust (0-12) PROP_Weapon_AmmoType1 ("Mana1") diff --git a/src/g_hexen/a_fighterhammer.cpp b/src/g_hexen/a_fighterhammer.cpp index 13512d1c2..84f4ea423 100644 --- a/src/g_hexen/a_fighterhammer.cpp +++ b/src/g_hexen/a_fighterhammer.cpp @@ -71,7 +71,6 @@ IMPLEMENT_ACTOR (AFWeapHammer, Hexen, 123, 28) PROP_Weapon_DownState (S_FHAMMERDOWN) PROP_Weapon_ReadyState (S_FHAMMERREADY) PROP_Weapon_AtkState (S_FHAMMERATK) - PROP_Weapon_HoldAtkState (S_FHAMMERATK) PROP_Weapon_Kickback (150) PROP_Weapon_YAdjust (0-10) PROP_Weapon_MoveCombatDist (22000000) diff --git a/src/g_hexen/a_fighterplayer.cpp b/src/g_hexen/a_fighterplayer.cpp index c75f421d4..c42f7d2dc 100644 --- a/src/g_hexen/a_fighterplayer.cpp +++ b/src/g_hexen/a_fighterplayer.cpp @@ -180,7 +180,6 @@ IMPLEMENT_ACTOR (AFWeapFist, Hexen, -1, 0) PROP_Weapon_DownState (S_PUNCHDOWN) PROP_Weapon_ReadyState (S_PUNCHREADY) PROP_Weapon_AtkState (S_PUNCHATK1) - PROP_Weapon_HoldAtkState (S_PUNCHATK1) PROP_Weapon_Kickback (150) END_DEFAULTS diff --git a/src/g_hexen/a_fighterquietus.cpp b/src/g_hexen/a_fighterquietus.cpp index 58824ed42..c5b8a4ae4 100644 --- a/src/g_hexen/a_fighterquietus.cpp +++ b/src/g_hexen/a_fighterquietus.cpp @@ -197,7 +197,6 @@ IMPLEMENT_ACTOR (AFWeapQuietus, Hexen, -1, 0) PROP_Weapon_DownState (S_FSWORDDOWN) PROP_Weapon_ReadyState (S_FSWORDREADY) PROP_Weapon_AtkState (S_FSWORDATK) - PROP_Weapon_HoldAtkState (S_FSWORDATK) PROP_Weapon_Kickback (150) PROP_Weapon_YAdjust (10) PROP_Weapon_MoveCombatDist (20000000) diff --git a/src/g_hexen/a_magelightning.cpp b/src/g_hexen/a_magelightning.cpp index 3c96a98db..eda2081a5 100644 --- a/src/g_hexen/a_magelightning.cpp +++ b/src/g_hexen/a_magelightning.cpp @@ -105,7 +105,6 @@ IMPLEMENT_ACTOR (AMWeapLightning, Hexen, 8040, 0) PROP_Weapon_DownState (S_MLIGHTNINGDOWN) PROP_Weapon_ReadyState (S_MLIGHTNINGREADY) PROP_Weapon_AtkState (S_MLIGHTNINGATK) - PROP_Weapon_HoldAtkState (S_MLIGHTNINGATK) PROP_Weapon_Kickback (0) PROP_Weapon_YAdjust (20) PROP_Weapon_MoveCombatDist (23000000) diff --git a/src/g_hexen/a_magestaff.cpp b/src/g_hexen/a_magestaff.cpp index 60058bd19..2d12c78d1 100644 --- a/src/g_hexen/a_magestaff.cpp +++ b/src/g_hexen/a_magestaff.cpp @@ -225,7 +225,6 @@ IMPLEMENT_ACTOR (AMWeapBloodscourge, Hexen, -1, 0) PROP_Weapon_DownState (S_MSTAFFDOWN) PROP_Weapon_ReadyState (S_MSTAFFREADY) PROP_Weapon_AtkState (S_MSTAFFATK) - PROP_Weapon_HoldAtkState (S_MSTAFFATK) PROP_Weapon_Kickback (150) PROP_Weapon_YAdjust (20) PROP_Weapon_MoveCombatDist (20000000) diff --git a/src/g_hexen/a_magewand.cpp b/src/g_hexen/a_magewand.cpp index 77bc44f09..af9ede1e8 100644 --- a/src/g_hexen/a_magewand.cpp +++ b/src/g_hexen/a_magewand.cpp @@ -46,7 +46,6 @@ IMPLEMENT_ACTOR (AMWeapWand, Hexen, -1, 0) PROP_Weapon_DownState (S_MWANDDOWN) PROP_Weapon_ReadyState (S_MWANDREADY) PROP_Weapon_AtkState (S_MWANDATK) - PROP_Weapon_HoldAtkState (S_MWANDATK) PROP_Weapon_Kickback (0) PROP_Weapon_YAdjust (9) PROP_Weapon_MoveCombatDist (25000000) diff --git a/src/g_strife/a_strifeweapons.cpp b/src/g_strife/a_strifeweapons.cpp index 364415fad..10afd7cd9 100644 --- a/src/g_strife/a_strifeweapons.cpp +++ b/src/g_strife/a_strifeweapons.cpp @@ -128,7 +128,6 @@ IMPLEMENT_ACTOR (APunchDagger, Strife, -1, 0) PROP_Weapon_DownState (S_PUNCHDOWN) PROP_Weapon_ReadyState (S_PUNCH) PROP_Weapon_AtkState (S_PUNCH1) - PROP_Weapon_HoldAtkState (S_PUNCH1) END_DEFAULTS //============================================================================ @@ -437,7 +436,6 @@ IMPLEMENT_ACTOR (AStrifeCrossbow, Strife, 2001, 0) PROP_Weapon_DownState (S_EXBOWDOWN) PROP_Weapon_ReadyState (S_EXBOW) PROP_Weapon_AtkState (S_EXBOWATK) - PROP_Weapon_HoldAtkState (S_EXBOWATK) PROP_Weapon_MoveCombatDist (24000000) PROP_Weapon_AmmoType1 ("ElectricBolts") PROP_Weapon_SisterType ("StrifeCrossbow2") @@ -464,7 +462,6 @@ IMPLEMENT_STATELESS_ACTOR (AStrifeCrossbow2, Strife, -1, 0) PROP_Weapon_DownState (S_PXBOWDOWN) PROP_Weapon_ReadyState (S_PXBOW) PROP_Weapon_AtkState (S_PXBOWATK) - PROP_Weapon_HoldAtkState (S_PXBOWATK) PROP_Weapon_AmmoType1 ("PoisonBolts") PROP_Weapon_SisterType ("StrifeCrossbow") PROP_Weapon_ProjectileType ("PoisonBolt") @@ -635,7 +632,6 @@ IMPLEMENT_ACTOR (AAssaultGun, Strife, 2002, 0) PROP_Weapon_DownState (S_ASSAULTDOWN) PROP_Weapon_ReadyState (S_ASSAULT) PROP_Weapon_AtkState (S_ASSAULTATK) - PROP_Weapon_HoldAtkState (S_ASSAULTATK) PROP_Weapon_MoveCombatDist (27000000) PROP_Weapon_AmmoType1 ("ClipOfBullets") @@ -805,7 +801,6 @@ IMPLEMENT_ACTOR (AMiniMissileLauncher, Strife, 2003, 0) PROP_Weapon_DownState (S_MMISSILEDOWN) PROP_Weapon_ReadyState (S_MMISSILE) PROP_Weapon_AtkState (S_MMISSILEATK) - PROP_Weapon_HoldAtkState (S_MMISSILEATK) PROP_Weapon_MoveCombatDist (18350080) PROP_Weapon_AmmoType1 ("MiniMissiles") @@ -986,7 +981,6 @@ IMPLEMENT_ACTOR (AFlameThrower, Strife, 2005, 0) PROP_Weapon_DownState (S_FLAMERDOWN) PROP_Weapon_ReadyState (S_FLAMER) PROP_Weapon_AtkState (S_FLAMERATK) - PROP_Weapon_HoldAtkState (S_FLAMERATK) PROP_Weapon_UpSound ("weapons/flameidle") PROP_Weapon_ReadySound ("weapons/flameidle") PROP_Weapon_AmmoType1 ("EnergyPod") @@ -1156,7 +1150,6 @@ IMPLEMENT_ACTOR (AMauler, Strife, 2004, 0) PROP_Weapon_DownState (S_MAULER1DOWN) PROP_Weapon_ReadyState (S_MAULER1) PROP_Weapon_AtkState (S_MAULER1ATK) - PROP_Weapon_HoldAtkState (S_MAULER1ATK) PROP_Weapon_MoveCombatDist (15000000) PROP_Weapon_AmmoType1 ("EnergyPod") PROP_Weapon_SisterType ("Mauler2") @@ -1183,7 +1176,6 @@ IMPLEMENT_STATELESS_ACTOR (AMauler2, Strife, -1, 0) PROP_Weapon_DownState (S_MAULER2DOWN) PROP_Weapon_ReadyState (S_MAULER2) PROP_Weapon_AtkState (S_MAULER2ATK) - PROP_Weapon_HoldAtkState (S_MAULER2ATK) PROP_Weapon_MoveCombatDist (10000000) PROP_Weapon_AmmoType1 ("EnergyPod") PROP_Weapon_SisterType ("Mauler") @@ -1717,7 +1709,6 @@ IMPLEMENT_ACTOR (AStrifeGrenadeLauncher, Strife, 154, 0) PROP_Weapon_DownState (S_HEGRENADE_DOWN) PROP_Weapon_ReadyState (S_HEGRENADE) PROP_Weapon_AtkState (S_HEGRENADE_ATK) - PROP_Weapon_HoldAtkState (S_HEGRENADE_ATK) PROP_Weapon_FlashState (S_HEGRENADE_FLASH) PROP_Weapon_MoveCombatDist (18350080) PROP_Weapon_AmmoType1 ("HEGrenadeRounds") @@ -1744,7 +1735,6 @@ IMPLEMENT_STATELESS_ACTOR (AStrifeGrenadeLauncher2, Strife, -1, 0) PROP_Weapon_DownState (S_PHGRENADE_DOWN) PROP_Weapon_ReadyState (S_PHGRENADE) PROP_Weapon_AtkState (S_PHGRENADE_ATK) - PROP_Weapon_HoldAtkState (S_PHGRENADE_ATK) PROP_Weapon_FlashState (S_PHGRENADE_FLASH) PROP_Weapon_AmmoType1 ("PhosphorusGrenadeRounds") PROP_Weapon_SisterType ("StrifeGrenadeLauncher") @@ -1906,7 +1896,6 @@ IMPLEMENT_ACTOR (ASigil, Strife, -1, 0) PROP_Weapon_DownState (S_SIGILDOWN) PROP_Weapon_ReadyState (S_SIGIL) PROP_Weapon_AtkState (S_SIGILATK) - PROP_Weapon_HoldAtkState (S_SIGILATK) PROP_Weapon_FlashState (S_SIGILFLASH) PROP_Sigil_NumPieces (1) PROP_SpawnState (0) diff --git a/src/p_map.cpp b/src/p_map.cpp index 28276cffd..f0e0d05fa 100644 --- a/src/p_map.cpp +++ b/src/p_map.cpp @@ -1666,15 +1666,16 @@ bool P_TryMove (AActor *thing, fixed_t x, fixed_t y, // killough 3/15/98: Allow certain objects to drop off if ((!dropoff && !(thing->flags & (MF_DROPOFF|MF_FLOAT|MF_MISSILE))) || (thing->flags5&MF5_NODROPOFF)) { - fixed_t floorz = tmfloorz; - // [RH] If the thing is standing on something, use its current z as the floorz. - // This is so that it does not walk off of things onto a drop off. - if (thing->flags2 & MF2_ONMOBJ) - { - floorz = MAX(thing->z, tmfloorz); - } if (!(thing->flags5&MF5_AVOIDINGDROPOFF)) { + fixed_t floorz = tmfloorz; + // [RH] If the thing is standing on something, use its current z as the floorz. + // This is so that it does not walk off of things onto a drop off. + if (thing->flags2 & MF2_ONMOBJ) + { + floorz = MAX(thing->z, tmfloorz); + } + if (floorz - tmdropoffz > thing->MaxDropOffHeight && !(thing->flags2 & MF2_BLASTED)) { // Can't move over a dropoff unless it's been blasted @@ -1685,7 +1686,8 @@ bool P_TryMove (AActor *thing, fixed_t x, fixed_t y, else { // special logic to move a monster off a dropoff - if (thing->floorz - floorz > thing->MaxDropOffHeight || + // this intentionally does not check for standing on things. + if (thing->floorz - tmfloorz > thing->MaxDropOffHeight || thing->dropoffz - tmdropoffz > thing->MaxDropOffHeight) return false; } } @@ -3614,13 +3616,13 @@ bool PIT_RadiusAttack (AActor *thing) int damage = (int)points; if (bombdodamage) P_DamageMobj (thing, bombspot, bombsource, damage, bombmod); - else thing->flags2 |= MF2_BLASTED; + else if (thing->player == NULL) thing->flags2 |= MF2_BLASTED; if (!(thing->flags & MF_ICECORPSE)) { if (bombdodamage && !(bombspot->flags3 & MF3_BLOODLESSIMPACT)) P_TraceBleed (damage, thing, bombspot); - if (!(bombspot->flags2 & MF2_NODMGTHRUST)) + if (!bombdodamage || !(bombspot->flags2 & MF2_NODMGTHRUST)) { thrust = points * 0.5f / (float)thing->Mass; if (bombsource == thing) @@ -3639,7 +3641,7 @@ bool PIT_RadiusAttack (AActor *thing) angle_t ang = R_PointToAngle2 (bombspot->x, bombspot->y, thing->x, thing->y) >> ANGLETOFINESHIFT; thing->momx += fixed_t (finecosine[ang] * thrust); thing->momy += fixed_t (finesine[ang] * thrust); - thing->momz += (fixed_t)momz; + if (bombdodamage) thing->momz += (fixed_t)momz; // this really doesn't work well } } } diff --git a/src/p_mobj.cpp b/src/p_mobj.cpp index 57d36d133..5474a96bb 100644 --- a/src/p_mobj.cpp +++ b/src/p_mobj.cpp @@ -1483,7 +1483,7 @@ void P_XYMovement (AActor *mo, fixed_t scrollx, fixed_t scrolly) { // blocked move - if (mo->flags2 & MF2_SLIDE || bForceSlide) + if ((mo->flags2 & (MF2_SLIDE|MF2_BLASTED) || bForceSlide) && !(mo->flags&MF_MISSILE)) { // try to slide along it if (BlockingMobj == NULL) @@ -2794,10 +2794,6 @@ void AActor::Tick () if ((momx | momy) == 0 && (flags2 & MF2_BLASTED)) { // Reset to not blasted when momentums are gone flags2 &= ~MF2_BLASTED; - if (!(flags & MF_ICECORPSE)) - { - flags2 &= ~MF2_SLIDE; - } } if (flags2 & MF2_FLOATBOB) diff --git a/wadsrc/decorate/doom/keen.txt b/wadsrc/decorate/doom/keen.txt index 9e776934b..ad1b716c9 100644 --- a/wadsrc/decorate/doom/keen.txt +++ b/wadsrc/decorate/doom/keen.txt @@ -26,7 +26,6 @@ ACTOR CommanderKeen 72 Loop Death: KEEN AB 6 - KEEN B 6 KEEN C 6 A_Scream KEEN DEFGH 6 KEEN I 6 A_NoBlocking