diff --git a/src/game/g_map.pas b/src/game/g_map.pas
index 0df83bb087e16cf1c7b3fd090426c584c30669ea..9470057306ae27f956b9b1c01b87ca49cdf7cd79 100644 (file)
--- a/src/game/g_map.pas
+++ b/src/game/g_map.pas
gWADHash: TMD5Digest;
BackID: DWORD = DWORD(-1);
gExternalResources: TStringList;
+ gMovingWallIds: array of Integer = nil;
gdbg_map_use_accel_render: Boolean = true;
gdbg_map_use_accel_coldet: Boolean = true;
pttit: PTRec;
pannum, trignum, cnt, tgpid: Integer;
stt: UInt64;
+ moveSpeed{, moveStart, moveEnd}: TDFPoint;
+ //moveActive: Boolean;
begin
mapGrid.Free();
mapGrid := nil;
// set 'gamePanelId' field to panel id
rec.userPanelId := PanelID; // remember game panel id, we'll fix triggers later
+ // setup lifts
+ moveSpeed := rec.moveSpeed;
+ //moveStart := rec.moveStart;
+ //moveEnd := rec.moveEnd;
+ //moveActive := rec['move_active'].varvalue;
+ if not moveSpeed.isZero then
+ begin
+ SetLength(gMovingWallIds, Length(gMovingWallIds)+1);
+ gMovingWallIds[High(gMovingWallIds)] := PanelID;
+ //e_LogWritefln('found moving panel ''%s'' (idx=%s; id=%s)', [rec.id, pannum, PanelID]);
+ end;
+
//e_LogWritefln('PANEND: pannum=%s', [pannum]);
g_Game_StepLoading();
FreePanelArray(gSteps);
FreePanelArray(gLifts);
FreePanelArray(gBlockMon);
+ gMovingWallIds := nil;
if BackID <> DWORD(-1) then
begin
i: Integer;
begin
- if panels <> nil then
- for i := 0 to High(panels) do
- panels[i].Update();
+ for i := 0 to High(panels) do panels[i].Update();
end;
begin