clean up bit cast
This commit is contained in:
+6
-7
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user