diff --git a/src/QuestScript.cc b/src/QuestScript.cc index 57080997..11116306 100644 --- a/src/QuestScript.cc +++ b/src/QuestScript.cc @@ -3,6 +3,7 @@ #include #include +#include #include #include #include @@ -1198,7 +1199,7 @@ std::string disassemble_quest_script(const void* data, size_t size, GameVersion case Type::FLOAT32: { float v = cmd_r.get_f32l(); if (def->flags & QuestScriptOpcodeDefinition::Flag::PRESERVE_ARG_STACK) { - arg_stack_values.emplace_back(ArgStackValue::Type::INT, *reinterpret_cast(&v)); + arg_stack_values.emplace_back(ArgStackValue::Type::INT, bit_cast(v)); } dasm_arg = string_printf("%g", v); break; @@ -1320,7 +1321,7 @@ std::string disassemble_quest_script(const void* data, size_t size, GameVersion dasm_arg = string_printf("(float)r%" PRIu32, arg_value.as_int); break; case ArgStackValue::Type::INT: - dasm_arg = string_printf("%g", *reinterpret_cast(&arg_value.as_int)); + dasm_arg = string_printf("%g", bit_cast(arg_value.as_int)); break; default: dasm_arg = "/* invalid-type */";