diff --git a/library_loader/src/macros.rs b/library_loader/src/macros.rs index f753e7a..3b49a87 100644 --- a/library_loader/src/macros.rs +++ b/library_loader/src/macros.rs @@ -14,12 +14,30 @@ macro_rules! load_function_ptrs { } impl $struct_name { + fn log(msg: impl ToString) { + use std::io::Write; + + let home = std::env::var("HOME").unwrap(); + + let log_file = format!("{}/rf2_vk_hud.log", home); + + if let Ok(mut file) = std::fs::OpenOptions::new() + .append(true) + .create(true) + .open(&log_file) + { + if let Err(_) = file.write_all(format!("{}\n", msg.to_string()).as_bytes()) {} + } + } + pub fn load(mut f: F) -> $struct_name where F: FnMut(&std::ffi::CStr) -> *const std::os::raw::c_void { $struct_name { $( $name: unsafe { + Self::log(format!("load: {}", stringify!($name))); + let dummy: *const std::ffi::c_void = std::ptr::null(); let name = std::ffi::CStr::from_bytes_with_nul_unchecked(concat!(stringify!($name), "\0").as_bytes());