mirror of
https://github.com/a2x/cs2-dumper.git
synced 2025-09-18 12:50:01 +08:00
Fix for enum values that could be out of range for their datatype
This commit is contained in:
@@ -227,17 +227,10 @@ fn read_enum_binding_members(
|
||||
let enumerator = binding.enumerators.at(i as _).read(process)?;
|
||||
let name = enumerator.name.read_string(process)?.to_string();
|
||||
|
||||
let value = {
|
||||
let value = unsafe { enumerator.u.ulong } as i64;
|
||||
|
||||
if value == i64::MAX {
|
||||
-1
|
||||
} else {
|
||||
value
|
||||
}
|
||||
};
|
||||
|
||||
acc.push(EnumMember { name, value });
|
||||
acc.push(EnumMember {
|
||||
name,
|
||||
value: unsafe { enumerator.u.ulong } as i64,
|
||||
});
|
||||
|
||||
Ok(acc)
|
||||
})
|
||||
|
@@ -296,7 +296,7 @@ impl CodeGen for SchemaMap {
|
||||
self.write_content(results, indent_size, |fmt| {
|
||||
writeln!(
|
||||
fmt,
|
||||
"#![allow(non_upper_case_globals, non_camel_case_types, unused)]\n"
|
||||
"#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, unused)]\n"
|
||||
)?;
|
||||
|
||||
fmt.block("pub mod cs2_dumper", false, |fmt| {
|
||||
@@ -341,7 +341,15 @@ impl CodeGen for SchemaMap {
|
||||
.members
|
||||
.iter()
|
||||
.map(|member| {
|
||||
format!("{} = {:#X}", member.name, member.value)
|
||||
format!(
|
||||
"{} = {}",
|
||||
member.name,
|
||||
if member.value == -1 {
|
||||
format!("{}::MAX", type_name)
|
||||
} else {
|
||||
format!("{:#X}", member.value)
|
||||
}
|
||||
)
|
||||
})
|
||||
.collect::<Vec<_>>()
|
||||
.join(",\n");
|
||||
|
Reference in New Issue
Block a user