protected vp_EventHandler.ScriptMethods GetScriptMethods(object target)
 {
     vp_EventHandler.ScriptMethods scriptMethods;
     if (!vp_EventHandler.m_StoredScriptTypes.TryGetValue(target.GetType(), out scriptMethods))
     {
         scriptMethods = new vp_EventHandler.ScriptMethods(target.GetType());
         vp_EventHandler.m_StoredScriptTypes.Add(target.GetType(), scriptMethods);
     }
     return(scriptMethods);
 }
 public void Register(object target)
 {
     if (target == null)
     {
         Debug.LogError("Error: (" + this + ") Target object was null.");
         return;
     }
     if (!this.m_Initialized)
     {
         this.m_PendingRegistrants.Add(target);
         return;
     }
     vp_EventHandler.ScriptMethods scriptMethods = this.GetScriptMethods(target);
     if (scriptMethods == null)
     {
         Debug.LogError(string.Concat(new object[]
         {
             "Error: (",
             this,
             ") could not get script methods for '",
             target,
             "'."
         }));
         return;
     }
     foreach (MethodInfo current in scriptMethods.Events)
     {
         vp_Event vp_Event;
         if (!this.m_HandlerEvents.TryGetValue(current.Name, out vp_Event))
         {
             Debug.LogWarning(string.Concat(new object[]
             {
                 "Warning: (",
                 current.DeclaringType,
                 ") Event handler can't register method '",
                 current.Name,
                 "' because '",
                 base.GetType(),
                 "' has not (successfully) registered any event named '",
                 current.Name.Substring(current.Name.Substring(0, current.Name.IndexOf('_', 4) + 1).Length)
             }));
         }
         else
         {
             int num;
             vp_Event.Prefixes.TryGetValue(current.Name.Substring(0, current.Name.IndexOf('_', 4) + 1), out num);
             if (this.CompareMethodSignatures(current, vp_Event.GetParameterType(num), vp_Event.GetReturnType(num)))
             {
                 vp_Event.Register(target, current.Name, num);
             }
         }
     }
 }