UnleashedRecomp/UnleashedRecomp/api/CSD/Manager/csdmRCPtrAbs.h
Hyper 8f525b571b
Implemented guest-to-host function pointers (#7)
* Implemented guest-to-host function pointers (WIP)

Co-Authored-By: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>

* function: support more types for function pointers

* api: ported BlueBlur headers and misc. research

* Move over function-pointers changes from options-menu branch.

---------

Co-authored-by: Skyth (Asilkan) <19259897+blueskythlikesclouds@users.noreply.github.com>
2024-11-25 13:50:10 +03:00

42 lines
841 B
C++

#pragma once
#include "SWA.inl"
namespace Chao::CSD
{
class RCPtrAbs
{
public:
class RCObject;
struct Vftable
{
be<uint32_t> m_fpDtor;
be<uint32_t> m_fpCreateRCObject;
};
xpointer<Vftable> m_pVftable;
xpointer<RCObject> m_pObject;
RCPtrAbs();
RCPtrAbs(void* in_pMemory);
RCPtrAbs(const RCPtrAbs& in_rOther);
RCPtrAbs(RCPtrAbs&& in_rPtr);
~RCPtrAbs();
RCObject* CreateRCObject();
void AttachAbs(void* in_pMemory);
void* GetAbs() const;
void SetAbs(const RCPtrAbs& in_rPtr);
void* operator*() const;
void* operator->() const;
RCPtrAbs& operator=(const RCPtrAbs& in_rPtr);
operator bool() const;
};
}
#include "CSD/Manager/csdmRCPtrAbs.inl"