Ejemplo n.º 1
0
        public static void remove_handler(Event_Type type, Handler fn, object user)
        {
            event_handler_entry prev = null;
            event_handler_entry curr = event_handlers[(int)type];

            /* Look for the entry in the list */
            while (curr != null)
            {
                /* Check if this is the entry we want to remove */
                if (curr.fn == fn && curr.user == user)
                {
                    if (prev == null)
                    {
                        event_handlers[(int)type] = curr.next;
                    }
                    else
                    {
                        prev.next = curr.next;
                    }

                    //mem_free(curr);
                    return;
                }

                prev = curr;
                curr = curr.next;
            }
        }
Ejemplo n.º 2
0
        static void dispatch(Event_Type type, Game_Event data)
        {
            event_handler_entry t = event_handlers[(int)type];

            /*
             * Send the word out to all interested event handlers.
             */
            while (t != null)
            {
                /* Call the handler with the relevant data */
                t.fn(type, data, t.user);
                t = t.next;
            }
        }
Ejemplo n.º 3
0
        public static void add_handler(Event_Type type, Handler fn, object user)
        {
            event_handler_entry e;

            Misc.assert(fn != null);

            /* Make a new entry */
            e      = new event_handler_entry();
            e.fn   = fn;
            e.user = user;

            /* Add it to the head of the appropriate list */
            e.next = event_handlers[(int)type];
            event_handlers[(int)type] = e;
        }
Ejemplo n.º 4
0
        public static void add_handler(Event_Type type, Handler fn, object user)
        {
            event_handler_entry e;

            Misc.assert(fn != null);

            /* Make a new entry */
            e = new event_handler_entry();
            e.fn = fn;
            e.user = user;

            /* Add it to the head of the appropriate list */
            e.next = event_handlers[(int)type];
            event_handlers[(int)type] = e;
        }