1
0
Fork 0

Add gear animation effects to replay.

This commit is contained in:
curt 2003-07-22 23:46:11 +00:00
parent b8ac00f0a6
commit c672417725
3 changed files with 28 additions and 7 deletions

View file

@ -183,6 +183,9 @@ void FGProps2NetFDM( FGNetFDM *net, bool net_byte_order ) {
for (i = 0; i < net->num_wheels; ++i ) {
SGPropertyNode *node = fgGetNode("/gear/gear", i, true);
net->wow[i] = node->getDoubleValue("wow");
net->gear_pos[i] = node->getDoubleValue("position-norm");
net->gear_steer[i] = node->getDoubleValue("steering-norm");
net->gear_compression[i] = node->getDoubleValue("compression-norm");
}
// the following really aren't used in this context
@ -246,6 +249,9 @@ void FGProps2NetFDM( FGNetFDM *net, bool net_byte_order ) {
for ( i = 0; i < net->num_wheels; ++i ) {
net->wow[i] = htonl(net->wow[i]);
net->gear_pos[i] = htonl(net->gear_pos[i]);
net->gear_steer[i] = htonl(net->gear_steer[i]);
net->gear_compression[i] = htonl(net->gear_compression[i]);
}
net->num_wheels = htonl(net->num_wheels);
@ -312,8 +318,12 @@ void FGNetFDM2Props( FGNetFDM *net, bool net_byte_order ) {
}
net->num_wheels = htonl(net->num_wheels);
// I don't need to convert the Wow flags, since they are one
// byte in size
for ( i = 0; i < net->num_wheels; ++i ) {
net->wow[i] = htonl(net->wow[i]);
net->gear_pos[i] = htonl(net->gear_pos[i]);
net->gear_steer[i] = htonl(net->gear_steer[i]);
net->gear_compression[i] = htonl(net->gear_compression[i]);
}
net->cur_time = ntohl(net->cur_time);
net->warp = ntohl(net->warp);
@ -389,9 +399,11 @@ void FGNetFDM2Props( FGNetFDM *net, bool net_byte_order ) {
}
for (i = 0; i < net->num_wheels; ++i ) {
SGPropertyNode * node
= fgGetNode("/gear/gear", i, true);
SGPropertyNode * node = fgGetNode("/gear/gear", i, true);
node->setDoubleValue("wow", net->wow[i] );
node->setDoubleValue("position-norm", net->gear_pos[i] );
node->setDoubleValue("steering-norm", net->gear_steer[i] );
node->setDoubleValue("compression-norm", net->gear_compression[i] );
}
/* these are ignored for now ... */

View file

@ -32,7 +32,7 @@
#include <time.h> // time_t
const int FG_NET_FDM_VERSION = 12;
const int FG_NET_FDM_VERSION = 13;
// Define a structure containing the top level flight dynamics model
@ -105,6 +105,9 @@ public:
// Gear status
int num_wheels;
bool wow[FG_MAX_WHEELS];
float gear_pos[FG_MAX_WHEELS];
float gear_steer[FG_MAX_WHEELS];
float gear_compression[FG_MAX_WHEELS];
// Environment
time_t cur_time; // current unix time

View file

@ -280,8 +280,14 @@ static FGReplayData interpolate( double time, FGReplayData f1, FGReplayData f2 )
// Gear status
for ( i = 0; i < fdm1.num_wheels; ++i ) {
result.fdm.wow[i]
= weight( fdm1.wow[i], fdm2.wow[i], ratio );
result.fdm.wow[i] = weight( fdm1.wow[i], fdm2.wow[i], ratio );
result.fdm.gear_pos[i]
= weight( fdm1.gear_pos[i], fdm2.gear_pos[i], ratio );
result.fdm.gear_steer[i]
= weight( fdm1.gear_steer[i], fdm2.gear_steer[i], ratio );
result.fdm.gear_compression[i]
= weight( fdm1.gear_compression[i], fdm2.gear_compression[i],
ratio );
}
// Environment