diff --git a/src/game/g_player.pas b/src/game/g_player.pas
index b99c03dd7533081b58204981872a584b8f55a46a..d6914b1c6fd40425ca90bfcfe7e3434e514ba162 100644 (file)
--- a/src/game/g_player.pas
+++ b/src/game/g_player.pas
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
+ * the Free Software Foundation, version 3 of the License ONLY.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
procedure ReleaseKeys();
procedure SetModel(ModelName: String);
procedure SetColor(Color: TRGB);
+ function GetColor(): TRGB;
procedure SetWeapon(W: Byte);
function IsKeyPressed(K: Byte): Boolean;
function GetKeys(): Byte;
procedure DrawPickup();
procedure DrawRulez();
procedure DrawAim();
- procedure DrawIndicator();
+ procedure DrawIndicator(Color: TRGB);
procedure DrawBubble();
procedure DrawGUI();
procedure Update(); virtual;
gFly: Boolean = False;
gAimLine: Boolean = False;
gChatBubble: Byte = 0;
- gPlayerIndicator: Boolean = True;
+ gPlayerIndicator: Byte = 1;
gNumBots: Word = 0;
gLMSPID1: Word = 0;
gLMSPID2: Word = 0;
if FModel <> nil then FModel.Color := Color;
end;
+function TPlayer.GetColor(): TRGB;
+begin
+ result := FModel.Color;
+end;
+
procedure TPlayer.SwitchTeam;
begin
if g_Game_IsClient then
inherited;
end;
-procedure TPlayer.DrawIndicator();
+procedure TPlayer.DrawIndicator(Color: TRGB);
var
indX, indY: Integer;
indW, indH: Word;
ID: DWORD;
+ c: TRGB;
begin
if FAlive then
+ begin
+ if g_Texture_Get('TEXTURE_PLAYER_INDICATOR', ID) then
begin
- if g_Texture_Get('TEXTURE_PLAYER_INDICATOR', ID) then
- begin
- e_GetTextureSize(ID, @indW, @indH);
- indX := FObj.X + FObj.Rect.X + (FObj.Rect.Width - indW) div 2;
- indY := FObj.Y;
- e_Draw(ID, indX, indY - indH, 0, True, False);
- end;
+ e_GetTextureSize(ID, @indW, @indH);
+ indX := FObj.X + FObj.Rect.X + (FObj.Rect.Width - indW) div 2;
+ indY := FObj.Y;
+
+ c := e_Colors;
+ e_Colors := Color;
+ e_Draw(ID, indX, indY - indH, 0, True, False);
+ e_Colors := c;
end;
- //e_TextureFontPrint(indX, indY, FName, gStdFont); // Shows player name overhead
+ end;
+ //e_TextureFontPrintEx(indX, indY, FName, gStdFont, 0, 0, 255, 1.0, true); // Shows player name overhead
end;
procedure TPlayer.DrawBubble();
exit;
if (FMegaRulez[MR_SUIT] > gTime) or (FMegaRulez[MR_INVUL] > gTime) then
exit; // Íå çàãîðàåìñÿ êîãäà åñòü çàùèòà
+ if g_Obj_CollidePanel(@FObj, 0, 0, PANEL_WATER or PANEL_ACID1 or PANEL_ACID2) then
+ exit; // Íå ïîäãîðàåì â âîäå íà âñÿêèé ñëó÷àé
if FFireTime <= 0 then
g_Sound_PlayExAt('SOUND_IGNITE', FObj.X, FObj.Y);
FFireTime := Timeout;