clean up bit cast

This commit is contained in:
Martin Michelsen
2023-11-14 23:50:46 -08:00
parent ab5536d554
commit 2818b4ac2f
3 changed files with 10 additions and 9 deletions
+6 -7
View File
@@ -316,19 +316,18 @@ static void server_command_qsync(shared_ptr<Client> c, const std::string& args)
return;
}
uint16_t reg_num = stoul(tokens[0].substr(1), nullptr, 0);
uint32_t reg_val;
G_SyncQuestData_6x77 cmd;
cmd.header = {0x77, 0x03, 0x0000};
cmd.register_number = stoul(tokens[0].substr(1), nullptr, 0);
cmd.unused = 0;
if (tokens[0][0] == 'r') {
reg_val = stoul(tokens[1], nullptr, 0);
cmd.value.as_int = stoul(tokens[1], nullptr, 0);
} else if (tokens[0][0] == 'f') {
float float_val = stof(tokens[1]);
reg_val = *reinterpret_cast<const uint32_t*>(&float_val);
cmd.value.as_float = stof(tokens[1]);
} else {
send_text_message(c, "$C6First argument must\nbe a register");
return;
}
G_SyncQuestData_6x77 cmd = {{0x77, 0x03, 0x0000}, reg_num, 0, reg_val};
send_command_t(c, 0x60, 0x00, cmd);
}
+4 -1
View File
@@ -4706,7 +4706,10 @@ struct G_SyncQuestData_6x77 {
G_UnusedHeader header;
le_uint16_t register_number = 0; // Must be < 0x100
le_uint16_t unused = 0;
le_uint32_t value = 0;
union {
le_uint32_t as_int;
le_float as_float;
} __packed__ value;
} __packed__;
// 6x78: Unknown