示例#1
0
        //[Hook(HookType.AresHook, Address = 0x428EA8, Size = 5)]
        static public unsafe UInt32 AnimTypeClass_SDDTOR(REGISTERS *R)
        {
            var pItem = (Pointer <AnimTypeClass>)R->ECX;

            AnimTypeExt.ExtMap.Remove(pItem);
            return(0);
        }
示例#2
0
        //[Hook(HookType.AresHook, Address = 0x42784B, Size = 5)]
        static public unsafe UInt32 AnimTypeClass_CTOR(REGISTERS *R)
        {
            var pItem = (Pointer <AnimTypeClass>)R->EAX;

            AnimTypeExt.ExtMap.FindOrAllocate(pItem);
            return(0);
        }
示例#3
0
        //[Hook(HookType.AresHook, Address = 0x4665E9, Size = 0xA)]
        static public unsafe UInt32 BulletClass_DTOR(REGISTERS *R)
        {
            var pItem = (Pointer <BulletClass>)R->ESI;

            BulletExt.ExtMap.Remove(pItem);
            return(0);
        }
示例#4
0
        //[Hook(HookType.AresHook, Address = 0x4664BA, Size = 5)]
        static public unsafe UInt32 BulletClass_CTOR(REGISTERS *R)
        {
            var pItem = (Pointer <BulletClass>)R->ESI;

            BulletExt.ExtMap.FindOrAllocate(pItem);
            return(0);
        }
示例#5
0
        //[Hook(HookType.AresHook, Address = 0x6F3260, Size = 5)]
        static public unsafe UInt32 TechnoClass_CTOR(REGISTERS *R)
        {
            var pItem = (Pointer <TechnoClass>)R->ESI;

            TechnoExt.ExtMap.FindOrAllocate(pItem);
            return(0);
        }
示例#6
0
        //[Hook(HookType.AresHook, Address = 0x711AE0, Size = 5)]
        static public unsafe UInt32 TechnoTypeClass_DTOR(REGISTERS *R)
        {
            var pItem = (Pointer <TechnoTypeClass>)R->ECX;

            TechnoTypeExt.ExtMap.Remove(pItem);
            return(0);
        }
示例#7
0
        //[Hook(HookType.AresHook, Address = 0x716132, Size = 5)]
        //[Hook(HookType.AresHook, Address = 0x716123, Size = 5)]
        static public unsafe UInt32 TechnoTypeClass_LoadFromINI(REGISTERS *R)
        {
            var pItem = (Pointer <TechnoTypeClass>)R->EBP;
            var pINI  = R->Stack <Pointer <CCINIClass> >(0x380);

            TechnoTypeExt.ExtMap.LoadFromINI(pItem, pINI);
            return(0);
        }
示例#8
0
        //[Hook(HookType.AresHook, Address = 0x4287E9, Size = 0xA)]
        //[Hook(HookType.AresHook, Address = 0x4287DC, Size = 0xA)]
        static public unsafe UInt32 AnimTypeClass_LoadFromINI(REGISTERS *R)
        {
            var pItem = (Pointer <AnimTypeClass>)R->ESI;
            var pINI  = R->Stack <Pointer <CCINIClass> >(0xBC);

            AnimTypeExt.ExtMap.LoadFromINI(pItem, pINI);
            return(0);
        }
示例#9
0
        //[Hook(HookType.AresHook, Address = 0x428970, Size = 8)]
        //[Hook(HookType.AresHook, Address = 0x428800, Size = 0xA)]
        static public unsafe UInt32 AnimTypeClass_SaveLoad_Prefix(REGISTERS *R)
        {
            var     pItem  = R->Stack <Pointer <AnimTypeClass> >(0x4);
            var     pStm   = R->Stack <Pointer <IStream> >(0x8);
            IStream stream = Marshal.GetObjectForIUnknown(pStm) as IStream;

            AnimTypeExt.ExtMap.PrepareStream(pItem, stream);
            return(0);
        }
示例#10
0
        static public unsafe UInt32 TechnoClass_Remove_Script(REGISTERS *R)
        {
            Pointer <TechnoClass> pTechno = (IntPtr)R->ECX;

            TechnoExt ext = TechnoExt.ExtMap.Find(pTechno);

            ext.Scriptable?.OnRemove();

            return(0);
        }
示例#11
0
 static public unsafe UInt32 OnUpdate(REGISTERS *R)
 {
     try {
         return(TechnoDecorative.OnUpdate(R));
     }
     catch (Exception e)
     {
         Logger.PrintException(e);
         return((uint)0);
     }
 }
示例#12
0
 static public unsafe UInt32 TechnoClass_Update(REGISTERS *R)
 {
     try{
         return(ScriptManager.TechnoClass_Update_Script(R));
     }
     catch (Exception e)
     {
         Logger.PrintException(e);
         return((uint)0);
     }
 }
示例#13
0
        static public unsafe UInt32 TechnoClass_Put_Script(REGISTERS *R)
        {
            Pointer <TechnoClass> pTechno = (IntPtr)R->ECX;
            var pCoord  = R->Stack <Pointer <CoordStruct> >(0x4);
            var faceDir = R->Stack <Direction>(0x8);

            TechnoExt ext = TechnoExt.ExtMap.Find(pTechno);

            ext.Scriptable?.OnPut(pCoord.Data, faceDir);

            return(0);
        }
示例#14
0
        static public unsafe UInt32 TechnoClass_ReceiveDamage_Script(REGISTERS *R)
        {
            Pointer <TechnoClass> pTechno = (IntPtr)R->ECX;
            var pDamage = R->Stack <Pointer <int> >(0x4);
            var distanceFromEpicenter = R->Stack <int>(0x8);
            var pWH                    = R->Stack <Pointer <WarheadTypeClass> >(0xC);
            var pAttacker              = R->Stack <Pointer <ObjectClass> >(0x10);
            var ignoreDefenses         = R->Stack <bool>(0x14);
            var preventPassengerEscape = R->Stack <bool>(0x18);
            var pAttackingHouse        = R->Stack <Pointer <HouseClass> >(0x1C);

            TechnoExt ext = TechnoExt.ExtMap.Find(pTechno);

            ext.Scriptable?.OnReceiveDamage(pDamage, distanceFromEpicenter, pWH, pAttacker, ignoreDefenses, preventPassengerEscape, pAttackingHouse);

            return(0);
        }
示例#15
0
 static public unsafe UInt32 BulletClass_SaveLoad_Prefix(REGISTERS *R)
 {
     return(BulletExt.BulletClass_SaveLoad_Prefix(R));
 }
示例#16
0
 static public unsafe UInt32 TechnoClass_Save_Suffix(REGISTERS *R)
 {
     return(TechnoExt.TechnoClass_Save_Suffix(R));
 }
示例#17
0
 static public unsafe UInt32 BulletTypeClass_Save_Suffix(REGISTERS *R)
 {
     return(BulletTypeExt.BulletTypeClass_Save_Suffix(R));
 }
示例#18
0
 static public unsafe UInt32 Synchronize(REGISTERS *R)
 {
     semaphore.Release();
     semaphore.WaitOne();
     return(0);
 }
示例#19
0
 static public unsafe UInt32 TechnoClass_DTOR(REGISTERS *R)
 {
     return(TechnoExt.TechnoClass_DTOR(R));
 }
示例#20
0
 //[Hook(HookType.AresHook, Address = 0x46AF97, Size = 7)]
 //[Hook(HookType.AresHook, Address = 0x46AF9E, Size = 7)]
 static public unsafe UInt32 BulletClass_Load_Suffix(REGISTERS *R)
 {
     BulletExt.ExtMap.LoadStatic();
     return(0);
 }
示例#21
0
 //[Hook(HookType.AresHook, Address = 0x42898A, Size = 3)]
 static public unsafe UInt32 AnimTypeClass_Save_Suffix(REGISTERS *R)
 {
     AnimTypeExt.ExtMap.SaveStatic();
     return(0);
 }
示例#22
0
 static public unsafe UInt32 AnimTypeClass_Save_Suffix(REGISTERS *R)
 {
     return(AnimTypeExt.AnimTypeClass_Save_Suffix(R));
 }
示例#23
0
 static public unsafe UInt32 BulletTypeClass_LoadFromINI(REGISTERS *R)
 {
     return(BulletTypeExt.BulletTypeClass_LoadFromINI(R));
 }
示例#24
0
 static public unsafe UInt32 BulletClass_Load_Suffix(REGISTERS *R)
 {
     return(BulletExt.BulletClass_Load_Suffix(R));
 }
示例#25
0
 //[Hook(HookType.AresHook, Address = 0x6FCFA0, Size = 5)]
 static public unsafe UInt32 ShowFirer_Test(REGISTERS *R)
 {
     ref TechnoClass     rTechno = ref ((Pointer <TechnoClass>)R->ESI).Ref;
示例#26
0
 //[Hook(HookType.AresHook, Address = 0x70C264, Size = 5)]
 static public unsafe UInt32 TechnoClass_Save_Suffix(REGISTERS *R)
 {
     TechnoExt.ExtMap.SaveStatic();
     return(0);
 }
示例#27
0
 static public unsafe UInt32 AnimTypeClass_LoadFromINI(REGISTERS *R)
 {
     return(AnimTypeExt.AnimTypeClass_LoadFromINI(R));
 }
示例#28
0
 //[Hook(HookType.AresHook, Address = 0x716DAC, Size = 0xA)]
 static public unsafe UInt32 TechnoTypeClass_Load_Suffix(REGISTERS *R)
 {
     TechnoTypeExt.ExtMap.LoadStatic();
     return(0);
 }
示例#29
0
 static public unsafe UInt32 BulletClass_DTOR(REGISTERS *R)
 {
     return(BulletExt.BulletClass_DTOR(R));
 }
示例#30
0
 static public unsafe UInt32 BulletTypeClass_SDDTOR(REGISTERS *R)
 {
     return(BulletTypeExt.BulletTypeClass_SDDTOR(R));
 }