diff --git a/zscript/uthud.zsc b/zscript/uthud.zsc index 140c3b0..92c238f 100644 --- a/zscript/uthud.zsc +++ b/zscript/uthud.zsc @@ -910,18 +910,21 @@ Class UTHud : BaseStatusBar override bool ProcessNotify( EPrintLevel printlevel, String outline ) { if ( gamestate != GS_LEVEL ) return false; // not during intermissions - if ( printlevel == PRINT_LOW ) // pickups + int rprintlevel = printlevel&PRINT_TYPES; + if ( (rprintlevel < PRINT_LOW) || (rprintlevel > PRINT_TEAMCHAT) ) rprintlevel = PRINT_HIGH; + outline.DeleteLastCharacter(); + if ( rprintlevel == PRINT_LOW ) // pickups { PickupMsg = outline; PickupMsgTic = gametic+50; return true; } - else if ( printlevel == PRINT_MEDIUM ) // obituaries + else if ( rprintlevel == PRINT_MEDIUM ) // obituaries { AppendMessage(outline,Font.CR_RED); return true; } - else if ( (printlevel == PRINT_CHAT) || (printlevel == PRINT_TEAMCHAT) ) // chat + else if ( (rprintlevel == PRINT_CHAT) || (rprintlevel == PRINT_TEAMCHAT) ) // chat { AppendMessage(outline,Font.CR_GREEN); SetChatFace(outline); @@ -1008,6 +1011,23 @@ Class UTHud : BaseStatusBar return true; } + override bool DrawPaused( int player ) + { + Screen.Dim(Color(0,24,64),.4,0,0,Screen.GetWidth(),Screen.GetHeight(),STYLE_Add); + String str = "PAUSED"; + double xx = (Screen.GetWidth()-mUTFont40.mFont.StringWidth(str))/2; + double yy = (Screen.GetHeight()-mUTFont40.mFont.GetHeight())/2; + Screen.DrawText(mUTFont40.mFont,Font.CR_BLUE,xx,yy,str); + if ( multiplayer && (player != -1) ) + { + str = "by "..players[player].GetUserName(); + xx = (Screen.GetWidth()-mUTFont12.mFont.StringWidth(str))/2; + yy += mUTFont40.mFont.GetHeight(); + Screen.DrawText(mUTFont12.mFont,Font.CR_WHITE,xx,yy,str); + } + return true; + } + private void DrawTalkFace() { // this doesn't even get close to how it's supposed to look but whatever