mirror of
https://github.com/a2x/cs2-dumper.git
synced 2026-04-17 22:59:59 +08:00
Print field types
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
use crate::builder::FileBuilderEnum;
|
||||
use crate::dumpers::Entry;
|
||||
use crate::error::Result;
|
||||
use crate::remote::Process;
|
||||
use crate::sdk::SchemaSystem;
|
||||
@@ -9,29 +10,42 @@ pub fn dump_schemas(builders: &mut Vec<FileBuilderEnum>, process: &Process) -> R
|
||||
let schema_system = SchemaSystem::new(&process)?;
|
||||
|
||||
for type_scope in schema_system.type_scopes()? {
|
||||
log::info!("Generating files for {}...", type_scope.module_name()?);
|
||||
let module_name = type_scope.module_name()?;
|
||||
|
||||
log::info!("Generating files for {}...", module_name);
|
||||
|
||||
let mut entries = Entries::new();
|
||||
|
||||
for class in type_scope.classes()? {
|
||||
log::info!(" [{}]", class.name());
|
||||
log::debug!(" {}", class.name());
|
||||
|
||||
for field in class.fields()? {
|
||||
log::info!(" [{}] = {:#X}", field.name()?, field.offset()?);
|
||||
let field_name = field.name()?;
|
||||
let field_offset = field.offset()?;
|
||||
let type_name = field.r#type()?.name()?;
|
||||
|
||||
log::debug!(
|
||||
" └─ {} = {:#X} // {}",
|
||||
field_name,
|
||||
field_offset,
|
||||
type_name
|
||||
);
|
||||
|
||||
entries
|
||||
.entry(class.name().replace("::", "_"))
|
||||
.or_default()
|
||||
.push((field.name()?, field.offset()? as usize));
|
||||
.push(Entry {
|
||||
name: field_name,
|
||||
value: field_offset as usize,
|
||||
comment: Some(type_name),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if entries.is_empty() {
|
||||
continue;
|
||||
}
|
||||
|
||||
for builder in builders.iter_mut() {
|
||||
generate_file(builder, &type_scope.module_name()?, &entries)?;
|
||||
if !entries.is_empty() {
|
||||
for builder in builders.iter_mut() {
|
||||
generate_file(builder, &module_name, &entries)?;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user