diff -r 6a1748b71df2 -r 9e31e3bb4476 hedgewars/uCommandHandlers.pas --- a/hedgewars/uCommandHandlers.pas Tue Nov 12 15:38:45 2013 +0400 +++ b/hedgewars/uCommandHandlers.pas Tue Nov 12 22:34:54 2013 -0500 @@ -318,6 +318,8 @@ procedure chPrecise_p(var s: shortstring); begin s:= s; // avoid compiler hint +if not isExternalSource then + LocalMessage:= LocalMessage or gmPrecise; if CheckNoTeamOrHH or isPaused then exit; if not isExternalSource then @@ -331,6 +333,8 @@ procedure chPrecise_m(var s: shortstring); begin s:= s; // avoid compiler hint +if not isExternalSource then + LocalMessage:= LocalMessage and not(gmPrecise); if CheckNoTeamOrHH then exit; if not isExternalSource then @@ -657,10 +661,26 @@ procedure chRotateMask(var s: shortstring); begin s:= s; // avoid compiler hint -if ((GameFlags and gfInvulnerable) = 0) then - cTagsMask:= cTagsMasks[cTagsMask] +// this is just for me, 'cause I thought it'd be fun. using the old precise + switch to keep it out of people's way +if LocalMessage and (gmPrecise or gmSwitch) = (gmPrecise or gmSwitch) then + begin + if UIDisplay <> uiNone then + UIDisplay:= uiNone + else UIDisplay:= uiAll + end +else if LocalMessage and gmPrecise = gmPrecise then + begin + if ((GameFlags and gfInvulnerable) = 0) then + cTagsMask:= cTagsMasks[cTagsMask] + else + cTagsMask:= cTagsMasksNoHealth[cTagsMask] + end else - cTagsMask:= cTagsMasksNoHealth[cTagsMask]; + begin + if UIDisplay <> uiNoTeams then + UIDisplay:= uiNoTeams + else UIDisplay:= uiAll + end end; procedure chSpeedup_p(var s: shortstring);