Skip to content

Commit dc1a501

Browse files
committed
.
1 parent b929736 commit dc1a501

File tree

2 files changed

+29
-3
lines changed

2 files changed

+29
-3
lines changed

src/engine/client/cg_msgdef.h

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,18 +96,35 @@ namespace Util {
9696
}
9797
};
9898

99+
template<> struct SerializeTraits<std::vector<BoneMod>> {
100+
static void Write( Writer& stream, const std::vector<BoneMod>& boneMods ) {
101+
stream.WriteSize( boneMods.size() );
102+
// stream.Write<float>( skel.scale );
103+
// size_t length = sizeof( refBone_t ) * skel.numBones;
104+
stream.WriteData( boneMods.data(), boneMods.size() );
105+
}
106+
static std::vector<BoneMod> Read( Reader& stream ) {
107+
std::vector<BoneMod> boneMods;
108+
boneMods.reserve( stream.ReadSize<BoneMod>() );
109+
size_t length = sizeof( refBone_t ) * boneMods.size();
110+
stream.ReadData( boneMods.data(), length );
111+
return boneMods;
112+
}
113+
};
114+
99115
// Use that bone optimization for refEntity_t
100116
template<> struct SerializeTraits<refEntity_t> {
101117
static void Write(Writer& stream, const refEntity_t& ent)
102118
{
103119
stream.WriteData(&ent, offsetof(refEntity_t, boneMods));
104-
// stream.WriteData( ent.boneMods.data(), ent.boneMods.size() * sizeof( BoneMod ) );
120+
stream.Write<std::vector<BoneMod>>( ent.boneMods );
105121
// stream.Write<refSkeleton_t>(ent.skeleton);
106122
}
107123
static refEntity_t Read(Reader& stream)
108124
{
109125
refEntity_t ent;
110126
stream.ReadData(&ent, offsetof(refEntity_t, boneMods));
127+
ent.boneMods = stream.Read<std::vector<BoneMod>>();
111128
// ent.skeleton = stream.Read<refSkeleton_t>();
112129
return ent;
113130
}

src/engine/renderer/tr_main.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2108,10 +2108,16 @@ void R_AddEntitySurfaces()
21082108
if ( ent->e.scale == 0 ) {
21092109
ent->e.scale = 1;
21102110
}
2111+
if ( ent->e.animationHandle == 0 ) {
2112+
ent->e.animationHandle = ent->e.animationHandle2;
2113+
} else if ( ent->e.animationHandle2 == 0 ) {
2114+
ent->e.animationHandle2 = ent->e.animationHandle;
2115+
}
2116+
21112117
RE_BuildSkeleton( &ent->e.skeleton, ent->e.animationHandle, ent->e.startFrame, ent->e.endFrame,
21122118
ent->e.lerp, ent->e.clearOrigin );
21132119
ent->e.skeleton.scale = ent->e.scale;
2114-
if ( ent->e.blendLerp > 0.0 || true ) {
2120+
if ( ent->e.blendLerp > 0.0 ) {
21152121
refSkeleton_t skel;
21162122
RE_BuildSkeleton( &skel, ent->e.animationHandle2, ent->e.startFrame2, ent->e.endFrame2,
21172123
ent->e.lerp2, ent->e.clearOrigin2 );
@@ -2132,11 +2138,14 @@ void R_AddEntitySurfaces()
21322138
}
21332139
if ( ent->e.animationHandle == 0 ) {
21342140
ent->e.animationHandle = ent->e.animationHandle2;
2141+
} else if ( ent->e.animationHandle2 == 0 ) {
2142+
ent->e.animationHandle2 = ent->e.animationHandle;
21352143
}
2144+
21362145
ent->e.skeleton.scale = ent->e.scale;
21372146
RE_BuildSkeleton( &ent->e.skeleton, ent->e.animationHandle, ent->e.startFrame, ent->e.endFrame,
21382147
ent->e.lerp, ent->e.clearOrigin );
2139-
if ( ent->e.blendLerp > 0.0 || true ) {
2148+
if ( ent->e.blendLerp > 0.0 ) {
21402149
refSkeleton_t skel;
21412150
RE_BuildSkeleton( &skel, ent->e.animationHandle2, ent->e.startFrame2, ent->e.endFrame2,
21422151
ent->e.lerp2, ent->e.clearOrigin2 );

0 commit comments

Comments
 (0)