diff --git a/src/game/g_player.pas b/src/game/g_player.pas
index 8c626569dfe2dd1e25476321c64567ea7333f5ff..736d22e1623ce2d1291825a49386cc63a75963c9 100644 (file)
--- a/src/game/g_player.pas
+++ b/src/game/g_player.pas
implementation
uses
-{$IFDEF USE_NANOGL}
- nanoGL,
-{$ELSE}
- GL,
-{$ENDIF}
+{$INCLUDE ../nogl/noGLuses.inc}
{$IFDEF ENABLE_HOLMES}
g_holmes,
{$ENDIF}
Mirror := TMirrorType.Horizontal;
if FPunchAnim <> nil then
+ begin
FPunchAnim.Draw(FObj.X+IfThen(Direction = TDirection.D_LEFT, 15-FObj.Rect.X, FObj.Rect.X-15),
FObj.Y+FObj.Rect.Y-11, Mirror);
+ if FPunchAnim.played then
+ begin
+ FPunchAnim.Free;
+ FPunchAnim := nil;
+ end;
+ end;
if (FMegaRulez[MR_INVUL] > gTime) and (gPlayerDrawn <> Self) then
if g_Texture_Get('TEXTURE_PLAYER_INVULPENTA', ID) then
procedure TPlayer.DoPunch();
var
id: DWORD;
+ st: String;
begin
- if FPunchAnim = nil then begin
- g_Frames_Get(id, 'FRAMES_PUNCH');
- FPunchAnim := TAnimation.Create(id, False, 1);
- end else
+ if FPunchAnim <> nil then begin
FPunchAnim.reset();
+ FPunchAnim.Free;
+ FPunchAnim := nil;
+ end;
+ st := 'FRAMES_PUNCH';
+ if R_BERSERK in FRulez then
+ st := st + '_BERSERK';
+ if FKeys[KEY_UP].Pressed then
+ st := st + '_UP'
+ else if FKeys[KEY_DOWN].Pressed then
+ st := st + '_DN';
+ g_Frames_Get(id, st);
+ FPunchAnim := TAnimation.Create(id, False, 1);
end;
procedure TPlayer.Fire();
case FCurrWeap of
WEAPON_KASTET:
begin
+ DoPunch();
if R_BERSERK in FRulez then
begin
//g_Weapon_punch(FObj.X+FObj.Rect.X, FObj.Y+FObj.Rect.Y, 75, FUID);
locobj.Accel.X := xd-wx;
locobj.Accel.y := yd-wy;
- DoPunch();
-
if g_Weapon_Hit(@locobj, 50, FUID, HIT_SOME) <> 0 then
g_Sound_PlayExAt('SOUND_WEAPON_HITBERSERK', FObj.X, FObj.Y)
else
case FCurrWeap of
WEAPON_KASTET:
begin
+ DoPunch();
if R_BERSERK in FRulez then
begin
//g_Weapon_punch(FObj.X+FObj.Rect.X, FObj.Y+FObj.Rect.Y, 75, FUID);
locobj.Accel.X := xd-wx;
locobj.Accel.y := yd-wy;
- DoPunch();
-
if g_Weapon_Hit(@locobj, 50, FUID, HIT_SOME) <> 0 then
g_Sound_PlayExAt('SOUND_WEAPON_HITBERSERK', FObj.X, FObj.Y)
else