X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_player.pas;h=5dc5a096cfc3fff8a2e6a64b8a40a2e8c508aa0a;hb=ac201b02f10ef558087d50f6b03b4519ab567558;hp=bb9b4149dca2a8bfcc677691bf985814fbb1b4ca;hpb=88ce644db1b40111bdb380f4357fa59bdb5173be;p=d2df-sdl.git diff --git a/src/game/g_player.pas b/src/game/g_player.pas index bb9b414..5dc5a09 100644 --- a/src/game/g_player.pas +++ b/src/game/g_player.pas @@ -1,3 +1,4 @@ +{$MODE DELPHI} unit g_player; interface @@ -243,6 +244,7 @@ type procedure SetFlag(Flag: Byte); function DropFlag(): Boolean; procedure AllRulez(Health: Boolean); + procedure RestoreHealthArmor(); procedure FragCombo(); procedure GiveItem(ItemType: Byte); procedure Damage(value: Word; SpawnerUID: Word; vx, vy: Integer; t: Byte); virtual; @@ -399,7 +401,7 @@ type procedure Draw(); procedure SaveState(var Mem: TBinMemoryWriter); procedure LoadState(var Mem: TBinMemoryReader); - + property Obj: TObj read FObj; property State: Byte read FState; property Mess: Boolean read FMess; @@ -470,7 +472,7 @@ implementation uses e_log, g_map, g_items, g_console, SysUtils, g_gfx, Math, g_options, g_triggers, g_menu, MAPDEF, g_game, - WADEDITOR, g_main, g_monsters, CONFIG, g_language, g_net, g_netmsg; + wadreader, g_main, g_monsters, CONFIG, g_language, g_net, g_netmsg; type TBotProfile = record @@ -514,11 +516,14 @@ const TEAMCOLOR: Array [TEAM_RED..TEAM_BLUE] of TRGB = ((R:255; G:0; B:0), (R:0; G:0; B:255)); DIFFICULT_EASY: TDifficult = (DiagFire: 32; InvisFire: 32; DiagPrecision: 32; - FlyPrecision: 32; Cover: 32; CloseJump: 32); + FlyPrecision: 32; Cover: 32; CloseJump: 32; + WeaponPrior:(0,0,0,0,0,0,0,0,0,0); CloseWeaponPrior:(0,0,0,0,0,0,0,0,0,0)); DIFFICULT_MEDIUM: TDifficult = (DiagFire: 127; InvisFire: 127; DiagPrecision: 127; - FlyPrecision: 127; Cover: 127; CloseJump: 127); + FlyPrecision: 127; Cover: 127; CloseJump: 127; + WeaponPrior:(0,0,0,0,0,0,0,0,0,0); CloseWeaponPrior:(0,0,0,0,0,0,0,0,0,0)); DIFFICULT_HARD: TDifficult = (DiagFire: 255; InvisFire: 255; DiagPrecision: 255; - FlyPrecision: 255; Cover: 255; CloseJump: 255); + FlyPrecision: 255; Cover: 255; CloseJump: 255; + WeaponPrior:(0,0,0,0,0,0,0,0,0,0); CloseWeaponPrior:(0,0,0,0,0,0,0,0,0,0)); WEAPON_PRIOR1: Array [WEAPON_KASTET..WEAPON_SUPERPULEMET] of Byte = (WEAPON_SUPERPULEMET, WEAPON_SHOTGUN2, WEAPON_SHOTGUN1, WEAPON_CHAINGUN, WEAPON_PLASMA, WEAPON_ROCKETLAUNCHER, @@ -1429,7 +1434,7 @@ var begin if (gShells = nil) or (Length(gShells) = 0) then Exit; - + with gShells[CurrentShell] do begin SpriteID := 0; @@ -1520,7 +1525,7 @@ var else g_Sound_PlayExAt('SOUND_PLAYER_SHELL' + IntToStr(k), X, Y); end; - + begin // Êóñêè ìÿñà: if gGibs <> nil then @@ -1542,7 +1547,7 @@ begin Obj.Vel.X := -(vel.X div 2); if WordBool(mr and (MOVE_HITCEIL or MOVE_HITLAND)) then Obj.Vel.Y := -(vel.Y div 2); - + if (Obj.Vel.X >= 0) then begin // Clockwise RAngle := RAngle + Abs(Obj.Vel.X)*6 + Abs(Obj.Vel.Y); @@ -1680,7 +1685,7 @@ begin SetLength(gShells, MaxGibs); CurrentGib := 0; CurrentShell := 0; - + if gCorpses <> nil then for i := 0 to High(gCorpses) do gCorpses[i].Free(); @@ -5461,6 +5466,12 @@ begin FRulez := FRulez+[R_KEY_RED, R_KEY_GREEN, R_KEY_BLUE]; end; +procedure TPlayer.RestoreHealthArmor(); +begin + FHealth := PLAYER_HP_LIMIT; + FArmor := PLAYER_AP_LIMIT; +end; + procedure TPlayer.FragCombo(); var Param: Integer; @@ -5686,7 +5697,7 @@ begin if gTime mod (GAME_TICK*2) <> 0 then begin g_Obj_Move(@FObj, True, True, True); - + Exit; end; @@ -6344,7 +6355,7 @@ begin else begin EnableAI := True; - + // Ïðîâåðÿåì, îòêëþ÷¸í ëè AI áîòîâ if (g_debug_BotAIOff = 1) and (Team = TEAM_RED) then EnableAI := False; @@ -6843,7 +6854,7 @@ end;} procedure TBot.SelectWeapon(Dist: Integer); var a: Integer; - + function HaveAmmo(weapon: Byte): Boolean; begin case weapon of