mirror of
https://github.com/GTAmodding/re3.git
synced 2024-12-28 17:35:40 +00:00
0aa7f13c32
# Conflicts: # src/animation/AnimBlendAssociation.h # src/animation/AnimBlendClumpData.h # src/animation/AnimManager.h # src/animation/FrameUpdate.cpp # src/control/AutoPilot.h # src/control/PathFind.h # src/core/PlayerInfo.h # src/entities/Building.h # src/entities/Dummy.h # src/entities/Entity.h # src/entities/Physical.h # src/entities/Treadable.h # src/modelinfo/BaseModelInfo.h # src/modelinfo/ClumpModelInfo.cpp # src/modelinfo/ClumpModelInfo.h # src/modelinfo/PedModelInfo.h # src/modelinfo/SimpleModelInfo.h # src/modelinfo/TimeModelInfo.h # src/modelinfo/VehicleModelInfo.h # src/objects/CutsceneHead.h # src/objects/CutsceneObject.h # src/objects/DummyObject.h # src/objects/Object.h # src/peds/DummyPed.h # src/peds/PedIK.cpp # src/rw/VisibilityPlugins.cpp # src/vehicles/Automobile.h # src/vehicles/Boat.h # src/vehicles/Heli.h # src/vehicles/Plane.h # src/vehicles/Train.h # src/vehicles/Vehicle.h
60 lines
1.3 KiB
C++
60 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include "Quaternion.h"
|
|
|
|
// TODO: put them somewhere else?
|
|
struct KeyFrame {
|
|
CQuaternion rotation;
|
|
float deltaTime; // relative to previous key frame
|
|
};
|
|
|
|
struct KeyFrameTrans : KeyFrame {
|
|
CVector translation;
|
|
};
|
|
|
|
|
|
// The sequence of key frames of one animated node
|
|
class CAnimBlendSequence
|
|
{
|
|
public:
|
|
enum {
|
|
KF_ROT = 1,
|
|
KF_TRANS = 2
|
|
};
|
|
int32 type;
|
|
char name[24];
|
|
int32 numFrames;
|
|
#ifdef PED_SKIN
|
|
int16 boneTag;
|
|
#endif
|
|
void *keyFrames;
|
|
void *keyFramesCompressed;
|
|
|
|
CAnimBlendSequence(void);
|
|
virtual ~CAnimBlendSequence(void);
|
|
void SetName(char *name);
|
|
void SetNumFrames(int numFrames, bool translation, bool compressed);
|
|
void RemoveQuaternionFlips(void);
|
|
KeyFrame *GetKeyFrame(int n) {
|
|
return type & KF_TRANS ?
|
|
&((KeyFrameTrans*)keyFrames)[n] :
|
|
&((KeyFrame*)keyFrames)[n];
|
|
}
|
|
KeyFrame *GetKeyFrameCompressed(int n) {
|
|
return type & KF_TRANS ?
|
|
&((KeyFrameTrans*)keyFramesCompressed)[n] :
|
|
&((KeyFrame*)keyFramesCompressed)[n];
|
|
}
|
|
bool HasTranslation(void) { return !!(type & KF_TRANS); }
|
|
// TODO? these are unused
|
|
// void Uncompress(void);
|
|
// void CompressKeyframes(void);
|
|
// void RemoveUncompressedData(void);
|
|
|
|
#ifdef PED_SKIN
|
|
void SetBoneTag(int tag) { boneTag = tag; }
|
|
#endif
|
|
};
|
|
#ifndef PED_SKIN
|
|
VALIDATE_SIZE(CAnimBlendSequence, 0x2C);
|
|
#endif
|