mirror of
https://github.com/ninjamuffin99/Funkin.git
synced 2024-11-29 02:04:28 +00:00
Video cutscenes in Week 7 no longer broken
This commit is contained in:
parent
49ce962e34
commit
bb8b0b59b1
|
@ -6,7 +6,8 @@ import openfl.utils.Assets as OpenFlAssets;
|
||||||
|
|
||||||
class Paths
|
class Paths
|
||||||
{
|
{
|
||||||
inline public static var SOUND_EXT = #if web "mp3" #else "ogg" #end;
|
public static var SOUND_EXT = #if web "mp3" #else "ogg" #end;
|
||||||
|
public static var VIDEO_EXT = "mp4";
|
||||||
|
|
||||||
static var currentLevel:String;
|
static var currentLevel:String;
|
||||||
|
|
||||||
|
@ -96,6 +97,11 @@ class Paths
|
||||||
return getPath('music/$key.$SOUND_EXT', MUSIC, library);
|
return getPath('music/$key.$SOUND_EXT', MUSIC, library);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline static public function videos(key:String, ?library:String)
|
||||||
|
{
|
||||||
|
return getPath('videos/$key.$VIDEO_EXT', BINARY, library);
|
||||||
|
}
|
||||||
|
|
||||||
inline static public function voices(song:String, ?suffix:String = '')
|
inline static public function voices(song:String, ?suffix:String = '')
|
||||||
{
|
{
|
||||||
if (suffix == null) suffix = ""; // no suffix, for a sorta backwards compatibility with older-ish voice files
|
if (suffix == null) suffix = ""; // no suffix, for a sorta backwards compatibility with older-ish voice files
|
||||||
|
|
|
@ -1422,6 +1422,7 @@ class PlayState extends MusicBeatState
|
||||||
// Handle keybinds.
|
// Handle keybinds.
|
||||||
if (!isInCutscene && !disableKeys) keyShit(true);
|
if (!isInCutscene && !disableKeys) keyShit(true);
|
||||||
if (!isInCutscene && !disableKeys) debugKeyShit();
|
if (!isInCutscene && !disableKeys) debugKeyShit();
|
||||||
|
if (isInCutscene && !disableKeys) handleCutsceneKeys(elapsed);
|
||||||
|
|
||||||
// Dispatch the onUpdate event to scripted elements.
|
// Dispatch the onUpdate event to scripted elements.
|
||||||
dispatchEvent(new UpdateScriptEvent(elapsed));
|
dispatchEvent(new UpdateScriptEvent(elapsed));
|
||||||
|
@ -1429,6 +1430,23 @@ class PlayState extends MusicBeatState
|
||||||
|
|
||||||
static final CUTSCENE_KEYS:Array<FlxKey> = [SPACE, ESCAPE, ENTER];
|
static final CUTSCENE_KEYS:Array<FlxKey> = [SPACE, ESCAPE, ENTER];
|
||||||
|
|
||||||
|
function handleCutsceneKeys(elapsed:Float):Void
|
||||||
|
{
|
||||||
|
if (VideoCutscene.isPlaying())
|
||||||
|
{
|
||||||
|
// This is a video cutscene.
|
||||||
|
|
||||||
|
if (controls.CUTSCENE_SKIP)
|
||||||
|
{
|
||||||
|
trySkipVideoCutscene(elapsed);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
trySkipVideoCutscene(-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function trySkipVideoCutscene(elapsed:Float):Void
|
public function trySkipVideoCutscene(elapsed:Float):Void
|
||||||
{
|
{
|
||||||
if (skipTimer == null || skipTimer.animation == null) return;
|
if (skipTimer == null || skipTimer.animation == null) return;
|
||||||
|
|
|
@ -30,7 +30,8 @@ class VideoCutscene
|
||||||
|
|
||||||
if (!openfl.Assets.exists(filePath))
|
if (!openfl.Assets.exists(filePath))
|
||||||
{
|
{
|
||||||
trace('ERROR: Video file does not exist: ${filePath}');
|
// Display a popup.
|
||||||
|
lime.app.Application.current.window.alert('Video file does not exist: ${filePath}', 'Error playing video');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package funkin.play.song;
|
package funkin.play.song;
|
||||||
|
|
||||||
import flixel.util.typeLimit.OneOfTwo;
|
import flixel.util.typeLimit.OneOfTwo;
|
||||||
|
import funkin.modding.events.ScriptEvent;
|
||||||
|
import funkin.modding.events.ScriptEventDispatcher;
|
||||||
import funkin.play.song.ScriptedSong;
|
import funkin.play.song.ScriptedSong;
|
||||||
import funkin.util.assets.DataAssets;
|
import funkin.util.assets.DataAssets;
|
||||||
import haxe.DynamicAccess;
|
import haxe.DynamicAccess;
|
||||||
|
@ -96,6 +98,9 @@ class SongDataParser
|
||||||
{
|
{
|
||||||
var song:Song = songCache.get(songId);
|
var song:Song = songCache.get(songId);
|
||||||
trace('Successfully fetch song: ${songId}');
|
trace('Successfully fetch song: ${songId}');
|
||||||
|
|
||||||
|
var event:ScriptEvent = new ScriptEvent(ScriptEvent.CREATE, false);
|
||||||
|
ScriptEventDispatcher.callEvent(song, event);
|
||||||
return song;
|
return song;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in a new issue