From 91e21acd8f304f70d46e97c8c41fea39353ca210 Mon Sep 17 00:00:00 2001 From: Marisa the Magician Date: Tue, 7 Mar 2023 08:11:15 +0100 Subject: [PATCH] Add critical messages and obituaries to message log. --- language.version | 4 ++-- zscript/hud/swwm_hud_messages.zsc | 4 ++-- zscript/kbase/swwm_kbasetab_chat.zsc | 16 ++++++++++++---- zscript/swwm_thinkers_player.zsc | 11 ++++++++++- 4 files changed, 26 insertions(+), 9 deletions(-) diff --git a/language.version b/language.version index 4cae867f6..a7060fc5b 100644 --- a/language.version +++ b/language.version @@ -1,3 +1,3 @@ [default] -SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r761 \cu(Tue 7 Mar 08:15:52 CET 2023)\c-"; -SWWM_SHORTVER="\cw1.3pre r761 \cu(2023-03-07 08:15:52)\c-"; +SWWM_MODVER="\cyDEMOLITIONIST \cw1.3pre r762 \cu(Tue 7 Mar 08:16:02 CET 2023)\c-"; +SWWM_SHORTVER="\cw1.3pre r762 \cu(2023-03-07 08:16:02)\c-"; diff --git a/zscript/hud/swwm_hud_messages.zsc b/zscript/hud/swwm_hud_messages.zsc index 92ddd39b6..02bcf65a3 100644 --- a/zscript/hud/swwm_hud_messages.zsc +++ b/zscript/hud/swwm_hud_messages.zsc @@ -221,8 +221,8 @@ extend Class SWWMStatusBar if ( (rprintlevel < PRINT_LOW) || (rprintlevel > PRINT_TEAMCHAT) ) rprintlevel = PRINT_HIGH; // strip trailing newline (all Printf type messages have this) outline.DeleteLastCharacter(); - // append chat messages to full history - if ( (rprintlevel == PRINT_CHAT) || (rprintlevel == PRINT_TEAMCHAT) ) + // append main queue messages to full history + if ( rprintlevel != PRINT_LOW ) EventHandler.SendNetworkEvent("swwmstoremessage."..outline,level.totaltime,rprintlevel,consoleplayer); let m = new("MsgLine"); m.str = outline; diff --git a/zscript/kbase/swwm_kbasetab_chat.zsc b/zscript/kbase/swwm_kbasetab_chat.zsc index eb8c352b8..3d7caa71c 100644 --- a/zscript/kbase/swwm_kbasetab_chat.zsc +++ b/zscript/kbase/swwm_kbasetab_chat.zsc @@ -175,12 +175,14 @@ Class DemolitionistChatTab : DemolitionistMenuTab Class DemolitionistMenuChatItem : DemolitionistMenuListItem { BrokenLines l; + int msgtype; int margin; String tstamp; DemolitionistMenuChatItem Init( DemolitionistMenu master, MsgLine m ) { Super.Init(master,""); + msgtype = m.type; if ( m.type == -1 ) { // map change marker @@ -194,7 +196,9 @@ Class DemolitionistMenuChatItem : DemolitionistMenuListItem int tsec = rtime%60; tstamp = String.Format("\cm[\c-%02d\cm:\c-%02d\cm:\c-%02d\cm]\c- ",thour,tmin,tsec); margin = master.mSmallFont.StringWidth(tstamp); - l = master.mSmallFont.BreakLines(m.str,int(master.ws.x-14)-margin); + String nstr = m.str; + if ( m.rep > 1 ) nstr.AppendFormat(" (x%d)",m.rep); + l = master.mSmallFont.BreakLines(nstr,int(master.ws.x-14)-margin); return self; } @@ -217,15 +221,19 @@ Class DemolitionistMenuChatItem : DemolitionistMenuListItem override void Drawer( Vector2 pos, bool selected ) { - if ( !l ) + if ( msgtype == -1 ) { - // we'll assume this is a level change label + // level change label double xx = int((master.ws.x-14)-master.mSmallFont.StringWidth(label))/2; Screen.DrawText(master.mSmallFont,Font.CR_GOLD,master.origin.x+pos.x+xx,master.origin.y+pos.y,label,DTA_VirtualWidthF,master.ss.x,DTA_VirtualHeightF,master.ss.y,DTA_KeepRatio,true); return; } Screen.DrawText(master.mSmallFont,Font.CR_DARKGRAY,master.origin.x+pos.x,master.origin.y+pos.y,tstamp,DTA_VirtualWidthF,master.ss.x,DTA_VirtualHeightF,master.ss.y,DTA_KeepRatio,true); + int col = msg2color; + if ( msgtype == PRINT_MEDIUM ) col = msg1color; + else if ( msgtype == PRINT_CHAT ) col = msg3color; + else if ( msgtype == PRINT_TEAMCHAT ) col = msg4color; for ( int i=0; i