X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_player.pas;h=8628d4a436e982b1027ae5048d86465a732b305b;hb=dec9e3260140baab3645be36492a1e0c1ea1fe32;hp=84a68348ac99945473f26de8ebd0fbfa47701343;hpb=4fafdb6a4e53f7f9db8060f3a7e7c9c3f9580683;p=d2df-sdl.git diff --git a/src/game/g_player.pas b/src/game/g_player.pas index 84a6834..8628d4a 100644 --- a/src/game/g_player.pas +++ b/src/game/g_player.pas @@ -310,6 +310,7 @@ type procedure DrawPickup(); procedure DrawRulez(); procedure DrawAim(); + procedure DrawIndicator(); procedure DrawBubble(); procedure DrawGUI(); procedure Update(); virtual; @@ -542,6 +543,7 @@ var gFly: Boolean = False; gAimLine: Boolean = False; gChatBubble: Byte = 0; + gPlayerIndicator: Boolean = True; gNumBots: Word = 0; gLMSPID1: Word = 0; gLMSPID2: Word = 0; @@ -2273,6 +2275,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; @@ -3598,18 +3619,18 @@ begin // two knuckles are for "normal" and "berserk" (see `if` below -- it removes the one that is not needed) // priorities: // bfg, launcher, plasma, flamethrower, ssg, minigun, sg, pistol, berserk, chainsaw, fist - weaponOrder[0] := WEAPON_BFG; - weaponOrder[1] := WEAPON_ROCKETLAUNCHER; - weaponOrder[2] := WEAPON_PLASMA; - weaponOrder[3] := WEAPON_FLAMETHROWER; - weaponOrder[4] := WEAPON_SHOTGUN2; - weaponOrder[5] := WEAPON_CHAINGUN; - weaponOrder[6] := WEAPON_SHOTGUN1; - weaponOrder[7] := WEAPON_PISTOL; - weaponOrder[8] := WEAPON_KASTET+666; // berserk fist - weaponOrder[9] := WEAPON_SAW; - weaponOrder[10] := WEAPON_KASTET; // normal fist - weaponOrder[11] := WEAPON_SUPERPULEMET; + weaponOrder[0] := WEAPON_SUPERPULEMET; + weaponOrder[1] := WEAPON_BFG; + weaponOrder[2] := WEAPON_ROCKETLAUNCHER; + weaponOrder[3] := WEAPON_PLASMA; + weaponOrder[4] := WEAPON_FLAMETHROWER; + weaponOrder[5] := WEAPON_SHOTGUN2; + weaponOrder[6] := WEAPON_CHAINGUN; + weaponOrder[7] := WEAPON_SHOTGUN1; + weaponOrder[8] := WEAPON_PISTOL; + weaponOrder[9] := WEAPON_KASTET+666; // berserk fist + weaponOrder[10] := WEAPON_SAW; + weaponOrder[11] := WEAPON_KASTET; // normal fist for f := 0 to High(weaponOrder) do begin @@ -3709,14 +3730,14 @@ begin // find next weapon to switch onto cwi := curlidx; - for i := 0 to High(FWeapon) do + for i := 0 to High(weaponOrder) do begin - cwi := (cwi+length(FWeapon)+1) mod length(FWeapon); + cwi := (cwi+length(weaponOrder)+1) mod length(weaponOrder); if (cwi = curlidx) then continue; // skip current weapon if not wantThisWeapon[cwi] then continue; rwidx := weaponOrder[cwi]; if (rwidx < 0) then continue; - //e_WriteLog(Format(' trying logical %d (real %d)', [cwi, rwidx]), TMsgType.Warning); + //e_WriteLog(Format(' trying logical %d (real %d); has=%d, hasammo=%d', [cwi, rwidx, Integer(FWeapon[rwidx]), Integer(hasAmmoForWeapon(rwidx))]), TMsgType.Warning); if FWeapon[rwidx] and ((wwc = 1) or hasAmmoForWeapon(rwidx)) then begin //e_WriteLog(' I FOUND HER!', TMsgType.Warning);