mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
e22080db3a
Animations accessible. Pass map of animation names and phases and pass a vector of the lods you want to animate. Dynamic loading humbuggery. Added: A3->Extension animation state sync framework done. Test cases for animations created. Apply animation phases from game to test case render. Continuing finalization. rotation_offset was reversed for zero_distance, thats fixed but still off. Rendering test hard-coded for container LOD temporarily. Rotation translation corrected. Removed: Scale flipping, these should work now but they dont. Debug logging, debug model. Correct parameters to extension. Stability fixes. Animations nearly aligning correctly. scale, rotation and translation work; still not working. Back compat for v60 p3d's fully implemented. Add vehicle ID to animation state send. cmake bullet integration from submodule. WINVER forced for all builds. More bullet + windows + cmake fun. Remove LinaerMath. Testing for nou. typo Fixed: Pathing bug. Vehicle damage working set for Nou.
74 lines
4.4 KiB
C++
74 lines
4.4 KiB
C++
#pragma once
|
|
|
|
#include "shared.hpp"
|
|
#include "vector.hpp"
|
|
#include "skeleton.hpp"
|
|
#include "lod_types.hpp"
|
|
#include <sstream>
|
|
|
|
namespace ace {
|
|
namespace p3d {
|
|
class model_info {
|
|
public:
|
|
model_info();
|
|
model_info(std::istream &, const uint32_t lod_count, uint32_t version = 68);
|
|
~model_info();
|
|
|
|
|
|
public:
|
|
std::vector<int> resolutions;
|
|
float *raw_resolutions;//LodTypes[Header.NoOfLods];// alias resolutions
|
|
uint32_t index; // appears to be a bit flag, 512, 256 eg
|
|
float lod_sphere_mem;
|
|
float lod_sphere_geo; // mostly same as MemLodSphere
|
|
uint32_t point_flags[3]; // typically 00 00 00 00 00 00 00 00 00 00 0C 00 eg (last is same as user point flags)
|
|
ace::vector3<float> offset_1; // model offset (unknown functionality),//mostly same as offset2
|
|
uint32_t map_icon_color; // RGBA 32 color
|
|
uint32_t map_selected_color; // RGBA 32 color
|
|
float view_density; //
|
|
|
|
ace::vector3<float> bbox_min_pos; // minimum coordinates of bounding box
|
|
ace::vector3<float> bbox_max_pos; // maximum coordinates of bounding box. Generally the complement of the 1st
|
|
// pew.GeometryBounds in Pew is bboxMinPosition-bboxMaxPosition for X and Z
|
|
// pew.ResolutionBounds mostly the same
|
|
ace::vector3<float> center_of_gravity; // pew.GeometryAutoCenterPos (and mostly pew.ResolutionAutoCenterPos too)
|
|
ace::vector3<float> offset_2; // mostly same as Offset1 often same as CentreOfGravity (but it isn't ResolutionPos)
|
|
ace::vector3<float> cog_offset; // see below
|
|
ace::vector3<float> mass_vectors[3]; // for ODOL7 this is a mixture of floats and index values
|
|
//// if Arma3 /////////////////
|
|
uint8_t thermal_profile_2[24];
|
|
///////////////////////////////
|
|
bool autocenter;
|
|
bool lock_autocenter;
|
|
bool allow_occlude;
|
|
bool allow_occluded;
|
|
bool allow_animation;
|
|
///////////ARMA/VBS2 ////////////
|
|
uint8_t u_bytes_1[6]; //
|
|
uint8_t thermal_profile[24]; //
|
|
uint32_t u_long_1; // V48 and beyond
|
|
//uint8_t thermal_profile[24]; // TOH only (v52) see above for arma3
|
|
|
|
skeleton_p skeleton; //
|
|
|
|
uint8_t u_byte_1;
|
|
uint32_t u_floats_1_size; // always zero for arma
|
|
float *u_floats_1; // potentially compressed
|
|
float mass;
|
|
float mass_reciprocal; // see note
|
|
float mass_alt; // see note
|
|
float mass_alt_reciprocoal; // see note
|
|
uint8_t u_bytes_2[14]; // see note generally FF FF FF FF FF FF FF FF FF FF FF FF
|
|
uint8_t u_short_1; // often same as NoOfLods
|
|
bool u_bool_1; // generally set if ascii below has strings
|
|
std::string class_type; // asciiz ClassType; // class="House" See Named Properties
|
|
std::string destruct_type; //DestructType; // damage="Tent" See Named Properties
|
|
bool u_bool_2; // rarely true
|
|
bool u_bool_3; // rarely true
|
|
uint32_t u_long_2; //
|
|
uint8_t *default_indicators;//default_indicators[NoOfLods][12]; //generally FF FF FF FF FF FF FF FF FF FF FF FF
|
|
};
|
|
typedef std::shared_ptr<model_info> model_info_p;
|
|
|
|
};
|
|
}; |