jvs: serialize drive board output value and more

Issue #864
This commit is contained in:
Flyinghead 2023-01-13 11:25:04 +01:00
parent 9fb69af355
commit f34a9f6eac
2 changed files with 35 additions and 5 deletions

View File

@ -147,8 +147,8 @@ public:
virtual ~jvs_io_board() = default;
u32 handle_jvs_message(u8 *buffer_in, u32 length_in, u8 *buffer_out);
void serialize(Serializer& ser) const;
void deserialize(Deserializer& deser);
virtual void serialize(Serializer& ser) const;
virtual void deserialize(Deserializer& deser);
bool lightgun_as_analog = false;
@ -373,6 +373,20 @@ public:
{
}
void serialize(Serializer& ser) const override
{
ser << out;
jvs_837_13844::serialize(ser);
}
void deserialize(Deserializer& deser) override
{
if (deser.version() >= Deserializer::V31)
deser >> out;
else
out = 0xff;
jvs_837_13844::deserialize(deser);
}
protected:
void read_digital_in(const u32 *buttons, u16 *v) override
{
@ -466,6 +480,21 @@ public:
{
}
void serialize(Serializer& ser) const override
{
ser << gear;
ser << testMode;
jvs_837_13844_motor_board::serialize(ser);
}
void deserialize(Deserializer& deser) override
{
if (deser.version() >= Deserializer::V31) {
deser >> gear;
deser >> testMode;
}
jvs_837_13844_motor_board::deserialize(deser);
}
protected:
void read_digital_in(const u32 *buttons, u16 *v) override
{
@ -543,8 +572,8 @@ protected:
}
private:
bool testMode = false; // TODO serialize
int gear = 0; // 0: low, 1: high, -1: reverse
bool testMode = false;
int8_t gear = 0; // 0: low, 1: high, -1: reverse
bool transitionWait = false;
};

View File

@ -66,7 +66,8 @@ public:
V28,
V29,
V30,
Current = V30,
V31,
Current = V31,
Next = Current + 1,
};