diff --git a/src/g_level.cpp b/src/g_level.cpp index 9f15c55d8e..3fb8089d7e 100644 --- a/src/g_level.cpp +++ b/src/g_level.cpp @@ -490,7 +490,7 @@ void G_InitNew (const char *mapname, bool bTitleLevel) for (i = 0; i < MAXPLAYERS; ++i) { if (playeringame[i]) - players[i].SetLogText ("Find help"); + players[i].SetLogText ("$TXT_FINDHELP"); } } diff --git a/src/g_statusbar/sbarinfo_commands.cpp b/src/g_statusbar/sbarinfo_commands.cpp index 2cfea843ec..bd565cbc7a 100644 --- a/src/g_statusbar/sbarinfo_commands.cpp +++ b/src/g_statusbar/sbarinfo_commands.cpp @@ -923,7 +923,7 @@ class CommandDrawString : public SBarInfoCommand break; } case LOGTEXT: - str = statusBar->CPlayer->LogText; + str = GStrings(statusBar->CPlayer->LogText); break; default: break; diff --git a/src/g_statusbar/shared_sbar.cpp b/src/g_statusbar/shared_sbar.cpp index 384a970d61..d1cbe48a38 100644 --- a/src/g_statusbar/shared_sbar.cpp +++ b/src/g_statusbar/shared_sbar.cpp @@ -55,6 +55,7 @@ #include "vm.h" #include "p_acs.h" #include "sbarinfo.h" +#include "gstrings.h" #include "events.h" #include "g_game.h" @@ -1046,7 +1047,7 @@ void DBaseStatusBar::DrawLog () hudheight = SCREENHEIGHT / scale; int linelen = hudwidth<640? Scale(hudwidth,9,10)-40 : 560; - auto lines = V_BreakLines (SmallFont, linelen, CPlayer->LogText); + auto lines = V_BreakLines (SmallFont, linelen, GStrings(CPlayer->LogText)); int height = 20; for (unsigned i = 0; i < lines.Size(); i++) height += SmallFont->GetHeight () + 1; diff --git a/src/gamedata/a_keys.cpp b/src/gamedata/a_keys.cpp index 1024f216a1..7260c967d1 100644 --- a/src/gamedata/a_keys.cpp +++ b/src/gamedata/a_keys.cpp @@ -555,7 +555,7 @@ int P_GetMapColorForKey (AActor * key) foundlock = pair->Key; } } - return 0; + return rgb; } diff --git a/src/p_user.cpp b/src/p_user.cpp index 68849eaf56..5f71235b00 100644 --- a/src/p_user.cpp +++ b/src/p_user.cpp @@ -91,6 +91,7 @@ #include "events.h" #include "g_game.h" #include "v_video.h" +#include "gstrings.h" static FRandom pr_skullpop ("SkullPop"); @@ -403,7 +404,7 @@ void player_t::SetLogText (const char *text) { // Print log text to console AddToConsole(-1, TEXTCOLOR_GOLD); - AddToConsole(-1, LogText); + AddToConsole(-1, GStrings(LogText)); AddToConsole(-1, "\n"); } } diff --git a/wadsrc/static/language.enu b/wadsrc/static/language.enu index f620abfc1b..54cb51ef14 100644 --- a/wadsrc/static/language.enu +++ b/wadsrc/static/language.enu @@ -1464,6 +1464,8 @@ TXT_DOES_NOT_WORK = "That doesn't seem to work"; // Strife Quest messages +TXT_FINDHELP = "FIND HELP"; + TXT_QUEST_14 = "You've Blown Up the Crystal"; TXT_QUEST_16 = "You've Blown Up the Gates"; TXT_QUEST_27 = "You've Blown Up the Computer"; diff --git a/wadsrc/static/zscript/actor_inventory.txt b/wadsrc/static/zscript/actor_inventory.txt index 8fc3c6d5cb..837184dd13 100644 --- a/wadsrc/static/zscript/actor_inventory.txt +++ b/wadsrc/static/zscript/actor_inventory.txt @@ -336,7 +336,7 @@ extend class Actor while (last.inv != NULL) { let inv = last.inv; - if (!inv.bUndroppable) + if (!inv.bUndroppable && !inv.bUnclearable) { inv.DepleteOrDestroy(); if (!inv.bDestroyed) last = inv; // was only depleted so advance the pointer manually. diff --git a/wadsrc/static/zscript/inventory/inventory.txt b/wadsrc/static/zscript/inventory/inventory.txt index ecafdf66c9..2460c0639a 100644 --- a/wadsrc/static/zscript/inventory/inventory.txt +++ b/wadsrc/static/zscript/inventory/inventory.txt @@ -64,6 +64,7 @@ class Inventory : Actor flagdef IsArmor: ItemFlags, 21; flagdef IsHealth: ItemFlags, 22; flagdef AlwaysPickup: ItemFlags, 23; + flagdef Unclearable: ItemFlags, 24; flagdef ForceRespawnInSurvival: none, 0; flagdef PickupFlash: none, 6; diff --git a/wadsrc/static/zscript/shared/player.txt b/wadsrc/static/zscript/shared/player.txt index d9cddda07e..fef24b6f38 100644 --- a/wadsrc/static/zscript/shared/player.txt +++ b/wadsrc/static/zscript/shared/player.txt @@ -2028,7 +2028,7 @@ class PlayerPawn : Actor if (item.bINVBAR && item.Amount > item.InterHubAmount) { item.Amount = item.InterHubAmount; - if (level.REMOVEITEMS && !item.bUNDROPPABLE) + if (level.REMOVEITEMS && !item.bUNDROPPABLE && !item.bUNCLEARABLE) { todelete.Push(item); } diff --git a/wadsrc/static/zscript/statusbar/strife_sbar.txt b/wadsrc/static/zscript/statusbar/strife_sbar.txt index 866c4a32a3..e10e9f2ab5 100644 --- a/wadsrc/static/zscript/statusbar/strife_sbar.txt +++ b/wadsrc/static/zscript/statusbar/strife_sbar.txt @@ -432,7 +432,8 @@ class StrifeStatusBar : BaseStatusBar if (CPlayer.LogText.Length() > 0) { - BrokenLines lines = SmallFont2.BreakLines(CPlayer.LogText, 272); + let text = Stringtable.Localize(CPlayer.LogText); + BrokenLines lines = SmallFont2.BreakLines(text, 272); for (i = 0; i < lines.Count(); ++i) { screen.DrawText(SmallFont2, Font.CR_UNTRANSLATED, left + 24 * xscale, top + (18 + i * 12)*yscale,