Skip to content

Commit cf296bc

Browse files
authored
BREAKING Replace reference<> and constant_ptr<> (#27)
1 parent 7d42296 commit cf296bc

File tree

116 files changed

+464
-441
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

116 files changed

+464
-441
lines changed

AITriggerTypeClass.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ class NOVTABLE AITriggerTypeClass : public AbstractTypeClass
9999
if(this->OwnerHouseType == AITriggerHouseType::Single) {
100100
auto const idxHouse = this->HouseIndex;
101101
if(idxHouse != -1) {
102-
HouseName = HouseTypeClass::Array->GetItem(idxHouse)->get_ID();
102+
HouseName = HouseTypeClass::Array.GetItem(idxHouse)->get_ID();
103103
}
104104
} else if(this->OwnerHouseType == AITriggerHouseType::Any) {
105105
HouseName = "<all>";

AbstractClass.h

+4-17
Original file line numberDiff line numberDiff line change
@@ -42,24 +42,11 @@ class NOVTABLE AbstractClass : public IPersistStream, public IRTTITypeInfo, publ
4242
public:
4343
static const AbstractType AbsID = AbstractType::Abstract;
4444

45-
static constexpr constant_ptr<DynamicVectorClass<AbstractClass*>, 0xB0F720u> const Array{};
46-
static constexpr reference<IndexClass<int, int>, 0xB0E840u> const TargetIndex{};
45+
DEFINE_REFERENCE(DynamicVectorClass<AbstractClass*>, Array, 0xB0F720u)
46+
DEFINE_REFERENCE((IndexClass<int, int>), TargetIndex, 0xB0E840u)
4747

48-
const char* GetRTTIName() const
49-
{
50-
return AbstractClass::GetRTTIName(this->WhatAmI());
51-
}
52-
53-
static const char* GetRTTIName(AbstractType abs)
54-
{
55-
constexpr reference<std::pair<const char*, AbstractType>, 0x816EE0, 74> name_val_pairs;
56-
for (const auto& [name, rtti] : name_val_pairs())
57-
{
58-
if (rtti == abs)
59-
return name;
60-
}
61-
return nullptr;
62-
}
48+
const char* GetRTTIName() const { return GetRTTIName(WhatAmI()); }
49+
static const char* GetRTTIName(AbstractType abs) JMP_THIS(0x40DCB0);
6350

6451
//IUnknown
6552
virtual HRESULT __stdcall QueryInterface(REFIID iid, void** ppvObject) R0;

AbstractTypeClass.h

+5-5
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,18 @@ class CCINIClass;
1111

1212
//Macro for the static Array of every AbstractTypeClass!
1313
#define ABSTRACTTYPE_ARRAY(class_name, address) public:\
14-
static constexpr constant_ptr<DynamicVectorClass<class_name*>, address> const Array{};\
14+
DEFINE_REFERENCE(DynamicVectorClass<class_name*>, Array, address)\
1515
static __declspec(noinline) class_name* __fastcall Find(const char* pID)\
1616
{\
17-
for(auto pItem : *Array)\
17+
for(auto pItem : Array)\
1818
if(!_strcmpi(pItem->ID, pID))\
1919
return pItem;\
2020
return nullptr;\
2121
}\
2222
static __declspec(noinline) int __fastcall FindIndex(const char* pID)\
2323
{\
24-
for(int i = 0; i < Array->Count; ++i)\
25-
if(!_strcmpi(Array->Items[i]->ID, pID))\
24+
for(int i = 0; i < Array.Count; ++i)\
25+
if(!_strcmpi(Array[i]->ID, pID))\
2626
return i;\
2727
return -1;\
2828
}
@@ -34,7 +34,7 @@ class NOVTABLE AbstractTypeClass : public AbstractClass
3434
static const AbstractType AbsID = AbstractType::Abstract;
3535

3636
//Static
37-
static constexpr constant_ptr<DynamicVectorClass<AbstractTypeClass*>, 0xA8E968u> const Array{};
37+
DEFINE_REFERENCE(DynamicVectorClass<AbstractTypeClass*>, Array, 0xA8E968u)
3838

3939
//Destructor
4040
virtual ~AbstractTypeClass() RX;

AircraftClass.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class NOVTABLE AircraftClass : public FootClass, public IFlyControl
1515
static constexpr uintptr_t AbsVTable = 0x7E22A4;
1616

1717
//Static
18-
static constexpr constant_ptr<DynamicVectorClass<AircraftClass*>, 0xA8E390u> const Array{};
18+
DEFINE_REFERENCE(DynamicVectorClass<AircraftClass*>, Array, 0xA8E390u)
1919

2020
//IFlyControl
2121
virtual int __stdcall Landing_Altitude() R0;

AircraftTrackerClass.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class TechnoClass;
1212
class AircraftTrackerClass
1313
{
1414
public:
15-
static constexpr reference<AircraftTrackerClass, 0x887888u> Instance { };
15+
DEFINE_REFERENCE(AircraftTrackerClass, Instance, 0x887888u)
1616

1717
// Fills CurrentVector with items from TrackerVectors matching given range around cell.
1818
void FillCurrentVector(CellClass* pCell, int range) { JMP_THIS(0x412B40) }

AlphaLightingRemapClass.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
class AlphaLightingRemapClass
77
{
88
public:
9-
constexpr static reference<DynamicVectorClass<AlphaLightingRemapClass*>, 0x88A080> const Array{};
9+
DEFINE_REFERENCE(DynamicVectorClass<AlphaLightingRemapClass*>, Array, 0x88A080)
1010

1111
// Notice:
1212
// When a ConvertClass is constructed by the game, it will generate [IntensityCount] color

AlphaShapeClass.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class NOVTABLE AlphaShapeClass : public AbstractClass
1515
static const AbstractType AbsID = AbstractType::AlphaShape;
1616

1717
//Static
18-
static constexpr constant_ptr<DynamicVectorClass<AlphaShapeClass*>, 0x88A0F0u> const Array{};
18+
DEFINE_REFERENCE(DynamicVectorClass<AlphaShapeClass*>, Array, 0x88A0F0u)
1919

2020
//IPersist
2121
virtual HRESULT __stdcall GetClassID(CLSID* pClassID) R0;

AnimClass.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class NOVTABLE AnimClass : public ObjectClass
2121
static const AbstractType AbsID = AbstractType::Anim;
2222

2323
//Static
24-
static constexpr constant_ptr<DynamicVectorClass<AnimClass*>, 0xA8E9A8u> const Array{};
24+
DEFINE_REFERENCE(DynamicVectorClass<AnimClass*>, Array, 0xA8E9A8u)
2525

2626
//IPersist
2727
virtual HRESULT __stdcall GetClassID(CLSID* pClassID) R0;
@@ -87,7 +87,7 @@ class NOVTABLE AnimClass : public ObjectClass
8787
ObjectClass * OwnerObject; // set by AnimClass::SetOwnerObject (0x424B50)
8888
DWORD unknown_D0;
8989
LightConvertClass* LightConvert; //Palette?
90-
int LightConvertIndex; // assert( (*ColorScheme::Array)[this->LightConvertIndex] == this->LightConvert ;
90+
int LightConvertIndex; // assert(ColorScheme::Array[this->LightConvertIndex] == this->LightConvert);
9191
char PaletteName[0x20]; // filename set for destroy anims
9292
int TintColor;
9393
int ZAdjust;

Audio.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ struct AudioSampleData {
5050

5151
class AudioIDXData {
5252
public:
53-
static constexpr reference<AudioIDXData*, 0x87E294u> const Instance{};
53+
DEFINE_REFERENCE(AudioIDXData*, Instance, 0x87E294u)
5454

5555
static AudioIDXData* __fastcall Create(const char* pFilename, const char* pPath)
5656
{ JMP_STD(0x4011C0); };
@@ -97,7 +97,7 @@ class Audio {
9797

9898
class AudioStream {
9999
public:
100-
static constexpr reference<AudioStream*, 0xB1D4D8u> const Instance{};
100+
DEFINE_REFERENCE(AudioStream*, Instance, 0xB1D4D8u)
101101

102102
bool __fastcall PlayWAV(const char* pFilename, bool bUnk)
103103
{ JMP_STD(0x407B60); }

BitFont.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
class NOVTABLE BitFont
66
{
77
public:
8-
static constexpr reference<BitFont*, 0x89C4D0> Instance {};
8+
DEFINE_REFERENCE(BitFont*, Instance, 0x89C4D0)
99

1010
private:
1111
BitFont(const char* pFileName) { JMP_THIS(0x433880); }

BitText.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class BitFont;
77
class BitText
88
{
99
public:
10-
static constexpr reference<BitText*, 0x89C4B8> Instance {};
10+
DEFINE_REFERENCE(BitText*, Instance, 0x89C4B8)
1111

1212
private:
1313
BitText() { JMP_THIS(0x434AD0); }

BombListClass.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class TechnoClass;
1313
class BombListClass
1414
{
1515
public:
16-
static constexpr reference<BombListClass, 0x87F5D8u> const Instance{};
16+
DEFINE_REFERENCE(BombListClass, Instance, 0x87F5D8u)
1717

1818
// draws all the visible bombs, expires the outdated ones
1919
void Update()

BuildingClass.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class NOVTABLE BuildingClass : public TechnoClass
3333
static constexpr uintptr_t AbsVTable = 0x7E3EBC;
3434

3535
//Static
36-
static constexpr constant_ptr<DynamicVectorClass<BuildingClass*>, 0xA8EB40u> const Array{};
36+
DEFINE_REFERENCE(DynamicVectorClass<BuildingClass*>, Array, 0xA8EB40u)
3737

3838
//IPersist
3939
virtual HRESULT __stdcall GetClassID(CLSID* pClassID) R0;

BuildingLightClass.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class NOVTABLE BuildingLightClass : public ObjectClass
99
static const AbstractType AbsID = AbstractType::BuildingLight;
1010

1111
//Static
12-
static constexpr constant_ptr<DynamicVectorClass<BuildingLightClass*>, 0x8B4190u> const Array{};
12+
DEFINE_REFERENCE(DynamicVectorClass<BuildingLightClass*>, Array, 0x8B4190u)
1313

1414
//IPersist
1515
virtual HRESULT __stdcall GetClassID(CLSID* pClassID) R0;

BulletClass.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ class NOVTABLE BulletClass : public ObjectClass
2828
static const AbstractType AbsID = AbstractType::Bullet;
2929

3030
//Array
31-
static constexpr constant_ptr<DynamicVectorClass<BulletClass*>, 0xA8ED40u> const Array{};
31+
DEFINE_REFERENCE(DynamicVectorClass<BulletClass*>, Array, 0xA8ED40u)
3232

33-
static constexpr reference<DynamicVectorClass<BulletClass*>, 0x89DE18u> const ScalableBullets{};
33+
DEFINE_REFERENCE(DynamicVectorClass<BulletClass*>, ScalableBullets, 0x89DE18u)
3434

3535
//IPersist
3636
virtual HRESULT __stdcall GetClassID(CLSID* pClassID) R0;

CCINIClass.h

+8-8
Original file line numberDiff line numberDiff line change
@@ -329,20 +329,20 @@ class NOVTABLE CCINIClass : public INIClass
329329
{
330330
public:
331331
//STATIC
332-
static constexpr reference<DWORD, 0xB77E00u> const RulesHash{};
333-
static constexpr reference<DWORD, 0xB77E04u> const ArtHash{};
334-
static constexpr reference<DWORD, 0xB77E08u> const AIHash{};
332+
DEFINE_REFERENCE(DWORD, RulesHash, 0xB77E00u)
333+
DEFINE_REFERENCE(DWORD, ArtHash, 0xB77E04u)
334+
DEFINE_REFERENCE(DWORD, AIHash, 0xB77E08u)
335335

336336
// westwood genius shines again
337337

338338
// this is a pointer in the class
339-
static constexpr reference<CCINIClass*, 0x887048u> const INI_Rules{};
339+
DEFINE_REFERENCE(CCINIClass*, INI_Rules, 0x887048u)
340340

341341
// these are static class variables, why the fuck did you differentiate them, WW?
342-
static constexpr reference<CCINIClass, 0x887128u> const INI_AI{};
343-
static constexpr reference<CCINIClass, 0x887180u> const INI_Art{};
344-
static constexpr reference<CCINIClass, 0x887208u> const INI_UIMD{};
345-
static constexpr reference<CCINIClass, 0x8870C0u> const INI_RA2MD{};
342+
DEFINE_REFERENCE(CCINIClass, INI_AI, 0x887128u)
343+
DEFINE_REFERENCE(CCINIClass, INI_Art, 0x887180u)
344+
DEFINE_REFERENCE(CCINIClass, INI_UIMD, 0x887208u)
345+
DEFINE_REFERENCE(CCINIClass, INI_RA2MD, 0x8870C0u)
346346

347347
//non-static
348348
CCINIClass() : INIClass(false)

CCToolTip.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ class NOVTABLE CCToolTip : public ToolTipManager
99
{
1010
public:
1111
// It's also used in MoneyFormat at 6A934A, not sure what side effect it might leads
12-
static constexpr reference<bool, 0x884B8C> HideName {};
13-
static constexpr reference<CCToolTip*, 0x887368> Instance {};
14-
static constexpr reference<RGBClass, 0xB0FA1C> ToolTipTextColor{};
12+
DEFINE_REFERENCE(bool, HideName, 0x884B8C)
13+
DEFINE_REFERENCE(CCToolTip*, Instance, 0x887368)
14+
DEFINE_REFERENCE(RGBClass, ToolTipTextColor, 0xB0FA1C)
1515

1616
//Properties
1717
public:

CRC.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ class CRCEngine
109109
JMP_THIS(0x4A1DE0);
110110
}
111111

112-
static constexpr reference<unsigned int, 0x81F7B4, 256> const Table {};
112+
DEFINE_ARRAY_REFERENCE(unsigned int, [256], Table, 0x81F7B4)
113113

114114
static int Memory(const void* data, int bytes, int crc)
115115
{

CaptureManagerClass.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class NOVTABLE CaptureManagerClass : public AbstractClass
2424
static const AbstractType AbsID = AbstractType::CaptureManager;
2525

2626
//Static
27-
static constexpr constant_ptr<DynamicVectorClass<CaptureManagerClass*>, 0x89E0F0u> const Array{};
27+
DEFINE_REFERENCE(DynamicVectorClass<CaptureManagerClass*>, Array, 0x89E0F0u)
2828

2929
//IPersist
3030
virtual HRESULT __stdcall GetClassID(CLSID* pClassID) R0;

ColorScheme.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,18 @@ class ColorScheme
2929
};
3030

3131
//global array
32-
static constexpr constant_ptr<DynamicVectorClass<ColorScheme*>, 0xB054D0u> const Array{};
32+
DEFINE_REFERENCE(DynamicVectorClass<ColorScheme*>, Array, 0xB054D0u)
3333
/*
3434
* trap! most schemes are duplicated - ShadeCount 1 and ShadeCount 53
3535
*/
3636
static ColorScheme* Find(const char* pID, int ShadeCount = 1) {
3737
int index = FindIndex(pID, ShadeCount);
38-
return Array->GetItemOrDefault(index);
38+
return Array.GetItemOrDefault(index);
3939
}
4040

4141
static int FindIndex(const char* pID, int ShadeCount = 1) {
42-
for(int i = 0; i < Array->Count; ++i) {
43-
ColorScheme* pItem = Array->GetItem(i);
42+
for(int i = 0; i < Array.Count; ++i) {
43+
ColorScheme* pItem = Array.GetItem(i);
4444
if(!_strcmpi(pItem->ID, pID)) {
4545
if(pItem->ShadeCount == ShadeCount) {
4646
return i;

CommandClass.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ class NOVTABLE CommandClass
1010
{
1111
public:
1212
// static
13-
static constexpr constant_ptr<DynamicVectorClass<CommandClass*>, 0x87F658u> const Array{};
14-
static constexpr reference<IndexClass<unsigned short, CommandClass*>, 0x87F680u> const Hotkeys{};
13+
DEFINE_REFERENCE(DynamicVectorClass<CommandClass*>, Array, 0x87F658u)
14+
DEFINE_REFERENCE((IndexClass<unsigned short, CommandClass*>), Hotkeys, 0x87F680u)
1515

1616
//CommandClass
1717
virtual ~CommandClass() = default;

ConvertClass.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class ConvertClass
2323
{
2424
public:
2525
//global array
26-
static constexpr constant_ptr<DynamicVectorClass<ConvertClass*>, 0x89ECF8u> const Array{};
26+
DEFINE_REFERENCE(DynamicVectorClass<ConvertClass*>, Array, 0x89ECF8u)
2727

2828
static ConvertClass* FindOrAllocate(const char* pFilename);
2929

@@ -72,7 +72,7 @@ class LightConvertClass : public ConvertClass
7272
{
7373
public:
7474
//global array
75-
static constexpr constant_ptr<DynamicVectorClass<LightConvertClass*>, 0x87F698u> const Array{};
75+
DEFINE_REFERENCE(DynamicVectorClass<LightConvertClass*>, Array, 0x87F698u)
7676

7777
//Destructor
7878
virtual ~LightConvertClass() RX;

DiskLaserClass.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ class NOVTABLE DiskLaserClass : public AbstractClass
1616
static const AbstractType AbsID = AbstractType::DiskLaser;
1717

1818
// static
19-
static constexpr constant_ptr<DynamicVectorClass<DiskLaserClass*>, 0x8A0208u> const Array{};
19+
DEFINE_REFERENCE(DynamicVectorClass<DiskLaserClass*>, Array, 0x8A0208u)
2020

2121
static constexpr auto Radius = 240;
22-
static constexpr reference<Point2D, 0x8A0180u, 16> DrawCoords {};
22+
DEFINE_ARRAY_REFERENCE(Point2D, [16], DrawCoords, 0x8A0180u)
2323

2424
//IPersist
2525
virtual HRESULT __stdcall GetClassID(CLSID* pClassID) R0;

DisplayClass.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class NOVTABLE DisplayClass : public MapClass
99
{
1010
public:
1111
//Static
12-
static constexpr constant_ptr<DisplayClass, 0x87F7E8u> const Instance{};
12+
DEFINE_REFERENCE(DisplayClass, Instance, 0x87F7E8u)
1313

1414
//WIP: DisplayClass::TacticalClass goes HERE
1515

Drawing.h

+18-18
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@
1515
class RGBClass
1616
{
1717
public:
18-
static constexpr reference<RGBClass, 0xA80220> White {};
19-
static constexpr reference<int, 0x8A0DD0> const RedShiftLeft {};
20-
static constexpr reference<int, 0x8A0DD4> const RedShiftRight {};
21-
static constexpr reference<int, 0x8A0DE0> const GreenShiftLeft {};
22-
static constexpr reference<int, 0x8A0DE4> const GreenShiftRight {};
23-
static constexpr reference<int, 0x8A0DD8> const BlueShiftLeft {};
24-
static constexpr reference<int, 0x8A0DDC> const BlueShiftRight {};
18+
DEFINE_REFERENCE(RGBClass, White, 0xA80220)
19+
DEFINE_REFERENCE(int, RedShiftLeft, 0x8A0DD0)
20+
DEFINE_REFERENCE(int, RedShiftRight, 0x8A0DD4)
21+
DEFINE_REFERENCE(int, GreenShiftLeft, 0x8A0DE0)
22+
DEFINE_REFERENCE(int, GreenShiftRight, 0x8A0DE4)
23+
DEFINE_REFERENCE(int, BlueShiftLeft, 0x8A0DD8)
24+
DEFINE_REFERENCE(int, BlueShiftRight, 0x8A0DDC)
2525

2626
unsigned char Red;
2727
unsigned char Green;
@@ -115,16 +115,16 @@ struct DirtyAreaStruct
115115
class Drawing
116116
{
117117
public:
118-
constexpr static reference<DynamicVectorClass<DirtyAreaStruct>, 0xB0CE78> DirtyAreas {};
119-
static constexpr reference<ColorStruct, 0xB0FA1C> const TooltipColor {};
118+
DEFINE_REFERENCE(DynamicVectorClass<DirtyAreaStruct>, DirtyAreas, 0xB0CE78)
119+
DEFINE_REFERENCE(ColorStruct, TooltipColor, 0xB0FA1C)
120120
// RGB color mode currently in use, determined by primary drawing surface. The bitshift values below can change depending on this.
121-
static constexpr reference<RGBMode, 0x8205D0> ColorMode {};
122-
static constexpr reference<int, 0x8A0DD0> const RedShiftLeft {};
123-
static constexpr reference<int, 0x8A0DD4> const RedShiftRight {};
124-
static constexpr reference<int, 0x8A0DE0> const GreenShiftLeft {};
125-
static constexpr reference<int, 0x8A0DE4> const GreenShiftRight {};
126-
static constexpr reference<int, 0x8A0DD8> const BlueShiftLeft {};
127-
static constexpr reference<int, 0x8A0DDC> const BlueShiftRight {};
121+
DEFINE_REFERENCE(RGBMode, ColorMode, 0x8205D0)
122+
DEFINE_REFERENCE(int, RedShiftLeft, 0x8A0DD0)
123+
DEFINE_REFERENCE(int, RedShiftRight, 0x8A0DD4)
124+
DEFINE_REFERENCE(int, GreenShiftLeft, 0x8A0DE0)
125+
DEFINE_REFERENCE(int, GreenShiftRight, 0x8A0DE4)
126+
DEFINE_REFERENCE(int, BlueShiftLeft, 0x8A0DD8)
127+
DEFINE_REFERENCE(int, BlueShiftRight, 0x8A0DDC)
128128

129129
//TextBox dimensions for tooltip-style boxes
130130
static RectangleStruct* __fastcall GetTextDimensions(
@@ -228,7 +228,7 @@ class Drawing
228228
class NOVTABLE ABuffer
229229
{
230230
public:
231-
static constexpr reference<ABuffer*, 0x87E8A4> Instance {};
231+
DEFINE_REFERENCE(ABuffer*, Instance, 0x87E8A4)
232232

233233
ABuffer(RectangleStruct Rect) { JMP_THIS(0x410CE0); }
234234
bool BlitTo(Surface* pSurface, int X, int Y, int Offset, int Size) { JMP_THIS(0x410DC0); }
@@ -261,7 +261,7 @@ class NOVTABLE ABuffer
261261
class NOVTABLE ZBuffer
262262
{
263263
public:
264-
static constexpr reference<ZBuffer*, 0x887644> Instance {};
264+
DEFINE_REFERENCE(ZBuffer*, Instance, 0x887644)
265265

266266
ZBuffer(RectangleStruct Rect) { JMP_THIS(0x7BC970); }
267267
bool BlitTo(Surface* pSurface, int X, int Y, int Offset, int Size) { JMP_THIS(0x7BCA50); }

0 commit comments

Comments
 (0)