AS3 loading works

This commit is contained in:
Lako 2021-01-02 00:21:55 -05:00
parent ca75c89a89
commit b9742fe8d5
4 changed files with 66 additions and 49 deletions

View File

@ -29,22 +29,12 @@
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
this.AS2Container = new OpenFK.FlashRightClick();
this.AS3Container = new OpenFK.FlashRightClick();
((System.ComponentModel.ISupportInitialize)(this.AS2Container)).BeginInit();
this.AS2Container = new OpenFK.FlashRightClick();
((System.ComponentModel.ISupportInitialize)(this.AS3Container)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.AS2Container)).BeginInit();
this.SuspendLayout();
//
// AS2Container
//
this.AS2Container.Dock = System.Windows.Forms.DockStyle.Fill;
this.AS2Container.Enabled = true;
this.AS2Container.Location = new System.Drawing.Point(0, 0);
this.AS2Container.Name = "AS2Container";
this.AS2Container.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("AS2Container.OcxState")));
this.AS2Container.Size = new System.Drawing.Size(800, 600);
this.AS2Container.TabIndex = 0;
//
// AS3Container
//
this.AS3Container.Dock = System.Windows.Forms.DockStyle.Fill;
@ -55,6 +45,16 @@
this.AS3Container.Size = new System.Drawing.Size(800, 600);
this.AS3Container.TabIndex = 1;
//
// AS2Container
//
this.AS2Container.Dock = System.Windows.Forms.DockStyle.Fill;
this.AS2Container.Enabled = true;
this.AS2Container.Location = new System.Drawing.Point(0, 0);
this.AS2Container.Name = "AS2Container";
this.AS2Container.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("AS2Container.OcxState")));
this.AS2Container.Size = new System.Drawing.Size(800, 600);
this.AS2Container.TabIndex = 0;
//
// Form1
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
@ -65,8 +65,8 @@
this.Text = "OpenFK";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_FormClosing);
this.Load += new System.EventHandler(this.Form1_Load);
((System.ComponentModel.ISupportInitialize)(this.AS2Container)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.AS3Container)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.AS2Container)).EndInit();
this.ResumeLayout(false);
}

View File

@ -102,11 +102,19 @@ namespace OpenFK
Debug.WriteLine("Main.swf is Loaded");
AS2Container.FSCommand += new _IShockwaveFlashEvents_FSCommandEventHandler(flashPlayer_FSCommand); //This sets up the FSCommand handler, which CCommunicator likes to use a lot.
AS3Container.Quality = Settings.Default.Quality;
AS3Container.ScaleMode = Settings.Default.ScaleMode;
AS3Container.Movie = Directory.GetCurrentDirectory() + @"\MainAS3.swf"; //Sets MainAS3.swf as the Flash Movie to Play.
Debug.WriteLine("MainAS3.swf is Loaded");
AS3Container.FlashCall += new _IShockwaveFlashEvents_FlashCallEventHandler(flashPlayerAS3_FlashCall);
try
{
AS3Container.Quality = Settings.Default.Quality;
AS3Container.ScaleMode = Settings.Default.ScaleMode;
AS3Container.Movie = Directory.GetCurrentDirectory() + @"\MainAS3.swf"; //Sets MainAS3.swf as the Flash Movie to Play.
AS3Container.Play();
Debug.WriteLine("MainAS3.swf is Loaded");
AS3Container.FlashCall += new _IShockwaveFlashEvents_FlashCallEventHandler(flashPlayerAS3_FlashCall);
}
catch
{
Debug.WriteLine("AS3 Failed to Load! Potentially an older version.");
}
//End of Flash initialization
//customF Initialization
@ -376,13 +384,13 @@ namespace OpenFK
// AS3 LOADING
//
if(e.args.Contains("<as3_load "))
if (e.args.Contains("<as3_load "))
{
//TODO - Fully load AS3 Files
AS3Container.Play();
//TODO - Find out if UG games load differently.
AS2Container.SendToBack();
setVar(@"<as3_transit idfrom=""%d"" xml=""%s"" />");
}
setVar(@"<getstaticdata />");
setVar(@"<getgamedata />");
}
//
// EMD OF AS3 LOADING
@ -532,20 +540,28 @@ namespace OpenFK
Encoding iso_8859_1 = Encoding.GetEncoding("iso-8859-1");
string index = "";
string filedata = "";
if (Settings.Default.RDF == true)
try
{
byte[] RDFData = File.ReadAllBytes(Directory.GetCurrentDirectory() + @"\data\" + folder + @"\" + file + ".rdf");
filedata = RDFTool.decode(iso_8859_1.GetString(RDFData));
}
else filedata = File.ReadAllText(Directory.GetCurrentDirectory() + @"\data\" + folder + @"\" + file + ".xml"); //Puts XML file to string
index = @"<commands><load section=""" + file + @""" name=""" + folder + @""" result=""0"" reason="""">" + filedata + @"</load></commands>";
if (Settings.Default.RDF == true)
{
byte[] RDFData = File.ReadAllBytes(Directory.GetCurrentDirectory() + @"\data\" + folder + @"\" + file + ".rdf");
filedata = RDFTool.decode(iso_8859_1.GetString(RDFData));
}
else filedata = File.ReadAllText(Directory.GetCurrentDirectory() + @"\data\" + folder + @"\" + file + ".xml"); //Puts XML file to string
index = @"<commands><load section=""" + file + @""" name=""" + folder + @""" result=""0"" reason="""">" + filedata + @"</load></commands>";
if(file == "funkeys")
if (file == "funkeys")
{
bittyData = new XmlDocument();
bittyData.LoadXml(filedata);
}
}
catch
{
bittyData = new XmlDocument();
bittyData.LoadXml(filedata);
index = @"<commands><load section=""" + file + @""" name=""" + folder + @""" result=""1"" reason=""Error loading file!"" /></commands>"; //I would just let dotNET handle this, but UGLevels needs an error to continue.
}
setVar(index.ToString()); //Sends XML data to the game
Debug.WriteLine("RDF - Sent " + file); //Debug Output
}

View File

@ -117,20 +117,6 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="AS2Container.OcxState" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAewEAAAIB
AAAAAQAAAAAAAAAAAAAAAGYBAABnVWZVAA4AAK9SAAADPgAACAACAAAAAAAIAAQAAAAgAAAACAAEAAAA
IAAAAAgADgAAAFcAaQBuAGQAbwB3AAAACAAGAAAALQAxAAAACAAGAAAALQAxAAAACAAKAAAASABpAGcA
aAAAAAgAAgAAAAAACAAGAAAALQAxAAAACAAAAAAACAAOAAAAYQBsAHcAYQB5AHMAAAAIABAAAABTAGgA
bwB3AEEAbABsAAAACAAEAAAAMAAAAAgABAAAADAAAAAIAAIAAAAAAAgAAAAAAAgAAgAAAAAADQAAAAAA
AAAAAAAAAAAAAAAACAAEAAAAMQAAAAgABAAAADAAAAAIAAAAAAAIAAQAAAAwAAAACAAIAAAAYQBsAGwA
AAAIAAwAAABmAGEAbABzAGUAAAAIAAwAAABmAGEAbABzAGUAAAAIAAQAAAAwAAAACAAMAAAAcwBjAGEA
bABlAAAACAAGAAAALQAxAAAACw==
</value>
</data>
<data name="AS3Container.OcxState" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
@ -143,6 +129,20 @@
AAAAAAAAAAAAAAAACAAEAAAAMQAAAAgABAAAADAAAAAIAAAAAAAIAAQAAAAwAAAACAAIAAAAYQBsAGwA
AAAIAAwAAABmAGEAbABzAGUAAAAIAAwAAABmAGEAbABzAGUAAAAIAAQAAAAwAAAACAAMAAAAcwBjAGEA
bABlAAAACAAGAAAALQAxAAAACw==
</value>
</data>
<data name="AS2Container.OcxState" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACFTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5BeEhvc3QrU3RhdGUBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAewEAAAIB
AAAAAQAAAAAAAAAAAAAAAGYBAABnVWZVAA4AAK9SAAADPgAACAACAAAAAAAIAAQAAAAgAAAACAAEAAAA
IAAAAAgADgAAAFcAaQBuAGQAbwB3AAAACAAGAAAALQAxAAAACAAGAAAALQAxAAAACAAKAAAASABpAGcA
aAAAAAgAAgAAAAAACAAGAAAALQAxAAAACAAAAAAACAAOAAAAYQBsAHcAYQB5AHMAAAAIABAAAABTAGgA
bwB3AEEAbABsAAAACAAEAAAAMAAAAAgABAAAADAAAAAIAAIAAAAAAAgAAAAAAAgAAgAAAAAADQAAAAAA
AAAAAAAAAAAAAAAACAAEAAAAMQAAAAgABAAAADAAAAAIAAAAAAAIAAQAAAAwAAAACAAIAAAAYQBsAGwA
AAAIAAwAAABmAGEAbABzAGUAAAAIAAwAAABmAGEAbABzAGUAAAAIAAQAAAAwAAAACAAMAAAAcwBjAGEA
bABlAAAACAAGAAAALQAxAAAACw==
</value>
</data>
</root>

View File

@ -8,11 +8,12 @@ OpenFK adds new features while doing the same functions as the executable.
| ------------ | ------------ |
| File loading via XMLs | Checking updates |
| Saving files | ActionScript 3 Elements |
| Fullscreen and Windowed mode | USB connectivity |
| Fullscreen and Windowed mode |
| Basic online functionality | |
| Mod support | |
| Closing the game | |
| Native RDF loading | |
| USB connectivity | |
### Installing OpenFK
OpenFK requires some manual work to set it up fully.
@ -24,4 +25,4 @@ You will also need to find the Flash.ocx file, it is usually found in the `C:\Wi
Be sure to run the 'Configure OpenFK.bat' file to choose from some choices!
### Building OpenFK
You can build OpenFK with anything that can build dotNET 4.5 projects, like Visual Studio. You also need to have the ActiveX version of Adobe Flash Player installed to be able to use the 'Shockwave Flash Object' COM component.
You can build OpenFK with anything that can build dotNET 4.5 projects, like Visual Studio. You also need to have the ActiveX version of Adobe Flash Player installed to be able to use the 'Shockwave Flash Object' COM component.