Esempio n. 1
0
        public void run()
        {
            int      runMask = 0;
            EntityAI next    = null;

            // Continue active
            AIs.resetActive();
            next = AIs.nextActive();
            while (next != null)
            {
                if ((next.RunMask & runMask) == 0 && next.continueRunning())
                {
                    next.run();
                    runMask |= next.RunMask;
                }
                else
                {
                    next.reset();
                    AIs.flipActive();
                }

                next = AIs.nextActive();
            }

            // Start inactive
            AIs.resetInactive();
            next = AIs.nextInactive();
            while (next != null)
            {
                if ((next.RunMask & runMask) == 0 && next.shouldRun())
                {
                    next.init();
                    AIs.flipInactive();
                    runMask |= next.RunMask;
                }

                next = AIs.nextInactive();
            }
        }