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}