summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: e16dda2)
raw | patch | inline | side by side (parent: e16dda2)
author | Stas'M <x86corez@gmail.com> | |
Sun, 15 Mar 2020 18:34:28 +0000 (21:34 +0300) | ||
committer | Stas'M <x86corez@gmail.com> | |
Sun, 15 Mar 2020 18:34:28 +0000 (21:34 +0300) |
src/game/g_game.pas | patch | blob | history | |
src/game/g_monsters.pas | patch | blob | history | |
src/game/g_player.pas | patch | blob | history | |
src/game/g_weapons.pas | patch | blob | history |
diff --git a/src/game/g_game.pas b/src/game/g_game.pas
index 16dd284f92d7baf9d23f428d37c255c7b585cf17..7da95bf0499b2c8b41abe7759460351c2c931314 100644 (file)
--- a/src/game/g_game.pas
+++ b/src/game/g_game.pas
case gAnnouncer of
ANNOUNCE_NONE:
Exit;
- ANNOUNCE_ME,
- ANNOUNCE_MEPLUS:
+ ANNOUNCE_ME:
if not g_Game_IsWatchedPlayer(SpawnerUID) then
Exit;
end;
index 02e7ed589ae6fa4b69b7b686ebd50f69ee5752af..a6e39d1f07215ddf0ac526be15ad345df66bd787 100644 (file)
--- a/src/game/g_monsters.pas
+++ b/src/game/g_monsters.pas
FObj.Rect.Width, 8, @co) and (Random(3) = 0) then
// Ïèíàåì òðóïû
if FObj.Vel.X < 0 then
- gCorpses[a].Damage(b*2, -b, Random(7)) // íàëåâî
+ gCorpses[a].Damage(b*2, FUID, -b, Random(7)) // íàëåâî
else
- gCorpses[a].Damage(b*2, b, Random(7)); // íàïðàâî
+ gCorpses[a].Damage(b*2, FUID, b, Random(7)); // íàïðàâî
end;
end;
// Åñëè öåëü âûñîêî, òî, âîçìîæíî, ïðûãàåì:
FObj.Rect.Width, 8, @co) and (Random(3) = 0) then
// Ïèíàåì òðóïû
if FObj.Vel.X < 0 then
- gCorpses[a].Damage(b*2, -b, Random(7)) // íàëåâî
+ gCorpses[a].Damage(b*2, FUID, -b, Random(7)) // íàëåâî
else
- gCorpses[a].Damage(b*2, b, Random(7)); // íàïðàâî
+ gCorpses[a].Damage(b*2, FUID, b, Random(7)); // íàïðàâî
end;
end;
end;
diff --git a/src/game/g_player.pas b/src/game/g_player.pas
index dd5378b5162ce6e2fbbf3f67bf5eee90cda9efbb..a66b064efcdc0abbaaf7bd0f8b8be727d16bc40b 100644 (file)
--- a/src/game/g_player.pas
+++ b/src/game/g_player.pas
public
constructor Create(X, Y: Integer; ModelName: String; aMess: Boolean);
destructor Destroy(); override;
- procedure Damage(Value: Word; vx, vy: Integer);
+ procedure Damage(Value: Word; SpawnerUID: Word; vx, vy: Integer);
procedure Update();
procedure Draw();
procedure SaveState (st: TStream);
end;
-procedure TCorpse.Damage(Value: Word; vx, vy: Integer);
+procedure TCorpse.Damage(Value: Word; SpawnerUID: Word; vx, vy: Integer);
var
pm: TPlayerModel;
Blood: TModelBlood;
if (gBodyKillEvent <> -1)
and gDelayedEvents[gBodyKillEvent].Pending then
gDelayedEvents[gBodyKillEvent].Pending := False;
- gBodyKillEvent := g_Game_DelayEvent(DE_BODYKILL, 1050, 0);
+ gBodyKillEvent := g_Game_DelayEvent(DE_BODYKILL, 1050, SpawnerUID);
end;
end
else
diff --git a/src/game/g_weapons.pas b/src/game/g_weapons.pas
index bb17a4138972d82f07ac7674dc966e543cec69d3..79f6f2566ae93038ec519b1f4e2726f1c8036de3 100644 (file)
--- a/src/game/g_weapons.pas
+++ b/src/game/g_weapons.pas
g_TraceVector(X, Y, Obj.X+Obj.Rect.X+(Obj.Rect.Width div 2),
Obj.Y+Obj.Rect.Y+(Obj.Rect.Height div 2)) then
begin
- Damage(50, 0, 0);
+ Damage(50, SpawnerUID, 0, 0);
g_Weapon_BFGHit(Obj.X+Obj.Rect.X+(Obj.Rect.Width div 2),
Obj.Y+Obj.Rect.Y+(Obj.Rect.Height div 2));
end;
g_Obj_Collide(obj, @gCorpses[i].Obj) then
begin
// Ðàñïèëèâàåì òðóï:
- gCorpses[i].Damage(d, (obj^.Vel.X+obj^.Accel.X) div 4,
- (obj^.Vel.Y+obj^.Accel.Y) div 4);
+ gCorpses[i].Damage(d, SpawnerUID, (obj^.Vel.X+obj^.Accel.X) div 4,
+ (obj^.Vel.Y+obj^.Accel.Y) div 4);
Result := 1;
end;
end;
mm := Max(abs(dx), abs(dy));
if mm = 0 then mm := 1;
- Damage(Round(100*(rad-m)/rad), (dx*10) div mm, (dy*10) div mm);
+ Damage(Round(100*(rad-m)/rad), SpawnerUID, (dx*10) div mm, (dy*10) div mm);
end;
end;