mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-11 07:12:16 +00:00
Display other kills in coop tally screen (#1167)
* Display other kills in coop tally screen * Showing other when skipping counter
This commit is contained in:
parent
11cecf7f22
commit
34dd9625fc
8 changed files with 45 additions and 12 deletions
|
@ -54,6 +54,7 @@ struct FHubInfo
|
||||||
{
|
{
|
||||||
int levelnum;
|
int levelnum;
|
||||||
|
|
||||||
|
int totalkills;
|
||||||
int maxkills;
|
int maxkills;
|
||||||
int maxitems;
|
int maxitems;
|
||||||
int maxsecret;
|
int maxsecret;
|
||||||
|
@ -64,6 +65,7 @@ struct FHubInfo
|
||||||
FHubInfo &operator=(const wbstartstruct_t &wbs)
|
FHubInfo &operator=(const wbstartstruct_t &wbs)
|
||||||
{
|
{
|
||||||
levelnum = wbs.finished_ep;
|
levelnum = wbs.finished_ep;
|
||||||
|
totalkills = wbs.totalkills;
|
||||||
maxkills = wbs.maxkills;
|
maxkills = wbs.maxkills;
|
||||||
maxsecret = wbs.maxsecret;
|
maxsecret = wbs.maxsecret;
|
||||||
maxitems = wbs.maxitems;
|
maxitems = wbs.maxitems;
|
||||||
|
@ -107,6 +109,7 @@ void G_LeavingHub(FLevelLocals *Level, int mode, cluster_info_t * cluster, wbsta
|
||||||
|
|
||||||
if (mode != FINISH_SameHub)
|
if (mode != FINISH_SameHub)
|
||||||
{
|
{
|
||||||
|
wbs->totalkills = Level->killed_monsters;
|
||||||
wbs->maxkills = wbs->maxitems = wbs->maxsecret = 0;
|
wbs->maxkills = wbs->maxitems = wbs->maxsecret = 0;
|
||||||
for (i = 0; i < MAXPLAYERS; i++)
|
for (i = 0; i < MAXPLAYERS; i++)
|
||||||
{
|
{
|
||||||
|
@ -169,6 +172,7 @@ FSerializer &Serialize(FSerializer &arc, const char *key, FHubInfo &h, FHubInfo
|
||||||
if (arc.BeginObject(key))
|
if (arc.BeginObject(key))
|
||||||
{
|
{
|
||||||
arc("levelnum", h.levelnum)
|
arc("levelnum", h.levelnum)
|
||||||
|
("totalkills", h.totalkills)
|
||||||
("maxkills", h.maxkills)
|
("maxkills", h.maxkills)
|
||||||
("maxitems", h.maxitems)
|
("maxitems", h.maxitems)
|
||||||
("maxsecret", h.maxsecret)
|
("maxsecret", h.maxsecret)
|
||||||
|
|
|
@ -926,6 +926,7 @@ bool FLevelLocals::DoCompleted (FString nextlevel, wbstartstruct_t &wminfo)
|
||||||
nextlevel = wminfo.next;
|
nextlevel = wminfo.next;
|
||||||
|
|
||||||
wminfo.next_ep = FindLevelInfo (wminfo.next)->cluster - 1;
|
wminfo.next_ep = FindLevelInfo (wminfo.next)->cluster - 1;
|
||||||
|
wminfo.totalkills = killed_monsters;
|
||||||
wminfo.maxkills = total_monsters;
|
wminfo.maxkills = total_monsters;
|
||||||
wminfo.maxitems = total_items;
|
wminfo.maxitems = total_items;
|
||||||
wminfo.maxsecret = total_secrets;
|
wminfo.maxsecret = total_secrets;
|
||||||
|
|
|
@ -863,6 +863,7 @@ DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, nextauthor);
|
||||||
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, thisauthor);
|
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, thisauthor);
|
||||||
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, LName0);
|
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, LName0);
|
||||||
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, LName1);
|
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, LName1);
|
||||||
|
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, totalkills);
|
||||||
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, maxkills);
|
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, maxkills);
|
||||||
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, maxitems);
|
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, maxitems);
|
||||||
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, maxsecret);
|
DEFINE_FIELD_X(WBStartStruct, wbstartstruct_t, maxsecret);
|
||||||
|
|
|
@ -61,6 +61,7 @@ struct wbstartstruct_t
|
||||||
FTextureID LName0;
|
FTextureID LName0;
|
||||||
FTextureID LName1;
|
FTextureID LName1;
|
||||||
|
|
||||||
|
int totalkills;
|
||||||
int maxkills;
|
int maxkills;
|
||||||
int maxitems;
|
int maxitems;
|
||||||
int maxsecret;
|
int maxsecret;
|
||||||
|
|
|
@ -1172,14 +1172,15 @@ Color,SCORE_COLOR,,,Colour,Barva,Farbe,Χρώμα,Koloro,,,Väri,Couleur,Szín,C
|
||||||
Secret,SCORE_SECRET,,,,Tajemství,Geheimnis,Μυστικό,Sekreta,Secreto,,Salat,,Rejtély,Segreto,シークレット,밝혀낸 비밀,Geheim,Sekret,Segredo,,Secret,Тайники,Тајна
|
Secret,SCORE_SECRET,,,,Tajemství,Geheimnis,Μυστικό,Sekreta,Secreto,,Salat,,Rejtély,Segreto,シークレット,밝혀낸 비밀,Geheim,Sekret,Segredo,,Secret,Тайники,Тајна
|
||||||
Name,SCORE_NAME,,,,Jméno,Name,Όνομα,Nomo,Nombre,,Nimi,Nom,Név,Nome,名前,이름,Naam,Nazwa,Nome,,Nume,Имя,Име
|
Name,SCORE_NAME,,,,Jméno,Name,Όνομα,Nomo,Nombre,,Nimi,Nom,Név,Nome,名前,이름,Naam,Nazwa,Nome,,Nume,Имя,Име
|
||||||
Delay (ms),SCORE_DELAY,,,,Zpoždění (ms),Verzögerung (ms),Kαθυστέρηση (μδ),Prokrasto (ms),Retraso (ms),,Viive (ms),Délai (ms),Késleltetés (ms),Ritardo (ms) ,ping,핑 (밀리초당),Vertraging (ms),Opóźnienie (ms),Atraso (ms),,Întârziere (ms),Задержка (мс),Кашњење (мс)
|
Delay (ms),SCORE_DELAY,,,,Zpoždění (ms),Verzögerung (ms),Kαθυστέρηση (μδ),Prokrasto (ms),Retraso (ms),,Viive (ms),Délai (ms),Késleltetés (ms),Ritardo (ms) ,ping,핑 (밀리초당),Vertraging (ms),Opóźnienie (ms),Atraso (ms),,Întârziere (ms),Задержка (мс),Кашњење (мс)
|
||||||
Kills,SCORE_KILLS,,,,Zabití,,Σκοτομοί,Mortigoj,Asesinatos,,Tapot,Victimes,Ölések,Uccisioni,キル,킬수,Doodt,Zabójstwa,Vítimas,,Ucideri,Убийства,Убиства
|
Kills,SCORE_KILLS,,,,Zabití,,Σκοτομοί,Mortigoj,Asesinatos,,Tapot,Victimes,Ölések,Uccisioni,キル,킬수,Dood,Zabójstwa,Vítimas,,Ucideri,Убийства,Убиства
|
||||||
Frags,SCORE_FRAGS,,,,Fragy,,Κοματιασμοί,Ĉesoj,Bajas,,Frägit,,Fragek,Frags,フラグ,플레이어 킬수,Frags,Fragi,,,Victime,Фраги,Фрагови
|
Frags,SCORE_FRAGS,,,,Fragy,,Κοματιασμοί,Ĉesoj,Bajas,,Frägit,,Fragek,Frags,フラグ,플레이어 킬수,Frags,Fragi,,,Victime,Фраги,Фрагови
|
||||||
Deaths,SCORE_DEATHS,,,,Smrti,Tode,Θάνατοι,Mortoj,Muertes,,Kuolemat,Morts,Halálok,Morti,デス,사망한 횟수,Overlijden,Śmierci,Mortes,,Decese,Смерти,Смрти
|
Deaths,SCORE_DEATHS,,,,Smrti,Tode,Θάνατοι,Mortoj,Muertes,,Kuolemat,Morts,Halálok,Morti,デス,사망한 횟수,Doden,Śmierci,Mortes,,Decese,Смерти,Смрти
|
||||||
|
Other,SCORE_OTHER,,,,,Anders,,,,,Muu,Autre,,,,,Anders,,,,,,
|
||||||
Missed,SCORE_MISSED,,,,Minuto,Verfehlt,Ξεχάστηκαν,Mankita,Pérdidas,,Hudit,Ratés,Kihagyva,Mancati ,ミス,놓친 수,Gemist,Ominięte,Perdido,,Ratate,Пропущено,Промашаји
|
Missed,SCORE_MISSED,,,,Minuto,Verfehlt,Ξεχάστηκαν,Mankita,Pérdidas,,Hudit,Ratés,Kihagyva,Mancati ,ミス,놓친 수,Gemist,Ominięte,Perdido,,Ratate,Пропущено,Промашаји
|
||||||
Total,SCORE_TOTAL,,,,Celkem,Gesamt,Συνολικό,Tuta,,,Yhteensä,Total,Összesen,Totale,合計,총점,Totaal,Totalne,Total,,Total,Всего,Укупно
|
Total,SCORE_TOTAL,,,,Celkem,Gesamt,Συνολικό,Tuta,,,Yhteensä,Total,Összesen,Totale,合計,총점,Totaal,Totalne,Total,,Total,Всего,Укупно
|
||||||
Level Time,SCORE_LVLTIME,,,,Čas v levelu,Levelzeit,Χρόνος Πίστας,Nivel Daŭro,Tiempo de nivel,,Tasoaika,Temps niveau,Szint Idő,Tempo Livello ,時間,레벨 시간,Niveau Tijd,Czas,Tempo de Fase,Tempo do Nível,Timp Petrecut,Время уровня,Време нивоа
|
Level Time,SCORE_LVLTIME,,,,Čas v levelu,Levelzeit,Χρόνος Πίστας,Nivel Daŭro,Tiempo de nivel,,Tasoaika,Temps niveau,Szint Idő,Tempo Livello ,時間,레벨 시간,Niveau Tijd,Czas,Tempo de Fase,Tempo do Nível,Timp Petrecut,Время уровня,Време нивоа
|
||||||
,,Level Summary,,,,,,,,,,,,,,,,,,,,,
|
,,Level Summary,,,,,,,,,,,,,,,,,,,,,
|
||||||
Kills,TXT_IMKILLS,,,,Zabití,,Σκοτομοί,Mortigoj,Muertes,,Tapot,Morts,Áldozatok,Uccisioni,キル,킬수,Doodt,Zabójstwa,Vítimas,,Ucideri,Враги,Убиства
|
Kills,TXT_IMKILLS,,,,Zabití,,Σκοτομοί,Mortigoj,Muertes,,Tapot,Morts,Áldozatok,Uccisioni,キル,킬수,Dood,Zabójstwa,Vítimas,,Ucideri,Враги,Убиства
|
||||||
Items,TXT_IMITEMS,,,,Předměty,Gegenstände,Αντεικείμενα,Aĵoj,Objetos,,Esineet,Objets,Tárgyak,Oggetti,アイテム,획득한 아이템,Artikelen,Przedmioty,Itens,,Obiecte,Предметы,Ставке
|
Items,TXT_IMITEMS,,,,Předměty,Gegenstände,Αντεικείμενα,Aĵoj,Objetos,,Esineet,Objets,Tárgyak,Oggetti,アイテム,획득한 아이템,Artikelen,Przedmioty,Itens,,Obiecte,Предметы,Ставке
|
||||||
Secrets,TXT_IMSECRETS,,,,Tajemství,Geheimnisse,Μυστικά,Sekretoj,Secretos,,Salat,,Rejtekhelyek,Segreti,シークレット,밝혀낸 비밀,Geheimen,Sekrety,Segredos,,Secrete,Тайники,Тајне
|
Secrets,TXT_IMSECRETS,,,,Tajemství,Geheimnisse,Μυστικά,Sekretoj,Secretos,,Salat,,Rejtekhelyek,Segreti,シークレット,밝혀낸 비밀,Geheimen,Sekrety,Segredos,,Secrete,Тайники,Тајне
|
||||||
Time,TXT_IMTIME,,,,Čas,Zeit,Χρόνος,Daŭro,Tiempo,,Aika,Temps,Idő,Tempo,経過時間,소모한 시간,Tijd,Czas,Tempo,,Timp,Время,Време
|
Time,TXT_IMTIME,,,,Čas,Zeit,Χρόνος,Daŭro,Tiempo,,Aika,Temps,Idő,Tempo,経過時間,소모한 시간,Tijd,Czas,Tempo,,Timp,Время,Време
|
||||||
|
|
Can't render this file because it is too large.
|
|
@ -86,7 +86,9 @@ class StatusScreen abstract play version("2.5")
|
||||||
int CurState; // specifies current CurState
|
int CurState; // specifies current CurState
|
||||||
wbstartstruct wbs; // contains information passed into intermission
|
wbstartstruct wbs; // contains information passed into intermission
|
||||||
wbplayerstruct Plrs[MAXPLAYERS]; // wbs.plyr[]
|
wbplayerstruct Plrs[MAXPLAYERS]; // wbs.plyr[]
|
||||||
|
int otherkills;
|
||||||
int cnt; // used for general timing
|
int cnt; // used for general timing
|
||||||
|
int cnt_otherkills;
|
||||||
int cnt_kills[MAXPLAYERS];
|
int cnt_kills[MAXPLAYERS];
|
||||||
int cnt_items[MAXPLAYERS];
|
int cnt_items[MAXPLAYERS];
|
||||||
int cnt_secret[MAXPLAYERS];
|
int cnt_secret[MAXPLAYERS];
|
||||||
|
@ -842,7 +844,12 @@ class StatusScreen abstract play version("2.5")
|
||||||
acceleratestage = 0;
|
acceleratestage = 0;
|
||||||
cnt = bcnt = 0;
|
cnt = bcnt = 0;
|
||||||
me = wbs.pnum;
|
me = wbs.pnum;
|
||||||
for (int i = 0; i < MAXPLAYERS; i++) Plrs[i] = wbs.plyr[i];
|
otherkills = wbs.totalkills;
|
||||||
|
for (int i = 0; i < MAXPLAYERS; i++)
|
||||||
|
{
|
||||||
|
Plrs[i] = wbs.plyr[i];
|
||||||
|
otherkills -= Plrs[i].skills;
|
||||||
|
}
|
||||||
|
|
||||||
entering.Init(gameinfo.mStatscreenEnteringFont);
|
entering.Init(gameinfo.mStatscreenEnteringFont);
|
||||||
finished.Init(gameinfo.mStatscreenFinishedFont);
|
finished.Init(gameinfo.mStatscreenFinishedFont);
|
||||||
|
|
|
@ -36,6 +36,8 @@ class CoopStatusScreen : StatusScreen
|
||||||
dofrags += fragSum (i);
|
dofrags += fragSum (i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cnt_otherkills = 0;
|
||||||
|
|
||||||
dofrags = !!dofrags;
|
dofrags = !!dofrags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,6 +71,7 @@ class CoopStatusScreen : StatusScreen
|
||||||
if (dofrags)
|
if (dofrags)
|
||||||
cnt_frags[i] = fragSum (i);
|
cnt_frags[i] = fragSum (i);
|
||||||
}
|
}
|
||||||
|
cnt_otherkills = otherkills;
|
||||||
PlaySound("intermission/nextstage");
|
PlaySound("intermission/nextstage");
|
||||||
ng_state = 10;
|
ng_state = 10;
|
||||||
}
|
}
|
||||||
|
@ -93,6 +96,13 @@ class CoopStatusScreen : StatusScreen
|
||||||
stillticking = true;
|
stillticking = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cnt_otherkills += 2;
|
||||||
|
|
||||||
|
if (cnt_otherkills > otherkills)
|
||||||
|
cnt_otherkills = otherkills;
|
||||||
|
else
|
||||||
|
stillticking = true;
|
||||||
|
|
||||||
if (!stillticking)
|
if (!stillticking)
|
||||||
{
|
{
|
||||||
PlaySound("intermission/nextstage");
|
PlaySound("intermission/nextstage");
|
||||||
|
@ -215,7 +225,7 @@ class CoopStatusScreen : StatusScreen
|
||||||
int pwidth = IntermissionFont.GetCharWidth("%");
|
int pwidth = IntermissionFont.GetCharWidth("%");
|
||||||
int icon_x, name_x, kills_x, bonus_x, secret_x;
|
int icon_x, name_x, kills_x, bonus_x, secret_x;
|
||||||
int bonus_len, secret_len;
|
int bonus_len, secret_len;
|
||||||
int missed_kills, missed_items, missed_secrets;
|
int other_kills, missed_kills, missed_items, missed_secrets;
|
||||||
float h, s, v, r, g, b;
|
float h, s, v, r, g, b;
|
||||||
int color;
|
int color;
|
||||||
String text_bonus, text_secret, text_kills;
|
String text_bonus, text_secret, text_kills;
|
||||||
|
@ -258,6 +268,7 @@ class CoopStatusScreen : StatusScreen
|
||||||
drawTextScaled(displayFont, secret_x - secret_len * FontScale, y, text_secret, FontScale, textcolor);
|
drawTextScaled(displayFont, secret_x - secret_len * FontScale, y, text_secret, FontScale, textcolor);
|
||||||
y += int(height + 6 * FontScale);
|
y += int(height + 6 * FontScale);
|
||||||
|
|
||||||
|
other_kills = cnt_otherkills;
|
||||||
missed_kills = wbs.maxkills;
|
missed_kills = wbs.maxkills;
|
||||||
missed_items = wbs.maxitems;
|
missed_items = wbs.maxitems;
|
||||||
missed_secrets = wbs.maxsecret;
|
missed_secrets = wbs.maxsecret;
|
||||||
|
@ -296,8 +307,14 @@ class CoopStatusScreen : StatusScreen
|
||||||
y += lineheight + CleanYfac;
|
y += lineheight + CleanYfac;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw "MISSED" line
|
// Draw "OTHER" line
|
||||||
y += 3 * CleanYfac;
|
y += 3 * CleanYfac;
|
||||||
|
drawTextScaled(displayFont, name_x, y, Stringtable.Localize("$SCORE_OTHER"), FontScale, Font.CR_DARKGRAY);
|
||||||
|
drawPercentScaled(displayFont, kills_x, y, other_kills, wbs.maxkills, FontScale, Font.CR_DARKGRAY);
|
||||||
|
missed_kills -= cnt_otherkills;
|
||||||
|
|
||||||
|
// Draw "MISSED" line
|
||||||
|
y += height + 3 * CleanYfac;
|
||||||
drawTextScaled(displayFont, name_x, y, Stringtable.Localize("$SCORE_MISSED"), FontScale, Font.CR_DARKGRAY);
|
drawTextScaled(displayFont, name_x, y, Stringtable.Localize("$SCORE_MISSED"), FontScale, Font.CR_DARKGRAY);
|
||||||
drawPercentScaled(displayFont, kills_x, y, missed_kills, wbs.maxkills, FontScale, Font.CR_DARKGRAY);
|
drawPercentScaled(displayFont, kills_x, y, missed_kills, wbs.maxkills, FontScale, Font.CR_DARKGRAY);
|
||||||
if (ng_state >= 4)
|
if (ng_state >= 4)
|
||||||
|
|
|
@ -30,6 +30,7 @@ struct WBStartStruct native version("2.4")
|
||||||
native TextureID LName0;
|
native TextureID LName0;
|
||||||
native TextureID LName1;
|
native TextureID LName1;
|
||||||
|
|
||||||
|
native int totalkills;
|
||||||
native int maxkills;
|
native int maxkills;
|
||||||
native int maxitems;
|
native int maxitems;
|
||||||
native int maxsecret;
|
native int maxsecret;
|
||||||
|
|
Loading…
Reference in a new issue