Example #1
0
    public ObjList DisposeObj(Obj obj)
    {
        ObjList objList1 = null;
        ObjList objList2 = null;
        ObjList objList3;

        for (objList3 = this._context.activeObj; objList3 != null && objList3.obj != obj; objList3 = objList3.next)
        {
            objList2 = objList3;
        }
        if (obj.cid == 4)
        {
            FieldMapActorController mapActorController = ((Actor)obj).fieldMapActorController;
            mapActorController?.UnregisterHonoBehavior(true);
            FieldMapActor fieldMapActor = ((Actor)obj).fieldMapActor;
            if (fieldMapActor != null)
            {
                fieldMapActor.DestroySelfShadow();
                fieldMapActor.UnregisterHonoBehavior(true);
            }
        }
        if (objList3 != null)
        {
            objList1 = objList3.next;
            if (objList2 != null)
            {
                objList2.next = objList1;
            }
            if (this._context.activeObjTail == objList3)
            {
                this._context.activeObjTail = objList2;
            }
            objList3.next         = this._context.freeObj;
            this._context.freeObj = objList3;
            DeallocObj(obj);
            if (this._context.controlUID == objList3.obj.uid)
            {
                this._context.controlUID = 0;
            }
        }
        return(objList1);
    }