summaryrefslogtreecommitdiff
path: root/src/KingSystem/Physics/Ragdoll/physRagdollInstanceMgr.h
blob: 6a9c90e88faf521b22c56f86d2f9d325465b8a73 (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 <thread/seadCriticalSection.h>
#include "KingSystem/Utils/Container/LockFreeQueue.h"

namespace sead {
class Heap;
}

namespace ksys::phys {

class RagdollInstance;

class RagdollInstanceMgr {
public:
    RagdollInstanceMgr();
    virtual ~RagdollInstanceMgr();

    void init(sead::Heap* heap);

    bool addInstance(RagdollInstance* instance);
    void removeInstance(RagdollInstance* instance);

    void calc();
    void calc1();

private:
    util::LockFreeQueue<RagdollInstance> mInstances;
    sead::CriticalSection mCS;
};

}  // namespace ksys::phys