summaryrefslogtreecommitdiff
path: root/src/KingSystem/Physics/System/physContactInfoParam.h
blob: 71830afce8263e984fae4df74f55fe8758d49817 (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
33
34
35
36
37
38
39
40
#pragma once

#include <container/seadBuffer.h>
#include <utility/aglParameter.h>
#include <utility/aglParameterList.h>
#include <utility/aglParameterObj.h>

namespace ksys::phys {

struct ContactPointInfoParam : agl::utl::ParameterObj {
    ContactPointInfoParam();

    agl::utl::Parameter<sead::FixedSafeString<32>> name;
    agl::utl::Parameter<sead::FixedSafeString<32>> type;
    agl::utl::Parameter<int> num;
};

struct CollisionInfoParam : agl::utl::ParameterObj {
    CollisionInfoParam();

    agl::utl::Parameter<sead::FixedSafeString<32>> name;
    agl::utl::Parameter<sead::FixedSafeString<32>> type;
};

struct ContactInfoParam : agl::utl::ParameterList {
    ContactInfoParam();
    ~ContactInfoParam() override;
    ContactInfoParam(const ContactInfoParam&) = delete;
    auto operator=(const ContactInfoParam&) = delete;

    bool parse(const agl::utl::ResParameterList& res_list, sead::Heap* heap);

    sead::Buffer<ContactPointInfoParam> contact_point_info;
    sead::Buffer<CollisionInfoParam> collision_info;
    agl::utl::ParameterObj obj;
    agl::utl::Parameter<int> contact_point_info_num;
    agl::utl::Parameter<int> collision_info_num;
};

}  // namespace ksys::phys