From 956b5b94fddf456de3f3393d91774fda6e72a27d Mon Sep 17 00:00:00 2001
From: Cameron Taylor <cameron.taylor.ninja@gmail.com>
Date: Thu, 4 Mar 2021 19:36:56 -0500
Subject: [PATCH] video stuff in progress

---
 Project.xml             |  3 +++
 source/FreeplayState.hx | 19 +++++++-------
 source/Main.hx          | 57 +++++++++++++++++++++++++++++++++++++++++
 source/TitleState.hx    |  8 +-----
 4 files changed, 71 insertions(+), 16 deletions(-)

diff --git a/Project.xml b/Project.xml
index eca6f8b0a..221b1f43f 100644
--- a/Project.xml
+++ b/Project.xml
@@ -40,6 +40,8 @@
 
 	<classpath name="source" />
 
+	<assets path='assets/preload/music' include="*mp4" embed='false' />
+
 	<assets path="assets/preload" rename="assets" exclude="*.ogg" if="web"/>
 	<assets path="assets/preload" rename="assets" exclude="*.mp3" unless="web"/>
 	
@@ -120,6 +122,7 @@
 	<haxelib name="newgrounds"/>
 	<haxelib name="faxe" if='switch'/>
 	<haxelib name="polymod"/>
+	<haxelib name="openfl-webm" />
 	<!-- <haxelib name="hxcpp-debug-server" if="desktop"/> -->
 
 	<!-- <haxelib name="markdown" /> -->
diff --git a/source/FreeplayState.hx b/source/FreeplayState.hx
index d7b0c6fbe..df6807160 100644
--- a/source/FreeplayState.hx
+++ b/source/FreeplayState.hx
@@ -43,13 +43,11 @@ class FreeplayState extends MusicBeatState
 			songs.push(new SongMetadata(initSonglist[i], 1, 'gf'));
 		}
 
-		/* 
-			if (FlxG.sound.music != null)
-			{
-				if (!FlxG.sound.music.playing)
-					FlxG.sound.playMusic(Paths.music('freakyMenu'));
-			}
-		 */
+		if (FlxG.sound.music != null)
+		{
+			if (!FlxG.sound.music.playing)
+				FlxG.sound.playMusic(Paths.music('freakyMenu'));
+		}
 
 		var isDebug:Bool = false;
 
@@ -179,9 +177,12 @@ class FreeplayState extends MusicBeatState
 	{
 		super.update(elapsed);
 
-		if (FlxG.sound.music.volume < 0.7)
+		if (FlxG.sound.music != null)
 		{
-			FlxG.sound.music.volume += 0.5 * FlxG.elapsed;
+			if (FlxG.sound.music.volume < 0.7)
+			{
+				FlxG.sound.music.volume += 0.5 * FlxG.elapsed;
+			}
 		}
 
 		lerpScore = Math.floor(FlxMath.lerp(lerpScore, intendedScore, 0.4));
diff --git a/source/Main.hx b/source/Main.hx
index 7f287f87e..ee782ca64 100644
--- a/source/Main.hx
+++ b/source/Main.hx
@@ -6,7 +6,13 @@ import openfl.Assets;
 import openfl.Lib;
 import openfl.display.FPS;
 import openfl.display.Sprite;
+import openfl.events.AsyncErrorEvent;
 import openfl.events.Event;
+import openfl.events.MouseEvent;
+import openfl.events.NetStatusEvent;
+import openfl.media.Video;
+import openfl.net.NetConnection;
+import openfl.net.NetStream;
 
 class Main extends Sprite
 {
@@ -49,6 +55,10 @@ class Main extends Sprite
 		setupGame();
 	}
 
+	var video:Video;
+	var netStream:NetStream;
+	private var overlay:Sprite;
+
 	private function setupGame():Void
 	{
 		var stageWidth:Int = Lib.current.stage.stageWidth;
@@ -72,5 +82,52 @@ class Main extends Sprite
 		#if !mobile
 		addChild(new FPS(10, 3, 0xFFFFFF));
 		#end
+		/* 
+			video = new Video();
+			addChild(video);
+
+			var netConnection = new NetConnection();
+			netConnection.connect(null);
+
+			netStream = new NetStream(netConnection);
+			netStream.client = {onMetaData: client_onMetaData};
+			netStream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, netStream_onAsyncError);
+
+			#if (js && html5)
+			overlay = new Sprite();
+			overlay.graphics.beginFill(0, 0.5);
+			overlay.graphics.drawRect(0, 0, 560, 320);
+			overlay.addEventListener(MouseEvent.MOUSE_DOWN, overlay_onMouseDown);
+			overlay.buttonMode = true;
+			addChild(overlay);
+
+			netConnection.addEventListener(NetStatusEvent.NET_STATUS, netConnection_onNetStatus);
+			#else
+			netStream.play("assets/preload/music/dredd.mp4");
+			#end 
+		 */
 	}
+	/* 
+		private function client_onMetaData(metaData:Dynamic)
+		{
+			video.attachNetStream(netStream);
+
+			video.width = video.videoWidth;
+			video.height = video.videoHeight;
+		}
+
+		private function netStream_onAsyncError(event:AsyncErrorEvent):Void
+		{
+			trace("Error loading video");
+		}
+
+		private function netConnection_onNetStatus(event:NetStatusEvent):Void
+		{
+		}
+
+		private function overlay_onMouseDown(event:MouseEvent):Void
+		{
+			netStream.play("assets/preload/music/dredd.mp4");
+		}
+	 */
 }
diff --git a/source/TitleState.hx b/source/TitleState.hx
index 3a3041678..572a97825 100644
--- a/source/TitleState.hx
+++ b/source/TitleState.hx
@@ -2,20 +2,14 @@ package;
 
 import flixel.FlxG;
 import flixel.FlxSprite;
-import flixel.FlxState;
-import flixel.addons.display.FlxGridOverlay;
 import flixel.addons.transition.FlxTransitionSprite.GraphicTransTileDiamond;
 import flixel.addons.transition.FlxTransitionableState;
 import flixel.addons.transition.TransitionData;
 import flixel.graphics.FlxGraphic;
-import flixel.graphics.frames.FlxAtlasFrames;
 import flixel.group.FlxGroup;
 import flixel.input.gamepad.FlxGamepad;
 import flixel.math.FlxPoint;
 import flixel.math.FlxRect;
-import flixel.system.FlxSound;
-import flixel.system.ui.FlxSoundTray;
-import flixel.text.FlxText;
 import flixel.tweens.FlxEase;
 import flixel.tweens.FlxTween;
 import flixel.util.FlxColor;
@@ -45,7 +39,7 @@ class TitleState extends MusicBeatState
 		#if polymod
 		polymod.Polymod.init({modRoot: "mods", dirs: ['introMod']});
 		#end
-		
+
 		PlayerSettings.init();
 
 		curWacky = FlxG.random.getObject(getIntroTextShit());