diff --git a/wadsrc/static/zscript.txt b/wadsrc/static/zscript.txt index 44b9bc8ee..087a11145 100644 --- a/wadsrc/static/zscript.txt +++ b/wadsrc/static/zscript.txt @@ -31,6 +31,7 @@ version "4.3" #include "zscript/screenjob.zs" #include "zscript/games/duke/dukegame.zs" #include "zscript/games/duke/ui/screens.zs" +#include "zscript/games/duke/ui/cutscenes.zs" #include "zscript/games/duke/ui/menu.zs" #include "zscript/games/blood/ui/menu.zs" #include "zscript/games/sw/ui/menu.zs" diff --git a/wadsrc/static/zscript/games/duke/ui/cutscenes.zs b/wadsrc/static/zscript/games/duke/ui/cutscenes.zs index 9fda43b1b..2bb3e1d5f 100644 --- a/wadsrc/static/zscript/games/duke/ui/cutscenes.zs +++ b/wadsrc/static/zscript/games/duke/ui/cutscenes.zs @@ -37,6 +37,7 @@ class DukeIntro : ScreenJobRunner { void Init() { + Super.Init(); Raze.StopMusic(); Raze.StopAllSounds(); @@ -48,10 +49,152 @@ class DukeIntro : ScreenJobRunner soundinfo.Pushv( 1, DukeSnd.FLY_BY+1, 19, DukeSnd.PIPEBOMB_EXPLODE+1); - jobs.Push(MoviePlayerJob.CreateWithSoundinfo("logo.anm", soundinfo, 9, 9, 9)); + jobs.Push(MoviePlayerJob.CreateWithSoundinfo("logo.anm", soundinfo, 0, 9, 9, 9)); } if (!Raze.isNam()) jobs.Push(new("DRealmsScreen").Init()); } jobs.Push(new("DukeTitleScreen").Init()); } -} \ No newline at end of file +} + +//--------------------------------------------------------------------------- +// +// +// +//--------------------------------------------------------------------------- + +class DukeE1End : ScreenJobRunner +{ + void Init() + { + Super.Init(); + jobs.Push(new("Episode1End1").Init()); + jobs.Push(ImageScreen.CreateNamed("E1ENDSCREEN", ScreenJob.fadein|ScreenJob.fadeout|ScreenJob.stopmusic, 0x7fffffff)); + } +} + +//--------------------------------------------------------------------------- +// +// +// +//--------------------------------------------------------------------------- + +class DukeE2End : ScreenJobRunner +{ + void Init() + { + Super.Init(); + Array soundinfo; + soundinfo.Pushv( + 1, DukeSnd.WIND_AMBIENCE+1, + 26, DukeSnd.ENDSEQVOL2SND1+1, + 36, DukeSnd.ENDSEQVOL2SND2+1, + 54, DukeSnd.THUD+1, + 62, DukeSnd.ENDSEQVOL2SND3+1, + 75, DukeSnd.ENDSEQVOL2SND4 + 1, + 81, DukeSnd.ENDSEQVOL2SND5 + 1, + 115, DukeSnd.ENDSEQVOL2SND6 + 1, + 124, DukeSnd.ENDSEQVOL2SND7 + 1); + + jobs.Push(MoviePlayerJob.CreateWithSoundinfo("cineov2.anm", soundinfo, 0, 18, 18, 18)); + jobs.Push(new("E2EndScreen").Init()); + } +} + +//--------------------------------------------------------------------------- +// +// +// +//--------------------------------------------------------------------------- + +class DukeE3End : ScreenJobRunner +{ + void Init() + { + Super.Init(); + Array soundinfo; + soundinfo.Pushv( + 1, DukeSnd.WIND_REPEAT + 1, + 98, DukeSnd.DUKE_GRUNT + 1, + 102, DukeSnd.THUD + 1, + 102, DukeSnd.SQUISHED + 1, + 124, DukeSnd.ENDSEQVOL3SND3 + 1, + 134, DukeSnd.ENDSEQVOL3SND2 + 1, + 158, DukeSnd.PIPEBOMB_EXPLODE + 1); + + jobs.Push(MoviePlayerJob.CreateWithSoundinfo("cineov3.anm", soundinfo, 0, 10, 10, 10)); + jobs.Push(BlackScreen.Create(200, ScreenJob.stopsound)); + jobs.Push(new("Episode3End").Init()); + if (!Raze.isPlutoPak()) jobs.Push(ImageScreen.CreateNamed("DUKETEAM.ANM", ScreenJob.fadein | ScreenJob.fadeout | ScreenJob.stopsound, 0x7fffffff)); + } +} + +//--------------------------------------------------------------------------- +// +// +// +//--------------------------------------------------------------------------- + +class DukeDCEnd : ScreenJobRunner +{ + void Init() + { + Super.Init(); + Array soundinfo; + soundinfo.Pushv(144, DukeSnd.ENDSEQVOL3SND3 + 1); + jobs.Push(MoviePlayerJob.CreateWithSoundinfo("radlogo.anm", soundinfo, 0, 10, 10, 10)); + } +} + +//--------------------------------------------------------------------------- +// +// +// +//--------------------------------------------------------------------------- + +class DukeE4End : ScreenJobRunner +{ + void Init() + { + Super.Init(true, true); + Array soundinfo; + + soundinfo.Pushv( + 3, DukeSnd.DUKE_UNDERWATER+1, + 35, DukeSnd.VOL4ENDSND1+1); + jobs.Push(MoviePlayerJob.CreateWithSoundinfo("vol4e1.anm", soundinfo, 0, 10, 10, 10)); + + soundinfo.Pushv( + 11, DukeSnd.DUKE_UNDERWATER+1, + 20, DukeSnd.VOL4ENDSND1+1, + 39, DukeSnd.VOL4ENDSND2+1, + 50, -1); + jobs.Push(MoviePlayerJob.CreateWithSoundinfo("vol4e2.anm", soundinfo, 0, 10, 10, 10)); + + soundinfo.Pushv( + 1, DukeSnd.BOSS4_DEADSPEECH+1, + 40, DukeSnd.VOL4ENDSND1+1, + 40, DukeSnd.DUKE_UNDERWATER+1, + 50, DukeSnd.BIGBANG+1); + jobs.Push(MoviePlayerJob.CreateWithSoundinfo("vol4e3.anm", soundinfo, 0, 10, 10, 10)); + + jobs.Push(new("Episode4Text").Init()); + jobs.Push(ImageScreen.CreateNamed("DUKETEAM.ANM", ScreenJob.fadein | ScreenJob.fadeout | ScreenJob.stopsound, 0x7fffffff)); + } +} + +//--------------------------------------------------------------------------- +// +// +// +//--------------------------------------------------------------------------- + +class DukeE5End : ScreenJobRunner +{ + void Init() + { + Super.Init(); + jobs.Push(new("Episode5End").Init()); + } +} + diff --git a/wadsrc/static/zscript/games/duke/ui/screens.zs b/wadsrc/static/zscript/games/duke/ui/screens.zs index d93172b6c..6bf32bbb8 100644 --- a/wadsrc/static/zscript/games/duke/ui/screens.zs +++ b/wadsrc/static/zscript/games/duke/ui/screens.zs @@ -68,7 +68,7 @@ class DRealmsScreen : SkippableScreenJob // //--------------------------------------------------------------------------- -class TitleScreen : SkippableScreenJob +class DukeTitleScreen : SkippableScreenJob { int soundanm;