fromsoftware_shared/steam.rs
1use vtable_rs::VPtr;
2
3use crate::OwnedPtr;
4
5#[allow(non_camel_case_types)]
6#[repr(C)]
7pub struct CCallback {
8 vftable: VPtr<dyn CCallbackVmt, Self>,
9 unk8: u8,
10 unkc: u32,
11 /// Pointer to the structure passed down to the callback.
12 subject: OwnedPtr<()>,
13 /// Pointer to the function that should be called.
14 function: isize,
15}
16
17#[vtable_rs::vtable]
18trait CCallbackVmt {
19 fn run(&mut self, data: isize);
20
21 fn run_other(&mut self, data: isize, p3: u64, p4: bool);
22
23 fn get_callback_size_bytes(&mut self) -> u32;
24
25 fn destructor(&mut self);
26}