1.2 update, w/ GZDoom 4.9 stuff:
- Customizable player skins here too.
- Integrated re-skin add-ons ("Old Sounds" is still separate).
- The usual fixes and optimizations.
- All weapons are now left-handed, where possible.
This commit is contained in:
parent
5346b420e3
commit
a21aa43f35
1485 changed files with 1157 additions and 380 deletions
|
|
@ -304,6 +304,15 @@ Class UPlayer : UTPlayer
|
|||
if ( boot ) A_StartSound("u1/bootfootstep",CHAN_FOOTSTEP,CHANF_OVERLAP,min(1.,vol*2));
|
||||
else A_StartSound("ut/playerfootstep",CHAN_FOOTSTEP,CHANF_OVERLAP,vol);
|
||||
}
|
||||
|
||||
override void A_SetPlayerSkin()
|
||||
{
|
||||
A_ChangeModel("",0,"","",1,"models","GunPick1.png",CMDL_USESURFACESKIN,-1);
|
||||
}
|
||||
override void SetFreezeSkin()
|
||||
{
|
||||
A_ChangeModel("",0,"","",1,"models","GunPick1ice.png",CMDL_USESURFACESKIN,-1);
|
||||
}
|
||||
}
|
||||
|
||||
Class UFemaleArmGibber : UTGibber
|
||||
|
|
@ -318,19 +327,22 @@ Class UFemaleArmGibber : UTGibber
|
|||
if ( !firstgib )
|
||||
{
|
||||
firstgib = true;
|
||||
Actor a = Spawn("UTFemaleArm",Vec3Offset(-14*sin(angle),14*cos(angle),36));
|
||||
Vector3 pofs = (0,14,36);
|
||||
pofs.xy = RotateVector(pofs.xy,angle);
|
||||
Actor a = Spawn("UTFemaleArm",level.Vec3Offset(pos,pofs));
|
||||
ang = FRandom[Blod](0,360);
|
||||
pt = FRandom[Blod](-90,90);
|
||||
dir = (cos(pt)*cos(ang),cos(pt)*sin(ang),sin(-pt));
|
||||
dir = dt_Utility.Vec3FromAngle(ang,pt);
|
||||
a.vel = rvel*0.6+dir*FRandom[Blod](3.0,6.0);
|
||||
}
|
||||
for ( int i=0; i<gibsize; i++ )
|
||||
{
|
||||
Vector3 box = (FRandom[Blod](-4,4),FRandom[Blod](12,18),FRandom[Blod](32,40));
|
||||
let a = Spawn("UTBloodPuff",Vec3Offset(box.x*cos(angle)-box.y*sin(angle),box.x*sin(angle)+box.y*cos(angle),box.z));
|
||||
box.xy = RotateVector(box.xy,angle);
|
||||
let a = Spawn("UTBloodPuff",level.Vec3Offset(pos,box));
|
||||
ang = FRandom[Blod](0,360);
|
||||
pt = FRandom[Blod](-90,90);
|
||||
dir = (cos(pt)*cos(ang),cos(pt)*sin(ang),sin(-pt));
|
||||
dir = dt_Utility.Vec3FromAngle(ang,pt);
|
||||
a.vel = rvel*0.2+dir*FRandom[Blod](1.5,3.0);
|
||||
}
|
||||
A_CountDown();
|
||||
|
|
@ -458,6 +470,17 @@ Class UPlayerFemale1 : UPlayerFemale
|
|||
UTPlayer.VoiceType VOICE_FemaleTwo;
|
||||
-NOMENU;
|
||||
}
|
||||
override void A_SetPlayerSkin()
|
||||
{
|
||||
Super.A_SetPlayerSkin();
|
||||
String skin = player?CVar.GetCVar('sting_female1skin',player).GetString():"Gina";
|
||||
A_ChangeModel("",0,"","",0,"models/Female1",skin..".png",CMDL_USESURFACESKIN,-1);
|
||||
}
|
||||
override void SetFreezeSkin()
|
||||
{
|
||||
Super.SetFreezeSkin();
|
||||
A_ChangeModel("",0,"","",0,"models/Female1","Ice.png",CMDL_USESURFACESKIN,-1);
|
||||
}
|
||||
States
|
||||
{
|
||||
See:
|
||||
|
|
@ -473,6 +496,17 @@ Class UPlayerFemale2 : UPlayerFemale
|
|||
Player.DisplayName "$N_FEMALE2";
|
||||
-NOMENU;
|
||||
}
|
||||
override void A_SetPlayerSkin()
|
||||
{
|
||||
Super.A_SetPlayerSkin();
|
||||
String skin = player?CVar.GetCVar('sting_female2skin',player).GetString():"Sonya";
|
||||
A_ChangeModel("",0,"","",0,"models/Female2",skin..".png",CMDL_USESURFACESKIN,-1);
|
||||
}
|
||||
override void SetFreezeSkin()
|
||||
{
|
||||
Super.SetFreezeSkin();
|
||||
A_ChangeModel("",0,"","",0,"models/Female2","Ice.png",CMDL_USESURFACESKIN,-1);
|
||||
}
|
||||
States
|
||||
{
|
||||
See:
|
||||
|
|
@ -498,20 +532,23 @@ Class UMaleTorsoGibber : UTGibber
|
|||
firstgib = true;
|
||||
for ( int i=0; i<7; i++ )
|
||||
{
|
||||
Actor a = Spawn(parts[i],Vec3Offset(-partofsy[i]*sin(angle),partofsy[i]*cos(angle),partofsz[i]));
|
||||
Vector3 pofs = (0,partofsy[i],partofsz[i]);
|
||||
pofs.xy = RotateVector(pofs.xy,angle);
|
||||
Actor a = Spawn(parts[i],level.Vec3Offset(pos,pofs));
|
||||
ang = FRandom[Blod](0,360);
|
||||
pt = FRandom[Blod](-90,90);
|
||||
dir = (cos(pt)*cos(ang),cos(pt)*sin(ang),sin(-pt));
|
||||
dir = dt_Utility.Vec3FromAngle(ang,pt);
|
||||
a.vel = rvel*0.6+dir*FRandom[Blod](3.0,6.0);
|
||||
}
|
||||
}
|
||||
for ( int i=0; i<gibsize; i++ )
|
||||
{
|
||||
Vector3 box = (FRandom[Blod](-15,15),FRandom[Blod](15,15),FRandom[Blod](30,50));
|
||||
let a = Spawn("UTBloodPuff",Vec3Offset(box.x*cos(angle)-box.y*sin(angle),box.x*sin(angle)+box.y*cos(angle),box.z));
|
||||
box.xy = RotateVector(box.xy,angle);
|
||||
let a = Spawn("UTBloodPuff",level.Vec3Offset(pos,box));
|
||||
ang = FRandom[Blod](0,360);
|
||||
pt = FRandom[Blod](-90,90);
|
||||
dir = (cos(pt)*cos(ang),cos(pt)*sin(ang),sin(-pt));
|
||||
dir = dt_Utility.Vec3FromAngle(ang,pt);
|
||||
a.vel = rvel*0.2+dir*FRandom[Blod](1.5,3.0);
|
||||
}
|
||||
A_CountDown();
|
||||
|
|
@ -603,6 +640,17 @@ Class UPlayerMale1 : UPlayerMale
|
|||
else A_StartSound("ut/playerfootstep",CHAN_FOOTSTEP,CHANF_OVERLAP,vol);
|
||||
}
|
||||
}
|
||||
override void A_SetPlayerSkin()
|
||||
{
|
||||
Super.A_SetPlayerSkin();
|
||||
String skin = player?CVar.GetCVar('sting_male1skin',player).GetString():"Kurgan";
|
||||
A_ChangeModel("",0,"","",0,"models/Male1",skin..".png",CMDL_USESURFACESKIN,-1);
|
||||
}
|
||||
override void SetFreezeSkin()
|
||||
{
|
||||
Super.SetFreezeSkin();
|
||||
A_ChangeModel("",0,"","",0,"models/Male1","Ice.png",CMDL_USESURFACESKIN,-1);
|
||||
}
|
||||
Default
|
||||
{
|
||||
Player.DisplayName "$N_MALE1";
|
||||
|
|
@ -623,6 +671,17 @@ Class UPlayerMale2 : UPlayerMale
|
|||
Player.DisplayName "$N_MALE2";
|
||||
-NOMENU;
|
||||
}
|
||||
override void A_SetPlayerSkin()
|
||||
{
|
||||
Super.A_SetPlayerSkin();
|
||||
String skin = player?CVar.GetCVar('sting_male1skin',player).GetString():"Ash";
|
||||
A_ChangeModel("",0,"","",0,"models/Male2",skin..".png",CMDL_USESURFACESKIN,-1);
|
||||
}
|
||||
override void SetFreezeSkin()
|
||||
{
|
||||
Super.SetFreezeSkin();
|
||||
A_ChangeModel("",0,"","",0,"models/Male2","Ice.png",CMDL_USESURFACESKIN,-1);
|
||||
}
|
||||
States
|
||||
{
|
||||
See:
|
||||
|
|
@ -639,6 +698,17 @@ Class UPlayerMale3 : UPlayerMale
|
|||
UTPlayer.VoiceType VOICE_MaleTwo;
|
||||
-NOMENU;
|
||||
}
|
||||
override void A_SetPlayerSkin()
|
||||
{
|
||||
Super.A_SetPlayerSkin();
|
||||
String skin = player?CVar.GetCVar('sting_male1skin',player).GetString():"Dante";
|
||||
A_ChangeModel("",0,"","",0,"models/Male3",skin..".png",CMDL_USESURFACESKIN,-1);
|
||||
}
|
||||
override void SetFreezeSkin()
|
||||
{
|
||||
Super.SetFreezeSkin();
|
||||
A_ChangeModel("",0,"","",0,"models/Male3","Ice.png",CMDL_USESURFACESKIN,-1);
|
||||
}
|
||||
States
|
||||
{
|
||||
See:
|
||||
|
|
@ -860,9 +930,6 @@ Class UnrealStaticHandler : StaticEventHandler
|
|||
|
||||
ui void StartMenu()
|
||||
{
|
||||
CVar protomenu = CVar.GetCVar('sting_introtype',players[consoleplayer]);
|
||||
if ( !protomenu ) return; // this can happen
|
||||
int proto = protomenu.GetInt();
|
||||
tex[0] = TexMan.CheckForTexture("graphics/UnLogo0.png",TexMan.Type_Any);
|
||||
tex[1] = TexMan.CheckForTexture("graphics/UnLogo1.png",TexMan.Type_Any);
|
||||
tex[2] = TexMan.CheckForTexture("graphics/UnLogo3.png",TexMan.Type_Any);
|
||||
|
|
@ -871,19 +938,26 @@ Class UnrealStaticHandler : StaticEventHandler
|
|||
tex[5] = TexMan.CheckForTexture("graphics/97Bg.png",TexMan.Type_Any);
|
||||
tex[6] = TexMan.CheckForTexture("graphics/96Bg.png",TexMan.Type_Any);
|
||||
tex[7] = TexMan.CheckForTexture("graphics/95Bg.png",TexMan.Type_Any);
|
||||
if ( gamestate == GS_TITLELEVEL ) StartMenuMusic();
|
||||
cur = clamp(sting_introtype,0,3);
|
||||
}
|
||||
|
||||
clearscope void StartMenuMusic()
|
||||
{
|
||||
int proto = sting_introtype;
|
||||
if ( proto > 3 ) S_ChangeMusic("music/Unreal_Extended.it");
|
||||
else if ( proto == 3 ) S_ChangeMusic("music/Unreal.it");
|
||||
else if ( proto == 2 ) S_ChangeMusic("music/isotox96.s3m");
|
||||
else if ( proto == 1 ) S_ChangeMusic("music/Unreal2.it");
|
||||
else S_ChangeMusic("music/FlyBy.it");
|
||||
cur = clamp(proto,0,3);
|
||||
}
|
||||
|
||||
override void OnRegister()
|
||||
override void WorldLoaded( WorldEvent e )
|
||||
{
|
||||
// remove the UT static handler
|
||||
let hnd = UTStaticHandler(StaticEventHandler.Find("UTStaticHandler"));
|
||||
if ( hnd ) hnd.Destroy();
|
||||
if ( gamestate == GS_TITLELEVEL ) StartMenuMusic();
|
||||
}
|
||||
|
||||
override void ConsoleProcess( ConsoleEvent e )
|
||||
|
|
@ -895,7 +969,6 @@ Class UnrealStaticHandler : StaticEventHandler
|
|||
override void PostUiTick()
|
||||
{
|
||||
if ( gamestate != GS_TITLELEVEL ) return;
|
||||
if ( gametic <= 0 ) StartMenu();
|
||||
if ( musplaying.Name != lastmusic )
|
||||
{
|
||||
mtics = 0;
|
||||
|
|
@ -907,6 +980,7 @@ Class UnrealStaticHandler : StaticEventHandler
|
|||
override void RenderUnderlay( RenderEvent e )
|
||||
{
|
||||
if ( gamestate != GS_TITLELEVEL ) return;
|
||||
if ( tex[0].IsNull() ) StartMenu();
|
||||
double ar = Screen.GetAspectRatio();
|
||||
Vector2 tsize = TexMan.GetScaledSize(tex[cur+4]);
|
||||
double sar = tsize.x/tsize.y;
|
||||
|
|
@ -925,14 +999,6 @@ Class UnrealStaticHandler : StaticEventHandler
|
|||
double alf = clamp(((mtics+e.FracTic)/Thinker.TICRATE)-8,0.,1.);
|
||||
Screen.DrawTexture(tex[cur],false,(vsize.x-tsize.x)/2,(vsize.y-tsize.y)/2,DTA_VirtualWidthF,vsize.x,DTA_VirtualHeightF,vsize.y,DTA_KeepRatio,true,DTA_Alpha,alf);
|
||||
}
|
||||
|
||||
override void RenderOverlay( RenderEvent e )
|
||||
{
|
||||
// we have to stand in for the UT handler on this function
|
||||
// although it doesn't make much sense yet
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
Class AmmoUsedInSlot
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue