index edafecc999a259e828799a9e1d51d3bd5d59603e..064b3b6cebba673302668005eb580130f48e1789 100644 (file)
--- a/src/game/g_triggers.pas
+++ b/src/game/g_triggers.pas
UID: Word;
TimeOut: Word;
end;
+ PTrigger = ^TTrigger;
TTrigger = record
+ public
ID: DWORD;
ClientID: DWORD;
TriggerType: Byte;
ShotAmmoCount: Word;
ShotReloadTime: Integer;
+ mapId: AnsiString; // trigger id, from map
//trigShotPanelId: Integer;
trigPanelId: Integer;
//TrigData: TTriggerData;
trigData: TDynRecord; // triggerdata; owned by trigger
+ public
+ function trigCenter (): TDFPoint; inline;
+
+ public
property trigShotPanelId: Integer read trigPanelId write trigPanelId;
end;
TRIGGER_SIGNATURE = $52475254; // 'TRGR'
TRAP_DAMAGE = 1000;
+
+function TTrigger.trigCenter (): TDFPoint; inline;
+begin
+ result := TDFPoint.Create(x+width div 2, y+height div 2);
+end;
+
+
function FindTrigger(): DWORD;
var
i: Integer;
find_id := FindTrigger();
gTriggers[find_id] := Trigger;
+ {
writeln('trigger #', find_id, ': pos=(', Trigger.x, ',', Trigger.y, ')-(', Trigger.width, 'x', Trigger.height, ')',
'; TexturePanel=', Trigger.TexturePanel,
'; TexturePanelType=', Trigger.TexturePanelType,
'; trigPanelId=', Trigger.trigPanelId,
'; trigShotPanelId=', Trigger.trigShotPanelId
);
+ }
with gTriggers[find_id] do
begin
begin
for a := 0 to High(gTriggers) do
begin
- gTriggers[a].trigData.Free();
if (gTriggers[a].TriggerType = TRIGGER_SOUND) then
begin
if g_Sound_Exists(gTriggers[a].trigData.trigSoundName) then
begin
SetLength(gTriggers[a].Activators, 0);
end;
+ gTriggers[a].trigData.Free();
end;
gTriggers := nil;