diff --git a/src/game/g_map.pas b/src/game/g_map.pas
index e99d47b19186dd65974751d9a2dd3e90539e3439..39a6692f2b228df76f4274e25abc139397a58b8a 100644 (file)
--- a/src/game/g_map.pas
+++ b/src/game/g_map.pas
CaptureTime: LongWord;
Animation: TAnimation;
Direction: TDirection;
+ NeedSend: Boolean;
end;
function g_Map_Load(Res: String): Boolean;
function g_Map_GetPoint(PointType: Byte; var RespawnPoint: TRespawnPoint): Boolean;
function g_Map_GetPointCount(PointType: Byte): Word;
+function g_Map_GetRandomPointType(): Byte;
function g_Map_HaveFlagPoints(): Boolean;
begin
if gFlags[a].Animation <> nil then gFlags[a].Animation.Update();
+ Obj.oldX := Obj.X;
+ Obj.oldY := Obj.Y;
+
m := g_Obj_Move(@Obj, True, True);
+ NeedSend := NeedSend or (Obj.X <> Obj.oldX) or (Obj.Y <> Obj.oldY);
+
if gTime mod (GAME_TICK*2) <> 0 then Continue;
// Ñîïðîòèâëåíèå âîçäóõà
Result := Result + 1;
end;
+function g_Map_GetRandomPointType(): Byte;
+begin
+ if RespawnPoints = nil then
+ Result := 255
+ else
+ Result := RespawnPoints[Random(Length(RespawnPoints))].PointType;
+end;
+
function g_Map_HaveFlagPoints(): Boolean;
begin
Result := (FlagPoints[FLAG_RED] <> nil) and (FlagPoints[FLAG_BLUE] <> nil);
Direction := FlagPoints[Flag]^.Direction;
State := FLAG_STATE_NORMAL;
end;
+ Obj.oldX := Obj.X;
+ Obj.oldY := Obj.Y;
+ NeedSend := False; // the event will take care of this
Count := -1;
end;
end;