api: update research

This commit is contained in:
Hyper 2024-11-25 04:36:41 +00:00
parent db18572a70
commit 292fe71e05
8 changed files with 51 additions and 12 deletions

View file

@ -0,0 +1,8 @@
#pragma once
#include <SWA.inl>
namespace Chao::CSD
{
class CMotionPattern : CBase {};
}

View file

@ -13,13 +13,15 @@ namespace Chao::CSD
class CNode : public CResourceBase<Node>, SubjectBase<CNodeObserver, CNode>, CBase
{
public:
SWA_INSERT_PADDING(0x50);
SWA_INSERT_PADDING(0x34);
xpointer<CMotionPattern> m_pMotionPattern;
SWA_INSERT_PADDING(0x18);
~CNode();
void SetText(const char* in_pText);
void SetText(const wchar_t* in_pText);
Hedgehog::Math::CVector2 GetPosition() const;
Hedgehog::Math::CVector2* GetPosition() const;
void SetPosition(float in_X, float in_Y);
void SetHideFlag(uint32_t in_HideFlag);
void SetRotation(float in_Rotation);

View file

@ -17,11 +17,11 @@ namespace Chao::CSD
GuestToHostFunction<int>(0x830BF640, this, in_pText);
}
inline Hedgehog::Math::CVector2 CNode::GetPosition() const
inline Hedgehog::Math::CVector2* CNode::GetPosition() const
{
Hedgehog::Math::CVector2 position;
GuestToHostFunction<void>(0x830BF008, this, &position);
return position;
guest_stack_var<Hedgehog::Math::CVector2> pos;
GuestToHostFunction<void>(0x830BF008, pos.get(), this);
return pos.get();
}
inline void CNode::SetPosition(float in_X, float in_Y)

View file

@ -39,7 +39,7 @@ namespace Chao::CSD
void Update(float in_DeltaTime = 0.0f);
void Render(void* in_pUnk);
RCPtr<CNode> GetNode(const char* in_pName) const;
void GetNode(RCPtr<CNode>& out_rResult, const char* in_pName);
bool SetMotion(const char* in_pName);
void SetMotionFrame(float in_MotionFrame);

View file

@ -15,11 +15,9 @@ namespace Chao::CSD
SWA_VIRTUAL_FUNCTION(void, 3, this, in_pUnk);
}
inline RCPtr<CNode> CScene::GetNode(const char* in_pName) const
inline void CScene::GetNode(RCPtr<CNode>& out_rResult, const char* in_pName)
{
RCPtr<CNode> rcNode;
GuestToHostFunction<void>(0x830BCCA8, this, rcNode, in_pName);
return rcNode;
GuestToHostFunction<void>(sub_830BCCA8, &out_rResult, this, in_pName);
}
inline bool CScene::SetMotion(const char* in_pName)

View file

@ -17,6 +17,7 @@
#include "Hedgehog/Universe/Thread/hhParallelJob.h"
#include "CSD/Manager/csdmBase.h"
#include "CSD/Manager/csdmMotionPattern.h"
#include "CSD/Manager/csdmNode.h"
#include "CSD/Manager/csdmNodeObserver.h"
#include "CSD/Manager/csdmObserverBase.h"
@ -36,6 +37,7 @@
#include "SWA/CSD/CsdProject.h"
#include "SWA/CSD/CsdTexListMirage.h"
#include "SWA/CSD/GameObjectCSD.h"
#include "SWA/HUD/GeneralWindow/GeneralWindow.h"
#include "SWA/HUD/Loading/Loading.h"
#include "SWA/HUD/Pause/HudPause.h"
#include "SWA/HUD/Sonic/HudSonicStage.h"

View file

@ -0,0 +1,18 @@
#pragma once
#include <SWA.inl>
namespace SWA
{
class CGeneralWindow
{
public:
SWA_INSERT_PADDING(0xD0);
Chao::CSD::RCPtr<Chao::CSD::CProject> m_rcGeneral;
Chao::CSD::RCPtr<Chao::CSD::CScene> m_rcBg;
Chao::CSD::RCPtr<Chao::CSD::CScene> m_rcWindow;
Chao::CSD::RCPtr<Chao::CSD::CScene> m_rcWindow_2;
Chao::CSD::RCPtr<Chao::CSD::CScene> m_rcWindowSelect;
Chao::CSD::RCPtr<Chao::CSD::CScene> m_rcFooter;
};
}

View file

@ -2,6 +2,8 @@
#include <SWA.inl>
using namespace Chao::CSD;
namespace SWA
{
enum EActionType : uint32_t
@ -47,7 +49,16 @@ namespace SWA
{
public:
xpointer<void> m_pVftable;
SWA_INSERT_PADDING(0xC8);
SWA_INSERT_PADDING(0x2C);
RCPtr<CProject> m_rcPause;
RCPtr<CScene> m_rcBg;
RCPtr<CScene> m_rcBg1;
RCPtr<CScene> m_rcBg1_2;
RCPtr<CScene> m_rcBg1Select;
RCPtr<CScene> m_rcBg1Select_2;
RCPtr<CScene> m_rcStatusTitle;
RCPtr<CScene> m_rcFooterA;
SWA_INSERT_PADDING(0x5C);
be<EActionType> m_Action;
be<EMenuType> m_Menu;
be<EStatusType> m_Status;