release ver

This commit is contained in:
2026-05-15 21:14:16 +03:00
parent 9a4ab6a592
commit 57dae6ffb5
3 changed files with 55 additions and 18 deletions

View File

@@ -290,9 +290,7 @@ unsafe extern "C" fn teaminfo(dummy: usize, name: *const c_char, size: i32, buf:
if i < PLAYER_TEAM.len() {
set_player_team(i, &team);
}
if let Some(orig) = ORIG_TEAMINFO {
orig(dummy, name, size, buf)
} else { 1 }
ORIG_TEAMINFO.unwrap()(dummy, name, size, buf)
}
unsafe extern "C" fn health_hook(dummy: usize, name: *const c_char, size: i32, buf: *mut c_void) -> i32 {
@@ -307,9 +305,7 @@ unsafe extern "C" fn health_hook(dummy: usize, name: *const c_char, size: i32, b
}
}
}
if let Some(orig) = ORIG_HEALTH {
orig(dummy, name, size, buf)
} else { 1 }
ORIG_HEALTH.unwrap()(dummy, name, size, buf)
}
unsafe extern "C" fn scoreattrib_hook(dummy: usize, name: *const c_char, size: i32, buf: *mut c_void) -> i32 {
@@ -319,9 +315,7 @@ unsafe extern "C" fn scoreattrib_hook(dummy: usize, name: *const c_char, size: i
if idx < PLAYER_DATA.len() {
PLAYER_DATA[idx].is_alive = (flags & 1) == 0;
}
if let Some(orig) = ORIG_SCOREATTRIB {
orig(dummy, name, size, buf)
} else { 1 }
ORIG_SCOREATTRIB.unwrap()(dummy, name, size, buf)
}
unsafe extern "C" fn radar_hook(dummy: usize, name: *const c_char, size: i32, buf: *mut c_void) -> i32 {
@@ -333,20 +327,18 @@ unsafe extern "C" fn radar_hook(dummy: usize, name: *const c_char, size: i32, bu
if idx < PLAYER_DATA.len() {
PLAYER_DATA[idx].pos = Vector { x, y, z };
}
if let Some(orig) = ORIG_RADAR {
orig(dummy, name, size, buf)
} else { 1 }
ORIG_RADAR.unwrap()(dummy, name, size, buf)
}
unsafe extern "C" fn resethud_hook(dummy: usize, name: *const c_char, size: i32, buf: *mut c_void) -> i32 {
for i in 0..PLAYER_DATA.len() {
PLAYER_DATA[i].health = 0;
PLAYER_DATA[i].is_alive = false;
// Keep pos as last known? Or clear it?
// Better clear it to avoid "ghost" ESP.
PLAYER_DATA[i].pos = Vector { x: 0.0, y: 0.0, z: 0.0 };
}
if let Some(orig) = ORIG_RESETHUD {
orig(dummy, name, size, buf)
} else { 1 }
ORIG_RESETHUD.unwrap()(dummy, name, size, buf)
}
fn log(msg: &str) {
if let Ok(mut file) = OpenOptions::new().create(true).append(true).open("/tmp/basturma.log") {
@@ -1301,9 +1293,11 @@ fn init() {
let clientusermsgs_sym = dlsym(hw, b"clientusermsgs\0".as_ptr() as *const c_char);
if !clientusermsgs_sym.is_null() {
CLIENT_USERMSGS = clientusermsgs_sym as *mut UserMsg;
log("INFO: clientusermsgs found via dlsym");
} else {
log("WARN: clientusermsgs not found, message hooks disabled");
// Try to extract from CL_ShutDownUsrMessages signature:
// mov clientusermsgs, eax (or similar)
// This is very architecture/build dependent.
CLIENT_USERMSGS = *( (shutdownusermsgs as *mut u8).offset(5) as *mut *mut UserMsg );
}
}
@@ -1400,7 +1394,7 @@ extern "C" fn hooked_hudredraw(dummy: usize, time: f32, intermission: i32) -> i3
if let Some(orig) = ORIG_CLIENT {
let ret = (orig.hudredraw)(dummy, time, intermission);
// Render overlay after original HUD.
overlay_render(SETTINGS.show_menu);
// overlay_render(SETTINGS.show_menu);
ret
} else { 0 }
}