X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_triggers.pas;h=1c8a586126ee9f15517ffba8d288b0245aa7254b;hb=8213065ce7c035c3c2bb8d8b90ab423d42c0a5ac;hp=437d1f6462c98f8c1c9973dfd3c099c5a4d906cf;hpb=d3ce22f70dfe266676a3fb95d5193238ff5b9e72;p=d2df-sdl.git diff --git a/src/game/g_triggers.pas b/src/game/g_triggers.pas index 437d1f6..1c8a586 100644 --- a/src/game/g_triggers.pas +++ b/src/game/g_triggers.pas @@ -89,20 +89,6 @@ procedure g_Triggers_Free(); procedure g_Triggers_SaveState(var Mem: TBinMemoryWriter); procedure g_Triggers_LoadState(var Mem: TBinMemoryReader); -function tr_Message(MKind: Integer; MText: string; MSendTo: Integer; MTime: Integer; ActivateUID: Integer): Boolean; - -{ -function tr_CloseDoor (PanelGUID: Integer; NoSound: Boolean; d2d: Boolean): Boolean; -function tr_OpenDoor (PanelGUID: Integer; NoSound: Boolean; d2d: Boolean): Boolean; -procedure tr_CloseTrap (PanelGUID: Integer; NoSound: Boolean; d2d: Boolean); -function tr_SetLift (PanelGUID: Integer; d: Integer; NoSound: Boolean; d2d: Boolean): Boolean; - -function tr_Teleport (ActivateUID: Integer; TX, TY: Integer; TDir: Integer; Silent: Boolean; D2D: Boolean): Boolean; -function tr_Push (ActivateUID: Integer; VX, VY: Integer; ResetVel: Boolean): Boolean; - -procedure tr_MakeEffect (X, Y, VX, VY: Integer; T, ST, CR, CG, CB: Byte; Silent, Send: Boolean); -function tr_SpawnShot (ShotType: Integer; wx, wy, dx, dy: Integer; ShotSound: Boolean; ShotTarget: Word): Integer; -} var gTriggerClientID: Integer = 0; @@ -110,6 +96,7 @@ var gSecretsCount: Integer = 0; gMonstersSpawned: array of LongInt = nil; + implementation uses @@ -251,6 +238,16 @@ var begin pan := g_Map_PanelByGUID(PanelGUID); + { + if (pan = nil) then + begin + e_LogWritefln('tr_CloseTrap: pguid=%s; NO PANEL!', [PanelGUID], MSG_WARNING); + end + else + begin + e_LogWritefln('tr_CloseTrap: pguid=%s; isGWall=%s; arrIdx=%s', [PanelGUID, pan.isGWall, pan.arrIdx]); + end; + } if (pan = nil) or not pan.isGWall then exit; //!FIXME!TRIGANY! PanelID := pan.arrIdx; @@ -2131,7 +2128,7 @@ begin Trigger.mapIndex := mapidx; if (Trigger.trigData.trigRec <> nil) then begin - Trigger.trigData := Trigger.trigData.trigRec.clone(); + Trigger.trigData := Trigger.trigData.trigRec.clone({Trigger.trigData.headerRec}nil); end else begin @@ -2468,9 +2465,17 @@ begin end; end; + //HACK! // if we have panelid, assume that it will switch the moving platform - if (trigPanelGUID >= 0) then + pan := g_Map_PanelByGUID(trigPanelGUID); + if (pan <> nil) then begin + case TriggerType of + TRIGGER_PRESS: pan.movingActive := true; // what to do here? + TRIGGER_ON: pan.movingActive := true; + TRIGGER_OFF: pan.movingActive := false; + TRIGGER_ONOFF: pan.movingActive := not pan.movingActive; + end; end; // Âûáèðàåì îäèí èç òðèããåðîâ äëÿ ðàñøèðèòåëÿ, åñëè âêëþ÷åí ðàíäîì: