#ifndef MODEL_M2_MODEL_HPP #define MODEL_M2_MODEL_HPP #include "gx/Camera.hpp" #include "model/CM2Light.hpp" #include #include #include template class M2Track; template struct M2ModelTrack { uint32_t currentKey = 0; M2Track* sourceTrack = nullptr; T currentValue; }; struct M2ModelAttachment { }; struct M2ModelBoneSeq { uint32_t uint0 = 0; uint16_t uint4 = -1; uint16_t uint6 = -1; uint16_t uint8 = -1; uint8_t uintA = 1; uint8_t uintB = 1; uint32_t uintC = 0; uint32_t uint10 = 0; float float14 = 0.0; float float18 = 0.0; uint32_t uint1C = 0; uint32_t uint20 = 0; }; struct M2ModelBone { M2ModelTrack translationTrack; M2ModelTrack rotationTrack; M2ModelTrack scaleTrack; M2ModelBoneSeq sequence; M2ModelBoneSeq secondarySequence; uint32_t flags = 0; uint32_t uint90 = -1; uint16_t uint94 = 0; uint32_t uint9C = 0; float floatA0 = 0.0f; float floatA4 = 1.0f; float floatA8 = 0.0f; }; struct M2ModelCamera { M2ModelTrack positionTrack; M2ModelTrack targetTrack; M2ModelTrack rollTrack; HCAMERA m_camera = nullptr; }; struct M2ModelColor { M2ModelTrack colorTrack; M2ModelTrack alphaTrack; }; struct M2ModelLight { M2ModelTrack ambientColorTrack; M2ModelTrack ambientIntensityTrack; M2ModelTrack diffuseColorTrack; M2ModelTrack diffuseIntensityTrack; M2ModelTrack visibilityTrack; uint32_t uint64 = 1; CM2Light light; }; struct M2ModelTextureTransform { }; struct M2ModelTextureWeight { M2ModelTrack weightTrack; }; #endif