Skip to content

Commit

Permalink
AbstractClass.h - adding Interlocked Inc/Dec counter, formatting.
Browse files Browse the repository at this point in the history
Adding BulletClass and ParasiteClass.

ASMMacros.h, *.h - Wheeeeee. perl transformed THISCALL and friends to take an additional argument, recompiled Ares, seems to work fine thus far:

GCC doesn't understand that asm blocks actually return a value
so, for example,
 
 return ho->IsAlliedWith(hv) ? 0x71A97D : 0;

becomes
 
mov     ecx, ebx
mov     eax, 4F9A50h
call    eax
mov     al, 0  <-- shish kabob! :E
cmp     al, 1
sbb     eax, eax
not     eax
and     eax, 71A97Dh

Therefore, new variants of macros are needed for functions returning non-voids. pd, please define these for msvc as well, and remove

#pragma warning(disable: 4035)

, let's treat that warning as an additional shield against future decl quirks, not as something to ignore. Let me know if that perlgrinder blew anything up.

git-svn-id: svn://svn.renegadeprojects.com/yrpp/trunk@123 bbc44d77-a14d-0410-bbfb-905795908d03
  • Loading branch information
DCoderLT committed Aug 17, 2008
1 parent e7e19e2 commit 43eb2f8
Show file tree
Hide file tree
Showing 76 changed files with 1,562 additions and 1,229 deletions.
184 changes: 124 additions & 60 deletions ASMMacros.h

Large diffs are not rendered by default.

24 changes: 12 additions & 12 deletions AbstractClass.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class AbstractClass : public IPersistStream, public IRTTITypeInfo, public INotic
public:
//IUnknown
virtual HRESULT _stdcall QueryInterface(REFIID iid, void** ppvObject)
{ PUSH_VAR32(ppvObject); PUSH_VAR32(iid); PUSH_VAR32(this); CALL(0x410260); }
{ PUSH_VAR32(ppvObject); PUSH_VAR32(iid); PUSH_VAR32(this); CALL_RET(0x410260, HRESULT); }

virtual ULONG _stdcall AddRef()
{ return 1; }
Expand All @@ -49,14 +49,14 @@ class AbstractClass : public IPersistStream, public IRTTITypeInfo, public INotic
virtual HRESULT _stdcall Save(IStream* pStm, BOOL fClearDirty) = 0;

virtual HRESULT _stdcall GetSizeMax(ULARGE_INTEGER* pcbSize)
{ PUSH_VAR32(pcbSize); PUSH_VAR32(this); CALL(0x4103E0);}
{ PUSH_VAR32(pcbSize); PUSH_VAR32(this); CALL_RET(0x4103E0, HRESULT);}

//IRTTITypeInfo
virtual eAbstractType _stdcall
What_Am_I(){ PUSH_VAR32(this); CALL(0x410210); }
virtual eAbstractType _stdcall What_Am_I()
{ PUSH_VAR32(this); CALL_RET(0x410210, eAbstractType); }

virtual int _stdcall Fetch_ID()
{ PUSH_VAR32(this); CALL(0x410220); }
{ PUSH_VAR32(this); CALL_RET(0x410220, int); }

virtual void _stdcall Create_ID()
{ PUSH_VAR32(this); CALL(0x410230); }
Expand All @@ -81,23 +81,23 @@ class AbstractClass : public IPersistStream, public IRTTITypeInfo, public INotic
virtual void CalculateChecksum(void* pChkSum)
{ PUSH_VAR32(pChkSum); THISCALL(0x410410); }

virtual int GetOwningHouseIndex()
virtual int GetOwningHouseIndex()
{ return -1; }

virtual HouseClass* GetOwningHouse()
{ return NULL; }

virtual int GetArrayIndex()
virtual int GetArrayIndex()
{ return 0; }

virtual bool IsDead()
{ return true; }

virtual CoordStruct* GetCoords(CoordStruct* pCrd)
{ PUSH_VAR32(pCrd); THISCALL(0x4104C0); }
{ PUSH_VAR32(pCrd); THISCALL_RET(0x4104C0, CoordStruct*); }

virtual CoordStruct* GetCoords_(CoordStruct* pCrd)
{ PUSH_VAR32(pCrd); THISCALL(0x4104F0); }
{ PUSH_VAR32(pCrd); THISCALL_RET(0x4104F0, CoordStruct*); }

virtual bool IsOnFloor()
{ return false; }
Expand All @@ -106,12 +106,12 @@ class AbstractClass : public IPersistStream, public IRTTITypeInfo, public INotic
{ return false; }

virtual CoordStruct* GetCoords__(CoordStruct* pCrd)
{ PUSH_VAR32(pCrd); THISCALL(0x410540);}
{ PUSH_VAR32(pCrd); THISCALL_RET(0x410540, CoordStruct*); }

virtual void Update() { }

//Constructor
AbstractClass()
AbstractClass()
{ THISCALL(0x410170); }

//non-virtual
Expand All @@ -128,7 +128,7 @@ class AbstractClass : public IPersistStream, public IRTTITypeInfo, public INotic
PROPERTY(DWORD, unknown_10);
PROPERTY(DWORD, AbstractFlags); //Flags, see ABSFLAGS definitions in GeneralDefinitions.
PROPERTY(DWORD, unknown_18);
PROPERTY(DWORD, unknown_1C);
PROPERTY(LONG, InterlockedCounter);
PROPERTY(bool, bIsDirty); //For IUnknown.
};

Expand Down
9 changes: 3 additions & 6 deletions AbstractTypeClass.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,17 +54,14 @@ class AbstractTypeClass : public AbstractClass
virtual void LoadTheaterSpecificArt(eTheater th_type) { }

virtual bool LoadFromINI(CCINIClass* pINI)
{ PUSH_VAR32(pINI); THISCALL(0x410A60); }
{ PUSH_VAR32(pINI); THISCALL_RET(0x410A60, bool); }

virtual bool SaveToINI(CCINIClass* pINI)
{ PUSH_VAR32(pINI); THISCALL(0x410B90); }
{ PUSH_VAR32(pINI); THISCALL_RET(0x410B90, bool); }

//Constructor
AbstractTypeClass(const char* id):AbstractClass(false)
{
PUSH_VAR32(id);
THISCALL(0x410800);
}
{ PUSH_VAR32(id); THISCALL(0x410800); }

protected:
AbstractTypeClass():AbstractClass(false){};
Expand Down
21 changes: 9 additions & 12 deletions ActionClass.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ class ActionClass : public AbstractClass

//IPersist
virtual HRESULT _stdcall GetClassID(CLSID* pClassID)
{ PUSH_VAR32(pClassID); PUSH_VAR32(this); CALL(0x6E3D70); }
{ PUSH_VAR32(pClassID); PUSH_VAR32(this); CALL_RET(0x6E3D70, HRESULT); }

//IPersistStream
virtual HRESULT _stdcall Load(IStream* pStm)
{ PUSH_VAR32(pStm); PUSH_VAR32(this); CALL(0x6E3D80); }
{ PUSH_VAR32(pStm); PUSH_VAR32(this); CALL_RET(0x6E3D80, HRESULT); }
virtual HRESULT _stdcall Save(IStream* pStm,BOOL fClearDirty)
{ PUSH_VAR32(fClearDirty); PUSH_VAR32(pStm); PUSH_VAR32(this); CALL(0x6E3E30); }
{ PUSH_VAR32(fClearDirty); PUSH_VAR32(pStm); PUSH_VAR32(this); CALL_RET(0x6E3E30, HRESULT); }

//Destructor
virtual ~ActionClass()
Expand All @@ -50,20 +50,17 @@ class ActionClass : public AbstractClass

// fuck if I know what's the purpose of this, returns a bitfield of flags for trigger logic
static int GetFlags(int actionKind)
{ SET_REG32(ecx, actionKind); CALL(0x6E3EE0); }
{ SET_REG32(ecx, actionKind); CALL_RET(0x6E3EE0, int); }

// transforms actionKind to a number saying what to parse arguments as (team/tag/trigger id, waypoint, integer, etc)
static int GetMode(int actionKind)
{ SET_REG32(ecx, actionKind); CALL(0x6E3B60); }
{ SET_REG32(ecx, actionKind); CALL_RET(0x6E3B60, int); }

// main brain, returns whether succeeded (mostly, no consistency in results what so ever)
// trigger fires all actions regardless of result of this
bool Execute(HouseClass *House, ObjectClass *Object, TriggerClass *trigger, wXY *pos)
{ PUSH_VAR32(pos);
PUSH_VAR32(trigger);
PUSH_VAR32(Object);
PUSH_VAR32(House);
THISCALL(0x6DD8B0); }
{ PUSH_VAR32(pos); PUSH_VAR32(trigger); PUSH_VAR32(Object); PUSH_VAR32(House);
THISCALL_RET(0x6DD8B0, bool); }

// BIG LIST OF EXECUTE'S SLAVE FUNCTIONS - feel free to use

Expand All @@ -78,7 +75,7 @@ class ActionClass : public AbstractClass
PUSH_VAR32(TriggerType);\
PUSH_VAR32(SourceObject);\
PUSH_VAR32(TargetHouse);\
THISCALL(addr); }
THISCALL_RET(addr, bool); }
#endif
ACTION_FUNC(LightningStrikeAt, 0x6E0050);
ACTION_FUNC(RemoveParticleSystemsAt, 0x6E0080);
Expand Down Expand Up @@ -277,7 +274,7 @@ class ActionClass : public AbstractClass
// WHEEEEEW. End of slave functions.

HouseClass * FindHouseByIndex(TriggerClass *Trigger, int idx)
{ PUSH_VAR32(Trigger); PUSH_VAR32(idx); THISCALL(0x6E45E0); }
{ PUSH_VAR32(Trigger); PUSH_VAR32(idx); THISCALL_RET(0x6E45E0, HouseClass *); }

// no duplication, please.. it's a waste of good coding
int GetIndexInArray() { return this->get_IndexInArray(); }
Expand Down
91 changes: 45 additions & 46 deletions AircraftClass.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class AircraftClass : public FootClass, public FlasherClass

//IUnknown
virtual HRESULT _stdcall QueryInterface(REFIID iid, void** ppvObject)
{ PUSH_VAR32(ppvObject); PUSH_VAR32(iid); PUSH_VAR32(this); CALL(0x414290); }
{ PUSH_VAR32(ppvObject); PUSH_VAR32(iid); PUSH_VAR32(this); CALL_RET(0x414290, HRESULT); }

virtual ULONG _stdcall AddRef()
{ return 1; }
Expand All @@ -32,27 +32,27 @@ class AircraftClass : public FootClass, public FlasherClass

//IFlyControl
virtual int _stdcall Landing_Altitude()
{ PUSH_VAR32(this); CALL(0x41B6A0); }
{ PUSH_VAR32(this); CALL_RET(0x41B6A0, int); }
virtual int _stdcall Landing_Direction()
{ PUSH_VAR32(this); CALL(0x41B760); }
{ PUSH_VAR32(this); CALL_RET(0x41B760, int); }
virtual long _stdcall Is_Loaded()
{ PUSH_VAR32(this); CALL(0x41B7D0); }
{ PUSH_VAR32(this); CALL_RET(0x41B7D0, long); }
virtual long _stdcall Is_Strafe()
{ PUSH_VAR32(this); CALL(0x41B7F0); }
{ PUSH_VAR32(this); CALL_RET(0x41B7F0, long); }
virtual long _stdcall Is_Fighter()
{ PUSH_VAR32(this); CALL(0x41B840); }
{ PUSH_VAR32(this); CALL_RET(0x41B840, long); }
virtual long _stdcall Is_Locked()
{ PUSH_VAR32(this); CALL(0x41B860); }
{ PUSH_VAR32(this); CALL_RET(0x41B860, long); }

//IPersist
virtual HRESULT _stdcall GetClassID(CLSID* pClassID)
{ PUSH_VAR32(pClassID); PUSH_VAR32(this); CALL(0x41C190); }
{ PUSH_VAR32(pClassID); PUSH_VAR32(this); CALL_RET(0x41C190, HRESULT); }

//IPersistStream
virtual HRESULT _stdcall Load(IStream* pStm)
{ PUSH_VAR32(pStm); PUSH_VAR32(this); CALL(0x41B430); }
{ PUSH_VAR32(pStm); PUSH_VAR32(this); CALL_RET(0x41B430, HRESULT); }
virtual HRESULT _stdcall Save(IStream* pStm, BOOL fClearDirty)
{ PUSH_VAR32(fClearDirty); PUSH_VAR32(pStm); PUSH_VAR32(this); CALL(0x41B5C0); }
{ PUSH_VAR32(fClearDirty); PUSH_VAR32(pStm); PUSH_VAR32(this); CALL_RET(0x41B5C0, HRESULT); }

//Destructor
virtual ~AircraftClass()
Expand All @@ -70,110 +70,109 @@ class AircraftClass : public FootClass, public FlasherClass
virtual void CalculateChecksum(void* pChkSum)
{ PUSH_VAR32(pChkSum); THISCALL(0x41B610); }
virtual bool IsOnFloor()
{ THISCALL(0x41B980); }
{ THISCALL_RET(0x41B980, bool); }
virtual bool IsInAir()
{ THISCALL(0x41B920); }
{ THISCALL_RET(0x41B920, bool); }
virtual void Update()
{ THISCALL(0x414BB0); }

//ObjectClass
virtual eAction MouseOverCell(CellStruct uCell, bool bUnk1, bool bUnk2)
{ PUSH_VAR8(bUnk2); PUSH_VAR8(bUnk1); PUSH_VAR32(uCell); THISCALL(0x417F80); }
{ PUSH_VAR8(bUnk2); PUSH_VAR8(bUnk1); PUSH_VAR32(uCell); THISCALL_RET(0x417F80, eAction); }
virtual eAction MouseOverObject(ObjectClass* pObj, bool bUnk1)
{ PUSH_VAR8(bUnk1); PUSH_VAR32(pObj); THISCALL(0x417CC0); }
{ PUSH_VAR8(bUnk1); PUSH_VAR32(pObj); THISCALL_RET(0x417CC0, eAction); }
virtual bool CanBeUndeployed()
{ return IsOnFloor(); }
virtual ObjectTypeClass* GetType()
{ return Type; }
virtual wchar_t* GetUIName()
{ THISCALL(0x41C1D0); }
{ THISCALL_RET(0x41C1D0, wchar_t*); }
virtual bool Put(CoordStruct* pCrd, eDirection dFaceDir)
{ PUSH_VAR32(dFaceDir); PUSH_VAR32(pCrd); THISCALL(0x414310); }
{ PUSH_VAR32(dFaceDir); PUSH_VAR32(pCrd); THISCALL_RET(0x414310, bool); }
virtual int KickOutUnit(TechnoClass* pTechno, CellStruct uCell)
{ PUSH_VAR32(uCell); PUSH_VAR32(pTechno); THISCALL(0x415B10); }
{ PUSH_VAR32(uCell); PUSH_VAR32(pTechno); THISCALL_RET(0x415B10, int); }
virtual void Draw(Point2D* pCoords, DWORD dwUnk)
{ PUSH_VAR32(dwUnk); PUSH_VAR32(pCoords); THISCALL(0x4144B0); }
virtual void See(DWORD dwUnk, DWORD dwUnk2)
{ PUSH_VAR32(dwUnk2); PUSH_VAR32(dwUnk); THISCALL(0x41ADF0); }
virtual bool vt_entry_140(DWORD dwUnk, DWORD dwUnk2, DWORD dwUnk3, DWORD dwUnk4)
{ PUSH_VAR32(dwUnk4); PUSH_VAR32(dwUnk3); PUSH_VAR32(dwUnk2); PUSH_VAR32(dwUnk);
THISCALL(0x417C80); }
THISCALL_RET(0x417C80, bool); }
virtual bool vt_entry_144(DWORD dwUnk, DWORD dwUnk2, DWORD dwUnk3)
{ PUSH_VAR32(dwUnk3); PUSH_VAR32(dwUnk2); PUSH_VAR32(dwUnk);
THISCALL(0x417BD0); }
THISCALL_RET(0x417BD0, bool); }
virtual void vt_entry_194(DWORD dwUnk, DWORD dwUnk2, DWORD dwUnk3)
{ PUSH_VAR32(dwUnk3); PUSH_VAR32(dwUnk2); PUSH_VAR32(dwUnk); THISCALL(0x4190B0); }
virtual DWORD vt_entry_1AC(DWORD dwUnk, DWORD dwUnk2, DWORD dwUnk3, DWORD dwUnk4, DWORD dwUnk5)
{ PUSH_VAR32(dwUnk5); PUSH_VAR32(dwUnk4); PUSH_VAR32(dwUnk3); PUSH_VAR32(dwUnk2); PUSH_VAR32(dwUnk);
THISCALL(0x4196B0); }
THISCALL_RET(0x4196B0, DWORD); }

//MissionClass
virtual bool QueueMission(eMission mission, bool start_mission)
{ PUSH_VAR8(start_mission); PUSH_VAR32(mission); THISCALL(0x41BA90); }
{ PUSH_VAR8(start_mission); PUSH_VAR32(mission); THISCALL_RET(0x41BA90, bool); }
virtual bool NextMission()
{ THISCALL(0x41B870); }
{ THISCALL_RET(0x41B870, bool); }
virtual void ForceMission(eMission mission)
{ PUSH_VAR32(mission); THISCALL(0x41B9F0); }

virtual void vt_entry_1F4(eMission mission)
{ PUSH_VAR32(mission); THISCALL(0x41BB30); }
virtual bool vt_entry_200()
{ THISCALL(0x41B5E0); }

{ THISCALL_RET(0x41B5E0, bool); }
virtual int Mission_Attack()
{ THISCALL(0x417FE0); }
{ THISCALL_RET(0x417FE0, int); }
virtual int Mission_Guard()
{ THISCALL(0x41A5C0); }
{ THISCALL_RET(0x41A5C0, int); }
virtual int Mission_AreaGuard()
{ THISCALL(0x41A940); }
{ THISCALL_RET(0x41A940, int); }
virtual int Mission_Hunt()
{ THISCALL(0x414A80); }
{ THISCALL_RET(0x414A80, int); }
virtual int Mission_Move()
{ THISCALL(0x4166C0); }
{ THISCALL_RET(0x4166C0, int); }
virtual int Mission_Retreat()
{ THISCALL(0x415A50); }
{ THISCALL_RET(0x415A50, int); }
virtual int Mission_Unload()
{ THISCALL(0x4151E0); }
{ THISCALL_RET(0x4151E0, int); }
virtual int Mission_Enter()
{ THISCALL(0x419C80); }
{ THISCALL_RET(0x419C80, int); }
virtual int Mission_Patrol()
{ THISCALL(0x417300); }
{ THISCALL_RET(0x417300, int); }
virtual int Mission_ParaDropApproach()
{ THISCALL(0x4158E0); }
{ THISCALL_RET(0x4158E0, int); }
virtual int Mission_ParaDropOverfly()
{ THISCALL(0x415960); }
{ THISCALL_RET(0x415960, int); }
virtual int Mission_SpyPlaneApproach()
{ THISCALL(0x4155F0); }
{ THISCALL_RET(0x4155F0, int); }
virtual int Mission_SpyPlaneOverfly()
{ THISCALL(0x4157C0); }
{ THISCALL_RET(0x4157C0, int); }

//TechnoClass
virtual FacingStruct* vt_entry_2A8(FacingStruct* pFacing)
{ PUSH_VAR32(pFacing); THISCALL(0x41C1E0); }
{ PUSH_VAR32(pFacing); THISCALL_RET(0x41C1E0, FacingStruct*); }
virtual DWORD vt_entry_304(DWORD dwUnk, DWORD dwUnk2)
{ PUSH_VAR32(dwUnk2); PUSH_VAR32(dwUnk); THISCALL(0x4195A0); }
{ PUSH_VAR32(dwUnk2); PUSH_VAR32(dwUnk); THISCALL_RET(0x4195A0, DWORD); }
virtual DWORD vt_entry_308(DWORD dwUnk)
{ PUSH_VAR32(dwUnk); THISCALL(0x41A570); }
{ PUSH_VAR32(dwUnk); THISCALL_RET(0x41A570, DWORD); }
virtual bool vt_entry_378(DWORD dwUnk, DWORD dwUnk2, DWORD dwUnk3, DWORD dwUnk4)
{ PUSH_VAR32(dwUnk4); PUSH_VAR32(dwUnk3); PUSH_VAR32(dwUnk2); PUSH_VAR32(dwUnk); THISCALL(0x417CA0); }
{ PUSH_VAR32(dwUnk4); PUSH_VAR32(dwUnk3); PUSH_VAR32(dwUnk2); PUSH_VAR32(dwUnk); THISCALL_RET(0x417CA0, bool); }
virtual void DecreaseAmmo()
{ }
virtual int vt_entry_3C0(DWORD dwUnk, DWORD dwUnk2, DWORD dwUnk3, DWORD dwUnk4)
{ PUSH_VAR32(dwUnk4); PUSH_VAR32(dwUnk3); PUSH_VAR32(dwUnk2); PUSH_VAR32(dwUnk); THISCALL(0x41A9E0); }
{ PUSH_VAR32(dwUnk4); PUSH_VAR32(dwUnk3); PUSH_VAR32(dwUnk2); PUSH_VAR32(dwUnk); THISCALL_RET(0x41A9E0, int); }
virtual DWORD Fire(ObjectClass* pTarget, int nWeapon)
{ PUSH_VAR32(nWeapon); PUSH_VAR32(pTarget); THISCALL(0x415EE0); }
{ PUSH_VAR32(nWeapon); PUSH_VAR32(pTarget); THISCALL_RET(0x415EE0, DWORD); }
virtual bool IsNotWarpingIn()
{ return unknown_bool_6D5; } // not chronoshifting in
virtual void SetDestination(CellClass* pCell, bool bUnk)
{ PUSH_VAR8(bUnk); PUSH_VAR32(pCell); THISCALL(0x41AA80); }
virtual bool vt_entry_484(DWORD dwUnk, DWORD dwUnk2)
{ PUSH_VAR32(dwUnk2); PUSH_VAR32(dwUnk); THISCALL(0x4176F0); }
{ PUSH_VAR32(dwUnk2); PUSH_VAR32(dwUnk); THISCALL_RET(0x4176F0, bool); }

//FootClass
virtual bool vt_entry_4DC()
{ THISCALL(0x41B890); }
{ THISCALL_RET(0x41B890, bool); }
virtual DWORD vt_entry_528(DWORD dwUnk, DWORD dwUnk2, DWORD dwUnk3)
{ PUSH_VAR32(dwUnk3); PUSH_VAR32(dwUnk2); PUSH_VAR32(dwUnk); THISCALL(0x41BBD0); }
{ PUSH_VAR32(dwUnk3); PUSH_VAR32(dwUnk2); PUSH_VAR32(dwUnk); THISCALL_RET(0x41BBD0, DWORD); }

//Constructor
AircraftClass(AircraftTypeClass* pType, HouseClass* pOwner):FootClass(false)
Expand Down
11 changes: 5 additions & 6 deletions AircraftTypeClass.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ class AircraftTypeClass : public TechnoTypeClass

//IPersist
virtual HRESULT _stdcall GetClassID(CLSID* pClassID)
{ PUSH_VAR32(pClassID); PUSH_VAR32(this); CALL(0x41CEB0); }
{ PUSH_VAR32(pClassID); PUSH_VAR32(this); CALL_RET(0x41CEB0, HRESULT); }

//IPersistStream
virtual HRESULT _stdcall Load(IStream* pStm)
{ PUSH_VAR32(pStm); PUSH_VAR32(this); CALL(0x41CE20); }
{ PUSH_VAR32(pStm); PUSH_VAR32(this); CALL_RET(0x41CE20, HRESULT); }
virtual HRESULT _stdcall Save(IStream* pStm, BOOL fClearDirty)
{ PUSH_VAR32(fClearDirty); PUSH_VAR32(pStm); PUSH_VAR32(this); CALL(0x41CE90); }
{ PUSH_VAR32(fClearDirty); PUSH_VAR32(pStm); PUSH_VAR32(this); CALL_RET(0x41CE90, HRESULT); }

//Destructor
virtual ~AircraftTypeClass()
Expand All @@ -35,16 +35,15 @@ class AircraftTypeClass : public TechnoTypeClass

//AbstractTypeClass
virtual bool LoadFromINI(CCINIClass* pINI)
{ PUSH_VAR32(pINI); THISCALL(0x41CC20); }
{ PUSH_VAR32(pINI); THISCALL_RET(0x41CC20, bool); }

//ObjectTypeClass
virtual void vt_entry_7C(DWORD dwUnk)
{ PUSH_VAR32(dwUnk); THISCALL(0x41CBF0); }
virtual bool SpawnAtMapCoords(CellStruct* pMapCoords, HouseClass* pOwner)
{ return false; }

virtual ObjectClass* CreateObject(HouseClass* pOwner)
{ PUSH_VAR32(pOwner); THISCALL(0x41CB20); }
{ PUSH_VAR32(pOwner); THISCALL_RET(0x41CB20, ObjectClass*); }

virtual void vt_entry_90(DWORD dwUnk)
{ PUSH_VAR32(dwUnk); THISCALL(0x41CB70); }
Expand Down
Loading

0 comments on commit 43eb2f8

Please sign in to comment.