mirror of https://github.com/zeldaret/botw.git
189 lines
2.9 KiB
C++
189 lines
2.9 KiB
C++
#pragma once
|
|
|
|
#include <prim/seadEnum.h>
|
|
#include <prim/seadSafeString.h>
|
|
|
|
namespace ksys::phys {
|
|
|
|
enum class ContactLayerType {
|
|
Entity,
|
|
Sensor,
|
|
};
|
|
|
|
SEAD_ENUM(ContactLayer,
|
|
EntityObject,\
|
|
EntitySmallObject,\
|
|
EntityGroundObject,\
|
|
EntityPlayer,\
|
|
EntityNPC,\
|
|
EntityRagdoll,\
|
|
EntityWater,\
|
|
EntityAirWall,\
|
|
EntityGround,\
|
|
EntityGroundSmooth,\
|
|
EntityGroundRough,\
|
|
EntityRope,\
|
|
EntityTree,\
|
|
EntityNPC_NoHitPlayer,\
|
|
EntityHitOnlyWater,\
|
|
EntityWallForClimb,\
|
|
EntityHitOnlyGround,\
|
|
EntityQueryCustomReceiver,\
|
|
EntityForbidden18,\
|
|
EntityNoHit,\
|
|
EntityMeshVisualizer,\
|
|
EntityForbidden21,\
|
|
EntityForbidden22,\
|
|
EntityForbidden23,\
|
|
EntityForbidden24,\
|
|
EntityForbidden25,\
|
|
EntityForbidden26,\
|
|
EntityForbidden27,\
|
|
EntityForbidden28,\
|
|
EntityForbidden29,\
|
|
EntityForbidden30,\
|
|
EntityEnd,\
|
|
SensorObject,\
|
|
SensorSmallObject,\
|
|
SensorPlayer,\
|
|
SensorEnemy,\
|
|
SensorNPC,\
|
|
SensorHorse,\
|
|
SensorRope,\
|
|
SensorAttackPlayer,\
|
|
SensorAttackEnemy,\
|
|
SensorChemical,\
|
|
SensorTerror,\
|
|
SensorHitOnlyInDoor,\
|
|
SensorInDoor,\
|
|
SensorReserve13,\
|
|
SensorReserve14,\
|
|
SensorChemicalElement,\
|
|
SensorAttackCommon,\
|
|
SensorQueryOnly,\
|
|
SensorTree,\
|
|
SensorCamera,\
|
|
SensorMeshVisualizer,\
|
|
SensorNoHit,\
|
|
SensorReserve20,\
|
|
SensorCustomReceiver,\
|
|
SensorEnd)
|
|
|
|
SEAD_ENUM(Material,
|
|
Undefined,\
|
|
Soil,\
|
|
Stone,\
|
|
Sand,\
|
|
Metal,\
|
|
WireNet,\
|
|
Grass,\
|
|
Wood,\
|
|
Water,\
|
|
Snow,\
|
|
Ice,\
|
|
Lava,\
|
|
Bog,\
|
|
HeavySand,\
|
|
Cloth,\
|
|
Glass,\
|
|
Bone,\
|
|
Rope,\
|
|
CharControl,\
|
|
Ragdoll,\
|
|
Surfing,\
|
|
GuardianFoot,\
|
|
HeavySnow,\
|
|
Unused0,\
|
|
LaunchPad,\
|
|
Conveyer,\
|
|
Rail,\
|
|
Grudge,\
|
|
Meat,\
|
|
Vegetable,\
|
|
Bomb,\
|
|
MagicBall,\
|
|
Barrier,\
|
|
AirWall,\
|
|
Misc,\
|
|
GrudgeSlow
|
|
)
|
|
|
|
SEAD_ENUM(GroundHit,
|
|
Player,\
|
|
Animal,\
|
|
NPC,\
|
|
Camera,\
|
|
AttackHitPlayer,\
|
|
AttackHitEnemy,\
|
|
Arrow,\
|
|
Bomb,\
|
|
Magnet,\
|
|
CameraBody,\
|
|
IK,\
|
|
Grudge,\
|
|
MovingTrolley,\
|
|
LineOfSight,\
|
|
Giant,\
|
|
HitAll,\
|
|
Ignore
|
|
)
|
|
|
|
SEAD_ENUM(FloorCode,
|
|
None,\
|
|
Return,\
|
|
FlowStraight,\
|
|
FlowLeft,\
|
|
FlowRight,\
|
|
Slip,\
|
|
NarrowPlace,\
|
|
TopBroadleafTree,\
|
|
TopConiferousTree,\
|
|
Fall,\
|
|
Attach,\
|
|
NoImpulseUpperMove,\
|
|
NoPreventFall
|
|
)
|
|
|
|
SEAD_ENUM(WallCode,
|
|
None,\
|
|
NoClimb,\
|
|
Hang,\
|
|
LadderUp,\
|
|
Ladder,\
|
|
Slip,\
|
|
LadderSide,\
|
|
NoSlipRain,\
|
|
NoDashUpAndNoClimb,\
|
|
IceMakerBlock
|
|
)
|
|
|
|
enum class MotionType {
|
|
Dynamic = 0,
|
|
Fixed = 1,
|
|
Keyframed = 2,
|
|
Unknown = 3,
|
|
};
|
|
|
|
u32 isSensorLayer(ContactLayer layer);
|
|
u32 makeContactLayerMask(ContactLayer layer);
|
|
u32 getContactLayerBase(ContactLayerType type);
|
|
u32 getContactLayerBaseRelativeValue(ContactLayer layer);
|
|
const char* contactLayerToText(ContactLayer layer);
|
|
ContactLayer contactLayerFromText(const sead::SafeString& text);
|
|
|
|
const char* materialToText(Material material);
|
|
Material materialFromText(const sead::SafeString& text);
|
|
|
|
const char* groundHitToText(GroundHit hit);
|
|
GroundHit groundHitFromText(const sead::SafeString& text);
|
|
|
|
const char* floorCodeToText(FloorCode code);
|
|
FloorCode floorCodeFromText(const sead::SafeString& text);
|
|
|
|
const char* wallCodeToText(WallCode code);
|
|
WallCode wallCodeFromText(const sead::SafeString& text);
|
|
|
|
MotionType motionTypeFromText(const sead::SafeString& text);
|
|
|
|
} // namespace ksys::phys
|