Пример #1
0
        public override void executa(IOrganismo o)
        {
            int memSize = o.getReg(getByteOrganismo(o, 1));

            if (o.child != null)
            {
                mundo.dealloc(o.child);
                o.clearChild();
                o.fatalError();
                return;
            }
            memSize = ALifeConsts.validateMemorySize(o, memSize);
            if (memSize == 0)
            {
                o.fatalError();
                return;
            }
            IOrganismo child = mundo.alloc(memSize, o);

            if (child.isAlive())
            {
                o.addFitness();
                o.setChild(child);
                o.setReg(getByteOrganismo(o, 2), child.sp());
            }
            else
            {
                o.error();
                o.setReg(getByteOrganismo(o, 2), 0);
            }
        }