mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-25 13:31:37 +00:00
Time in coop tally
This commit is contained in:
parent
11cecf7f22
commit
005f13b853
2 changed files with 80 additions and 4 deletions
|
@ -507,6 +507,45 @@ class StatusScreen abstract play version("2.5")
|
|||
drawTextScaled(fnt, x - fnt.StringWidth(s) * scale, y, s, scale, color);
|
||||
}
|
||||
|
||||
//====================================================================
|
||||
//
|
||||
// Display the completed time scaled
|
||||
//
|
||||
//====================================================================
|
||||
|
||||
void drawTimeScaled (Font fnt, int x, int y, int t, double scale, int color = Font.CR_UNTRANSLATED)
|
||||
{
|
||||
int sec = Thinker.Tics2Seconds(Plrs[me].stime);
|
||||
if (t < 0)
|
||||
return;
|
||||
|
||||
int hours = t / 3600;
|
||||
t -= hours * 3600;
|
||||
int minutes = t / 60;
|
||||
t -= minutes * 60;
|
||||
int seconds = t;
|
||||
|
||||
String s = "";
|
||||
if (hours > 0)
|
||||
{
|
||||
s = String.Format("%d", hours) .. ":";
|
||||
}
|
||||
|
||||
if (hours > 0 || minutes < 10)
|
||||
{
|
||||
s = s .. "0";
|
||||
}
|
||||
s = s .. String.Format("%d", minutes) .. ":";
|
||||
|
||||
if (seconds < 10)
|
||||
{
|
||||
s = s .. "0";
|
||||
}
|
||||
s = s .. String.Format("%d", seconds);
|
||||
|
||||
drawTextScaled(fnt, x - fnt.StringWidth(s) * scale, y, s, scale, color);
|
||||
}
|
||||
|
||||
//====================================================================
|
||||
//
|
||||
// Display level completion time and par, or "sucks" message if overflow.
|
||||
|
|
|
@ -53,7 +53,7 @@ class CoopStatusScreen : StatusScreen
|
|||
bool stillticking;
|
||||
bool autoskip = autoSkip();
|
||||
|
||||
if ((acceleratestage || autoskip) && ng_state != 10)
|
||||
if ((acceleratestage || autoskip) && ng_state != 12)
|
||||
{
|
||||
acceleratestage = 0;
|
||||
|
||||
|
@ -70,7 +70,7 @@ class CoopStatusScreen : StatusScreen
|
|||
cnt_frags[i] = fragSum (i);
|
||||
}
|
||||
PlaySound("intermission/nextstage");
|
||||
ng_state = 10;
|
||||
ng_state = 12;
|
||||
}
|
||||
|
||||
if (ng_state == 2)
|
||||
|
@ -146,7 +146,7 @@ class CoopStatusScreen : StatusScreen
|
|||
if (!stillticking)
|
||||
{
|
||||
PlaySound("intermission/nextstage");
|
||||
ng_state += 1 + 2*!dofrags;
|
||||
ng_state ++;
|
||||
}
|
||||
}
|
||||
else if (ng_state == 8)
|
||||
|
@ -156,6 +156,34 @@ class CoopStatusScreen : StatusScreen
|
|||
|
||||
stillticking = false;
|
||||
|
||||
cnt_time += 3;
|
||||
cnt_total_time += 3;
|
||||
|
||||
int sec = Thinker.Tics2Seconds(Plrs[me].stime);
|
||||
if (cnt_time > sec)
|
||||
cnt_time = sec;
|
||||
else
|
||||
stillticking = true;
|
||||
|
||||
int tsec = Thinker.Tics2Seconds(wbs.totaltime);
|
||||
if (cnt_total_time > tsec)
|
||||
cnt_total_time = tsec;
|
||||
else
|
||||
stillticking = true;
|
||||
|
||||
if (!stillticking)
|
||||
{
|
||||
PlaySound("intermission/nextstage");
|
||||
ng_state += 1 + 2*!dofrags;
|
||||
}
|
||||
}
|
||||
else if (ng_state == 10)
|
||||
{
|
||||
if (!(bcnt&3))
|
||||
PlaySound("intermission/tick");
|
||||
|
||||
stillticking = false;
|
||||
|
||||
for (i=0 ; i<MAXPLAYERS ; i++)
|
||||
{
|
||||
if (!playeringame[i])
|
||||
|
@ -175,7 +203,7 @@ class CoopStatusScreen : StatusScreen
|
|||
ng_state++;
|
||||
}
|
||||
}
|
||||
else if (ng_state == 10)
|
||||
else if (ng_state == 12)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < MAXPLAYERS; i++)
|
||||
|
@ -321,5 +349,14 @@ class CoopStatusScreen : StatusScreen
|
|||
drawNumScaled(displayFont, secret_x, y, FontScale, wbs.maxsecret, 0, textcolor);
|
||||
}
|
||||
}
|
||||
|
||||
y += height + 3 * CleanYfac;
|
||||
drawTextScaled(displayFont, name_x, y, Stringtable.Localize("$TXT_IMTIME"), FontScale, textcolor);
|
||||
|
||||
if (ng_state >= 8)
|
||||
{
|
||||
drawTimeScaled(displayFont, kills_x, y, cnt_time, FontScale, textcolor);
|
||||
drawTimeScaled(displayFont, secret_x, y, cnt_total_time, FontScale, textcolor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue