-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathMixFileClass.cs
More file actions
93 lines (86 loc) · 4 KB
/
Copy pathMixFileClass.cs
File metadata and controls
93 lines (86 loc) · 4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace PatcherYRpp
{
[StructLayout(LayoutKind.Sequential)]
public struct MixHeaderData
{
public uint ID;
public uint Offset;
public uint Size;
}
[StructLayout(LayoutKind.Sequential)]
public struct MixFileClass
{
public struct GenericMixFiles
{
public Pointer<MixFileClass> RA2MD;
public Pointer<MixFileClass> RA2;
public Pointer<MixFileClass> LANGUAGE;
public Pointer<MixFileClass> LANGMD;
public Pointer<MixFileClass> THEATER_TEMPERAT;
public Pointer<MixFileClass> THEATER_TEMPERATMD;
public Pointer<MixFileClass> THEATER_TEM;
public Pointer<MixFileClass> GENERIC;
public Pointer<MixFileClass> GENERMD;
public Pointer<MixFileClass> THEATER_ISOTEMP;
public Pointer<MixFileClass> THEATER_ISOTEM;
public Pointer<MixFileClass> ISOGEN;
public Pointer<MixFileClass> ISOGENMD;
public Pointer<MixFileClass> MOVIES02D;
public Pointer<MixFileClass> UNKNOWN_1;
public Pointer<MixFileClass> MAIN;
public Pointer<MixFileClass> CONQMD;
public Pointer<MixFileClass> CONQUER;
public Pointer<MixFileClass> CAMEOMD;
public Pointer<MixFileClass> CAMEO;
public Pointer<MixFileClass> CACHEMD;
public Pointer<MixFileClass> CACHE;
public Pointer<MixFileClass> LOCALMD;
public Pointer<MixFileClass> LOCAL;
public Pointer<MixFileClass> NTRLMD;
public Pointer<MixFileClass> NEUTRAL;
public Pointer<MixFileClass> MAPSMD02D;
public Pointer<MixFileClass> MAPS02D;
public Pointer<MixFileClass> UNKNOWN_2;
public Pointer<MixFileClass> UNKNOWN_3;
public Pointer<MixFileClass> SIDEC02DMD;
public Pointer<MixFileClass> SIDEC02D;
};
public static ref GenericList MIXes => ref new Pointer<GenericList>(0xABEFD8).Ref;
public static ref DynamicVectorClass<Pointer<MixFileClass>> Array => ref new Pointer<DynamicVectorClass<Pointer<MixFileClass>>>(0x884D90).Ref;
public static ref DynamicVectorClass<Pointer<MixFileClass>> Array_Alt => ref new Pointer<DynamicVectorClass<Pointer<MixFileClass>>>(0x884DC0).Ref;
public static ref DynamicVectorClass<Pointer<MixFileClass>> Maps => ref new Pointer<DynamicVectorClass<Pointer<MixFileClass>>>(0x884DA8).Ref;
public static ref DynamicVectorClass<Pointer<MixFileClass>> Movies => ref new Pointer<DynamicVectorClass<Pointer<MixFileClass>>>(0x884DE0).Ref;
public static ref MixFileClass MULTIMD => ref new Pointer<MixFileClass>(0x884DD8).Ref;
public static ref MixFileClass MULTI => ref new Pointer<MixFileClass>(0x884DDC).Ref;
public static ref GenericMixFiles Generics => ref new Pointer<GenericMixFiles>(0x884DF8).Ref;
public static unsafe void Bootstrap()
{
var func = (delegate* unmanaged[Thiscall]<void>)0x5301A0;
func();
}
public static unsafe void Constructor(Pointer<MixFileClass> pThis, string fileName)
{
var func = (delegate* unmanaged[Thiscall]<ref MixFileClass, IntPtr, IntPtr, void>)0x5B3C20;
func(ref pThis.Ref, new AnsiString(fileName), new IntPtr(0x886980));
}
public static unsafe void Destructor(Pointer<MixFileClass> pThis)
{
var func = (delegate* unmanaged[Thiscall]<ref MixFileClass, void>)Helpers.GetVirtualFunctionPointer(pThis, 0);
func(ref pThis.Ref);
}
public AnsiStringPointer FileName;
public Bool Blowfish;
public Bool Encryption;
public int CountFiles;
public int FileSize;
public int FileStartOffset;
public Pointer<MixHeaderData> Headers;
public int field_24;
}
}