summaryrefslogtreecommitdiff
path: root/src/KingSystem/Resource/Actor/resResourceRagdollConfig.h
blob: 46e71cf431ab6ca99397961f64b093e13bd54bb5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#pragma once

#include <array>

#include "KingSystem/Physics/Ragdoll/physRagdollConfig.h"
#include "KingSystem/Resource/resResource.h"
#include "KingSystem/Utils/ParamIO.h"

namespace ksys::res {

class RagdollConfig : public ParamIO, public Resource {
    SEAD_RTTI_OVERRIDE(RagdollConfig, Resource)
public:
    RagdollConfig();
    ~RagdollConfig() override;

    void doCreate_(u8* buffer, u32 buffer_size, sead::Heap* heap) override;
    bool needsParse() const override { return true; }
    bool parse_(u8* data, size_t size, sead::Heap* heap) override;

    const phys::RagdollConfig& getConfig() const { return mConfig; }

    static const int cNumReceiveObjs;
    static const int cNumImpulseObjs;
    static const int cNumImpulseParams;
    static const std::array<char, 64> cImpulseParamNames[10];

private:
    phys::RagdollConfig mConfig;
};

}  // namespace ksys::res