WIP stuff.

- Add ice death frames to Doomreal players.
- Fix invisibility not reactivating on map transition.
- Fix a certain option not graying out when prototype features were disabled.
- Remove Doom Tournament spawner file as it will be used in the merge add-on.
- Fix various weapons not respecting infinite ammo cheats/powerups.
- Add HUD icons for the Razorclaw.
- Add sanity checks to Minigun sentry for potential cases where it dies while shooting and this causes an abort.
- Fix Biorifle altfire damage here too.
- When UT splash is disabled, Biorifle globs increase in size by 1.4x on impact, as originally intended.
- Eightball no longer loads a rocket after being selected and instead tweens to idle, like in the original.
- Flak Cannon altfire has a slower reload, as it was meant to.
- Adjust "give armor" cheat so it plays nicely with the merge add-on.
- Fix 0.83 hud playing the "new weapon" flash for all players.
- Made the 0.83 icon assignments moddable through external lists.
- HUD will still display a weapon icon even if it uses no ammo (e.g.: Razorclaw).
This commit is contained in:
Marisa the Magician 2019-11-27 21:37:22 +01:00
commit 43f18514c2
38 changed files with 325 additions and 343 deletions

View file

@ -137,14 +137,20 @@ Class UPlayer : UTPlayer
}
if ( giveall || (name ~== "armor") )
{
// Doomreal gives the player all subclasses of UnrealArmor
// Doomreal gives the player all subclasses of UTArmor that are not replaced by something
for ( int i=0; i<AllActorClasses.Size(); i++ )
{
if ( !(AllActorClasses[i].GetParentClass() is "UnrealArmor") ) continue;
let item = Inventory(Spawn(AllActorClasses[i]));
item.ClearCounters(); // don't increase item counts
item.Amount = item.MaxAmount;
if ( !item.CallTryPickup(self) ) item.Destroy();
let type = (Class<UTArmor>)(AllActorClasses[i]);
if ( !type ) continue;
let def = GetDefaultByType(type);
if ( !def.Icon.isValid() ) continue;
if ( GetReplacement(type) == type )
{
let item = Inventory(Spawn(type));
item.ClearCounters(); // don't increase item counts
item.Amount = item.MaxAmount;
if ( !item.CallTryPickup(self) ) item.Destroy();
}
}
if ( !giveall ) return;
}
@ -376,7 +382,7 @@ Class UPlayerFemale : UPlayer
Goto Death;
Death.Decapitated:
#### # 0 A_HeadPop();
PLD6 A 3 A_PlayerScream();
PLD6 A 3 A_PlayerScreamDT();
PLD6 B 3 A_NoBlocking();
PLD6 CDEFGHIJ 3;
PLD6 K 1 A_DMFade();
@ -388,42 +394,42 @@ Class UPlayerFemale : UPlayer
#### # 0 A_Jump(256,"Death1","Death3","Death4");
Death1:
#### # 3;
PLD1 A 3 A_PlayerScream();
PLD1 A 3 A_PlayerScreamDT();
PLD1 B 3 A_NoBlocking();
PLD1 CDEFGHIJKLMNOPQRSTU 3;
PLD1 V 1 A_DMFade();
Wait;
Death2:
#### # 3;
PLD2 A 3 A_PlayerScream();
PLD2 A 3 A_PlayerScreamDT();
PLD2 B 3 A_NoBlocking();
PLD2 CDEFGHIJKLMNOPQ 3;
PLD2 R 1 A_DMFade();
Wait;
Death3:
#### # 3;
PLD3 A 3 A_PlayerScream();
PLD3 A 3 A_PlayerScreamDT();
PLD3 B 3 A_NoBlocking();
PLD3 CDEFGHIJKLMNO 3;
PLD3 P 1 A_DMFade();
Wait;
Death4:
#### # 3;
PLD4 A 3 A_PlayerScream();
PLD4 A 3 A_PlayerScreamDT();
PLD4 B 3 A_NoBlocking();
PLD4 CDEFGHIJKL 3;
PLD4 M 1 A_DMFade();
Wait;
Death5:
#### # 3;
PLD5 A 3 A_PlayerScream();
PLD5 A 3 A_PlayerScreamDT();
PLD5 B 3 A_NoBlocking();
PLD5 CDEFGHIJKLMNO 3;
PLD5 P 1 A_DMFade();
Wait;
Death7:
#### # 0 A_ArmPop();
PLD7 A 3 A_PlayerScream();
PLD7 A 3 A_PlayerScreamDT();
PLD7 B 3 A_NoBlocking();
PLD7 CDEFGHIJKLMNOPQRSTUV 3;
PLD7 W 1 A_DMFade();
@ -557,14 +563,14 @@ Class UPlayerMale : UPlayer
#### # 0 A_Jump(256,"Death2","Death3","Death7");
Death5:
#### # 0 A_TorsoPop();
PLD5 A 3 A_PlayerScream();
PLD5 A 3 A_PlayerScreamDT();
PLD5 B 3 A_NoBlocking();
PLD5 CDEFGHIJKLMNOPQRSTUV 3;
PLD5 W 1 A_DMFade();
Wait;
Death6:
#### # 3;
PLD6 A 3 A_PlayerScream();
PLD6 A 3 A_PlayerScreamDT();
PLD6 B 3 A_NoBlocking();
PLD6 CDEFGHIJKLMNOPQRSTUVWXYZ[ 3;
PLD6 \ 1 A_DMFade();
@ -845,11 +851,6 @@ Class UnrealWeapon : UTWeapon
{
origin.A_PlaySound(upsound,CHAN_WEAPON,Dampener.Active(origin)?.1:1.);
}
// For clips
virtual clearscope int, int, bool, bool GetClipAmount() const
{
return -1, -1, false, false;
}
}
Class UnrealStaticHandler : StaticEventHandler
@ -940,6 +941,17 @@ Class AmmoUsedInSlot
bool UsedInSlot[10];
}
// nothing at all
Class UNothing : Actor
{
States
{
Spawn:
TNT1 A 1;
Stop;
}
}
Class UnrealMainHandler : EventHandler
{
Array<AmmoUsedInSlot> AmmoSlots;
@ -1197,32 +1209,35 @@ Class UnrealMainHandler : EventHandler
}
}
else if ( e.Replacee == 'TeleportFog' ) e.Replacement = 'UTeleportFog';
// replace UT items (while this is mainly for the DT map pack, it also has the added effect of preventing the guns from being added by "give all")
// replace UT items (prevents them from being cheated in)
else if ( e.Replacee is 'ImpactHammer' ) e.Replacement = 'DispersionPistol';
else if ( e.Replacee is 'Translocator' ) e.Replacement = 'UTranslocator';
else if ( e.Replacee is 'UTChainsaw' ) e.Replacement = 'Slot1Weapons';
else if ( e.Replacee is 'Enforcer' ) e.Replacement = 'Slot2Weapons';
else if ( e.Replacee is 'BioRifle' ) e.Replacement = 'Slot3Weapons';
else if ( e.Replacee is 'ShockRifle' ) e.Replacement = 'Slot4Weapons';
else if ( e.Replacee is 'PulseGun' ) e.Replacement = 'Slot5Weapons';
else if ( e.Replacee is 'Ripper2' ) e.Replacement = 'Slot6Weapons';
else if ( e.Replacee is 'Minigun' ) e.Replacement = 'Slot7Weapons';
else if ( e.Replacee is 'FlakCannon' ) e.Replacement = 'Slot8Ammo';
else if ( e.Replacee is 'UTRocketLauncher' ) e.Replacement = 'Slot0Weapons';
else if ( e.Replacee is 'SniperRifle' ) e.Replacement = 'Slot0Weapons';
else if ( e.Replacee is 'WarheadLauncher' ) e.Replacement = 'Slot0SWeapons';
else if ( e.Replacee is 'EnhancedShockRifle' ) e.Replacement = 'Amplifier';
else if ( e.Replacee is 'UTChainsaw' ) e.Replacement = 'Bonesaw';
else if ( e.Replacee is 'Enforcer' ) e.Replacement = 'Automag';
else if ( e.Replacee is 'BioRifle' ) e.Replacement = 'UBioRifle';
else if ( e.Replacee is 'ShockRifle' ) e.Replacement = 'ASMD';
else if ( e.Replacee is 'PulseGun' ) e.Replacement = 'Stinger';
else if ( e.Replacee is 'Ripper2' ) e.Replacement = 'Razorjack';
else if ( e.Replacee is 'Minigun' ) e.Replacement = 'UMinigun';
else if ( e.Replacee is 'FlakCannon' ) e.Replacement = 'UFlakCannon';
else if ( e.Replacee is 'UTRocketLauncher' ) e.Replacement = 'Eightball';
else if ( e.Replacee is 'SniperRifle' ) e.Replacement = 'URifle';
else if ( e.Replacee is 'WarheadLauncher' ) e.Replacement = 'UNothing';
else if ( e.Replacee is 'EnhancedShockRifle' ) e.Replacement = 'UNothing';
else if ( e.Replacee is 'ChainsawAmmo' ) e.Replacement = 'UNothing';
else if ( e.Replacee is 'EClip' ) e.Replacement = 'Slot2Ammo';
else if ( e.Replacee is 'BioAmmo' ) e.Replacement = 'Slot3Ammo';
else if ( e.Replacee is 'ShockAmmo' ) e.Replacement = 'Slot4Ammo';
else if ( e.Replacee is 'PulseAmmo' ) e.Replacement = 'Slot5Ammo';
else if ( e.Replacee is 'RipperAmmo' ) e.Replacement = 'Slot6Ammo';
else if ( e.Replacee is 'MiniAmmo' ) e.Replacement = 'Slot7Ammo';
else if ( e.Replacee is 'FlakAmmo' ) e.Replacement = 'Slot8Ammo';
else if ( e.Replacee is 'UTRocketAmmo' ) e.Replacement = 'Slot9Ammo';
else if ( e.Replacee is 'RifleAmmo' ) e.Replacement = 'Slot0Ammo';
else if ( e.Replacee is 'WarheadAmmo' ) e.Replacement = 'Slot0SAmmo';
else if ( e.Replacee is 'EClip' ) e.Replacement = 'UClip';
else if ( e.Replacee is 'BioAmmo2' ) e.Replacement = 'UBioAmmo2';
else if ( e.Replacee is 'BioAmmo' ) e.Replacement = 'UBioAmmo';
else if ( e.Replacee is 'ShockAmmo2' ) e.Replacement = 'ASMDAmmo2';
else if ( e.Replacee is 'ShockAmmo' ) e.Replacement = 'ASMDAmmo';
else if ( e.Replacee is 'PulseAmmo' ) e.Replacement = 'StingerAmmo';
else if ( e.Replacee is 'RipperAmmo' ) e.Replacement = 'RazorAmmo';
else if ( e.Replacee is 'MiniAmmo' ) e.Replacement = 'UMiniAmmo';
else if ( e.Replacee is 'FlakAmmo' ) e.Replacement = 'UFlakBox';
else if ( e.Replacee is 'UTRocketAmmo' ) e.Replacement = 'URocketAmmo';
else if ( e.Replacee is 'RifleAmmo2' ) e.Replacement = 'URifleAmmo2';
else if ( e.Replacee is 'RifleAmmo' ) e.Replacement = 'URifleAmmo';
else if ( e.Replacee is 'WarheadAmmo' ) e.Replacement = 'UNothing';
else if ( e.Replacee is 'EnhancedShockAmmo' ) e.Replacement = 'UNothing';
else if ( e.Replacee is 'UTBackpack' ) e.Replacement = 'UnrealBackpack';
else if ( e.Replacee is 'UDamage' ) e.Replacement = 'Amplifier';
@ -1239,7 +1254,6 @@ Class UnrealMainHandler : EventHandler
else if ( e.Replacee is 'UTHealthPack' ) e.Replacement = 'SuperHealth';
else if ( e.Replacee is 'UTHealthBonus' ) e.Replacement = 'Bandages';
else if ( e.Replacee is 'UTJumpBoots' ) e.Replacement = 'UJumpBoots';
// we don't need these
else if ( e.Replacee is 'UTActivatable' ) e.Replacement = 'UNothing';
else if ( e.Replacee is 'UTActivatableHealth' ) e.Replacement = 'UNothing';
}
@ -1293,7 +1307,7 @@ Class UnrealMainHandler : EventHandler
let t = players[e.player].mo.FindInventory("UTranslator");
if ( t ) t.Use(false);
}
else if ( e.Name ~== "Bar083SlotFlash" )
else if ( (e.Name ~== "Bar083SlotFlash") && (e.player == consoleplayer) )
slotflash[e.Args[0]] = gametic+20;
}
private static bool CmpWeapon( Class<Weapon> a, Class <Weapon> b )