UnleashedRecomp/UnleashedRecomp/api/CSD/Manager/csdmScene.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

53 lines
1.5 KiB
C++

#pragma once
#include "SWA.inl"
#include "CSD/Manager/csdmBase.h"
#include "CSD/Manager/csdmResourceBase.h"
#include "CSD/Manager/csdmSceneObserver.h"
#include "CSD/Manager/csdmSubjectBase.h"
namespace Chao::CSD
{
struct Scene;
class CScene;
class CNode;
enum EMotionRepeatType : uint32_t
{
eMotionRepeatType_PlayOnce = 0,
eMotionRepeatType_Loop = 1,
eMotionRepeatType_PingPong = 2,
eMotionRepeatType_PlayThenDestroy = 3
};
class CScene : public CResourceBase<Scene>, SubjectBase<CSceneObserver, CScene>, CBase
{
public:
SWA_INSERT_PADDING(0x60);
be<float> m_PrevMotionFrame;
be<float> m_MotionFrame;
be<float> m_MotionSpeed;
be<float> m_MotionStartFrame;
be<float> m_MotionEndFrame;
SWA_INSERT_PADDING(0x0C);
be<uint32_t> m_MotionDisableFlag;
SWA_INSERT_PADDING(0x10);
be<EMotionRepeatType> m_MotionRepeatType;
SWA_INSERT_PADDING(0x2C);
~CScene();
void Update(float in_DeltaTime = 0.0f);
void Render(void* in_pUnk);
void GetNode(RCPtr<CNode>& out_rResult, const char* in_pName);
bool SetMotion(const char* in_pName);
void SetMotionFrame(float in_MotionFrame);
void SetPosition(float in_X, float in_Y);
void SetHideFlag(uint32_t in_HideFlag);
void SetRotation(float in_Angle);
void SetScale(float in_X, float in_Y);
};
}
#include "CSD/Manager/csdmScene.inl"