85 lines
2.6 KiB
C++
85 lines
2.6 KiB
C++
#include "StarNetStates.hpp"
|
|
|
|
using namespace Star;
|
|
|
|
void testStepSendReceive() {
|
|
NetSchema schema;
|
|
|
|
schema.addFixedPointField("position_x", NetType::VarInt, 0.1);
|
|
schema.addFixedPointField("position_y", NetType::VarInt, 0.1);
|
|
schema.finalize();
|
|
|
|
NetStepSender sender(schema);
|
|
|
|
sender.setStep(0);
|
|
sender.setFloat("position_x", 100.783);
|
|
sender.setFloat("position_y", 50.134);
|
|
ByteArray s1 = sender.writeFull();
|
|
coutf("sent packet of %s bytes\n", s1.size());
|
|
|
|
sender.setStep(1);
|
|
sender.setFloat("position_x", 100.5);
|
|
sender.setFloat("position_y", 49.938);
|
|
ByteArray s2 = sender.writeDelta(0);
|
|
coutf("sent packet of %s bytes\n", s2.size());
|
|
|
|
sender.setStep(2);
|
|
sender.setFloat("position_x", 100.289);
|
|
ByteArray s3 = sender.writeDelta(1);
|
|
coutf("sent packet of %s bytes\n", s3.size());
|
|
|
|
NetReceiver receiver(schema);
|
|
|
|
receiver.readFull(s1);
|
|
coutf("First value received (%s, %s)\n", receiver.getFloat("position_x"), receiver.getFloat("position_y"));
|
|
|
|
receiver.readDelta(s2);
|
|
coutf("Second value received (%s, %s)\n", receiver.getFloat("position_x"), receiver.getFloat("position_y"));
|
|
|
|
receiver.readDelta(s3);
|
|
coutf("Third value received (%s, %s)\n", receiver.getFloat("position_x"), receiver.getFloat("position_y"));
|
|
}
|
|
|
|
void testSyncSendReceive() {
|
|
DataStreamBuffer bufferStream;
|
|
NetSchema schema;
|
|
|
|
schema.addFixedPointField("position_x", NetType::VarInt, 0.1);
|
|
schema.addFixedPointField("position_y", NetType::VarInt, 0.1);
|
|
schema.finalize();
|
|
|
|
NetSyncSender sender(schema);
|
|
|
|
sender.setFloat("position_x", 100.783);
|
|
sender.setFloat("position_y", 50.134);
|
|
size_t s1 = sender.writeFull(bufferStream);
|
|
coutf("sent packet of %s bytes\n", s1);
|
|
|
|
sender.setFloat("position_x", 100.5);
|
|
sender.setFloat("position_y", 49.938);
|
|
size_t s2 = sender.writeDelta(bufferStream);
|
|
coutf("sent packet of %s bytes\n", s2);
|
|
|
|
sender.setFloat("position_x", 100.289);
|
|
size_t s3 = sender.writeDelta(bufferStream);
|
|
coutf("sent packet of %s bytes\n", s3);
|
|
|
|
bufferStream.seek(0);
|
|
|
|
NetReceiver receiver(schema);
|
|
|
|
receiver.readFull(bufferStream, s1);
|
|
coutf("First value received (%s, %s)\n", receiver.getFloat("position_x"), receiver.getFloat("position_y"));
|
|
|
|
receiver.readDelta(bufferStream, s2);
|
|
coutf("Second value received (%s, %s)\n", receiver.getFloat("position_x"), receiver.getFloat("position_y"));
|
|
|
|
receiver.readDelta(bufferStream, s3);
|
|
coutf("Third value received (%s, %s)\n", receiver.getFloat("position_x"), receiver.getFloat("position_y"));
|
|
}
|
|
|
|
int main(int argc, char** argv) {
|
|
testStepSendReceive();
|
|
testSyncSendReceive();
|
|
return 0;
|
|
}
|