diff --git a/src/game/g_console.pas b/src/game/g_console.pas
index 033a46827d5a3312a6b062fa335d37446edc5038..53f1c4f1a9998d3c328b2f8fd29be4c4a52e720c 100644 (file)
--- a/src/game/g_console.pas
+++ b/src/game/g_console.pas
const
const
- Step = 32;
- Alpha = 25;
MsgTime = 144;
MaxScriptRecursion = 16;
MsgTime = 144;
MaxScriptRecursion = 16;
RecursionLimitHit: Boolean = False;
Cons_Y: SmallInt;
ConsoleHeight: Single;
RecursionLimitHit: Boolean = False;
Cons_Y: SmallInt;
ConsoleHeight: Single;
- Cons_Shown: Boolean; // Ðèñîâàòü ëè êîíñîëü?
- InputReady: Boolean;
+ Cons_Shown: Boolean; // draw console
+ InputReady: Boolean; // allow text input in console/chat
Line: AnsiString;
CPos: Word;
//ConsoleHistory: SSArray;
Line: AnsiString;
CPos: Word;
//ConsoleHistory: SSArray;
end;
menu_toggled: BOOLEAN; (* hack for menu controls *)
ChatTop: BOOLEAN;
end;
menu_toggled: BOOLEAN; (* hack for menu controls *)
ChatTop: BOOLEAN;
+ ConsoleStep: Single;
+ ConsoleTrans: Single;
procedure g_Console_Switch;
begin
procedure g_Console_Switch;
begin
+ Cons_Y := Min(0, Max(Cons_Y, -Floor(gScreenHeight * ConsoleHeight)));
+ if Cons_Shown = False then
+ Cons_Y := -Floor(gScreenHeight * ConsoleHeight);
gChatShow := False;
gConsoleShow := not gConsoleShow;
Cons_Shown := True;
gChatShow := False;
gConsoleShow := not gConsoleShow;
Cons_Shown := True;
procedure g_Console_Chat_Switch (Team: Boolean = False);
begin
if not g_Game_IsNet then Exit;
procedure g_Console_Chat_Switch (Team: Boolean = False);
begin
if not g_Game_IsNet then Exit;
+ Cons_Y := Min(0, Max(Cons_Y, -Floor(gScreenHeight * ConsoleHeight)));
+ if Cons_Shown = False then
+ Cons_Y := -Floor(gScreenHeight * ConsoleHeight);
gConsoleShow := False;
gChatShow := not gChatShow;
gChatTeam := Team;
gConsoleShow := False;
gChatShow := not gChatShow;
gChatTeam := Team;
'toggleconsole':
g_Console_Switch;
'togglechat':
'toggleconsole':
g_Console_Switch;
'togglechat':
- if not gConsoleShow and (g_ActiveWindow = nil) then
- g_Console_Chat_Switch;
+ g_Console_Chat_Switch;
'toggleteamchat':
if gGameSettings.GameMode in [GM_TDM, GM_CTF] then
'toggleteamchat':
if gGameSettings.GameMode in [GM_TDM, GM_CTF] then
- if not gConsoleShow and (g_ActiveWindow = nil) then
- g_Console_Chat_Switch(True);
+ g_Console_Chat_Switch(True);
end
end;
end
end;
g_Console_Add('');
end;
g_Console_Add('');
end;
-procedure g_Console_Update();
+procedure g_Console_Update;
var
var
- a, b: Integer;
+ a, b, Step: Integer;
begin
if Cons_Shown then
begin
begin
if Cons_Shown then
begin
- (* Open animation *)
- if gConsoleShow and (Cons_Y < 0) then
- Cons_Y := Cons_Y+Step;
-
- (* Colse animation *)
- if (not gConsoleShow) and (Cons_Y > -Floor(gScreenHeight * ConsoleHeight)) then
- Cons_Y := Cons_Y-Step;
-
- if gChatShow then
+ Step := Max(1, Round(Floor(gScreenHeight * ConsoleHeight) * ConsoleStep));
+ if gConsoleShow then
begin
begin
- (* End open chat animation. Do not show console *)
- Cons_Y := -Floor(gScreenHeight * ConsoleHeight);
- Cons_Shown := False;
- InputReady := True;
+ (* Open animation *)
+ Cons_Y := Min(Cons_Y + Step, 0);
+ InputReady := True
end
else
end
else
- if Cons_Y >= 0 then
begin
begin
- (* End open animation *)
- Cons_Y := 0;
- Cons_Shown := True;
- InputReady := True;
- end
- else
- if Cons_Y <= -Floor(gScreenHeight * ConsoleHeight) then
- begin
- (* End close animation *)
- Cons_Y := -Floor(gScreenHeight * ConsoleHeight);
- Cons_Shown := False;
- InputReady := False;
+ (* Close animation *)
+ Cons_Y := Max(Cons_Y - Step, -Floor(gScreenHeight * ConsoleHeight));
+ Cons_Shown := Cons_Y > -Floor(gScreenHeight * ConsoleHeight);
+ InputReady := False
end;
end;
+
+ if gChatShow then
+ InputReady := True
end;
a := 0;
end;
a := 0;
_RGB(128, 0, 0), 2.0);
end;
_RGB(128, 0, 0), 2.0);
end;
- e_DrawSize(ID, 0, Cons_Y, Alpha, False, False, gScreenWidth, Floor(gScreenHeight * ConsoleHeight));
+ e_DrawSize(ID, 0, Cons_Y, Round(ConsoleTrans * 255), False, False, gScreenWidth, Floor(gScreenHeight * ConsoleHeight));
e_TextureFontPrint(0, Cons_Y + Floor(gScreenHeight * ConsoleHeight) - CHeight - 4, '> ' + Line, gStdFont);
drawConsoleText();
e_TextureFontPrint(0, Cons_Y + Floor(gScreenHeight * ConsoleHeight) - CHeight - 4, '> ' + Line, gStdFont);
drawConsoleText();
initialization
conRegVar('chat_at_top', @ChatTop, 'draw chat at top border', 'draw chat at top border');
conRegVar('console_height', @ConsoleHeight, 0.0, 1.0, 'set console size', 'set console size');
initialization
conRegVar('chat_at_top', @ChatTop, 'draw chat at top border', 'draw chat at top border');
conRegVar('console_height', @ConsoleHeight, 0.0, 1.0, 'set console size', 'set console size');
+ conRegVar('console_trans', @ConsoleTrans, 0.0, 1.0, 'set console transparency', 'set console transparency');
+ conRegVar('console_step', @ConsoleStep, 0.0, 1.0, 'set console animation speed', 'set console animation speed');
{$IFDEF ANDROID}
ChatTop := True;
{$IFDEF ANDROID}
ChatTop := True;
- ConsoleHeight := 0.35
+ ConsoleHeight := 0.35;
{$ELSE}
ChatTop := False;
{$ELSE}
ChatTop := False;
- ConsoleHeight := 0.5
+ ConsoleHeight := 0.5;
{$ENDIF}
{$ENDIF}
+ ConsoleTrans := 0.1;
+ ConsoleStep := 0.07;
end.
end.