Much more stuff and things, also Candy Gun sounds.
|
|
@ -4,6 +4,10 @@ Most of the work here is original, but there are some notable exceptions:
|
|||
- Many sounds have been mixed and matched and filtered and whatnot from the following games:
|
||||
* Fallout New Vegas
|
||||
* Fallout 4
|
||||
* Unreal
|
||||
* Unreal Tournament
|
||||
* Unreal Tournament 2004
|
||||
* Deus Ex
|
||||
- This mod uses libeye, by KeksDose. Big thanks.
|
||||
- Title theme, "Traumatic State", by Teque (which a lot of people just know as "the AS-Golgotha music").
|
||||
- Intermission theme, "Dragony", also by Teque (very comfy music considering the rest of his repertoire).
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 114 B After Width: | Height: | Size: 129 B |
BIN
graphics/HUD/ChatBoxBottom_Smol.png
Normal file
|
After Width: | Height: | Size: 129 B |
BIN
graphics/HUD/ChatBoxLine_Smol.png
Normal file
|
After Width: | Height: | Size: 116 B |
BIN
graphics/HUD/ChatBoxTop_Smol.png
Normal file
|
After Width: | Height: | Size: 90 B |
17
language.txt
|
|
@ -105,12 +105,27 @@ D_LAMP = "The Lamp ran out of oil.";
|
|||
D_RAGEKIT = "The Ragekit has ragequit.";
|
||||
D_REFRESHER = "The Refresher boost has ended.";
|
||||
D_WARARMOR = "The War Armor is no more.";
|
||||
// messages
|
||||
// score messages
|
||||
SWWM_FINDSECRET = "\cf%s\cf found a secret. +%d\c-";
|
||||
SWWM_FINDKEY = "\cf%s\cf got the %s. +%d\c-";
|
||||
SWWM_LASTSECRET = "\cf%s\cf found the last secret. +%d\c-";
|
||||
SWWM_LASTITEM = "\cf%s\cf got the last item. +%d\c-";
|
||||
SWWM_LASTMONSTER = "\cf%s\cf killed the last monster. +%d\c-";
|
||||
// intermission tips
|
||||
SWWM_INTERTIP1 = "The Demolitionist is immune to drowning, poison and even fall damage (excluding instant kill pits, e.g. in Hexen).";
|
||||
SWWM_INTERTIP2 = "The Explodium Gun's altfire has an explosive yield proportional to the bullets left in the clip.";
|
||||
SWWM_INTERTIP3 = "Your fuel regenerates over time, but the more you use dashing and boosting, the longer this will take.";
|
||||
SWWM_INTERTIP4 = "The Pusher will slip off your hands on altfire if it doesn't land a hit, however as a ranged attack it may still be effective.";
|
||||
SWWM_INTERTIP5 = "Spare copies of items will be stashed away in your inventory if they can't be immediately used, this even includes health and armor.";
|
||||
SWWM_INTERTIP6 = "The Omnisight makes secret hunting a breeze by highlighting any usable objects in the map.";
|
||||
SWWM_INTERTIP7 = "True to its name, the Wallbuster's tertiary fire can be used to completely obliterate doors and other obstacles.";
|
||||
SWWM_INTERTIP8 = "The Eviscerator can easily clear entire rooms and corridors, but keep in mind that some of the shrapnel might bounce right back at you if you're not careful.";
|
||||
SWWM_INTERTIP9 = "When on the move, the Silver Bullet's jet compensators will reduce most of the recoil from firing, but will also deal some damage if you're not wearing armor.";
|
||||
SWWM_INTERTIP10 = "Just like other energy weapons of similar function, the Sparkster's primary and secondary fires can be combined with deadly results.";
|
||||
SWWM_INTERTIP11 = "The Lämp has a chance to attract a rare type of moth that is much more aggressive than others in its attacks.";
|
||||
SWWM_INTERTIP12 = "Most healing items will auto-activate if you're about to die, though sometimes they may not be enough to really save you... unless it's a Grilled Cheese Sandwich.";
|
||||
SWWM_INTERTIP13 = "The Ynykron Artifact will instantly kill everything you aim it at, unless it's really unkillable, though usually that's only the case for gods. You're not planning on going after any gods, right?";
|
||||
SWWM_INTERTIP14 = "Do not be deceived by the Candy Gun, it may seem like a simple recolor, but it is A LOT stronger than your starting weapon.";
|
||||
|
||||
/* SUBTITLES */
|
||||
// new weapon received
|
||||
|
|
|
|||
BIN
models/CandyGun_mask.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
music/GW2.XM
Normal file
69
sndinfo.txt
|
|
@ -1,8 +1,8 @@
|
|||
$pitchshiftrange 0
|
||||
|
||||
crash/glass glasscrk
|
||||
crash/curb curb
|
||||
brutal/ezmodo easymodo
|
||||
crash/glass sounds/GLASSCRK.ogg
|
||||
crash/curb sounds/CURB.ogg
|
||||
brutal/ezmodo sounds/EASYMODO.ogg
|
||||
|
||||
voice/default/death1 sounds/voice/default/death1.ogg
|
||||
voice/default/death2 sounds/voice/default/death2.ogg
|
||||
|
|
@ -257,18 +257,53 @@ explodium/slideforward sounds/explodiumgun/expl_slideforward.ogg
|
|||
explodium/speen sounds/explodiumgun/expl_speen.ogg
|
||||
explodium/throwmag sounds/explodiumgun/expl_throwmag.ogg
|
||||
|
||||
$playersound demolitionist neutral *grunt DSEMPTY
|
||||
$playeralias demolitionist neutral *pain100 demolitionist/lopain
|
||||
$playeralias demolitionist neutral *pain75 demolitionist/pain
|
||||
$playeralias demolitionist neutral *pain50 demolitionist/pain
|
||||
$playeralias demolitionist neutral *pain25 demolitionist/hipain
|
||||
$playersound demolitionist neutral *usefail DSEMPTY
|
||||
$playeralias demolitionist neutral *death demolitionist/death
|
||||
$playeralias demolitionist neutral *xdeath demolitionist/xdeath
|
||||
$playeralias demolitionist neutral *gibbed demolitionist/xdeath
|
||||
$playeralias demolitionist neutral *wimpydeath demolitionist/wdeath
|
||||
$playersound demolitionist neutral *land DSEMPTY
|
||||
$playersound demolitionist neutral *falling DSEMPTY
|
||||
$playersound demolitionist neutral *puzzfail DSEMPTY
|
||||
candygun/fire1 sounds/candygun/candy_fire1.ogg
|
||||
candygun/fire2 sounds/candygun/candy_fire2.ogg
|
||||
candygun/fire3 sounds/candygun/candy_fire3.ogg
|
||||
$random candygun/fire { candygun/fire1 candygun/fire2 candygun/fire3 }
|
||||
candygun/hit1 sounds/candygun/candy_hit1.ogg
|
||||
candygun/hit2 sounds/candygun/candy_hit2.ogg
|
||||
$random candygun/hit { candygun/hit1 candygun/hit2 }
|
||||
candygun/maghit1 sounds/candygun/candy_maghit1.ogg
|
||||
candygun/maghit2 sounds/candygun/candy_maghit2.ogg
|
||||
$random candygun/maghit { candygun/maghit1 candygun/maghit2 }
|
||||
candygun/gunhit1 sounds/candygun/candy_gunhit1.ogg
|
||||
candygun/gunhit2 sounds/candygun/candy_gunhit2.ogg
|
||||
$random candygun/gunhit { candygun/gunhit1 candygun/gunhit2 }
|
||||
|
||||
$alias misc/keytry DSEMPTY
|
||||
$playersound demolitionist neutral *grunt DSEMPTY
|
||||
$playeralias demolitionist neutral *pain100 demolitionist/lopain
|
||||
$playeralias demolitionist neutral *pain75 demolitionist/pain
|
||||
$playeralias demolitionist neutral *pain50 demolitionist/pain
|
||||
$playeralias demolitionist neutral *pain25 demolitionist/hipain
|
||||
$playersound demolitionist neutral *usefail sounds/menu/failuse.ogg
|
||||
$playeralias demolitionist neutral *death demolitionist/death
|
||||
$playeralias demolitionist neutral *xdeath demolitionist/xdeath
|
||||
$playeralias demolitionist neutral *gibbed demolitionist/xdeath
|
||||
$playeralias demolitionist neutral *wimpydeath demolitionist/wdeath
|
||||
$playersound demolitionist neutral *land DSEMPTY
|
||||
$playersound demolitionist neutral *falling DSEMPTY
|
||||
$playersound demolitionist neutral *puzzfail sounds/menu/failuse.ogg
|
||||
|
||||
misc/secret sounds/menu/findsecret.ogg
|
||||
misc/keytry sounds/menu/failuse.ogg
|
||||
misc/w_pkup sounds/general/wpickup.ogg
|
||||
misc/p_pkup DSEMPTY
|
||||
misc/i_pkup DSEMPTY
|
||||
misc/k_pkup DSEMPTY
|
||||
misc/ammo_pkup sounds/general/apickup.ogg
|
||||
misc/armor_pkup DSEMPTY
|
||||
misc/health_pkup DSEMPTY
|
||||
misc/spawn sounds/CORK.ogg
|
||||
misc/chat sounds/menu/chatsnd.ogg
|
||||
misc/chat2 sounds/menu/chatsnd.ogg
|
||||
|
||||
menu/activate sounds/hmenu/hmenu1.ogg
|
||||
menu/backup sounds/hmenu/hmenu2.ogg
|
||||
menu/prompt sounds/hmenu/hmenu1.ogg
|
||||
menu/cursor sounds/hmenu/hmenu1.ogg
|
||||
menu/change sounds/hmenu/hmenu1.ogg
|
||||
menu/invalid sounds/hmenu/hmenu2.ogg
|
||||
menu/dismiss sounds/hmenu/hmenu2.ogg
|
||||
menu/choose sounds/hmenu/hmenu1.ogg
|
||||
menu/clear sounds/hmenu/hmenu2.ogg
|
||||
|
|
|
|||
BIN
sounds/CORK.ogg
Normal file
BIN
sounds/candygun/candy_fire1.ogg
Normal file
BIN
sounds/candygun/candy_fire2.ogg
Normal file
BIN
sounds/candygun/candy_fire3.ogg
Normal file
BIN
sounds/candygun/candy_gunhit1.ogg
Normal file
BIN
sounds/candygun/candy_gunhit2.ogg
Normal file
BIN
sounds/candygun/candy_hit1.ogg
Normal file
BIN
sounds/candygun/candy_hit2.ogg
Normal file
BIN
sounds/candygun/candy_maghit1.ogg
Normal file
BIN
sounds/candygun/candy_maghit2.ogg
Normal file
BIN
sounds/general/apickup.ogg
Normal file
BIN
sounds/general/wpickup.ogg
Normal file
BIN
sounds/hmenu/hmenu1.ogg
Normal file
BIN
sounds/hmenu/hmenu2.ogg
Normal file
BIN
sounds/menu/chatsnd.ogg
Normal file
BIN
sounds/menu/failinv.ogg
Normal file
BIN
sounds/menu/failuse.ogg
Normal file
BIN
sounds/menu/findsecret.ogg
Normal file
BIN
sounds/menu/invsel.ogg
Normal file
BIN
sounds/menu/menuscroll.ogg
Normal file
BIN
sounds/menu/menuset.ogg
Normal file
BIN
sounds/menu/menutab.ogg
Normal file
BIN
sounds/menu/openkbase.ogg
Normal file
BIN
sprites/BLPFB0.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
|
|
@ -84,12 +84,26 @@ Class SWWMOneLiner : HUDMessageBase
|
|||
Vector2 hs = StatusBar.GetHUDScale();
|
||||
Vector2 ss = (Screen.GetWidth()/hs.x,Screen.GetHeight()/hs.y);
|
||||
String locs = "\""..StringTable.Localize(whichline).."\"";
|
||||
int len = mTewiFont.mFont.StringWidth(locs);
|
||||
// split so it can fit
|
||||
BrokenLines l = mTewiFont.mFont.BreakLines(locs,int(ss.x*.5));
|
||||
int maxlen = 0;
|
||||
for ( int i=0; i<l.Count(); i++ )
|
||||
{
|
||||
int len = mTewiFont.mFont.StringWidth(l.StringAt(i));
|
||||
if ( len > maxlen ) maxlen = len;
|
||||
}
|
||||
int h = mTewiFont.mFont.GetHeight();
|
||||
int fh = h*l.Count();
|
||||
double alph = clamp((curtime/20.)+1.,0.,1.);
|
||||
alph *= clamp((lifespan-curtime)/10.,0.,1.);
|
||||
Screen.Dim("Black",alph*.8,int((Screen.GetWidth()-(len+12)*hs.x)/2.),int(bottom-(margin+2+h)*hs.y),int((len+12)*hs.x),int((h+4)*hs.y));
|
||||
Screen.DrawText(mTewiFont.mFont,Font.CR_FIRE,(ss.x-len)/2.,(bottom/hs.y)-(margin+h),locs,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alph);
|
||||
Screen.Dim("Black",alph*.8,int((Screen.GetWidth()-(maxlen+12)*hs.x)/2.),int(bottom-(margin+2+fh)*hs.y),int((maxlen+12)*hs.x),int((fh+4)*hs.y));
|
||||
int yy = margin+fh;
|
||||
for ( int i=0; i<l.Count(); i++ )
|
||||
{
|
||||
int len = mTewiFont.mFont.StringWidth(l.StringAt(i));
|
||||
Screen.DrawText(mTewiFont.mFont,Font.CR_FIRE,(ss.x-len)/2.,(bottom/hs.y)-yy,l.StringAt(i),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alph);
|
||||
yy -= h;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ Class MsgLine
|
|||
|
||||
Class SWWMStatusBar : BaseStatusBar
|
||||
{
|
||||
TextureID StatusTex, WeaponTex, ScoreTex, InventoryTex, ChatTex[3],
|
||||
TextureID StatusTex, WeaponTex, ScoreTex, InventoryTex, ChatTex[6],
|
||||
HealthTex[4], FuelTex, DashTex;
|
||||
HUDFont mTewiFont;
|
||||
|
||||
|
|
@ -42,20 +42,14 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
|
||||
override bool ProcessNotify( EPrintLevel printlevel, String outline )
|
||||
{
|
||||
if ( !chatduration ) chatduration = CVar.GetCVar('swwm_chatduration',players[consoleplayer]);
|
||||
if ( !msgduration ) msgduration = CVar.GetCVar('swwm_msgduration',players[consoleplayer]);
|
||||
if ( !pickduration ) pickduration = CVar.GetCVar('swwm_pickduration',players[consoleplayer]);
|
||||
let m = new("MsgLine");
|
||||
m.str = outline.Left(outline.Length()-1); // strip newline
|
||||
m.type = printlevel;
|
||||
m.tic = gametic;
|
||||
// set lifespan for each type
|
||||
if ( printlevel == PRINT_LOW ) m.tic += pickduration.GetInt();
|
||||
else if ( printlevel <= PRINT_HIGH ) m.tic += msgduration.GetInt();
|
||||
else m.tic += chatduration.GetInt();
|
||||
m.rep = 1;
|
||||
// append to full history
|
||||
FullHistory.Push(m);
|
||||
// append chat messages to full history
|
||||
if ( (printlevel == PRINT_CHAT) || (printlevel == PRINT_TEAMCHAT) )
|
||||
FullHistory.Push(m);
|
||||
// ignore during intermission
|
||||
if ( gamestate != GS_LEVEL ) return false;
|
||||
if ( (printlevel < PRINT_LOW) || (printlevel > PRINT_TEAMCHAT) ) return true; // we couldn't care less about these
|
||||
|
|
@ -90,17 +84,21 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
|
||||
override void Tick()
|
||||
{
|
||||
if ( !chatduration ) chatduration = CVar.GetCVar('swwm_chatduration',players[consoleplayer]);
|
||||
if ( !msgduration ) msgduration = CVar.GetCVar('swwm_msgduration',players[consoleplayer]);
|
||||
if ( !pickduration ) pickduration = CVar.GetCVar('swwm_pickduration',players[consoleplayer]);
|
||||
Super.Tick();
|
||||
// prune old messages
|
||||
for ( int i=0; i<PickupQueue.Size(); i++ )
|
||||
{
|
||||
if ( gametic < PickupQueue[i].tic ) continue;
|
||||
if ( gametic < (PickupQueue[i].tic+pickduration.GetInt()) ) continue;
|
||||
PickupQueue.Delete(i);
|
||||
i--;
|
||||
}
|
||||
for ( int i=0; i<MainQueue.Size(); i++ )
|
||||
{
|
||||
if ( gametic < MainQueue[i].tic ) continue;
|
||||
if ( (MainQueue[i].type <= PRINT_HIGH) && (gametic < (MainQueue[i].tic+msgduration.GetInt())) ) continue;
|
||||
else if ( (MainQueue[i].type > PRINT_HIGH) && (gametic < (MainQueue[i].tic+chatduration.GetInt())) ) continue;
|
||||
MainQueue.Delete(i);
|
||||
i--;
|
||||
}
|
||||
|
|
@ -127,7 +125,7 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
override void Init()
|
||||
{
|
||||
Super.Init();
|
||||
SetSize(0,640,400);
|
||||
SetSize(0,640,360);
|
||||
StatusTex = TexMan.CheckForTexture("graphics/HUD/StatusBox.png",TexMan.Type_Any);
|
||||
DashTex = TexMan.CheckForTexture("graphics/HUD/DashBar.png",TexMan.Type_Any);
|
||||
FuelTex = TexMan.CheckForTexture("graphics/HUD/FuelBar.png",TexMan.Type_Any);
|
||||
|
|
@ -140,6 +138,9 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
ChatTex[0] = TexMan.CheckForTexture("graphics/HUD/ChatBoxTop.png",TexMan.Type_Any);
|
||||
ChatTex[1] = TexMan.CheckForTexture("graphics/HUD/ChatBoxLine.png",TexMan.Type_Any);
|
||||
ChatTex[2] = TexMan.CheckForTexture("graphics/HUD/ChatBoxBottom.png",TexMan.Type_Any);
|
||||
ChatTex[3] = TexMan.CheckForTexture("graphics/HUD/ChatBoxTop_Smol.png",TexMan.Type_Any);
|
||||
ChatTex[4] = TexMan.CheckForTexture("graphics/HUD/ChatBoxLine_Smol.png",TexMan.Type_Any);
|
||||
ChatTex[5] = TexMan.CheckForTexture("graphics/HUD/ChatBoxBottom_Smol.png",TexMan.Type_Any);
|
||||
mTewiFont = HUDFont.Create("TewiShaded");
|
||||
HealthInter = DynamicValueInterpolator.Create(100,.1,1,100);
|
||||
ScoreInter = DynamicValueInterpolator.Create(0,.1,1,1000);
|
||||
|
|
@ -242,6 +243,9 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
|
||||
private void DrawMessages()
|
||||
{
|
||||
if ( !chatduration ) chatduration = CVar.GetCVar('swwm_chatduration',players[consoleplayer]);
|
||||
if ( !msgduration ) msgduration = CVar.GetCVar('swwm_msgduration',players[consoleplayer]);
|
||||
if ( !pickduration ) pickduration = CVar.GetCVar('swwm_pickduration',players[consoleplayer]);
|
||||
if ( !pickcol ) pickcol = CVar.GetCVar('msg0color',players[consoleplayer]);
|
||||
if ( !obitcol ) obitcol = CVar.GetCVar('msg1color',players[consoleplayer]);
|
||||
if ( !critcol ) critcol = CVar.GetCVar('msg2color',players[consoleplayer]);
|
||||
|
|
@ -252,7 +256,8 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
{
|
||||
int mstart = max(0,MainQueue.Size()-(1+maxchat[chatopen>=gametic].GetInt()));
|
||||
double xx = margin, yy = margin;
|
||||
Screen.DrawTexture(ChatTex[0],false,xx,yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
bool smol = (ss.x<640);
|
||||
Screen.DrawTexture(ChatTex[smol?3:0],false,xx,yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
yy++;
|
||||
for ( int i=mstart; i<MainQueue.Size(); i++ )
|
||||
{
|
||||
|
|
@ -262,35 +267,50 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
else if ( MainQueue[i].type == PRINT_TEAMCHAT ) col = teamcol.GetInt();
|
||||
String cstr = MainQueue[i].str;
|
||||
if ( MainQueue[i].rep > 1 ) cstr.AppendFormat(" (x%d)",MainQueue[i].rep);
|
||||
BrokenLines l = mTewiFont.mFont.BreakLines(cstr,361);
|
||||
int curtime = MainQueue[i].tic-gametic;
|
||||
if ( MainQueue[i].type < PRINT_CHAT ) curtime += msgduration.GetInt();
|
||||
else curtime += chatduration.GetInt();
|
||||
double alph = clamp(curtime/20.,0.,1.);
|
||||
BrokenLines l = mTewiFont.mFont.BreakLines(cstr,smol?211:361);
|
||||
for ( int j=0; j<l.Count(); j++ )
|
||||
{
|
||||
Screen.DrawTexture(ChatTex[1],false,xx,yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
Screen.DrawText(mTewiFont.mFont,col,xx+4,yy,l.StringAt(j),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
Screen.DrawTexture(ChatTex[smol?4:1],false,xx,yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
Screen.DrawText(mTewiFont.mFont,col,xx+4,yy,l.StringAt(j),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alph);
|
||||
yy += 13;
|
||||
}
|
||||
}
|
||||
Screen.DrawTexture(ChatTex[2],false,xx,yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
Screen.DrawTexture(ChatTex[smol?5:2],false,xx,yy,DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
}
|
||||
// pickup messages
|
||||
if ( PickupQueue.Size() > 0 )
|
||||
{
|
||||
// reverse order since they're drawn bottom to top
|
||||
int mend = max(0,PickupQueue.Size()-(1+maxpick.GetInt()));
|
||||
double yy = ss.y-(margin+40);
|
||||
double yy = ss.y-(margin+50);
|
||||
for ( int i=PickupQueue.Size()-1; i>=mend; i-- )
|
||||
{
|
||||
String cstr = PickupQueue[i].str;
|
||||
if ( PickupQueue[i].rep > 1 ) cstr.AppendFormat(" (x%d)",PickupQueue[i].rep);
|
||||
int curtime = (PickupQueue[i].tic+pickduration.GetInt())-gametic;
|
||||
double alph = clamp(curtime/20.,0.,1.);
|
||||
BrokenLines l = mTewiFont.mFont.BreakLines(cstr,int(ss.x*.75));
|
||||
int maxlen = 0;
|
||||
for ( int j=0; j<l.Count(); j++ )
|
||||
{
|
||||
int len = mTewiFont.mFont.StringWidth(l.StringAt(j));
|
||||
if ( len > maxlen ) maxlen = len;
|
||||
}
|
||||
int h = mTewiFont.mFont.GetHeight();
|
||||
double xx = (ss.x-maxlen)/2.;
|
||||
Screen.Dim("Black",.8*alph,int((xx-6)*hs.x),int((yy-h*(l.Count()-1))*hs.y),int((maxlen+12)*hs.x),int((h*l.Count()+4)*hs.y));
|
||||
for ( int j=l.Count()-1; j>=0; j-- )
|
||||
{
|
||||
int len = mTewiFont.mFont.StringWidth(l.StringAt(j));
|
||||
double xx = (ss.x-len)/2.;
|
||||
Screen.Dim("Black",.8,int((xx-6)*hs.x),int(yy*hs.y),int((len+12)*hs.x),int(15*hs.y));
|
||||
Screen.DrawText(mTewiFont.mFont,pickcol.GetInt(),xx,yy+1,l.StringAt(j),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true);
|
||||
yy -= 15;
|
||||
xx = (ss.x-len)/2.;
|
||||
Screen.DrawText(mTewiFont.mFont,pickcol.GetInt(),xx,yy+2,l.StringAt(j),DTA_VirtualWidthF,ss.x,DTA_VirtualHeightF,ss.y,DTA_KeepRatio,true,DTA_Alpha,alph);
|
||||
yy -= h;
|
||||
}
|
||||
yy -= 6;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -344,7 +364,7 @@ Class SWWMStatusBar : BaseStatusBar
|
|||
BeginHUD();
|
||||
hs = GetHUDScale();
|
||||
ss = (Screen.GetWidth()/hs.x,Screen.GetHeight()/hs.y);
|
||||
margin = clamp(safezone.GetInt(),0,40);
|
||||
margin = clamp(safezone.GetInt(),0,(ss.x<640)?10:40);
|
||||
FracTic = TicFrac;
|
||||
DrawTarget();
|
||||
DrawScore();
|
||||
|
|
|
|||
|
|
@ -7,8 +7,13 @@ Class SWWMKnowledgeBaseMenu : GenericMenu
|
|||
override void Init( Menu parent )
|
||||
{
|
||||
Super.Init(parent);
|
||||
if ( gamestate != GS_LEVEL )
|
||||
{
|
||||
// can't open this menu outside of the game
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
TewiFont = Font.GetFont('TewiShaded');
|
||||
MenuSound("menu/activate");
|
||||
}
|
||||
|
||||
override bool MenuEvent( int mkey, bool fromcontroller )
|
||||
|
|
|
|||
|
|
@ -255,12 +255,16 @@ Class Demolitionist : PlayerPawn
|
|||
}
|
||||
}
|
||||
if ( jumpfac > 0 ) jumpvelz *= jumpfac;
|
||||
vel.z = max(0,vel.z)+jumpvelz;
|
||||
double pvelz = vel.z;
|
||||
if ( !player.onground )
|
||||
{
|
||||
// check for wall kicks
|
||||
if ( walljump )
|
||||
{
|
||||
vel.z = max(-abs(vel.z)*.1,vel.z);
|
||||
vel.z += jumpvelz;
|
||||
vel.xy = (cos(angle),sin(angle))*20*Speed;
|
||||
}
|
||||
}
|
||||
bOnMobj = false;
|
||||
player.jumpTics = -1;
|
||||
|
|
@ -270,12 +274,13 @@ Class Demolitionist : PlayerPawn
|
|||
{
|
||||
dashboost = 3.;
|
||||
boostcooldown = 20;
|
||||
vel.z += jumpvelz+clamp(-pvelz,0.,30.);
|
||||
A_StartSound("demolitionist/jet",CHAN_JETPACK,CHANF_LOOP);
|
||||
}
|
||||
else
|
||||
{
|
||||
dashboost = 0.;
|
||||
vel.z *= 1.25;
|
||||
vel.z += jumpvelz*1.25;
|
||||
}
|
||||
SetStateLabel("Jump");
|
||||
}
|
||||
|
|
@ -467,7 +472,7 @@ Class Demolitionist : PlayerPawn
|
|||
else Console.Printf(StringTable.Localize("$SWWM_FINDSECRET"),player.GetUserName(),score);
|
||||
if ( CheckLocalView() && (mute.GetInt() < 2) ) SWWMHandler.AddOneliner("findsecret",40);
|
||||
SWWMCredits.GiveCredits(player,score);
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
override void AddInventory( Inventory item )
|
||||
{
|
||||
|
|
|
|||