public unsafe static uint niecmod_safecall_script_get_func_ptr(IntPtr funcHandle) { if (NFinalizeDeath.GameIs64Bit(false)) { return(0); } #if GameVersion_0_Release_2_0_209 if (funcHandle.value == null) { return(0); } uint r = 0; NFinalizeDeath.SafeCall(() => { r = *(uint *)((uint)funcHandle.value) + 0x20u; }); return(r); #else return(0); #endif // GameVersion_0_Release_2_0_209 }
public override Posture OnReset(IGameObject objectBeingReset) { var sim = objectBeingReset as Sim ?? _Actor; if (sim != null && sim.mPosture is NiecPosture) { // Stop StackOverflowException sim.mPosture = null; } if (IsOpenDGSInstalled) { return(null); } if (NiecHelperSituation.isdgmods || !NiecHelperSituation.__acorewIsnstalled__) { objectBeingReset.OnReset(); } else // if AweCore { bool done = false; NFinalizeDeath.SafeCall(() => { var p = sim.mPosture; try { sim.mPosture = null; objectBeingReset.OnReset(); } finally { sim.mPosture = p; } done = true; }); if (!done && sim.mPosture != null) { sim.mPosture = this; } } return(this); }
public unsafe static uint niecmod_safecall_script_get_func_ptr_dll(IntPtr internaldll_function) { if (NFinalizeDeath.GameIs64Bit(false)) { return(0); } #if GameVersion_0_Release_2_0_209 if (internaldll_function.value == null) { return(0); } uint func_address = 0; uint r = 0; NFinalizeDeath.SafeCall(() => { var ptr = (uint)internaldll_function.value; var dll = ptr + 0x8u; var func_i = *(uint *)dll; if (func_i == 0) { r = 0; return; } else { func_address = func_i + 0x18u; r = *(uint *)func_address; return; } }); return(r); #else return(0); #endif // GameVersion_0_Release_2_0_209 }
internal static void SafeCallSimDescCleanseO1(SimDescription simd) { NFinalizeDeath.SafeCall(() => { NFinalizeDeath.SimDescCleanse(simd, true, false); }); }