1.1.1 update (to be made stable after GZDoom updates):
- Sound overhaul, migrated everything to A_StartSound, new sound channels, CHANF_OVERLAP where needed. - Fancy titlemap (two variants, one based on the ps2 menu, one based on the v222 menu).
This commit is contained in:
parent
da8f6fc4b2
commit
94cba843e4
42 changed files with 272 additions and 179 deletions
|
|
@ -59,15 +59,16 @@ This mod requires GZDoom 4.2.4 or later.
|
||||||
- Liquid splashes
|
- Liquid splashes
|
||||||
- Original Invulnerability and Night Vision items
|
- Original Invulnerability and Night Vision items
|
||||||
- Hexen compatibility
|
- Hexen compatibility
|
||||||
|
- Fancy titlemap
|
||||||
|
- Semi-accurate UT sound behaviour
|
||||||
|
|
||||||
## In progress
|
## In progress
|
||||||
|
|
||||||
- N/A, this is the 1.1 release.
|
- N/A this is the 1.1.1 release.
|
||||||
|
|
||||||
## Planned
|
## Planned
|
||||||
|
|
||||||
- Stuff for 1.2
|
- Stuff for 1.2
|
||||||
- Fancy titlemap with intro narration.
|
|
||||||
- Touch up blood/gibbing features. At the moment, Nashgore is still a
|
- Touch up blood/gibbing features. At the moment, Nashgore is still a
|
||||||
superior alternative.
|
superior alternative.
|
||||||
- Help screens describing items and stuff (maybe?).
|
- Help screens describing items and stuff (maybe?).
|
||||||
|
|
|
||||||
10
gldefs.txt
10
gldefs.txt
|
|
@ -882,6 +882,16 @@ HardwareShader Texture "models/S_Ammo.png"
|
||||||
Shader "shaders/glsl/AmbientGlow_Brightmapped.fp"
|
Shader "shaders/glsl/AmbientGlow_Brightmapped.fp"
|
||||||
Texture brighttex "brightmaps/S_Ammo.png"
|
Texture brighttex "brightmaps/S_Ammo.png"
|
||||||
}
|
}
|
||||||
|
HardwareShader Texture "graphics/UTBg.png"
|
||||||
|
{
|
||||||
|
Shader "shaders/glsl/UTBg.fp"
|
||||||
|
Texture starstex "graphics/UTBg_Stars.png"
|
||||||
|
Texture moontex "graphics/UTBg_Moon.png"
|
||||||
|
}
|
||||||
|
HardwareShader Texture "graphics/UTProtoBg.png"
|
||||||
|
{
|
||||||
|
Shader "shaders/glsl/UTProtoBg.fp"
|
||||||
|
}
|
||||||
// PP shaders
|
// PP shaders
|
||||||
HardwareShader PostProcess scene
|
HardwareShader PostProcess scene
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 146 KiB After Width: | Height: | Size: 173 KiB |
BIN
graphics/UTBg.png
Normal file
BIN
graphics/UTBg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 109 KiB |
BIN
graphics/UTBg_Moon.png
Normal file
BIN
graphics/UTBg_Moon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 51 KiB |
BIN
graphics/UTBg_Stars.png
Normal file
BIN
graphics/UTBg_Stars.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1 KiB |
BIN
graphics/UTProtoBg.png
Normal file
BIN
graphics/UTProtoBg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
|
|
@ -98,9 +98,9 @@ OptionMenu "UTCreditsMenu"
|
||||||
StaticText "Epic Games", "White"
|
StaticText "Epic Games", "White"
|
||||||
StaticText " "
|
StaticText " "
|
||||||
StaticText "$FLAK_CPATRON", "Gold"
|
StaticText "$FLAK_CPATRON", "Gold"
|
||||||
StaticText "Aisamai, Alexa Jones-Gonzales, Jonas Höglund,", "White"
|
StaticText "john, Alexa Jones-Gonzales, Jonas Höglund,", "White"
|
||||||
StaticText "Zard1084, Jonathan Nemo, NekoMithos, 3d0xp0xy", "White"
|
StaticText "Xada Xephron, Zard1084, Jonathan Nemo,", "White"
|
||||||
StaticText "Xada Xephron, m8f, john", "White"
|
StaticText "NekoMithos, m8f, 3d0xp0xy", "White"
|
||||||
StaticText " "
|
StaticText " "
|
||||||
StaticText "$FLAK_CTHANK", "Gold"
|
StaticText "$FLAK_CTHANK", "Gold"
|
||||||
StaticText "KynikossDragonn, Raffine52, KeksDose, Skerion", "White"
|
StaticText "KynikossDragonn, Raffine52, KeksDose, Skerion", "White"
|
||||||
|
|
@ -132,4 +132,4 @@ OptionMenu "UTCreditsMenu"
|
||||||
StaticText "$FLAK_CBIZ", "Gold"
|
StaticText "$FLAK_CBIZ", "Gold"
|
||||||
StaticText "Jay Wilbur, Mark Rein", "White"
|
StaticText "Jay Wilbur, Mark Rein", "White"
|
||||||
StaticText " "
|
StaticText " "
|
||||||
}
|
}
|
||||||
|
|
|
||||||
21
shaders/glsl/utbg.fp
Normal file
21
shaders/glsl/utbg.fp
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
vec4 ProcessTexel()
|
||||||
|
{
|
||||||
|
vec2 uv = vTexCoord.st;
|
||||||
|
vec2 ccoord = uv-vec2(.5,1.1);
|
||||||
|
ccoord.y = abs(ccoord.y);
|
||||||
|
vec3 pt = vec3(ccoord.x,ccoord.y-1.,ccoord.y);
|
||||||
|
vec2 proj = pt.xy/pt.z;
|
||||||
|
vec2 coord = uv*4.;
|
||||||
|
vec3 bcol = texture(starstex,fract(coord)).rgb;
|
||||||
|
coord = uv*1.5;
|
||||||
|
coord = (coord-vec2(.8,.3))*2.;
|
||||||
|
vec4 mcol = texture(moontex,coord);
|
||||||
|
bcol = mix(bcol*.3,mcol.rgb*.7,mcol.a);
|
||||||
|
coord = proj*.5+vec2(-.5,-1.)*timer*.1;
|
||||||
|
coord = fract(coord);
|
||||||
|
vec3 col = getTexel(coord).rgb;
|
||||||
|
col *= mix(vec3(1.9,.4,.2),vec3(1.),pow(pt.z,.5));
|
||||||
|
col *= mix(vec3(1.3,.5,.3),vec3(1.),pow(pt.x+.8,.5));
|
||||||
|
col *= mix(vec3(1.1,1.4,1.3),vec3(.3),clamp(1.3*pow(distance(pt.xy,vec2(.2,-.25)),.9),0.,1.));
|
||||||
|
return vec4(bcol+col,1.);
|
||||||
|
}
|
||||||
22
shaders/glsl/utprotobg.fp
Normal file
22
shaders/glsl/utprotobg.fp
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
// based on https://www.shadertoy.com/view/Ms2SWW
|
||||||
|
|
||||||
|
vec4 ProcessTexel()
|
||||||
|
{
|
||||||
|
vec2 uv = vTexCoord.st;
|
||||||
|
vec2 p = 2.*(uv-.5);
|
||||||
|
p.x += sin(timer*.2)*.3;
|
||||||
|
p.y += cos(timer*.2)*.3;
|
||||||
|
float a = atan(p.y,p.x);
|
||||||
|
a += timer*.1;
|
||||||
|
float r = length(p);
|
||||||
|
vec2 ccoord = fract(vec2(.25/r+.1*timer,a/3.14169265)*4.);
|
||||||
|
vec3 col = getTexel(ccoord).rgb;
|
||||||
|
a += .125*3.14159265;
|
||||||
|
ccoord = fract(vec2(.25/r+.05*timer,a/3.14169265)*4.);
|
||||||
|
col += getTexel(ccoord).rgb;
|
||||||
|
col *= vec3(.3,.6,1.);
|
||||||
|
col += pow(max(0.,1.2-r),1.5);
|
||||||
|
col *= vec3(1.,1.2,1.5);
|
||||||
|
col = clamp(col,vec3(0.),vec3(1.));
|
||||||
|
return vec4(col,1.);
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,4 +1,4 @@
|
||||||
version "4.2.4"
|
version "4.3"
|
||||||
|
|
||||||
#include "zscript/dt_libeye/projector.txt"
|
#include "zscript/dt_libeye/projector.txt"
|
||||||
#include "zscript/dt_libeye/projector gl.txt"
|
#include "zscript/dt_libeye/projector gl.txt"
|
||||||
|
|
@ -6,8 +6,8 @@ version "4.2.4"
|
||||||
#include "zscript/dt_libeye/viewport.txt"
|
#include "zscript/dt_libeye/viewport.txt"
|
||||||
#include "zscript/dt_coordutil.zsc"
|
#include "zscript/dt_coordutil.zsc"
|
||||||
#include "zscript/dt_quaternion.zsc"
|
#include "zscript/dt_quaternion.zsc"
|
||||||
#include "zscript/utgore.zsc"
|
|
||||||
#include "zscript/utcommon.zsc"
|
#include "zscript/utcommon.zsc"
|
||||||
|
#include "zscript/utgore.zsc"
|
||||||
#include "zscript/impacthammer.zsc"
|
#include "zscript/impacthammer.zsc"
|
||||||
#include "zscript/chainsaw.zsc"
|
#include "zscript/chainsaw.zsc"
|
||||||
#include "zscript/translocator.zsc"
|
#include "zscript/translocator.zsc"
|
||||||
|
|
|
||||||
|
|
@ -164,7 +164,7 @@ Class UTShieldBelt : UTArmor
|
||||||
{
|
{
|
||||||
if ( (amount > 0) && !DamageTypeDefinition.IgnoreArmor(damageType) )
|
if ( (amount > 0) && !DamageTypeDefinition.IgnoreArmor(damageType) )
|
||||||
{
|
{
|
||||||
Owner.A_PlaySound("belt/absorb",CHAN_7);
|
Owner.A_StartSound("belt/absorb",CHAN_POWERUP4,CHANF_OVERLAP);
|
||||||
UTMainHandler.DoFlash(Owner,Color(80,255,224,0),5);
|
UTMainHandler.DoFlash(Owner,Color(80,255,224,0),5);
|
||||||
}
|
}
|
||||||
Super.AbsorbDamage(damage,damageType,newdamage);
|
Super.AbsorbDamage(damage,damageType,newdamage);
|
||||||
|
|
|
||||||
|
|
@ -505,7 +505,7 @@ Class BioGel : Actor
|
||||||
}
|
}
|
||||||
b = Spawn("BioHitbox",pos);
|
b = Spawn("BioHitbox",pos);
|
||||||
b.target = self;
|
b.target = self;
|
||||||
A_PlaySound("bio/hit");
|
A_StartSound("bio/hit",CHAN_BODY);
|
||||||
A_SprayDecal("BioSplat",-172);
|
A_SprayDecal("BioSplat",-172);
|
||||||
int numpt = Min(100,int(Scale.x*10))+Random[GES](-5,5);
|
int numpt = Min(100,int(Scale.x*10))+Random[GES](-5,5);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
|
|
@ -538,7 +538,7 @@ Class BioGel : Actor
|
||||||
if ( invoker.atline ) invoker.atline.RemoteActivate(target,invoker.atside,SPAC_Impact,pos);
|
if ( invoker.atline ) invoker.atline.RemoteActivate(target,invoker.atside,SPAC_Impact,pos);
|
||||||
UTMainHandler.DoBlast(self,Min(175,int(Scale.x*50)),20000*Scale.x);
|
UTMainHandler.DoBlast(self,Min(175,int(Scale.x*50)),20000*Scale.x);
|
||||||
A_Explode(int(Args[0]*Scale.x),Min(175,int(Scale.x*50)));
|
A_Explode(int(Args[0]*Scale.x),Min(175,int(Scale.x*50)));
|
||||||
A_PlaySound("bio/explode",CHAN_VOICE);
|
A_StartSound("bio/explode",CHAN_VOICE);
|
||||||
int numpt = Min(300,int(Scale.x*30))+Random[GES](-10,10);
|
int numpt = Min(300,int(Scale.x*30))+Random[GES](-10,10);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
{
|
{
|
||||||
|
|
@ -704,7 +704,8 @@ Class BioRifle : UTWeapon
|
||||||
if ( weap.Ammo1.Amount <= 0 ) return;
|
if ( weap.Ammo1.Amount <= 0 ) return;
|
||||||
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
||||||
}
|
}
|
||||||
A_PlaySound("bio/fire",CHAN_WEAPON);
|
A_StopSound(CHAN_WEAPONMISC);
|
||||||
|
A_StartSound("bio/fire",CHAN_WEAPON,CHANF_OVERLAP);
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
UTMainHandler.DoFlash(self,Color(48,0,255,0),1);
|
UTMainHandler.DoFlash(self,Color(48,0,255,0),1);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
|
|
@ -749,7 +750,7 @@ Class BioRifle : UTWeapon
|
||||||
if ( !weap ) return;
|
if ( !weap ) return;
|
||||||
invoker.charge = 0;
|
invoker.charge = 0;
|
||||||
invoker.special1 = 0;
|
invoker.special1 = 0;
|
||||||
A_PlaySound("bio/charge",CHAN_WEAPON);
|
A_StartSound("bio/charge",CHAN_WEAPONMISC);
|
||||||
invoker.bCharging = true;
|
invoker.bCharging = true;
|
||||||
}
|
}
|
||||||
action void A_ChargeUp()
|
action void A_ChargeUp()
|
||||||
|
|
|
||||||
|
|
@ -166,8 +166,8 @@ Class UTChainsaw : UTWeapon
|
||||||
bool quitout = false;
|
bool quitout = false;
|
||||||
if ( invoker.Ammo1 && (invoker.Ammo1.Amount <= 0) )
|
if ( invoker.Ammo1 && (invoker.Ammo1.Amount <= 0) )
|
||||||
{
|
{
|
||||||
A_StopSound(CHAN_6);
|
A_StopSound(CHAN_WEAPONMISC);
|
||||||
A_PlaySound("chainsaw/lower",CHAN_WEAPON);
|
A_StartSound("chainsaw/lower",CHAN_WEAPON);
|
||||||
quitout = true;
|
quitout = true;
|
||||||
}
|
}
|
||||||
else if ( !(player.cmd.buttons&BT_ATTACK) ) quitout = true;
|
else if ( !(player.cmd.buttons&BT_ATTACK) ) quitout = true;
|
||||||
|
|
@ -218,9 +218,9 @@ Class UTChainsaw : UTWeapon
|
||||||
}
|
}
|
||||||
override void DetachFromOwner()
|
override void DetachFromOwner()
|
||||||
{
|
{
|
||||||
if ( Owner ) Owner.A_StopSound(CHAN_6);
|
if ( Owner ) Owner.A_StopSound(CHAN_WEAPONMISC);
|
||||||
if ( !Ammo1 || (Ammo1.Amount > 0) )
|
if ( !Ammo1 || (Ammo1.Amount > 0) )
|
||||||
A_PlaySound("chainsaw/lower",CHAN_6);
|
A_StartSound("chainsaw/lower",CHAN_WEAPONMISC);
|
||||||
Super.DetachFromOwner();
|
Super.DetachFromOwner();
|
||||||
}
|
}
|
||||||
action void A_Vibrate( bool bAlt = false )
|
action void A_Vibrate( bool bAlt = false )
|
||||||
|
|
@ -287,7 +287,7 @@ Class UTChainsaw : UTWeapon
|
||||||
CSWI A 0
|
CSWI A 0
|
||||||
{
|
{
|
||||||
if ( !invoker.Ammo1 || (invoker.Ammo1.Amount > 0) )
|
if ( !invoker.Ammo1 || (invoker.Ammo1.Amount > 0) )
|
||||||
A_PlaySound("chainsaw/idle",CHAN_6,looping:true);
|
A_StartSound("chainsaw/idle",CHAN_WEAPONMISC,CHANF_LOOPING);
|
||||||
else
|
else
|
||||||
return ResolveState("DryIdle");
|
return ResolveState("DryIdle");
|
||||||
return ResolveState(null);
|
return ResolveState(null);
|
||||||
|
|
@ -298,8 +298,8 @@ Class UTChainsaw : UTWeapon
|
||||||
A_WeaponReady();
|
A_WeaponReady();
|
||||||
if ( invoker.Ammo1 && (invoker.Ammo1.Amount <= 0) )
|
if ( invoker.Ammo1 && (invoker.Ammo1.Amount <= 0) )
|
||||||
{
|
{
|
||||||
A_StopSound(CHAN_6);
|
A_StopSound(CHAN_WEAPONMISC);
|
||||||
A_PlaySound("chainsaw/lower",CHAN_WEAPON);
|
A_StartSound("chainsaw/lower",CHAN_WEAPON);
|
||||||
return ResolveState("DryIdle");
|
return ResolveState("DryIdle");
|
||||||
}
|
}
|
||||||
return ResolveState(null);
|
return ResolveState(null);
|
||||||
|
|
@ -311,7 +311,7 @@ Class UTChainsaw : UTWeapon
|
||||||
A_WeaponReady(WRF_NOFIRE);
|
A_WeaponReady(WRF_NOFIRE);
|
||||||
if ( !invoker.Ammo1 || (invoker.Ammo1.Amount > 0) )
|
if ( !invoker.Ammo1 || (invoker.Ammo1.Amount > 0) )
|
||||||
{
|
{
|
||||||
A_PlaySound("chainsaw/select",CHAN_WEAPON);
|
A_StartSound("chainsaw/select",CHAN_WEAPON);
|
||||||
return ResolveState("Idle");
|
return ResolveState("Idle");
|
||||||
}
|
}
|
||||||
else if ( player.cmd.buttons&(BT_ATTACK|BT_ALTATTACK) )
|
else if ( player.cmd.buttons&(BT_ATTACK|BT_ALTATTACK) )
|
||||||
|
|
@ -320,7 +320,7 @@ Class UTChainsaw : UTWeapon
|
||||||
}
|
}
|
||||||
Wait;
|
Wait;
|
||||||
Fire:
|
Fire:
|
||||||
CSWJ A 1 A_PlaySound("chainsaw/fire",CHAN_6,looping:true);
|
CSWJ A 1 A_StartSound("chainsaw/fire",CHAN_WEAPONMISC,CHANF_LOOPING);
|
||||||
CSWJ BCDEF 1 A_Vibrate();
|
CSWJ BCDEF 1 A_Vibrate();
|
||||||
Goto Hold;
|
Goto Hold;
|
||||||
Hold:
|
Hold:
|
||||||
|
|
@ -332,7 +332,8 @@ Class UTChainsaw : UTWeapon
|
||||||
AltFire:
|
AltFire:
|
||||||
CSWA A 0
|
CSWA A 0
|
||||||
{
|
{
|
||||||
A_PlaySound("chainsaw/fire",CHAN_6);
|
A_StopSound(CHAN_WEAPONMISC);
|
||||||
|
A_StartSound("chainsaw/fire",CHAN_WEAPON);
|
||||||
UTMainHandler.DoSwing(self,(FRandom[Chainsaw](-0.8,-1.2),FRandom[Chainsaw](-0.4,-0.7)),0,1,5,SWING_Spring,6,3);
|
UTMainHandler.DoSwing(self,(FRandom[Chainsaw](-0.8,-1.2),FRandom[Chainsaw](-0.4,-0.7)),0,1,5,SWING_Spring,6,3);
|
||||||
}
|
}
|
||||||
CSWA ABCDE 2 A_Vibrate(true);
|
CSWA ABCDE 2 A_Vibrate(true);
|
||||||
|
|
@ -347,10 +348,14 @@ Class UTChainsaw : UTWeapon
|
||||||
{
|
{
|
||||||
if ( invoker.Ammo1 && (invoker.Ammo1.Amount <= 0) )
|
if ( invoker.Ammo1 && (invoker.Ammo1.Amount <= 0) )
|
||||||
{
|
{
|
||||||
A_StopSound(CHAN_6);
|
A_StopSound(CHAN_WEAPONMISC);
|
||||||
A_PlaySound("chainsaw/lower",CHAN_WEAPON);
|
A_StartSound("chainsaw/lower",CHAN_WEAPON);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
A_StopSound(CHAN_WEAPON);
|
||||||
|
A_StartSound("chainsaw/idle",CHAN_WEAPONMISC,CHANF_LOOPING);
|
||||||
}
|
}
|
||||||
else A_PlaySound("chainsaw/idle",CHAN_6,looping:true);
|
|
||||||
}
|
}
|
||||||
Goto Ready;
|
Goto Ready;
|
||||||
AltFireSwipes:
|
AltFireSwipes:
|
||||||
|
|
@ -361,7 +366,7 @@ Class UTChainsaw : UTWeapon
|
||||||
CSWD A 0
|
CSWD A 0
|
||||||
{
|
{
|
||||||
if ( !invoker.Ammo1 || (invoker.Ammo1.Amount > 0) )
|
if ( !invoker.Ammo1 || (invoker.Ammo1.Amount > 0) )
|
||||||
A_PlaySound("chainsaw/lower",CHAN_6);
|
A_StartSound("chainsaw/lower",CHAN_WEAPONMISC);
|
||||||
}
|
}
|
||||||
CSWD ABCDEF 1;
|
CSWD ABCDEF 1;
|
||||||
CSWD F 1 A_Lower(int.max);
|
CSWD F 1 A_Lower(int.max);
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,7 @@ Class UTActivatable : Inventory
|
||||||
let i = GetDefaultByType(GiveItem);
|
let i = GetDefaultByType(GiveItem);
|
||||||
if ( Owner.GiveInventory(GiveItem,i.Amount) )
|
if ( Owner.GiveInventory(GiveItem,i.Amount) )
|
||||||
{
|
{
|
||||||
Owner.A_PlaySound(i.PickupSound,CHAN_ITEM);
|
Owner.A_StartSound(i.PickupSound,CHAN_ITEM);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -127,7 +127,7 @@ Class UTRocket : Actor
|
||||||
Super.PostBeginPlay();
|
Super.PostBeginPlay();
|
||||||
let l = Spawn("UTRocketTrail",pos);
|
let l = Spawn("UTRocketTrail",pos);
|
||||||
l.target = self;
|
l.target = self;
|
||||||
A_PlaySound("utrl/fly",CHAN_VOICE,1.0,true,2.5,pitch:1.5625);
|
A_StartSound("utrl/fly",CHAN_VOICE,CHANF_LOOPING,1.,2.5,1.5625);
|
||||||
if ( tracer ) vel *= 0.9;
|
if ( tracer ) vel *= 0.9;
|
||||||
Acceleration = vel.unit()*50;
|
Acceleration = vel.unit()*50;
|
||||||
}
|
}
|
||||||
|
|
@ -141,7 +141,7 @@ Class UTRocket : Actor
|
||||||
UTMainHandler.DoBlast(self,rad,80000);
|
UTMainHandler.DoBlast(self,rad,80000);
|
||||||
A_Explode(dmg,rad);
|
A_Explode(dmg,rad);
|
||||||
A_QuakeEx(3,3,3,8,0,rad+50,"",QF_RELATIVE|QF_SCALEDOWN,falloff:rad,rollIntensity:0.2);
|
A_QuakeEx(3,3,3,8,0,rad+50,"",QF_RELATIVE|QF_SCALEDOWN,falloff:rad,rollIntensity:0.2);
|
||||||
A_PlaySound("utrl/explode",CHAN_VOICE);
|
A_StartSound("utrl/explode",CHAN_VOICE);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
Spawn("RocketExplLight",pos);
|
Spawn("RocketExplLight",pos);
|
||||||
int numpt = Random[Eightball](15,30);
|
int numpt = Random[Eightball](15,30);
|
||||||
|
|
@ -266,7 +266,7 @@ Class UTGrenade : UTRocket
|
||||||
RCKT A 0
|
RCKT A 0
|
||||||
{
|
{
|
||||||
bHITOWNER = true;
|
bHITOWNER = true;
|
||||||
A_PlaySound("utrl/bounce");
|
A_StartSound("utrl/bounce",CHAN_BODY);
|
||||||
rollvel = FRandom[Eightball](-16,16);
|
rollvel = FRandom[Eightball](-16,16);
|
||||||
pitchvel = FRandom[Eightball](-16,16);
|
pitchvel = FRandom[Eightball](-16,16);
|
||||||
anglevel = FRandom[Eightball](-16,16);
|
anglevel = FRandom[Eightball](-16,16);
|
||||||
|
|
@ -321,7 +321,7 @@ Class UTRocketLauncher : UTWeapon
|
||||||
LockedTarget = null;
|
LockedTarget = null;
|
||||||
LockedOn = false;
|
LockedOn = false;
|
||||||
if ( Owner.player.ReadyWeapon == self )
|
if ( Owner.player.ReadyWeapon == self )
|
||||||
Owner.A_PlaySound("utrl/seeklost",CHAN_WEAPON);
|
Owner.A_StartSound("utrl/seeklost",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
}
|
}
|
||||||
if ( LockedTarget ) crosshair = 99;
|
if ( LockedTarget ) crosshair = 99;
|
||||||
else crosshair = 0;
|
else crosshair = 0;
|
||||||
|
|
@ -358,8 +358,8 @@ Class UTRocketLauncher : UTWeapon
|
||||||
Weapon weap = Weapon(invoker);
|
Weapon weap = Weapon(invoker);
|
||||||
if ( !weap ) return;
|
if ( !weap ) return;
|
||||||
invoker.special1 = 0;
|
invoker.special1 = 0;
|
||||||
if ( weap.bAltFire ) A_PlaySound("utrl/altfire",CHAN_WEAPON);
|
if ( weap.bAltFire ) A_StartSound("utrl/altfire",CHAN_WEAPON,CHANF_OVERLAP);
|
||||||
else A_PlaySound("utrl/fire",CHAN_WEAPON);
|
else A_StartSound("utrl/fire",CHAN_WEAPON,CHANF_OVERLAP);
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
UTMainHandler.DoFlash(self,Color(64,255,0,0),1);
|
UTMainHandler.DoFlash(self,Color(64,255,0,0),1);
|
||||||
if ( self is 'UTPlayer' )
|
if ( self is 'UTPlayer' )
|
||||||
|
|
@ -427,7 +427,7 @@ Class UTRocketLauncher : UTWeapon
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// lose lock-on
|
// lose lock-on
|
||||||
if ( invoker.LockedOn ) A_PlaySound("utrl/seeklost",CHAN_6);
|
if ( invoker.LockedOn ) A_StartSound("utrl/seeklost",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
invoker.LockedTarget = null;
|
invoker.LockedTarget = null;
|
||||||
invoker.LockedOn = false;
|
invoker.LockedOn = false;
|
||||||
for ( int i=0; i<12; i++ )
|
for ( int i=0; i<12; i++ )
|
||||||
|
|
@ -462,8 +462,8 @@ Class UTRocketLauncher : UTWeapon
|
||||||
invoker.LockedTarget = a;
|
invoker.LockedTarget = a;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( invoker.LockedTarget ) A_PlaySound("utrl/seeklock",CHAN_WEAPON);
|
if ( invoker.LockedTarget ) A_StartSound("utrl/seeklock",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
else if ( invoker.LockedOn ) A_PlaySound("utrl/seeklost",CHAN_WEAPON);
|
else if ( invoker.LockedOn ) A_StartSound("utrl/seeklost",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
if ( invoker.LockedTarget ) invoker.LockedOn = true;
|
if ( invoker.LockedTarget ) invoker.LockedOn = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -524,7 +524,7 @@ Class UTRocketLauncher : UTWeapon
|
||||||
Reload:
|
Reload:
|
||||||
EBLI A 5
|
EBLI A 5
|
||||||
{
|
{
|
||||||
A_PlaySound("utrl/load",CHAN_6,0.3);
|
A_StartSound("utrl/load",CHAN_WEAPONMISC,CHANF_OVERLAP,0.3);
|
||||||
if ( invoker.bSingleRocket = !invoker.bSingleRocket )
|
if ( invoker.bSingleRocket = !invoker.bSingleRocket )
|
||||||
A_Print(StringTable.Localize("$M_SINGLEROCKETON"));
|
A_Print(StringTable.Localize("$M_SINGLEROCKETON"));
|
||||||
else A_Print(StringTable.Localize("$M_SINGLEROCKETOFF"));
|
else A_Print(StringTable.Localize("$M_SINGLEROCKETOFF"));
|
||||||
|
|
@ -537,57 +537,57 @@ Class UTRocketLauncher : UTWeapon
|
||||||
EBLI A 2 A_JumpIf((!invoker.bAltFire&&invoker.bSingleRocket)||(invoker.Ammo1.Amount<=0)||FireCheck(),"FireOne");
|
EBLI A 2 A_JumpIf((!invoker.bAltFire&&invoker.bSingleRocket)||(invoker.Ammo1.Amount<=0)||FireCheck(),"FireOne");
|
||||||
EBLI A 0; // no tween
|
EBLI A 0; // no tween
|
||||||
// load two
|
// load two
|
||||||
EBR1 A 0 A_PlaySound("utrl/rotate",CHAN_6,0.1);
|
EBR1 A 0 A_StartSound("utrl/rotate",CHAN_WEAPONMISC,CHANF_OVERLAP,0.1);
|
||||||
EBR1 ABCDEFG 2 A_JumpIf(FireCheck(),"FireOne");
|
EBR1 ABCDEFG 2 A_JumpIf(FireCheck(),"FireOne");
|
||||||
EBL2 A 0 A_PlaySound("utrl/load",CHAN_6);
|
EBL2 A 0 A_StartSound("utrl/load",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
EBL2 ABCDEFG 3 A_JumpIf(FireCheck(),"FireOne");
|
EBL2 ABCDEFG 2 A_JumpIf(FireCheck(),"FireOne");
|
||||||
EBR2 A 0
|
EBR2 A 0
|
||||||
{
|
{
|
||||||
A_LoadRocket();
|
A_LoadRocket();
|
||||||
return A_JumpIf((invoker.Ammo1.Amount<=0)||FireCheck(),"FireTwo");
|
return A_JumpIf((invoker.Ammo1.Amount<=0)||FireCheck(),"FireTwo");
|
||||||
}
|
}
|
||||||
// load three
|
// load three
|
||||||
EBR2 A 0 A_PlaySound("utrl/rotate",CHAN_6,0.1);
|
EBR2 A 0 A_StartSound("utrl/rotate",CHAN_WEAPONMISC,CHANF_OVERLAP,0.1);
|
||||||
EBR2 ABCDEFG 2 A_JumpIf(FireCheck(),"FireTwo");
|
EBR2 ABCDEFG 2 A_JumpIf(FireCheck(),"FireTwo");
|
||||||
EBL3 A 0 A_PlaySound("utrl/load",CHAN_6);
|
EBL3 A 0 A_StartSound("utrl/load",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
EBL3 ABCDEFG 3 A_JumpIf(FireCheck(),"FireTwo");
|
EBL3 ABCDEFG 2 A_JumpIf(FireCheck(),"FireTwo");
|
||||||
EBR3 A 0
|
EBR3 A 0
|
||||||
{
|
{
|
||||||
A_LoadRocket();
|
A_LoadRocket();
|
||||||
return A_JumpIf((invoker.Ammo1.Amount<=0)||FireCheck(),"FireThree");
|
return A_JumpIf((invoker.Ammo1.Amount<=0)||FireCheck(),"FireThree");
|
||||||
}
|
}
|
||||||
// load four
|
// load four
|
||||||
EBR3 A 0 A_PlaySound("utrl/rotate",CHAN_6,0.1);
|
EBR3 A 0 A_StartSound("utrl/rotate",CHAN_WEAPONMISC,CHANF_OVERLAP,0.1);
|
||||||
EBR3 ABCDEFG 2 A_JumpIf(FireCheck(),"FireThree");
|
EBR3 ABCDEFG 2 A_JumpIf(FireCheck(),"FireThree");
|
||||||
EBL4 A 0 A_PlaySound("utrl/load",CHAN_6);
|
EBL4 A 0 A_StartSound("utrl/load",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
EBL4 ABCDEFG 3 A_JumpIf(FireCheck(),"FireThree");
|
EBL4 ABCDEFG 2 A_JumpIf(FireCheck(),"FireThree");
|
||||||
EBR4 A 0
|
EBR4 A 0
|
||||||
{
|
{
|
||||||
A_LoadRocket();
|
A_LoadRocket();
|
||||||
return A_JumpIf((invoker.Ammo1.Amount<=0)||FireCheck(),"FireFour");
|
return A_JumpIf((invoker.Ammo1.Amount<=0)||FireCheck(),"FireFour");
|
||||||
}
|
}
|
||||||
// load five
|
// load five
|
||||||
EBR4 A 0 A_PlaySound("utrl/rotate",CHAN_6,0.1);
|
EBR4 A 0 A_StartSound("utrl/rotate",CHAN_WEAPONMISC,CHANF_OVERLAP,0.1);
|
||||||
EBR4 ABCDEFG 2 A_JumpIf(FireCheck(),"FireFour");
|
EBR4 ABCDEFG 2 A_JumpIf(FireCheck(),"FireFour");
|
||||||
EBL5 A 0 A_PlaySound("utrl/load",CHAN_6);
|
EBL5 A 0 A_StartSound("utrl/load",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
EBL5 ABCDEFG 3 A_JumpIf(FireCheck(),"FireFour");
|
EBL5 ABCDEFG 2 A_JumpIf(FireCheck(),"FireFour");
|
||||||
EBR5 A 0
|
EBR5 A 0
|
||||||
{
|
{
|
||||||
A_LoadRocket();
|
A_LoadRocket();
|
||||||
return A_JumpIf((invoker.Ammo1.Amount<=0)||FireCheck(),"FireFive");
|
return A_JumpIf((invoker.Ammo1.Amount<=0)||FireCheck(),"FireFive");
|
||||||
}
|
}
|
||||||
// load six
|
// load six
|
||||||
EBR5 A 0 A_PlaySound("utrl/rotate",CHAN_6,0.1);
|
EBR5 A 0 A_StartSound("utrl/rotate",CHAN_WEAPONMISC,CHANF_OVERLAP,0.1);
|
||||||
EBR5 ABCDEFG 2 A_JumpIf(FireCheck(),"FireFive");
|
EBR5 ABCDEFG 2 A_JumpIf(FireCheck(),"FireFive");
|
||||||
EBL6 A 0 A_PlaySound("utrl/load",CHAN_6);
|
EBL6 A 0 A_StartSound("utrl/load",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
EBL6 ABCDEF 3 A_JumpIf(FireCheck(),"FireFive");
|
EBL6 ABCDEF 2 A_JumpIf(FireCheck(),"FireFive");
|
||||||
EBL6 F 0 A_LoadRocket();
|
EBL6 F 0 A_LoadRocket();
|
||||||
Goto FireSix;
|
Goto FireSix;
|
||||||
FireOne:
|
FireOne:
|
||||||
EBF1 A 0 A_FireRockets(1);
|
EBF1 A 0 A_FireRockets(1);
|
||||||
EBF1 ABCDEFGH 2;
|
EBF1 ABCDEFGH 2;
|
||||||
EBL1 A 0 A_CheckReload();
|
EBL1 A 0 A_CheckReload();
|
||||||
EBL1 A 2 A_PlaySound("utrl/load",CHAN_6);
|
EBL1 A 2 A_StartSound("utrl/load",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
EBL1 BCDEFG 2;
|
EBL1 BCDEFG 2;
|
||||||
EBLI A 0;
|
EBLI A 0;
|
||||||
Goto Idle;
|
Goto Idle;
|
||||||
|
|
@ -595,7 +595,7 @@ Class UTRocketLauncher : UTWeapon
|
||||||
EBF2 A 0 A_FireRockets(2);
|
EBF2 A 0 A_FireRockets(2);
|
||||||
EBF2 ABCDEFGHIJK 2;
|
EBF2 ABCDEFGHIJK 2;
|
||||||
EBL1 A 0 A_CheckReload();
|
EBL1 A 0 A_CheckReload();
|
||||||
EBL1 A 2 A_PlaySound("utrl/load",CHAN_6);
|
EBL1 A 2 A_StartSound("utrl/load",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
EBL1 BCDEFG 2;
|
EBL1 BCDEFG 2;
|
||||||
EBLI A 0;
|
EBLI A 0;
|
||||||
Goto Idle;
|
Goto Idle;
|
||||||
|
|
@ -603,7 +603,7 @@ Class UTRocketLauncher : UTWeapon
|
||||||
EBF3 A 0 A_FireRockets(3);
|
EBF3 A 0 A_FireRockets(3);
|
||||||
EBF3 ABCDEFGHIJ 2;
|
EBF3 ABCDEFGHIJ 2;
|
||||||
EBL1 A 0 A_CheckReload();
|
EBL1 A 0 A_CheckReload();
|
||||||
EBL1 A 2 A_PlaySound("utrl/load",CHAN_6);
|
EBL1 A 2 A_StartSound("utrl/load",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
EBL1 BCDEFG 2;
|
EBL1 BCDEFG 2;
|
||||||
EBLI A 0;
|
EBLI A 0;
|
||||||
Goto Idle;
|
Goto Idle;
|
||||||
|
|
@ -611,7 +611,7 @@ Class UTRocketLauncher : UTWeapon
|
||||||
EBF4 A 0 A_FireRockets(4);
|
EBF4 A 0 A_FireRockets(4);
|
||||||
EBF4 ABCDEFGHIJK 2;
|
EBF4 ABCDEFGHIJK 2;
|
||||||
EBL1 A 0 A_CheckReload();
|
EBL1 A 0 A_CheckReload();
|
||||||
EBL1 A 2 A_PlaySound("utrl/load",CHAN_6);
|
EBL1 A 2 A_StartSound("utrl/load",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
EBL1 BCDEFG 2;
|
EBL1 BCDEFG 2;
|
||||||
EBLI A 0;
|
EBLI A 0;
|
||||||
Goto Idle;
|
Goto Idle;
|
||||||
|
|
@ -619,7 +619,7 @@ Class UTRocketLauncher : UTWeapon
|
||||||
EBF5 A 0 A_FireRockets(5);
|
EBF5 A 0 A_FireRockets(5);
|
||||||
EBF5 ABCDEFGHIJKLM 2;
|
EBF5 ABCDEFGHIJKLM 2;
|
||||||
EBL1 A 0 A_CheckReload();
|
EBL1 A 0 A_CheckReload();
|
||||||
EBL1 A 2 A_PlaySound("utrl/load",CHAN_6);
|
EBL1 A 2 A_StartSound("utrl/load",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
EBL1 BCDEFG 2;
|
EBL1 BCDEFG 2;
|
||||||
EBLI A 0;
|
EBLI A 0;
|
||||||
Goto Idle;
|
Goto Idle;
|
||||||
|
|
@ -627,7 +627,7 @@ Class UTRocketLauncher : UTWeapon
|
||||||
EBF6 A 0 A_FireRockets(6);
|
EBF6 A 0 A_FireRockets(6);
|
||||||
EBF6 ABCDEFGHIJKLMNOP 2;
|
EBF6 ABCDEFGHIJKLMNOP 2;
|
||||||
EBL1 A 0 A_CheckReload();
|
EBL1 A 0 A_CheckReload();
|
||||||
EBL1 A 2 A_PlaySound("utrl/load",CHAN_6);
|
EBL1 A 2 A_StartSound("utrl/load",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
EBL1 BCDEFG 2;
|
EBL1 BCDEFG 2;
|
||||||
EBLI A 0;
|
EBLI A 0;
|
||||||
Goto Idle;
|
Goto Idle;
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,8 @@ Class BulletImpact : Actor
|
||||||
let s = Spawn("UTChip",pos+x*2);
|
let s = Spawn("UTChip",pos+x*2);
|
||||||
s.vel = pvel;
|
s.vel = pvel;
|
||||||
}
|
}
|
||||||
A_PlaySound("bullet/hit",CHAN_VOICE,attenuation:3.0);
|
if ( !Random[Enforcer](0,3) ) A_StartSound("flak/hit",CHAN_VOICE,attenuation:2.5);
|
||||||
|
else A_StartSound("bullet/hit",CHAN_VOICE,attenuation:3.0);
|
||||||
let s = Spawn("Splasher",Vec3Offset(0,0,2));
|
let s = Spawn("Splasher",Vec3Offset(0,0,2));
|
||||||
s.vel = (0,0,-4);
|
s.vel = (0,0,-4);
|
||||||
}
|
}
|
||||||
|
|
@ -274,7 +275,7 @@ Class Enforcer : UTWeapon
|
||||||
if ( invoker.altaccuracy < 0.2 ) invoker.altaccuracy += 0.05;
|
if ( invoker.altaccuracy < 0.2 ) invoker.altaccuracy += 0.05;
|
||||||
if ( slave )
|
if ( slave )
|
||||||
{
|
{
|
||||||
if ( flak_enforcerreload && (invoker.slaveclipcount < 5) ) A_PlaySound("enforcer/click",CHAN_6);
|
if ( flak_enforcerreload && (invoker.slaveclipcount < 5) ) A_StartSound("enforcer/click",CHAN_LEFTWEAPONMISC);
|
||||||
if ( (invoker.slaveclipcount <= 0) || (weap.Ammo1.Amount <= 0) )
|
if ( (invoker.slaveclipcount <= 0) || (weap.Ammo1.Amount <= 0) )
|
||||||
{
|
{
|
||||||
invoker.slaverefire = 0;
|
invoker.slaverefire = 0;
|
||||||
|
|
@ -301,7 +302,7 @@ Class Enforcer : UTWeapon
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( flak_enforcerreload && (invoker.clipcount < 5) ) A_PlaySound("enforcer/click",CHAN_WEAPON);
|
if ( flak_enforcerreload && (invoker.clipcount < 5) ) A_StartSound("enforcer/click",CHAN_WEAPONMISC);
|
||||||
if ( (invoker.clipcount <= 0) || (weap.Ammo1.Amount <= 0) )
|
if ( (invoker.clipcount <= 0) || (weap.Ammo1.Amount <= 0) )
|
||||||
{
|
{
|
||||||
A_ClearRefire();
|
A_ClearRefire();
|
||||||
|
|
@ -357,7 +358,7 @@ Class Enforcer : UTWeapon
|
||||||
}
|
}
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
UTMainHandler.DoFlash(self,Color(32,255,128,0),1);
|
UTMainHandler.DoFlash(self,Color(32,255,128,0),1);
|
||||||
A_PlaySound("enforcer/shoot",slave?CHAN_6:CHAN_WEAPON);
|
A_StartSound("enforcer/shoot",slave?CHAN_LEFTWEAPON:CHAN_WEAPON,CHANF_OVERLAP);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
A_QuakeEx(2,2,2,4,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.08);
|
A_QuakeEx(2,2,2,4,0,1,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.08);
|
||||||
if ( slave )
|
if ( slave )
|
||||||
|
|
@ -518,7 +519,7 @@ Class Enforcer : UTWeapon
|
||||||
LeftReady:
|
LeftReady:
|
||||||
2NFS A 0
|
2NFS A 0
|
||||||
{
|
{
|
||||||
A_PlaySound("enforcer/select",CHAN_6);
|
A_StartSound("enforcer/select",CHAN_LEFTWEAPON);
|
||||||
invoker.slaveactive = true;
|
invoker.slaveactive = true;
|
||||||
}
|
}
|
||||||
2NFS ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 A_JumpIf(invoker.slavedown,"LeftDeselect");
|
2NFS ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 A_JumpIf(invoker.slavedown,"LeftDeselect");
|
||||||
|
|
@ -619,7 +620,7 @@ Class Enforcer : UTWeapon
|
||||||
invoker.clipout = true;
|
invoker.clipout = true;
|
||||||
invoker.clipcount = 0;
|
invoker.clipcount = 0;
|
||||||
A_Overlay(-9999,null);
|
A_Overlay(-9999,null);
|
||||||
A_PlaySound("enforcer/click",CHAN_WEAPON);
|
A_StartSound("enforcer/click",CHAN_WEAPONMISC);
|
||||||
}
|
}
|
||||||
ENFR ABCDEFGHIJKLMNOPQRSTUVWXYZ 1;
|
ENFR ABCDEFGHIJKLMNOPQRSTUVWXYZ 1;
|
||||||
ENR2 AB 1;
|
ENR2 AB 1;
|
||||||
|
|
@ -627,7 +628,7 @@ Class Enforcer : UTWeapon
|
||||||
{
|
{
|
||||||
invoker.clipout = false;
|
invoker.clipout = false;
|
||||||
invoker.clipcount = min(invoker.default.clipcount,invoker.Ammo1.Amount);
|
invoker.clipcount = min(invoker.default.clipcount,invoker.Ammo1.Amount);
|
||||||
A_PlaySound("enforcer/reload",CHAN_WEAPON);
|
A_StartSound("enforcer/reload",CHAN_WEAPON);
|
||||||
if ( self is 'UTPlayer' )
|
if ( self is 'UTPlayer' )
|
||||||
UTPlayer(self).PlayReloading();
|
UTPlayer(self).PlayReloading();
|
||||||
invoker.slavereload = (flak_enforcerreload&&invoker.slaveactive&&(invoker.slaveclipcount<min(invoker.default.slaveclipcount,invoker.Ammo1.Amount)));
|
invoker.slavereload = (flak_enforcerreload&&invoker.slaveactive&&(invoker.slaveclipcount<min(invoker.default.slaveclipcount,invoker.Ammo1.Amount)));
|
||||||
|
|
@ -639,7 +640,7 @@ Class Enforcer : UTWeapon
|
||||||
c.pitch = pitch;
|
c.pitch = pitch;
|
||||||
c.vel = vel*.5+x*FRandom[Junk](-.5,.5)+y*FRandom[Junk](-.5,.5)-z*FRandom[Junk](1,2);
|
c.vel = vel*.5+x*FRandom[Junk](-.5,.5)+y*FRandom[Junk](-.5,.5)-z*FRandom[Junk](1,2);
|
||||||
}
|
}
|
||||||
ENFS A 0 A_PlaySound("enforcer/select",CHAN_WEAPON);
|
ENFS A 0 A_StartSound("enforcer/select",CHAN_WEAPON);
|
||||||
Goto Ready;
|
Goto Ready;
|
||||||
LeftReload:
|
LeftReload:
|
||||||
2NFR A 0
|
2NFR A 0
|
||||||
|
|
@ -652,7 +653,7 @@ Class Enforcer : UTWeapon
|
||||||
invoker.slaveclipout = true;
|
invoker.slaveclipout = true;
|
||||||
invoker.slaveclipcount = 0;
|
invoker.slaveclipcount = 0;
|
||||||
A_Overlay(-9998,null);
|
A_Overlay(-9998,null);
|
||||||
A_PlaySound("enforcer/click",CHAN_6);
|
A_StartSound("enforcer/click",CHAN_LEFTWEAPONMISC);
|
||||||
return ResolveState(null);
|
return ResolveState(null);
|
||||||
}
|
}
|
||||||
2NFR ABCDEFGHIJKLMNOPQRSTUVWXYZ 1;
|
2NFR ABCDEFGHIJKLMNOPQRSTUVWXYZ 1;
|
||||||
|
|
@ -661,7 +662,7 @@ Class Enforcer : UTWeapon
|
||||||
{
|
{
|
||||||
invoker.slaveclipout = false;
|
invoker.slaveclipout = false;
|
||||||
invoker.slaveclipcount = min(invoker.default.slaveclipcount,invoker.Ammo1.Amount);
|
invoker.slaveclipcount = min(invoker.default.slaveclipcount,invoker.Ammo1.Amount);
|
||||||
A_PlaySound("enforcer/reload",CHAN_6);
|
A_StartSound("enforcer/reload",CHAN_LEFTWEAPON);
|
||||||
if ( self is 'UTPlayer' )
|
if ( self is 'UTPlayer' )
|
||||||
UTPlayer(self).PlayReloading();
|
UTPlayer(self).PlayReloading();
|
||||||
invoker.slavereload = false;
|
invoker.slavereload = false;
|
||||||
|
|
@ -673,7 +674,7 @@ Class Enforcer : UTWeapon
|
||||||
c.pitch = pitch;
|
c.pitch = pitch;
|
||||||
c.vel = vel*.5+x*FRandom[Junk](-.5,.5)+y*FRandom[Junk](-.5,.5)-z*FRandom[Junk](1,2);
|
c.vel = vel*.5+x*FRandom[Junk](-.5,.5)+y*FRandom[Junk](-.5,.5)-z*FRandom[Junk](1,2);
|
||||||
}
|
}
|
||||||
2NFS A 0 A_PlaySound("enforcer/select",CHAN_6);
|
2NFS A 0 A_StartSound("enforcer/select",CHAN_LEFTWEAPON);
|
||||||
Goto LeftReady;
|
Goto LeftReady;
|
||||||
Deselect:
|
Deselect:
|
||||||
ENFD A 0
|
ENFD A 0
|
||||||
|
|
|
||||||
|
|
@ -341,7 +341,7 @@ Class FlakChunk : Actor
|
||||||
rollvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1)*(vel.length()/speed);
|
rollvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1)*(vel.length()/speed);
|
||||||
pitchvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1)*(vel.length()/speed);
|
pitchvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1)*(vel.length()/speed);
|
||||||
yawvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1)*(vel.length()/speed);
|
yawvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1)*(vel.length()/speed);
|
||||||
A_PlaySound("flak/bounce",volume:0.3);
|
A_StartSound("flak/bounce",volume:0.3);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
if ( vel.length() < 5 ) ExplodeMissile();
|
if ( vel.length() < 5 ) ExplodeMissile();
|
||||||
}
|
}
|
||||||
|
|
@ -351,7 +351,7 @@ Class FlakChunk : Actor
|
||||||
if ( !target.bNOBLOOD )
|
if ( !target.bNOBLOOD )
|
||||||
{
|
{
|
||||||
target.SpawnBlood(pos,AngleTo(target),damage);
|
target.SpawnBlood(pos,AngleTo(target),damage);
|
||||||
A_PlaySound("flak/meat",volume:0.3);
|
A_StartSound("flak/meat",volume:0.3);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
|
|
@ -373,7 +373,7 @@ Class FlakChunk : Actor
|
||||||
if ( !victim.bNOBLOOD && (victim.health-amt > victim.GetGibHealth()) )
|
if ( !victim.bNOBLOOD && (victim.health-amt > victim.GetGibHealth()) )
|
||||||
{
|
{
|
||||||
victim.SpawnBlood(pos,AngleTo(victim),damage);
|
victim.SpawnBlood(pos,AngleTo(victim),damage);
|
||||||
A_PlaySound("flak/meat",volume:0.3);
|
A_StartSound("flak/meat",volume:0.3);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
|
|
@ -418,7 +418,7 @@ Class FlakChunk : Actor
|
||||||
else dir = vel.unit();
|
else dir = vel.unit();
|
||||||
l.angle = atan2(dir.y,dir.x);
|
l.angle = atan2(dir.y,dir.x);
|
||||||
l.pitch = asin(-dir.z);
|
l.pitch = asin(-dir.z);
|
||||||
A_PlaySound("flak/hit",volume:0.3);
|
A_StartSound("flak/hit",volume:0.3);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
}
|
}
|
||||||
XDeath:
|
XDeath:
|
||||||
|
|
@ -519,7 +519,7 @@ Class FlakSlug : Actor
|
||||||
UTMainHandler.DoBlast(self,120,75000);
|
UTMainHandler.DoBlast(self,120,75000);
|
||||||
A_Explode(70,120);
|
A_Explode(70,120);
|
||||||
A_QuakeEx(4,4,4,8,0,170,"",QF_RELATIVE|QF_SCALEDOWN,falloff:120,rollIntensity:0.2);
|
A_QuakeEx(4,4,4,8,0,170,"",QF_RELATIVE|QF_SCALEDOWN,falloff:120,rollIntensity:0.2);
|
||||||
A_PlaySound("flak/explode",CHAN_VOICE);
|
A_StartSound("flak/explode",CHAN_VOICE);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
if ( !Tracer ) Spawn("SlugSmoke",pos);
|
if ( !Tracer ) Spawn("SlugSmoke",pos);
|
||||||
Spawn("SlugLight",pos);
|
Spawn("SlugLight",pos);
|
||||||
|
|
@ -639,8 +639,8 @@ Class FlakCannon : UTWeapon
|
||||||
{
|
{
|
||||||
action void A_Loading( bool first = false )
|
action void A_Loading( bool first = false )
|
||||||
{
|
{
|
||||||
if ( first ) A_PlaySound("flak/load",CHAN_WEAPON);
|
if ( first ) A_StartSound("flak/load",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
else A_PlaySound("flak/reload",CHAN_6);
|
else A_StartSound("flak/reload",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
}
|
}
|
||||||
action void A_FireChunks()
|
action void A_FireChunks()
|
||||||
{
|
{
|
||||||
|
|
@ -648,7 +648,7 @@ Class FlakCannon : UTWeapon
|
||||||
if ( !weap ) return;
|
if ( !weap ) return;
|
||||||
if ( weap.Ammo1.Amount <= 0 ) return;
|
if ( weap.Ammo1.Amount <= 0 ) return;
|
||||||
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
||||||
A_PlaySound("flak/fire",CHAN_WEAPON);
|
A_StartSound("flak/fire",CHAN_WEAPON);
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
UTMainHandler.DoFlash(self,Color(160,255,96,0),1);
|
UTMainHandler.DoFlash(self,Color(160,255,96,0),1);
|
||||||
UTMainHandler.DoSwing(self,(FRandom[Flak](-0.3,-0.8),FRandom[Flak](-0.5,0.5)),4,-1.5,2,SWING_Spring,2,2);
|
UTMainHandler.DoSwing(self,(FRandom[Flak](-0.3,-0.8),FRandom[Flak](-0.5,0.5)),4,-1.5,2,SWING_Spring,2,2);
|
||||||
|
|
@ -707,7 +707,7 @@ Class FlakCannon : UTWeapon
|
||||||
if ( !weap ) return;
|
if ( !weap ) return;
|
||||||
if ( weap.Ammo1.Amount <= 0 ) return;
|
if ( weap.Ammo1.Amount <= 0 ) return;
|
||||||
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
||||||
A_PlaySound("flak/altfire",CHAN_WEAPON);
|
A_StartSound("flak/altfire",CHAN_WEAPON);
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
UTMainHandler.DoFlash(self,Color(128,255,96,0),1);
|
UTMainHandler.DoFlash(self,Color(128,255,96,0),1);
|
||||||
UTMainHandler.DoSwing(self,(FRandom[Flak](-0.4,-0.8),FRandom[Flak](0.4,0.8)),4,-1,3,SWING_Spring,3,5);
|
UTMainHandler.DoSwing(self,(FRandom[Flak](-0.4,-0.8),FRandom[Flak](0.4,0.8)),4,-1,3,SWING_Spring,3,5);
|
||||||
|
|
|
||||||
|
|
@ -87,7 +87,8 @@ Class ImpactHammer : UTWeapon
|
||||||
{
|
{
|
||||||
Weapon weap = Weapon(invoker);
|
Weapon weap = Weapon(invoker);
|
||||||
if ( !weap ) return;
|
if ( !weap ) return;
|
||||||
A_PlaySound("impact/release",CHAN_WEAPON);
|
A_StopSound(CHAN_WEAPONMISC);
|
||||||
|
A_StartSound("impact/release",CHAN_WEAPON);
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
UTMainHandler.DoSwing(self,(FRandom[Impact](-0.3,-1.5),FRandom[Impact](-1.2,-0.4)),3,-0.8,3,SWING_Spring,3,2);
|
UTMainHandler.DoSwing(self,(FRandom[Impact](-0.3,-1.5),FRandom[Impact](-1.2,-0.4)),3,-0.8,3,SWING_Spring,3,2);
|
||||||
A_AlertMonsters(gameinfo.gametype&GAME_Strife?100:0);
|
A_AlertMonsters(gameinfo.gametype&GAME_Strife?100:0);
|
||||||
|
|
@ -152,7 +153,7 @@ Class ImpactHammer : UTWeapon
|
||||||
{
|
{
|
||||||
Weapon weap = Weapon(invoker);
|
Weapon weap = Weapon(invoker);
|
||||||
if ( !weap ) return;
|
if ( !weap ) return;
|
||||||
A_PlaySound("impact/fire",CHAN_WEAPON);
|
A_StartSound("impact/fire",CHAN_WEAPON);
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
UTMainHandler.DoSwing(self,(FRandom[Impact](-0.3,-1.5),FRandom[Impact](-1.2,-0.4)),2,-0.6,2,SWING_Spring,1,2);
|
UTMainHandler.DoSwing(self,(FRandom[Impact](-0.3,-1.5),FRandom[Impact](-1.2,-0.4)),2,-0.6,2,SWING_Spring,1,2);
|
||||||
A_AlertMonsters(gameinfo.gametype&GAME_Strife?100:0);
|
A_AlertMonsters(gameinfo.gametype&GAME_Strife?100:0);
|
||||||
|
|
@ -249,10 +250,10 @@ Class ImpactHammer : UTWeapon
|
||||||
{
|
{
|
||||||
A_ResetCharge();
|
A_ResetCharge();
|
||||||
A_Overlay(-9999,"Charging");
|
A_Overlay(-9999,"Charging");
|
||||||
A_PlaySound("impact/pull",CHAN_WEAPON);
|
A_StartSound("impact/pull",CHAN_WEAPON);
|
||||||
}
|
}
|
||||||
IMPL ABCDE 5;
|
IMPL ABCDE 5;
|
||||||
IMPR A 0 A_PlaySound("impact/loop",CHAN_WEAPON,looping:true);
|
IMPR A 0 A_StartSound("impact/loop",CHAN_WEAPONMISC,CHANF_LOOPING);
|
||||||
Goto Hold;
|
Goto Hold;
|
||||||
Hold:
|
Hold:
|
||||||
IMPR ABCDEFGHIJ 1;
|
IMPR ABCDEFGHIJ 1;
|
||||||
|
|
|
||||||
|
|
@ -247,23 +247,27 @@ Class Minigun : UTWeapon
|
||||||
Hold:
|
Hold:
|
||||||
MGNF A 0
|
MGNF A 0
|
||||||
{
|
{
|
||||||
A_PlaySound("minigun/fire",CHAN_WEAPON,1.0,true);
|
A_StartSound("minigun/fire",CHAN_WEAPONMISC,CHANF_LOOPING);
|
||||||
A_Overlay(-9999,"FireDummy");
|
A_Overlay(-9999,"FireDummy");
|
||||||
}
|
}
|
||||||
MGNF ABCDEFGHIJKLMNOPQRS 1 A_FireBullet();
|
MGNF ABCDEFGHIJKLMNOPQRS 1 A_FireBullet();
|
||||||
MGNF A 0 A_JumpIf(player.cmd.buttons&BT_ALTATTACK,1);
|
MGNF A 0 A_JumpIf(player.cmd.buttons&BT_ALTATTACK,1);
|
||||||
Goto Hold+1;
|
Goto Hold+1;
|
||||||
AltHold:
|
AltHold:
|
||||||
MGNF B 0 A_PlaySound("minigun/altfire",CHAN_WEAPON,1.0,true);
|
MGNF B 0 A_StartSound("minigun/altfire",CHAN_WEAPONMISC,CHANF_LOOPING);
|
||||||
MGNF ADGJMPSCFILORBEHKNQ 1 A_FireBullet(true);
|
MGNF ADGJMPSCFILORBEHKNQ 1 A_FireBullet(true);
|
||||||
Goto AltHold+1;
|
Goto AltHold+1;
|
||||||
Unwind:
|
Unwind:
|
||||||
MGNU A 0 A_PlaySound("minigun/unwind",CHAN_WEAPON);
|
MGNU A 0
|
||||||
|
{
|
||||||
|
A_StopSound(CHAN_WEAPONMISC);
|
||||||
|
A_StartSound("minigun/unwind",CHAN_WEAPON);
|
||||||
|
}
|
||||||
MGNU ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 A_MinigunRefire();
|
MGNU ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 A_MinigunRefire();
|
||||||
MGU2 ABCDEFGHIJKLM 1 A_MinigunRefire();
|
MGU2 ABCDEFGHIJKLM 1 A_MinigunRefire();
|
||||||
Goto Idle;
|
Goto Idle;
|
||||||
Deselect:
|
Deselect:
|
||||||
MGND A 1 A_StopSound(CHAN_WEAPON);
|
MGND A 1 A_StopSound(CHAN_WEAPONMISC);
|
||||||
MGND BCDEFGHIJ 1;
|
MGND BCDEFGHIJ 1;
|
||||||
MGND J 1 A_Lower(int.max);
|
MGND J 1 A_Lower(int.max);
|
||||||
Wait;
|
Wait;
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ Class DamageAmplifier : Powerup
|
||||||
{
|
{
|
||||||
Super.DoEffect();
|
Super.DoEffect();
|
||||||
if ( (EffectTics == 175) || (EffectTics == 140) || (EffectTics == 105) || (EffectTics == 70) || (EffectTics == 35) )
|
if ( (EffectTics == 175) || (EffectTics == 140) || (EffectTics == 105) || (EffectTics == 70) || (EffectTics == 35) )
|
||||||
Owner.A_PlaySound("udamage/drain",CHAN_7,1.0,false,0.25);
|
Owner.A_StartSound("udamage/drain",CHAN_POWERUP2,attenuation:.25);
|
||||||
}
|
}
|
||||||
|
|
||||||
override void EndEffect()
|
override void EndEffect()
|
||||||
|
|
@ -91,8 +91,8 @@ Class DamageAmplifier : Powerup
|
||||||
void FireEffect()
|
void FireEffect()
|
||||||
{
|
{
|
||||||
if ( gametic < lasteffect ) return;
|
if ( gametic < lasteffect ) return;
|
||||||
if ( EffectTics < 350 ) Owner.A_PlaySound("udamage/fire2",CHAN_7,1.0,false,0.25);
|
if ( EffectTics < 350 ) Owner.A_StartSound("udamage/fire2",CHAN_POWERUP,attenuation:.25);
|
||||||
else Owner.A_PlaySound("udamage/fire1",CHAN_7,1.0,false,0.25);
|
else Owner.A_StartSound("udamage/fire1",CHAN_POWERUP,attenuation:.25);
|
||||||
UTMainHandler.DoFlash(Owner,Color(48,238,0,255),6);
|
UTMainHandler.DoFlash(Owner,Color(48,238,0,255),6);
|
||||||
lasteffect = gametic+5; // prevent excess flash
|
lasteffect = gametic+5; // prevent excess flash
|
||||||
}
|
}
|
||||||
|
|
@ -181,7 +181,7 @@ Class UTInvulPower : Powerup
|
||||||
{
|
{
|
||||||
Super.DoEffect();
|
Super.DoEffect();
|
||||||
if ( (EffectTics == 175) || (EffectTics == 140) || (EffectTics == 105) || (EffectTics == 70) || (EffectTics == 35) )
|
if ( (EffectTics == 175) || (EffectTics == 140) || (EffectTics == 105) || (EffectTics == 70) || (EffectTics == 35) )
|
||||||
Owner.A_PlaySound("uinvul/drain",CHAN_7,1.0,false,0.25);
|
Owner.A_StartSound("uinvul/drain",CHAN_POWERUP2,attenuation:.25);
|
||||||
}
|
}
|
||||||
|
|
||||||
override void EndEffect()
|
override void EndEffect()
|
||||||
|
|
@ -200,7 +200,7 @@ Class UTInvulPower : Powerup
|
||||||
if ( !passive || (damage <= 0) ) return;
|
if ( !passive || (damage <= 0) ) return;
|
||||||
newdamage = 0;
|
newdamage = 0;
|
||||||
if ( gametic < lasteffect ) return;
|
if ( gametic < lasteffect ) return;
|
||||||
Owner.A_PlaySound("uinvul/hit",CHAN_7,1.0,false,0.25);
|
Owner.A_StartSound("uinvul/hit",CHAN_POWERUP4,attenuation:.25);
|
||||||
UTMainHandler.DoFlash(Owner,Color(48,255,238,0),6);
|
UTMainHandler.DoFlash(Owner,Color(48,255,238,0),6);
|
||||||
lasteffect = gametic+5; // prevent excess flash
|
lasteffect = gametic+5; // prevent excess flash
|
||||||
}
|
}
|
||||||
|
|
@ -441,7 +441,7 @@ Class UTJumpBoots : Inventory
|
||||||
if ( (amount > 0) && (owner.player.jumptics == -1) )
|
if ( (amount > 0) && (owner.player.jumptics == -1) )
|
||||||
{
|
{
|
||||||
Amount = max(0,Amount-700);
|
Amount = max(0,Amount-700);
|
||||||
Owner.A_PlaySound("boot/jump",CHAN_BODY);
|
Owner.A_StartSound("boot/jump",CHAN_POWERUP3);
|
||||||
}
|
}
|
||||||
else if ( (Amount <= 0) && owner.player.onground )
|
else if ( (Amount <= 0) && owner.player.onground )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -161,14 +161,14 @@ Class PulseBall : Actor
|
||||||
}
|
}
|
||||||
override void PostBeginPlay()
|
override void PostBeginPlay()
|
||||||
{
|
{
|
||||||
A_PlaySound("pulse/fly",CHAN_BODY,0.8,true,8.0);
|
A_StartSound("pulse/fly",CHAN_BODY,CHANF_LOOPING,.8,8.);
|
||||||
let l = Spawn("PulseBallLight",pos);
|
let l = Spawn("PulseBallLight",pos);
|
||||||
l.target = self;
|
l.target = self;
|
||||||
}
|
}
|
||||||
action void A_BallExp()
|
action void A_BallExp()
|
||||||
{
|
{
|
||||||
A_SetScale(0.45);
|
A_SetScale(0.45);
|
||||||
A_PlaySound("pulse/hit",CHAN_BODY);
|
A_StartSound("pulse/hit");
|
||||||
A_SprayDecal("BoltScorch");
|
A_SprayDecal("BoltScorch");
|
||||||
Spawn("PulseExplLight",pos);
|
Spawn("PulseExplLight",pos);
|
||||||
int numpt = Random[Pulse](20,40);
|
int numpt = Random[Pulse](20,40);
|
||||||
|
|
@ -692,7 +692,7 @@ Class PulseGun : UTWeapon
|
||||||
action void A_StartBeam()
|
action void A_StartBeam()
|
||||||
{
|
{
|
||||||
invoker.special1 = 0;
|
invoker.special1 = 0;
|
||||||
A_PlaySound("pulse/bolt",CHAN_WEAPON,1.0,true);
|
A_StartSound("pulse/bolt",CHAN_WEAPON,CHANF_LOOPING);
|
||||||
Vector3 x, y, z, origin;
|
Vector3 x, y, z, origin;
|
||||||
[x, y, z] = dt_CoordUtil.GetAxes(pitch,angle,roll);
|
[x, y, z] = dt_CoordUtil.GetAxes(pitch,angle,roll);
|
||||||
origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),10*x+4.1*y-2.7*z);
|
origin = level.Vec3Offset(Vec2OffsetZ(0,0,player.viewz),10*x+4.1*y-2.7*z);
|
||||||
|
|
@ -778,13 +778,13 @@ Class PulseGun : UTWeapon
|
||||||
PGNI A 0
|
PGNI A 0
|
||||||
{
|
{
|
||||||
invoker.special1 = 0;
|
invoker.special1 = 0;
|
||||||
A_PlaySound("pulse/fire",CHAN_WEAPON,1.0,true);
|
A_StartSound("pulse/fire",CHAN_WEAPON,CHANF_LOOPING);
|
||||||
}
|
}
|
||||||
PGNF ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 A_PulseFire();
|
PGNF ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 A_PulseFire();
|
||||||
PGF2 ABCDEFGHIJKLMN 1 A_PulseFire();
|
PGF2 ABCDEFGHIJKLMN 1 A_PulseFire();
|
||||||
Goto Fire+1;
|
Goto Fire+1;
|
||||||
Release:
|
Release:
|
||||||
PGNC A 0 A_PlaySound("pulse/down",CHAN_WEAPON);
|
PGNC A 0 A_StartSound("pulse/down",CHAN_WEAPON);
|
||||||
PGNC ABCDEFGHIJKLMNOPQRSTUVWXY 1 A_PulseRefire();
|
PGNC ABCDEFGHIJKLMNOPQRSTUVWXY 1 A_PulseRefire();
|
||||||
PGNC Y 0;
|
PGNC Y 0;
|
||||||
Goto Idle;
|
Goto Idle;
|
||||||
|
|
@ -804,7 +804,7 @@ Class PulseGun : UTWeapon
|
||||||
PGNI A 0 A_JumpIf(invoker.clipcount >= Min(invoker.default.clipcount,invoker.Ammo1.Amount),"Idle");
|
PGNI A 0 A_JumpIf(invoker.clipcount >= Min(invoker.default.clipcount,invoker.Ammo1.Amount),"Idle");
|
||||||
PGNR A 1
|
PGNR A 1
|
||||||
{
|
{
|
||||||
A_PlaySound("pulse/reload",CHAN_WEAPON);
|
A_StartSound("pulse/reload",CHAN_WEAPONMISC);
|
||||||
if ( self is 'UTPlayer' )
|
if ( self is 'UTPlayer' )
|
||||||
UTPlayer(self).PlayReloading();
|
UTPlayer(self).PlayReloading();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@ Class Razor2 : Actor
|
||||||
Super.PostBeginPlay();
|
Super.PostBeginPlay();
|
||||||
let t = Spawn("Razor2Trail",pos);
|
let t = Spawn("Razor2Trail",pos);
|
||||||
t.target = self;
|
t.target = self;
|
||||||
A_PlaySound("ripper/hum",CHAN_VOICE,1.0,true,3.0,pitch:3.125);
|
A_StartSound("ripper/hum",CHAN_VOICE,CHANF_LOOPING,1.,3.,3.125);
|
||||||
Vector3 dir = vel.unit();
|
Vector3 dir = vel.unit();
|
||||||
A_SetAngle(atan2(dir.y,dir.x));
|
A_SetAngle(atan2(dir.y,dir.x));
|
||||||
A_SetPitch(asin(-dir.z));
|
A_SetPitch(asin(-dir.z));
|
||||||
|
|
@ -91,7 +91,7 @@ Class Razor2 : Actor
|
||||||
if ( !target.bNOBLOOD )
|
if ( !target.bNOBLOOD )
|
||||||
{
|
{
|
||||||
target.SpawnBlood(pos,AngleTo(target),damage);
|
target.SpawnBlood(pos,AngleTo(target),damage);
|
||||||
A_PlaySound("ripper/flesh");
|
A_StartSound("ripper/flesh");
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
}
|
}
|
||||||
UTMainHandler.DoKnockback(target,vel.unit(),15000);
|
UTMainHandler.DoKnockback(target,vel.unit(),15000);
|
||||||
|
|
@ -99,7 +99,7 @@ Class Razor2 : Actor
|
||||||
}
|
}
|
||||||
action void A_RazorHit()
|
action void A_RazorHit()
|
||||||
{
|
{
|
||||||
A_PlaySound("ripper/hit");
|
A_StartSound("ripper/hit");
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
A_SprayDecal("WallCrack",-20);
|
A_SprayDecal("WallCrack",-20);
|
||||||
int numpt = Random[Ripper](5,10);
|
int numpt = Random[Ripper](5,10);
|
||||||
|
|
@ -175,7 +175,7 @@ Class Razor2Alt : Razor2
|
||||||
bFORCEXYBILLBOARD = true;
|
bFORCEXYBILLBOARD = true;
|
||||||
Scale *= 0.65;
|
Scale *= 0.65;
|
||||||
A_StopSound(CHAN_VOICE);
|
A_StopSound(CHAN_VOICE);
|
||||||
A_PlaySound("ripper/althit",CHAN_VOICE);
|
A_StartSound("ripper/althit",CHAN_VOICE);
|
||||||
Spawn("Razor2AltLight",pos);
|
Spawn("Razor2AltLight",pos);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
A_SprayDecal("RazorBlast",20);
|
A_SprayDecal("RazorBlast",20);
|
||||||
|
|
@ -246,8 +246,8 @@ Class Ripper2 : UTWeapon
|
||||||
if ( !weap ) return;
|
if ( !weap ) return;
|
||||||
if ( weap.Ammo1.Amount <= 0 ) return;
|
if ( weap.Ammo1.Amount <= 0 ) return;
|
||||||
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
||||||
if ( alt ) A_PlaySound("ripper/altfire",CHAN_WEAPON);
|
if ( alt ) A_StartSound("ripper/altfire",CHAN_WEAPON,CHANF_OVERLAP);
|
||||||
else A_PlaySound("ripper/fire",CHAN_WEAPON);
|
else A_StartSound("ripper/fire",CHAN_WEAPON,CHANF_OVERLAP);
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
UTMainHandler.DoFlash(self,Color(8,0,255,255),1);
|
UTMainHandler.DoFlash(self,Color(8,0,255,255),1);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
|
|
|
||||||
|
|
@ -361,7 +361,7 @@ Class ShockBeam : Actor
|
||||||
let r = Spawn("ShockBlastRing",b.pos);
|
let r = Spawn("ShockBlastRing",b.pos);
|
||||||
r.angle = atan2(t.Results.HitVector.y,t.Results.HitVector.x);
|
r.angle = atan2(t.Results.HitVector.y,t.Results.HitVector.x);
|
||||||
r.pitch = asin(-t.Results.HitVector.z);
|
r.pitch = asin(-t.Results.HitVector.z);
|
||||||
A_PlaySound("shock/blast",CHAN_WEAPON,attenuation:0.5,pitch:0.6);
|
A_StartSound("shock/blast",CHAN_WEAPON,attenuation:0.5,pitch:0.6);
|
||||||
int numpt = Random[ASMD](200,300);
|
int numpt = Random[ASMD](200,300);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
{
|
{
|
||||||
|
|
@ -414,7 +414,7 @@ Class ShockBeam : Actor
|
||||||
{
|
{
|
||||||
Spawn("ShockBeamLight",pos);
|
Spawn("ShockBeamLight",pos);
|
||||||
A_QuakeEx(2,2,2,5,0,120,"",QF_RELATIVE|QF_SCALEDOWN,falloff:60,rollIntensity:0.1);
|
A_QuakeEx(2,2,2,5,0,120,"",QF_RELATIVE|QF_SCALEDOWN,falloff:60,rollIntensity:0.1);
|
||||||
A_PlaySound("shock/hit",CHAN_VOICE);
|
A_StartSound("shock/hit",CHAN_VOICE);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
int numpt = Random[ASMD](20,50);
|
int numpt = Random[ASMD](20,50);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
|
|
@ -598,8 +598,8 @@ Class SuperShockBeam : Actor
|
||||||
let r = Spawn("SuperShockBlastRing",b.pos);
|
let r = Spawn("SuperShockBlastRing",b.pos);
|
||||||
r.angle = atan2(t.Results.HitVector.y,t.Results.HitVector.x);
|
r.angle = atan2(t.Results.HitVector.y,t.Results.HitVector.x);
|
||||||
r.pitch = asin(-t.Results.HitVector.z);
|
r.pitch = asin(-t.Results.HitVector.z);
|
||||||
A_PlaySound("shock/blast",CHAN_WEAPON,attenuation:0.5,pitch:0.6);
|
A_StartSound("shock/blast",CHAN_WEAPON,attenuation:0.5,pitch:0.6);
|
||||||
A_PlaySound("sshock/blast",CHAN_6,attenuation:0.5);
|
A_StartSound("sshock/blast",CHAN_6,attenuation:0.5);
|
||||||
int numpt = Random[ASMD](200,300);
|
int numpt = Random[ASMD](200,300);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
{
|
{
|
||||||
|
|
@ -664,8 +664,8 @@ Class SuperShockBeam : Actor
|
||||||
A_Explode(int.max,50);
|
A_Explode(int.max,50);
|
||||||
}
|
}
|
||||||
A_QuakeEx(6,6,6,5,0,100,"",QF_RELATIVE|QF_SCALEDOWN,falloff:50,rollIntensity:0.2);
|
A_QuakeEx(6,6,6,5,0,100,"",QF_RELATIVE|QF_SCALEDOWN,falloff:50,rollIntensity:0.2);
|
||||||
A_PlaySound("shock/hit",CHAN_VOICE,attenuation:0.5);
|
A_StartSound("shock/hit",CHAN_VOICE,attenuation:0.5);
|
||||||
A_PlaySound("sshock/blast",CHAN_6,attenuation:0.5);
|
A_StartSound("sshock/blast",CHAN_6,attenuation:0.5);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
int numpt = Random[ASMD](20,50);
|
int numpt = Random[ASMD](20,50);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
|
|
@ -881,8 +881,8 @@ Class ShockBall : Actor
|
||||||
r.angle = atan2(HitNormal.y,HitNormal.x);
|
r.angle = atan2(HitNormal.y,HitNormal.x);
|
||||||
r.pitch = asin(-HitNormal.z);
|
r.pitch = asin(-HitNormal.z);
|
||||||
r.scale *= 1.5;
|
r.scale *= 1.5;
|
||||||
A_PlaySound("shock/hit",CHAN_VOICE);
|
A_StartSound("shock/hit",CHAN_VOICE);
|
||||||
A_PlaySound("shock/ball",CHAN_WEAPON,pitch:FRandom[ASMD](0.5,1.5));
|
A_StartSound("shock/ball",CHAN_WEAPON,pitch:FRandom[ASMD](0.5,1.5));
|
||||||
A_QuakeEx(4,4,4,30,0,200,"",QF_RELATIVE|QF_SCALEDOWN,falloff:70,rollIntensity:0.15);
|
A_QuakeEx(4,4,4,30,0,200,"",QF_RELATIVE|QF_SCALEDOWN,falloff:70,rollIntensity:0.15);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
int numpt = Random[ASMD](50,100);
|
int numpt = Random[ASMD](50,100);
|
||||||
|
|
@ -974,9 +974,9 @@ Class SuperShockBall : Actor
|
||||||
r.angle = atan2(HitNormal.y,HitNormal.x);
|
r.angle = atan2(HitNormal.y,HitNormal.x);
|
||||||
r.pitch = asin(-HitNormal.z);
|
r.pitch = asin(-HitNormal.z);
|
||||||
r.scale *= 1.5;
|
r.scale *= 1.5;
|
||||||
A_PlaySound("shock/hit",CHAN_VOICE,attenuation:0.5);
|
A_StartSound("shock/hit",CHAN_VOICE,attenuation:0.5);
|
||||||
A_PlaySound("shock/ball",CHAN_WEAPON,attenuation:0.5,pitch:FRandom[ASMD](0.5,1.5));
|
A_StartSound("shock/ball",CHAN_WEAPON,attenuation:0.5,pitch:FRandom[ASMD](0.5,1.5));
|
||||||
A_PlaySound("sshock/blast",CHAN_6,attenuation:0.5);
|
A_StartSound("sshock/blast",CHAN_6,attenuation:0.5);
|
||||||
A_QuakeEx(8,8,8,30,0,300,"",QF_RELATIVE|QF_SCALEDOWN,falloff:120,rollIntensity:0.25);
|
A_QuakeEx(8,8,8,30,0,300,"",QF_RELATIVE|QF_SCALEDOWN,falloff:120,rollIntensity:0.25);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
int numpt = Random[ASMD](50,100);
|
int numpt = Random[ASMD](50,100);
|
||||||
|
|
@ -1066,7 +1066,7 @@ Class ShockRifle : UTWeapon
|
||||||
if ( !weap ) return;
|
if ( !weap ) return;
|
||||||
if ( weap.Ammo1.Amount <= 0 ) return;
|
if ( weap.Ammo1.Amount <= 0 ) return;
|
||||||
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
||||||
A_PlaySound("shock/fire",CHAN_WEAPON);
|
A_StartSound("shock/fire",CHAN_WEAPON,CHANF_OVERLAP);
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
UTMainHandler.DoFlash(self,Color(128,128,0,255),1);
|
UTMainHandler.DoFlash(self,Color(128,128,0,255),1);
|
||||||
UTMainHandler.DoSwing(self,(FRandom[ASMD](-0.1,-0.6),FRandom[ASMD](-0.1,0.5)),2,-0.3,3,SWING_Spring,0,4);
|
UTMainHandler.DoSwing(self,(FRandom[ASMD](-0.1,-0.6),FRandom[ASMD](-0.1,0.5)),2,-0.3,3,SWING_Spring,0,4);
|
||||||
|
|
@ -1104,7 +1104,7 @@ Class ShockRifle : UTWeapon
|
||||||
if ( !weap ) return;
|
if ( !weap ) return;
|
||||||
if ( weap.Ammo1.Amount <= 0 ) return;
|
if ( weap.Ammo1.Amount <= 0 ) return;
|
||||||
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
||||||
A_PlaySound("shock/altfire",CHAN_WEAPON);
|
A_StartSound("shock/altfire",CHAN_WEAPON,CHANF_OVERLAP);
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
UTMainHandler.DoFlash(self,Color(128,128,0,255),1);
|
UTMainHandler.DoFlash(self,Color(128,128,0,255),1);
|
||||||
UTMainHandler.DoSwing(self,(FRandom[ASMD](-0.1,-0.6),FRandom[ASMD](-0.1,0.5)),3,-0.4,3,SWING_Spring,0,4);
|
UTMainHandler.DoSwing(self,(FRandom[ASMD](-0.1,-0.6),FRandom[ASMD](-0.1,0.5)),3,-0.4,3,SWING_Spring,0,4);
|
||||||
|
|
@ -1249,7 +1249,7 @@ Class EnhancedShockRifle : UTWeapon
|
||||||
if ( !weap ) return;
|
if ( !weap ) return;
|
||||||
if ( weap.Ammo1.Amount <= 0 ) return;
|
if ( weap.Ammo1.Amount <= 0 ) return;
|
||||||
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
||||||
A_PlaySound("shock/fire",CHAN_WEAPON);
|
A_StartSound("shock/fire",CHAN_WEAPON,CHANF_OVERLAP);
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
UTMainHandler.DoFlash(self,Color(128,255,128,0),1);
|
UTMainHandler.DoFlash(self,Color(128,255,128,0),1);
|
||||||
UTMainHandler.DoSwing(self,(FRandom[ASMD](-0.1,-0.6),FRandom[ASMD](-0.1,0.5)),4,-0.6,3,SWING_Spring,0,4);
|
UTMainHandler.DoSwing(self,(FRandom[ASMD](-0.1,-0.6),FRandom[ASMD](-0.1,0.5)),4,-0.6,3,SWING_Spring,0,4);
|
||||||
|
|
@ -1287,7 +1287,7 @@ Class EnhancedShockRifle : UTWeapon
|
||||||
if ( !weap ) return;
|
if ( !weap ) return;
|
||||||
if ( weap.Ammo1.Amount <= 0 ) return;
|
if ( weap.Ammo1.Amount <= 0 ) return;
|
||||||
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
||||||
A_PlaySound("shock/altfire",CHAN_WEAPON);
|
A_StartSound("shock/altfire",CHAN_WEAPON,CHANF_OVERLAP);
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
UTMainHandler.DoFlash(self,Color(128,255,128,0),1);
|
UTMainHandler.DoFlash(self,Color(128,255,128,0),1);
|
||||||
UTMainHandler.DoSwing(self,(FRandom[ASMD](-0.1,-0.6),FRandom[ASMD](-0.1,0.5)),6,-0.8,3,SWING_Spring,0,4);
|
UTMainHandler.DoSwing(self,(FRandom[ASMD](-0.1,-0.6),FRandom[ASMD](-0.1,0.5)),6,-0.8,3,SWING_Spring,0,4);
|
||||||
|
|
@ -1370,7 +1370,7 @@ Class EnhancedShockRifle : UTWeapon
|
||||||
DryFire:
|
DryFire:
|
||||||
ASMA I 3
|
ASMA I 3
|
||||||
{
|
{
|
||||||
A_PlaySound("sshock/dryfire",CHAN_WEAPON);
|
A_StartSound("sshock/dryfire",CHAN_WEAPON,CHANF_OVERLAP);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
}
|
}
|
||||||
ASMA J 4;
|
ASMA J 4;
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@ Class SniperRifle : UTWeapon
|
||||||
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
UTMainHandler.DoFlash(self,Color(32,0,0,255),1);
|
UTMainHandler.DoFlash(self,Color(32,0,0,255),1);
|
||||||
A_PlaySound("sniper/fire",CHAN_WEAPON);
|
A_StartSound("sniper/fire",CHAN_WEAPON,CHANF_OVERLAP);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
if ( zoomed )
|
if ( zoomed )
|
||||||
{
|
{
|
||||||
|
|
@ -255,11 +255,11 @@ Class SniperRifle : UTWeapon
|
||||||
if ( invoker.sniperzoom > 1. )
|
if ( invoker.sniperzoom > 1. )
|
||||||
{
|
{
|
||||||
if ( CVar.GetCVar('flak_zoomsound',players[consoleplayer]).GetBool() && CheckLocalView() )
|
if ( CVar.GetCVar('flak_zoomsound',players[consoleplayer]).GetBool() && CheckLocalView() )
|
||||||
A_PlaySound("sniper/zoomdown",CHAN_WEAPON);
|
A_StartSound("sniper/zoomdown",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
return ResolveState("AltHold2");
|
return ResolveState("AltHold2");
|
||||||
}
|
}
|
||||||
if ( CVar.GetCVar('flak_zoomsound',players[consoleplayer]).GetBool() && CheckLocalView() )
|
if ( CVar.GetCVar('flak_zoomsound',players[consoleplayer]).GetBool() && CheckLocalView() )
|
||||||
A_PlaySound("sniper/zoomup",CHAN_WEAPON);
|
A_StartSound("sniper/zoomup",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
return ResolveState(null);
|
return ResolveState(null);
|
||||||
}
|
}
|
||||||
AltHold:
|
AltHold:
|
||||||
|
|
@ -279,7 +279,7 @@ Class SniperRifle : UTWeapon
|
||||||
SRFD A 0
|
SRFD A 0
|
||||||
{
|
{
|
||||||
if ( (invoker.sniperzoom>1.0) && CVar.GetCVar('flak_zoomsound',players[consoleplayer]).GetBool() && CheckLocalView() )
|
if ( (invoker.sniperzoom>1.0) && CVar.GetCVar('flak_zoomsound',players[consoleplayer]).GetBool() && CheckLocalView() )
|
||||||
A_PlaySound("sniper/zoomdown",CHAN_WEAPON);
|
A_StartSound("sniper/zoomdown",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
A_ZoomFactor(invoker.sniperzoom=1.0,ZOOM_INSTANT);
|
A_ZoomFactor(invoker.sniperzoom=1.0,ZOOM_INSTANT);
|
||||||
}
|
}
|
||||||
SRFD ABCDEFG 1;
|
SRFD ABCDEFG 1;
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ Class ModuleHitbox : Actor
|
||||||
if ( !bi.Thing || (bi.Thing != master.target) ) continue;
|
if ( !bi.Thing || (bi.Thing != master.target) ) continue;
|
||||||
if ( (Distance2D(bi.Thing)-bi.Thing.radius <= radius) && ((bi.Thing.pos.z <= pos.z+height) && (bi.Thing.pos.z+bi.Thing.height >= pos.z-height)) )
|
if ( (Distance2D(bi.Thing)-bi.Thing.radius <= radius) && ((bi.Thing.pos.z <= pos.z+height) && (bi.Thing.pos.z+bi.Thing.height >= pos.z-height)) )
|
||||||
{
|
{
|
||||||
A_PlaySound("misc/i_pkup");
|
A_StartSound("misc/i_pkup",CHAN_ITEM);
|
||||||
master.Destroy();
|
master.Destroy();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -154,7 +154,7 @@ Class TranslocatorModule : Actor
|
||||||
}
|
}
|
||||||
b = Spawn("ModuleHitbox",pos);
|
b = Spawn("ModuleHitbox",pos);
|
||||||
b.master = self;
|
b.master = self;
|
||||||
A_PlaySound("transloc/hum",CHAN_VOICE,0.5,true,2.0);
|
A_StartSound("transloc/hum",CHAN_VOICE,CHANF_LOOPING,.5,2.);
|
||||||
}
|
}
|
||||||
|
|
||||||
override bool CanCollideWith( Actor other, bool passive )
|
override bool CanCollideWith( Actor other, bool passive )
|
||||||
|
|
@ -188,7 +188,7 @@ Class TranslocatorModule : Actor
|
||||||
Super.Tick();
|
Super.Tick();
|
||||||
if ( bAMBUSH && !Random[Transloc](0,40) )
|
if ( bAMBUSH && !Random[Transloc](0,40) )
|
||||||
{
|
{
|
||||||
A_PlaySound("transloc/spark");
|
A_StartSound("transloc/spark",CHAN_BODY,CHANF_OVERLAP);
|
||||||
int numpt = Random[Transloc](20,40);
|
int numpt = Random[Transloc](20,40);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
{
|
{
|
||||||
|
|
@ -223,7 +223,7 @@ Class TranslocatorModule : Actor
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
A_SetPitch(0);
|
A_SetPitch(0);
|
||||||
A_PlaySound("transloc/bounce");
|
A_StartSound("transloc/bounce");
|
||||||
if ( BlockingFloor || (tracer && (pos.z >= tracer.pos.z+tracer.height) && tracer.bACTLIKEBRIDGE) ) alreadyhit = true;
|
if ( BlockingFloor || (tracer && (pos.z >= tracer.pos.z+tracer.height) && tracer.bACTLIKEBRIDGE) ) alreadyhit = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -391,7 +391,7 @@ Class Translocator : UTWeapon
|
||||||
{
|
{
|
||||||
Weapon weap = Weapon(invoker);
|
Weapon weap = Weapon(invoker);
|
||||||
if ( !weap ) return;
|
if ( !weap ) return;
|
||||||
A_PlaySound("transloc/throw",CHAN_WEAPON);
|
A_StartSound("transloc/throw",CHAN_WEAPON);
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
UTMainHandler.DoSwing(self,(FRandom[Translocator](-0.2,0.4),FRandom[Translocator](-0.2,0.7)),2,-0.3,3,SWING_Spring,2,3);
|
UTMainHandler.DoSwing(self,(FRandom[Translocator](-0.2,0.4),FRandom[Translocator](-0.2,0.7)),2,-0.3,3,SWING_Spring,2,3);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
|
|
@ -413,14 +413,15 @@ Class Translocator : UTWeapon
|
||||||
{
|
{
|
||||||
Weapon weap = Weapon(invoker);
|
Weapon weap = Weapon(invoker);
|
||||||
if ( !weap ) return;
|
if ( !weap ) return;
|
||||||
A_PlaySound("transloc/return",CHAN_WEAPON);
|
A_StartSound("transloc/return",CHAN_WEAPON);
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
UTMainHandler.DoSwing(self,(FRandom[Translocator](-0.2,-0.4),FRandom[Translocator](-0.2,0.7)),3,-1,2,SWING_Spring,2,2);
|
UTMainHandler.DoSwing(self,(FRandom[Translocator](-0.2,-0.4),FRandom[Translocator](-0.2,0.7)),3,-1,2,SWING_Spring,2,2);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
if ( invoker.module && invoker.module.bAMBUSH )
|
if ( invoker.module && invoker.module.bAMBUSH )
|
||||||
{
|
{
|
||||||
UTMainHandler.DoFlash(self,Color(255,255,255,255),50);
|
UTMainHandler.DoFlash(self,Color(255,255,255,255),50);
|
||||||
A_PlaySound("transloc/spark",CHAN_WEAPON);
|
for ( int i=0; i<3; i++ )
|
||||||
|
A_StartSound("transloc/spark",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
DamageMobj(invoker,self,int.max,'Telefrag',DMG_THRUSTLESS);
|
DamageMobj(invoker,self,int.max,'Telefrag',DMG_THRUSTLESS);
|
||||||
}
|
}
|
||||||
if ( invoker.module ) invoker.module.Destroy();
|
if ( invoker.module ) invoker.module.Destroy();
|
||||||
|
|
@ -434,7 +435,7 @@ Class Translocator : UTWeapon
|
||||||
{
|
{
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
A_PlaySound("transloc/return",CHAN_WEAPON);
|
A_StartSound("transloc/return",CHAN_WEAPON);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// consume ammo if any
|
// consume ammo if any
|
||||||
|
|
@ -468,7 +469,7 @@ Class Translocator : UTWeapon
|
||||||
SpawnTeleportFog(newpos,false,false);
|
SpawnTeleportFog(newpos,false,false);
|
||||||
player.fov = min(175,player.desiredfov+60);
|
player.fov = min(175,player.desiredfov+60);
|
||||||
}
|
}
|
||||||
else A_PlaySound("transloc/return",CHAN_WEAPON);
|
else A_StartSound("transloc/return",CHAN_WEAPON);
|
||||||
for ( int i=0; i<MAXPLAYERS; i++ )
|
for ( int i=0; i<MAXPLAYERS; i++ )
|
||||||
{
|
{
|
||||||
if ( !playeringame[i] || !players[i].mo ) continue;
|
if ( !playeringame[i] || !players[i].mo ) continue;
|
||||||
|
|
@ -477,7 +478,8 @@ Class Translocator : UTWeapon
|
||||||
if ( bBroken )
|
if ( bBroken )
|
||||||
{
|
{
|
||||||
UTMainHandler.DoFlash(self,Color(255,255,255,255),50);
|
UTMainHandler.DoFlash(self,Color(255,255,255,255),50);
|
||||||
A_PlaySound("transloc/spark",CHAN_WEAPON);
|
for ( int i=0; i<3; i++ )
|
||||||
|
A_StartSound("transloc/spark",CHAN_WEAPONMISC,CHANF_OVERLAP);
|
||||||
DamageMobj(invoker,self,int.max,'Telefrag',DMG_THRUSTLESS);
|
DamageMobj(invoker,self,int.max,'Telefrag',DMG_THRUSTLESS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,14 @@
|
||||||
|
// constants for extra sound stuff, all starting at 0x4360 (436 was the last official UT version)
|
||||||
|
const CHAN_ANNOUNCER = 0x4360; // announcer voices
|
||||||
|
const CHAN_FOOTSTEP = 0x4361; // footsteps and splashes (should have OVERLAP flag)
|
||||||
|
const CHAN_LEFTWEAPON = 0x4362; // for dual wielded weapons
|
||||||
|
const CHAN_WEAPONMISC = 0x4363; // extra sounds (e.g.: idle loops)
|
||||||
|
const CHAN_LEFTWEAPONMISC = 0x4364; // ... for dual wielded weapons
|
||||||
|
const CHAN_POWERUP = 0x4365; // powerup/item use sounds
|
||||||
|
const CHAN_POWERUP2 = 0x4366; // auxiliary powerup sounds
|
||||||
|
const CHAN_POWERUP3 = 0x4367; // even more powerup sounds (used by jump boots, mainly)
|
||||||
|
const CHAN_POWERUP4 = 0x4368; // even more (used by shield belt / invuln hit sounds)
|
||||||
|
|
||||||
Class UTPlayer : DoomPlayer
|
Class UTPlayer : DoomPlayer
|
||||||
{
|
{
|
||||||
bool doprintnoammo;
|
bool doprintnoammo;
|
||||||
|
|
@ -288,7 +299,7 @@ Class UTPlayer : DoomPlayer
|
||||||
{
|
{
|
||||||
double vol = clamp((-lastvelz-8)*0.05,0.01,1.0);
|
double vol = clamp((-lastvelz-8)*0.05,0.01,1.0);
|
||||||
if ( ((waterlevel > 0) || GetFloorTerrain().IsLiquid) && !bOnMobj ) PlaySplash(vol);
|
if ( ((waterlevel > 0) || GetFloorTerrain().IsLiquid) && !bOnMobj ) PlaySplash(vol);
|
||||||
else A_PlaySound("*uland",CHAN_AUTO,vol);
|
else A_StartSound("*uland",CHAN_FOOTSTEP,CHANF_OVERLAP,vol);
|
||||||
PlayLanding();
|
PlayLanding();
|
||||||
}
|
}
|
||||||
else forcefootstep = true;
|
else forcefootstep = true;
|
||||||
|
|
@ -491,7 +502,7 @@ Class UTPlayer : DoomPlayer
|
||||||
}
|
}
|
||||||
bOnMobj = false;
|
bOnMobj = false;
|
||||||
if ( !(player.cheats&CF_PREDICTING) )
|
if ( !(player.cheats&CF_PREDICTING) )
|
||||||
A_PlaySound("*jump",CHAN_BODY);
|
A_StartSound("*jump",CHAN_VOICE);
|
||||||
if ( player.cheats & CF_REVERTPLEASE )
|
if ( player.cheats & CF_REVERTPLEASE )
|
||||||
{
|
{
|
||||||
player.cheats &= ~CF_REVERTPLEASE;
|
player.cheats &= ~CF_REVERTPLEASE;
|
||||||
|
|
@ -701,7 +712,7 @@ Class UTPlayer : DoomPlayer
|
||||||
bOnMobj = false;
|
bOnMobj = false;
|
||||||
player.jumpTics = -1;
|
player.jumpTics = -1;
|
||||||
if ( !(player.cheats&CF_PREDICTING) )
|
if ( !(player.cheats&CF_PREDICTING) )
|
||||||
A_PlaySound("*jump",CHAN_BODY);
|
A_StartSound("*jump",CHAN_VOICE);
|
||||||
}
|
}
|
||||||
last_jump_held = gametic;
|
last_jump_held = gametic;
|
||||||
}
|
}
|
||||||
|
|
@ -770,7 +781,7 @@ Class UTPlayer : DoomPlayer
|
||||||
|
|
||||||
virtual void PlayFootstep( double vol )
|
virtual void PlayFootstep( double vol )
|
||||||
{
|
{
|
||||||
A_PlaySound("ut/playerfootstep",CHAN_AUTO,vol);
|
A_StartSound("ut/playerfootstep",CHAN_FOOTSTEP,CHANF_OVERLAP,vol);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void PlaySplash( double vol )
|
virtual void PlaySplash( double vol )
|
||||||
|
|
@ -791,7 +802,7 @@ Class UTPlayer : DoomPlayer
|
||||||
snd = "ut/slimesplash";
|
snd = "ut/slimesplash";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
A_PlaySound(snd,CHAN_AUTO,vol);
|
A_StartSound(snd,CHAN_FOOTSTEP,CHANF_OVERLAP,vol);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void PlaySurface()
|
virtual void PlaySurface()
|
||||||
|
|
@ -812,7 +823,7 @@ Class UTPlayer : DoomPlayer
|
||||||
snd = "ut/slimesurface";
|
snd = "ut/slimesurface";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
A_PlaySound(snd,CHAN_AUTO);
|
A_StartSound(snd,CHAN_FOOTSTEP,CHANF_OVERLAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void PlayWetFootstep( double vol )
|
virtual void PlayWetFootstep( double vol )
|
||||||
|
|
@ -833,7 +844,7 @@ Class UTPlayer : DoomPlayer
|
||||||
snd = "ut/playerfootstepslime";
|
snd = "ut/playerfootstepslime";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
A_PlaySound(snd,CHAN_AUTO,vol);
|
A_StartSound(snd,CHAN_FOOTSTEP,CHANF_OVERLAP,vol);
|
||||||
}
|
}
|
||||||
|
|
||||||
override void PlayIdle()
|
override void PlayIdle()
|
||||||
|
|
@ -1052,7 +1063,7 @@ Class UTPlayer : DoomPlayer
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
vel = (0,0,0);
|
vel = (0,0,0);
|
||||||
A_PlaySound ("misc/icebreak",CHAN_BODY);
|
A_StartSound("misc/icebreak");
|
||||||
// [RH] In Hexen, this creates a random number of shards (range [24,56])
|
// [RH] In Hexen, this creates a random number of shards (range [24,56])
|
||||||
// with no relation to the size of the self shattering. I think it should
|
// with no relation to the size of the self shattering. I think it should
|
||||||
// base the number of shards on the size of the dead thing, so bigger
|
// base the number of shards on the size of the dead thing, so bigger
|
||||||
|
|
@ -1080,19 +1091,19 @@ Class UTPlayer : DoomPlayer
|
||||||
|
|
||||||
void A_PainDT()
|
void A_PainDT()
|
||||||
{
|
{
|
||||||
if ( waterlevel > 2 ) A_PlaySound("*death-drowning",CHAN_VOICE);
|
if ( waterlevel > 2 ) A_StartSound("*death-drowning",CHAN_VOICE);
|
||||||
else A_Pain();
|
else A_Pain();
|
||||||
}
|
}
|
||||||
|
|
||||||
void A_PlayerScreamDT()
|
void A_PlayerScreamDT()
|
||||||
{
|
{
|
||||||
if ( waterlevel > 2 ) A_PlaySound("*death-drowning",CHAN_VOICE);
|
if ( waterlevel > 2 ) A_StartSound("*death-drowning",CHAN_VOICE);
|
||||||
else A_PlayerScream();
|
else A_PlayerScream();
|
||||||
}
|
}
|
||||||
|
|
||||||
void A_XScreamDT()
|
void A_XScreamDT()
|
||||||
{
|
{
|
||||||
if ( waterlevel > 2 ) A_PlaySound("*death-drowning",CHAN_VOICE);
|
if ( waterlevel > 2 ) A_StartSound("*death-drowning",CHAN_VOICE);
|
||||||
else A_XScream();
|
else A_XScream();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1334,7 +1345,7 @@ Class UTUnderSound : Actor
|
||||||
fluidsounds[1] = 'ut/underslime';
|
fluidsounds[1] = 'ut/underslime';
|
||||||
fluidsounds[2] = 'ut/underlava';
|
fluidsounds[2] = 'ut/underlava';
|
||||||
fluidsounds[3] = 'ut/undernitro';
|
fluidsounds[3] = 'ut/undernitro';
|
||||||
A_PlaySound(fluidsounds[curfluid],CHAN_VOICE|CHAN_LISTENERZ,1.,true,0.);
|
A_StartSound(fluidsounds[curfluid],CHAN_VOICE,CHANF_LOOPING|CHANF_LISTENERZ,1.,0.);
|
||||||
A_SoundVolume(CHAN_VOICE,(players[consoleplayer].camera==target)?1.:0.);
|
A_SoundVolume(CHAN_VOICE,(players[consoleplayer].camera==target)?1.:0.);
|
||||||
}
|
}
|
||||||
override void OnDestroy()
|
override void OnDestroy()
|
||||||
|
|
@ -1353,7 +1364,7 @@ Class UTUnderSound : Actor
|
||||||
SetOrigin(target.pos,true);
|
SetOrigin(target.pos,true);
|
||||||
curfluid = GetFluid();
|
curfluid = GetFluid();
|
||||||
if ( curfluid != lastfluid )
|
if ( curfluid != lastfluid )
|
||||||
A_PlaySound(fluidsounds[curfluid],CHAN_VOICE|CHAN_LISTENERZ,1.,true,0.);
|
A_StartSound(fluidsounds[curfluid],CHAN_VOICE,CHANF_LOOPING|CHANF_LISTENERZ,1.,0.);
|
||||||
lastfluid = curfluid;
|
lastfluid = curfluid;
|
||||||
A_SoundVolume(CHAN_VOICE,(players[consoleplayer].camera==target)?1.:0.);
|
A_SoundVolume(CHAN_VOICE,(players[consoleplayer].camera==target)?1.:0.);
|
||||||
}
|
}
|
||||||
|
|
@ -1540,7 +1551,7 @@ Class FlameExplosion : Actor
|
||||||
override void PostBeginPlay()
|
override void PostBeginPlay()
|
||||||
{
|
{
|
||||||
Super.PostBeginPlay();
|
Super.PostBeginPlay();
|
||||||
A_PlaySound("ut/lavaex",CHAN_VOICE);
|
A_StartSound("ut/lavaex",CHAN_VOICE);
|
||||||
Spawn("SlugSmoke",pos);
|
Spawn("SlugSmoke",pos);
|
||||||
Spawn("SlugLight",pos);
|
Spawn("SlugLight",pos);
|
||||||
}
|
}
|
||||||
|
|
@ -1743,7 +1754,7 @@ Class UTPlayerTBoss : UTPlayer
|
||||||
override void PlayFootstep( double vol )
|
override void PlayFootstep( double vol )
|
||||||
{
|
{
|
||||||
if ( !bossfootsteps ) bossfootsteps = CVar.GetCVar('flak_bossfootsteps',players[consoleplayer]);
|
if ( !bossfootsteps ) bossfootsteps = CVar.GetCVar('flak_bossfootsteps',players[consoleplayer]);
|
||||||
if ( bossfootsteps.GetBool() ) A_PlaySound("ut/bossfootstep",CHAN_5,vol);
|
if ( bossfootsteps.GetBool() ) A_StartSound("ut/bossfootstep",CHAN_FOOTSTEP,CHANF_OVERLAP,vol);
|
||||||
else Super.PlayFootstep(vol);
|
else Super.PlayFootstep(vol);
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
|
|
@ -1810,12 +1821,20 @@ Class UTWeapon : Weapon
|
||||||
override void DetachFromOwner()
|
override void DetachFromOwner()
|
||||||
{
|
{
|
||||||
Owner.A_StopSound(CHAN_WEAPON);
|
Owner.A_StopSound(CHAN_WEAPON);
|
||||||
|
Owner.A_StopSound(CHAN_WEAPONMISC);
|
||||||
|
Owner.A_StopSound(CHAN_LEFTWEAPON);
|
||||||
|
Owner.A_StopSound(CHAN_LEFTWEAPONMISC);
|
||||||
Super.DetachFromOwner();
|
Super.DetachFromOwner();
|
||||||
}
|
}
|
||||||
override void OwnerDied()
|
override void OwnerDied()
|
||||||
{
|
{
|
||||||
if ( Owner.player && (Owner.player.ReadyWeapon == self) )
|
if ( Owner.player && (Owner.player.ReadyWeapon == self) )
|
||||||
|
{
|
||||||
Owner.A_StopSound(CHAN_WEAPON);
|
Owner.A_StopSound(CHAN_WEAPON);
|
||||||
|
Owner.A_StopSound(CHAN_WEAPONMISC);
|
||||||
|
Owner.A_StopSound(CHAN_LEFTWEAPON);
|
||||||
|
Owner.A_StopSound(CHAN_LEFTWEAPONMISC);
|
||||||
|
}
|
||||||
A_ClearRefire();
|
A_ClearRefire();
|
||||||
Super.OwnerDied();
|
Super.OwnerDied();
|
||||||
}
|
}
|
||||||
|
|
@ -1991,7 +2010,7 @@ Class UTTeleportFog : Actor
|
||||||
{
|
{
|
||||||
Super.PostBeginPlay();
|
Super.PostBeginPlay();
|
||||||
Spawn("UTTeleportLight",Vec3Offset(0,0,16));
|
Spawn("UTTeleportLight",Vec3Offset(0,0,16));
|
||||||
A_PlaySound ("misc/teleport");
|
A_StartSound("misc/teleport");
|
||||||
Spawn("UTTeleportParticles",Vec3Offset(0,0,16));
|
Spawn("UTTeleportParticles",Vec3Offset(0,0,16));
|
||||||
}
|
}
|
||||||
States
|
States
|
||||||
|
|
@ -2491,7 +2510,7 @@ Class ShredCorpseHitbox : Actor
|
||||||
{
|
{
|
||||||
if ( wasonair )
|
if ( wasonair )
|
||||||
{
|
{
|
||||||
A_PlaySound("misc/corpsefall",CHAN_BODY,clamp(-lastvel.z*0.2,0.1,1.0));
|
A_StartSound("misc/corpsefall",CHAN_BODY,CHANF_DEFAULT,clamp(-lastvel.z*.2,.1,1.));
|
||||||
if ( lastvel.z < -20 ) DamageMobj(null,null,int.max,'Falling');
|
if ( lastvel.z < -20 ) DamageMobj(null,null,int.max,'Falling');
|
||||||
}
|
}
|
||||||
wasonair = false;
|
wasonair = false;
|
||||||
|
|
@ -2908,24 +2927,26 @@ Class QueuedFlash
|
||||||
|
|
||||||
Class UTStaticHandler : StaticEventHandler
|
Class UTStaticHandler : StaticEventHandler
|
||||||
{
|
{
|
||||||
ui TextureID tex[2];
|
ui TextureID tex[3];
|
||||||
|
|
||||||
ui void StartMenu()
|
ui void StartMenu()
|
||||||
{
|
{
|
||||||
tex[0] = TexMan.CheckForTexture("DTLogo",TexMan.Type_Any);
|
tex[1] = TexMan.CheckForTexture("graphics/DTLogo.png",TexMan.Type_Any);
|
||||||
CVar protomenu = CVar.GetCVar('flak_protomenu',players[consoleplayer]);
|
CVar protomenu = CVar.GetCVar('flak_protomenu',players[consoleplayer]);
|
||||||
if ( !protomenu ) return; // this can happen
|
if ( !protomenu ) return; // this can happen
|
||||||
int proto = protomenu.GetInt();
|
int proto = protomenu.GetInt();
|
||||||
if ( proto )
|
if ( proto )
|
||||||
{
|
{
|
||||||
tex[1] = TexMan.CheckForTexture("protobg",TexMan.Type_Any);
|
tex[0] = TexMan.CheckForTexture("graphics/UTProtoBg.png",TexMan.Type_Any);
|
||||||
|
tex[2] = TexMan.CheckForTexture("graphics/protobg.png",TexMan.Type_Any);
|
||||||
if ( gamestate != GS_TITLELEVEL ) return;
|
if ( gamestate != GS_TITLELEVEL ) return;
|
||||||
if ( proto > 1 ) S_ChangeMusic("menu2");
|
if ( proto > 1 ) S_ChangeMusic("menu2");
|
||||||
else S_ChangeMusic("xyzdMenu");
|
else S_ChangeMusic("xyzdMenu");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
tex[1] = TexMan.CheckForTexture("finalbg",TexMan.Type_Any);
|
tex[0] = TexMan.CheckForTexture("graphics/UTBg.png",TexMan.Type_Any);
|
||||||
|
tex[2] = TexMan.CheckForTexture("graphics/finalbg.png",TexMan.Type_Any);
|
||||||
if ( gamestate != GS_TITLELEVEL ) return;
|
if ( gamestate != GS_TITLELEVEL ) return;
|
||||||
S_ChangeMusic("utmenu23");
|
S_ChangeMusic("utmenu23");
|
||||||
}
|
}
|
||||||
|
|
@ -2948,22 +2969,26 @@ Class UTStaticHandler : StaticEventHandler
|
||||||
Vector2 tsize = TexMan.GetScaledSize(tex[0]);
|
Vector2 tsize = TexMan.GetScaledSize(tex[0]);
|
||||||
double sar = tsize.x/tsize.y;
|
double sar = tsize.x/tsize.y;
|
||||||
Vector2 vsize;
|
Vector2 vsize;
|
||||||
|
if ( sar > ar ) vsize = (tsize.y*ar,tsize.y);
|
||||||
|
else if ( sar < ar ) vsize = (tsize.x,tsize.x/ar);
|
||||||
|
else vsize = tsize;
|
||||||
|
Screen.DrawTexture(tex[0],false,(vsize.x-tsize.x)/2,(vsize.y-tsize.y)/2,DTA_VirtualWidthF,vsize.x,DTA_VirtualHeightF,vsize.y,DTA_KeepRatio,true);
|
||||||
|
tsize = TexMan.GetScaledSize(tex[1]);
|
||||||
|
sar = tsize.x/tsize.y;
|
||||||
if ( sar > ar ) vsize = (tsize.x,tsize.x/ar);
|
if ( sar > ar ) vsize = (tsize.x,tsize.x/ar);
|
||||||
else if ( sar < ar ) vsize = (tsize.y*ar,tsize.y);
|
else if ( sar < ar ) vsize = (tsize.y*ar,tsize.y);
|
||||||
else vsize = tsize;
|
else vsize = tsize;
|
||||||
Screen.Dim("Black",1.0,0,0,Screen.GetWidth(),Screen.GetHeight());
|
Screen.DrawTexture(tex[1],false,(vsize.x-tsize.x)/2,(vsize.y-tsize.y)/2,DTA_VirtualWidthF,vsize.x,DTA_VirtualHeightF,vsize.y,DTA_KeepRatio,true);
|
||||||
Screen.DrawTexture(tex[0],false,(vsize.x-tsize.x)/2,(vsize.y-tsize.y)/2,DTA_VirtualWidthF,vsize.x,DTA_VirtualHeightF,vsize.y,DTA_KeepRatio,true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override void RenderOverlay( RenderEvent e )
|
override void RenderOverlay( RenderEvent e )
|
||||||
{
|
{
|
||||||
// well this if sure is a long one
|
|
||||||
if ( players[consoleplayer].camera.player && players[consoleplayer].camera.player.ReadyWeapon && (players[consoleplayer].camera.player.ReadyWeapon is 'UTWeapon') )
|
if ( players[consoleplayer].camera.player && players[consoleplayer].camera.player.ReadyWeapon && (players[consoleplayer].camera.player.ReadyWeapon is 'UTWeapon') )
|
||||||
UTWeapon(players[consoleplayer].camera.player.ReadyWeapon).RenderOverlay(e);
|
UTWeapon(players[consoleplayer].camera.player.ReadyWeapon).RenderOverlay(e);
|
||||||
if ( !menuactive || (Menu.GetCurrentMenu() is 'ConversationMenu') ) return;
|
if ( !menuactive || (Menu.GetCurrentMenu() is 'ConversationMenu') ) return;
|
||||||
if ( !CVar.GetCVar('flak_showmenu',players[consoleplayer]).GetBool() ) return;
|
if ( !CVar.GetCVar('flak_showmenu',players[consoleplayer]).GetBool() ) return;
|
||||||
Screen.Dim("Black",1.0,0,0,Screen.GetWidth(),Screen.GetHeight());
|
Screen.Dim("Black",1.,0,0,Screen.GetWidth(),Screen.GetHeight());
|
||||||
Screen.DrawTexture(tex[1],true,0,0,DTA_VirtualWidth,1024,DTA_VirtualHeight,768);
|
Screen.DrawTexture(tex[2],true,0,0,DTA_VirtualWidth,1024,DTA_VirtualHeight,768);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3086,7 +3111,7 @@ Class UTMainHandler : EventHandler
|
||||||
else if ( e.Replacee == 'RadSuit' ) e.Replacement = 'UTJumpBoots';
|
else if ( e.Replacee == 'RadSuit' ) e.Replacement = 'UTJumpBoots';
|
||||||
else if ( (e.Replacee == 'ArtiFly') || (e.Replacee == 'ArtiSpeedBoots') ) e.Replacement = 'ActJumpBoots';
|
else if ( (e.Replacee == 'ArtiFly') || (e.Replacee == 'ArtiSpeedBoots') ) e.Replacement = 'ActJumpBoots';
|
||||||
else if ( (e.Replacee == 'Backpack') || (e.Replacee == 'BagOfHolding') || (e.Replacee == 'ArtiHealingRadius') ) e.Replacement = 'UTBackpack';
|
else if ( (e.Replacee == 'Backpack') || (e.Replacee == 'BagOfHolding') || (e.Replacee == 'ArtiHealingRadius') ) e.Replacement = 'UTBackpack';
|
||||||
else if ( (e.Replacee == 'ArmorBonus') || (e.Replacee == 'ArtiTimeBomb') || (e.Replacee is 'ArtiPoisonBag') || (e.Replacee is 'ArtiBlastRadius') ) e.Replacement = 'UTArmorBonus';
|
else if ( (e.Replacee == 'ArmorBonus') || (e.Replacee == 'ArtiTimeBomb') || (e.Replacee == 'ArtiBlastRadius') ) e.Replacement = 'UTArmorBonus';
|
||||||
else if ( (e.Replacee == 'HealthBonus') || (e.Replacee == 'CrystalVial') ) e.Replacement = 'UTHealthBonus';
|
else if ( (e.Replacee == 'HealthBonus') || (e.Replacee == 'CrystalVial') ) e.Replacement = 'UTHealthBonus';
|
||||||
else if ( (e.Replacee == 'GreenArmor') || (e.Replacee == 'AmuletOfWarding') || (e.Replacee == 'PlatinumHelm') ) e.Replacement = 'UTThighPads';
|
else if ( (e.Replacee == 'GreenArmor') || (e.Replacee == 'AmuletOfWarding') || (e.Replacee == 'PlatinumHelm') ) e.Replacement = 'UTThighPads';
|
||||||
else if ( e.Replacee == 'Silvershield' )
|
else if ( e.Replacee == 'Silvershield' )
|
||||||
|
|
@ -3145,7 +3170,7 @@ Class UTMainHandler : EventHandler
|
||||||
else if ( e.Replacee == 'FWeaponPiece1' ) e.Replacement = 'WarheadAmmo';
|
else if ( e.Replacee == 'FWeaponPiece1' ) e.Replacement = 'WarheadAmmo';
|
||||||
else if ( e.Replacee == 'CWeaponPiece1' ) e.Replacement = 'UTBackpack';
|
else if ( e.Replacee == 'CWeaponPiece1' ) e.Replacement = 'UTBackpack';
|
||||||
else if ( (e.Replacee == 'MWeaponPiece1') || (e.Replacee == 'MWeapBloodscourge') || (e.Replacee.GetClassName() == 'mkFullBloodscourge') ) e.Replacement = 'WarheadLauncher';
|
else if ( (e.Replacee == 'MWeaponPiece1') || (e.Replacee == 'MWeapBloodscourge') || (e.Replacee.GetClassName() == 'mkFullBloodscourge') ) e.Replacement = 'WarheadLauncher';
|
||||||
else if ( e.Replacee == 'Mana1' ) e.Replacement = 'UTMinorAmmoBox';
|
else if ( (e.Replacee == 'Mana1') || (e.Replacee is 'ArtiPoisonBag') ) e.Replacement = 'UTMinorAmmoBox';
|
||||||
else if ( e.Replacee == 'Mana2' ) e.Replacement = 'UTMediumAmmoBox';
|
else if ( e.Replacee == 'Mana2' ) e.Replacement = 'UTMediumAmmoBox';
|
||||||
else if ( e.Replacee == 'Mana3' ) e.Replacement = 'UTMajorAmmoBox';
|
else if ( e.Replacee == 'Mana3' ) e.Replacement = 'UTMajorAmmoBox';
|
||||||
else if ( e.Replacee == 'ArtiBoostMana' ) e.Replacement = 'ActUTFullAmmoBox';
|
else if ( e.Replacee == 'ArtiBoostMana' ) e.Replacement = 'ActUTFullAmmoBox';
|
||||||
|
|
@ -3167,7 +3192,7 @@ Class UTMainHandler : EventHandler
|
||||||
{
|
{
|
||||||
Actor a = Actor.Spawn("MapSpot",pos);
|
Actor a = Actor.Spawn("MapSpot",pos);
|
||||||
if ( !a ) return null;
|
if ( !a ) return null;
|
||||||
a.A_PlaySound(snd,CHAN_BODY,volume,true,attenuation);
|
a.A_StartSound(snd,CHAN_BODY,CHANF_LOOPING,volume,attenuation);
|
||||||
return a;
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3585,15 +3610,15 @@ Class UTMainHandler : EventHandler
|
||||||
{
|
{
|
||||||
if ( !(gframe%11) && gframe < 160 )
|
if ( !(gframe%11) && gframe < 160 )
|
||||||
{
|
{
|
||||||
S_Sound("ut/malejump",CHAN_VOICE|CHAN_UI,(gframe>100)?.5:1.);
|
S_StartSound("ut/malejump",CHAN_VOICE,CHANF_UI|CHANF_MAYBE_LOCAL,(gframe>100)?.5:1.);
|
||||||
S_Sound("ut/malejump",CHAN_WEAPON|CHAN_UI,(gframe>100)?.5:1.);
|
S_StartSound("ut/malejump",CHAN_WEAPON,CHANF_UI|CHANF_MAYBE_LOCAL,(gframe>100)?.5:1.);
|
||||||
}
|
}
|
||||||
if ( ((gframe >= 37) && (gframe < 49) && !((gframe-37)%3))
|
if ( ((gframe >= 37) && (gframe < 49) && !((gframe-37)%3))
|
||||||
|| ((gframe >= 89) && (gframe < 101) && !((gframe-89)%3))
|
|| ((gframe >= 89) && (gframe < 101) && !((gframe-89)%3))
|
||||||
|| ((gframe >= 141) && (gframe < 153) && !((gframe-141)%3)) )
|
|| ((gframe >= 141) && (gframe < 153) && !((gframe-141)%3)) )
|
||||||
{
|
{
|
||||||
S_Sound("ut/land",CHAN_BODY|CHAN_UI,(gframe>100)?.5:1.);
|
S_StartSound("ut/land",CHAN_BODY,CHANF_UI|CHANF_MAYBE_LOCAL,(gframe>100)?.5:1.);
|
||||||
S_Sound("ut/land",CHAN_ITEM|CHAN_UI,(gframe>100)?.5:1.);
|
S_StartSound("ut/land",CHAN_ITEM,CHANF_UI|CHANF_MAYBE_LOCAL,(gframe>100)?.5:1.);
|
||||||
}
|
}
|
||||||
gframe++;
|
gframe++;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -284,7 +284,7 @@ Class UTGibber : Actor
|
||||||
States
|
States
|
||||||
{
|
{
|
||||||
Spawn:
|
Spawn:
|
||||||
TNT1 A 0 NoDelay A_PlaySound("misc/gibbed");
|
TNT1 A 0 NoDelay A_StartSound("misc/gibbed");
|
||||||
TNT1 A 1 BurstGibs();
|
TNT1 A 1 BurstGibs();
|
||||||
Wait;
|
Wait;
|
||||||
}
|
}
|
||||||
|
|
@ -491,7 +491,7 @@ Class UTGib : Actor
|
||||||
if ( tracer ) tracer.Destroy();
|
if ( tracer ) tracer.Destroy();
|
||||||
}
|
}
|
||||||
else if ( spd > 20 ) vel *= 0.8;
|
else if ( spd > 20 ) vel *= 0.8;
|
||||||
A_PlaySound("misc/gibp");
|
A_StartSound("misc/gibp");
|
||||||
double ang, pt;
|
double ang, pt;
|
||||||
int max = flak_blood?6:2;
|
int max = flak_blood?6:2;
|
||||||
for ( int i=0; i<max; i++ )
|
for ( int i=0; i<max; i++ )
|
||||||
|
|
|
||||||
|
|
@ -1088,7 +1088,7 @@ Class UTHud : BaseStatusBar
|
||||||
{
|
{
|
||||||
PickupMsg = CPlayer.mo.InvSel.GetTag();
|
PickupMsg = CPlayer.mo.InvSel.GetTag();
|
||||||
PickupMsgTic = gametic+50;
|
PickupMsgTic = gametic+50;
|
||||||
S_Sound("misc/hud_sel",CHAN_UI);
|
S_StartSound("misc/hud_sel",CHAN_BODY,CHANF_UI|CHANF_MAYBE_LOCAL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( CPlayer.inventorytics > 0 ) justselected = false;
|
if ( CPlayer.inventorytics > 0 ) justselected = false;
|
||||||
|
|
@ -1097,7 +1097,7 @@ Class UTHud : BaseStatusBar
|
||||||
if ( !justselected && CPlayer.mo.InvSel )
|
if ( !justselected && CPlayer.mo.InvSel )
|
||||||
{
|
{
|
||||||
Console.Printf(StringTable.Localize("$M_ISELECT"),CPlayer.mo.InvSel.GetTag());
|
Console.Printf(StringTable.Localize("$M_ISELECT"),CPlayer.mo.InvSel.GetTag());
|
||||||
S_Sound("misc/hud_sel",CHAN_UI);
|
S_StartSound("misc/hud_sel",CHAN_BODY,CHANF_UI|CHANF_MAYBE_LOCAL);
|
||||||
}
|
}
|
||||||
justselected = true;
|
justselected = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ Class ShockWave : Actor
|
||||||
override void PostBeginPlay()
|
override void PostBeginPlay()
|
||||||
{
|
{
|
||||||
lifespan = ReactionTime;
|
lifespan = ReactionTime;
|
||||||
A_PlaySound("warhead/explode",CHAN_VOICE,attenuation:ATTN_NONE);
|
A_StartSound("warhead/explode",CHAN_VOICE,attenuation:ATTN_NONE);
|
||||||
A_QuakeEx(9,9,9,100,0,12000,"",QF_RELATIVE|QF_SCALEDOWN,falloff:1200,rollIntensity:0.5);
|
A_QuakeEx(9,9,9,100,0,12000,"",QF_RELATIVE|QF_SCALEDOWN,falloff:1200,rollIntensity:0.5);
|
||||||
}
|
}
|
||||||
override void Tick()
|
override void Tick()
|
||||||
|
|
@ -250,7 +250,7 @@ Class WarShell : Actor
|
||||||
l.target = self;
|
l.target = self;
|
||||||
b = Spawn("WarheadHitbox",pos);
|
b = Spawn("WarheadHitbox",pos);
|
||||||
b.target = self;
|
b.target = self;
|
||||||
A_PlaySound("warhead/fly",CHAN_VOICE,1.0,true);
|
A_StartSound("warhead/fly",CHAN_VOICE,CHANF_LOOPING);
|
||||||
destangle = angle;
|
destangle = angle;
|
||||||
destpitch = pitch;
|
destpitch = pitch;
|
||||||
}
|
}
|
||||||
|
|
@ -306,7 +306,7 @@ Class WarShell : Actor
|
||||||
A_Explode(1000,180);
|
A_Explode(1000,180);
|
||||||
A_SprayDecal("BigBlast");
|
A_SprayDecal("BigBlast");
|
||||||
A_QuakeEx(8,8,8,20,0,300,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.35);
|
A_QuakeEx(8,8,8,20,0,300,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.35);
|
||||||
A_PlaySound("shock/hit",CHAN_VOICE,attenuation:0.5);
|
A_StartSound("shock/hit",CHAN_VOICE,attenuation:0.5);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
A_SetRenderStyle(1.0,STYLE_Add);
|
A_SetRenderStyle(1.0,STYLE_Add);
|
||||||
Spawn("WarheadExplodLight",pos);
|
Spawn("WarheadExplodLight",pos);
|
||||||
|
|
@ -320,7 +320,7 @@ Class WarShell : Actor
|
||||||
A_Explode(1000,220);
|
A_Explode(1000,220);
|
||||||
A_SprayDecal("BigBlast");
|
A_SprayDecal("BigBlast");
|
||||||
A_QuakeEx(8,8,8,20,0,300,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.35);
|
A_QuakeEx(8,8,8,20,0,300,"",QF_RELATIVE|QF_SCALEDOWN,rollIntensity:0.35);
|
||||||
A_PlaySound("shock/hit",CHAN_VOICE,attenuation:0.5);
|
A_StartSound("shock/hit",CHAN_VOICE,attenuation:0.5);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
A_SetRenderStyle(1.0,STYLE_Add);
|
A_SetRenderStyle(1.0,STYLE_Add);
|
||||||
Spawn("WarheadExplodLight",pos);
|
Spawn("WarheadExplodLight",pos);
|
||||||
|
|
@ -352,7 +352,7 @@ Class GuidedWarShell : WarShell
|
||||||
{
|
{
|
||||||
Super.PostBeginPlay();
|
Super.PostBeginPlay();
|
||||||
if ( target && target.player ) target.player.camera = self;
|
if ( target && target.player ) target.player.camera = self;
|
||||||
A_PlaySound("warhead/altfire",CHAN_WEAPON,local:true);
|
A_StartSound("warhead/altfire",CHAN_WEAPON,CHANF_LOCAL);
|
||||||
justleft = true;
|
justleft = true;
|
||||||
}
|
}
|
||||||
override void Tick()
|
override void Tick()
|
||||||
|
|
@ -682,7 +682,7 @@ Class WarheadLauncher : UTWeapon
|
||||||
if ( !weap ) return;
|
if ( !weap ) return;
|
||||||
if ( weap.Ammo1.Amount <= 0 ) return;
|
if ( weap.Ammo1.Amount <= 0 ) return;
|
||||||
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
||||||
A_PlaySound("warhead/fire",CHAN_WEAPON);
|
A_StartSound("warhead/fire",CHAN_WEAPON,CHANF_OVERLAP);
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
UTMainHandler.DoFlash(self,Color(128,255,128,128),1);
|
UTMainHandler.DoFlash(self,Color(128,255,128,128),1);
|
||||||
UTMainHandler.DoSwing(self,(FRandom[Warhead](0.6,1.2),FRandom[Warhead](0.2,0.5)),4,-1,3,SWING_Spring,2,5);
|
UTMainHandler.DoSwing(self,(FRandom[Warhead](0.6,1.2),FRandom[Warhead](0.2,0.5)),4,-1,3,SWING_Spring,2,5);
|
||||||
|
|
@ -722,7 +722,7 @@ Class WarheadLauncher : UTWeapon
|
||||||
if ( !weap ) return;
|
if ( !weap ) return;
|
||||||
if ( weap.Ammo1.Amount <= 0 ) return;
|
if ( weap.Ammo1.Amount <= 0 ) return;
|
||||||
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
if ( !weap.DepleteAmmo(weap.bAltFire,true,1) ) return;
|
||||||
A_PlaySound("warhead/altfire",CHAN_WEAPON);
|
A_StartSound("warhead/altfire",CHAN_WEAPON,CHANF_OVERLAP);
|
||||||
invoker.FireEffect();
|
invoker.FireEffect();
|
||||||
UTMainHandler.DoFlash(self,Color(128,255,128,128),1);
|
UTMainHandler.DoFlash(self,Color(128,255,128,128),1);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue