21#include "tsl/ordered_map.h"
140 tsl::ordered_map<action::Id, std::vector<HitboxConfig>>
154bool IsOfType(
const std::filesystem::path& path);
202 u32 offset_colbox_enviroment = 0;
203 u32 offset_colbox_entities = 0;
204 u32 offset_colbox_dmg = 0;
205 u32 offset_colbox_unknown = 0;
206 u32 offset_colbox_attack = 0;
208 u32 offset_unknown = 0;
209 u32 offset_reserved_0 = 0;
210 u32 offset_reserved_1 = 0;
211 u32 offset_reserved_2 = 0;
212 u32 offset_reserved_3 = 0;
213 u16 num_colbox_attack = 0;
215 u16 num_colbox_enviroment = 0;
216 u16 num_colbox_entities = 0;
217 u16 num_colbox_dmg = 0;
218 u16 num_colbox_unknown = 0;
219 u16 num_reserved_0 = 0;
220 u16 num_reserved_1 = 0;
221 u16 num_reserved_2 = 0;
222 u16 num_reserved_3 = 0;
225static_assert(
sizeof(RHeader) == 0x40);
235static_assert(
sizeof(RCollisionBox14) == 0x14);
240 Vec3<f32> translation{0.0f};
242 f32 unknown14 = 0.0f;
245static_assert(
sizeof(RCollisionBox18) == 0x18);
248 u32 offset_hitboxes = 0;
249 u16 num_hitboxes = 0;
254static_assert(
sizeof(RHitboxHeader) == 0x8);
257 u32 offset_colboxes = 0;
258 u16 num_colboxes = 0;
267static_assert(
sizeof(RHitbox) == 0x10);
271 u16 distance_attack = 0;
272 Vec3<f32> translation{0.0f};
273 Vec3<f32> translation_2{0.0f};
278static_assert(
sizeof(RCollisionBox20) == 0x20);
280struct RCollisionBoxConfig {
282 std::vector<RCollisionBox14> col_enviroment;
283 std::vector<RCollisionBox14> colbox_unknown;
285 std::vector<RCollisionBox18> colbox_entities;
286 std::vector<RCollisionBox14> colbox_damage;
287 std::vector<RHitboxHeader> colbox_attack;
290 std::map<u32, std::vector<RHitbox>> hitboxes;
291 std::map<u32, std::vector<RCollisionBox20>> hitbox_colboxes;
294RCollisionBoxConfig Parse(Reader& f);
296ColBoxConfig Convert(
const RCollisionBoxConfig& rhitbox_config);
Contains the definition for action identifiers that are used across different parts of the library.
Contains macros and definitions for fixed-width types.
glm::vec3 translation
Definition colbox.hpp:87
u16 unknown2
unknown
Definition colbox.hpp:69
u16 dmg_end_frame
The frame at which damage ends.
Definition colbox.hpp:102
std::vector< CollisionBox14 > col_unknown
Unknown collision configuration.
Definition colbox.hpp:136
u8 unknownD
Definition colbox.hpp:107
f32 size
Specifies the size of the box.
Definition colbox.hpp:91
f32 unknown14
Unknown.
Definition colbox.hpp:74
f32 size
Specifies the size of the box.
Definition colbox.hpp:54
std::vector< CollisionBox18 > col_entities
Definition colbox.hpp:137
std::vector< CollisionBox14 > col_damage
Configures parts that can receive damage (hurtboxes).
Definition colbox.hpp:139
u16 unknown2
unknown: equals to 1 in NSLAR (in damage, attack boxes)
Definition colbox.hpp:51
model::BoneTarget bone_target
Definition colbox.hpp:49
glm::vec3 translation
Definition colbox.hpp:52
glm::vec3 translation_2
Definition colbox.hpp:89
u16 effect_id
Definition colbox.hpp:103
tsl::ordered_map< action::Id, std::vector< HitboxConfig > > col_attack
Configures parts that can deal damage (hitboxes).
Definition colbox.hpp:141
f32 size
Specifies the size of the box.
Definition colbox.hpp:73
std::vector< CollisionBox14 > col_enviroment
Definition colbox.hpp:134
u8 unknownC
Definition colbox.hpp:105
std::vector< CollisionBox20 > colboxes
Configures parts that can deal damage.
Definition colbox.hpp:110
u16 dmg_start_frame
The frame at which damage starts (relative to the action).
Definition colbox.hpp:101
model::BoneTarget bone_target
Definition colbox.hpp:67
u16 unknownE
Unknown.
Definition colbox.hpp:109
glm::vec3 translation
Definition colbox.hpp:70
model::BoneTarget bone_target
Definition colbox.hpp:83
u16 distance_attack
Definition colbox.hpp:85
Represents a collision box in a hitbox config.
Definition colbox.hpp:82
Represents a collision box.
Definition colbox.hpp:66
Represents a hitbox config.
Definition colbox.hpp:100
Represents the configuration for various collision boxes of a character.
Definition colbox.hpp:133
Represents a collision box.
Definition colbox.hpp:48
bool IsOfType(BufferView buffer)
Tests if the provided file is a collision box config.
Buffer Export(const ColBoxConfig &colbox_config)
Converts a CollisionBoxConfig to a binary file representation.
ColBoxConfig Import(BufferView buffer)
Parses a binary file and converts it to a structured CollisionBoxConfig.
constexpr u32 kMagicBytes
Magic bytes used to identify the collision box format.
Definition colbox.hpp:198
3D vector template with packed storage
Definition fixed_type.hpp:163
std::uint16_t u16
16-bit unsigned integer
Definition fixed_type.hpp:62
float f32
32-bit floating point
Definition fixed_type.hpp:59
std::uint32_t u32
32-bit unsigned integer
Definition fixed_type.hpp:60
std::uint8_t u8
8-bit unsigned integer
Definition fixed_type.hpp:64
#define NNL_PACK(...)
A structure packing directive.
Definition fixed_type.hpp:41
u16 BoneTarget
Represents a generic bone identifier.
Definition model_common.hpp:51
Provides classes for reading and writing binary data to and from various sources.
Contains model-related definitions that are shared across different parts of the library.
Provides structures and functions for working with collision boxes of entities.
Definition colbox.hpp:34
Definition exception.hpp:56