X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_triggers.pas;h=2ff21708160b0e1e063545a508f405f87453be4a;hb=6657de7c4f97ab3bba2802f075332c379e22e393;hp=1bfd1883cab4b91538bc760b0fccc9e37731ae87;hpb=ff104a8cdc79693b7546d839605ec73ae135d904;p=d2df-sdl.git diff --git a/src/game/g_triggers.pas b/src/game/g_triggers.pas index 1bfd188..2ff2170 100644 --- a/src/game/g_triggers.pas +++ b/src/game/g_triggers.pas @@ -1,3 +1,19 @@ +(* Copyright (C) DooM 2D:Forever Developers + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + *) +{$MODE DELPHI} unit g_triggers; interface @@ -71,8 +87,8 @@ implementation uses g_player, g_map, Math, g_gfx, g_game, g_textures, g_console, g_monsters, g_items, g_phys, g_weapons, - WADEDITOR, g_main, SysUtils, e_log, g_language, - g_options, g_net, g_netmsg; + wadreader, g_main, SysUtils, e_log, g_language, + g_options, g_net, g_netmsg, g_scripts; const TRIGGER_SIGNATURE = $52475254; // 'TRGR' @@ -193,7 +209,6 @@ begin MH_SEND_Sound(X, Y, 'SOUND_GAME_SWITCH1'); end; - with gWalls[PanelID] do begin if gPlayers <> nil then @@ -1930,6 +1945,13 @@ begin end; TimeOut := Data.FXWait; end; + + TRIGGER_SCRIPT: + begin + g_Scripts_ProcExec(Data.SCRProc, [ID, ActivateUID, actType, Data.SCRArg], 'map'); + TimeOut := 0; + Result := True; + end; end; end; @@ -1992,12 +2014,12 @@ begin // Åùå íåò òàêîãî çâóêà: if not g_Sound_Exists(Trigger.Data.SoundName) then begin - g_ProcessResourceStr(Trigger.Data.SoundName, @fn, nil, nil); + fn := g_ExtractWadName(Trigger.Data.SoundName); if fn = '' then begin // Çâóê â ôàéëå ñ êàðòîé - g_ProcessResourceStr(gMapInfo.Map, @mapw, nil, nil); - fn := mapw + Trigger.Data.SoundName; + mapw := g_ExtractWadName(gMapInfo.Map); + fn := mapw+':'+g_ExtractFilePathName(Trigger.Data.SoundName); end else // Çâóê â îòäåëüíîì ôàéëå fn := GameDir + '/wads/' + Trigger.Data.SoundName; @@ -2025,12 +2047,12 @@ begin // Åùå íåò òàêîé ìóçûêè: if not g_Sound_Exists(Trigger.Data.MusicName) then begin - g_ProcessResourceStr(Trigger.Data.MusicName, @fn, nil, nil); + fn := g_ExtractWadName(Trigger.Data.MusicName); if fn = '' then begin // Ìóçûêà â ôàéëå ñ êàðòîé - g_ProcessResourceStr(gMapInfo.Map, @mapw, nil, nil); - fn := mapw + Trigger.Data.MusicName; + mapw := g_ExtractWadName(gMapInfo.Map); + fn := mapw+':'+g_ExtractFilePathName(Trigger.Data.MusicName); end else // Ìóçûêà â ôàéëå ñ êàðòîé fn := GameDir+'/wads/'+Trigger.Data.MusicName;