X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fgame%2Fg_player.pas;h=9351a9d38b6937455c5f9d50233b4f0ca071cbc4;hb=2587eb5662fe075d616c89950be655d15fee15d6;hp=0565c75b2761056ab75ca321ac9c3d6c556cd480;hpb=8a0bb6df836d0e815a261280d628cfd766fa02e7;p=d2df-sdl.git diff --git a/src/game/g_player.pas b/src/game/g_player.pas index 0565c75..9351a9d 100644 --- a/src/game/g_player.pas +++ b/src/game/g_player.pas @@ -280,7 +280,7 @@ type procedure ReleaseKeysNoWeapon(); procedure SetModel(ModelName: String); procedure SetColor(Color: TRGB); - procedure SetWeapon(W: Byte); + procedure SetWeaponHost(W: Byte); function IsKeyPressed(K: Byte): Boolean; function GetKeys(): Byte; function PickItem(ItemType: Byte; arespawn: Boolean; var remove: Boolean): Boolean; virtual; @@ -317,6 +317,7 @@ type procedure DrawPickup(); procedure DrawRulez(); procedure DrawAim(); + procedure DrawIndicator(); procedure DrawBubble(); procedure DrawGUI(); procedure Update(); virtual; @@ -557,6 +558,7 @@ var gFly: Boolean = False; gAimLine: Boolean = False; gChatBubble: Byte = 0; + gPlayerIndicator: Boolean = True; gNumBots: Word = 0; gLMSPID1: Word = 0; gLMSPID2: Word = 0; @@ -2339,6 +2341,25 @@ begin inherited; end; +procedure TPlayer.DrawIndicator(); +var + indX, indY: Integer; + indW, indH: Word; + ID: DWORD; +begin + if FAlive then + begin + indX := FObj.X+FObj.Rect.X; + indY := FObj.Y - 12; + if g_Texture_Get('TEXTURE_PLAYER_INDICATOR', ID) then + begin + e_GetTextureSize(ID, @indW, @indH); + e_Draw(ID, indX + indW div 2, indY, 0, True, False); + end; + end; + //e_TextureFontPrint(indX, indY, FName, gStdFont); // Shows player name overhead +end; + procedure TPlayer.DrawBubble(); var bubX, bubY: Integer; @@ -3887,9 +3908,12 @@ begin FNextWeap := $4000; end; -// used by network layer -procedure TPlayer.SetWeapon(W: Byte); +// used exclusively by network layer +procedure TPlayer.SetWeaponHost(W: Byte); begin + if (W > High(FWeapon)) then exit; + if (not FWeapon[W]) then exit; // server is authority! + if FCurrWeap <> W then if (W = WEAPON_SAW) then FSawSoundSelect.PlayAt(FObj.X, FObj.Y);