Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d94f45870d | ||
|
|
2b46e0f4bd | ||
|
|
f1547f78b2 | ||
|
|
6c35326dda |
@@ -27,15 +27,15 @@ namespace KKdBaseLib
|
||||
Length = DataOffset = 0; Keys = null;
|
||||
|
||||
MaxFrames = k.Max ?? 0;
|
||||
if (k.Type > KeyType.Static && k.Length > 1)
|
||||
if (k.Type > KeyType.Static && k.Keys != null && k.Keys.Length > 1)
|
||||
{
|
||||
Type = k.Type;
|
||||
Length = k.Length;
|
||||
Length = k.Keys.Length;
|
||||
Keys = k.Keys;
|
||||
EPTypePost = k.EPTypePost;
|
||||
EPTypePre = k.EPTypePre;
|
||||
FrameDelta = k.Keys[k.Length - 1].F - k.Keys[0].F;
|
||||
ValueDelta = k.Keys[k.Length - 1].V - k.Keys[0].V;
|
||||
FrameDelta = k.Keys[Length - 1].F - k.Keys[0].F;
|
||||
ValueDelta = k.Keys[Length - 1].V - k.Keys[0].V;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
+16
-16
@@ -36,8 +36,8 @@ namespace KKdBaseLib.Auth3D
|
||||
public struct Ambient
|
||||
{
|
||||
public string Name;
|
||||
public Vec3<Key>? LightDiffuse;
|
||||
public Vec3<Key>? RimLightDiffuse;
|
||||
public Vec4<Key?>? LightDiffuse;
|
||||
public Vec4<Key?>? RimLightDiffuse;
|
||||
}
|
||||
|
||||
public struct CameraAuxiliary
|
||||
@@ -46,6 +46,7 @@ namespace KKdBaseLib.Auth3D
|
||||
public Key? Exposure;
|
||||
public Key? Saturate;
|
||||
public Key? GammaRate;
|
||||
public Key? ExposureRate;
|
||||
public Key? AutoExposure;
|
||||
}
|
||||
|
||||
@@ -99,7 +100,7 @@ namespace KKdBaseLib.Auth3D
|
||||
public Key? End;
|
||||
public Key? Start;
|
||||
public Key? Density;
|
||||
public Vec3<Key>? Diffuse;
|
||||
public Vec4<Key?>? Diffuse;
|
||||
}
|
||||
|
||||
public enum CompressF16 : int
|
||||
@@ -129,7 +130,6 @@ namespace KKdBaseLib.Auth3D
|
||||
public struct Key
|
||||
{
|
||||
public KeyType Type;
|
||||
public int Length;
|
||||
public int? BinOffset;
|
||||
public EPType EPTypePre;
|
||||
public EPType EPTypePost;
|
||||
@@ -142,7 +142,6 @@ namespace KKdBaseLib.Auth3D
|
||||
{
|
||||
Type = 0;
|
||||
Value = 0;
|
||||
Length = 0;
|
||||
BinOffset = null;
|
||||
RawData = default;
|
||||
Keys = null;
|
||||
@@ -153,7 +152,6 @@ namespace KKdBaseLib.Auth3D
|
||||
if (k.Length > 1)
|
||||
{
|
||||
Type = k.Type;
|
||||
Length = (int)k.Length;
|
||||
Keys = k.Keys;
|
||||
}
|
||||
else if (k.Length == 1)
|
||||
@@ -184,10 +182,10 @@ namespace KKdBaseLib.Auth3D
|
||||
public Key? Intensity;
|
||||
public Key? Linear;
|
||||
public Key? Quadratic;
|
||||
public Vec3<Key>? Ambient;
|
||||
public Vec3<Key>? Diffuse;
|
||||
public Vec4<Key>? Specular;
|
||||
public Vec3<Key>? Incandescence;
|
||||
public Vec4<Key?>? Ambient;
|
||||
public Vec4<Key?>? Diffuse;
|
||||
public Vec4<Key?>? Specular;
|
||||
public Vec4<Key?>? Incandescence;
|
||||
public ModelTransform Position;
|
||||
public ModelTransform SpotDirection;
|
||||
}
|
||||
@@ -197,8 +195,8 @@ namespace KKdBaseLib.Auth3D
|
||||
public ulong HashName;
|
||||
public string Name;
|
||||
public Key GlowIntensity;
|
||||
public Vec4<Key>? BlendColor;
|
||||
public Vec3<Key>? Incandescence;
|
||||
public Vec4<Key?> BlendColor;
|
||||
public Vec4<Key?> Incandescence;
|
||||
}
|
||||
|
||||
public struct MObjectHRC
|
||||
@@ -237,8 +235,10 @@ namespace KKdBaseLib.Auth3D
|
||||
|
||||
public struct Object
|
||||
{
|
||||
public int? MorphOffset;
|
||||
public float? PatOffset;
|
||||
public float? MorphOffset;
|
||||
public string Name;
|
||||
public string Pat;
|
||||
public string Morph;
|
||||
public string UIDName;
|
||||
public string ParentName;
|
||||
@@ -292,8 +292,8 @@ namespace KKdBaseLib.Auth3D
|
||||
public Key? LensFlare;
|
||||
public Key? LensGhost;
|
||||
public Key? LensShaft;
|
||||
public Vec3<Key>? Ambient;
|
||||
public Vec3<Key>? Diffuse;
|
||||
public Vec4<Key>? Specular;
|
||||
public Vec4<Key?>? Ambient;
|
||||
public Vec4<Key?>? Diffuse;
|
||||
public Vec4<Key?>? Specular;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,10 +33,10 @@ namespace KKdBaseLib.Interpolation
|
||||
f = -df;
|
||||
ResetFrameCount();
|
||||
|
||||
if (key.Keys != null && key.Length > 0)
|
||||
if (key.Keys != null && key.Keys.Length > 0)
|
||||
{
|
||||
firstKey = key.Keys[0];
|
||||
lastKey = key.Keys[key.Length - 1];
|
||||
lastKey = key.Keys[key.Keys.Length - 1];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+5
-3
@@ -70,7 +70,7 @@ namespace KKdBaseLib
|
||||
new KFT3(F, V);
|
||||
|
||||
public IKF Check() =>
|
||||
V == 0 ? (KFT0)this : (IKF)this;
|
||||
V.ToU32() == 0x00000000 ? (KFT0)this : (IKF)this;
|
||||
|
||||
public override string ToString() => ToString(true, 7);
|
||||
public string ToString(int round = 7, bool brackets = true) =>
|
||||
@@ -135,7 +135,7 @@ namespace KKdBaseLib
|
||||
new KFT3(F, V, T, T);
|
||||
|
||||
public IKF Check() =>
|
||||
T == 0 ? (V == 0 ? (IKF)ToT0() : ToT1()) : this;
|
||||
T.ToU32() == 0x00000000 ? (V.ToU32() == 0x00000000 ? (IKF)ToT0() : ToT1()) : this;
|
||||
|
||||
public override string ToString() => ToString(true, 7);
|
||||
public string ToString(int round = 7, bool brackets = true) =>
|
||||
@@ -199,7 +199,9 @@ namespace KKdBaseLib
|
||||
public KFT3 ToT3() => this;
|
||||
|
||||
public IKF Check() =>
|
||||
T1 == 0 && T2 == 0 ? (V == 0 ? (IKF)(KFT0)this : (KFT1)this) : T1 == T2 ? (KFT2)this : (IKF)this;
|
||||
T1.ToU32() == 0x00000000 && T2.ToU32() == 0x00000000
|
||||
? (V.ToU32() == 0x00000000 ? (IKF)(KFT0)this : (KFT1)this)
|
||||
: T1.ToU32() == T2.ToU32() ? (KFT2)this : (IKF)this;
|
||||
|
||||
public override string ToString() => ToString(true, 7);
|
||||
public string ToString(int round = 7, bool brackets = true) =>
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
<Configuration></Configuration>
|
||||
<Copyright>korenkonder (C) 2019-2021</Copyright>
|
||||
<Description>A base library</Description>
|
||||
<FileVersion>0.4.10.1</FileVersion>
|
||||
<FileVersion>0.4.10.4</FileVersion>
|
||||
<PackageId>KKdBaseLib</PackageId>
|
||||
<Product>KKdBaseLib</Product>
|
||||
<TargetFramework>net461</TargetFramework>
|
||||
<Title>KKdBaseLib</Title>
|
||||
<Version>0.4.10.1</Version>
|
||||
<Version>0.4.10.4</Version>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
|
||||
+591
-577
File diff suppressed because it is too large
Load Diff
@@ -1,146 +0,0 @@
|
||||
using KKdBaseLib;
|
||||
using KKdMainLib.IO;
|
||||
|
||||
namespace KKdMainLib
|
||||
{
|
||||
public unsafe struct AddParam : System.IDisposable
|
||||
{
|
||||
private long i;
|
||||
private Stream s;
|
||||
|
||||
public HeaderData Header;
|
||||
|
||||
public void AddParamReader(string file)
|
||||
{
|
||||
Header = new HeaderData();
|
||||
|
||||
s = File.OpenReader(file + ".adp");
|
||||
Header.Count = s.RI64();
|
||||
Header.DataLength = s.RI64();
|
||||
Header.DataOffset = s.RI64();
|
||||
|
||||
if (Header.Count < 1 || Header.DataOffset > s.P || Header.DataLength > s.LI64
|
||||
- Header.DataOffset || Header.Count * 0x20 > s.LI64 - Header.DataOffset) { s.C(); return; }
|
||||
|
||||
Header.Data = new HeaderData.Sub[Header.Count];
|
||||
byte[] data = s.RBy(Header.DataLength, Header.DataOffset);
|
||||
s.C();
|
||||
|
||||
fixed (byte* ptr = data)
|
||||
{
|
||||
HeaderData.Sub* hPtr = (HeaderData.Sub*)ptr;
|
||||
for (i = 0; i < Header.Count; i++)
|
||||
Header.Data[i] = hPtr[i];
|
||||
}
|
||||
|
||||
data = null;
|
||||
}
|
||||
|
||||
public void AddParamWriter(string file)
|
||||
{
|
||||
if (Header.Data == null || Header.Data.LongLength < 1) return;
|
||||
|
||||
Header.Count = Header.Data.LongLength;
|
||||
Header.DataLength = Header.Count * 0x20;
|
||||
Header.DataOffset = 0x18L;
|
||||
|
||||
byte[] data = new byte[Header.DataLength];
|
||||
fixed (byte* ptr = data)
|
||||
{
|
||||
HeaderData.Sub* hPtr = (HeaderData.Sub*)ptr;
|
||||
for (i = 0; i < Header.Count; i++)
|
||||
hPtr[i] = Header.Data[i];
|
||||
}
|
||||
|
||||
s = File.OpenWriter(file + ".adp", true);
|
||||
s.W(Header.Count);
|
||||
s.W(Header.DataLength);
|
||||
s.W(Header.DataOffset);
|
||||
s.W(data);
|
||||
s.C();
|
||||
data = null;
|
||||
}
|
||||
|
||||
public void MsgPackReader(string file, bool json)
|
||||
{
|
||||
Header = new HeaderData();
|
||||
|
||||
MsgPack addParam;
|
||||
MsgPack msgPack = file.ReadMPAllAtOnce(json);
|
||||
if ((addParam = msgPack["AddParam", true]).IsNull) return;
|
||||
|
||||
Header.Count = addParam.Array.LongLength;
|
||||
Header.Data = new HeaderData.Sub[Header.Count];
|
||||
for (i = 0; i < Header.Count; i++)
|
||||
{
|
||||
ref HeaderData.Sub sub = ref Header.Data[i];
|
||||
sub.Time = addParam[i].RF32("Time");
|
||||
sub.Flags = addParam[i].RI32("Flags");
|
||||
sub.Frame = addParam[i].RI32("Frame");
|
||||
sub.ID = addParam[i].RI32("ID");
|
||||
sub.Value = addParam[i].RF32("Value");
|
||||
|
||||
sub.PVBranch = addParam[i].RnI32("PVBranch") ?? 0;
|
||||
float? f = addParam[i].RnF32("Value");
|
||||
if (f.HasValue)
|
||||
{
|
||||
if (sub.ID == 0) { float v = 0; *(uint*)&v = addParam[i].RU32("Value"); sub.Value = v; }
|
||||
else sub.Value = f.Value;
|
||||
}
|
||||
else { float v = 0; *(uint*)&v = 0xFFFFFFFF; sub.Value = v; }
|
||||
|
||||
}
|
||||
|
||||
msgPack.Dispose();
|
||||
}
|
||||
|
||||
public void MsgPackWriter(string file, bool json)
|
||||
{
|
||||
if (Header.Data == null || Header.Data.LongLength < 1) return;
|
||||
|
||||
MsgPack addParam = new MsgPack(Header.Data.LongLength, "AddParam");
|
||||
fixed (HeaderData.Sub* ptr = Header.Data)
|
||||
for (i = 0; i < Header.Count; i++)
|
||||
{
|
||||
ref HeaderData.Sub sub = ref Header.Data[i];
|
||||
addParam[i] = MsgPack.New.Add("Time", sub.Time).Add("Flags", sub.Flags).Add("Frame", sub.Frame);
|
||||
|
||||
if (sub.PVBranch > 0)
|
||||
addParam[i] = addParam[i].Add("PVBranch", sub.PVBranch);
|
||||
|
||||
addParam[i] = addParam[i].Add("ID", sub.ID);
|
||||
|
||||
if (sub.ID == 0)
|
||||
addParam[i] = addParam[i].Add("Value", *(uint*)&ptr[i].Value);
|
||||
else if (*(uint*)&ptr[i].Value != 0xFFFFFFFF)
|
||||
addParam[i] = addParam[i].Add("Value", sub.Value);
|
||||
|
||||
}
|
||||
addParam.WriteAfterAll(false, true, file, json);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{ if (s != null) s.D(); s = null; Header = default; }
|
||||
|
||||
public struct HeaderData
|
||||
{
|
||||
public long Count;
|
||||
public long DataLength;
|
||||
public long DataOffset;
|
||||
|
||||
public Sub[] Data;
|
||||
|
||||
public struct Sub
|
||||
{
|
||||
public float Time;
|
||||
public int Flags;
|
||||
public int Frame;
|
||||
public int Pad0C;
|
||||
public int PVBranch;
|
||||
public int ID;
|
||||
public float Value;
|
||||
public int Pad1C;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+10
-3
@@ -131,15 +131,19 @@ namespace KKdMainLib.IO
|
||||
|
||||
private object RF()
|
||||
{
|
||||
string s = " ";
|
||||
string s = "";
|
||||
_IO.SW();
|
||||
if (_IO.PCUTF8() == '-') s += _IO.RCUTF8();
|
||||
bool negative = false;
|
||||
if (_IO.PCUTF8() == '-') { _IO.RCUTF8(); negative = true; }
|
||||
if (_IO.PCUTF8() == '0') s += _IO.RCUTF8();
|
||||
else s += RD ();
|
||||
char c = _IO.PCUTF8();
|
||||
if (c == '.') s += _IO.RCUTF8() + RD();
|
||||
else if (negative && s == "0")
|
||||
return (float)-0.0f;
|
||||
else if (c != 'e' && c != 'E')
|
||||
{
|
||||
if (negative) s = "-" + s;
|
||||
long val;
|
||||
try { val = long.Parse(s); }
|
||||
catch { return ulong.Parse(s); }
|
||||
@@ -161,7 +165,10 @@ namespace KKdMainLib.IO
|
||||
s += RD();
|
||||
}
|
||||
double d = s.ToF64();
|
||||
return (float)d == d ? (float)d : d;
|
||||
if ((float)d == d)
|
||||
return negative ? (((float)d).ToU32() | 0x80000000).ToF32() : (float)d;
|
||||
else
|
||||
return negative ? (d.ToU64() | 0x8000000000000000).ToF64() : d;
|
||||
}
|
||||
|
||||
private bool RBo()
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
<Configuration></Configuration>
|
||||
<Copyright>korenkonder (C) 2018-2021</Copyright>
|
||||
<Description>A simple library for working with Project Diva AC/DT/F/AFT/F2/X/FT/M39 files</Description>
|
||||
<FileVersion>0.4.10.1</FileVersion>
|
||||
<FileVersion>0.4.10.4</FileVersion>
|
||||
<PackageId>KKdMainLib</PackageId>
|
||||
<Product>KKdMainLib</Product>
|
||||
<TargetFramework>net461</TargetFramework>
|
||||
<Title>KKdMainLib</Title>
|
||||
<Version>0.4.10.1</Version>
|
||||
<Version>0.4.10.4</Version>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
|
||||
@@ -40,7 +40,6 @@
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="classes\A3D.cs" />
|
||||
<Compile Include="classes\ADP.cs" />
|
||||
<Compile Include="classes\AET.cs" />
|
||||
<Compile Include="classes\BLT.cs" />
|
||||
<Compile Include="classes\CCT.cs" />
|
||||
|
||||
+18
-22
@@ -218,14 +218,13 @@ namespace PD_Tool
|
||||
ConsoleDesign(" Choose converter:");
|
||||
ConsoleDesign(false);
|
||||
ConsoleDesign("1. A3DA" );
|
||||
ConsoleDesign("2. AddParam");
|
||||
ConsoleDesign("3. AET" );
|
||||
ConsoleDesign("4. DEX" );
|
||||
ConsoleDesign("5. DIVA" );
|
||||
ConsoleDesign("6. MotHead" );
|
||||
ConsoleDesign("7. MOT" );
|
||||
ConsoleDesign("8. STR" );
|
||||
ConsoleDesign("9. Table" );
|
||||
ConsoleDesign("2. AET" );
|
||||
ConsoleDesign("3. DEX" );
|
||||
ConsoleDesign("4. DIVA" );
|
||||
ConsoleDesign("5. MotHead" );
|
||||
ConsoleDesign("6. MOT" );
|
||||
ConsoleDesign("7. STR" );
|
||||
ConsoleDesign("8. Table" );
|
||||
ConsoleDesign(false);
|
||||
ConsoleDesign("R. Return to Main Menu");
|
||||
ConsoleDesign(false);
|
||||
@@ -235,14 +234,13 @@ namespace PD_Tool
|
||||
}
|
||||
else localChoose = choose[1].ToString();
|
||||
if (localChoose == "1") A3D.Processor(json);
|
||||
else if (localChoose == "2") ADP.Processor(json);
|
||||
else if (localChoose == "3") AET.Processor(json);
|
||||
else if (localChoose == "4") DEX.Processor(json);
|
||||
else if (localChoose == "5") DIV.Processor();
|
||||
else if (localChoose == "6") MHD.Processor(json);
|
||||
else if (localChoose == "7") MOT.Processor(json);
|
||||
else if (localChoose == "8") STR.Processor(json);
|
||||
else if (localChoose == "9") TBL.Processor(json);
|
||||
else if (localChoose == "2") AET.Processor(json);
|
||||
else if (localChoose == "3") DEX.Processor(json);
|
||||
else if (localChoose == "4") DIV.Processor();
|
||||
else if (localChoose == "5") MHD.Processor(json);
|
||||
else if (localChoose == "6") MOT.Processor(json);
|
||||
else if (localChoose == "7") STR.Processor(json);
|
||||
else if (localChoose == "8") TBL.Processor(json);
|
||||
else choose = localChoose;
|
||||
}
|
||||
else if (choose[0] == 'A')
|
||||
@@ -312,8 +310,6 @@ namespace PD_Tool
|
||||
string Filter = GetArgs("All", false, "*");
|
||||
if (filetype == "a3da") Filter = GetArgs("A3DA", "a3da", "farc", "json", "mp") +
|
||||
GetArgs("A3DA", true, "a3da") + GetArgs("FARC", true, "farc") + json + mp;
|
||||
else if (filetype == "adp" ) Filter = GetArgs("ADP" , "adp", "json", "mp") +
|
||||
GetArgs("ADP", true, "adp" ) + json + mp;
|
||||
else if (filetype == "bin" ) Filter = GetArgs("BIN" , "bin", "json", "mp") +
|
||||
bin + json + mp;
|
||||
else if (filetype == "blt" ) Filter = GetArgs("BLT" , "blt", "json", "mp") +
|
||||
@@ -350,15 +346,15 @@ namespace PD_Tool
|
||||
else if (filetype == "vag" ) Filter = GetArgs("VAG" , "vag", "wav") +
|
||||
GetArgs("VAG", true, "vag") + wav;
|
||||
|
||||
using OpenFileDialog ofd = new OpenFileDialog { InitialDirectory = Application.StartupPath,
|
||||
Filter = Filter, Multiselect = true, Title = "Choose file(s) to open:" };
|
||||
using OpenFileDialog ofd = new OpenFileDialog { Filter = Filter,
|
||||
Multiselect = true, Title = "Choose file(s) to open:" };
|
||||
if (ofd.ShowDialog() == DialogResult.OK) FileNames = ofd.FileNames;
|
||||
}
|
||||
else if (code == 2)
|
||||
{
|
||||
string Return = "";
|
||||
using (OpenFileDialog ofd = new OpenFileDialog { InitialDirectory = Application.StartupPath,
|
||||
ValidateNames = false, CheckFileExists = false, Filter = " | ", CheckPathExists = true,
|
||||
using (OpenFileDialog ofd = new OpenFileDialog { ValidateNames = false,
|
||||
CheckFileExists = false, Filter = " | ", CheckPathExists = true,
|
||||
Title = "Choose any file in folder:", FileName = "Folder Selection." })
|
||||
if (ofd.ShowDialog() == DialogResult.OK) Return = Path.GetDirectoryName(ofd.FileName);
|
||||
return Return;
|
||||
|
||||
@@ -11,5 +11,5 @@ using System.Runtime.InteropServices;
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
[assembly: Guid("7B5D5A3A-A6F8-4813-C97D-ACFC98F7397E")]
|
||||
[assembly: AssemblyVersion("0.4.10.1")]
|
||||
[assembly: AssemblyFileVersion("0.4.10.1")]
|
||||
[assembly: AssemblyVersion("0.4.10.4")]
|
||||
[assembly: AssemblyFileVersion("0.4.10.4")]
|
||||
|
||||
+46
-28
@@ -18,34 +18,50 @@ namespace PD_Tool
|
||||
foreach (string file in fileNames)
|
||||
if (file.EndsWith(".mp") || file.EndsWith(".json") || file.EndsWith(".farc")) { mp = true; break; }
|
||||
|
||||
bool a3dcOpt = false;
|
||||
Format format = Format.NULL;
|
||||
string choose = "";
|
||||
Console.Clear();
|
||||
Program.ConsoleDesign(true);
|
||||
Program.ConsoleDesign(" Choose type of format to export:");
|
||||
Program.ConsoleDesign(false);
|
||||
Program.ConsoleDesign(" Tip: A3DC Opt - A3DC Optimization");
|
||||
Program.ConsoleDesign(" WARNING! CHECK RESULTS AFTER CONVERTING ");
|
||||
Program.ConsoleDesign(false);
|
||||
Program.ConsoleDesign("1. A3DA [DT/AC/F]");
|
||||
Program.ConsoleDesign("2. A3DC [DT/AC/F]");
|
||||
Program.ConsoleDesign("3. A3DA [AFT/FT/M39]");
|
||||
Program.ConsoleDesign("4. A3DC [AFT/FT/M39]");
|
||||
Program.ConsoleDesign("5. A3DC [F2]");
|
||||
Program.ConsoleDesign("6. A3DC [MGF]");
|
||||
Program.ConsoleDesign("7. A3DC [X]");
|
||||
Program.ConsoleDesign("8. A3DC [XHD]");
|
||||
if (!mp) Program.ConsoleDesign($"9. {(json ? "JSON" : "MsgPack")}");
|
||||
Program.ConsoleDesign("3. A3DC [DT/AC/F] (A3DC Opt)");
|
||||
Program.ConsoleDesign("4. A3DA [AFT/FT/M39]");
|
||||
Program.ConsoleDesign("5. A3DC [AFT/FT/M39]");
|
||||
Program.ConsoleDesign("6. A3DC [AFT/FT/M39] (A3DC Opt)");
|
||||
Program.ConsoleDesign("7. A3DC [F2]");
|
||||
Program.ConsoleDesign("8. A3DC [F2] (A3DC Opt)");
|
||||
Program.ConsoleDesign("9. A3DC [MGF]");
|
||||
Program.ConsoleDesign("A. A3DC [MGF] (A3DC Opt)");
|
||||
Program.ConsoleDesign("B. A3DC [X]");
|
||||
Program.ConsoleDesign("C. A3DC [X] (A3DC Opt)");
|
||||
Program.ConsoleDesign("D. A3DC [XHD]");
|
||||
Program.ConsoleDesign("E. A3DC [XHD] (A3DC Opt)");
|
||||
if (!mp) Program.ConsoleDesign($"F. {(json ? "JSON" : "MsgPack")}");
|
||||
Program.ConsoleDesign(false);
|
||||
Program.ConsoleDesign(true);
|
||||
Console.WriteLine();
|
||||
choose = Console.ReadLine().ToUpper();
|
||||
if (choose == "1") format = Format.DT ;
|
||||
else if (choose == "2") format = Format.F ;
|
||||
else if (choose == "3") format = Format.AFT;
|
||||
else if (choose == "4") format = Format.AFT;
|
||||
else if (choose == "5") format = Format.F2;
|
||||
else if (choose == "6") format = Format.MGF;
|
||||
else if (choose == "7") format = Format.X ;
|
||||
else if (choose == "8") format = Format.XHD;
|
||||
else if (choose == "9") format = Format.NULL;
|
||||
if (choose == "1") format = Format.DT ;
|
||||
else if (choose == "2") format = Format.F ;
|
||||
else if (choose == "3") { format = Format.F ; a3dcOpt = true; }
|
||||
else if (choose == "4") format = Format.AFT;
|
||||
else if (choose == "5") format = Format.AFT;
|
||||
else if (choose == "6") { format = Format.AFT; a3dcOpt = true; }
|
||||
else if (choose == "7") format = Format.F2 ;
|
||||
else if (choose == "8") { format = Format.F2 ; a3dcOpt = true; }
|
||||
else if (choose == "9") format = Format.MGF;
|
||||
else if (choose == "A") { format = Format.MGF; a3dcOpt = true; }
|
||||
else if (choose == "B") format = Format.X ;
|
||||
else if (choose == "C") { format = Format.X ; a3dcOpt = true; }
|
||||
else if (choose == "D") format = Format.XHD;
|
||||
else if (choose == "E") { format = Format.XHD; a3dcOpt = true; }
|
||||
else if (choose == "F") format = Format.NULL;
|
||||
else return;
|
||||
|
||||
int state;
|
||||
@@ -60,33 +76,33 @@ namespace PD_Tool
|
||||
Console.Title = "A3DA Converter: " + Path.GetFileNameWithoutExtension(file);
|
||||
if (ext == ".farc")
|
||||
using (farc = new KKdFARC(file))
|
||||
FARCProcessor(farc, choose, format);
|
||||
FARCProcessor(farc, choose, format, a3dcOpt);
|
||||
else if (ext == ".a3da")
|
||||
using (a3da = new KKdA3DA(true))
|
||||
using (a3da = new KKdA3DA(a3dcOpt))
|
||||
{
|
||||
state = a3da.A3DAReader(filepath);
|
||||
if (state == 1)
|
||||
if (choose == "9") a3da.MsgPackWriter(filepath, json);
|
||||
if (choose == "F") a3da.MsgPackWriter(filepath, json);
|
||||
else
|
||||
{
|
||||
a3da.Head.Format = format;
|
||||
File.WriteAllBytes(filepath + ".a3da", (choose == "1" ||
|
||||
choose == "3") ? a3da.A3DAWriter() : a3da.A3DCWriter());
|
||||
choose == "4") ? a3da.A3DAWriter() : a3da.A3DCWriter());
|
||||
}
|
||||
}
|
||||
else if (ext == ".mp" || ext == ".json")
|
||||
using (a3da = new KKdA3DA(true))
|
||||
using (a3da = new KKdA3DA(a3dcOpt))
|
||||
{
|
||||
a3da.MsgPackReader(filepath, ext == ".json");
|
||||
a3da.Head.Format = format;
|
||||
|
||||
File.WriteAllBytes(filepath + ".a3da", (choose == "1" ||
|
||||
choose == "3") ? a3da.A3DAWriter() : a3da.A3DCWriter());
|
||||
choose == "4") ? a3da.A3DAWriter() : a3da.A3DCWriter());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void FARCProcessor(KKdFARC farc, string choose, Format format)
|
||||
private static void FARCProcessor(KKdFARC farc, string choose, Format format, bool a3dcOpt)
|
||||
{
|
||||
if (!farc.HeaderReader() || !farc.HasFiles) return;
|
||||
|
||||
@@ -107,7 +123,7 @@ namespace PD_Tool
|
||||
{
|
||||
KKdA3DA a3da;
|
||||
for (int i = 0; i < A3DAlist.Count; i++)
|
||||
using (a3da = new KKdA3DA(true))
|
||||
using (a3da = new KKdA3DA(a3dcOpt))
|
||||
{
|
||||
data = farc.FileReader(A3DAlist[i]);
|
||||
int state = a3da.A3DAReader(data);
|
||||
@@ -115,7 +131,8 @@ namespace PD_Tool
|
||||
{
|
||||
KKdFARC.FARCFile file = farc.Files[i];
|
||||
a3da.Head.Format = format;
|
||||
file.Data = (choose == "1"|| choose == "3") ? a3da.A3DAWriter() : a3da.A3DCWriter();
|
||||
file.Data = (choose == "1"|| choose == "4")
|
||||
? a3da.A3DAWriter() : a3da.A3DCWriter();
|
||||
farc.Files[i] = file;
|
||||
}
|
||||
}
|
||||
@@ -129,7 +146,7 @@ namespace PD_Tool
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
{
|
||||
KKdA3DA a3da;
|
||||
using (a3da = new KKdA3DA(true))
|
||||
using (a3da = new KKdA3DA(a3dcOpt))
|
||||
{
|
||||
data = farc.FileReader(list[i]);
|
||||
int state = a3da.A3DAReader(data);
|
||||
@@ -147,7 +164,7 @@ namespace PD_Tool
|
||||
string ext = Path.GetExtension(list[i]).ToLower();
|
||||
KKdA3DA a3da;
|
||||
for (int i1 = 1; i1 < div; i1++)
|
||||
using (a3da = new KKdA3DA(true))
|
||||
using (a3da = new KKdA3DA(a3dcOpt))
|
||||
{
|
||||
string file = filename + "_div_" + i1 + ext;
|
||||
data = farc.FileReader(file);
|
||||
@@ -164,7 +181,8 @@ namespace PD_Tool
|
||||
KKdFARC.FARCFile file = default;
|
||||
file.Name = list[i];
|
||||
a3daArray[i].Head.Format = format;
|
||||
file.Data = (choose == "1" || choose == "3") ? a3daArray[i].A3DAWriter() : a3daArray[i].A3DCWriter();
|
||||
file.Data = (choose == "1" || choose == "4")
|
||||
? a3daArray[i].A3DAWriter() : a3daArray[i].A3DCWriter();
|
||||
farc.Files.Add(file);
|
||||
}
|
||||
farc.Save();
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
using System;
|
||||
using KKdMainLib;
|
||||
using KKdMainLib.IO;
|
||||
|
||||
namespace PD_Tool
|
||||
{
|
||||
public class ADP
|
||||
{
|
||||
public static void Processor(bool json)
|
||||
{
|
||||
Console.Title = "Add Param Converter";
|
||||
Program.Choose(1, "adp", out string[] fileNames);
|
||||
if (fileNames.Length < 1) return;
|
||||
|
||||
string filepath, ext;
|
||||
AddParam adp;
|
||||
foreach (string file in fileNames)
|
||||
using (adp = new AddParam())
|
||||
{
|
||||
filepath = Path.RemoveExtension(file);
|
||||
ext = Path.GetExtension(file).ToLower();
|
||||
|
||||
Console.Title = "Add Param Converter: " + Path.GetFileNameWithoutExtension(file);
|
||||
if (ext == ".adp")
|
||||
{
|
||||
adp.AddParamReader(filepath);
|
||||
adp. MsgPackWriter(filepath, json);
|
||||
}
|
||||
else if (ext == ".mp" || ext == ".json")
|
||||
{
|
||||
adp. MsgPackReader(filepath, ext == ".json");
|
||||
adp.AddParamWriter(filepath);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user