diff --git a/src/game/g_panel.pas b/src/game/g_panel.pas
index 563beffbbeac9cb783a2adee4d1ec9f417c0ceea..07fe2d6103e5dd4f2fc57ec38e1b67330060203b 100644 (file)
--- a/src/game/g_panel.pas
+++ b/src/game/g_panel.pas
Result := Result + 100;
end;
+
const
PAN_SAVE_VERSION = 1;
-procedure TPanel.SaveState(Var Mem: TBinMemoryWriter);
+procedure TPanel.SaveState (var Mem: TBinMemoryWriter);
var
sig: DWORD;
anim: Boolean;
begin
if (Mem = nil) then exit;
-// Ñèãíàòóðà ïàíåëè:
+ // Ñèãíàòóðà ïàíåëè
sig := PANEL_SIGNATURE; // 'PANL'
Mem.WriteDWORD(sig);
ver := PAN_SAVE_VERSION;
Mem.WriteByte(ver);
-// Îòêðûòà/çàêðûòà, åñëè äâåðü:
+ // Îòêðûòà/çàêðûòà, åñëè äâåðü
Mem.WriteBoolean(FEnabled);
-// Íàïðàâëåíèå ëèôòà, åñëè ëèôò:
+ // Íàïðàâëåíèå ëèôòà, åñëè ëèôò
Mem.WriteByte(FLiftType);
-// Íîìåð òåêóùåé òåêñòóðû:
+ // Íîìåð òåêóùåé òåêñòóðû
Mem.WriteInt(FCurTexture);
-// Êîîðäû
+ // Êîîðäû
Mem.WriteInt(FX);
Mem.WriteInt(FY);
Mem.WriteWord(FWidth);
Mem.WriteWord(FHeight);
-// Àíèìèðîâàííàÿ ëè òåêóùàÿ òåêñòóðà:
+ // Àíèìèðîâàííàÿ ëè òåêóùàÿ òåêñòóðà
if (FCurTexture >= 0) and (FTextureIDs[FCurTexture].Anim) then
- begin
- Assert(FTextureIDs[FCurTexture].AnTex <> nil,
- 'TPanel.SaveState: No animation object');
- anim := True;
- end
+ begin
+ assert(FTextureIDs[FCurTexture].AnTex <> nil, 'TPanel.SaveState: No animation object');
+ anim := True;
+ end
else
+ begin
anim := False;
+ end;
Mem.WriteBoolean(anim);
-// Åñëè äà - ñîõðàíÿåì àíèìàöèþ:
- if anim then
- FTextureIDs[FCurTexture].AnTex.SaveState(Mem);
+ // Åñëè äà - ñîõðàíÿåì àíèìàöèþ
+ if anim then FTextureIDs[FCurTexture].AnTex.SaveState(Mem);
// moving platform state
Mem.WriteInt(mMovingSpeed.X);
Mem.WriteInt(mSizeSpeed.h);
Mem.WriteInt(mSizeEnd.w);
Mem.WriteInt(mSizeEnd.h);
+
Mem.WriteBoolean(mMovingActive);
Mem.WriteBoolean(mMoveOnce);
Mem.WriteInt(mEndSizeTrig);
end;
-procedure TPanel.LoadState(var Mem: TBinMemoryReader);
+
+procedure TPanel.LoadState (var Mem: TBinMemoryReader);
var
sig: DWORD;
anim: Boolean;
ver: Byte;
- //ox, oy: Integer;
begin
if (Mem = nil) then exit;
-// Ñèãíàòóðà ïàíåëè:
+ // Ñèãíàòóðà ïàíåëè
Mem.ReadDWORD(sig);
if (sig <> PANEL_SIGNATURE) then raise EBinSizeError.Create('TPanel.LoadState: wrong panel signature'); // 'PANL'
Mem.ReadByte(ver);
if (ver <> PAN_SAVE_VERSION) then raise EBinSizeError.Create('TPanel.LoadState: invalid panel version');
-// Îòêðûòà/çàêðûòà, åñëè äâåðü:
+ // Îòêðûòà/çàêðûòà, åñëè äâåðü
Mem.ReadBoolean(FEnabled);
-// Íàïðàâëåíèå ëèôòà, åñëè ëèôò:
+ // Íàïðàâëåíèå ëèôòà, åñëè ëèôò
Mem.ReadByte(FLiftType);
-// Íîìåð òåêóùåé òåêñòóðû:
+ // Íîìåð òåêóùåé òåêñòóðû
Mem.ReadInt(FCurTexture);
-// Êîîðäû
- //ox := FX;
- //oy := FY;
+ // Êîîðäû
Mem.ReadInt(FX);
Mem.ReadInt(FY);
Mem.ReadWord(FWidth);
Mem.ReadWord(FHeight);
//e_LogWritefln('panel %s(%s): old=(%s,%s); new=(%s,%s); delta=(%s,%s)', [arrIdx, proxyId, ox, oy, FX, FY, FX-ox, FY-oy]);
-// Àíèìèðîâàííàÿ ëè òåêóùàÿ òåêñòóðà:
+ // Àíèìèðîâàííàÿ ëè òåêóùàÿ òåêñòóðà
Mem.ReadBoolean(anim);
-// Åñëè äà - çàãðóæàåì àíèìàöèþ:
+ // Åñëè äà - çàãðóæàåì àíèìàöèþ
if anim then
begin
Assert((FCurTexture >= 0) and
Mem.ReadInt(mMovingStart.Y);
Mem.ReadInt(mMovingEnd.X);
Mem.ReadInt(mMovingEnd.Y);
+
Mem.ReadInt(mSizeSpeed.w);
Mem.ReadInt(mSizeSpeed.h);
Mem.ReadInt(mSizeEnd.w);
Mem.ReadInt(mSizeEnd.h);
+
Mem.ReadBoolean(mMovingActive);
Mem.ReadBoolean(mMoveOnce);