summaryrefslogtreecommitdiff
path: root/src/KingSystem/Physics/System/physUserTag.h
blob: ebf5815ca94a07bb077c83dc957944e69d7c7377 (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
#pragma once

#include <prim/seadRuntimeTypeInfo.h>
#include <prim/seadSafeString.h>
#include "KingSystem/Utils/Types.h"

namespace ksys::phys {

class RigidBody;

class UserTag {
    SEAD_RTTI_BASE(UserTag)
public:
    UserTag() = default;

    /// Called when a rigid body goes beyond the broadphase border.
    /// The default implementation just notifies the rigid body of this callback.
    virtual void onMaxPositionExceeded(RigidBody* body);
    virtual void onImpulse(RigidBody* body_a, RigidBody* body_b, float impulse_a);
    virtual void onBodyShapeChanged(RigidBody* body);
    virtual void m5();
    virtual const sead::SafeString& getName() const { return sead::SafeString::cEmptyString; }
    virtual void m7(RigidBody* rigid_body, int a);
    virtual const sead::SafeString& getName(RigidBody* rigid_body) const {
        return sead::SafeString::cEmptyString;
    }
    virtual ~UserTag() = default;
};
KSYS_CHECK_SIZE_NX150(UserTag, 0x8);

}  // namespace ksys::phys