Merge devel/2a9eb0e1b1d72fc76c6386bd05b62ec10df9762c
This commit is contained in:
commit
31dc0db166
20 changed files with 99 additions and 65 deletions
|
|
@ -559,7 +559,7 @@ HardwareShader PostProcess scene
|
||||||
Texture StaticTexture "textures/static1.png"
|
Texture StaticTexture "textures/static1.png"
|
||||||
Uniform float Timer
|
Uniform float Timer
|
||||||
}
|
}
|
||||||
SkyBox "BlueSky" fliptop
|
SkyBox "KGDaySky" fliptop
|
||||||
{
|
{
|
||||||
"graphics/SkySetB_front.png"
|
"graphics/SkySetB_front.png"
|
||||||
"graphics/SkySetB_right.png"
|
"graphics/SkySetB_right.png"
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ Model "UTHealthBox"
|
||||||
Model 0 "hboxbeta_d.3d"
|
Model 0 "hboxbeta_d.3d"
|
||||||
// indices start at 1 for this mesh
|
// indices start at 1 for this mesh
|
||||||
SurfaceSkin 0 1 "jhboxbeta1.png"
|
SurfaceSkin 0 1 "jhboxbeta1.png"
|
||||||
SurfaceSkin 0 2 "fizzfull"
|
SurfaceSkin 0 2 "fizzside"
|
||||||
SurfaceSkin 0 3 "fizzfull"
|
SurfaceSkin 0 3 "fizzfull"
|
||||||
Scale 0.08 0.08 0.096
|
Scale 0.08 0.08 0.096
|
||||||
ZOffset 4
|
ZOffset 4
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ Model "ShockRifleWave"
|
||||||
Path "models"
|
Path "models"
|
||||||
Model 0 "shockrwm_d.3d"
|
Model 0 "shockrwm_d.3d"
|
||||||
Skin 0 "shocktt1.png"
|
Skin 0 "shocktt1.png"
|
||||||
Scale 1.2 1.0 1.0
|
Scale 0.6 0.5 0.5
|
||||||
PitchOffset 90
|
PitchOffset 90
|
||||||
|
|
||||||
FrameIndex SWAV A 0 0
|
FrameIndex SWAV A 0 0
|
||||||
|
|
@ -47,7 +47,7 @@ Model "SuperShockRifleWave"
|
||||||
Path "models"
|
Path "models"
|
||||||
Model 0 "shockrwm_d.3d"
|
Model 0 "shockrwm_d.3d"
|
||||||
Skin 0 "sshocktt1.png"
|
Skin 0 "sshocktt1.png"
|
||||||
Scale 1.2 1.0 1.0
|
Scale 0.6 0.5 1.5
|
||||||
PitchOffset 90
|
PitchOffset 90
|
||||||
|
|
||||||
FrameIndex SWAV A 0 0
|
FrameIndex SWAV A 0 0
|
||||||
|
|
|
||||||
|
|
@ -7,12 +7,11 @@ vec4 ProcessTexel()
|
||||||
{
|
{
|
||||||
vec2 coord = vTexCoord.st;
|
vec2 coord = vTexCoord.st;
|
||||||
vec2 dist = 2.0*texture(warptex,vTexCoord.st).xy-1.0;
|
vec2 dist = 2.0*texture(warptex,vTexCoord.st).xy-1.0;
|
||||||
dist.x *= abs(mod(dist.y+timer*3.34536,4)-2)-1;
|
dist.y *= abs(mod(dist.x+timer*3.34536,4)-2)-1;
|
||||||
coord.x += dist.x*0.12;
|
coord.y += dist.y*0.12;
|
||||||
dist = 2.0*texture(warptex,vTexCoord.st*2.0).xy-1.0;
|
dist = 2.0*texture(warptex,vTexCoord.st*2.0).xy-1.0;
|
||||||
dist.y *= abs(mod(dist.x+timer*5.45363,4)-2)-1;
|
dist.y *= abs(mod(dist.x+timer*5.45363,4)-2)-1;
|
||||||
coord.y -= dist.y*0.09;
|
coord.y -= dist.y*0.09;
|
||||||
coord.y = clamp(coord.y,0.0,1.0);
|
coord.y = clamp(coord.y,0.0,1.0);
|
||||||
coord.x += timer*0.5346;
|
|
||||||
return getTexel(coord);
|
return getTexel(coord);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,14 +5,12 @@ void main()
|
||||||
vec2 sz = textureSize(InputTexture,0);
|
vec2 sz = textureSize(InputTexture,0);
|
||||||
vec2 px = 1.0/vec2(1920.0);
|
vec2 px = 1.0/vec2(1920.0);
|
||||||
px.y *= sz.x/sz.y;
|
px.y *= sz.x/sz.y;
|
||||||
float cnt = 1.0;
|
for ( int j=-1; j<=1; j++ ) for ( int i=-1; i<=1; i++ )
|
||||||
for ( int j=-5; j<=5; j++ ) for ( int i=-5; i<=5; i++ )
|
|
||||||
{
|
{
|
||||||
nc = TexCoord+px*vec2(i,j);
|
nc = TexCoord+px*vec2(i,j);
|
||||||
tinted += texture(InputTexture,nc);
|
tinted += texture(InputTexture,nc);
|
||||||
cnt += 1.0;
|
|
||||||
}
|
}
|
||||||
tinted /= cnt;
|
tinted /= 10.0;
|
||||||
vec2 coord = TexCoord;
|
vec2 coord = TexCoord;
|
||||||
coord *= 4.0;
|
coord *= 4.0;
|
||||||
coord.y *= px.x/px.y;
|
coord.y *= px.x/px.y;
|
||||||
|
|
|
||||||
|
|
@ -527,8 +527,8 @@ Class BioGel : Actor
|
||||||
Radius 3;
|
Radius 3;
|
||||||
Height 3;
|
Height 3;
|
||||||
Scale 2;
|
Scale 2;
|
||||||
Speed 18;
|
Speed 11;
|
||||||
Gravity 0.5;
|
Gravity 0.25;
|
||||||
PROJECTILE;
|
PROJECTILE;
|
||||||
-NOGRAVITY;
|
-NOGRAVITY;
|
||||||
+SKYEXPLODE;
|
+SKYEXPLODE;
|
||||||
|
|
|
||||||
|
|
@ -111,7 +111,7 @@ Class UTRocket : Actor
|
||||||
DamageType 'RocketDeath';
|
DamageType 'RocketDeath';
|
||||||
Radius 2;
|
Radius 2;
|
||||||
Height 2;
|
Height 2;
|
||||||
Speed 20;
|
Speed 15;
|
||||||
PROJECTILE;
|
PROJECTILE;
|
||||||
+SKYEXPLODE;
|
+SKYEXPLODE;
|
||||||
+EXPLODEONWATER;
|
+EXPLODEONWATER;
|
||||||
|
|
@ -145,21 +145,21 @@ Class UTRocket : Actor
|
||||||
int numpt = Random[Eightball](15,30);
|
int numpt = Random[Eightball](15,30);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
{
|
{
|
||||||
Vector3 pvel = (FRandom[Eightball](-1,1),FRandom[Eightball](-1,1),FRandom[Eightball](-1,1)).unit()*FRandom[Eightball](1,4);
|
Vector3 pvel = (FRandom[Eightball](-1,1),FRandom[Eightball](-1,1),FRandom[Eightball](-1,1)).unit()*FRandom[Eightball](1,3);
|
||||||
let s = Spawn("UTSmoke",pos);
|
let s = Spawn("UTSmoke",pos);
|
||||||
s.vel = pvel;
|
s.vel = pvel;
|
||||||
}
|
}
|
||||||
numpt = Random[Eightball](10,20);
|
numpt = Random[Eightball](10,20);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
{
|
{
|
||||||
Vector3 pvel = (FRandom[Eightball](-1,1),FRandom[Eightball](-1,1),FRandom[Eightball](-1,1)).unit()*FRandom[Eightball](2,8);
|
Vector3 pvel = (FRandom[Eightball](-1,1),FRandom[Eightball](-1,1),FRandom[Eightball](-1,1)).unit()*FRandom[Eightball](2,6);
|
||||||
let s = Spawn("UTSpark",pos);
|
let s = Spawn("UTSpark",pos);
|
||||||
s.vel = pvel;
|
s.vel = pvel;
|
||||||
}
|
}
|
||||||
numpt = Random[Eightball](35,70);
|
numpt = Random[Eightball](35,70);
|
||||||
for ( int i=0; i<numpt; i++ )
|
for ( int i=0; i<numpt; i++ )
|
||||||
{
|
{
|
||||||
Vector3 pvel = (FRandom[Eightball](-1,1),FRandom[Eightball](-1,1),FRandom[Eightball](-1,1)).unit()*FRandom[Eightball](4,36);
|
Vector3 pvel = (FRandom[Eightball](-1,1),FRandom[Eightball](-1,1),FRandom[Eightball](-1,1)).unit()*FRandom[Eightball](2,12);
|
||||||
let s = Spawn("UTChip",pos);
|
let s = Spawn("UTChip",pos);
|
||||||
s.vel = pvel;
|
s.vel = pvel;
|
||||||
s.scale *= FRandom[Eightball](0.9,2.7);
|
s.scale *= FRandom[Eightball](0.9,2.7);
|
||||||
|
|
@ -192,9 +192,9 @@ Class UTRocket : Actor
|
||||||
A_RocketSeek();
|
A_RocketSeek();
|
||||||
}
|
}
|
||||||
vel += invoker.Acceleration/TICRATE;
|
vel += invoker.Acceleration/TICRATE;
|
||||||
if ( vel.length() > 45. ) vel = Vel.unit()*45.;
|
if ( vel.length() > 30. ) vel = Vel.unit()*30.;
|
||||||
Vector3 dir = vel.unit();
|
Vector3 dir = vel.unit();
|
||||||
if ( waterlevel <= 0 ) vel = dir*min(vel.length()+1,32);
|
if ( waterlevel <= 0 ) vel = dir*min(vel.length()+1,24);
|
||||||
angle = atan2(dir.y,dir.x);
|
angle = atan2(dir.y,dir.x);
|
||||||
pitch = asin(-dir.z);
|
pitch = asin(-dir.z);
|
||||||
for ( int i=0; i<3; i++ )
|
for ( int i=0; i<3; i++ )
|
||||||
|
|
@ -228,7 +228,8 @@ Class UTGrenade : UTRocket
|
||||||
WallBounceFactor 0.75;
|
WallBounceFactor 0.75;
|
||||||
BounceFactor 0.75;
|
BounceFactor 0.75;
|
||||||
ReactionTime 85;
|
ReactionTime 85;
|
||||||
Speed 20;
|
Speed 15;
|
||||||
|
Gravity 0.35;
|
||||||
}
|
}
|
||||||
override void PostBeginPlay()
|
override void PostBeginPlay()
|
||||||
{
|
{
|
||||||
|
|
@ -309,7 +310,8 @@ Class UTRocketLauncher : UTWeapon
|
||||||
{
|
{
|
||||||
LockedTarget = null;
|
LockedTarget = null;
|
||||||
LockedOn = false;
|
LockedOn = false;
|
||||||
Owner.A_PlaySound("utrl/seeklost",CHAN_WEAPON);
|
if ( Owner.player.ReadyWeapon == self )
|
||||||
|
Owner.A_PlaySound("utrl/seeklost",CHAN_WEAPON);
|
||||||
}
|
}
|
||||||
if ( LockedTarget ) crosshair = 99;
|
if ( LockedTarget ) crosshair = 99;
|
||||||
else crosshair = 0;
|
else crosshair = 0;
|
||||||
|
|
@ -368,7 +370,7 @@ Class UTRocketLauncher : UTWeapon
|
||||||
Vector3 dir = (x2+cos(a)*y2*s*0.004+sin(a)*z2*s*0.004).unit();
|
Vector3 dir = (x2+cos(a)*y2*s*0.004+sin(a)*z2*s*0.004).unit();
|
||||||
p = Spawn("UTGrenade",origin+cos(a)*y*s+sin(a)*z*s);
|
p = Spawn("UTGrenade",origin+cos(a)*y*s+sin(a)*z*s);
|
||||||
p.vel = x*(vel dot x)*0.4 + dir*p.speed*FRandom[Eightball](1.0,1.2);
|
p.vel = x*(vel dot x)*0.4 + dir*p.speed*FRandom[Eightball](1.0,1.2);
|
||||||
p.vel.z += 6;
|
p.vel.z += 3.5;
|
||||||
p.target = self;
|
p.target = self;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -103,6 +103,7 @@ Class UTCasing : Actor
|
||||||
+USEBOUNCESTATE;
|
+USEBOUNCESTATE;
|
||||||
+INTERPOLATEANGLES;
|
+INTERPOLATEANGLES;
|
||||||
Mass 1;
|
Mass 1;
|
||||||
|
Gravity 0.35;
|
||||||
BounceType "Hexen";
|
BounceType "Hexen";
|
||||||
WallBounceFactor 0.65;
|
WallBounceFactor 0.65;
|
||||||
BounceFactor 0.65;
|
BounceFactor 0.65;
|
||||||
|
|
@ -126,7 +127,7 @@ Class UTCasing : Actor
|
||||||
if ( deadtimer > 300 ) A_FadeOut(0.05);
|
if ( deadtimer > 300 ) A_FadeOut(0.05);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
heat -= 0.02;
|
heat -= 0.05;
|
||||||
if ( heat <= 0 ) return;
|
if ( heat <= 0 ) return;
|
||||||
let s = Spawn("UTSmallSmoke",pos);
|
let s = Spawn("UTSmallSmoke",pos);
|
||||||
s.alpha *= heat;
|
s.alpha *= heat;
|
||||||
|
|
@ -376,7 +377,7 @@ Class Enforcer : UTWeapon
|
||||||
}
|
}
|
||||||
origin += x*8.0+ydir*y*6.0-z*2.0;
|
origin += x*8.0+ydir*y*6.0-z*2.0;
|
||||||
let c = Spawn("UTCasing",origin);
|
let c = Spawn("UTCasing",origin);
|
||||||
c.vel = x*FRandom[Junk](-2,2)+y*ydir*FRandom[Junk](3,6)+z*FRandom[Junk](3,5);
|
c.vel = x*FRandom[Junk](-1.5,1.5)+y*ydir*FRandom[Junk](2,4)+z*FRandom[Junk](2,3);
|
||||||
}
|
}
|
||||||
|
|
||||||
override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack )
|
override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack )
|
||||||
|
|
|
||||||
|
|
@ -163,7 +163,7 @@ Class FlakChunk : Actor
|
||||||
Obituary "%o was ripped to shreds by %k's Flak Cannon.";
|
Obituary "%o was ripped to shreds by %k's Flak Cannon.";
|
||||||
Radius 2;
|
Radius 2;
|
||||||
Height 2;
|
Height 2;
|
||||||
Speed 50;
|
Speed 32;
|
||||||
DamageFunction Random[Flak](15,20);
|
DamageFunction Random[Flak](15,20);
|
||||||
DamageType 'Shredded';
|
DamageType 'Shredded';
|
||||||
BounceType "Hexen";
|
BounceType "Hexen";
|
||||||
|
|
@ -243,13 +243,16 @@ Class FlakChunk : Actor
|
||||||
}
|
}
|
||||||
else A_SprayDecal("WallCrack",-8);
|
else A_SprayDecal("WallCrack",-8);
|
||||||
A_Gravity();
|
A_Gravity();
|
||||||
|
gravity = 0.35;
|
||||||
invoker.rollvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1)*(vel.length()/speed);
|
invoker.rollvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1)*(vel.length()/speed);
|
||||||
invoker.pitchvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1)*(vel.length()/speed);
|
invoker.pitchvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1)*(vel.length()/speed);
|
||||||
invoker.yawvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1)*(vel.length()/speed);
|
invoker.yawvel = FRandom[Flak](50,100)*RandomPick[Flak](-1,1)*(vel.length()/speed);
|
||||||
vel = (vel.unit()+(FRandom[Flak](-0.2,0.2),FRandom[Flak](-0.2,0.2),FRandom[Flak](-0.2,0.2))).unit()*vel.length();
|
vel = (vel.unit()+(FRandom[Flak](-0.2,0.2),FRandom[Flak](-0.2,0.2),FRandom[Flak](-0.2,0.2))).unit()*vel.length();
|
||||||
|
// TODO chunks in vanilla have a special variation on the standard reflect formula that causes them to bounce differently when hitting a surface head-on
|
||||||
|
// (0.5 to 0.8 reduction perpendicular to the surface normal, to be specific)
|
||||||
|
// I have no idea how I'll even implement this reduction reliably
|
||||||
A_PlaySound("flak/bounce",volume:0.3);
|
A_PlaySound("flak/bounce",volume:0.3);
|
||||||
A_AlertMonsters();
|
A_AlertMonsters();
|
||||||
bBOUNCEAUTOOFFFLOORONLY = true;
|
|
||||||
if ( vel.length() < 5.0 ) ExplodeMissile();
|
if ( vel.length() < 5.0 ) ExplodeMissile();
|
||||||
}
|
}
|
||||||
override int DoSpecialDamage( Actor target, int damage, Name damagetype )
|
override int DoSpecialDamage( Actor target, int damage, Name damagetype )
|
||||||
|
|
@ -386,7 +389,8 @@ Class FlakSlug : Actor
|
||||||
DamageType 'FlakDeath';
|
DamageType 'FlakDeath';
|
||||||
Radius 2;
|
Radius 2;
|
||||||
Height 2;
|
Height 2;
|
||||||
Speed 40;
|
Gravity 0.35;
|
||||||
|
Speed 20;
|
||||||
PROJECTILE;
|
PROJECTILE;
|
||||||
-NOGRAVITY;
|
-NOGRAVITY;
|
||||||
+SKYEXPLODE;
|
+SKYEXPLODE;
|
||||||
|
|
@ -398,7 +402,7 @@ Class FlakSlug : Actor
|
||||||
override void PostBeginPlay()
|
override void PostBeginPlay()
|
||||||
{
|
{
|
||||||
Super.PostBeginPlay();
|
Super.PostBeginPlay();
|
||||||
vel.z += 4;
|
vel.z += 3;
|
||||||
}
|
}
|
||||||
override void Tick()
|
override void Tick()
|
||||||
{
|
{
|
||||||
|
|
@ -423,16 +427,26 @@ Class FlakSlug : Actor
|
||||||
double a, s;
|
double a, s;
|
||||||
[x, y, z] = dt_Matrix4.GetAxes(pitch,angle,roll);
|
[x, y, z] = dt_Matrix4.GetAxes(pitch,angle,roll);
|
||||||
Actor p;
|
Actor p;
|
||||||
|
Vector3 spawnofs;
|
||||||
|
if ( BlockingMobj ) spawnofs = level.Vec3Diff(pos,BlockingMobj.Vec3Offset(0,0,BlockingMobj.height/2)).unit()*8;
|
||||||
|
else if ( BlockingFloor ) spawnofs = BlockingFloor.floorplane.Normal*8;
|
||||||
|
else if ( BlockingCeiling ) spawnofs = BlockingCeiling.ceilingplane.Normal*8;
|
||||||
|
else if ( BlockingLine )
|
||||||
|
{
|
||||||
|
spawnofs = (-BlockingLine.delta.y,BlockingLine.delta.x,0).unit()*8;
|
||||||
|
if ( !BlockingLine.sidedef[1] || (CurSector == BlockingLine.frontsector) )
|
||||||
|
spawnofs *= -1;
|
||||||
|
}
|
||||||
for ( int i=0; i<5; i++ )
|
for ( int i=0; i<5; i++ )
|
||||||
{
|
{
|
||||||
p = Spawn("FlakChunk",pos);
|
p = Spawn("FlakChunk",Vec3Offset(spawnofs.x,spawnofs.y,spawnofs.z));
|
||||||
p.bHITOWNER = true;
|
p.bHITOWNER = true;
|
||||||
a = FRandom[Flak](0,360);
|
a = FRandom[Flak](0,360);
|
||||||
s = FRandom[Flak](0,0.2);
|
s = FRandom[Flak](0,0.1);
|
||||||
Vector3 dir = (x+y*cos(a)*s+z*sin(a)*s).unit();
|
Vector3 dir = (x+y*cos(a)*s+z*sin(a)*s).unit();
|
||||||
p.angle = atan2(dir.y,dir.x);
|
p.angle = atan2(dir.y,dir.x);
|
||||||
p.pitch = -asin(dir.z);
|
p.pitch = -asin(dir.z);
|
||||||
p.vel = (cos(p.angle)*cos(p.pitch),sin(p.angle)*cos(p.pitch),-sin(p.pitch))*p.speed*FRandom[Flak](0.5,1.5);
|
p.vel = (cos(p.angle)*cos(p.pitch),sin(p.angle)*cos(p.pitch),-sin(p.pitch))*(p.speed+FRandom[Flak](-3,3));
|
||||||
p.target = target;
|
p.target = target;
|
||||||
}
|
}
|
||||||
int numpt = Random[Flak](8,12);
|
int numpt = Random[Flak](8,12);
|
||||||
|
|
@ -521,16 +535,25 @@ Class FlakCannon : UTWeapon
|
||||||
A_OverlayFlags(-2,PSPF_RENDERSTYLE|PSPF_FORCESTYLE,true);
|
A_OverlayFlags(-2,PSPF_RENDERSTYLE|PSPF_FORCESTYLE,true);
|
||||||
A_OverlayRenderstyle(-2,STYLE_Add);
|
A_OverlayRenderstyle(-2,STYLE_Add);
|
||||||
[x, y, z] = dt_Matrix4.GetAxes(BulletSlope(),angle,roll);
|
[x, y, z] = dt_Matrix4.GetAxes(BulletSlope(),angle,roll);
|
||||||
|
Vector3 offsets[8]; // vanilla adds these to each chunk
|
||||||
|
offsets[0] = (0,0,0);
|
||||||
|
offsets[1] = -z;
|
||||||
|
offsets[2] = 2*y+z;
|
||||||
|
offsets[3] = -y;
|
||||||
|
offsets[4] = 2*y-z;
|
||||||
|
offsets[5] = (0,0,0);
|
||||||
|
offsets[6] = y-z;
|
||||||
|
offsets[7] = 2*y+z;
|
||||||
Actor p;
|
Actor p;
|
||||||
for ( int i=0; i<6; i++ )
|
for ( int i=0; i<8; i++ )
|
||||||
{
|
{
|
||||||
p = Spawn("FlakChunk",origin);
|
p = Spawn("FlakChunk",level.Vec3Offset(origin,offsets[i]));
|
||||||
a = FRandom[Flak](0,360);
|
a = FRandom[Flak](0,360);
|
||||||
s = FRandom[Flak](0,0.2);
|
s = FRandom[Flak](0,0.1);
|
||||||
Vector3 dir = (x+y*cos(a)*s+z*sin(a)*s).unit();
|
Vector3 dir = (x+y*cos(a)*s+z*sin(a)*s).unit();
|
||||||
p.angle = atan2(dir.y,dir.x);
|
p.angle = atan2(dir.y,dir.x);
|
||||||
p.pitch = -asin(dir.z);
|
p.pitch = -asin(dir.z);
|
||||||
p.vel = (cos(p.angle)*cos(p.pitch),sin(p.angle)*cos(p.pitch),-sin(p.pitch))*p.speed;
|
p.vel = (cos(p.angle)*cos(p.pitch),sin(p.angle)*cos(p.pitch),-sin(p.pitch))*(p.speed+FRandom[Flak](-3,3));
|
||||||
p.target = self;
|
p.target = self;
|
||||||
}
|
}
|
||||||
int numpt = Random[Flak](20,30);
|
int numpt = Random[Flak](20,30);
|
||||||
|
|
|
||||||
|
|
@ -151,7 +151,7 @@ Class Minigun : UTWeapon
|
||||||
t.pitch = asin(-dir.z);
|
t.pitch = asin(-dir.z);
|
||||||
MinigunTracer(t).dest = d.HitLocation;
|
MinigunTracer(t).dest = d.HitLocation;
|
||||||
}
|
}
|
||||||
for ( int i=0; i<4; i++ )
|
for ( int i=0; i<2; i++ )
|
||||||
{
|
{
|
||||||
let s = Spawn("UTViewSmoke",origin);
|
let s = Spawn("UTViewSmoke",origin);
|
||||||
UTViewSmoke(s).ofs = (10,2,-2);
|
UTViewSmoke(s).ofs = (10,2,-2);
|
||||||
|
|
@ -162,7 +162,7 @@ Class Minigun : UTWeapon
|
||||||
}
|
}
|
||||||
origin += x*8.0+y*5.0-z*5.0;
|
origin += x*8.0+y*5.0-z*5.0;
|
||||||
let c = Spawn("UTCasing",origin);
|
let c = Spawn("UTCasing",origin);
|
||||||
c.vel = x*FRandom[Junk](-2,2)+y*FRandom[Junk](3,6)+z*FRandom[Junk](3,5);
|
c.vel = x*FRandom[Junk](-1.5,1.5)+y*FRandom[Junk](2,4)+z*FRandom[Junk](2,3);
|
||||||
c.Scale *= 0.5;
|
c.Scale *= 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ Class DamageAmplifier : Powerup
|
||||||
override void EndEffect()
|
override void EndEffect()
|
||||||
{
|
{
|
||||||
Super.EndEffect();
|
Super.EndEffect();
|
||||||
PrintPickupMessage(true,"Damage Amplifier has worn off.");
|
if ( EffectTics <= 0 ) PrintPickupMessage(true,"Damage Amplifier has worn off.");
|
||||||
}
|
}
|
||||||
|
|
||||||
override bool isBlinking()
|
override bool isBlinking()
|
||||||
|
|
@ -217,7 +217,7 @@ Class PowerUTInvisibility : PowerInvisibility
|
||||||
override void EndEffect()
|
override void EndEffect()
|
||||||
{
|
{
|
||||||
Super.EndEffect();
|
Super.EndEffect();
|
||||||
PrintPickupMessage(true,"Invisibility has worn off.");
|
if ( EffectTics <= 0 ) PrintPickupMessage(true,"Invisibility has worn off.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -170,7 +170,7 @@ Class PulseBall : Actor
|
||||||
+SKYEXPLODE;
|
+SKYEXPLODE;
|
||||||
+FORCEXYBILLBOARD;
|
+FORCEXYBILLBOARD;
|
||||||
Scale 0.19;
|
Scale 0.19;
|
||||||
Speed 29;
|
Speed 22;
|
||||||
Radius 2;
|
Radius 2;
|
||||||
Height 2;
|
Height 2;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ Class Razor2 : Actor
|
||||||
{
|
{
|
||||||
Radius 2;
|
Radius 2;
|
||||||
Height 2;
|
Height 2;
|
||||||
Speed 27;
|
Speed 25;
|
||||||
DamageFunction (Random[Ripper](20,25)*((DamageType=='Decapitated')?3:1.0));
|
DamageFunction (Random[Ripper](20,25)*((DamageType=='Decapitated')?3:1.0));
|
||||||
DamageType 'Shredded';
|
DamageType 'Shredded';
|
||||||
Obituary "%k ripped a chunk of meat out of %o with the Ripper.";
|
Obituary "%k ripped a chunk of meat out of %o with the Ripper.";
|
||||||
|
|
|
||||||
|
|
@ -934,7 +934,7 @@ Class SuperShockBall : Actor
|
||||||
Radius 2;
|
Radius 2;
|
||||||
Height 2;
|
Height 2;
|
||||||
Scale 0.5;
|
Scale 0.5;
|
||||||
Speed 25;
|
Speed 24;
|
||||||
PROJECTILE;
|
PROJECTILE;
|
||||||
+FORCEXYBILLBOARD;
|
+FORCEXYBILLBOARD;
|
||||||
+SKYEXPLODE;
|
+SKYEXPLODE;
|
||||||
|
|
|
||||||
|
|
@ -154,7 +154,7 @@ Class SniperRifle : UTWeapon
|
||||||
origin += x*8.0+y*6.0-z*9.0;
|
origin += x*8.0+y*6.0-z*9.0;
|
||||||
let c = Spawn("UTCasing",origin);
|
let c = Spawn("UTCasing",origin);
|
||||||
c.scale *= 1.25;
|
c.scale *= 1.25;
|
||||||
c.vel = x*FRandom[Junk](-2,2)+y*FRandom[Junk](3,6)+z*FRandom[Junk](3,5);
|
c.vel = x*FRandom[Junk](-1.5,1.5)+y*FRandom[Junk](2,4)+z*FRandom[Junk](2,3);
|
||||||
}
|
}
|
||||||
override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack )
|
override String GetObituary( Actor victim, Actor inflictor, Name mod, bool playerattack )
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -121,7 +121,7 @@ Class TranslocatorModule : Actor
|
||||||
{
|
{
|
||||||
Radius 2;
|
Radius 2;
|
||||||
Height 2;
|
Height 2;
|
||||||
Speed 25;
|
Speed 16;
|
||||||
PROJECTILE;
|
PROJECTILE;
|
||||||
-NOGRAVITY;
|
-NOGRAVITY;
|
||||||
+USEBOUNCESTATE;
|
+USEBOUNCESTATE;
|
||||||
|
|
@ -133,6 +133,7 @@ Class TranslocatorModule : Actor
|
||||||
BounceType "Hexen";
|
BounceType "Hexen";
|
||||||
BounceFactor 0.3;
|
BounceFactor 0.3;
|
||||||
WallBounceFactor 0.3;
|
WallBounceFactor 0.3;
|
||||||
|
Gravity 0.35;
|
||||||
}
|
}
|
||||||
|
|
||||||
override void PostBeginPlay()
|
override void PostBeginPlay()
|
||||||
|
|
|
||||||
|
|
@ -853,7 +853,7 @@ Class UTSpark : Actor
|
||||||
+DONTSPLASH;
|
+DONTSPLASH;
|
||||||
BounceType "Doom";
|
BounceType "Doom";
|
||||||
BounceFactor 0.4;
|
BounceFactor 0.4;
|
||||||
Gravity 0.5;
|
Gravity 0.2;
|
||||||
Scale 0.05;
|
Scale 0.05;
|
||||||
}
|
}
|
||||||
override void Tick()
|
override void Tick()
|
||||||
|
|
@ -927,7 +927,7 @@ Class UTChip : Actor
|
||||||
+INTERPOLATEANGLES;
|
+INTERPOLATEANGLES;
|
||||||
BounceType "Doom";
|
BounceType "Doom";
|
||||||
BounceFactor 0.3;
|
BounceFactor 0.3;
|
||||||
Gravity 0.7;
|
Gravity 0.35;
|
||||||
Scale 0.2;
|
Scale 0.2;
|
||||||
}
|
}
|
||||||
override void PostBeginPlay()
|
override void PostBeginPlay()
|
||||||
|
|
@ -1539,6 +1539,17 @@ Class UTMainHandler : StaticEventHandler
|
||||||
override void WorldLoaded( WorldEvent e )
|
override void WorldLoaded( WorldEvent e )
|
||||||
{
|
{
|
||||||
if ( gamestate != GS_LEVEL || e.IsSaveGame ) return;
|
if ( gamestate != GS_LEVEL || e.IsSaveGame ) return;
|
||||||
|
// just replace the -noflat- with a better scaled version and change the sky
|
||||||
|
if ( !flak_doomtest )
|
||||||
|
{
|
||||||
|
if ( level.GetChecksum() ~== "FBC3B6622A8B74AE06DE01E70007AC33" )
|
||||||
|
{
|
||||||
|
TexMan.ReplaceTextures("-noflat-","DefTex",0);
|
||||||
|
TextureID skytx = TexMan.CheckForTexture("BlueSky",TexMan.Type_Any);
|
||||||
|
level.ChangeSky(skytx,skytx);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
// prettify Kinsie's test map for a more Unreal feel
|
// prettify Kinsie's test map for a more Unreal feel
|
||||||
if ( level.GetChecksum() ~== "FBC3B6622A8B74AE06DE01E70007AC33" )
|
if ( level.GetChecksum() ~== "FBC3B6622A8B74AE06DE01E70007AC33" )
|
||||||
{
|
{
|
||||||
|
|
@ -1549,7 +1560,7 @@ Class UTMainHandler : StaticEventHandler
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
TextureID deftex = TexMan.CheckForTexture("-noflat-",TexMan.Type_Any);
|
TextureID deftex = TexMan.CheckForTexture("-noflat-",TexMan.Type_Any);
|
||||||
TextureID skytx = TexMan.CheckForTexture("BlueSky",TexMan.Type_Any);
|
TextureID skytx = TexMan.CheckForTexture("KGDaySky",TexMan.Type_Any);
|
||||||
TextureID baseflor = TexMan.CheckForTexture("rClfFlr0",TexMan.Type_Any);
|
TextureID baseflor = TexMan.CheckForTexture("rClfFlr0",TexMan.Type_Any);
|
||||||
TextureID baseceil = TexMan.CheckForTexture("rClfBas0",TexMan.Type_Any);
|
TextureID baseceil = TexMan.CheckForTexture("rClfBas0",TexMan.Type_Any);
|
||||||
TextureID basewall = TexMan.CheckForTexture("uAlnWl2b",TexMan.Type_Any);
|
TextureID basewall = TexMan.CheckForTexture("uAlnWl2b",TexMan.Type_Any);
|
||||||
|
|
@ -1558,7 +1569,7 @@ Class UTMainHandler : StaticEventHandler
|
||||||
level.ChangeSky(skytx,skytx);
|
level.ChangeSky(skytx,skytx);
|
||||||
for ( int i=0; i<level.sectors.size(); i++ )
|
for ( int i=0; i<level.sectors.size(); i++ )
|
||||||
{
|
{
|
||||||
level.sectors[i].lightlevel = 0;
|
level.sectors[i].lightlevel = min(level.sectors[i].lightlevel,64);
|
||||||
level.sectors[i].SetPlaneLight(0,0);
|
level.sectors[i].SetPlaneLight(0,0);
|
||||||
level.sectors[i].SetPlaneLight(1,0);
|
level.sectors[i].SetPlaneLight(1,0);
|
||||||
// open some ceilings
|
// open some ceilings
|
||||||
|
|
|
||||||
|
|
@ -62,6 +62,7 @@ Class UTBloodDrop : Actor
|
||||||
Default
|
Default
|
||||||
{
|
{
|
||||||
Scale 0.24;
|
Scale 0.24;
|
||||||
|
Gravity 0.8;
|
||||||
Mass 1;
|
Mass 1;
|
||||||
Radius 2;
|
Radius 2;
|
||||||
Height 2;
|
Height 2;
|
||||||
|
|
@ -119,8 +120,8 @@ Class UTBloodSpurt : Actor
|
||||||
ang = angle+FRandom[Blood](-3,3)*str;
|
ang = angle+FRandom[Blood](-3,3)*str;
|
||||||
pt = pitch+FRandom[Blood](-3,3)*str;
|
pt = pitch+FRandom[Blood](-3,3)*str;
|
||||||
Vector3 dir = (cos(pt)*cos(ang),cos(pt)*sin(ang),-sin(pt));
|
Vector3 dir = (cos(pt)*cos(ang),cos(pt)*sin(ang),-sin(pt));
|
||||||
d.vel = dir*str*FRandom[Blood](0.8,1.2);
|
d.vel = dir*str*FRandom[Blood](0.4,0.8);
|
||||||
d.vel.z += str*0.8;
|
d.vel.z += str*0.5;
|
||||||
d.scale *= str*0.15*FRandom[Blood](0.6,1.4);
|
d.scale *= str*0.15*FRandom[Blood](0.6,1.4);
|
||||||
}
|
}
|
||||||
Destroy();
|
Destroy();
|
||||||
|
|
@ -292,6 +293,7 @@ Class UTGib : Actor
|
||||||
BounceType "Hexen";
|
BounceType "Hexen";
|
||||||
BounceFactor 0.8;
|
BounceFactor 0.8;
|
||||||
WallBounceFactor 0.8;
|
WallBounceFactor 0.8;
|
||||||
|
Gravity 0.6;
|
||||||
+ROLLSPRITE;
|
+ROLLSPRITE;
|
||||||
+ROLLCENTER;
|
+ROLLCENTER;
|
||||||
+INTERPOLATEANGLES;
|
+INTERPOLATEANGLES;
|
||||||
|
|
|
||||||
|
|
@ -42,9 +42,6 @@ Class UTHud : BaseStatusBar
|
||||||
double CurX, CurY;
|
double CurX, CurY;
|
||||||
double FracTic;
|
double FracTic;
|
||||||
|
|
||||||
// Ugh...
|
|
||||||
const TINTSTYLE = (1|2<<8|1<<16|12<<24);
|
|
||||||
|
|
||||||
override void Init()
|
override void Init()
|
||||||
{
|
{
|
||||||
Super.Init();
|
Super.Init();
|
||||||
|
|
@ -211,7 +208,7 @@ Class UTHud : BaseStatusBar
|
||||||
if ( opacity == -1 ) opacity = self.opacity;
|
if ( opacity == -1 ) opacity = self.opacity;
|
||||||
if ( opacity >= 16 ) Screen.DrawTexture(tx,false,dx,dy,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_FillColor,bgcolor);
|
if ( opacity >= 16 ) Screen.DrawTexture(tx,false,dx,dy,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_FillColor,bgcolor);
|
||||||
double alpha = clamp(opacity/15.,0.0,1.0);
|
double alpha = clamp(opacity/15.,0.0,1.0);
|
||||||
Screen.DrawTexture(tx,false,dx,dy,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_Alpha,alpha,DTA_RenderStyle,TINTSTYLE,DTA_FillColor,(tint!="Black")?tint:tintcolor);
|
Screen.DrawTexture(tx,false,dx,dy,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_Alpha,alpha,DTA_LegacyRenderStyle,STYLE_AddShaded,DTA_FillColor,(tint!="Black")?tint:tintcolor);
|
||||||
}
|
}
|
||||||
private void UTDrawPlainTex( TextureID tx, double sx = 1.0, int opacity = -1 )
|
private void UTDrawPlainTex( TextureID tx, double sx = 1.0, int opacity = -1 )
|
||||||
{
|
{
|
||||||
|
|
@ -264,13 +261,13 @@ Class UTHud : BaseStatusBar
|
||||||
if ( value < 0 )
|
if ( value < 0 )
|
||||||
{
|
{
|
||||||
if ( opacity+7 > 15 ) Screen.DrawTexture(BigNum[11],false,CurX/ss,CurY/ss,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_FillColor,bgcolor);
|
if ( opacity+7 > 15 ) Screen.DrawTexture(BigNum[11],false,CurX/ss,CurY/ss,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_FillColor,bgcolor);
|
||||||
Screen.DrawTexture(BigNum[11],false,CurX/ss,CurY/ss,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_Alpha,alpha,DTA_RenderStyle,TINTSTYLE,DTA_FillColor,DrawColor);
|
Screen.DrawTexture(BigNum[11],false,CurX/ss,CurY/ss,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_Alpha,alpha,DTA_LegacyRenderStyle,STYLE_AddShaded,DTA_FillColor,DrawColor);
|
||||||
CurX += step;
|
CurX += step;
|
||||||
}
|
}
|
||||||
for ( int i=0; i<digits.length(); i++ )
|
for ( int i=0; i<digits.length(); i++ )
|
||||||
{
|
{
|
||||||
if ( opacity+7 > 15 ) Screen.DrawTexture(BigNum[digits.CharCodeAt(i)-0x30],false,CurX/ss,CurY/ss,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_FillColor,bgcolor);
|
if ( opacity+7 > 15 ) Screen.DrawTexture(BigNum[digits.CharCodeAt(i)-0x30],false,CurX/ss,CurY/ss,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_FillColor,bgcolor);
|
||||||
Screen.DrawTexture(BigNum[digits.CharCodeAt(i)-0x30],false,CurX/ss,CurY/ss,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_Alpha,alpha,DTA_RenderStyle,TINTSTYLE,DTA_FillColor,DrawColor);
|
Screen.DrawTexture(BigNum[digits.CharCodeAt(i)-0x30],false,CurX/ss,CurY/ss,DTA_VirtualWidthF,dw,DTA_VirtualHeightF,dh,DTA_KeepRatio,true,DTA_Alpha,alpha,DTA_LegacyRenderStyle,STYLE_AddShaded,DTA_FillColor,DrawColor);
|
||||||
CurX += ((i<digits.length()-1)&&(digits.CharAt(i+1)=="1"))?step*0.5:step;
|
CurX += ((i<digits.length()-1)&&(digits.CharAt(i+1)=="1"))?step*0.5:step;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -246,7 +246,7 @@ Class WarShell : Actor
|
||||||
Obituary "%o was vaporized by %k's Redeemer!!";
|
Obituary "%o was vaporized by %k's Redeemer!!";
|
||||||
Radius 2;
|
Radius 2;
|
||||||
Height 2;
|
Height 2;
|
||||||
Speed 12;
|
Speed 6;
|
||||||
DamageType 'RedeemerDeath';
|
DamageType 'RedeemerDeath';
|
||||||
DamageFactor 1000;
|
DamageFactor 1000;
|
||||||
PROJECTILE;
|
PROJECTILE;
|
||||||
|
|
@ -282,9 +282,9 @@ Class WarShell : Actor
|
||||||
if ( waterlevel > 0 )
|
if ( waterlevel > 0 )
|
||||||
{
|
{
|
||||||
vel *= 0.98;
|
vel *= 0.98;
|
||||||
if ( vel.length() < 12 ) vel += vel.unit();
|
if ( vel.length() < 6 ) vel += vel.unit()*0.35;
|
||||||
}
|
}
|
||||||
else if ( vel.length() < 40 ) vel += vel.unit();
|
else if ( vel.length() < 20 ) vel += vel.unit()*0.35;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
action void A_Trail()
|
action void A_Trail()
|
||||||
|
|
@ -535,8 +535,8 @@ Class RedeemerHUD : HUDMessageBase
|
||||||
}
|
}
|
||||||
for ( int i=0; i<ta.Size(); i++ )
|
for ( int i=0; i<ta.Size(); i++ )
|
||||||
{
|
{
|
||||||
Screen.DrawTexture(mark,false,ta[i].vpos.x,ta[i].vpos.y,DTA_RenderStyle,(1|2<<8|1<<16));
|
Screen.DrawTexture(mark,false,ta[i].vpos.x,ta[i].vpos.y,DTA_LegacyRenderStyle,STYLE_Add);
|
||||||
Screen.DrawText(whfont,Font.CR_UNTRANSLATED,(ta[i].vpos.x-whfont.StringWidth(ta[i].diststr)/2)-12,ta[i].vpos.y+8,ta[i].diststr,DTA_RenderStyle,(1|2<<8|1<<16));
|
Screen.DrawText(whfont,Font.CR_UNTRANSLATED,(ta[i].vpos.x-whfont.StringWidth(ta[i].diststr)/2)-12,ta[i].vpos.y+8,ta[i].diststr,DTA_LegacyRenderStyle,STYLE_Add);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// reticle
|
// reticle
|
||||||
|
|
@ -553,7 +553,7 @@ Class RedeemerHUD : HUDMessageBase
|
||||||
double rrot = -LagRoll2*2;
|
double rrot = -LagRoll2*2;
|
||||||
for ( int i=0; i<4; i++ )
|
for ( int i=0; i<4; i++ )
|
||||||
sshape.PushVertex(mid+(verts[i].x*cos(rrot)-verts[i].y*sin(rrot),verts[i].x*sin(rrot)+verts[i].y*cos(rrot)));
|
sshape.PushVertex(mid+(verts[i].x*cos(rrot)-verts[i].y*sin(rrot),verts[i].x*sin(rrot)+verts[i].y*cos(rrot)));
|
||||||
Screen.DrawShape(reticle1,false,sshape,DTA_RenderStyle,(1|2<<8|1<<16));
|
Screen.DrawShape(reticle1,false,sshape,DTA_LegacyRenderStyle,STYLE_Add);
|
||||||
sshape.Clear(Shape2D.C_Verts);
|
sshape.Clear(Shape2D.C_Verts);
|
||||||
verts[0] = (-siz2.x,siz.y+siz2.y);
|
verts[0] = (-siz2.x,siz.y+siz2.y);
|
||||||
verts[1] = (siz2.x,siz.y+siz2.y);
|
verts[1] = (siz2.x,siz.y+siz2.y);
|
||||||
|
|
@ -561,14 +561,14 @@ Class RedeemerHUD : HUDMessageBase
|
||||||
verts[3] = (siz2.x,siz.y+3*siz2.y);
|
verts[3] = (siz2.x,siz.y+3*siz2.y);
|
||||||
for ( int i=0; i<4; i++ )
|
for ( int i=0; i<4; i++ )
|
||||||
sshape.PushVertex(mid+(verts[i].x*cos(rrot)-verts[i].y*sin(rrot),verts[i].x*sin(rrot)+verts[i].y*cos(rrot)));
|
sshape.PushVertex(mid+(verts[i].x*cos(rrot)-verts[i].y*sin(rrot),verts[i].x*sin(rrot)+verts[i].y*cos(rrot)));
|
||||||
Screen.DrawShape(arrow,false,sshape,DTA_RenderStyle,(1|2<<8|1<<16));
|
Screen.DrawShape(arrow,false,sshape,DTA_LegacyRenderStyle,STYLE_Add);
|
||||||
Screen.DrawTexture(reticle2,false,vs.x*0.5,vs.y*0.5,DTA_VirtualWidthF,vs.x,DTA_VirtualHeightF,vs.y,DTA_KeepRatio,true,DTA_RenderStyle,(1|2<<8|1<<16));
|
Screen.DrawTexture(reticle2,false,vs.x*0.5,vs.y*0.5,DTA_VirtualWidthF,vs.x,DTA_VirtualHeightF,vs.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Add);
|
||||||
// faux assembly readout
|
// faux assembly readout
|
||||||
int numreadouts = int(vs.y/128+2);
|
int numreadouts = int(vs.y/128+2);
|
||||||
for ( int i=0; i<numreadouts; i++ )
|
for ( int i=0; i<numreadouts; i++ )
|
||||||
{
|
{
|
||||||
int scroll = (gametic*5)%128;
|
int scroll = (gametic*5)%128;
|
||||||
Screen.DrawTexture(readout,false,0,i*128-scroll,DTA_VirtualWidthF,vs.x,DTA_VirtualHeightF,vs.y,DTA_KeepRatio,true,DTA_RenderStyle,(1|2<<8|1<<16));
|
Screen.DrawTexture(readout,false,0,i*128-scroll,DTA_VirtualWidthF,vs.x,DTA_VirtualHeightF,vs.y,DTA_KeepRatio,true,DTA_LegacyRenderStyle,STYLE_Add);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue