├── .gitattributes
├── BFP4FExplorerWV
├── App.config
├── BF2
│ ├── BF2BundledMesh.cs
│ ├── BF2CollisionMesh.cs
│ ├── BF2FileSystem.cs
│ ├── BF2HUDBuilder.cs
│ ├── BF2HUDElement.cs
│ ├── BF2HUDLoader.cs
│ ├── BF2HUDManager.cs
│ ├── BF2Level.cs
│ ├── BF2LevelObject.cs
│ ├── BF2Mesh.cs
│ ├── BF2SkinnedMesh.cs
│ ├── BF2StaticMesh.cs
│ └── BF2Terrain.cs
├── BFP4FExplorerWV.csproj
├── Engine
│ ├── Engine3D.cs
│ ├── ExporterObj.cs
│ ├── RenderObject.cs
│ └── TextureManager.cs
├── Helper.cs
├── LevelSelect.Designer.cs
├── LevelSelect.cs
├── LevelSelect.resx
├── Log.cs
├── MainForm.Designer.cs
├── MainForm.cs
├── MainForm.resx
├── ModLoader.Designer.cs
├── ModLoader.cs
├── ModLoader.resx
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── Resources
│ ├── BuildDate.txt
│ ├── Resource1.Designer.cs
│ └── Resource1.resx
├── SelectablePictureBox.cs
├── TextEditor.Designer.cs
├── TextEditor.cs
├── TextEditor.resx
├── bin
│ └── x86
│ │ └── Release
│ │ ├── BFP4F_Explorer_WV.exe
│ │ ├── BFP4F_Explorer_WV.exe.config
│ │ ├── Be.Windows.Forms.HexBox.dll
│ │ ├── SharpDX.D3DCompiler.dll
│ │ ├── SharpDX.D3DCompiler.xml
│ │ ├── SharpDX.DXGI.dll
│ │ ├── SharpDX.DXGI.xml
│ │ ├── SharpDX.Desktop.dll
│ │ ├── SharpDX.Desktop.xml
│ │ ├── SharpDX.Direct2D1.dll
│ │ ├── SharpDX.Direct2D1.xml
│ │ ├── SharpDX.Direct3D11.dll
│ │ ├── SharpDX.Direct3D11.xml
│ │ ├── SharpDX.Mathematics.dll
│ │ ├── SharpDX.Mathematics.xml
│ │ ├── SharpDX.dll
│ │ ├── SharpDX.xml
│ │ ├── config.txt
│ │ ├── res
│ │ └── default.png
│ │ └── texconv.exe
└── dll
│ ├── SharpDX.D3DCompiler.dll
│ ├── SharpDX.D3DCompiler.pdb
│ ├── SharpDX.D3DCompiler.xml
│ ├── SharpDX.DXGI.dll
│ ├── SharpDX.DXGI.pdb
│ ├── SharpDX.DXGI.xml
│ ├── SharpDX.Desktop.dll
│ ├── SharpDX.Desktop.pdb
│ ├── SharpDX.Desktop.xml
│ ├── SharpDX.Direct2D1.dll
│ ├── SharpDX.Direct2D1.pdb
│ ├── SharpDX.Direct2D1.xml
│ ├── SharpDX.Direct3D11.dll
│ ├── SharpDX.Direct3D11.pdb
│ ├── SharpDX.Direct3D11.xml
│ ├── SharpDX.Mathematics.dll
│ ├── SharpDX.Mathematics.pdb
│ ├── SharpDX.Mathematics.xml
│ ├── SharpDX.dll
│ ├── SharpDX.pdb
│ └── SharpDX.xml
├── BFP4FLauncherWV
├── App.config
├── BFP4FLauncherWV.csproj
├── BFP4FLauncherWV.csproj.user
├── Components
│ ├── AsyncNotification
│ │ ├── AsyncGameManager.cs
│ │ ├── AsyncStats.cs
│ │ └── AsyncUserSessions.cs
│ ├── AuthenticationComponent.cs
│ ├── BlazeHelper.cs
│ ├── GameManagerComponent.cs
│ ├── StatsComponent.cs
│ ├── UserSessionComponent.cs
│ └── UtilComponent.cs
├── Form1.Designer.cs
├── Form1.cs
├── Form1.resx
├── Form2.Designer.cs
├── Form2.cs
├── Form2.resx
├── Form3.Designer.cs
├── Form3.cs
├── Form3.resx
├── Helper.cs
├── Info
│ ├── GameInfo.cs
│ ├── PlayerInfo.cs
│ └── ProviderInfo.cs
├── Profile.cs
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── Resources
│ ├── BuildDate.txt
│ ├── Resource1.Designer.cs
│ ├── Resource1.resx
│ └── redi.pfx
├── Server
│ ├── BackendLog.cs
│ ├── BlazeServer.cs
│ ├── MagmaServer.cs
│ ├── QOSServer.cs
│ ├── RedirectorServer.cs
│ └── Webserver.cs
└── bin
│ └── x86
│ └── Release
│ ├── BFP4FLauncherWV.exe
│ ├── BFP4FLauncherWV.exe.config
│ └── BlazeLibWV.dll
├── BFP4FToolsWV.sln
├── BFP4FToolsWV.v11.suo
├── Be.Windows.Forms.HexBox
├── AssemblyInfo.cs
├── Be.Windows.Forms.HexBox.csproj
├── BuiltInContextMenu.cs
├── ByteCharConverters.cs
├── ByteCollection.cs
├── BytePositionInfo.cs
├── DataBlock.cs
├── DataMap.cs
├── DynamicByteProvider.cs
├── DynamicFileByteProvider.cs
├── FileByteProvider.cs
├── FileDataBlock.cs
├── FindOptions.cs
├── HexBox.bmp
├── HexBox.cs
├── HexBox.resx
├── HexBox.snk
├── HexCasing.cs
├── IByteProvider.cs
├── MemoryDataBlock.cs
├── NativeMethods.cs
├── Properties
│ ├── Resources.Designer.cs
│ └── Resources.resx
├── Util.cs
└── bin
│ └── x86
│ └── Release
│ └── Be.Windows.Forms.HexBox.dll
├── BlazeLibWV
├── Blaze.cs
├── BlazeLibWV.csproj
├── BlazePrettyPrinter.cs
├── Properties
│ └── AssemblyInfo.cs
└── bin
│ └── x86
│ └── Release
│ └── BlazeLibWV.dll
├── BlazeSharkWV
├── App.config
├── BlazeSharkWV.csproj
├── Form1.Designer.cs
├── Form1.cs
├── Form1.resx
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
└── bin
│ └── x86
│ └── Release
│ ├── BlazeLibWV.dll
│ ├── BlazeSharkWV.exe
│ └── BlazeSharkWV.exe.config
├── Other
├── JavascriptInterfaceByWV.txt
├── html.rar
└── maplist.con
├── README.md
├── UDPMonitorWV
├── App.config
├── Form1.Designer.cs
├── Form1.cs
├── Form1.resx
├── Program.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── UDPMonitorWV.csproj
└── bin
│ └── x86
│ └── Release
│ ├── UDPMonitorWV.exe
│ └── UDPMonitorWV.exe.config
├── Zlib122_2010
├── Release
│ └── zlib122.dll
├── zlib122.sln
├── zlib122.v11.suo
└── zlib122
│ ├── Hack.cpp
│ ├── Hack.h
│ ├── UDPMon.h
│ ├── detours.h
│ ├── detours.lib
│ ├── dllmain.cpp
│ ├── stdafx.cpp
│ ├── stdafx.h
│ ├── targetver.h
│ ├── zlib122.vcxproj
│ └── zlib122.vcxproj.filters
├── Zlib122_2011
├── Release
│ └── zlib122.dll
├── zlib122.sln
├── zlib122.v11.suo
└── zlib122
│ ├── Hack.cpp
│ ├── Hack.h
│ ├── detours.h
│ ├── detours.lib
│ ├── dllmain.cpp
│ ├── stdafx.cpp
│ ├── stdafx.h
│ ├── targetver.h
│ ├── zlib122.vcxproj
│ └── zlib122.vcxproj.filters
├── Zlib122_2013
├── Release
│ └── zlib122.dll
├── zlib122.sln
├── zlib122.v11.suo
└── zlib122
│ ├── Hack.cpp
│ ├── Hack.h
│ ├── detours.h
│ ├── detours.lib
│ ├── dllmain.cpp
│ ├── stdafx.cpp
│ ├── stdafx.h
│ ├── targetver.h
│ ├── zlib122.vcxproj
│ └── zlib122.vcxproj.filters
└── Zlib122_2015
├── Release
└── zlib122.dll
├── zlib122.sln
├── zlib122.v11.suo
└── zlib122
├── Hack.cpp
├── Hack.h
├── Helper.h
├── detours.h
├── detours.lib
├── dllmain.cpp
├── stdafx.cpp
├── stdafx.h
├── targetver.h
├── zlib122.vcxproj
└── zlib122.vcxproj.filters
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 |
7 | # Standard to msysgit
8 | *.doc diff=astextplain
9 | *.DOC diff=astextplain
10 | *.docx diff=astextplain
11 | *.DOCX diff=astextplain
12 | *.dot diff=astextplain
13 | *.DOT diff=astextplain
14 | *.pdf diff=astextplain
15 | *.PDF diff=astextplain
16 | *.rtf diff=astextplain
17 | *.RTF diff=astextplain
18 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/BF2/BF2BundledMesh.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Windows.Forms;
8 | using SharpDX;
9 | using SharpDX.Direct3D11;
10 | using SharpDX.Mathematics.Interop;
11 |
12 | namespace BFP4FExplorerWV
13 | {
14 | public class BF2BundledMesh
15 | {
16 |
17 | public Helper.BF2MeshHeader header;
18 | public Helper.BF2MeshGeometry geometry;
19 | public uint u1;
20 | public List lods;
21 | public List geomat;
22 |
23 | public BF2BundledMesh(byte[] data)
24 | {
25 | MemoryStream m = new MemoryStream(data);
26 | header = new Helper.BF2MeshHeader(m);
27 | geometry = new Helper.BF2MeshGeometry(m);
28 | u1 = Helper.ReadU32(m);
29 | lods = new List();
30 | geomat = new List();
31 | uint count = geometry.GetSumOfLODs();
32 | for (int i = 0; i < count; i++)
33 | lods.Add(new Helper.BF2MeshBMLod(m, header));
34 | for (int i = 0; i < count; i++)
35 | geomat.Add(new Helper.BF2MeshBMGeometryMaterial(m));
36 | }
37 |
38 | public List ConvertForEngine(Engine3D engine, bool loadTextures, int geoMatIdx)
39 | {
40 | List result = new List();
41 | if (geoMatIdx >= geomat.Count)
42 | geoMatIdx = geomat.Count() - 1;
43 | Helper.BF2MeshBMGeometryMaterial lod0 = geomat[geoMatIdx];
44 | for (int i = 0; i < lod0.numMaterials; i++)
45 | {
46 | Helper.BF2MeshBMMaterial mat = lod0.materials[i];
47 | Texture2D texture = null;
48 | if (loadTextures)
49 | foreach (string path in mat.textureMapFiles)
50 | {
51 | texture = engine.textureManager.FindTextureByPath(path);
52 | if (texture != null)
53 | break;
54 | }
55 | if (texture == null)
56 | texture = engine.defaultTexture;
57 | List list = new List();
58 | List list2 = new List();
59 | int m = geometry.vertices.Count / (int)geometry.numVertices;
60 | for (int j = 0; j < mat.numIndicies; j++)
61 | {
62 | int pos = (geometry.indices[(int)mat.indiciesStartIndex + j] + (int)mat.vertexStartIndex) * m;
63 | list.Add(GetVertex(pos));
64 | list2.Add(GetVector(pos));
65 | }
66 | if (mat.numIndicies != 0)
67 | {
68 | RenderObject o = new RenderObject(engine.device, RenderObject.RenderType.TriListTextured, texture, engine);
69 | o.verticesTextured = list.ToArray();
70 | o.InitGeometry();
71 | result.Add(o);
72 | RenderObject o2 = new RenderObject(engine.device, RenderObject.RenderType.TriListWired, texture, engine);
73 | o2.verticesWired = list2.ToArray();
74 | o2.InitGeometry();
75 | result.Add(o2);
76 | }
77 | }
78 | return result;
79 | }
80 |
81 | public RenderObject.VertexWired GetVector(int pos)
82 | {
83 | return new RenderObject.VertexWired(new Vector4(geometry.vertices[pos], geometry.vertices[pos + 1], geometry.vertices[pos + 2], 1f), Color4.Black);
84 | }
85 |
86 | public RenderObject.VertexTextured GetVertex(int pos)
87 | {
88 | return new RenderObject.VertexTextured(new Vector4(geometry.vertices[pos], geometry.vertices[pos + 1], geometry.vertices[pos + 2], 1), Color.White, new Vector2(geometry.vertices[pos + 7], geometry.vertices[pos + 8]));
89 | }
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/BF2/BF2CollisionMesh.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using SharpDX;
8 | using SharpDX.Mathematics.Interop;
9 |
10 | namespace BFP4FExplorerWV
11 | {
12 | public class BF2CollisionMesh
13 | {
14 | public Helper.BF2CollisionMeshHeader header;
15 | public List geometry;
16 | public BF2CollisionMesh(byte[] data)
17 | {
18 | MemoryStream m = new MemoryStream(data);
19 | header = new Helper.BF2CollisionMeshHeader(m);
20 | geometry = new List();
21 | for (int i = 0; i < (int)header.numChunks; i++)
22 | geometry.Add(new Helper.BF2CollisionMeshGeometry(m, header.version));
23 | }
24 |
25 |
26 | public List ConvertForEngine(Engine3D engine)
27 | {
28 | List result = new List();
29 | foreach(Helper.BF2CollisionMeshGeometry geom in geometry)
30 | foreach(Helper.BF2CollisionMeshSubGeometry subgeo in geom.subGeom)
31 | foreach(Helper.BF2CollisionMeshColData col in subgeo.colData)
32 | {
33 | RenderObject o = new RenderObject(engine.device, RenderObject.RenderType.TriListWired, engine.defaultTexture, engine);
34 | List list = new List();
35 | for(int i=0;i parameter;
14 |
15 | public BF2HUDElement(string _name, BF2HUDElement _parent)
16 | {
17 | name = _name;
18 | parent = _parent;
19 | parameter = new List();
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/BF2/BF2HUDLoader.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Windows.Forms;
8 |
9 | namespace BFP4FExplorerWV
10 | {
11 | public static class BF2HUDLoader
12 | {
13 | public static List elements;
14 |
15 | public static void Init()
16 | {
17 | elements = new List();
18 | elements.Add(new BF2HUDElement("Global", null));
19 | elements.Add(new BF2HUDElement("TopLayer", null));
20 | elements.Add(new BF2HUDElement("TopLeft", null));
21 | elements.Add(new BF2HUDElement("TopRight", null));
22 | elements.Add(new BF2HUDElement("BottomLeftStatic", null));
23 | elements.Add(new BF2HUDElement("BottomRightStatic", null));
24 | elements.Add(new BF2HUDElement("BottomLeftAnimate", null));
25 | elements.Add(new BF2HUDElement("BottomRightAnimate", null));
26 | BF2HUDManager.parameter = new List();
27 | BF2HUDBuilder.current = null;
28 | Log.WriteLine("[BF2 HL] Loading HUD...");
29 | Load("menu\\HUD\\HudSetup\\HudSetupMain.con");
30 | }
31 |
32 | public static void Load(string filename)
33 | {
34 | Log.WriteLine("[BF2 HL] running \"" + filename + "\"...");
35 | BF2FileSystem.BF2FSEntry e = BF2FileSystem.FindEntryFromIngamePath(filename);
36 | if (e == null)
37 | return;
38 | byte[] data = BF2FileSystem.GetFileFromZip(e.zipFile, e.inZipPath);
39 | if (data == null)
40 | {
41 | Log.WriteLine("[BF2 HL] ERROR file not found!");
42 | return;
43 | }
44 | string basePath = Path.GetDirectoryName(filename) + "\\";
45 | string[] lines = SplitBinText(data);
46 | int count = 0;
47 | foreach (string line in lines)
48 | {
49 | count++;
50 | string[] parts;
51 | string tmp = line.ToLower();
52 | if (tmp.Trim() == "") continue;
53 | if (tmp.StartsWith("rem")) continue;
54 | if (tmp.StartsWith("run"))
55 | {
56 | parts = line.Split(' ');
57 | Load(basePath + parts[1].Replace("\"", "").Replace("/", "\\"));
58 | }
59 | else if (tmp.StartsWith("hudbuilder"))
60 | BF2HUDBuilder.ProcessLine(line, count);
61 | else if (tmp.StartsWith("hudmanager"))
62 | BF2HUDManager.ProcessLine(line, count);
63 | }
64 | }
65 |
66 | private static string[] SplitBinText(byte[] data)
67 | {
68 | List result = new List();
69 | string s = Encoding.ASCII.GetString(data);
70 | string line;
71 | StringReader sr = new StringReader(s);
72 | while ((line = sr.ReadLine()) != null)
73 | result.Add(line);
74 | return result.ToArray();
75 | }
76 |
77 | public static TreeNode MakeTree()
78 | {
79 | TreeNode result = new TreeNode("HUD");
80 | foreach (BF2HUDElement e in elements)
81 | if (e.parent == null)
82 | result.Nodes.Add(e.name, e.name);
83 | else
84 | {
85 | TreeNode[] t = result.Nodes.Find(e.parent.name, true);
86 | if (t != null && t.Length != 0)
87 | t[0].Nodes.Add(e.name, e.name);
88 | }
89 | result.Expand();
90 | return result;
91 | }
92 | }
93 | }
94 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/BF2/BF2HUDManager.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace BFP4FExplorerWV
8 | {
9 | public static class BF2HUDManager
10 | {
11 | public static List parameter = new List();
12 | public static void ProcessLine(string s, int line)
13 | {
14 | parameter.Add(s.Substring(11));
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/BF2/BF2Mesh.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Windows.Forms;
8 | using SharpDX;
9 | using SharpDX.Direct3D11;
10 | using SharpDX.Mathematics.Interop;
11 |
12 | namespace BFP4FExplorerWV
13 | {
14 | public class BF2Mesh
15 | {
16 | public uint version;
17 | public Vector3 u1;
18 | public uint u2;
19 | public Vector3 u3;
20 | public Vector3 u4;
21 | public uint u5;
22 | public uint numVertices;
23 | public List vertices;
24 | public uint numIndicies;
25 | public ushort[] indicies;
26 | public uint numUnknown;
27 | public List unk;
28 | public BF2Mesh(byte[] data)
29 | {
30 | MemoryStream m = new MemoryStream(data);
31 | version = Helper.ReadU32(m);
32 | u1 = Helper.ReadVector3(m);
33 | u2 = Helper.ReadU32(m);
34 | u3 = Helper.ReadVector3(m);
35 | u4 = Helper.ReadVector3(m);
36 | u5 = Helper.ReadU32(m);
37 | numVertices = Helper.ReadU32(m);
38 | vertices = new List();
39 | for (int i = 0; i < numVertices; i++)
40 | vertices.Add(new BF2MeshVertex(m));
41 | numIndicies = Helper.ReadU32(m);
42 | indicies = new ushort[numIndicies];
43 | for (int i = 0; i < numIndicies; i++)
44 | indicies[i] = Helper.ReadU16(m);
45 | numUnknown = Helper.ReadU32(m);
46 | unk = new List();
47 | for (int i = 0; i < numUnknown; i++)
48 | unk.Add(new BF2MeshUnknown(m));
49 | }
50 |
51 | public List ConvertForEngine(Engine3D engine, Texture2D texture)
52 | {
53 | List result = new List();
54 | List list = new List();
55 | List list2 = new List();
56 | for (int i = 0; i < numIndicies; i++)
57 | {
58 | list.Add(vertices[indicies[i]].ToTextured());
59 | list2.Add(vertices[indicies[i]].ToWired());
60 | }
61 | RenderObject textured = new RenderObject(engine.device, RenderObject.RenderType.TriListTextured, texture, engine);
62 | RenderObject wired = new RenderObject(engine.device, RenderObject.RenderType.TriListWired, null, engine);
63 | textured.verticesTextured = list.ToArray();
64 | wired.verticesWired = list2.ToArray();
65 | textured.InitGeometry();
66 | wired.InitGeometry();
67 | result.Add(textured);
68 | result.Add(wired);
69 | return result;
70 | }
71 |
72 | public class BF2MeshVertex
73 | {
74 | public Vector3 pos;
75 | public Vector2 tex0;
76 | public Vector2 tex1;
77 | public uint alpha;
78 | public BF2MeshVertex(Stream s)
79 | {
80 | pos = Helper.ReadVector3(s);
81 | tex0 = Helper.ReadVector2(s);
82 | tex1 = Helper.ReadVector2(s);
83 | alpha = Helper.ReadU32(s);
84 | }
85 |
86 | public RenderObject.VertexTextured ToTextured()
87 | {
88 | return new RenderObject.VertexTextured(Helper.ToV4(pos), Color.White, tex0);
89 | }
90 |
91 | public RenderObject.VertexWired ToWired()
92 | {
93 | return new RenderObject.VertexWired(pos, Color4.Black);
94 | }
95 | }
96 |
97 | public class BF2MeshUnknown
98 | {
99 | public uint u1;
100 | public uint u2;
101 | public uint u3;
102 | public Vector3 u4;
103 | public BF2MeshUnknown(Stream s)
104 | {
105 | u1 = Helper.ReadU32(s);
106 | u2 = Helper.ReadU32(s);
107 | u3 = Helper.ReadU32(s);
108 | u4 = Helper.ReadVector3(s);
109 | }
110 | }
111 | }
112 | }
113 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/BF2/BF2SkinnedMesh.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Windows.Forms;
8 | using SharpDX;
9 | using SharpDX.Direct3D11;
10 | using SharpDX.Mathematics.Interop;
11 |
12 | namespace BFP4FExplorerWV
13 | {
14 | public class BF2SkinnedMesh
15 | {
16 | public Helper.BF2MeshHeader header;
17 | public Helper.BF2MeshGeometry geometry;
18 | public List lods;
19 | public List geomat;
20 |
21 | public BF2SkinnedMesh(byte[] data)
22 | {
23 | MemoryStream m = new MemoryStream(data);
24 | header = new Helper.BF2MeshHeader(m);
25 | geometry = new Helper.BF2MeshGeometry(m);
26 | lods = new List();
27 | geomat = new List();
28 | uint count = geometry.GetSumOfLODs();
29 | for (int i = 0; i < count; i++)
30 | lods.Add(new Helper.BF2MeshSKMLod(m, header.version));
31 | for (int i = 0; i < count; i++)
32 | geomat.Add(new Helper.BF2MeshSKMGeometryMaterial(m));
33 | }
34 |
35 | public List ConvertForEngine(Engine3D engine, bool loadTextures, int geoMatIdx)
36 | {
37 | List result = new List();
38 | if (geoMatIdx >= geomat.Count)
39 | geoMatIdx = geomat.Count() - 1;
40 | Helper.BF2MeshSKMGeometryMaterial lod0 = geomat[geoMatIdx];
41 | for (int i = 0; i < lod0.numMaterials; i++)
42 | {
43 | Helper.BF2MeshSKMMaterial mat = lod0.materials[i];
44 | Texture2D texture = null;
45 | if (loadTextures)
46 | foreach (string path in mat.textureMapFiles)
47 | {
48 | texture = engine.textureManager.FindTextureByPath(path);
49 | if (texture != null)
50 | break;
51 | }
52 | if (texture == null)
53 | texture = engine.defaultTexture;
54 | List list = new List();
55 | //List list2 = new List();
56 | int m = geometry.vertices.Count / (int)geometry.numVertices;
57 | for (int j = 0; j < mat.numIndicies; j++)
58 | {
59 | int pos = (geometry.indices[(int)mat.indiciesStartIndex + j] + (int)mat.vertexStartIndex) * m;
60 | list.Add(GetVertex(pos));
61 | //list2.Add(GetVector(pos));
62 | }
63 | if (mat.numIndicies != 0)
64 | {
65 | RenderObject o = new RenderObject(engine.device, RenderObject.RenderType.TriListTextured, texture, engine);
66 | o.verticesTextured = list.ToArray();
67 | o.InitGeometry();
68 | result.Add(o);
69 | //RenderObject o2 = new RenderObject(engine.device, RenderObject.RenderType.TriListWired, texture, engine);
70 | //o2.verticesWired = list2.ToArray();
71 | //o2.InitGeometry();
72 | //result.Add(o2);
73 | }
74 | }
75 | return result;
76 | }
77 |
78 | public RenderObject.VertexWired GetVector(int pos)
79 | {
80 | return new RenderObject.VertexWired(new Vector4(geometry.vertices[pos], geometry.vertices[pos + 1], geometry.vertices[pos + 2], 1f), Color4.Black);
81 | }
82 |
83 | public RenderObject.VertexTextured GetVertex(int pos)
84 | {
85 | return new RenderObject.VertexTextured(new Vector4(geometry.vertices[pos], geometry.vertices[pos + 1], geometry.vertices[pos + 2], 1), Color.White, new Vector2(geometry.vertices[pos + 8], geometry.vertices[pos + 9]));
86 | }
87 | }
88 | }
89 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/BF2/BF2StaticMesh.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using System.Windows.Forms;
8 | using SharpDX;
9 | using SharpDX.Direct3D11;
10 | using SharpDX.Mathematics.Interop;
11 |
12 | namespace BFP4FExplorerWV
13 | {
14 | public class BF2StaticMesh
15 | {
16 | public Helper.BF2MeshHeader header;
17 | public Helper.BF2MeshGeometry geometry;
18 | public uint u1;
19 | public List lods;
20 | public List geomat;
21 |
22 | public BF2StaticMesh(byte[] data)
23 | {
24 | MemoryStream m = new MemoryStream(data);
25 | header = new Helper.BF2MeshHeader(m);
26 | geometry = new Helper.BF2MeshGeometry(m);
27 | u1 = Helper.ReadU32(m);
28 | lods = new List();
29 | geomat = new List();
30 | uint count = geometry.GetSumOfLODs();
31 | for (int i = 0; i < count; i++)
32 | lods.Add(new Helper.BF2MeshSTMLod(m, header));
33 | for (int i = 0; i < count; i++)
34 | geomat.Add(new Helper.BF2MeshSTMGeometryMaterial(m, header));
35 | }
36 |
37 | public List ConvertForEngine(Engine3D engine, bool loadTextures, int geoMatIdx)
38 | {
39 | List result = new List();
40 | if (geoMatIdx >= geomat.Count)
41 | geoMatIdx = geomat.Count() - 1;
42 | Helper.BF2MeshSTMGeometryMaterial lod0 = geomat[geoMatIdx];
43 | for (int i = 0; i < lod0.numMaterials; i++)
44 | {
45 | Helper.BF2MeshSTMMaterial mat = lod0.materials[i];
46 | List list = new List();
47 | List list2 = new List();
48 | Texture2D texture = null;
49 | if(loadTextures)
50 | foreach (string path in mat.textureMapFiles)
51 | {
52 | texture = engine.textureManager.FindTextureByPath(path);
53 | if (texture != null)
54 | break;
55 | }
56 | if(texture == null)
57 | texture = engine.defaultTexture;
58 | int m = geometry.vertices.Count / (int)geometry.numVertices;
59 | for (int j = 0; j < mat.numIndicies; j++)
60 | {
61 | int pos = (geometry.indices[(int)mat.indiciesStartIndex + j] + (int)mat.vertexStartIndex) * m;
62 | list.Add(GetVertex(pos));
63 | list2.Add(GetVector(pos));
64 | }
65 | if (mat.numIndicies != 0)
66 | {
67 | RenderObject o = new RenderObject(engine.device, RenderObject.RenderType.TriListTextured, texture, engine);
68 | o.verticesTextured = list.ToArray();
69 | o.InitGeometry();
70 | result.Add(o);
71 | RenderObject o2 = new RenderObject(engine.device, RenderObject.RenderType.TriListWired, texture, engine);
72 | o2.verticesWired = list2.ToArray();
73 | o2.InitGeometry();
74 | result.Add(o2);
75 | }
76 | }
77 | return result;
78 | }
79 |
80 | public RenderObject.VertexWired GetVector(int pos)
81 | {
82 | return new RenderObject.VertexWired(new Vector4(geometry.vertices[pos], geometry.vertices[pos + 1], geometry.vertices[pos + 2], 1f), Color4.Black);
83 | }
84 |
85 | public RenderObject.VertexTextured GetVertex(int pos)
86 | {
87 | return new RenderObject.VertexTextured(new Vector4(geometry.vertices[pos], geometry.vertices[pos + 1], geometry.vertices[pos + 2], 1), Color.White, new Vector2(geometry.vertices[pos + 7], geometry.vertices[pos + 8]));
88 | }
89 | }
90 | }
91 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/LevelSelect.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace BFP4FExplorerWV
2 | {
3 | partial class LevelSelect
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.button1 = new System.Windows.Forms.Button();
32 | this.listBox1 = new System.Windows.Forms.ListBox();
33 | this.SuspendLayout();
34 | //
35 | // button1
36 | //
37 | this.button1.Dock = System.Windows.Forms.DockStyle.Bottom;
38 | this.button1.Font = new System.Drawing.Font("Courier New", 8.25F);
39 | this.button1.Location = new System.Drawing.Point(0, 280);
40 | this.button1.Name = "button1";
41 | this.button1.Size = new System.Drawing.Size(438, 23);
42 | this.button1.TabIndex = 0;
43 | this.button1.Text = "Load";
44 | this.button1.UseVisualStyleBackColor = true;
45 | this.button1.Click += new System.EventHandler(this.button1_Click);
46 | //
47 | // listBox1
48 | //
49 | this.listBox1.Dock = System.Windows.Forms.DockStyle.Fill;
50 | this.listBox1.Font = new System.Drawing.Font("Courier New", 8.25F);
51 | this.listBox1.FormattingEnabled = true;
52 | this.listBox1.IntegralHeight = false;
53 | this.listBox1.ItemHeight = 14;
54 | this.listBox1.Location = new System.Drawing.Point(0, 0);
55 | this.listBox1.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4);
56 | this.listBox1.Name = "listBox1";
57 | this.listBox1.Size = new System.Drawing.Size(438, 280);
58 | this.listBox1.TabIndex = 1;
59 | this.listBox1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.listBox1_MouseDoubleClick);
60 | //
61 | // LevelSelect
62 | //
63 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
64 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
65 | this.ClientSize = new System.Drawing.Size(438, 303);
66 | this.Controls.Add(this.listBox1);
67 | this.Controls.Add(this.button1);
68 | this.Name = "LevelSelect";
69 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
70 | this.Text = "LevelSelect";
71 | this.Load += new System.EventHandler(this.LevelSelect_Load);
72 | this.ResumeLayout(false);
73 |
74 | }
75 |
76 | #endregion
77 |
78 | private System.Windows.Forms.Button button1;
79 | private System.Windows.Forms.ListBox listBox1;
80 | }
81 | }
--------------------------------------------------------------------------------
/BFP4FExplorerWV/LevelSelect.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Collections.Generic;
4 | using System.ComponentModel;
5 | using System.Data;
6 | using System.Drawing;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 | using System.Windows.Forms;
11 |
12 | namespace BFP4FExplorerWV
13 | {
14 | public partial class LevelSelect : Form
15 | {
16 | public string basepath;
17 | public bool _exitOK = false;
18 | public string result;
19 |
20 | public LevelSelect()
21 | {
22 | InitializeComponent();
23 | }
24 |
25 | private void button1_Click(object sender, EventArgs e)
26 | {
27 | SelectLevel();
28 | }
29 |
30 | private void LevelSelect_Load(object sender, EventArgs e)
31 | {
32 | listBox1.Items.Clear();
33 | string[] dirs = Directory.GetDirectories(basepath);
34 | foreach (string dir in dirs)
35 | listBox1.Items.Add(dir.Substring(basepath.Length));
36 | }
37 |
38 | private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
39 | {
40 | SelectLevel();
41 | }
42 |
43 | public void SelectLevel()
44 | {
45 | int n = listBox1.SelectedIndex;
46 | if (n == -1)
47 | return;
48 | result = listBox1.Items[n].ToString();
49 | _exitOK = true;
50 | this.Close();
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/Log.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows.Forms;
7 |
8 | namespace BFP4FExplorerWV
9 | {
10 | public static class Log
11 | {
12 | public static RichTextBox box = null;
13 | public static ToolStripProgressBar pb = null;
14 | public static readonly object sync = new object();
15 |
16 | public static void WriteLine(string s)
17 | {
18 | Write(s + "\n");
19 | }
20 |
21 | public static void Write(string s)
22 | {
23 | if (box == null)
24 | return;
25 | box.BeginInvoke((MethodInvoker)delegate()
26 | {
27 | box.AppendText(s);
28 | box.SelectionStart = box.Text.Length;
29 | box.ScrollToCaret();
30 | });
31 | Application.DoEvents();
32 | }
33 |
34 | public static void SetProgress(int min, int max, int value)
35 | {
36 | if (pb == null)
37 | return;
38 | pb.GetCurrentParent().BeginInvoke((MethodInvoker)delegate()
39 | {
40 | pb.Minimum = min;
41 | pb.Maximum = max;
42 | pb.Value = value;
43 | });
44 | Application.DoEvents();
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/ModLoader.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace BFP4FExplorerWV
2 | {
3 | partial class ModLoader
4 | {
5 | ///
6 | /// Erforderliche Designervariable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Verwendete Ressourcen bereinigen.
12 | ///
13 | /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Vom Windows Form-Designer generierter Code
24 |
25 | ///
26 | /// Erforderliche Methode für die Designerunterstützung.
27 | /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.listBox1 = new System.Windows.Forms.ListBox();
32 | this.button1 = new System.Windows.Forms.Button();
33 | this.SuspendLayout();
34 | //
35 | // listBox1
36 | //
37 | this.listBox1.Dock = System.Windows.Forms.DockStyle.Fill;
38 | this.listBox1.FormattingEnabled = true;
39 | this.listBox1.IntegralHeight = false;
40 | this.listBox1.ItemHeight = 18;
41 | this.listBox1.Location = new System.Drawing.Point(0, 0);
42 | this.listBox1.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4);
43 | this.listBox1.Name = "listBox1";
44 | this.listBox1.Size = new System.Drawing.Size(573, 379);
45 | this.listBox1.TabIndex = 0;
46 | this.listBox1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.listBox1_MouseDoubleClick);
47 | //
48 | // button1
49 | //
50 | this.button1.Dock = System.Windows.Forms.DockStyle.Bottom;
51 | this.button1.Location = new System.Drawing.Point(0, 379);
52 | this.button1.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4);
53 | this.button1.Name = "button1";
54 | this.button1.Size = new System.Drawing.Size(573, 32);
55 | this.button1.TabIndex = 1;
56 | this.button1.Text = "Load";
57 | this.button1.UseVisualStyleBackColor = true;
58 | this.button1.Click += new System.EventHandler(this.button1_Click);
59 | //
60 | // ModLoader
61 | //
62 | this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 18F);
63 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
64 | this.ClientSize = new System.Drawing.Size(573, 411);
65 | this.Controls.Add(this.listBox1);
66 | this.Controls.Add(this.button1);
67 | this.Font = new System.Drawing.Font("Courier New", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
68 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
69 | this.Margin = new System.Windows.Forms.Padding(5, 4, 5, 4);
70 | this.Name = "ModLoader";
71 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
72 | this.Text = "Choose Mod";
73 | this.Activated += new System.EventHandler(this.Form1_Activated);
74 | this.ResumeLayout(false);
75 |
76 | }
77 |
78 | #endregion
79 |
80 | private System.Windows.Forms.ListBox listBox1;
81 | private System.Windows.Forms.Button button1;
82 |
83 | }
84 | }
85 |
86 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/ModLoader.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Collections.Generic;
4 | using System.ComponentModel;
5 | using System.Data;
6 | using System.Drawing;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 | using System.Windows.Forms;
11 |
12 | namespace BFP4FExplorerWV
13 | {
14 | public partial class ModLoader : Form
15 | {
16 | public string basePath;
17 |
18 | public ModLoader()
19 | {
20 | InitializeComponent();
21 | }
22 |
23 | private void Form1_Activated(object sender, EventArgs e)
24 | {
25 | string[] mods = Directory.GetDirectories(basePath + "mods\\");
26 | listBox1.Items.Clear();
27 | foreach (string mod in mods)
28 | if (File.Exists(mod + "\\Mod.desc") &&
29 | File.Exists(mod + "\\ServerArchives.con") &&
30 | File.Exists(mod + "\\ClientArchives.con"))
31 | listBox1.Items.Add(mod.Substring(basePath.Length));
32 | if (listBox1.Items.Count != 0)
33 | listBox1.SelectedIndex = 0;
34 | }
35 |
36 | private void button1_Click(object sender, EventArgs e)
37 | {
38 | LoadIt();
39 | }
40 |
41 | private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
42 | {
43 | LoadIt();
44 | }
45 |
46 | private void LoadIt()
47 | {
48 | int n = listBox1.SelectedIndex;
49 | if (n == -1)
50 | return;
51 | MainForm main = new MainForm();
52 | BF2FileSystem.basepath = basePath + listBox1.Items[n] + "\\";
53 | this.Hide();
54 | main.ShowDialog();
55 | this.Close();
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Threading.Tasks;
6 | using System.Windows.Forms;
7 |
8 | namespace BFP4FExplorerWV
9 | {
10 | static class Program
11 | {
12 | ///
13 | /// Der Haupteinstiegspunkt für die Anwendung.
14 | ///
15 | [STAThread]
16 | static void Main()
17 | {
18 | Application.EnableVisualStyles();
19 | Application.SetCompatibleTextRenderingDefault(false);
20 |
21 | //OpenFileDialog d = new OpenFileDialog();
22 | //d.Filter = "*.bundledmesh|*.bundledmesh";
23 | //if (d.ShowDialog() == System.Windows.Forms.DialogResult.OK)
24 | //{
25 | // byte[] data = File.ReadAllBytes(d.FileName);
26 | // BF2BundledMesh skm = new BF2BundledMesh(data);
27 | //}
28 |
29 | //return;
30 |
31 | if (!File.Exists("config.txt"))
32 | {
33 | FolderBrowserDialog fbd = new FolderBrowserDialog();
34 | if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
35 | {
36 | ModLoader ml = new ModLoader();
37 | ml.basePath = fbd.SelectedPath + "\\";
38 | File.WriteAllText("config.txt", ml.basePath);
39 | Application.Run(ml);
40 | }
41 | }
42 | else
43 | {
44 | ModLoader ml = new ModLoader();
45 | ml.basePath = File.ReadAllText("config.txt").Trim();
46 | Application.Run(ml);
47 | }
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // Allgemeine Informationen über eine Assembly werden über die folgenden
6 | // Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
7 | // die mit einer Assembly verknüpft sind.
8 | [assembly: AssemblyTitle("BFP4F_Explorer_WV")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("BFP4F_Explorer_WV")]
13 | [assembly: AssemblyCopyright("Copyright © 2019")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar
18 | // für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von
19 | // COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest.
20 | [assembly: ComVisible(false)]
21 |
22 | // Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
23 | [assembly: Guid("378c2e30-abba-4f7a-97c0-4ecced3b3c10")]
24 |
25 | // Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
26 | //
27 | // Hauptversion
28 | // Nebenversion
29 | // Buildnummer
30 | // Revision
31 | //
32 | // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
33 | // übernehmen, indem Sie "*" eingeben:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // Dieser Code wurde von einem Tool generiert.
4 | // Laufzeitversion:4.0.30319.42000
5 | //
6 | // Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
7 | // der Code erneut generiert wird.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace BFP4FExplorerWV.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/Resources/BuildDate.txt:
--------------------------------------------------------------------------------
1 | 11.03.2019_2049
2 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/Resources/Resource1.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // Dieser Code wurde von einem Tool generiert.
4 | // Laufzeitversion:4.0.30319.42000
5 | //
6 | // Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
7 | // der Code erneut generiert wird.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace BFP4FExplorerWV.Resources {
12 | using System;
13 |
14 |
15 | ///
16 | /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
17 | ///
18 | // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
19 | // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
20 | // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
21 | // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resource1 {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resource1() {
33 | }
34 |
35 | ///
36 | /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("BFP4FExplorerWV.Resources.Resource1", typeof(Resource1).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
51 | /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 |
63 | ///
64 | /// Sucht eine lokalisierte Zeichenfolge, die 18.01.2019_2349
65 | /// ähnelt.
66 | ///
67 | internal static string BuildDate {
68 | get {
69 | return ResourceManager.GetString("BuildDate", resourceCulture);
70 | }
71 | }
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/SelectablePictureBox.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Collections.Generic;
4 | using System.Diagnostics;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Drawing;
8 | using System.Threading.Tasks;
9 | using System.Windows.Forms;
10 |
11 | namespace BFP4FExplorerWV
12 | {
13 | public class SelectablePictureBox : PictureBox
14 | {
15 | public SelectablePictureBox()
16 | {
17 | this.SetStyle(ControlStyles.Selectable, true);
18 | this.TabStop = true;
19 | }
20 | protected override void OnMouseDown(MouseEventArgs e)
21 | {
22 | this.Focus();
23 | base.OnMouseDown(e);
24 | }
25 | protected override void OnEnter(EventArgs e)
26 | {
27 | this.Invalidate();
28 | base.OnEnter(e);
29 | }
30 | protected override void OnLeave(EventArgs e)
31 | {
32 | this.Invalidate();
33 | base.OnLeave(e);
34 | }
35 | protected override void OnPaint(PaintEventArgs pe)
36 | {
37 | base.OnPaint(pe);
38 | if (this.Focused)
39 | {
40 | var rc = this.ClientRectangle;
41 | rc.Inflate(-2, -2);
42 | ControlPaint.DrawFocusRectangle(pe.Graphics, rc);
43 | }
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/TextEditor.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace BFP4FExplorerWV
2 | {
3 | partial class TextEditor
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.rtb1 = new System.Windows.Forms.RichTextBox();
32 | this.button1 = new System.Windows.Forms.Button();
33 | this.SuspendLayout();
34 | //
35 | // rtb1
36 | //
37 | this.rtb1.DetectUrls = false;
38 | this.rtb1.Dock = System.Windows.Forms.DockStyle.Fill;
39 | this.rtb1.Font = new System.Drawing.Font("Courier New", 8.25F);
40 | this.rtb1.HideSelection = false;
41 | this.rtb1.Location = new System.Drawing.Point(0, 0);
42 | this.rtb1.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
43 | this.rtb1.Name = "rtb1";
44 | this.rtb1.Size = new System.Drawing.Size(625, 378);
45 | this.rtb1.TabIndex = 0;
46 | this.rtb1.Text = "";
47 | this.rtb1.WordWrap = false;
48 | //
49 | // button1
50 | //
51 | this.button1.Dock = System.Windows.Forms.DockStyle.Bottom;
52 | this.button1.Location = new System.Drawing.Point(0, 378);
53 | this.button1.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
54 | this.button1.Name = "button1";
55 | this.button1.Size = new System.Drawing.Size(625, 27);
56 | this.button1.TabIndex = 1;
57 | this.button1.Text = "Save Changes";
58 | this.button1.UseVisualStyleBackColor = true;
59 | this.button1.Click += new System.EventHandler(this.button1_Click);
60 | //
61 | // TextEditor
62 | //
63 | this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
64 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
65 | this.ClientSize = new System.Drawing.Size(625, 405);
66 | this.Controls.Add(this.rtb1);
67 | this.Controls.Add(this.button1);
68 | this.Font = new System.Drawing.Font("Courier New", 10F);
69 | this.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5);
70 | this.Name = "TextEditor";
71 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
72 | this.Text = "Text Editor";
73 | this.ResumeLayout(false);
74 |
75 | }
76 |
77 | #endregion
78 |
79 | public System.Windows.Forms.RichTextBox rtb1;
80 | private System.Windows.Forms.Button button1;
81 | }
82 | }
--------------------------------------------------------------------------------
/BFP4FExplorerWV/TextEditor.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Data;
5 | using System.Drawing;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using System.Windows.Forms;
10 |
11 | namespace BFP4FExplorerWV
12 | {
13 | public partial class TextEditor : Form
14 | {
15 | public bool _exitOk = false;
16 | public TextEditor()
17 | {
18 | InitializeComponent();
19 | }
20 |
21 | private void button1_Click(object sender, EventArgs e)
22 | {
23 | _exitOk = true;
24 | this.Close();
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/bin/x86/Release/BFP4F_Explorer_WV.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/bin/x86/Release/BFP4F_Explorer_WV.exe
--------------------------------------------------------------------------------
/BFP4FExplorerWV/bin/x86/Release/BFP4F_Explorer_WV.exe.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/BFP4FExplorerWV/bin/x86/Release/Be.Windows.Forms.HexBox.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/bin/x86/Release/Be.Windows.Forms.HexBox.dll
--------------------------------------------------------------------------------
/BFP4FExplorerWV/bin/x86/Release/SharpDX.D3DCompiler.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/bin/x86/Release/SharpDX.D3DCompiler.dll
--------------------------------------------------------------------------------
/BFP4FExplorerWV/bin/x86/Release/SharpDX.DXGI.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/bin/x86/Release/SharpDX.DXGI.dll
--------------------------------------------------------------------------------
/BFP4FExplorerWV/bin/x86/Release/SharpDX.Desktop.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/bin/x86/Release/SharpDX.Desktop.dll
--------------------------------------------------------------------------------
/BFP4FExplorerWV/bin/x86/Release/SharpDX.Direct2D1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/bin/x86/Release/SharpDX.Direct2D1.dll
--------------------------------------------------------------------------------
/BFP4FExplorerWV/bin/x86/Release/SharpDX.Direct3D11.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/bin/x86/Release/SharpDX.Direct3D11.dll
--------------------------------------------------------------------------------
/BFP4FExplorerWV/bin/x86/Release/SharpDX.Mathematics.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/bin/x86/Release/SharpDX.Mathematics.dll
--------------------------------------------------------------------------------
/BFP4FExplorerWV/bin/x86/Release/SharpDX.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/bin/x86/Release/SharpDX.dll
--------------------------------------------------------------------------------
/BFP4FExplorerWV/bin/x86/Release/config.txt:
--------------------------------------------------------------------------------
1 | D:\test\BFP4FServerWV.RC6\
--------------------------------------------------------------------------------
/BFP4FExplorerWV/bin/x86/Release/res/default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/bin/x86/Release/res/default.png
--------------------------------------------------------------------------------
/BFP4FExplorerWV/bin/x86/Release/texconv.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/bin/x86/Release/texconv.exe
--------------------------------------------------------------------------------
/BFP4FExplorerWV/dll/SharpDX.D3DCompiler.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/dll/SharpDX.D3DCompiler.dll
--------------------------------------------------------------------------------
/BFP4FExplorerWV/dll/SharpDX.D3DCompiler.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/dll/SharpDX.D3DCompiler.pdb
--------------------------------------------------------------------------------
/BFP4FExplorerWV/dll/SharpDX.DXGI.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/dll/SharpDX.DXGI.dll
--------------------------------------------------------------------------------
/BFP4FExplorerWV/dll/SharpDX.DXGI.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/dll/SharpDX.DXGI.pdb
--------------------------------------------------------------------------------
/BFP4FExplorerWV/dll/SharpDX.Desktop.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/dll/SharpDX.Desktop.dll
--------------------------------------------------------------------------------
/BFP4FExplorerWV/dll/SharpDX.Desktop.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/dll/SharpDX.Desktop.pdb
--------------------------------------------------------------------------------
/BFP4FExplorerWV/dll/SharpDX.Direct2D1.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/dll/SharpDX.Direct2D1.dll
--------------------------------------------------------------------------------
/BFP4FExplorerWV/dll/SharpDX.Direct2D1.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/dll/SharpDX.Direct2D1.pdb
--------------------------------------------------------------------------------
/BFP4FExplorerWV/dll/SharpDX.Direct3D11.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/dll/SharpDX.Direct3D11.dll
--------------------------------------------------------------------------------
/BFP4FExplorerWV/dll/SharpDX.Direct3D11.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/dll/SharpDX.Direct3D11.pdb
--------------------------------------------------------------------------------
/BFP4FExplorerWV/dll/SharpDX.Mathematics.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/dll/SharpDX.Mathematics.dll
--------------------------------------------------------------------------------
/BFP4FExplorerWV/dll/SharpDX.Mathematics.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/dll/SharpDX.Mathematics.pdb
--------------------------------------------------------------------------------
/BFP4FExplorerWV/dll/SharpDX.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/dll/SharpDX.dll
--------------------------------------------------------------------------------
/BFP4FExplorerWV/dll/SharpDX.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FExplorerWV/dll/SharpDX.pdb
--------------------------------------------------------------------------------
/BFP4FLauncherWV/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/BFP4FLauncherWV.csproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | de-DE
11 | false
12 |
13 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/Components/AsyncNotification/AsyncStats.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using BlazeLibWV;
7 | using System.Net.Sockets;
8 |
9 | namespace BFP4FLauncherWV
10 | {
11 | public static class AsyncStats
12 | {
13 | public static void GetStatsAsyncNotification(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
14 | {
15 | List input = Blaze.ReadPacketContent(p);
16 | string statSpace = ((Blaze.TdfString)input[2]).Value;
17 | long vid = ((Blaze.TdfInteger)input[7]).Value;
18 | long eid = ((List)((Blaze.TdfList)input[1]).List)[0];
19 | List Result = new List();
20 | Result.Add(Blaze.TdfString.Create("GRNM", statSpace));
21 | Result.Add(Blaze.TdfString.Create("KEY\0", "No_Scope_Defined"));
22 | Result.Add(Blaze.TdfInteger.Create("LAST", 1));
23 | List STS = new List();
24 | List STAT = new List();
25 | List e0 = new List();
26 | e0.Add(Blaze.TdfInteger.Create("EID\0", eid));
27 | e0.Add(Blaze.TdfDoubleVal.Create("ETYP", new Blaze.DoubleVal(30722, 1)));
28 | e0.Add(Blaze.TdfInteger.Create("POFF", 0));
29 | List values = new List();
30 | if (statSpace == "crit")
31 | values.AddRange(new string[] { pi.profile.level.ToString(),
32 | pi.profile.xp.ToString(),
33 | "10000" });
34 | else
35 | values.AddRange(new string[] { pi.profile.kit.ToString(),
36 | pi.profile.head.ToString(),
37 | pi.profile.face.ToString(),
38 | pi.profile.shirt.ToString()});
39 | e0.Add(Blaze.TdfList.Create("STAT", 1, values.Count, values));
40 | STAT.Add(Blaze.TdfStruct.Create("0", e0));
41 | STS.Add(Blaze.TdfList.Create("STAT", 3, STAT.Count, STAT));
42 | Result.Add(Blaze.TdfStruct.Create("STS\0", STS));
43 | Result.Add(Blaze.TdfInteger.Create("VID\0", vid));
44 | byte[] buff = Blaze.CreatePacket(7, 0x32, 0, 0x2000, 0, Result);
45 | ns.Write(buff, 0, buff.Length);
46 | ns.Flush();
47 | BlazeServer.Log("[CLNT] #" + pi.userId + " [0007:0032] GetStatsAsyncNotification", System.Drawing.Color.Black);
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/Components/AsyncNotification/AsyncUserSessions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using BlazeLibWV;
7 | using System.Net.Sockets;
8 |
9 | namespace BFP4FLauncherWV
10 | {
11 | public static class AsyncUserSessions
12 | {
13 | public static void UserSessionExtendedDataUpdateNotification(PlayerInfo src, Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
14 | {
15 | List Result = new List();
16 | Result.Add(BlazeHelper.CreateUserDataStruct(pi));
17 | Result.Add(Blaze.TdfInteger.Create("USID", pi.userId));
18 | byte[] buff = Blaze.CreatePacket(0x7802, 1, 0, 0x2000, 0, Result);
19 | ns.Write(buff, 0, buff.Length);
20 | ns.Flush();
21 | BlazeServer.Log("[CLNT] #" + src.userId + " [7802:0001] UserSessionExtendedDataUpdateNotification", System.Drawing.Color.Black);
22 | }
23 |
24 | public static void NotifyUserAdded(PlayerInfo src, Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
25 | {
26 | List result = new List();
27 | result.Add(BlazeHelper.CreateUserDataStruct(pi));
28 | result.Add(BlazeHelper.CreateUserStruct(pi));
29 | byte[] buff = Blaze.CreatePacket(0x7802, 0x2, 0, 0x2000, 0, result);
30 | ns.Write(buff, 0, buff.Length);
31 | ns.Flush();
32 | BlazeServer.Log("[CLNT] #" + src.userId + " [7802:0001] NotifyUserAdded", System.Drawing.Color.Black);
33 | }
34 |
35 | public static void NotifyUserRemoved(PlayerInfo src, Blaze.Packet p, long pid, NetworkStream ns)
36 | {
37 | List result = new List();
38 | result.Add(Blaze.TdfInteger.Create("BUID", pid));
39 | byte[] buff = Blaze.CreatePacket(0x7802, 0x3, 0, 0x2000, 0, result);
40 | ns.Write(buff, 0, buff.Length);
41 | ns.Flush();
42 | BlazeServer.Log("[CLNT] #" + src.userId + " [7802:0001] NotifyUserRemoved", System.Drawing.Color.Black);
43 | }
44 |
45 | public static void NotifyUserStatus(PlayerInfo src, Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
46 | {
47 | List result = new List();
48 | result.Add(Blaze.TdfInteger.Create("FLGS", 3));
49 | result.Add(Blaze.TdfInteger.Create("ID\0\0", pi.userId));
50 | byte[] buff = Blaze.CreatePacket(0x7802, 0x5, 0, 0x2000, 0, result);
51 | ns.Write(buff, 0, buff.Length);
52 | ns.Flush();
53 | BlazeServer.Log("[CLNT] #" + src.userId + " [7802:0001] NotifyUserStatus", System.Drawing.Color.Black);
54 | }
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/Components/StatsComponent.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using BlazeLibWV;
8 | using System.Net.Sockets;
9 |
10 |
11 | namespace BFP4FLauncherWV
12 | {
13 | public static class StatsComponent
14 | {
15 |
16 | public static void HandlePacket(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
17 | {
18 | switch (p.Command)
19 | {
20 | case 0x4:
21 | GetStatGroup(p, pi, ns);
22 | break;
23 | case 0xF:
24 | GetKeyScopesMap(p, pi, ns);
25 | break;
26 | case 0x10:
27 | GetStatsByGroupAsync(p, pi, ns);
28 | break;
29 | }
30 | }
31 |
32 | public static void GetKeyScopesMap(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
33 | {
34 | List Result = new List();
35 | List l1 = new List() { "ldgy" };
36 | List l2 = new List();
37 | List l3 = new List();
38 | l3.Add(Blaze.TdfInteger.Create("AGKY", 0));
39 | l3.Add(Blaze.TdfInteger.Create("ENAG", 0));
40 | l3.Add(Blaze.TdfDoubleList.Create("KSVL", 0, 0, new List() { 0 }, new List() { 15 }, 1));
41 | l2.Add(Blaze.TdfStruct.Create("0", l3));
42 | Result.Add(Blaze.TdfDoubleList.Create("KSIT", 1, 3, l1, l2, 1));
43 | byte[] buff = Blaze.CreatePacket(p.Component, p.Command, 0, 0x1000, p.ID, Result);
44 | ns.Write(buff, 0, buff.Length);
45 | ns.Flush();
46 | }
47 |
48 | public static void GetStatGroup(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
49 | {
50 | List input = Blaze.ReadPacketContent(p);
51 | string which = ((Blaze.TdfString)input[0]).Value;
52 | List Result = new List();
53 | Result.Add(Blaze.TdfString.Create("CNAM", which));
54 | if (which == "const")
55 | {
56 | Result.Add(Blaze.TdfString.Create("DESC", "Constant stats"));
57 | Result.Add(Blaze.TdfDoubleVal.Create("ETYP", new Blaze.DoubleVal(30722, 1)));
58 | Result.Add(Blaze.TdfString.Create("META", ""));
59 | Result.Add(Blaze.TdfString.Create("NAME", "const"));
60 | List STAT = new List();
61 | STAT.Add(BlazeHelper.MakeStatGroupEntry(0, "const", "0", "CONST_KIT_LONG", "kit", "CONST_KIT"));
62 | STAT.Add(BlazeHelper.MakeStatGroupEntry(1, "const", "2", "CONST_HEAD_LONG", "head", "CONST_HEAD"));
63 | STAT.Add(BlazeHelper.MakeStatGroupEntry(2, "const", "0", "CONST_HAIR_LONG", "hair", "CONST_HAIR"));
64 | STAT.Add(BlazeHelper.MakeStatGroupEntry(3, "const", "0", "CONST_FACIAL_FEATURE_LONG", "facialFeature", "CONST_FACIAL_FEATURE"));
65 | Result.Add(Blaze.TdfList.Create("STAT", 3, 4, STAT));
66 | }
67 | if (which == "crit")
68 | {
69 | Result.Add(Blaze.TdfString.Create("DESC", "Critical stats"));
70 | Result.Add(Blaze.TdfDoubleVal.Create("ETYP", new Blaze.DoubleVal(30722, 1)));
71 | Result.Add(Blaze.TdfString.Create("META", ""));
72 | Result.Add(Blaze.TdfString.Create("NAME", "crit"));
73 | List STAT = new List();
74 | STAT.Add(BlazeHelper.MakeStatGroupEntry(0, "crit", pi.profile.level.ToString(), "CRIT_LEVEL_LONG", "level", "CRIT_LEVEL"));
75 | STAT.Add(BlazeHelper.MakeStatGroupEntry(1, "crit", pi.profile.xp.ToString(), "CRIT_XP_LONG", "xp", "CRIT_XP"));
76 | STAT.Add(BlazeHelper.MakeStatGroupEntry(2, "crit", "10000", "CRIT_ELO_LONG", "elo", "CRIT_ELO"));
77 | Result.Add(Blaze.TdfList.Create("STAT", 3, 3, STAT));
78 | }
79 | byte[] buff = Blaze.CreatePacket(p.Component, p.Command, 0, 0x1000, p.ID, Result);
80 | ns.Write(buff, 0, buff.Length);
81 | ns.Flush();
82 | }
83 |
84 | public static void GetStatsByGroupAsync(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
85 | {
86 | byte[] buff = Blaze.CreatePacket(p.Component, p.Command, 0, 0x1000, p.ID, new List());
87 | ns.Write(buff, 0, buff.Length);
88 | ns.Flush();
89 | AsyncStats.GetStatsAsyncNotification(p, pi, ns);
90 | }
91 | }
92 | }
93 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/Components/UserSessionComponent.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using BlazeLibWV;
7 | using System.Net.Sockets;
8 |
9 | namespace BFP4FLauncherWV
10 | {
11 | public static class UserSessionComponent
12 | {
13 |
14 | public static void HandlePacket(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
15 | {
16 | switch (p.Command)
17 | {
18 | case 0xC:
19 | LookUpUser(p, pi, ns);
20 | break;
21 | case 0x14:
22 | UpdateNetworkInfo(p, pi, ns);
23 | break;
24 | }
25 | }
26 |
27 | public static void UpdateNetworkInfo(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
28 | {
29 | List input = Blaze.ReadPacketContent(p);
30 | Blaze.TdfUnion addr = (Blaze.TdfUnion)input[0];
31 | Blaze.TdfStruct valu = (Blaze.TdfStruct)addr.UnionContent;
32 | Blaze.TdfStruct exip = (Blaze.TdfStruct)valu.Values[0];
33 | Blaze.TdfStruct inip = (Blaze.TdfStruct)valu.Values[1];
34 | pi.inIp = ((Blaze.TdfInteger)inip.Values[0]).Value;
35 | pi.exIp = ((Blaze.TdfInteger)exip.Values[0]).Value;
36 | pi.exPort = pi.inPort = (uint)((Blaze.TdfInteger)inip.Values[1]).Value;
37 | Blaze.TdfStruct nqos = (Blaze.TdfStruct)input[2];
38 | pi.nat = ((Blaze.TdfInteger)nqos.Values[1]).Value;
39 | byte[] buff = Blaze.CreatePacket(p.Component, p.Command, 0, 0x1000, p.ID, new List());
40 | ns.Write(buff, 0, buff.Length);
41 | ns.Flush();
42 | AsyncUserSessions.UserSessionExtendedDataUpdateNotification(pi, p, pi, ns);
43 | }
44 |
45 | public static void LookUpUser(Blaze.Packet p, PlayerInfo pi, NetworkStream ns)
46 | {
47 | List result = new List();
48 | result.Add(BlazeHelper.CreateUserDataStruct(pi, "EDAT"));
49 | result.Add(Blaze.TdfInteger.Create("FLGS", 3));
50 | result.Add(BlazeHelper.CreateUserStruct(pi));
51 | byte[] buff = Blaze.CreatePacket(p.Component, p.Command, 0, 0x1000, p.ID, result);
52 | ns.Write(buff, 0, buff.Length);
53 | ns.Flush();
54 | }
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/Form1.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Data;
5 | using System.Drawing;
6 | using System.IO;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 | using System.Windows.Forms;
11 |
12 | namespace BFP4FLauncherWV
13 | {
14 | public partial class Form1 : Form
15 | {
16 | public Form1()
17 | {
18 | InitializeComponent();
19 | }
20 |
21 | private void Form1_Load(object sender, EventArgs e)
22 | {
23 | tabControl1.SelectTab("TabPage2");
24 | this.Text += " - Build " + Resources.Resource1.BuildDate;
25 | RefreshProfiles();
26 | }
27 |
28 | private void RefreshProfiles()
29 | {
30 | Profiles.Refresh();
31 | toolStripComboBox1.Items.Clear();
32 | foreach (Profile p in Profiles.profiles)
33 | toolStripComboBox1.Items.Add(p.id + ": " + p.name);
34 | }
35 |
36 | private void launchToolStripMenuItem_Click_1(object sender, EventArgs e)
37 | {
38 | string args = rtb1.Text.Replace("\r", "").Replace("\n", " ");
39 | while (args.Contains(" "))
40 | args = args.Replace(" ", " ");
41 | Helper.RunShell("bfp4f.exe", args);
42 | }
43 |
44 | private void toolStripMenuItem1_Click(object sender, EventArgs e)
45 | {
46 | toolStripMenuItem1.Enabled =
47 | launchStandaloneToolStripMenuItem.Enabled = false;
48 | Start();
49 | }
50 |
51 | private void Form1_FormClosing(object sender, FormClosingEventArgs e)
52 | {
53 | RedirectorServer.Stop();
54 | BlazeServer.Stop();
55 | MagmaServer.Stop();
56 | Webserver.Stop();
57 | QOSServer.Stop();
58 | }
59 |
60 | private void launchStandaloneToolStripMenuItem_Click(object sender, EventArgs e)
61 | {
62 | toolStripMenuItem1.Enabled =
63 | launchStandaloneToolStripMenuItem.Enabled = false;
64 | RedirectorServer.targetPort = 30001;
65 | Start();
66 | }
67 |
68 | private void Start()
69 | {
70 | BackendLog.Clear();
71 | ProviderInfo.backendIP = toolStripTextBox3.Text;
72 | QOSServer.box =
73 | RedirectorServer.box =
74 | BlazeServer.box = rtb2;
75 | Webserver.box = rtb5;
76 | MagmaServer.box = rtb4;
77 | RedirectorServer.useSSL = checkBox1.Checked;
78 | RedirectorServer.Start();
79 | BlazeServer.Start();
80 | MagmaServer.Start();
81 | Webserver.Start();
82 | QOSServer.Start();
83 | }
84 |
85 | private void toolStripMenuItem2_Click(object sender, EventArgs e)
86 | {
87 | string args = rtb3.Text.Replace("\r", "").Replace("\n", " ");
88 | while (args.Contains(" "))
89 | args = args.Replace(" ", " ");
90 | Helper.RunShell("bfp4f_w32ded.exe", args);
91 | }
92 |
93 | private void killRunningProcessesToolStripMenuItem_Click(object sender, EventArgs e)
94 | {
95 | Helper.KillRunningProcesses();
96 | }
97 |
98 | private void toolStripButton5_Click(object sender, EventArgs e)
99 | {
100 | int n = toolStripComboBox1.SelectedIndex;
101 | if (n == -1)
102 | return;
103 | Profile p = Profiles.profiles[n];
104 | string args = Resources.Resource1.client_startup;
105 | args = args.Replace("#SESSION#", p.id.ToString());
106 | args = args.Replace("#PLAYER#", p.name);
107 | args = args.Replace("#IP#", toolStripTextBox4.Text);
108 | Helper.RunShell("bfp4f.exe", args);
109 | }
110 |
111 | private void toolStripMenuItem3_Click(object sender, EventArgs e)
112 | {
113 | Form3 f = new Form3();
114 | f.ShowDialog();
115 | RefreshProfiles();
116 | }
117 | }
118 | }
119 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/Form3.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Collections.Generic;
4 | using System.ComponentModel;
5 | using System.Data;
6 | using System.Drawing;
7 | using System.Linq;
8 | using System.Text;
9 | using System.Threading.Tasks;
10 | using System.Windows.Forms;
11 |
12 | namespace BFP4FLauncherWV
13 | {
14 | public partial class Form3 : Form
15 | {
16 | public Form3()
17 | {
18 | InitializeComponent();
19 | }
20 |
21 | private void Form3_Load(object sender, EventArgs e)
22 | {
23 | RefreshProfiles();
24 | }
25 |
26 | private void RefreshProfiles()
27 | {
28 | Profiles.Refresh();
29 | listBox1.Items.Clear();
30 | foreach (Profile p in Profiles.profiles)
31 | listBox1.Items.Add(p.ToString());
32 | }
33 |
34 | private void toolStripButton1_Click(object sender, EventArgs e)
35 | {
36 | string name = toolStripTextBox1.Text;
37 | Profiles.Refresh();
38 | Profiles.Create(name);
39 | Profiles.Refresh();
40 | RefreshProfiles();
41 | }
42 |
43 | private void toolStripButton2_Click(object sender, EventArgs e)
44 | {
45 | int n = listBox1.SelectedIndex;
46 | if (n == -1)
47 | return;
48 | Profile p = Profiles.profiles[n];
49 | string path = Profiles.getProfilePath(p.id);
50 | if (File.Exists(path))
51 | File.Delete(path);
52 | Profiles.Refresh();
53 | RefreshProfiles();
54 | }
55 |
56 | private void toolStripButton3_Click(object sender, EventArgs e)
57 | {
58 | RefreshProfiles();
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/Helper.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Net.Security;
6 | using System.Net.Sockets;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using System.Diagnostics;
10 | using System.Windows.Forms;
11 |
12 | namespace BFP4FLauncherWV
13 | {
14 | public static class Helper
15 | {
16 | public static List ConvertStringList(string data)
17 | {
18 | List res = new List();
19 | string t = data.Replace("{", "");
20 | string[] t2 = t.Split('}');
21 | foreach (string line in t2)
22 | if (line.Trim() != "")
23 | res.Add(line.Trim());
24 | return res;
25 | }
26 | public static void ConvertDoubleStringList(string data, out List list1, out List list2)
27 | {
28 | List res1 = new List();
29 | List res2 = new List();
30 | string t = data.Replace("{", "");
31 | string[] t2 = t.Split('}');
32 | foreach (string line in t2)
33 | if (line.Trim() != "")
34 | {
35 | string[] t3 = line.Trim().Split(';');
36 | res1.Add(t3[0].Trim());
37 | res2.Add(t3[1].Trim());
38 | }
39 | list1 = res1;
40 | list2 = res2;
41 | }
42 | public static byte[] ReadContentSSL(SslStream sslStream)
43 | {
44 | MemoryStream res = new MemoryStream();
45 | byte[] buff = new byte[0x10000];
46 | sslStream.ReadTimeout = 100;
47 | int bytesRead;
48 | try
49 | {
50 | while ((bytesRead = sslStream.Read(buff, 0, 0x10000)) > 0)
51 | res.Write(buff, 0, bytesRead);
52 | }
53 | catch { }
54 | sslStream.Flush();
55 | return res.ToArray();
56 | }
57 | public static byte[] ReadContentTCP(NetworkStream Stream)
58 | {
59 | MemoryStream res = new MemoryStream();
60 | byte[] buff = new byte[0x10000];
61 | Stream.ReadTimeout = 100;
62 | int bytesRead;
63 | try
64 | {
65 | while ((bytesRead = Stream.Read(buff, 0, 0x10000)) > 0)
66 | res.Write(buff, 0, bytesRead);
67 | }
68 | catch { }
69 | Stream.Flush();
70 | return res.ToArray();
71 | }
72 | public static void RunShell(string file, string command)
73 | {
74 | Process process = new System.Diagnostics.Process();
75 | ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
76 | startInfo.FileName = file;
77 | startInfo.Arguments = command;
78 | process.StartInfo = startInfo;
79 | process.Start();
80 | }
81 | public static void KillRunningProcesses()
82 | {
83 | int countClient = 0, countServer = 0;
84 | foreach (var process in Process.GetProcessesByName("bfp4f"))
85 | {
86 | process.Kill();
87 | countClient++;
88 | }
89 | foreach (var process in Process.GetProcessesByName("bfp4f_w32ded"))
90 | {
91 | process.Kill();
92 | countServer++;
93 | }
94 | MessageBox.Show("Killed\nClient: " + countClient + "\nServer: " + countServer + "\nProcesses");
95 | }
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/Info/GameInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using BlazeLibWV;
7 |
8 | namespace BFP4FLauncherWV
9 | {
10 | public class GameInfo
11 | {
12 | public int id;
13 | public bool isRunning;
14 |
15 | public Blaze.TdfDoubleList ATTR;
16 | public uint GSTA;
17 | public long GSET;
18 | public long VOIP;
19 | public string VSTR;
20 | public string GNAM;
21 | public int[] slotUse;
22 | public PlayerInfo[] players;
23 |
24 | public GameInfo()
25 | {
26 | players = new PlayerInfo[32];
27 | slotUse = new int[32];
28 | for (int i = 0; i < 32; i++)
29 | slotUse[i] = -1;
30 | }
31 |
32 | public byte getNextSlot()
33 | {
34 | for (byte i = 0; i < 32; i++)
35 | if (slotUse[i] == -1)
36 | return i;
37 | return 255;
38 | }
39 |
40 | public void setNextSlot(int id)
41 | {
42 | for (byte i = 0; i < 32; i++)
43 | if (slotUse[i] == -1)
44 | {
45 | slotUse[i] = id;
46 | return;
47 | }
48 | }
49 |
50 | public void removePlayer(int id)
51 | {
52 | for (byte i = 0; i < 32; i++)
53 | if (slotUse[i] == id)
54 | {
55 | slotUse[i] = -1;
56 | players[i] = null;
57 | return;
58 | }
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/Info/PlayerInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Net.Sockets;
7 | using System.Diagnostics;
8 |
9 | namespace BFP4FLauncherWV
10 | {
11 | public class PlayerInfo
12 | {
13 | public string version;
14 | public long userId;
15 | public long exIp, exPort;
16 | public long inIp, inPort;
17 | public long nat = 0;
18 | public long loc;
19 | public long slot;
20 | public long stat;
21 | public long cntx;
22 | public bool isServer;
23 | public GameInfo game;
24 | public NetworkStream ns;
25 | public Profile profile;
26 | public Stopwatch timeout;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/Info/ProviderInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace BFP4FLauncherWV
8 | {
9 | public static class ProviderInfo
10 | {
11 | public static string backendIP = "127.0.0.1";
12 | public static string QOS_IP = "gossjcprod-qos01.ea.com";
13 | public static int QOS_Port = 17502;
14 | public static string QOS_Name = "ea-sjc-prod";
15 | public static string QOS_SName = "sjc";
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/Profile.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace BFP4FLauncherWV
9 | {
10 | public class Profile
11 | {
12 | public string _raw;
13 | public string name;
14 | public long id;
15 | public long level = 1;
16 | public long xp = 806;
17 | public long kit = 1;
18 | public long head = 2;
19 | public long face = 7;
20 | public long shirt = 9;
21 | public static Profile Load(string filename)
22 | {
23 | string[] lines = File.ReadAllLines(filename);
24 | Profile p = new Profile();
25 | p._raw = File.ReadAllText(filename);
26 | foreach (string line in lines)
27 | {
28 | string[] parts = line.Split('=');
29 | if (parts.Length != 2) continue;
30 | string what = parts[0].Trim().ToLower();
31 | switch (what)
32 | {
33 | case "name":
34 | p.name = parts[1].Trim();
35 | break;
36 | case "id":
37 | p.id = Convert.ToInt32(parts[1].Trim());
38 | break;
39 | case "level":
40 | p.level = Convert.ToInt32(parts[1].Trim());
41 | break;
42 | case "xp":
43 | p.xp = Convert.ToInt32(parts[1].Trim());
44 | break;
45 | case "kit":
46 | p.kit = Convert.ToInt32(parts[1].Trim());
47 | break;
48 | case "head":
49 | p.head = Convert.ToInt32(parts[1].Trim());
50 | break;
51 | case "face":
52 | p.face = Convert.ToInt32(parts[1].Trim());
53 | break;
54 | case "shirt":
55 | p.shirt = Convert.ToInt32(parts[1].Trim());
56 | break;
57 | }
58 | }
59 | if (p.name == null || p.id == 0)
60 | return null;
61 | return p;
62 | }
63 |
64 | public override string ToString()
65 | {
66 | StringBuilder sb = new StringBuilder();
67 | sb.Append("ID = " + id + ", ");
68 | sb.Append("Name = " + name + ", ");
69 | sb.Append("Level = " + level + ", ");
70 | sb.Append("XP = " + xp + ", ");
71 | sb.Append("Kit = " + kit + ", ");
72 | sb.Append("Head = " + head + ", ");
73 | sb.Append("Face = " + face + ", ");
74 | sb.Append("Shirt = " + shirt);
75 | return sb.ToString();
76 | }
77 | }
78 |
79 | public static class Profiles
80 | {
81 | public static List profiles = new List();
82 | public static void Refresh()
83 | {
84 | profiles = new List();
85 | if (!Directory.Exists("backend"))
86 | Directory.CreateDirectory("backend");
87 | if (!Directory.Exists("backend\\profiles"))
88 | Directory.CreateDirectory("backend\\profiles");
89 | string[] files = Directory.GetFiles("backend\\profiles\\", "*.txt");
90 | foreach (string file in files)
91 | {
92 | Profile p = Profile.Load(file);
93 | if (p != null)
94 | profiles.Add(p);
95 | }
96 | BlazeServer.Log("[MAIN] Loaded " + profiles.Count + " player profiles");
97 | }
98 |
99 | public static string getProfilePath(long id)
100 | {
101 | return "backend\\profiles\\" + id.ToString("X8") + "_profile.txt";
102 | }
103 |
104 | public static Profile Create(string name)
105 | {
106 | long id = 1000;
107 | while (File.Exists(getProfilePath(id)))
108 | id++;
109 | return Create(name, id);
110 | }
111 |
112 | public static Profile Create(string name, long id)
113 | {
114 | string profileContent = "name=" + name + "\nid=" + id + "\nlevel=1\nxp=806\nkit=1\nhead=2\nface=7\nshirt=9";
115 | string filename = getProfilePath(id);
116 | File.WriteAllText(filename, profileContent, Encoding.Unicode);
117 | return Profile.Load(filename);
118 | }
119 | }
120 | }
121 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using System.Windows.Forms;
6 |
7 | namespace BFP4FLauncherWV
8 | {
9 | static class Program
10 | {
11 | ///
12 | /// Der Haupteinstiegspunkt für die Anwendung.
13 | ///
14 | [STAThread]
15 | static void Main()
16 | {
17 | Application.EnableVisualStyles();
18 | Application.SetCompatibleTextRenderingDefault(false);
19 | Application.Run(new Form2());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // Allgemeine Informationen über eine Assembly werden über die folgenden
6 | // Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
7 | // die mit einer Assembly verknüpft sind.
8 | [assembly: AssemblyTitle("BFP4FLauncherWV")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("BFP4FLauncherWV")]
13 | [assembly: AssemblyCopyright("Copyright © 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar
18 | // für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von
19 | // COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest.
20 | [assembly: ComVisible(false)]
21 |
22 | // Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
23 | [assembly: Guid("e219b5b8-0d8f-4cfd-93e4-3242b8d490cc")]
24 |
25 | // Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
26 | //
27 | // Hauptversion
28 | // Nebenversion
29 | // Buildnummer
30 | // Revision
31 | //
32 | // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
33 | // übernehmen, indem Sie "*" eingeben:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace BFP4FLauncherWV.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/Resources/BuildDate.txt:
--------------------------------------------------------------------------------
1 | 11.03.2019_2049
2 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/Resources/redi.pfx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FLauncherWV/Resources/redi.pfx
--------------------------------------------------------------------------------
/BFP4FLauncherWV/Server/BackendLog.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace BFP4FLauncherWV
9 | {
10 | public static class BackendLog
11 | {
12 | public static string logFile = "BackendLog.txt";
13 | public static void Clear()
14 | {
15 | if (File.Exists(logFile))
16 | File.Delete(logFile);
17 | }
18 |
19 | public static void Write(string s)
20 | {
21 | File.AppendAllText(logFile, s);
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/bin/x86/Release/BFP4FLauncherWV.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FLauncherWV/bin/x86/Release/BFP4FLauncherWV.exe
--------------------------------------------------------------------------------
/BFP4FLauncherWV/bin/x86/Release/BFP4FLauncherWV.exe.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/BFP4FLauncherWV/bin/x86/Release/BlazeLibWV.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FLauncherWV/bin/x86/Release/BlazeLibWV.dll
--------------------------------------------------------------------------------
/BFP4FToolsWV.v11.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BFP4FToolsWV.v11.suo
--------------------------------------------------------------------------------
/Be.Windows.Forms.HexBox/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Reflection;
3 | using System.Runtime.CompilerServices;
4 | using System.Security.Permissions;
5 | using System.Runtime.InteropServices;
6 |
7 | //
8 | // General Information about an assembly is controlled through the following
9 | // set of attributes. Change these attribute values to modify the information
10 | // associated with an assembly.
11 | //
12 | [assembly: AssemblyTitle("Be.Windows.Forms.HexBox")]
13 | [assembly: AssemblyDescription("hex edit control (C# DOTNET)")]
14 | [assembly: AssemblyConfiguration("")]
15 | [assembly: AssemblyCompany("Be")]
16 | [assembly: AssemblyProduct("Be.Windows.Forms.HexBox")]
17 | [assembly: AssemblyCopyright("")]
18 | [assembly: AssemblyTrademark("")]
19 | [assembly: AssemblyCulture("")]
20 |
21 | //
22 | // Version information for an assembly consists of the following four values:
23 | //
24 | // Major Version
25 | // Minor Version
26 | // Build Number
27 | // Revision
28 | //
29 | // You can specify all the values or you can default the Revision and Build Numbers
30 | // by using the '*' as shown below:
31 |
32 | [assembly: AssemblyVersion("1.6.0.*")]
33 |
34 | //
35 | // In order to sign your assembly you must specify a key to use. Refer to the
36 | // Microsoft .NET Framework documentation for more information on assembly signing.
37 | //
38 | // Use the attributes below to control which key is used for signing.
39 | //
40 | // Notes:
41 | // (*) If no key is specified, the assembly is not signed.
42 | // (*) KeyName refers to a key that has been installed in the Crypto Service
43 | // Provider (CSP) on your machine. KeyFile refers to a file which contains
44 | // a key.
45 | // (*) If the KeyFile and the KeyName values are both specified, the
46 | // following processing occurs:
47 | // (1) If the KeyName can be found in the CSP, that key is used.
48 | // (2) If the KeyName does not exist and the KeyFile does exist, the key
49 | // in the KeyFile is installed into the CSP and used.
50 | // (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
51 | // When specifying the KeyFile, the location of the KeyFile should be
52 | // relative to the project output directory which is
53 | // %Project Directory%\obj\. For example, if your KeyFile is
54 | // located in the project directory, you would specify the AssemblyKeyFile
55 | // attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
56 | // (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
57 | // documentation for more information on this.
58 | //
59 | [assembly: AssemblyDelaySign(false)]
60 |
61 | //[assembly: AssemblyKeyFile("../../HexBox.snk")]
62 | //[assembly: AssemblyKeyName("")]
63 |
64 | //[assembly:IsolatedStorageFilePermission(SecurityAction.RequestRefuse, UserQuota=1048576)]
65 | //[assembly:SecurityPermission(SecurityAction.RequestRefuse, UnmanagedCode=true)]
66 | //[assembly:FileIOPermission(SecurityAction.RequestOptional, Unrestricted=true)]
67 |
68 | [assembly:CLSCompliant(true)]
69 |
70 | [assembly:ComVisible(false)]
--------------------------------------------------------------------------------
/Be.Windows.Forms.HexBox/ByteCharConverters.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Be.Windows.Forms
6 | {
7 | ///
8 | /// The interface for objects that can translate between characters and bytes.
9 | ///
10 | public interface IByteCharConverter
11 | {
12 | ///
13 | /// Returns the character to display for the byte passed across.
14 | ///
15 | ///
16 | ///
17 | char ToChar(byte b);
18 |
19 | ///
20 | /// Returns the byte to use when the character passed across is entered during editing.
21 | ///
22 | ///
23 | ///
24 | byte ToByte(char c);
25 | }
26 |
27 | ///
28 | /// The default implementation.
29 | ///
30 | public class DefaultByteCharConverter : IByteCharConverter
31 | {
32 | ///
33 | /// Returns the character to display for the byte passed across.
34 | ///
35 | ///
36 | ///
37 | public virtual char ToChar(byte b)
38 | {
39 | return b > 0x1F && !(b > 0x7E && b < 0xA0) ? (char)b : '.';
40 | }
41 |
42 | ///
43 | /// Returns the byte to use for the character passed across.
44 | ///
45 | ///
46 | ///
47 | public virtual byte ToByte(char c)
48 | {
49 | return (byte)c;
50 | }
51 |
52 | ///
53 | /// Returns a description of the byte char provider.
54 | ///
55 | ///
56 | public override string ToString()
57 | {
58 | return "ANSI (Default)";
59 | }
60 | }
61 |
62 | ///
63 | /// A byte char provider that can translate bytes encoded in codepage 500 EBCDIC
64 | ///
65 | public class EbcdicByteCharProvider : IByteCharConverter
66 | {
67 | ///
68 | /// The IBM EBCDIC code page 500 encoding. Note that this is not always supported by .NET,
69 | /// the underlying platform has to provide support for it.
70 | ///
71 | private Encoding _ebcdicEncoding = Encoding.GetEncoding(500);
72 |
73 | ///
74 | /// Returns the EBCDIC character corresponding to the byte passed across.
75 | ///
76 | ///
77 | ///
78 | public virtual char ToChar(byte b)
79 | {
80 | string encoded = _ebcdicEncoding.GetString(new byte[] { b });
81 | return encoded.Length > 0 ? encoded[0] : '.';
82 | }
83 |
84 | ///
85 | /// Returns the byte corresponding to the EBCDIC character passed across.
86 | ///
87 | ///
88 | ///
89 | public virtual byte ToByte(char c)
90 | {
91 | byte[] decoded = _ebcdicEncoding.GetBytes(new char[] { c });
92 | return decoded.Length > 0 ? decoded[0] : (byte)0;
93 | }
94 |
95 | ///
96 | /// Returns a description of the byte char provider.
97 | ///
98 | ///
99 | public override string ToString()
100 | {
101 | return "EBCDIC (Code Page 500)";
102 | }
103 | }
104 | }
105 |
--------------------------------------------------------------------------------
/Be.Windows.Forms.HexBox/ByteCollection.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | using System.Collections;
4 |
5 | namespace Be.Windows.Forms
6 | {
7 | ///
8 | /// Represents a collection of bytes.
9 | ///
10 | public class ByteCollection : CollectionBase
11 | {
12 | ///
13 | /// Initializes a new instance of ByteCollection class.
14 | ///
15 | public ByteCollection() { }
16 |
17 | ///
18 | /// Initializes a new instance of ByteCollection class.
19 | ///
20 | /// an array of bytes to add to collection
21 | public ByteCollection(byte[] bs)
22 | { AddRange(bs); }
23 |
24 | ///
25 | /// Gets or sets the value of a byte
26 | ///
27 | public byte this[int index]
28 | {
29 | get { return (byte)List[index]; }
30 | set { List[index] = value; }
31 | }
32 |
33 | ///
34 | /// Adds a byte into the collection.
35 | ///
36 | /// the byte to add
37 | public void Add(byte b)
38 | { List.Add(b); }
39 |
40 | ///
41 | /// Adds a range of bytes to the collection.
42 | ///
43 | /// the bytes to add
44 | public void AddRange(byte[] bs)
45 | { InnerList.AddRange(bs); }
46 |
47 | ///
48 | /// Removes a byte from the collection.
49 | ///
50 | /// the byte to remove
51 | public void Remove(byte b)
52 | { List.Remove(b); }
53 |
54 | ///
55 | /// Removes a range of bytes from the collection.
56 | ///
57 | /// the index of the start byte
58 | /// the count of the bytes to remove
59 | public void RemoveRange(int index, int count)
60 | { InnerList.RemoveRange(index, count); }
61 |
62 | ///
63 | /// Inserts a range of bytes to the collection.
64 | ///
65 | /// the index of start byte
66 | /// an array of bytes to insert
67 | public void InsertRange(int index, byte[] bs)
68 | { InnerList.InsertRange(index, bs); }
69 |
70 | ///
71 | /// Gets all bytes in the array
72 | ///
73 | /// an array of bytes.
74 | public byte[] GetBytes()
75 | {
76 | byte[] bytes = new byte[Count];
77 | InnerList.CopyTo(0, bytes, 0, bytes.Length);
78 | return bytes;
79 | }
80 |
81 | ///
82 | /// Inserts a byte to the collection.
83 | ///
84 | /// the index
85 | /// a byte to insert
86 | public void Insert(int index, byte b)
87 | {
88 | InnerList.Insert(index, b);
89 | }
90 |
91 | ///
92 | /// Returns the index of the given byte.
93 | ///
94 | public int IndexOf(byte b)
95 | {
96 | return InnerList.IndexOf(b);
97 | }
98 |
99 | ///
100 | /// Returns true, if the byte exists in the collection.
101 | ///
102 | public bool Contains(byte b)
103 | {
104 | return InnerList.Contains(b);
105 | }
106 |
107 | ///
108 | /// Copies the content of the collection into the given array.
109 | ///
110 | public void CopyTo(byte[] bs, int index)
111 | {
112 | InnerList.CopyTo(bs, index);
113 | }
114 |
115 | ///
116 | /// Copies the content of the collection into an array.
117 | ///
118 | /// the array containing all bytes.
119 | public byte[] ToArray()
120 | {
121 | byte[] data = new byte[this.Count];
122 | this.CopyTo(data, 0);
123 | return data;
124 | }
125 |
126 | }
127 | }
128 |
--------------------------------------------------------------------------------
/Be.Windows.Forms.HexBox/BytePositionInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Be.Windows.Forms
6 | {
7 | ///
8 | /// Represents a position in the HexBox control
9 | ///
10 | struct BytePositionInfo
11 | {
12 | public BytePositionInfo(long index, int characterPosition)
13 | {
14 | _index = index;
15 | _characterPosition = characterPosition;
16 | }
17 |
18 | public int CharacterPosition
19 | {
20 | get { return _characterPosition; }
21 | } int _characterPosition;
22 |
23 | public long Index
24 | {
25 | get { return _index; }
26 | } long _index;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/Be.Windows.Forms.HexBox/DataBlock.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Be.Windows.Forms
4 | {
5 | internal abstract class DataBlock
6 | {
7 | internal DataMap _map;
8 | internal DataBlock _nextBlock;
9 | internal DataBlock _previousBlock;
10 |
11 | public abstract long Length
12 | {
13 | get;
14 | }
15 |
16 | public DataMap Map
17 | {
18 | get
19 | {
20 | return _map;
21 | }
22 | }
23 |
24 | public DataBlock NextBlock
25 | {
26 | get
27 | {
28 | return _nextBlock;
29 | }
30 | }
31 |
32 | public DataBlock PreviousBlock
33 | {
34 | get
35 | {
36 | return _previousBlock;
37 | }
38 | }
39 |
40 | public abstract void RemoveBytes(long position, long count);
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/Be.Windows.Forms.HexBox/DynamicByteProvider.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 |
4 | namespace Be.Windows.Forms
5 | {
6 | ///
7 | /// Byte provider for a small amount of data.
8 | ///
9 | public class DynamicByteProvider : IByteProvider
10 | {
11 | ///
12 | /// Contains information about changes.
13 | ///
14 | bool _hasChanges;
15 | ///
16 | /// Contains a byte collection.
17 | ///
18 | List _bytes;
19 |
20 | ///
21 | /// Initializes a new instance of the DynamicByteProvider class.
22 | ///
23 | ///
24 | public DynamicByteProvider(byte[] data) : this(new List(data))
25 | {
26 | }
27 |
28 | ///
29 | /// Initializes a new instance of the DynamicByteProvider class.
30 | ///
31 | ///
32 | public DynamicByteProvider(List bytes)
33 | {
34 | _bytes = bytes;
35 | }
36 |
37 | ///
38 | /// Raises the Changed event.
39 | ///
40 | void OnChanged(EventArgs e)
41 | {
42 | _hasChanges = true;
43 |
44 | if(Changed != null)
45 | Changed(this, e);
46 | }
47 |
48 | ///
49 | /// Raises the LengthChanged event.
50 | ///
51 | void OnLengthChanged(EventArgs e)
52 | {
53 | if(LengthChanged != null)
54 | LengthChanged(this, e);
55 | }
56 |
57 | ///
58 | /// Gets the byte collection.
59 | ///
60 | public List Bytes
61 | {
62 | get { return _bytes; }
63 | }
64 |
65 | #region IByteProvider Members
66 | ///
67 | /// True, when changes are done.
68 | ///
69 | public bool HasChanges()
70 | {
71 | return _hasChanges;
72 | }
73 |
74 | ///
75 | /// Applies changes.
76 | ///
77 | public void ApplyChanges()
78 | {
79 | _hasChanges = false;
80 | }
81 |
82 | ///
83 | /// Occurs, when the write buffer contains new changes.
84 | ///
85 | public event EventHandler Changed;
86 |
87 | ///
88 | /// Occurs, when InsertBytes or DeleteBytes method is called.
89 | ///
90 | public event EventHandler LengthChanged;
91 |
92 |
93 | ///
94 | /// Reads a byte from the byte collection.
95 | ///
96 | /// the index of the byte to read
97 | /// the byte
98 | public byte ReadByte(long index)
99 | { return _bytes[(int)index]; }
100 |
101 | ///
102 | /// Write a byte into the byte collection.
103 | ///
104 | /// the index of the byte to write.
105 | /// the byte
106 | public void WriteByte(long index, byte value)
107 | {
108 | _bytes[(int)index] = value;
109 | OnChanged(EventArgs.Empty);
110 | }
111 |
112 | ///
113 | /// Deletes bytes from the byte collection.
114 | ///
115 | /// the start index of the bytes to delete.
116 | /// the length of bytes to delete.
117 | public void DeleteBytes(long index, long length)
118 | {
119 | int internal_index = (int)Math.Max(0, index);
120 | int internal_length = (int)Math.Min((int)Length, length);
121 | _bytes.RemoveRange(internal_index, internal_length);
122 |
123 | OnLengthChanged(EventArgs.Empty);
124 | OnChanged(EventArgs.Empty);
125 | }
126 |
127 | ///
128 | /// Inserts byte into the byte collection.
129 | ///
130 | /// the start index of the bytes in the byte collection
131 | /// the byte array to insert
132 | public void InsertBytes(long index, byte[] bs)
133 | {
134 | _bytes.InsertRange((int)index, bs);
135 |
136 | OnLengthChanged(EventArgs.Empty);
137 | OnChanged(EventArgs.Empty);
138 | }
139 |
140 | ///
141 | /// Gets the length of the bytes in the byte collection.
142 | ///
143 | public long Length
144 | {
145 | get
146 | {
147 | return _bytes.Count;
148 | }
149 | }
150 |
151 | ///
152 | /// Returns true
153 | ///
154 | public bool SupportsWriteByte()
155 | {
156 | return true;
157 | }
158 |
159 | ///
160 | /// Returns true
161 | ///
162 | public bool SupportsInsertBytes()
163 | {
164 | return true;
165 | }
166 |
167 | ///
168 | /// Returns true
169 | ///
170 | public bool SupportsDeleteBytes()
171 | {
172 | return true;
173 | }
174 | #endregion
175 |
176 | }
177 | }
178 |
--------------------------------------------------------------------------------
/Be.Windows.Forms.HexBox/FileDataBlock.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Be.Windows.Forms
4 | {
5 | internal sealed class FileDataBlock : DataBlock
6 | {
7 | long _length;
8 | long _fileOffset;
9 |
10 | public FileDataBlock(long fileOffset, long length)
11 | {
12 | _fileOffset = fileOffset;
13 | _length = length;
14 | }
15 |
16 | public long FileOffset
17 | {
18 | get
19 | {
20 | return _fileOffset;
21 | }
22 | }
23 |
24 | public override long Length
25 | {
26 | get
27 | {
28 | return _length;
29 | }
30 | }
31 |
32 | public void SetFileOffset(long value)
33 | {
34 | _fileOffset = value;
35 | }
36 |
37 | public void RemoveBytesFromEnd(long count)
38 | {
39 | if (count > _length)
40 | {
41 | throw new ArgumentOutOfRangeException("count");
42 | }
43 |
44 | _length -= count;
45 | }
46 |
47 | public void RemoveBytesFromStart(long count)
48 | {
49 | if (count > _length)
50 | {
51 | throw new ArgumentOutOfRangeException("count");
52 | }
53 |
54 | _fileOffset += count;
55 | _length -= count;
56 | }
57 |
58 | public override void RemoveBytes(long position, long count)
59 | {
60 | if (position > _length)
61 | {
62 | throw new ArgumentOutOfRangeException("position");
63 | }
64 |
65 | if (position + count > _length)
66 | {
67 | throw new ArgumentOutOfRangeException("count");
68 | }
69 |
70 | long prefixLength = position;
71 | long prefixFileOffset = _fileOffset;
72 |
73 | long suffixLength = _length - count - prefixLength;
74 | long suffixFileOffset = _fileOffset + position + count;
75 |
76 | if (prefixLength > 0 && suffixLength > 0)
77 | {
78 | _fileOffset = prefixFileOffset;
79 | _length = prefixLength;
80 | _map.AddAfter(this, new FileDataBlock(suffixFileOffset, suffixLength));
81 | return;
82 | }
83 |
84 | if (prefixLength > 0)
85 | {
86 | _fileOffset = prefixFileOffset;
87 | _length = prefixLength;
88 | }
89 | else
90 | {
91 | _fileOffset = suffixFileOffset;
92 | _length = suffixLength;
93 | }
94 | }
95 | }
96 | }
97 |
--------------------------------------------------------------------------------
/Be.Windows.Forms.HexBox/FindOptions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Be.Windows.Forms
6 | {
7 | ///
8 | /// Defines the type of the Find operation.
9 | ///
10 | public enum FindType
11 | {
12 | ///
13 | /// Used for Text Find operations
14 | ///
15 | Text,
16 | ///
17 | /// Used for Hex Find operations
18 | ///
19 | Hex
20 | }
21 |
22 | ///
23 | /// Defines all state information nee
24 | ///
25 | public class FindOptions
26 | {
27 | ///
28 | /// Gets or sets whether the Find options are valid
29 | ///
30 | public bool IsValid { get; set; }
31 | ///
32 | /// Gets the Find buffer used for case insensitive Find operations. This is the binary representation of Text.
33 | ///
34 | internal byte[] FindBuffer { get; private set; }
35 | ///
36 | /// Gets the Find buffer used for case sensitive Find operations. This is the binary representation of Text in lower case format.
37 | ///
38 | internal byte[] FindBufferLowerCase { get; private set; }
39 | ///
40 | /// Gets the Find buffer used for case sensitive Find operations. This is the binary representation of Text in upper case format.
41 | ///
42 | internal byte[] FindBufferUpperCase { get; private set; }
43 | ///
44 | /// Contains the MatchCase value
45 | ///
46 | bool _matchCase;
47 | ///
48 | /// Gets or sets the value, whether the Find operation is case sensitive or not.
49 | ///
50 | public bool MatchCase
51 | {
52 | get { return _matchCase; }
53 | set
54 | {
55 | _matchCase = value;
56 | UpdateFindBuffer();
57 | }
58 | }
59 | ///
60 | /// Contains the text that should be found.
61 | ///
62 | string _text;
63 | ///
64 | /// Gets or sets the text that should be found. Only used, when Type is FindType.Hex.
65 | ///
66 | public string Text
67 | {
68 | get { return _text; }
69 | set
70 | {
71 | _text = value;
72 | UpdateFindBuffer();
73 | }
74 | }
75 | ///
76 | /// Gets or sets the hex buffer that should be found. Only used, when Type is FindType.Hex.
77 | ///
78 | public byte[] Hex { get; set; }
79 | ///
80 | /// Gets or sets the type what should be searched.
81 | ///
82 | public FindType Type { get; set; }
83 | ///
84 | /// Updates the find buffer.
85 | ///
86 | void UpdateFindBuffer()
87 | {
88 | string text = this.Text != null ? this.Text : string.Empty;
89 | FindBuffer = ASCIIEncoding.ASCII.GetBytes(text);
90 | FindBufferLowerCase = ASCIIEncoding.ASCII.GetBytes(text.ToLower());
91 | FindBufferUpperCase = ASCIIEncoding.ASCII.GetBytes(text.ToUpper());
92 | }
93 | }
94 | }
95 |
--------------------------------------------------------------------------------
/Be.Windows.Forms.HexBox/HexBox.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Be.Windows.Forms.HexBox/HexBox.bmp
--------------------------------------------------------------------------------
/Be.Windows.Forms.HexBox/HexBox.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Be.Windows.Forms.HexBox/HexBox.cs
--------------------------------------------------------------------------------
/Be.Windows.Forms.HexBox/HexBox.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Be.Windows.Forms.HexBox/HexBox.snk
--------------------------------------------------------------------------------
/Be.Windows.Forms.HexBox/HexCasing.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Be.Windows.Forms
6 | {
7 | ///
8 | /// Specifies the case of hex characters in the HexBox control
9 | ///
10 | public enum HexCasing
11 | {
12 | ///
13 | /// Converts all characters to uppercase.
14 | ///
15 | Upper = 0,
16 | ///
17 | /// Converts all characters to lowercase.
18 | ///
19 | Lower = 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Be.Windows.Forms.HexBox/IByteProvider.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Be.Windows.Forms.HexBox/IByteProvider.cs
--------------------------------------------------------------------------------
/Be.Windows.Forms.HexBox/MemoryDataBlock.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Be.Windows.Forms
4 | {
5 | internal sealed class MemoryDataBlock : DataBlock
6 | {
7 | byte[] _data;
8 |
9 | public MemoryDataBlock(byte data)
10 | {
11 | _data = new byte[] { data };
12 | }
13 |
14 | public MemoryDataBlock(byte[] data)
15 | {
16 | if (data == null)
17 | {
18 | throw new ArgumentNullException("data");
19 | }
20 |
21 | _data = (byte[])data.Clone();
22 | }
23 |
24 | public override long Length
25 | {
26 | get
27 | {
28 | return _data.LongLength;
29 | }
30 | }
31 |
32 | public byte[] Data
33 | {
34 | get
35 | {
36 | return _data;
37 | }
38 | }
39 |
40 | public void AddByteToEnd(byte value)
41 | {
42 | byte[] newData = new byte[_data.LongLength + 1];
43 | _data.CopyTo(newData, 0);
44 | newData[newData.LongLength - 1] = value;
45 | _data = newData;
46 | }
47 |
48 | public void AddByteToStart(byte value)
49 | {
50 | byte[] newData = new byte[_data.LongLength + 1];
51 | newData[0] = value;
52 | _data.CopyTo(newData, 1);
53 | _data = newData;
54 | }
55 |
56 | public void InsertBytes(long position, byte[] data)
57 | {
58 | byte[] newData = new byte[_data.LongLength + data.LongLength];
59 | if (position > 0)
60 | {
61 | Array.Copy(_data, 0, newData, 0, position);
62 | }
63 | Array.Copy(data, 0, newData, position, data.LongLength);
64 | if (position < _data.LongLength)
65 | {
66 | Array.Copy(_data, position, newData, position + data.LongLength, _data.LongLength - position);
67 | }
68 | _data = newData;
69 | }
70 |
71 | public override void RemoveBytes(long position, long count)
72 | {
73 | byte[] newData = new byte[_data.LongLength - count];
74 |
75 | if (position > 0)
76 | {
77 | Array.Copy(_data, 0, newData, 0, position);
78 | }
79 | if (position + count < _data.LongLength)
80 | {
81 | Array.Copy(_data, position + count, newData, position, newData.LongLength - position);
82 | }
83 |
84 | _data = newData;
85 | }
86 | }
87 | }
88 |
--------------------------------------------------------------------------------
/Be.Windows.Forms.HexBox/NativeMethods.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Drawing;
3 | using System.Runtime.InteropServices;
4 |
5 | namespace Be.Windows.Forms
6 | {
7 | internal static class NativeMethods
8 | {
9 | // Caret definitions
10 | [DllImport("user32.dll", SetLastError=true)]
11 | public static extern bool CreateCaret(IntPtr hWnd, IntPtr hBitmap, int nWidth, int nHeight);
12 |
13 | [DllImport("user32.dll", SetLastError=true)]
14 | public static extern bool ShowCaret(IntPtr hWnd);
15 |
16 | [DllImport("user32.dll", SetLastError=true)]
17 | public static extern bool DestroyCaret();
18 |
19 | [DllImport("user32.dll", SetLastError=true)]
20 | public static extern bool SetCaretPos(int X, int Y);
21 |
22 | // Key definitions
23 | public const int WM_KEYDOWN = 0x100;
24 | public const int WM_KEYUP = 0x101;
25 | public const int WM_CHAR = 0x102;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Be.Windows.Forms.HexBox/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.34003
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Be.Windows.Forms.Properties {
12 | using System;
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal Resources() {
33 | }
34 |
35 | ///
36 | /// Returns the cached ResourceManager instance used by this class.
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Be.Windows.Forms.Properties.Resources", typeof(Resources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// Overrides the current thread's CurrentUICulture property for all
51 | /// resource lookups using this strongly typed resource class.
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/Be.Windows.Forms.HexBox/Util.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace Be.Windows.Forms
6 | {
7 | static class Util
8 | {
9 | ///
10 | /// Contains true, if we are in design mode of Visual Studio
11 | ///
12 | private static bool _designMode;
13 |
14 | ///
15 | /// Initializes an instance of Util class
16 | ///
17 | static Util()
18 | {
19 | // design mode is true if host process is: Visual Studio, Visual Studio Express Versions (C#, VB, C++) or SharpDevelop
20 | var designerHosts = new List() { "devenv", "vcsexpress", "vbexpress", "vcexpress", "sharpdevelop" };
21 | using (var process = System.Diagnostics.Process.GetCurrentProcess())
22 | {
23 | var processName = process.ProcessName.ToLower();
24 | _designMode = designerHosts.Contains(processName);
25 | }
26 | }
27 |
28 | ///
29 | /// Gets true, if we are in design mode of Visual Studio
30 | ///
31 | ///
32 | /// In Visual Studio 2008 SP1 the designer is crashing sometimes on windows forms.
33 | /// The DesignMode property of Control class is buggy and cannot be used, so use our own implementation instead.
34 | ///
35 | public static bool DesignMode
36 | {
37 | get
38 | {
39 | return _designMode;
40 | }
41 | }
42 |
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/Be.Windows.Forms.HexBox/bin/x86/Release/Be.Windows.Forms.HexBox.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Be.Windows.Forms.HexBox/bin/x86/Release/Be.Windows.Forms.HexBox.dll
--------------------------------------------------------------------------------
/BlazeLibWV/BlazeLibWV.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {4053EF39-B6BE-4A51-8037-B3F3438D2371}
8 | Library
9 | Properties
10 | BlazeLibWV
11 | BlazeLibWV
12 | v4.5
13 | 512
14 |
15 |
16 | true
17 | full
18 | false
19 | bin\Debug\
20 | DEBUG;TRACE
21 | prompt
22 | 4
23 |
24 |
25 | pdbonly
26 | true
27 | bin\Release\
28 | TRACE
29 | prompt
30 | 4
31 |
32 |
33 | true
34 | bin\x86\Debug\
35 | DEBUG;TRACE
36 | full
37 | x86
38 | prompt
39 | ManagedMinimumRules.ruleset
40 |
41 |
42 | bin\x86\Release\
43 | TRACE
44 | false
45 | pdbonly
46 | x86
47 | prompt
48 | ManagedMinimumRules.ruleset
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
73 |
--------------------------------------------------------------------------------
/BlazeLibWV/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // Allgemeine Informationen über eine Assembly werden über die folgenden
6 | // Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
7 | // die mit einer Assembly verknüpft sind.
8 | [assembly: AssemblyTitle("BlazeLibWV")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("BlazeLibWV")]
13 | [assembly: AssemblyCopyright("Copyright © 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar
18 | // für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von
19 | // COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest.
20 | [assembly: ComVisible(false)]
21 |
22 | // Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
23 | [assembly: Guid("a537692a-65f2-44d0-807a-291f738f5876")]
24 |
25 | // Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
26 | //
27 | // Hauptversion
28 | // Nebenversion
29 | // Buildnummer
30 | // Revision
31 | //
32 | // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
33 | // übernehmen, indem Sie "*" eingeben:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/BlazeLibWV/bin/x86/Release/BlazeLibWV.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BlazeLibWV/bin/x86/Release/BlazeLibWV.dll
--------------------------------------------------------------------------------
/BlazeSharkWV/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/BlazeSharkWV/BlazeSharkWV.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {CD67133E-B905-4CD1-ADBD-73E9E0F70BD4}
8 | WinExe
9 | Properties
10 | BlazeSharkWV
11 | BlazeSharkWV
12 | v4.5
13 | 512
14 |
15 |
16 | AnyCPU
17 | true
18 | full
19 | false
20 | bin\Debug\
21 | DEBUG;TRACE
22 | prompt
23 | 4
24 |
25 |
26 | AnyCPU
27 | pdbonly
28 | true
29 | bin\Release\
30 | TRACE
31 | prompt
32 | 4
33 |
34 |
35 | true
36 | bin\x86\Debug\
37 | DEBUG;TRACE
38 | full
39 | x86
40 | prompt
41 | ManagedMinimumRules.ruleset
42 | true
43 |
44 |
45 | bin\x86\Release\
46 | TRACE
47 | false
48 | pdbonly
49 | x86
50 | prompt
51 | ManagedMinimumRules.ruleset
52 | true
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 | Form
69 |
70 |
71 | Form1.cs
72 |
73 |
74 |
75 |
76 | Form1.cs
77 |
78 |
79 | ResXFileCodeGenerator
80 | Resources.Designer.cs
81 | Designer
82 |
83 |
84 | True
85 | Resources.resx
86 |
87 |
88 | SettingsSingleFileGenerator
89 | Settings.Designer.cs
90 |
91 |
92 | True
93 | Settings.settings
94 | True
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 | {4053ef39-b6be-4a51-8037-b3f3438d2371}
103 | BlazeLibWV
104 |
105 |
106 |
107 |
114 |
--------------------------------------------------------------------------------
/BlazeSharkWV/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using System.Windows.Forms;
6 |
7 | namespace BlazeSharkWV
8 | {
9 | static class Program
10 | {
11 | ///
12 | /// Der Haupteinstiegspunkt für die Anwendung.
13 | ///
14 | [STAThread]
15 | static void Main()
16 | {
17 | Application.EnableVisualStyles();
18 | Application.SetCompatibleTextRenderingDefault(false);
19 | Application.Run(new Form1());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/BlazeSharkWV/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // Allgemeine Informationen über eine Assembly werden über die folgenden
6 | // Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
7 | // die mit einer Assembly verknüpft sind.
8 | [assembly: AssemblyTitle("BlazeSharkWV")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("BlazeSharkWV")]
13 | [assembly: AssemblyCopyright("Copyright © 2017")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar
18 | // für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von
19 | // COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest.
20 | [assembly: ComVisible(false)]
21 |
22 | // Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
23 | [assembly: Guid("617f2f02-8767-4395-a6a0-76e81012f85c")]
24 |
25 | // Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
26 | //
27 | // Hauptversion
28 | // Nebenversion
29 | // Buildnummer
30 | // Revision
31 | //
32 | // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
33 | // übernehmen, indem Sie "*" eingeben:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/BlazeSharkWV/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // Dieser Code wurde von einem Tool generiert.
4 | // Laufzeitversion:4.0.30319.42000
5 | //
6 | // Änderungen an dieser Datei können fehlerhaftes Verhalten verursachen und gehen verloren, wenn
7 | // der Code neu generiert wird.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace BlazeSharkWV.Properties
12 | {
13 |
14 |
15 | ///
16 | /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
17 | ///
18 | // Diese Klasse wurde von der StronglyTypedResourceBuilder-Klasse
19 | // über ein Tool wie ResGen oder Visual Studio automatisch generiert.
20 | // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
21 | // mit der Option /str erneut aus, oder erstellen Sie Ihr VS-Projekt neu.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("BlazeSharkWV.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
56 | /// Ressourcenlookups, die diese stark typisierte Ressourcenklasse verwenden.
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/BlazeSharkWV/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace BlazeSharkWV.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/BlazeSharkWV/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/BlazeSharkWV/bin/x86/Release/BlazeLibWV.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BlazeSharkWV/bin/x86/Release/BlazeLibWV.dll
--------------------------------------------------------------------------------
/BlazeSharkWV/bin/x86/Release/BlazeSharkWV.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/BlazeSharkWV/bin/x86/Release/BlazeSharkWV.exe
--------------------------------------------------------------------------------
/BlazeSharkWV/bin/x86/Release/BlazeSharkWV.exe.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Other/JavascriptInterfaceByWV.txt:
--------------------------------------------------------------------------------
1 | this
2 | .audio
3 | ..canApply
4 | ..eax
5 | ..hasEAX
6 | ..hasZenithBoard
7 | ..inCriticalState
8 | ..needRestart
9 | ..quality
10 |
11 | .backend
12 | ..onConnectionLost
13 | ..onConnectionEstablished
14 |
15 | .controls
16 | .._defaultGameControlMap
17 | ..activeMap
18 | ..forceSetLastInput
19 | ..getKeyMapping
20 | ..getMappedString
21 | ..invertMouse
22 | ..lastDuplicateInput
23 | ..mapInput
24 | ..mousePitchFactor
25 | ..mouseSensitivityMultiplier
26 | ..mouseSmoothing
27 | ..mouseYawFactor
28 |
29 | .doll
30 | ..addItem
31 | ..addItemEx
32 | ..camAzimuth
33 | ..camDistance
34 | ..camTransitionTime
35 | ..camZenith
36 | ..clearItems
37 | ..defaultCamDistance
38 | ..getDestRect
39 | ..getItems
40 | ..hasItem
41 | ..idealCamAzimuth
42 | ..idealCamDistance
43 | ..idealCamZenith
44 | ..init
45 | ..playEmote
46 | ..removeItem
47 | ..saveMugshot
48 | ..setCameraLookAt
49 | ..setDestRect
50 | ..setTeam
51 | ..teleportCamera
52 | ..textureHeight
53 | ..textureWidth
54 | ..updateItems
55 | ..visible
56 |
57 | .frontend
58 | ..onDisabled
59 | ..onEnabled
60 | ..activationDetails
61 | ..activationReason
62 |
63 | .frontendCoreLoop
64 | ..asyncPaint
65 |
66 | .game
67 | ..enableMusic
68 | ..firstTimePlaying
69 | ..hostServer
70 | ..loadingProgress
71 | ..mapName
72 | ..markTutorialAsCompleted
73 | ..onBeginRoundStateChanged
74 | ..onLoadingAborted
75 | ..onLoadingComplete
76 | ..onLoadingProgressUpdated
77 | ..onLoadingStart
78 | ..playNow
79 | ..quitGame
80 | ..readyToPlay
81 | ..restartExe
82 | ..skipTutorial
83 | ..startNewRound
84 | ..startTutorial
85 | ..timeToNextStateChange
86 | ..tutorialStatus
87 | ..version
88 |
89 | .general
90 | ..getWindowSize
91 | ..autoReload
92 | ..cancel
93 | ..apply
94 |
95 | .itemdb
96 | ..behavior
97 | ..category
98 | ..categoryId
99 | ..categoryName
100 | ..classId
101 | ..consumable
102 | ..criterias
103 | ..daily
104 | ..dependencies
105 | ..equippable
106 | ..find
107 | ..getAbilities
108 | ..getEmotes
109 | ..getMissions
110 | ..getWeapons
111 | ..goal
112 | ..isDefault
113 | ..isItemUsableByKit
114 | ..isItemUsableByTeam
115 | ..isPopItem
116 | ..kv
117 | ..levelReq
118 | ..locId
119 | ..maxUpgrade
120 | ..prereqMissionId
121 | ..purchasable
122 | ..repeatable
123 | ..resetMode
124 | ..rewards
125 | ..typeId
126 | ..widget
127 |
128 | .login
129 | ..completed
130 | ..error
131 | ..getSoldiersList
132 | ..kit
133 | ..level
134 | ..name
135 | ..onError
136 | ..onStateChanged
137 | ..personaId
138 | ..pickSoldier
139 | ..soldier
140 | ..soldierName
141 | ..start
142 | ..state
143 |
144 | .matchmaking
145 | ..GSJoinAddress
146 | ..cancelSearch
147 | ..finalizeCancelSearch
148 | ..getPingSite
149 | ..joinByBookmark
150 | ..joinByMatchmaking
151 | ..joinByPlayerName
152 | ..lastError
153 | ..leaveQueue
154 | ..onGameStarted
155 | ..onPingResponse
156 | ..onQueueUpdated
157 | ..onStateChanged
158 | ..pingGameServers
159 | ..queuePosition
160 | ..queueSize
161 | ..setMaxNumberOfPingsInFlight
162 | ..state
163 |
164 | .soldier
165 | ..CustBar
166 | ..ErrCode
167 | ..ItemId
168 | ..abortMission
169 | ..addCustomization
170 | ..canEquipItem
171 | ..canEquipItemInSlot
172 | ..closeMission
173 | ..commitChanges
174 | ..expirationDate
175 | ..flagTodaysDailyMissionAsViewed
176 | ..getEmoteInSlot
177 | ..getEquipmentInSlot
178 | ..getInventory
179 | ..getItemData
180 | ..getItemStatus
181 | ..getJustCompletedMissions
182 | ..getMissionInSlot
183 | ..getVisualItemInSlot
184 | ..getVisualItems
185 | ..giveItems
186 | ..hasCompletedMission
187 | ..hasItem
188 | ..hasNewDailyMission
189 | ..id
190 | ..kit
191 | ..level
192 | ..limit
193 | ..maxEmoteSlots
194 | ..maxEquipmentSlots
195 | ..maxVisualItemSlots
196 | ..parentid
197 | ..progress
198 | ..removeCustomization
199 | ..setAbilityInSlot
200 | ..setEmoteInSlot
201 | ..setInStore
202 | ..setMissionInSlot
203 | ..setVisualItemInSlot
204 | ..setWeaponInSlot
205 | ..slot
206 | ..swapEquipment
207 | ..timeLeft
208 | ..uses
209 | ..xp
210 | ..xpToNextLevel
211 |
212 | .video
213 | ..antialiasing
214 | ..bloom
215 | ..detectScheme
216 | ..dynamicLightingQuality
217 | ..dynamicShadowsQuality
218 | ..effectsQuality
219 | ..geometryQuality
220 | ..getAvailableAntialiasing
221 | ..getScreenResolutions
222 | ..lightingQuality
223 | ..recommended
224 | ..resolution
225 | ..scheme
226 | ..selectedDynamicLightingQuality
227 | ..selectedDynamicShadowsQuality
228 | ..selectedEffectsQuality
229 | ..selectedGeometryQuality
230 | ..selectedLightingQuality
231 | ..selectedResolution
232 | ..selectedScheme
233 | ..selectedTerrainQuality
234 | ..selectedTextureFiltering
235 | ..selectedTextureQuality
236 | ..startInFullscreen
237 | ..terrainQuality
238 | ..text
239 | ..textureFilteringQuality
240 | ..textureQuality
241 | ..value
242 | ..viewDistanceScale
243 |
244 | .vip
245 | ..acceptInvitation
246 | ..acknowledgeRevocation
247 | ..canRefresh
248 | ..declineInvitation
249 | ..getInvitationList
250 | ..getList
251 | ..getRevokedList
252 | ..onInvitationAccepted
253 | ..onInvitationDeclined
254 | ..onListRefreshed
255 | ..onRevocationAcknowledged
256 | ..onServerRemoved
257 | ..refresh
--------------------------------------------------------------------------------
/Other/html.rar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Other/html.rar
--------------------------------------------------------------------------------
/Other/maplist.con:
--------------------------------------------------------------------------------
1 | maplist.append "dalian_plant" "gpm_rush" 32
2 | maplist.append "dalian_plant" "gpm_sa" 32
3 | maplist.append "downtown" "gpm_rush" 32
4 | maplist.append "downtown" "gpm_sa" 32
5 | maplist.append "dragon_valley" "gpm_rush" 32
6 | maplist.append "dragon_valley" "gpm_sa" 32
7 | maplist.append "gulf_of_oman" "gpm_rush" 32
8 | maplist.append "gulf_of_oman" "gpm_sa" 32
9 | maplist.append "karkand_rush" "gpm_rush" 32
10 | maplist.append "mashtuur_city" "gpm_sa" 32
11 | maplist.append "sharqi" "gpm_rush" 32
12 | maplist.append "sharqi" "gpm_sa" 32
13 | maplist.append "strike_at_karkand" "gpm_sa" 32
14 | maplist.append "trail" "gpm_sa" 32
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Battle Field Play 4 Free Blaze Backend and Tools by Warranty Voider
2 |
3 | with these tool you can research the blaze side of the game and the server, aswell as the gamefiles
4 |
5 | -zlib dll is a proxy dll to bypass ssl cert checks and enable blaze logs, theres a version for 2010 and for 2015 client, both work with 2010 server
6 |
7 | -Launcher contains backend, magma server and a minimal webserver thats lets the game and server start with editable parameters
8 |
9 | -BlazeShark can be used with the backend to examine blaze packet content, can be choosen at start of launcher
10 |
11 | -BlazeLibWV is a library for reading and creating blaze packets, also for creating log dumps
12 |
13 | -UDP Monitor WV - Tool for examining the highspeed bitstream of the game traffic over udp
14 |
15 | -BFP4F Explorer WV - Tool for editing game content and export
16 |
17 | -"Other" contain the minimal frontend files that need to be hosted via xampp or internal webbrowser, and other files
18 |
19 | [more information in the wiki](https://github.com/zeroKilo/BFP4FToolsWV/wiki)
20 |
21 |
22 | # THIS IS UNFINISHED AND FOR RESEARCH ONLY!!!
23 |
24 |
25 | for more research chat: https://discordapp.com/invite/Wr2faSS
26 |
27 |
28 | # DEMO (v1)
29 |
30 | [](https://www.youtube.com/watch?v=lI8_xpKC2vI)
31 |
32 | # DEMO (v2)
33 |
34 | [](https://www.youtube.com/watch?v=MoaW1es4xbY)
35 |
36 | # DEMO (v3)
37 |
38 | [](https://www.youtube.com/watch?v=z9EfC4xNQZQ)
39 |
40 | # DEMO (v4)
41 |
42 | [](https://www.youtube.com/watch?v=BtnpACHK07w)
43 |
44 | # First Joining
45 |
46 | [](https://www.youtube.com/watch?v=EX3aHWkbB6o)
47 |
48 | # DEMO (v5)
49 |
50 | [](https://www.youtube.com/watch?v=iVllQPzRs1M)
51 |
52 | # BFP4F Explorer WV
53 |
54 | [](https://www.youtube.com/watch?v=QyG3_AOVW5Q)
55 |
56 | # BFP4F Explorer WV - Level Explorer Demo
57 |
58 | [](https://www.youtube.com/watch?v=ChimAELNzuw)
59 |
--------------------------------------------------------------------------------
/UDPMonitorWV/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/UDPMonitorWV/Form1.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace UDPMonitorWV
2 | {
3 | partial class Form1
4 | {
5 | ///
6 | /// Erforderliche Designervariable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Verwendete Ressourcen bereinigen.
12 | ///
13 | /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Vom Windows Form-Designer generierter Code
24 |
25 | ///
26 | /// Erforderliche Methode für die Designerunterstützung.
27 | /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
32 | this.toolStrip1 = new System.Windows.Forms.ToolStrip();
33 | this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
34 | this.rtb1 = new System.Windows.Forms.RichTextBox();
35 | this.toolStrip1.SuspendLayout();
36 | this.SuspendLayout();
37 | //
38 | // toolStrip1
39 | //
40 | this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
41 | this.toolStripButton1});
42 | this.toolStrip1.Location = new System.Drawing.Point(0, 0);
43 | this.toolStrip1.Name = "toolStrip1";
44 | this.toolStrip1.Size = new System.Drawing.Size(619, 25);
45 | this.toolStrip1.TabIndex = 0;
46 | this.toolStrip1.Text = "toolStrip1";
47 | //
48 | // toolStripButton1
49 | //
50 | this.toolStripButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
51 | this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
52 | this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
53 | this.toolStripButton1.Name = "toolStripButton1";
54 | this.toolStripButton1.Size = new System.Drawing.Size(35, 22);
55 | this.toolStripButton1.Text = "Start";
56 | this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click);
57 | //
58 | // rtb1
59 | //
60 | this.rtb1.DetectUrls = false;
61 | this.rtb1.Dock = System.Windows.Forms.DockStyle.Fill;
62 | this.rtb1.Font = new System.Drawing.Font("Courier New", 8.25F);
63 | this.rtb1.Location = new System.Drawing.Point(0, 25);
64 | this.rtb1.Name = "rtb1";
65 | this.rtb1.Size = new System.Drawing.Size(619, 193);
66 | this.rtb1.TabIndex = 1;
67 | this.rtb1.Text = "";
68 | this.rtb1.WordWrap = false;
69 | //
70 | // Form1
71 | //
72 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
73 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
74 | this.ClientSize = new System.Drawing.Size(619, 218);
75 | this.Controls.Add(this.rtb1);
76 | this.Controls.Add(this.toolStrip1);
77 | this.Name = "Form1";
78 | this.Text = "UDP Monitor WV";
79 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
80 | this.toolStrip1.ResumeLayout(false);
81 | this.toolStrip1.PerformLayout();
82 | this.ResumeLayout(false);
83 | this.PerformLayout();
84 |
85 | }
86 |
87 | #endregion
88 |
89 | private System.Windows.Forms.ToolStrip toolStrip1;
90 | private System.Windows.Forms.ToolStripButton toolStripButton1;
91 | private System.Windows.Forms.RichTextBox rtb1;
92 | }
93 | }
94 |
95 |
--------------------------------------------------------------------------------
/UDPMonitorWV/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using System.Windows.Forms;
6 |
7 | namespace UDPMonitorWV
8 | {
9 | static class Program
10 | {
11 | ///
12 | /// Der Haupteinstiegspunkt für die Anwendung.
13 | ///
14 | [STAThread]
15 | static void Main()
16 | {
17 | Application.EnableVisualStyles();
18 | Application.SetCompatibleTextRenderingDefault(false);
19 | Application.Run(new Form1());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/UDPMonitorWV/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // Allgemeine Informationen über eine Assembly werden über die folgenden
6 | // Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
7 | // die mit einer Assembly verknüpft sind.
8 | [assembly: AssemblyTitle("UDPMonitorWV")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("UDPMonitorWV")]
13 | [assembly: AssemblyCopyright("Copyright © 2018")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar
18 | // für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von
19 | // COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest.
20 | [assembly: ComVisible(false)]
21 |
22 | // Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
23 | [assembly: Guid("65124441-3cc9-4385-bef6-f79a7e483cd2")]
24 |
25 | // Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
26 | //
27 | // Hauptversion
28 | // Nebenversion
29 | // Buildnummer
30 | // Revision
31 | //
32 | // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
33 | // übernehmen, indem Sie "*" eingeben:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/UDPMonitorWV/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // Dieser Code wurde von einem Tool generiert.
4 | // Laufzeitversion:4.0.30319.42000
5 | //
6 | // Änderungen an dieser Datei können fehlerhaftes Verhalten verursachen und gehen verloren, wenn
7 | // der Code neu generiert wird.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace UDPMonitorWV.Properties
12 | {
13 |
14 |
15 | ///
16 | /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
17 | ///
18 | // Diese Klasse wurde von der StronglyTypedResourceBuilder-Klasse
19 | // über ein Tool wie ResGen oder Visual Studio automatisch generiert.
20 | // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
21 | // mit der Option /str erneut aus, oder erstellen Sie Ihr VS-Projekt neu.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("UDPMonitorWV.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
56 | /// Ressourcenlookups, die diese stark typisierte Ressourcenklasse verwenden.
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/UDPMonitorWV/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace UDPMonitorWV.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/UDPMonitorWV/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/UDPMonitorWV/UDPMonitorWV.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {FC30C556-C2CD-4783-AFCC-DC1403868D87}
8 | WinExe
9 | Properties
10 | UDPMonitorWV
11 | UDPMonitorWV
12 | v4.5
13 | 512
14 |
15 |
16 | AnyCPU
17 | true
18 | full
19 | false
20 | bin\Debug\
21 | DEBUG;TRACE
22 | prompt
23 | 4
24 |
25 |
26 | AnyCPU
27 | pdbonly
28 | true
29 | bin\Release\
30 | TRACE
31 | prompt
32 | 4
33 |
34 |
35 | true
36 | bin\x86\Debug\
37 | DEBUG;TRACE
38 | full
39 | x86
40 | prompt
41 | ManagedMinimumRules.ruleset
42 | true
43 |
44 |
45 | bin\x86\Release\
46 | TRACE
47 | false
48 | pdbonly
49 | x86
50 | prompt
51 | ManagedMinimumRules.ruleset
52 | true
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 | Form
69 |
70 |
71 | Form1.cs
72 |
73 |
74 |
75 |
76 | Form1.cs
77 |
78 |
79 | ResXFileCodeGenerator
80 | Resources.Designer.cs
81 | Designer
82 |
83 |
84 | True
85 | Resources.resx
86 |
87 |
88 | SettingsSingleFileGenerator
89 | Settings.Designer.cs
90 |
91 |
92 | True
93 | Settings.settings
94 | True
95 |
96 |
97 |
98 |
99 |
100 |
101 |
108 |
--------------------------------------------------------------------------------
/UDPMonitorWV/bin/x86/Release/UDPMonitorWV.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/UDPMonitorWV/bin/x86/Release/UDPMonitorWV.exe
--------------------------------------------------------------------------------
/UDPMonitorWV/bin/x86/Release/UDPMonitorWV.exe.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Zlib122_2010/Release/zlib122.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2010/Release/zlib122.dll
--------------------------------------------------------------------------------
/Zlib122_2010/zlib122.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Express 2012 for Windows Desktop
4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib122", "zlib122\zlib122.vcxproj", "{3EACB588-5852-40CA-BB9C-BB3E3843222A}"
5 | EndProject
6 | Global
7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
8 | Debug|Win32 = Debug|Win32
9 | Release|Win32 = Release|Win32
10 | EndGlobalSection
11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
12 | {3EACB588-5852-40CA-BB9C-BB3E3843222A}.Debug|Win32.ActiveCfg = Debug|Win32
13 | {3EACB588-5852-40CA-BB9C-BB3E3843222A}.Debug|Win32.Build.0 = Debug|Win32
14 | {3EACB588-5852-40CA-BB9C-BB3E3843222A}.Release|Win32.ActiveCfg = Release|Win32
15 | {3EACB588-5852-40CA-BB9C-BB3E3843222A}.Release|Win32.Build.0 = Release|Win32
16 | EndGlobalSection
17 | GlobalSection(SolutionProperties) = preSolution
18 | HideSolutionNode = FALSE
19 | EndGlobalSection
20 | EndGlobal
21 |
--------------------------------------------------------------------------------
/Zlib122_2010/zlib122.v11.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2010/zlib122.v11.suo
--------------------------------------------------------------------------------
/Zlib122_2010/zlib122/Hack.h:
--------------------------------------------------------------------------------
1 | void Hack_Init();
--------------------------------------------------------------------------------
/Zlib122_2010/zlib122/UDPMon.h:
--------------------------------------------------------------------------------
1 | LPTSTR lpszPipename1 = TEXT("\\\\.\\pipe\\UDPmon_send");
2 | HANDLE hPipe1;
3 | DWORD cbToWrite1, cbWritten1;
4 | BOOL fSuccess1;
5 |
6 | LPTSTR lpszPipename2 = TEXT("\\\\.\\pipe\\UDPmon_recv");
7 | HANDLE hPipe2;
8 | DWORD cbToWrite2, cbWritten2;
9 | BOOL fSuccess2;
10 |
11 | bool SendDownThePipe1(char * str)
12 | {
13 | cbToWrite1 = strlen(str);
14 | fSuccess1 = WriteFile(hPipe1, str, cbToWrite1, &cbWritten1, NULL);
15 | return fSuccess1 && cbToWrite1 == cbWritten1;
16 | }
17 |
18 | bool SendDownThePipe2(char * str)
19 | {
20 | cbToWrite2 = strlen(str);
21 | fSuccess2 = WriteFile(hPipe2, str, cbToWrite2, &cbWritten2, NULL);
22 | return fSuccess2 && cbToWrite2 == cbWritten2;
23 | }
24 |
25 | bool InitUDPMon()
26 | {
27 | hPipe1 = CreateFile(lpszPipename1, GENERIC_WRITE, FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
28 | if (hPipe1 == INVALID_HANDLE_VALUE )
29 | return false;
30 | if(!SendDownThePipe1("BFP4F Server says hello on send pipe!\n"))
31 | return false;
32 | hPipe2 = CreateFile(lpszPipename2, GENERIC_WRITE, FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
33 | if (hPipe2 == INVALID_HANDLE_VALUE )
34 | return false;
35 | return SendDownThePipe2("BFP4F Server says hello on recv pipe!\n");
36 | }
37 |
38 | DWORD readReturn;
39 | DWORD readBuff;
40 | DWORD readSize;
41 | DWORD readEAX;
42 | DWORD writeBuff;
43 | DWORD writeSize;
44 | DWORD writeEAX;
45 |
46 | void PrintBitRead()
47 | {
48 | DWORD tmpReturn = readReturn;
49 | DWORD tmpSize = readSize / 8;
50 | if(readSize % 8 != 0)
51 | tmpSize++;
52 | BYTE* tmpBuff = (BYTE*)readBuff;
53 | char* tmpHex = (char*)calloc(3, 1);
54 | for(int i = 0; i < tmpSize; i++)
55 | {
56 | sprintf(tmpHex, "%02X", tmpBuff[i]);
57 | SendDownThePipe2(tmpHex);
58 | }
59 | free(tmpHex);
60 | SendDownThePipe2("\n");
61 | readReturn = tmpReturn;
62 | }
63 |
64 | void PrintBitWrite()
65 | {
66 | DWORD tmpSize = writeSize / 8;
67 | if(writeSize % 8 != 0)
68 | tmpSize++;
69 | BYTE* tmpBuff = (BYTE*)writeBuff;
70 | char* tmpHex = (char*)calloc(3, 1);
71 | for(int i = 0; i < tmpSize; i++)
72 | {
73 | sprintf(tmpHex, "%02X", tmpBuff[i]);
74 | SendDownThePipe1(tmpHex);
75 | }
76 | free(tmpHex);
77 | SendDownThePipe1("\n");
78 | }
79 |
80 | void __declspec(naked) BitStreamRead()
81 | {
82 | _asm
83 | {
84 | //save eax
85 | mov readEAX, eax;
86 | //change return
87 | mov eax, [esp];
88 | mov readReturn, eax;
89 | mov eax, label_return;
90 | mov [esp], eax;
91 | //save buffer address
92 | mov eax, [esp + 4];
93 | mov readBuff, eax;
94 | //save buffer size
95 | mov eax, [esp + 8];
96 | mov readSize, eax;
97 | //restore eax
98 | mov eax, readEAX;
99 | //rest of overwritten asm
100 | sub esp, 0xC;
101 | push ebp;
102 | mov ebp, [esp + 0x14];
103 | push 0x009FC288;
104 | ret;
105 | label_return:
106 | //save regs
107 | pushad;
108 | //was success?
109 | test eax, eax;
110 | jz label_skip;
111 | //save to log
112 | call PrintBitRead;
113 | label_skip:
114 | //restore regs
115 | popad;
116 | //restore return
117 | push readReturn;
118 | ret;
119 | }
120 | }
121 |
122 | void __declspec(naked) BitStreamWrite()
123 | {
124 | _asm
125 | {
126 | //save eax
127 | mov writeEAX, eax;
128 | //save buffer address
129 | mov eax, [esp + 4];
130 | mov writeBuff, eax;
131 | //save buffer size
132 | mov eax, [esp + 8];
133 | mov writeSize, eax;
134 | //restore eax
135 | mov eax, writeEAX;
136 | //save regs
137 | pushad;
138 | //save to log
139 | call PrintBitWrite;
140 | //restore regs
141 | popad;
142 | //rest of overwritten asm
143 | sub esp, 0xC;
144 | push ebp;
145 | push edi;
146 | push 0x009FCB05;
147 | ret;
148 | }
149 | }
--------------------------------------------------------------------------------
/Zlib122_2010/zlib122/detours.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2010/zlib122/detours.lib
--------------------------------------------------------------------------------
/Zlib122_2010/zlib122/dllmain.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include
3 | #include
4 | #include
5 | #include "Hack.h"
6 | #pragma pack(1)
7 |
8 |
9 |
10 | extern "C" BOOL WINAPI DllMain(HINSTANCE hInst,DWORD reason,LPVOID)
11 | {
12 | static HINSTANCE hL;
13 | if (reason == DLL_PROCESS_ATTACH)
14 | {
15 | hL = LoadLibrary(_T(".\\zlib122_org.dll"));
16 | if (!hL) return false;
17 | Hack_Init();
18 | }
19 | if (reason == DLL_PROCESS_DETACH)
20 | FreeLibrary(hL);
21 | return TRUE;
22 | }
23 |
24 | #pragma comment(linker, "/export:adler32=zlib122_org.adler32")
25 |
26 | #pragma comment(linker, "/export:compress2=zlib122_org.compress2")
27 |
28 | #pragma comment(linker, "/export:compress=zlib122_org.compress")
29 |
30 | #pragma comment(linker, "/export:compressBound=zlib122_org.compressBound")
31 |
32 | #pragma comment(linker, "/export:get_crc_table=zlib122_org.get_crc_table")
33 |
34 | #pragma comment(linker, "/export:crc32=zlib122_org.crc32")
35 |
36 | #pragma comment(linker, "/export:deflateSetDictionary=zlib122_org.deflateSetDictionary")
37 |
38 | #pragma comment(linker, "/export:deflatePrime=zlib122_org.deflatePrime")
39 |
40 | #pragma comment(linker, "/export:deflateBound=zlib122_org.deflateBound")
41 |
42 | #pragma comment(linker, "/export:deflate=zlib122_org.deflate")
43 |
44 | #pragma comment(linker, "/export:deflateEnd=zlib122_org.deflateEnd")
45 |
46 | #pragma comment(linker, "/export:deflateCopy=zlib122_org.deflateCopy")
47 |
48 | #pragma comment(linker, "/export:deflateReset=zlib122_org.deflateReset")
49 |
50 | #pragma comment(linker, "/export:deflateParams=zlib122_org.deflateParams")
51 |
52 | #pragma comment(linker, "/export:deflateInit2_=zlib122_org.deflateInit2_")
53 |
54 | #pragma comment(linker, "/export:deflateInit_=zlib122_org.deflateInit_")
55 |
56 | #pragma comment(linker, "/export:gzsetparams=zlib122_org.gzsetparams")
57 |
58 | #pragma comment(linker, "/export:gzungetc=zlib122_org.gzungetc")
59 |
60 | #pragma comment(linker, "/export:gzwrite=zlib122_org.gzwrite")
61 |
62 | #pragma comment(linker, "/export:gzprintf=zlib122_org.gzprintf")
63 |
64 | #pragma comment(linker, "/export:gzputc=zlib122_org.gzputc")
65 |
66 | #pragma comment(linker, "/export:gzputs=zlib122_org.gzputs")
67 |
68 | #pragma comment(linker, "/export:gzflush=zlib122_org.gzflush")
69 |
70 | #pragma comment(linker, "/export:gzrewind=zlib122_org.gzrewind")
71 |
72 | #pragma comment(linker, "/export:gzeof=zlib122_org.gzeof")
73 |
74 | #pragma comment(linker, "/export:gzclose=zlib122_org.gzclose")
75 |
76 | #pragma comment(linker, "/export:gzerror=zlib122_org.gzerror")
77 |
78 | #pragma comment(linker, "/export:gzclearerr=zlib122_org.gzclearerr")
79 |
80 | #pragma comment(linker, "/export:gzopen=zlib122_org.gzopen")
81 |
82 | #pragma comment(linker, "/export:gzdopen=zlib122_org.gzdopen")
83 |
84 | #pragma comment(linker, "/export:gzread=zlib122_org.gzread")
85 |
86 | #pragma comment(linker, "/export:gzgetc=zlib122_org.gzgetc")
87 |
88 | #pragma comment(linker, "/export:gzgets=zlib122_org.gzgets")
89 |
90 | #pragma comment(linker, "/export:gzseek=zlib122_org.gzseek")
91 |
92 | #pragma comment(linker, "/export:gztell=zlib122_org.gztell")
93 |
94 | #pragma comment(linker, "/export:inflateBackInit_=zlib122_org.inflateBackInit_")
95 |
96 | #pragma comment(linker, "/export:inflateBack=zlib122_org.inflateBack")
97 |
98 | #pragma comment(linker, "/export:inflateBackEnd=zlib122_org.inflateBackEnd")
99 |
100 | #pragma comment(linker, "/export:inflateReset=zlib122_org.inflateReset")
101 |
102 | #pragma comment(linker, "/export:inflateInit2_=zlib122_org.inflateInit2_")
103 |
104 | #pragma comment(linker, "/export:inflateInit_=zlib122_org.inflateInit_")
105 |
106 | #pragma comment(linker, "/export:inflate=zlib122_org.inflate")
107 |
108 | #pragma comment(linker, "/export:inflateEnd=zlib122_org.inflateEnd")
109 |
110 | #pragma comment(linker, "/export:inflateSetDictionary=zlib122_org.inflateSetDictionary")
111 |
112 | #pragma comment(linker, "/export:inflateSync=zlib122_org.inflateSync")
113 |
114 | #pragma comment(linker, "/export:inflateSyncPoint=zlib122_org.inflateSyncPoint")
115 |
116 | #pragma comment(linker, "/export:inflateCopy=zlib122_org.inflateCopy")
117 |
118 | #pragma comment(linker, "/export:uncompress=zlib122_org.uncompress")
119 |
120 | #pragma comment(linker, "/export:zlibVersion=zlib122_org.zlibVersion")
121 |
122 | #pragma comment(linker, "/export:zlibCompileFlags=zlib122_org.zlibCompileFlags")
123 |
124 | #pragma comment(linker, "/export:zError=zlib122_org.zError")
125 |
126 |
127 |
--------------------------------------------------------------------------------
/Zlib122_2010/zlib122/stdafx.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2010/zlib122/stdafx.cpp
--------------------------------------------------------------------------------
/Zlib122_2010/zlib122/stdafx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2010/zlib122/stdafx.h
--------------------------------------------------------------------------------
/Zlib122_2010/zlib122/targetver.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2010/zlib122/targetver.h
--------------------------------------------------------------------------------
/Zlib122_2010/zlib122/zlib122.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hpp;hxx;hm;inl;inc;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 |
18 |
19 | Headerdateien
20 |
21 |
22 | Headerdateien
23 |
24 |
25 | Headerdateien
26 |
27 |
28 | Headerdateien
29 |
30 |
31 | Headerdateien
32 |
33 |
34 |
35 |
36 | Quelldateien
37 |
38 |
39 | Quelldateien
40 |
41 |
42 | Quelldateien
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/Zlib122_2011/Release/zlib122.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2011/Release/zlib122.dll
--------------------------------------------------------------------------------
/Zlib122_2011/zlib122.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Express 2012 for Windows Desktop
4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib122", "zlib122\zlib122.vcxproj", "{3EACB588-5852-40CA-BB9C-BB3E3843222A}"
5 | EndProject
6 | Global
7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
8 | Debug|Win32 = Debug|Win32
9 | Release|Win32 = Release|Win32
10 | EndGlobalSection
11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
12 | {3EACB588-5852-40CA-BB9C-BB3E3843222A}.Debug|Win32.ActiveCfg = Debug|Win32
13 | {3EACB588-5852-40CA-BB9C-BB3E3843222A}.Debug|Win32.Build.0 = Debug|Win32
14 | {3EACB588-5852-40CA-BB9C-BB3E3843222A}.Release|Win32.ActiveCfg = Release|Win32
15 | {3EACB588-5852-40CA-BB9C-BB3E3843222A}.Release|Win32.Build.0 = Release|Win32
16 | EndGlobalSection
17 | GlobalSection(SolutionProperties) = preSolution
18 | HideSolutionNode = FALSE
19 | EndGlobalSection
20 | EndGlobal
21 |
--------------------------------------------------------------------------------
/Zlib122_2011/zlib122.v11.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2011/zlib122.v11.suo
--------------------------------------------------------------------------------
/Zlib122_2011/zlib122/Hack.h:
--------------------------------------------------------------------------------
1 | void Hack_Init();
--------------------------------------------------------------------------------
/Zlib122_2011/zlib122/detours.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2011/zlib122/detours.lib
--------------------------------------------------------------------------------
/Zlib122_2011/zlib122/dllmain.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include
3 | #include
4 | #include
5 | #include "Hack.h"
6 | #pragma pack(1)
7 |
8 |
9 |
10 | extern "C" BOOL WINAPI DllMain(HINSTANCE hInst,DWORD reason,LPVOID)
11 | {
12 | static HINSTANCE hL;
13 | if (reason == DLL_PROCESS_ATTACH)
14 | {
15 | hL = LoadLibrary(_T(".\\zlib122_org.dll"));
16 | if (!hL) return false;
17 | Hack_Init();
18 | }
19 | if (reason == DLL_PROCESS_DETACH)
20 | FreeLibrary(hL);
21 | return TRUE;
22 | }
23 |
24 | #pragma comment(linker, "/export:adler32=zlib122_org.adler32")
25 |
26 | #pragma comment(linker, "/export:compress2=zlib122_org.compress2")
27 |
28 | #pragma comment(linker, "/export:compress=zlib122_org.compress")
29 |
30 | #pragma comment(linker, "/export:compressBound=zlib122_org.compressBound")
31 |
32 | #pragma comment(linker, "/export:get_crc_table=zlib122_org.get_crc_table")
33 |
34 | #pragma comment(linker, "/export:crc32=zlib122_org.crc32")
35 |
36 | #pragma comment(linker, "/export:deflateSetDictionary=zlib122_org.deflateSetDictionary")
37 |
38 | #pragma comment(linker, "/export:deflatePrime=zlib122_org.deflatePrime")
39 |
40 | #pragma comment(linker, "/export:deflateBound=zlib122_org.deflateBound")
41 |
42 | #pragma comment(linker, "/export:deflate=zlib122_org.deflate")
43 |
44 | #pragma comment(linker, "/export:deflateEnd=zlib122_org.deflateEnd")
45 |
46 | #pragma comment(linker, "/export:deflateCopy=zlib122_org.deflateCopy")
47 |
48 | #pragma comment(linker, "/export:deflateReset=zlib122_org.deflateReset")
49 |
50 | #pragma comment(linker, "/export:deflateParams=zlib122_org.deflateParams")
51 |
52 | #pragma comment(linker, "/export:deflateInit2_=zlib122_org.deflateInit2_")
53 |
54 | #pragma comment(linker, "/export:deflateInit_=zlib122_org.deflateInit_")
55 |
56 | #pragma comment(linker, "/export:gzsetparams=zlib122_org.gzsetparams")
57 |
58 | #pragma comment(linker, "/export:gzungetc=zlib122_org.gzungetc")
59 |
60 | #pragma comment(linker, "/export:gzwrite=zlib122_org.gzwrite")
61 |
62 | #pragma comment(linker, "/export:gzprintf=zlib122_org.gzprintf")
63 |
64 | #pragma comment(linker, "/export:gzputc=zlib122_org.gzputc")
65 |
66 | #pragma comment(linker, "/export:gzputs=zlib122_org.gzputs")
67 |
68 | #pragma comment(linker, "/export:gzflush=zlib122_org.gzflush")
69 |
70 | #pragma comment(linker, "/export:gzrewind=zlib122_org.gzrewind")
71 |
72 | #pragma comment(linker, "/export:gzeof=zlib122_org.gzeof")
73 |
74 | #pragma comment(linker, "/export:gzclose=zlib122_org.gzclose")
75 |
76 | #pragma comment(linker, "/export:gzerror=zlib122_org.gzerror")
77 |
78 | #pragma comment(linker, "/export:gzclearerr=zlib122_org.gzclearerr")
79 |
80 | #pragma comment(linker, "/export:gzopen=zlib122_org.gzopen")
81 |
82 | #pragma comment(linker, "/export:gzdopen=zlib122_org.gzdopen")
83 |
84 | #pragma comment(linker, "/export:gzread=zlib122_org.gzread")
85 |
86 | #pragma comment(linker, "/export:gzgetc=zlib122_org.gzgetc")
87 |
88 | #pragma comment(linker, "/export:gzgets=zlib122_org.gzgets")
89 |
90 | #pragma comment(linker, "/export:gzseek=zlib122_org.gzseek")
91 |
92 | #pragma comment(linker, "/export:gztell=zlib122_org.gztell")
93 |
94 | #pragma comment(linker, "/export:inflateBackInit_=zlib122_org.inflateBackInit_")
95 |
96 | #pragma comment(linker, "/export:inflateBack=zlib122_org.inflateBack")
97 |
98 | #pragma comment(linker, "/export:inflateBackEnd=zlib122_org.inflateBackEnd")
99 |
100 | #pragma comment(linker, "/export:inflateReset=zlib122_org.inflateReset")
101 |
102 | #pragma comment(linker, "/export:inflateInit2_=zlib122_org.inflateInit2_")
103 |
104 | #pragma comment(linker, "/export:inflateInit_=zlib122_org.inflateInit_")
105 |
106 | #pragma comment(linker, "/export:inflate=zlib122_org.inflate")
107 |
108 | #pragma comment(linker, "/export:inflateEnd=zlib122_org.inflateEnd")
109 |
110 | #pragma comment(linker, "/export:inflateSetDictionary=zlib122_org.inflateSetDictionary")
111 |
112 | #pragma comment(linker, "/export:inflateSync=zlib122_org.inflateSync")
113 |
114 | #pragma comment(linker, "/export:inflateSyncPoint=zlib122_org.inflateSyncPoint")
115 |
116 | #pragma comment(linker, "/export:inflateCopy=zlib122_org.inflateCopy")
117 |
118 | #pragma comment(linker, "/export:uncompress=zlib122_org.uncompress")
119 |
120 | #pragma comment(linker, "/export:zlibVersion=zlib122_org.zlibVersion")
121 |
122 | #pragma comment(linker, "/export:zlibCompileFlags=zlib122_org.zlibCompileFlags")
123 |
124 | #pragma comment(linker, "/export:zError=zlib122_org.zError")
125 |
126 |
127 |
--------------------------------------------------------------------------------
/Zlib122_2011/zlib122/stdafx.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2011/zlib122/stdafx.cpp
--------------------------------------------------------------------------------
/Zlib122_2011/zlib122/stdafx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2011/zlib122/stdafx.h
--------------------------------------------------------------------------------
/Zlib122_2011/zlib122/targetver.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2011/zlib122/targetver.h
--------------------------------------------------------------------------------
/Zlib122_2011/zlib122/zlib122.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hpp;hxx;hm;inl;inc;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 |
18 |
19 | Headerdateien
20 |
21 |
22 | Headerdateien
23 |
24 |
25 | Headerdateien
26 |
27 |
28 | Headerdateien
29 |
30 |
31 |
32 |
33 | Quelldateien
34 |
35 |
36 | Quelldateien
37 |
38 |
39 | Quelldateien
40 |
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/Zlib122_2013/Release/zlib122.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2013/Release/zlib122.dll
--------------------------------------------------------------------------------
/Zlib122_2013/zlib122.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Express 2012 for Windows Desktop
4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib122", "zlib122\zlib122.vcxproj", "{3EACB588-5852-40CA-BB9C-BB3E3843222A}"
5 | EndProject
6 | Global
7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
8 | Debug|Win32 = Debug|Win32
9 | Release|Win32 = Release|Win32
10 | EndGlobalSection
11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
12 | {3EACB588-5852-40CA-BB9C-BB3E3843222A}.Debug|Win32.ActiveCfg = Debug|Win32
13 | {3EACB588-5852-40CA-BB9C-BB3E3843222A}.Debug|Win32.Build.0 = Debug|Win32
14 | {3EACB588-5852-40CA-BB9C-BB3E3843222A}.Release|Win32.ActiveCfg = Release|Win32
15 | {3EACB588-5852-40CA-BB9C-BB3E3843222A}.Release|Win32.Build.0 = Release|Win32
16 | EndGlobalSection
17 | GlobalSection(SolutionProperties) = preSolution
18 | HideSolutionNode = FALSE
19 | EndGlobalSection
20 | EndGlobal
21 |
--------------------------------------------------------------------------------
/Zlib122_2013/zlib122.v11.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2013/zlib122.v11.suo
--------------------------------------------------------------------------------
/Zlib122_2013/zlib122/Hack.h:
--------------------------------------------------------------------------------
1 | void Hack_Init();
--------------------------------------------------------------------------------
/Zlib122_2013/zlib122/detours.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2013/zlib122/detours.lib
--------------------------------------------------------------------------------
/Zlib122_2013/zlib122/dllmain.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include
3 | #include
4 | #include
5 | #include "Hack.h"
6 | #pragma pack(1)
7 |
8 |
9 |
10 | extern "C" BOOL WINAPI DllMain(HINSTANCE hInst,DWORD reason,LPVOID)
11 | {
12 | static HINSTANCE hL;
13 | if (reason == DLL_PROCESS_ATTACH)
14 | {
15 | hL = LoadLibrary(_T(".\\zlib122_org.dll"));
16 | if (!hL) return false;
17 | Hack_Init();
18 | }
19 | if (reason == DLL_PROCESS_DETACH)
20 | FreeLibrary(hL);
21 | return TRUE;
22 | }
23 |
24 | #pragma comment(linker, "/export:adler32=zlib122_org.adler32")
25 |
26 | #pragma comment(linker, "/export:compress2=zlib122_org.compress2")
27 |
28 | #pragma comment(linker, "/export:compress=zlib122_org.compress")
29 |
30 | #pragma comment(linker, "/export:compressBound=zlib122_org.compressBound")
31 |
32 | #pragma comment(linker, "/export:get_crc_table=zlib122_org.get_crc_table")
33 |
34 | #pragma comment(linker, "/export:crc32=zlib122_org.crc32")
35 |
36 | #pragma comment(linker, "/export:deflateSetDictionary=zlib122_org.deflateSetDictionary")
37 |
38 | #pragma comment(linker, "/export:deflatePrime=zlib122_org.deflatePrime")
39 |
40 | #pragma comment(linker, "/export:deflateBound=zlib122_org.deflateBound")
41 |
42 | #pragma comment(linker, "/export:deflate=zlib122_org.deflate")
43 |
44 | #pragma comment(linker, "/export:deflateEnd=zlib122_org.deflateEnd")
45 |
46 | #pragma comment(linker, "/export:deflateCopy=zlib122_org.deflateCopy")
47 |
48 | #pragma comment(linker, "/export:deflateReset=zlib122_org.deflateReset")
49 |
50 | #pragma comment(linker, "/export:deflateParams=zlib122_org.deflateParams")
51 |
52 | #pragma comment(linker, "/export:deflateInit2_=zlib122_org.deflateInit2_")
53 |
54 | #pragma comment(linker, "/export:deflateInit_=zlib122_org.deflateInit_")
55 |
56 | #pragma comment(linker, "/export:gzsetparams=zlib122_org.gzsetparams")
57 |
58 | #pragma comment(linker, "/export:gzungetc=zlib122_org.gzungetc")
59 |
60 | #pragma comment(linker, "/export:gzwrite=zlib122_org.gzwrite")
61 |
62 | #pragma comment(linker, "/export:gzprintf=zlib122_org.gzprintf")
63 |
64 | #pragma comment(linker, "/export:gzputc=zlib122_org.gzputc")
65 |
66 | #pragma comment(linker, "/export:gzputs=zlib122_org.gzputs")
67 |
68 | #pragma comment(linker, "/export:gzflush=zlib122_org.gzflush")
69 |
70 | #pragma comment(linker, "/export:gzrewind=zlib122_org.gzrewind")
71 |
72 | #pragma comment(linker, "/export:gzeof=zlib122_org.gzeof")
73 |
74 | #pragma comment(linker, "/export:gzclose=zlib122_org.gzclose")
75 |
76 | #pragma comment(linker, "/export:gzerror=zlib122_org.gzerror")
77 |
78 | #pragma comment(linker, "/export:gzclearerr=zlib122_org.gzclearerr")
79 |
80 | #pragma comment(linker, "/export:gzopen=zlib122_org.gzopen")
81 |
82 | #pragma comment(linker, "/export:gzdopen=zlib122_org.gzdopen")
83 |
84 | #pragma comment(linker, "/export:gzread=zlib122_org.gzread")
85 |
86 | #pragma comment(linker, "/export:gzgetc=zlib122_org.gzgetc")
87 |
88 | #pragma comment(linker, "/export:gzgets=zlib122_org.gzgets")
89 |
90 | #pragma comment(linker, "/export:gzseek=zlib122_org.gzseek")
91 |
92 | #pragma comment(linker, "/export:gztell=zlib122_org.gztell")
93 |
94 | #pragma comment(linker, "/export:inflateBackInit_=zlib122_org.inflateBackInit_")
95 |
96 | #pragma comment(linker, "/export:inflateBack=zlib122_org.inflateBack")
97 |
98 | #pragma comment(linker, "/export:inflateBackEnd=zlib122_org.inflateBackEnd")
99 |
100 | #pragma comment(linker, "/export:inflateReset=zlib122_org.inflateReset")
101 |
102 | #pragma comment(linker, "/export:inflateInit2_=zlib122_org.inflateInit2_")
103 |
104 | #pragma comment(linker, "/export:inflateInit_=zlib122_org.inflateInit_")
105 |
106 | #pragma comment(linker, "/export:inflate=zlib122_org.inflate")
107 |
108 | #pragma comment(linker, "/export:inflateEnd=zlib122_org.inflateEnd")
109 |
110 | #pragma comment(linker, "/export:inflateSetDictionary=zlib122_org.inflateSetDictionary")
111 |
112 | #pragma comment(linker, "/export:inflateSync=zlib122_org.inflateSync")
113 |
114 | #pragma comment(linker, "/export:inflateSyncPoint=zlib122_org.inflateSyncPoint")
115 |
116 | #pragma comment(linker, "/export:inflateCopy=zlib122_org.inflateCopy")
117 |
118 | #pragma comment(linker, "/export:uncompress=zlib122_org.uncompress")
119 |
120 | #pragma comment(linker, "/export:zlibVersion=zlib122_org.zlibVersion")
121 |
122 | #pragma comment(linker, "/export:zlibCompileFlags=zlib122_org.zlibCompileFlags")
123 |
124 | #pragma comment(linker, "/export:zError=zlib122_org.zError")
125 |
126 |
127 |
--------------------------------------------------------------------------------
/Zlib122_2013/zlib122/stdafx.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2013/zlib122/stdafx.cpp
--------------------------------------------------------------------------------
/Zlib122_2013/zlib122/stdafx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2013/zlib122/stdafx.h
--------------------------------------------------------------------------------
/Zlib122_2013/zlib122/targetver.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2013/zlib122/targetver.h
--------------------------------------------------------------------------------
/Zlib122_2013/zlib122/zlib122.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hpp;hxx;hm;inl;inc;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 |
18 |
19 | Headerdateien
20 |
21 |
22 | Headerdateien
23 |
24 |
25 | Headerdateien
26 |
27 |
28 | Headerdateien
29 |
30 |
31 |
32 |
33 | Quelldateien
34 |
35 |
36 | Quelldateien
37 |
38 |
39 | Quelldateien
40 |
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/Zlib122_2015/Release/zlib122.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2015/Release/zlib122.dll
--------------------------------------------------------------------------------
/Zlib122_2015/zlib122.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Express 2012 for Windows Desktop
4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib122", "zlib122\zlib122.vcxproj", "{3EACB588-5852-40CA-BB9C-BB3E3843222A}"
5 | EndProject
6 | Global
7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
8 | Debug|Win32 = Debug|Win32
9 | Release|Win32 = Release|Win32
10 | EndGlobalSection
11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
12 | {3EACB588-5852-40CA-BB9C-BB3E3843222A}.Debug|Win32.ActiveCfg = Debug|Win32
13 | {3EACB588-5852-40CA-BB9C-BB3E3843222A}.Debug|Win32.Build.0 = Debug|Win32
14 | {3EACB588-5852-40CA-BB9C-BB3E3843222A}.Release|Win32.ActiveCfg = Release|Win32
15 | {3EACB588-5852-40CA-BB9C-BB3E3843222A}.Release|Win32.Build.0 = Release|Win32
16 | EndGlobalSection
17 | GlobalSection(SolutionProperties) = preSolution
18 | HideSolutionNode = FALSE
19 | EndGlobalSection
20 | EndGlobal
21 |
--------------------------------------------------------------------------------
/Zlib122_2015/zlib122.v11.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2015/zlib122.v11.suo
--------------------------------------------------------------------------------
/Zlib122_2015/zlib122/Hack.h:
--------------------------------------------------------------------------------
1 | void Hack_Init();
--------------------------------------------------------------------------------
/Zlib122_2015/zlib122/Helper.h:
--------------------------------------------------------------------------------
1 | void hexdump(void *pAddressIn, long lSize, char* filename)
2 | {
3 | FILE* fp = fopen(filename,"a");
4 | char szBuf[100];
5 | long lIndent = 1;
6 | long lOutLen, lIndex, lIndex2, lOutLen2;
7 | long lRelPos;
8 | struct { char *pData; unsigned long lSize; } buf;
9 | unsigned char *pTmp,ucTmp;
10 | unsigned char *pAddress = (unsigned char *)pAddressIn;
11 | buf.pData = (char *)pAddress;
12 | buf.lSize = lSize;
13 | while (buf.lSize > 0)
14 | {
15 | pTmp = (unsigned char *)buf.pData;
16 | lOutLen = (int)buf.lSize;
17 | if (lOutLen > 16)
18 | lOutLen = 16;
19 | sprintf(szBuf, " > "
20 | " "
21 | " %08lX", pTmp-pAddress);
22 | lOutLen2 = lOutLen;
23 | for(lIndex = 1+lIndent, lIndex2 = 53-15+lIndent, lRelPos = 0;
24 | lOutLen2;
25 | lOutLen2--, lIndex += 2, lIndex2++
26 | )
27 | {
28 | ucTmp = *pTmp++;
29 | sprintf(szBuf + lIndex, "%02X ", (unsigned short)ucTmp);
30 | if(!isprint(ucTmp)) ucTmp = '.';
31 | szBuf[lIndex2] = ucTmp;
32 | if (!(++lRelPos & 3))
33 | { lIndex++; szBuf[lIndex+2] = ' '; }
34 | }
35 | if (!(lRelPos & 3)) lIndex--;
36 | szBuf[lIndex ] = '<';
37 | szBuf[lIndex+1] = ' ';
38 | fprintf(fp,"%s\n", szBuf);
39 | buf.pData += lOutLen;
40 | buf.lSize -= lOutLen;
41 | }
42 | fprintf(fp,"\n");
43 | fclose(fp);
44 | }
45 |
--------------------------------------------------------------------------------
/Zlib122_2015/zlib122/detours.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2015/zlib122/detours.lib
--------------------------------------------------------------------------------
/Zlib122_2015/zlib122/dllmain.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include
3 | #include
4 | #include
5 | #include "Hack.h"
6 | #pragma pack(1)
7 |
8 |
9 |
10 | extern "C" BOOL WINAPI DllMain(HINSTANCE hInst,DWORD reason,LPVOID)
11 | {
12 | static HINSTANCE hL;
13 | if (reason == DLL_PROCESS_ATTACH)
14 | {
15 | hL = LoadLibrary(_T(".\\zlib122_org.dll"));
16 | if (!hL) return false;
17 | Hack_Init();
18 | }
19 | if (reason == DLL_PROCESS_DETACH)
20 | FreeLibrary(hL);
21 | return TRUE;
22 | }
23 |
24 | #pragma comment(linker, "/export:adler32=zlib122_org.adler32")
25 |
26 | #pragma comment(linker, "/export:compress2=zlib122_org.compress2")
27 |
28 | #pragma comment(linker, "/export:compress=zlib122_org.compress")
29 |
30 | #pragma comment(linker, "/export:compressBound=zlib122_org.compressBound")
31 |
32 | #pragma comment(linker, "/export:get_crc_table=zlib122_org.get_crc_table")
33 |
34 | #pragma comment(linker, "/export:crc32=zlib122_org.crc32")
35 |
36 | #pragma comment(linker, "/export:deflateSetDictionary=zlib122_org.deflateSetDictionary")
37 |
38 | #pragma comment(linker, "/export:deflatePrime=zlib122_org.deflatePrime")
39 |
40 | #pragma comment(linker, "/export:deflateBound=zlib122_org.deflateBound")
41 |
42 | #pragma comment(linker, "/export:deflate=zlib122_org.deflate")
43 |
44 | #pragma comment(linker, "/export:deflateEnd=zlib122_org.deflateEnd")
45 |
46 | #pragma comment(linker, "/export:deflateCopy=zlib122_org.deflateCopy")
47 |
48 | #pragma comment(linker, "/export:deflateReset=zlib122_org.deflateReset")
49 |
50 | #pragma comment(linker, "/export:deflateParams=zlib122_org.deflateParams")
51 |
52 | #pragma comment(linker, "/export:deflateInit2_=zlib122_org.deflateInit2_")
53 |
54 | #pragma comment(linker, "/export:deflateInit_=zlib122_org.deflateInit_")
55 |
56 | #pragma comment(linker, "/export:gzsetparams=zlib122_org.gzsetparams")
57 |
58 | #pragma comment(linker, "/export:gzungetc=zlib122_org.gzungetc")
59 |
60 | #pragma comment(linker, "/export:gzwrite=zlib122_org.gzwrite")
61 |
62 | #pragma comment(linker, "/export:gzprintf=zlib122_org.gzprintf")
63 |
64 | #pragma comment(linker, "/export:gzputc=zlib122_org.gzputc")
65 |
66 | #pragma comment(linker, "/export:gzputs=zlib122_org.gzputs")
67 |
68 | #pragma comment(linker, "/export:gzflush=zlib122_org.gzflush")
69 |
70 | #pragma comment(linker, "/export:gzrewind=zlib122_org.gzrewind")
71 |
72 | #pragma comment(linker, "/export:gzeof=zlib122_org.gzeof")
73 |
74 | #pragma comment(linker, "/export:gzclose=zlib122_org.gzclose")
75 |
76 | #pragma comment(linker, "/export:gzerror=zlib122_org.gzerror")
77 |
78 | #pragma comment(linker, "/export:gzclearerr=zlib122_org.gzclearerr")
79 |
80 | #pragma comment(linker, "/export:gzopen=zlib122_org.gzopen")
81 |
82 | #pragma comment(linker, "/export:gzdopen=zlib122_org.gzdopen")
83 |
84 | #pragma comment(linker, "/export:gzread=zlib122_org.gzread")
85 |
86 | #pragma comment(linker, "/export:gzgetc=zlib122_org.gzgetc")
87 |
88 | #pragma comment(linker, "/export:gzgets=zlib122_org.gzgets")
89 |
90 | #pragma comment(linker, "/export:gzseek=zlib122_org.gzseek")
91 |
92 | #pragma comment(linker, "/export:gztell=zlib122_org.gztell")
93 |
94 | #pragma comment(linker, "/export:inflateBackInit_=zlib122_org.inflateBackInit_")
95 |
96 | #pragma comment(linker, "/export:inflateBack=zlib122_org.inflateBack")
97 |
98 | #pragma comment(linker, "/export:inflateBackEnd=zlib122_org.inflateBackEnd")
99 |
100 | #pragma comment(linker, "/export:inflateReset=zlib122_org.inflateReset")
101 |
102 | #pragma comment(linker, "/export:inflateInit2_=zlib122_org.inflateInit2_")
103 |
104 | #pragma comment(linker, "/export:inflateInit_=zlib122_org.inflateInit_")
105 |
106 | #pragma comment(linker, "/export:inflate=zlib122_org.inflate")
107 |
108 | #pragma comment(linker, "/export:inflateEnd=zlib122_org.inflateEnd")
109 |
110 | #pragma comment(linker, "/export:inflateSetDictionary=zlib122_org.inflateSetDictionary")
111 |
112 | #pragma comment(linker, "/export:inflateSync=zlib122_org.inflateSync")
113 |
114 | #pragma comment(linker, "/export:inflateSyncPoint=zlib122_org.inflateSyncPoint")
115 |
116 | #pragma comment(linker, "/export:inflateCopy=zlib122_org.inflateCopy")
117 |
118 | #pragma comment(linker, "/export:uncompress=zlib122_org.uncompress")
119 |
120 | #pragma comment(linker, "/export:zlibVersion=zlib122_org.zlibVersion")
121 |
122 | #pragma comment(linker, "/export:zlibCompileFlags=zlib122_org.zlibCompileFlags")
123 |
124 | #pragma comment(linker, "/export:zError=zlib122_org.zError")
125 |
126 |
127 |
--------------------------------------------------------------------------------
/Zlib122_2015/zlib122/stdafx.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2015/zlib122/stdafx.cpp
--------------------------------------------------------------------------------
/Zlib122_2015/zlib122/stdafx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2015/zlib122/stdafx.h
--------------------------------------------------------------------------------
/Zlib122_2015/zlib122/targetver.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeroKilo/BFP4FToolsWV/5ff83b51021f3f09d21ddb2c9e5e5f01eb07ebdc/Zlib122_2015/zlib122/targetver.h
--------------------------------------------------------------------------------
/Zlib122_2015/zlib122/zlib122.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hpp;hxx;hm;inl;inc;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 |
18 |
19 | Headerdateien
20 |
21 |
22 | Headerdateien
23 |
24 |
25 | Headerdateien
26 |
27 |
28 | Headerdateien
29 |
30 |
31 | Headerdateien
32 |
33 |
34 |
35 |
36 | Quelldateien
37 |
38 |
39 | Quelldateien
40 |
41 |
42 | Quelldateien
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------