Beispiel #1
0
        //private static IntPtr JassStringHandleToStringHook(IntPtr stringJassHandle)
        //{
        //    var vtable = Memory.Read<IntPtr>(stringJassHandle);
        //    if (vtable == UnknownStringType1VTable || vtable == UnknownStringType2VTable)
        //    {
        //        // The two checks above are vtables for the two only know string handles.
        //        return JassStringHandleToString(stringJassHandle);
        //    }
        //    // Anything but the two types above must be strings that doesn't need to be converted.
        //    return stringJassHandle;
        //}

        //private static IntPtr JassStringManager__ResizeHook(JassStringManager* @this, UInt32 newSize)
        //{
        //    var result = JassStringManager__Resize(@this, newSize);

        //    InternalNatives.JassStringManager = @this;

        //    return result;
        //}

        private static void CTriggerWar3__ExecuteHook(CTriggerWar3Ptr @this, IntPtr a2)
        {
            try
            {
                InternalNatives.CTriggerWar3__Execute(@this, a2);
                InternalNatives.TriggerRunActions(@this);
            }
            catch (Exception e)
            {
                Trace.WriteLine("CTriggerWar3__ExecuteHook");
                Trace.WriteLine(e.ToString());
            }
        }
Beispiel #2
0
 public static void TriggerRunActions(CTriggerWar3Ptr key)
 {
     try
     {
         HashSet <ManagedActionBase> bucket;
         if (InternalNatives.actions.TryGetValue(key, out bucket))
         {
             foreach (var action in bucket)
             {
                 action.Invoke(InternalNatives.handles[key]);
             }
         }
     }
     catch (Exception e)
     {
         Trace.WriteLine("TriggerRunActions");
         Trace.WriteLine(e.ToString());
     }
 }
Beispiel #3
0
 public static void CTriggerWar3__ExecutePrototype(CTriggerWar3Ptr @this, IntPtr a2)
 {
     ThisCall.Invoke <IntPtr>(GameAddresses.CTriggerWar3__Execute, @this, a2);
 }