示例#1
0
    public static Int32 CollisionAngle(PosObj po, Obj coll)
    {
        PosObj  posObj     = (PosObj)coll;
        Vector3 b          = new Vector3(po.pos[0], po.pos[1], po.pos[2]);
        Vector3 a          = new Vector3(posObj.pos[0], posObj.pos[1], posObj.pos[2]);
        Vector3 posObjRot  = EventCollision.GetPosObjRot(po);
        Vector3 posObjRot2 = EventCollision.GetPosObjRot(posObj);
        Vector3 normalized = (a - b).normalized;

        if (normalized == Vector3.zero)
        {
            return(0);
        }
        Vector3 eulerAngles = Quaternion.LookRotation(normalized).eulerAngles;
        Vector3 vector      = eulerAngles - posObjRot;

        vector.x = ((vector.x <= 180f) ? vector.x : (vector.x - 360f));
        vector.x = ((vector.x >= -180f) ? vector.x : (vector.x + 360f));
        vector.y = ((vector.y <= 180f) ? vector.y : (vector.y - 360f));
        vector.y = ((vector.y >= -180f) ? vector.y : (vector.y + 360f));
        vector.z = ((vector.z <= 180f) ? vector.z : (vector.z - 360f));
        vector.z = ((vector.z >= -180f) ? vector.z : (vector.z + 360f));
        Single floatAngle = vector.magnitude - 180f;

        return(EventEngineUtils.ConvertFloatAngleToFixedPoint(floatAngle));
    }
示例#2
0
    private Boolean NeckRange(Actor actor, ref Int32?ap)
    {
        Boolean flag = true;

        if (((Int32)actor.actf & EventEngine.actLookedTalker) == 0)
        {
            Single floatAngle1 = this.eBin.angleAsm(actor.xl - actor.pos[0], actor.zl - actor.pos[2]);
            Single num         = actor.rotAngle[1];
            Single floatAngle2 = floatAngle1 - num;
            if ((Double)floatAngle2 > 180.0)
            {
                floatAngle2 -= 360f;
            }
            else if ((Double)floatAngle2 < -180.0)
            {
                floatAngle2 += 360f;
            }
            Int32 fixedPoint = EventEngineUtils.ConvertFloatAngleToFixedPoint(floatAngle2);
            if (fixedPoint > 2048)
            {
                fixedPoint -= 4096;
            }
            flag = fixedPoint > -EventEngine.kNeckAngle0 && fixedPoint < (Int32)EventEngine.kNeckAngle0;
            if (!flag)
            {
                actor.actf &= (UInt16) ~EventEngine.actLook;
            }
            if (ap.HasValue)
            {
                ap = new Int32?(EventEngineUtils.ConvertFloatAngleToFixedPoint(floatAngle1));
            }
        }
        return(flag);
    }
示例#3
0
 private static void GetMoveVector(out Vector3 oVector, Single rotx, Single roty, Single speed)
 {
     oVector   = RotateVector(new Vector3(0.0f, 0.0f, -speed), rotx, roty);
     oVector.x = (Single)EventEngineUtils.CastFloatToIntWithChecking(oVector.x);
     oVector.y = (Single)EventEngineUtils.CastFloatToIntWithChecking(oVector.y);
     oVector.z = (Single)EventEngineUtils.CastFloatToIntWithChecking(oVector.z);
 }
示例#4
0
    private static Int32 GetDir(Actor actor)
    {
        Single floatAngle = actor.rotAngle[1];
        Int32  num        = EventEngineUtils.ConvertFloatAngleToFixedPoint(floatAngle);

        return(num >> 4 & 255);
    }
示例#5
0
    private void ProcessTurn(Actor actor)
    {
        if (((Int32)actor.flags & 128) == 0)
        {
            return;
        }
        Single num = actor.rotAngle.y;

        if ((Double)num > 180.0)
        {
            num -= 360f;
        }
        else if ((Double)num < -180.0)
        {
            num += 360f;
        }
        if ((Double)actor.turnAdd == 32766.0)
        {
            Single a = num + actor.trotAdd;
            if ((Int32)FF9StateSystem.Common.FF9.fldMapNo == 2855 && PersistenSingleton <EventEngine> .Instance.eBin.getVarManually(EBin.SC_COUNTER_SVR) == 9370 && (Int32)actor.model == 273)
            {
                if ((Double)a > 180.0)
                {
                    a -= 360f;
                }
                else if ((Double)a < -180.0)
                {
                    a += 360f;
                }
            }
            if ((Double)a < (Double)actor.turnRot || EventEngineUtils.nearlyEqual(a, actor.turnRot))
            {
                a           = actor.turnRot;
                actor.flags = (Byte)((UInt32)actor.flags & 4294967167U);
            }
            actor.rotAngle[1] = a;
        }
        else if ((Double)actor.turnAdd == (Double)Int16.MaxValue)
        {
            Single a = num + actor.trotAdd;
            if ((Int32)FF9StateSystem.Common.FF9.fldMapNo == 2855 && PersistenSingleton <EventEngine> .Instance.eBin.getVarManually(EBin.SC_COUNTER_SVR) == 9370 && (Int32)actor.model == 273)
            {
                if ((Double)a > 180.0)
                {
                    a -= 360f;
                }
                else if ((Double)a < -180.0)
                {
                    a += 360f;
                }
            }
            if ((Double)a > (Double)actor.turnRot || EventEngineUtils.nearlyEqual(a, actor.turnRot))
            {
                a           = actor.turnRot;
                actor.flags = (Byte)((UInt32)actor.flags & 4294967167U);
            }
            actor.rotAngle[1] = a;
        }
        Vector3 eulerAngles = actor.go.transform.localRotation.eulerAngles;
    }
示例#6
0
    private bool NeckRange(Actor actor, ref int?ap)
    {
        bool flag = true;

        if (((int)actor.actf & EventEngine.actLookedTalker) == 0)
        {
            float floatAngle1 = this.eBin.angleAsm(actor.xl - actor.pos[0], actor.zl - actor.pos[2]);
            float num         = actor.rotAngle[1];
            float floatAngle2 = floatAngle1 - num;
            if ((double)floatAngle2 > 180.0)
            {
                floatAngle2 -= 360f;
            }
            else if ((double)floatAngle2 < -180.0)
            {
                floatAngle2 += 360f;
            }
            int fixedPoint = EventEngineUtils.ConvertFloatAngleToFixedPoint(floatAngle2);
            if (fixedPoint > 2048)
            {
                fixedPoint -= 4096;
            }
            flag = fixedPoint > (int)-EventEngine.kNeckAngle0 && fixedPoint < (int)EventEngine.kNeckAngle0;
            if (!flag)
            {
                actor.actf &= (ushort)~EventEngine.actLook;
            }
            if (ap.HasValue)
            {
                ap = new int?(EventEngineUtils.ConvertFloatAngleToFixedPoint(floatAngle1));
            }
        }
        return(flag);
    }
示例#7
0
 public void setByteToBuffer(Int32 startID, Byte value)
 {
     if (startID > (Int32)this.buffer.Length - 1)
     {
         EventEngineUtils.E_Error("setByteToBuffer: there is no enought data on obj.buffer to set byte");
         return;
     }
     this.buffer[startID] = (Byte)(value & Byte.MaxValue);
 }
示例#8
0
 public void setShortToBuffer(Int32 startID, Int16 value)
 {
     if (startID > (Int32)this.buffer.Length - 2)
     {
         EventEngineUtils.E_Error("setShortToBuffer: there is no enought data on obj.buffer to set short");
         return;
     }
     this.buffer[startID + 1] = (Byte)(((Int32)value & 65280) >> 8);
     this.buffer[startID]     = (Byte)(value & 255);
 }
示例#9
0
    public Int16 getShortFromBuffer(Int32 startID)
    {
        if (startID > (Int32)this.buffer.Length - 2)
        {
            EventEngineUtils.E_Error("getShortFromBuffer: there is no enought data on obj.buffer to return short");
            return(-1);
        }
        Int32 num = (Int32)this.buffer[startID + 1] << 8;

        num |= (Int32)this.buffer[startID];
        return((Int16)num);
    }
示例#10
0
 private void SetAnim(Actor p, int anim)
 {
     if (anim == (int)p.anim)
     {
         return;
     }
     p.anim      = (ushort)anim;
     p.animFrame = (byte)0;
     p.frameDif  = (sbyte)0;
     p.frameN    = (byte)EventEngineUtils.GetCharAnimFrame(p.go, anim);
     p.aspeed    = p.aspeed0;
 }
 private void SetAnim(Actor p, Int32 anim)
 {
     if (anim == (Int32)p.anim)
     {
         return;
     }
     p.anim      = (UInt16)anim;
     p.animFrame = (Byte)0;
     p.frameDif  = (SByte)0;
     p.frameN    = (Byte)EventEngineUtils.GetCharAnimFrame(p.go, anim);
     p.aspeed    = p.aspeed0;
 }
示例#12
0
 public void setIntToBuffer(Int32 startID, Int32 value)
 {
     if (startID >= (Int32)this.buffer.Length - 4)
     {
         EventEngineUtils.E_Error("setIntToBuffer: there is no enought data on obj.buffer to set int");
         return;
     }
     this.buffer[startID + 3] = (Byte)(((Int64)value & (Int64)(-16777216)) >> 24);
     this.buffer[startID + 2] = (Byte)((value & 16711680) >> 16);
     this.buffer[startID + 1] = (Byte)((value & 65280) >> 8);
     this.buffer[startID]     = (Byte)(value & 255);
 }
示例#13
0
    public Int32 getIntFromBuffer(Int32 startID)
    {
        if (startID > (Int32)this.buffer.Length - 4)
        {
            EventEngineUtils.E_Error("getIntFromBuffer: there is no enought data on obj.buffer to return int");
            return(-1);
        }
        Int32 num = (Int32)this.buffer[startID + 3] << 24;

        num |= (Int32)this.buffer[startID + 2] << 16;
        num |= (Int32)this.buffer[startID + 1] << 8;
        return(num | (Int32)this.buffer[startID]);
    }
示例#14
0
 public void putvobj(Obj obj, Int32 type, Int32 v)
 {
     if (obj == null)
     {
         return;
     }
     if (type == 2)
     {
         Int16 fixedPointAngle = (Int16)(v << 4);
         ((PosObj)obj).rotAngle[1] = EventEngineUtils.ConvertFixedPointAngleToDegree(fixedPointAngle);
     }
     else
     {
         this.SetBattleCharData(obj, type, v);
     }
 }
示例#15
0
    private void ExecAnim(Actor p, Int32 anim)
    {
        if ((p.animFlag & EventEngine.afExec) != 0 && (p.flags & 128) != 0)
        {
            this.FinishTurn(p);
        }
        p.anim      = (UInt16)anim;
        p.animFrame = p.inFrame;
        Byte num1 = (Byte) ~(EventEngine.afDir | EventEngine.afLower | EventEngine.afFreeze);

        p.animFlag &= num1;
        Byte num2 = p.inFrame <= p.outFrame ? (Byte)EventEngine.afExec : (Byte)(EventEngine.afExec | EventEngine.afDir);

        p.animFlag |= num2;
        p.frameDif  = 0;
        p.frameN    = (Byte)EventEngineUtils.GetCharAnimFrame(p.go, anim);
        p.aspeed    = p.aspeed0;
        if (p.uid != this._context.controlUID)
        {
            return;
        }
        ++this.gAnimCount;
    }
示例#16
0
    public void InitBattleScene()
    {
        FF9StateGlobal FF9 = FF9StateSystem.Common.FF9;

        FF9.charArray.Clear();
        this.btlScene = FF9StateSystem.Battle.FF9Battle.btl_scene = new BTL_SCENE();
        Debug.Log("battleID = " + FF9StateSystem.Battle.battleMapIndex);
        Dictionary <String, Int32> source = FF9BattleDB.SceneData;

        battleSceneName = source.FirstOrDefault(p => p.Value == FF9StateSystem.Battle.battleMapIndex).Key;
        battleSceneName = battleSceneName.Substring(4);
        Debug.Log("battleSceneName = " + battleSceneName);
        this.btlScene.ReadBattleScene(battleSceneName);
        this.StartCoroutine(PersistenSingleton <FF9TextTool> .Instance.UpdateBattleText(FF9BattleDB.SceneData["BSC_" + battleSceneName]));
        WMProfiler.Begin("Start Load Text");
        String battleModelPath = FF9BattleDB.MapModel["BSC_" + battleSceneName];

        FF9StateSystem.Battle.FF9Battle.map.btlBGPtr     = ModelFactory.CreateModel("BattleMap/BattleModel/battleMap_all/" + battleModelPath + "/" + battleModelPath, Vector3.zero, Vector3.zero, true);
        FF9StateSystem.Battle.FF9Battle.btl_scene.PatNum = FF9StateSystem.Battle.isDebug ? FF9StateSystem.Battle.patternIndex : (Byte)this.ChoicePattern();
        this.btlSeq = new btlseq();
        this.btlSeq.ReadBattleSequence(battleSceneName);
        BeginInitialize();
        battle.InitBattle();
        EndInitialize();
        if (!FF9StateSystem.Battle.isDebug)
        {
            String            ebFileName        = "EVT_BATTLE_" + battleSceneName;
            FF9StateBattleMap ff9StateBattleMap = FF9StateSystem.Battle.FF9Battle.map;
            ff9StateBattleMap.evtPtr = EventEngineUtils.loadEventData(ebFileName, "Battle/");
            PersistenSingleton <EventEngine> .Instance.StartEvents(ff9StateBattleMap.evtPtr);

            PersistenSingleton <EventEngine> .Instance.eTb.InitMessage();
        }
        this.CreateBattleData(FF9);
        if (battleSceneName == "EF_E006" || battleSceneName == "EF_E007")
        {
            BTL_DATA btlData1 = FF9StateSystem.Battle.FF9Battle.btl_data[4];
            BTL_DATA btlData2 = FF9StateSystem.Battle.FF9Battle.btl_data[5];
            this.GeoBattleAttach(btlData2.gameObject, btlData1.gameObject, 55);
            btlData2.attachOffset = 100;
        }
        FF9StateBattleSystem stateBattleSystem = FF9StateSystem.Battle.FF9Battle;
        GEOTEXHEADER         geotexheader      = new GEOTEXHEADER();

        geotexheader.ReadBGTextureAnim(battleModelPath);
        stateBattleSystem.map.btlBGTexAnimPtr = geotexheader;
        BBGINFO bbginfo = new BBGINFO();

        bbginfo.ReadBattleInfo(battleModelPath);
        FF9StateSystem.Battle.FF9Battle.map.btlBGInfoPtr = bbginfo;
        btlshadow.ff9battleShadowInit(13);
        battle.InitBattleMap();
        this.seqList = new List <Int32>();
        SB2_PATTERN sb2Pattern = this.btlScene.PatAddr[FF9StateSystem.Battle.FF9Battle.btl_scene.PatNum];

        Int32[] numArray = new Int32[sb2Pattern.MonCount];
        for (Int32 index = 0; index < (Int32)sb2Pattern.MonCount; ++index)
        {
            numArray[index] = sb2Pattern.Put[index].TypeNo;
        }
        foreach (Int32 num in numArray.Distinct().ToArray())
        {
            for (Int32 index1 = 0; index1 < this.btlSeq.sequenceProperty.Length; ++index1)
            {
                SequenceProperty sequenceProperty = this.btlSeq.sequenceProperty[index1];
                if (sequenceProperty.Montype == num)
                {
                    for (Int32 index2 = 0; index2 < sequenceProperty.PlayableSequence.Count; ++index2)
                    {
                        this.seqList.Add(sequenceProperty.PlayableSequence[index2]);
                    }
                }
            }
        }
        this.btlIDList          = FF9StateSystem.Battle.FF9Battle.seq_work_set.AnmOfsList.Distinct().ToArray();
        this.battleState        = BattleState.PlayerTurn;
        playerEnterCommand      = false;
        this.playerCastingSkill = false;
        this.enemyEnterCommand  = false;
    }
示例#17
0
    public Int32 ProcessEvents()
    {
        if ((Int32)FF9StateSystem.Common.FF9.fldMapNo == 303 || (Int32)FF9StateSystem.Common.FF9.fldMapNo == 304)
        {
            if (FF9StateSystem.Settings.IsNoEncounter)
            {
                PersistenSingleton <EventEngine> .Instance.eBin.setVarManually(53189, 0);

                PersistenSingleton <EventEngine> .Instance.eBin.setVarManually(52933, 0);

                PersistenSingleton <EventEngine> .Instance.eBin.setVarManually(52677, 0);
            }
        }
        else if ((Int32)FF9StateSystem.Common.FF9.fldMapNo == 301)
        {
            if (FF9StateSystem.Settings.IsNoEncounter)
            {
                PersistenSingleton <EventEngine> .Instance.eBin.setVarManually(61381, 0);

                PersistenSingleton <EventEngine> .Instance.eBin.setVarManually(61125, 0);
            }
        }
        else if ((Int32)FF9StateSystem.Common.FF9.fldMapNo == 302)
        {
            if (FF9StateSystem.Settings.IsNoEncounter)
            {
                PersistenSingleton <EventEngine> .Instance.eBin.setVarManually(53189, 0);

                PersistenSingleton <EventEngine> .Instance.eBin.setVarManually(52933, 0);
            }
        }
        else if ((Int32)FF9StateSystem.Common.FF9.fldMapNo == 2921 && FF9StateSystem.Settings.IsNoEncounter)
        {
            PersistenSingleton <EventEngine> .Instance.eBin.setVarManually(10461, 10);
        }
        Boolean flag     = false;
        Boolean isBattle = this.gMode == 2;

        this._moveKey = false;
        for (ObjList objList = this._context.activeObj; objList != null; objList = objList.next)
        {
            Obj obj = objList.obj;
            if ((Int32)obj.cid == 4)
            {
                Actor actor = (Actor)obj;
                FieldMapActorController mapActorController = actor.fieldMapActorController;
                if ((Int32)obj.uid == (Int32)this._context.controlUID && (Int32)obj.state == (Int32)EventEngine.stateRunning)
                {
                    if ((Int32)this._context.usercontrol != 0)
                    {
                        if (this.gMode == 1)
                        {
                            //if (!((UnityEngine.Object)mapActorController != (UnityEngine.Object)null))
                            //    ;
                            this._moveKey = FieldMapActorController.ccSMoveKey;
                        }
                        else if (this.gMode == 3)
                        {
                            Single distance = 0.0f;
                            this._moveKey = ff9.w_frameEncountEnable;
                            this.CollisionRequest((PosObj)obj);
                            PosObj posObj = (PosObj)this.Collision(this, actor, 0, ref distance);
                            if (posObj != null && distance <= 0f)
                            {
                                WMActor wmActor  = actor.wmActor;
                                WMActor wmActor2 = ((Actor)posObj).wmActor;
                                Vector2 from     = new Vector2(wmActor.pos0 - wmActor.lastx, wmActor.pos2 - wmActor.lastz);
                                Vector2 to       = new Vector2(wmActor2.pos0 - wmActor.pos0, wmActor2.pos2 - wmActor.pos2);
                                float   num2     = Vector2.Angle(from, to);
                                if (num2 >= 0f && num2 <= 90f)
                                {
                                    wmActor.transform.position = new Vector3(wmActor.lastx, wmActor.lasty, wmActor.lastz);
                                }
                            }
                        }
                        if (this._moveKey)
                        {
                            this.ResetIdleTimer(0);
                        }
                    }
                    else if ((UnityEngine.Object)mapActorController != (UnityEngine.Object)null)
                    {
                        mapActorController.CopyLastPos();
                    }
                }
                else if ((UnityEngine.Object)mapActorController != (UnityEngine.Object)null)
                {
                    mapActorController.CopyLastPos();
                }
                if ((Int32)obj.state == (Int32)EventEngine.stateRunning)
                {
                    if (!isBattle)
                    {
                        this.ProcessAnime((Actor)obj);
                    }
                    //if ((Int32)this._context.usercontrol == 0)
                    //    ;
                }
            }
        }
        if (isBattle)
        {
            this.SetupBattleState();
        }
        this._posUsed = false;
        Int32 num1 = this.eBin.ProcessCode(this._context.activeObj);

        EventHUD.CheckUIMiniGameForMobile();
        if (num1 == 6)
        {
            num1 = 0;
        }
        else
        {
            this.gStopObj = (ObjList)null;
        }
        this._aimObj = (PosObj)null;
        this._eyeObj = (PosObj)null;
        for (ObjList objList = this._context.activeObj; objList != null; objList = objList.next)
        {
            this.SetRenderer(objList.obj, isBattle);
        }
        //if (this.gMode != 1)
        //    ;
        if (isBattle)
        {
            for (ObjList objList = this._context.activeObj; objList != null; objList = objList.next)
            {
                Obj p = objList.obj;
                if ((Int32)p.btlchk == 2 && this.Request(p, 3, 5, false))
                {
                    p.btlchk = (Byte)1;
                }
            }
        }
        else
        {
            for (ObjList objList = this._context.activeObj; objList != null; objList = objList.next)
            {
                Obj    obj    = objList.obj;
                Single deltaX = 0.0f;
                Single deltaY = 0.0f;
                Single deltaZ = 0.0f;
                if ((Int32)obj.cid == 4)
                {
                    Actor actor = (Actor)obj;
                    if (this.gMode == 1)
                    {
                        if ((UnityEngine.Object)obj.go != (UnityEngine.Object)null)
                        {
                            FieldMapActorController component = obj.go.GetComponent <FieldMapActorController>();
                            if ((UnityEngine.Object)component != (UnityEngine.Object)null)
                            {
                                Int32 num2 = 0;
                                if ((Int32)actor.cid != 4 || (Int32)actor.model == (Int32)UInt16.MaxValue)
                                {
                                    num2 = 0;
                                }
                                //else if (component.walkMesh == null)
                                //    ;
                                if (((Int32)obj.uid != (Int32)this._context.controlUID || this.sLockTimer >= 0L) && (num2 & 1) != 0)
                                {
                                    Single distance = 0.0f;
                                    PosObj posObj   = this.fieldmap.walkMesh.Collision(actor.fieldMapActorController, 0, out distance);
                                    if (posObj != null)
                                    {
                                        actor.fieldMapActorController.ResetPos();
                                        if (((Int32)posObj.flags & 16) != 0)
                                        {
                                            this.sLockTimer = 0L;
                                        }
                                        if ((Int32)obj.uid == (Int32)this._context.controlUID)
                                        {
                                            this._collTimer = 2;
                                        }
                                    }
                                }
                            }
                        }
                        if ((Int32)obj.uid == (Int32)this._context.controlUID)
                        {
                            EIcon.ProcessHereIcon((PosObj)actor);
                            if (this.GetUserControl())
                            {
                                this.CollisionRequest((PosObj)actor);
                            }
                        }
                    }
                    else if (this.gMode == 3)
                    {
                        if (((Int32)actor.actf & EventEngine.actEye) != 0)
                        {
                            Vector3 eyePtr = ff9.w_cameraGetEyePtr();
                            eyePtr.x = actor.pos[0];
                            eyePtr.y = actor.pos[1];
                            eyePtr.z = actor.pos[2];
                            ff9.w_cameraSetEyePtr(eyePtr);
                            this._eyeObj = (PosObj)actor;
                        }
                        else if (((Int32)actor.actf & EventEngine.actAim) != 0)
                        {
                            Vector3 aimPtr = ff9.w_cameraGetAimPtr();
                            aimPtr.x = actor.pos[0];
                            aimPtr.y = actor.pos[1];
                            aimPtr.z = actor.pos[2];
                            ff9.w_cameraSetAimPtr(aimPtr);
                            this._aimObj = (PosObj)actor;
                        }
                    }
                    if ((UnityEngine.Object)obj.go != (UnityEngine.Object)null)
                    {
                        if (this.gMode == 3)
                        {
                            WMActor wmActor = ((Actor)obj).wmActor;
                            if ((UnityEngine.Object)wmActor != (UnityEngine.Object)null)
                            {
                                deltaX = (Single)(256.0 * ((Double)wmActor.pos0 - (Double)wmActor.lastx));
                                deltaY = (Single)(256.0 * ((Double)wmActor.pos1 - (Double)wmActor.lasty));
                                deltaZ = (Single)(256.0 * ((Double)wmActor.pos2 - (Double)wmActor.lastz));
                                flag   = !EventEngineUtils.nearlyEqual(wmActor.pos0, wmActor.lastx) || !EventEngineUtils.nearlyEqual(wmActor.pos2, wmActor.lastz);
                                //if ((Int32)obj.sid != 5 && (Int32)obj.sid == 11)
                                //    ;
                            }
                        }
                        else if (this.gMode == 1)
                        {
                            FieldMapActorController component = obj.go.GetComponent <FieldMapActorController>();
                            deltaX = component.curPos.x - component.lastPos.x;
                            deltaY = component.curPos.y - component.lastPos.y;
                            deltaZ = component.curPos.z - component.lastPos.z;
                            flag   = !EventEngineUtils.nearlyEqual(component.curPos.x, component.lastPos.x) || !EventEngineUtils.nearlyEqual(component.curPos.z, component.lastPos.z);
                        }
                        if ((Int32)actor.follow != (Int32)Byte.MaxValue && (UnityEngine.Object)Singleton <DialogManager> .Instance.GetDialogByWindowID((Int32)actor.follow) == (UnityEngine.Object)null)
                        {
                            actor.follow = Byte.MaxValue;
                            if (EventEngine.sLastTalker == actor)
                            {
                                EventEngine.sTalkTimer = 30;
                            }
                        }
                        if (this.gMode == 1)
                        {
                            this.ProcessTurn(actor);
                            if ((Int32)actor.model != (Int32)UInt16.MaxValue)
                            {
                                this.ProcessNeck(actor);
                            }
                        }
                        if (this.gMode == 3)
                        {
                            this.ProcessTurn(actor);
                        }
                        if (flag)
                        {
                            Int32 num2 = (Int32)actor.animFlag & (EventEngine.afExec | EventEngine.afLower | EventEngine.afFreeze);
                            if (num2 == 0 || num2 == (EventEngine.afExec | EventEngine.afLower))
                            {
                                actor.animFlag &= (Byte) ~(EventEngine.afExec | EventEngine.afLower);
                                this.SetAnim(actor, (Int32)actor.speed < (Int32)actor.speedth ? (Int32)actor.walk : (Int32)actor.run);
                            }
                        }
                        else if (((Int32)actor.animFlag & (EventEngine.afExec | EventEngine.afFreeze)) == 0 && (this._collTimer == 0 || (Int32)obj.uid != (Int32)this._context.controlUID))
                        {
                            this.SetAnim(actor, (Int32)actor.idle);
                        }
                        if (flag && (Int32)obj.uid == (Int32)this._context.controlUID && this._moveKey)
                        {
                            Single distance = this.distance(deltaX, deltaY, deltaZ);
                            if (this.gMode == 3)
                            {
                                WMActor wmActor = ((Actor)obj).wmActor;
                            }
                            this._encountTimer += distance;
                            if (!FF9StateSystem.Settings.IsNoEncounter && this.ProcessEncount(actor))
                            {
                                this._encountReserved = true;
                            }
                        }
                    }
                }
            }
        }
        if (this._collTimer > 0)
        {
            --this._collTimer;
        }
        if (EventEngine.sTalkTimer > 0 && --EventEngine.sTalkTimer != 0)
        {
            this.ClearLookTalker();
        }
        if (this._encountReserved && !this._posUsed)
        {
            this._encountReserved = false;
            num1 = 3;
        }
        if ((num1 == 3 || num1 == 7) && this.gMode == 1)
        {
            this.BackupPosObjData();
        }
        if (num1 == 7)
        {
            this.sEventContext1.copy(this.sEventContext0);
        }
        EMinigame.AllTreasureAchievement();
        EMinigame.AllSandyBeachAchievement();
        EMinigame.DigUpKupoAchievement();
        //this.printActorsInObjList(this.E.activeObj);
        return(num1);
    }
示例#18
0
    public static UInt32 ReadInput()
    {
        UInt32 num = 0u;

        if (!EventInput.isProcessingInput)
        {
            EventInput.ResetWorldTriggerButton();
            return(num);
        }
        Int32   fldMapNo = (Int32)FF9StateSystem.Common.FF9.fldMapNo;
        Int32   gMode    = PersistenSingleton <EventEngine> .Instance.gMode;
        Boolean isKeyboardOrJoystickInput = EventInput.IsKeyboardOrJoystickInput;

        if (Singleton <BubbleUI> .Instance.IsActive)
        {
            if (gMode == 1)
            {
                if (fldMapNo == 1420 && EventInput.CheckLadderFlag())
                {
                    num = EventInput.ProcessInput(false, false);
                }
                else
                {
                    num = EventInput.ProcessInput(false, true);
                }
            }
            else if (gMode == 3)
            {
                if (FF9StateSystem.MobilePlatform)
                {
                    num = EventInput.ProcessInput(false, isKeyboardOrJoystickInput);
                    EventInput.GetWorldTriggerButton(ref num);
                }
                else
                {
                    num = EventInput.ProcessInput(false, true);
                }
            }
        }
        else if (EventHUD.CurrentHUD != MinigameHUD.None)
        {
            MinigameHUD currentHUD = EventHUD.CurrentHUD;
            if (currentHUD != MinigameHUD.Chanbara)
            {
                if (currentHUD != MinigameHUD.RacingHippaul)
                {
                    num = EventInput.ProcessInput(false, true);
                }
                else
                {
                    num = EventInput.ProcessInput(false, false);
                }
            }
            else
            {
                num  = EventInput.ProcessInput(true, true);
                num &= EventInput.ChanbaraMask;
                if (FF9StateSystem.MobilePlatform)
                {
                    if ((num & 8u) > 0u)
                    {
                        EventInput.IsNeedAddStartSignal = true;
                    }
                    else if (EventInput.addStartSignal > 0)
                    {
                        num |= 8u;
                        EventInput.addStartSignal--;
                        EventInput.InputLog("Extra Start");
                    }
                }
            }
        }
        else if (fldMapNo == 606)
        {
            if (EventHUD.CurrentHUD == MinigameHUD.Telescope)
            {
                num = EventInput.ProcessInput(false, true);
            }
        }
        else if (fldMapNo == 2204 && TimerUI.Enable)
        {
            num = EventInput.ProcessInput(false, false);
        }
        else if (fldMapNo == 1607)
        {
            num = EventInput.ProcessInput(false, false);
        }
        else if (fldMapNo == 1420)
        {
            num = EventInput.ProcessInput(false, true);
        }
        else if (fldMapNo == 1422)
        {
            num = EventInput.ProcessInput(false, true);
        }
        else
        {
            Dialog mognetDialog = Singleton <DialogManager> .Instance.GetMognetDialog();

            if (mognetDialog != (UnityEngine.Object)null)
            {
                if (mognetDialog.IsChoiceReady)
                {
                    num = EventInput.ProcessInput(false, true);
                }
            }
            else if (FF9StateSystem.MobilePlatform)
            {
                num = EventInput.ProcessInput(false, isKeyboardOrJoystickInput);
                if (isKeyboardOrJoystickInput)
                {
                    UIManager.Input.ResetTriggerEvent();
                }
                EventInput.GetWorldTriggerButton(ref num);
            }
            else
            {
                num = EventInput.ProcessInput(false, true);
            }
        }
        num |= EventInput.eventButtonInput;
        if (EventInput.isDialogConfirm)
        {
            num |= EventInput.ConfirmMask;
            EventInput.isDialogConfirm = false;
        }
        if (HonoBehaviorSystem.Instance.IsFastForwardModeActive())
        {
            if (FF9StateSystem.MobilePlatform)
            {
                if (fldMapNo == 909 || fldMapNo == 1909)
                {
                    num = EventInput.FastForwardProcess(gMode, fldMapNo, num);
                }
            }
            else
            {
                num = EventInput.FastForwardProcess(gMode, fldMapNo, num);
            }
        }
        num &= ~EventInput.PSXCntlPadMask[0];
        if (FF9StateSystem.MobilePlatform && gMode == 3 && EventCollision.IsRidingChocobo())
        {
            if ((num & 524288u) > 0u || (num & 32768u) > 0u)
            {
                EventInput.isPressedDig = true;
            }
            else if ((num & 16777216u) > 0u || (num & 4096u) > 0u)
            {
                EventInput.isPressedDig = false;
            }
            else if ((num & EventInput.Lx) > 0u || (num & 16384u) > 0u)
            {
                EventInput.isPressedDig = false;
            }
            else if ((num & 1u) > 0u || (num & 1u) > 0u)
            {
                EventInput.isPressedDig = false;
            }
        }
        if (gMode == 3 && EventEngineUtils.IsMogCalled(PersistenSingleton <EventEngine> .Instance))
        {
            ff9.w_isMogActive = true;
        }
        if (gMode == 3 && EMinigame.CheckBeachMinigame() && EventCollision.IsWorldTrigger() && (num & CancelMask) > 0u)
        {
            num &= ~CancelMask;
            EventInput.InputLog("Remove cancel mask for <SQEX> #2893");
        }
        EventInput.eventButtonInput = 0u;
        EventInput.ResetWorldTriggerButton();
        return(num);
    }
示例#19
0
    public void InitBattleScene()
    {
        FF9StateGlobal ff = FF9StateSystem.Common.FF9;

        ff.charArray.Clear();
        this.btlScene = (FF9StateSystem.Battle.FF9Battle.btl_scene = new BTL_SCENE());
        global::Debug.Log("battleID = " + FF9StateSystem.Battle.battleMapIndex);
        HonoluluBattleMain.battleSceneName = FF9BattleDB.SceneData.FirstOrDefault((KeyValuePair <string, int> x) => x.Value == FF9StateSystem.Battle.battleMapIndex).Key;
        HonoluluBattleMain.battleSceneName = HonoluluBattleMain.battleSceneName.Substring(4);
        global::Debug.Log("battleSceneName = " + HonoluluBattleMain.battleSceneName);
        this.btlScene.ReadBattleScene(HonoluluBattleMain.battleSceneName);
        base.StartCoroutine(PersistenSingleton <FF9TextTool> .Instance.UpdateBattleText(FF9BattleDB.SceneData["BSC_" + HonoluluBattleMain.battleSceneName]));
        WMProfiler.Begin("Start Load Text");
        string text = FF9BattleDB.MapModel["BSC_" + HonoluluBattleMain.battleSceneName];
        string path = "BattleMap/BattleModel/battleMap_all/" + text + "/" + text;

        FF9StateSystem.Battle.FF9Battle.map.btlBGPtr = ModelFactory.CreateModel(path, Vector3.zero, Vector3.zero, true);
        checked {
            if (!FF9StateSystem.Battle.isDebug)
            {
                FF9StateSystem.Battle.FF9Battle.btl_scene.PatNum = (byte)this.ChoicePattern();
            }
            else
            {
                FF9StateSystem.Battle.FF9Battle.btl_scene.PatNum = FF9StateSystem.Battle.patternIndex;
            }
            this.btlSeq = new btlseq();
            this.btlSeq.ReadBattleSequence(HonoluluBattleMain.battleSceneName);
            FF9StateSystem.Battle.FF9Battle.attr = 0;
            battle.InitBattle();
            FF9StateBattleSystem ff9Battle = FF9StateSystem.Battle.FF9Battle;
            ff9Battle.attr |= 1;
            if (!FF9StateSystem.Battle.isDebug)
            {
                string            ebFileName = "EVT_BATTLE_" + HonoluluBattleMain.battleSceneName;
                FF9StateBattleMap map        = FF9StateSystem.Battle.FF9Battle.map;
                map.evtPtr = EventEngineUtils.loadEventData(ebFileName, EventEngineUtils.ebSubFolderBattle);
                PersistenSingleton <EventEngine> .Instance.StartEvents(map.evtPtr);

                PersistenSingleton <EventEngine> .Instance.eTb.InitMessage();
            }
            this.CreateBattleData(ff);
            if (HonoluluBattleMain.battleSceneName == "EF_E006" || HonoluluBattleMain.battleSceneName == "EF_E007")
            {
                BTL_DATA btl_DATA  = FF9StateSystem.Battle.FF9Battle.btl_data[4];
                BTL_DATA btl_DATA2 = FF9StateSystem.Battle.FF9Battle.btl_data[5];
                this.GeoBattleAttach(btl_DATA2.gameObject, btl_DATA.gameObject, 55);
                btl_DATA2.attachOffset = 100;
            }
            FF9StateBattleSystem ff9Battle2   = FF9StateSystem.Battle.FF9Battle;
            GEOTEXHEADER         geotexheader = new GEOTEXHEADER();
            geotexheader.ReadBGTextureAnim(text);
            ff9Battle2.map.btlBGTexAnimPtr = geotexheader;
            BBGINFO bbginfo = new BBGINFO();
            bbginfo.ReadBattleInfo(text);
            FF9StateSystem.Battle.FF9Battle.map.btlBGInfoPtr = bbginfo;
            btlshadow.ff9battleShadowInit(13);
            battle.InitBattleMap();
            this.seqList = new List <int> ();
            SB2_PATTERN sb2_PATTERN = this.btlScene.PatAddr[(int)FF9StateSystem.Battle.FF9Battle.btl_scene.PatNum];
            int[]       array       = new int[(int)sb2_PATTERN.MonCount];
            for (int i = 0; i < (int)sb2_PATTERN.MonCount; i++)
            {
                array[i] = (int)sb2_PATTERN.Put[i].TypeNo;
            }
            array = array.Distinct <int> ().ToArray <int> ();
            for (int j = 0; j < array.Length; j++)
            {
                for (int k = 0; k < this.btlSeq.sequenceProperty.Length; k++)
                {
                    SequenceProperty sequenceProperty = this.btlSeq.sequenceProperty[k];
                    if (sequenceProperty.Montype == array[j])
                    {
                        for (int l = 0; l < sequenceProperty.PlayableSequence.Count; l++)
                        {
                            this.seqList.Add(sequenceProperty.PlayableSequence[l]);
                        }
                    }
                }
            }
            this.btlIDList   = FF9StateSystem.Battle.FF9Battle.seq_work_set.AnmOfsList.Distinct <byte> ().ToArray <byte> ();
            this.battleState = HonoluluBattleMain.BattleState.PlayerTurn;
            HonoluluBattleMain.playerEnterCommand = false;
            this.playerCastingSkill = false;
            this.enemyEnterCommand  = false;
        }
    }
示例#20
0
    public int DoCalcOperationExt(int code)
    {
        int   frameNdx  = 0;
        short triNdx1   = 0;
        short floorNdx1 = 0;

        EBin.op_binary opBinary = (EBin.op_binary)code;
        switch (opBinary)
        {
        case EBin.op_binary.B_HAVE_ITEM:
            int id = this.eBin.getv();
            frameNdx = id >= EventEngine.kSItemOfs ? (id >= EventEngine.kCItemOfs ? QuadMistDatabase.MiniGame_GetCardCount(id - EventEngine.kCItemOfs) : (!ff9item.FF9Item_IsExistImportant(id - EventEngine.kSItemOfs) ? 0 : 1)) : ff9item.FF9Item_GetCount(id);
            break;

        case EBin.op_binary.B_BAFRAME:
            this.fieldmap.walkMesh.BGI_animGetFrame((uint)this.eBin.getv(), ref frameNdx);
            break;

        case EBin.op_binary.B_FRAME:
            frameNdx = EventEngineUtils.GetCharAnimFrame(this.gCur.go, this.eBin.getv());
            break;

        case EBin.op_binary.B_SPS:
            this.eBin.getv();
            this.eBin.getv();
            break;

        case EBin.op_binary.B_CURMP:
            frameNdx = (int)this._ff9.player[this.chr2slot(this.eBin.getv())].cur.mp;
            break;

        case EBin.op_binary.B_MAXMP:
            frameNdx = (int)this._ff9.player[this.chr2slot(this.eBin.getv())].max.mp;
            break;

        case EBin.op_binary.B_BGIID:
            short triNdx2 = -1;
            BGI.BGI_charGetInfo(this.eBin.getv(), ref triNdx2, ref floorNdx1);
            frameNdx = (int)triNdx2;
            break;

        case EBin.op_binary.B_BGIFLOOR:
            short floorNdx2 = -1;
            BGI.BGI_charGetInfo(this.eBin.getv(), ref triNdx1, ref floorNdx2);
            frameNdx = (int)floorNdx2;
            break;

        default:
            switch (opBinary - 67)
            {
            case EBin.op_binary.B_PAD0:
            case EBin.op_binary.B_PAD1:
            case EBin.op_binary.B_PAD2:
label_9:
                frameNdx = this.OperatorExtractLet(code);
                break;

            case EBin.op_binary.B_POST_PLUS_A:
            case EBin.op_binary.B_POST_MINUS_A:
label_8:
                frameNdx = this.OperatorExtract1(code);
                break;

            default:
                switch (opBinary - 8)
                {
                case EBin.op_binary.B_PAD0:
                case EBin.op_binary.B_PAD1:
                case EBin.op_binary.B_PAD2:
                case EBin.op_binary.B_PAD3:
                    frameNdx = this.OperatorAll1(code);
                    break;

                case EBin.op_binary.B_PRE_MINUS:
                    goto label_8;

                default:
                    switch (opBinary - 90)
                    {
                    case EBin.op_binary.B_PAD0:
                    case EBin.op_binary.B_PAD1:
                    case EBin.op_binary.B_PAD2:
                        this.eBin.getv();
                        break;

                    default:
                        if (opBinary != EBin.op_binary.B_CURHP)
                        {
                            if (opBinary != EBin.op_binary.B_MAXHP)
                            {
                                if (opBinary == EBin.op_binary.B_LET_E)
                                {
                                    goto label_9;
                                }
                                else
                                {
                                    break;
                                }
                            }
                            else
                            {
                                frameNdx = (int)this._ff9.player[this.chr2slot(this.eBin.getv())].max.hp;
                                break;
                            }
                        }
                        else
                        {
                            frameNdx = (int)this._ff9.player[this.chr2slot(this.eBin.getv())].cur.hp;
                            break;
                        }
                    }
                    break;
                }
                break;
            }
            break;
        }
        return(frameNdx);
    }
示例#21
0
    private bool MoveToward_mixed(float x, float y, float z, int flags, PosObj flagsPosObj)
    {
        Actor actor = (Actor)this.gCur;

        if (FF9StateSystem.Common.FF9.fldMapNo == 1823 && actor.sid == 13 && (int)x == -365 && (int)z == -373)
        {
            x = -389f;
            z = -600f;
        }
        if (FF9StateSystem.Common.FF9.fldMapNo == 1550 && actor.sid == 15 && (int)x == -1109 && (int)z == -1014)
        {
            x = -1155f;
            z = -1070f;
        }
        GameObject go     = this.gCur.go;
        float      num    = (float)actor.speed;
        float      num2   = 0f;
        PosObj     posObj = (PosObj)null;
        FieldMapActorController fieldMapActorController = (FieldMapActorController)null;
        WMActor wmactor = (WMActor)null;
        float   num3    = 0f;
        float   num4    = 0f;
        float   num5    = 0f;
        Vector3 vector  = Vector3.zero;

        if (this.gMode == 1)
        {
            fieldMapActorController = actor.fieldMapActorController;
            if (fieldMapActorController == (UnityEngine.Object)null)
            {
                num3 = actor.pos[0];
                num4 = actor.pos[1];
                num5 = actor.pos[2];
            }
            else
            {
                num3 = fieldMapActorController.curPos.x;
                num4 = fieldMapActorController.curPos.y;
                num5 = fieldMapActorController.curPos.z;
            }
            vector = actor.rotAngle;
        }
        else if (this.gMode == 3)
        {
            wmactor = actor.wmActor;
            num3    = actor.pos[0];
            num4    = actor.pos[1];
            num5    = actor.pos[2];
        }
        float deltaX = x - num3;
        float num6   = y - num4;
        float deltaZ = z - num5;
        float num7;

        if (((int)actor.actf & EventEngine.actLockDir) != 0)
        {
            num7 = ((this.gMode != 1) ? wmactor.rot1 : vector.y);
            num7 = EventEngineUtils.ClampAngle(num7);
        }
        else
        {
            num7 = this.eBin.angleAsm(deltaX, deltaZ);
            if ((flags & 1) == 0 || flagsPosObj != null)
            {
                float num8 = (this.gMode != 1) ? wmactor.rot1 : vector.y;
                num8 = EventEngineUtils.ClampAngle(num8);
                float num9 = num7 - num8;
                if (num9 < -180f)
                {
                    num9 += 360f;
                }
                if (num9 > 180f || EventEngineUtils.nearlyEqual(num9, 180f))
                {
                    num9 -= 360f;
                }
                if ((FF9StateSystem.Common.FF9.fldMapNo != 307 || this.gCur.sid != 11) && (FF9StateSystem.Common.FF9.fldMapNo != 610 || this.gCur.sid != 3) && EventEngineUtils.nearlyEqual(num9, 0f))
                {
                    Actor actor2 = actor;
                    actor2.actf = (ushort)(actor2.actf | (ushort)EventEngine.actLockDir);
                }
                int   num10 = (int)actor.omega << 3;
                float num11 = EventEngineUtils.ConvertFixedPointAngleToDegreeWithOutShiftRight((short)num10);
                if (num9 > 0f)
                {
                    if (num9 > num11)
                    {
                        num7 = num8 + num11;
                    }
                }
                else if (num9 < -num11)
                {
                    num7 = num8 - num11;
                }
                num7 = EventEngineUtils.ClampAngle(num7);
                if (this.gMode == 1)
                {
                    vector.y          = num7;
                    actor.rotAngle[1] = num7;
                }
                else if (this.gMode == 3)
                {
                    wmactor.rot1 = num7;
                }
            }
        }
        float num13;

        if ((flags & 2) != 0 && flagsPosObj == null)
        {
            num6 = y - num4;
            float num12 = this.distance(deltaX, 0f, deltaZ);
            num13 = this.eBin.angleAsm(-num6, -num12);
            num13 = EventEngineUtils.ClampAngle(num13);
            float num8 = actor.rot0;
            num8 = EventEngineUtils.ClampAngle(num8);
            float num9 = num13 - num8;
            if (num9 < -180f)
            {
                num9 += 360f;
            }
            else if (num9 > 180f || EventEngineUtils.nearlyEqual(num9, 180f))
            {
                num9 -= 360f;
            }
            int   num10 = (int)actor.omega << 3;
            float num14 = EventEngineUtils.ConvertFixedPointAngleToDegreeWithOutShiftRight((short)num10);
            if (num9 > 0f)
            {
                if (num9 > num14)
                {
                    num13 = num8 + num14;
                }
            }
            else if (num9 < -num14)
            {
                num13 = num8 - num14;
            }
            num13      = EventEngineUtils.ClampAngle(num13);
            actor.rot0 = num13;
        }
        else
        {
            num13 = 0f;
            num6  = 0f;
        }
        Vector3 vector2;

        EventEngine.GetMoveVector(out vector2, num13, num7, (float)actor.speed);
        if (fieldMapActorController != (UnityEngine.Object)null && fieldMapActorController.name == fieldMapActorController.fieldMap.debugObjName)
        {
            Vector3 a       = new Vector3(num3, num4, num5);
            Vector3 vector3 = vector2;
            Vector3 b       = vector3.normalized * 100f * vector3.magnitude;
            Vector3 b2      = new Vector3(0f, 100f, 0f);
            Vector3 vector4 = new Vector3(x, y, z);
            global::Debug.DrawLine(a + b2, a + b + b2, Color.magenta, 2f, true);
            global::Debug.DrawLine(a + b2, a + Vector3.up * 50f + b2, Color.blue, 2f, true);
        }
        Vector3 vector5 = new Vector3(num3, num4, num5) + vector2;

        if (this.gMode == 1)
        {
            fieldMapActorController = actor.fieldMapActorController;
            if (fieldMapActorController == (UnityEngine.Object)null)
            {
                actor.pos[0] = vector5.x;
                actor.pos[1] = vector5.y;
                actor.pos[2] = vector5.z;
            }
            else
            {
                fieldMapActorController.curPos += vector2;
                fieldMapActorController.SyncPosToTransform();
            }
        }
        else if (this.gMode == 3)
        {
            wmactor.SetPosition(vector5.x, vector5.y, vector5.z);
        }
        if (this.gMode == 1 && fieldMapActorController != (UnityEngine.Object)null)
        {
            if (fieldMapActorController.originalActor.uid == 2 && FF9StateSystem.Common.FF9.fldMapNo == 1605 && this.eBin.getVarManually(220) == 6622)
            {
                fieldMapActorController.originalActor.collRad = 10;
            }
            if (fieldMapActorController.originalActor.uid == 18 && FF9StateSystem.Common.FF9.fldMapNo == 575 && this.eBin.getVarManually(220) == 3165)
            {
                fieldMapActorController.originalActor.collRad = 34;
            }
            posObj = fieldMapActorController.walkMesh.Collision(fieldMapActorController, 0, out num2);
            if (posObj != null && (num2 < 0f || EventEngineUtils.nearlyEqual(num2, 0f)))
            {
                fieldMapActorController.curPos -= vector2;
            }
        }
        else if (this.gMode == 3)
        {
            posObj = (PosObj)this.Collision(this, actor, 0, ref num2);
            if (posObj != null && (num2 < 0f || EventEngineUtils.nearlyEqual(num2, 0f)))
            {
                wmactor.SetPosition(num3, num4, num5);
            }
            actor.pos[0] = vector5[0];
            actor.pos[1] = vector5[1];
            actor.pos[2] = vector5[2];
        }
        if (actor.loopCount != 0 && actor.loopCount != 255)
        {
            Actor actor3 = actor;
            actor3.loopCount = (byte)(actor3.loopCount - 1);
        }
        bool flag = actor.loopCount != 0;

        if (flagsPosObj != null)
        {
            bool flag2 = posObj != flagsPosObj;
            bool flag3 = num2 > 0f;
            flag = (flag2 || flag3);
        }
        num2 = this.dist64(deltaX, num6, deltaZ);
        bool flag4 = num2 > actor.lastdist;

        if (FF9StateSystem.Common.FF9.fldMapNo == 456 && this.eBin.getVarManually(EBin.SC_COUNTER_SVR) == 2800)
        {
            if (actor.sid == 2)
            {
                flag4 = (!EventEngineUtils.nearlyEqual(num2, actor.lastdist) && num2 > actor.lastdist);
            }
        }
        else if (FF9StateSystem.Common.FF9.fldMapNo == 455 && this.eBin.getVarManually(EBin.SC_COUNTER_SVR) == 2800)
        {
            if (actor.sid == 1)
            {
                flag4 = (!EventEngineUtils.nearlyEqual(num2, actor.lastdist) && num2 > actor.lastdist);
            }
        }
        else if (FF9StateSystem.Common.FF9.fldMapNo == 1055 && actor.sid == 11)
        {
            flag4 = (!EventEngineUtils.nearlyEqual(num2, actor.lastdist) && num2 > actor.lastdist);
        }
        if (num2 < num * num || (((int)actor.actf & EventEngine.actMove) != 0 && flag4))
        {
            if (num2 < num * num && FF9StateSystem.Common.FF9.fldMapNo != 2204 && (FF9StateSystem.Common.FF9.fldMapNo != 2209 || PersistenSingleton <EventEngine> .Instance.eBin.getVarManually(220) != 9850) && this.gMode == 1 && fieldMapActorController != (UnityEngine.Object)null)
            {
                fieldMapActorController.curPos.x = x;
                fieldMapActorController.curPos.z = z;
                fieldMapActorController.SyncPosToTransform();
            }
            flag = false;
        }
        bool flag5 = false;

        if (FF9StateSystem.Common.FF9.fldMapNo == 901)
        {
            if (actor.sid == 1)
            {
                flag5 = true;
            }
        }
        else if (FF9StateSystem.Common.FF9.fldMapNo == 1808)
        {
            if (actor.sid == 4 || actor.sid == 5)
            {
                flag5 = true;
            }
        }
        else if (FF9StateSystem.Common.FF9.fldMapNo == 1810)
        {
            if (actor.sid == 5)
            {
                flag5 = true;
            }
        }
        else if (FF9StateSystem.Common.FF9.fldMapNo == 456 && this.eBin.getVarManually(EBin.SC_COUNTER_SVR) == 2800)
        {
            if (actor.sid == 2)
            {
                flag5 = true;
            }
        }
        else if (FF9StateSystem.Common.FF9.fldMapNo == 455 && this.eBin.getVarManually(EBin.SC_COUNTER_SVR) == 2800)
        {
            if (actor.sid == 1)
            {
                flag5 = true;
            }
        }
        else if (FF9StateSystem.Common.FF9.fldMapNo == 1055 && actor.sid == 11)
        {
            flag5 = true;
        }
        if (flag5 && flag4 && posObj != null && posObj.uid == this.GetControlUID())
        {
            flag = true;
        }
        if (actor.lastdist < (float)EventEngine.kInitialDist && num2 < actor.lastdist)
        {
            Actor actor4 = actor;
            actor4.actf = (ushort)(actor4.actf | (ushort)EventEngine.actMove);
        }
        if (FF9StateSystem.Common.FF9.fldMapNo == 571 && actor.sid == 4 && EventEngineUtils.nearlyEqual(x, 887f) && EventEngineUtils.nearlyEqual(z, 1419f) && num2 > actor.lastdist)
        {
            fieldMapActorController.curPos.x = 887f;
            fieldMapActorController.curPos.z = 1419f;
            fieldMapActorController.SyncPosToTransform();
            return(true);
        }
        actor.lastdist = num2;
        if (FF9StateSystem.Common.FF9.fldMapNo == 2954 && actor.sid == 11 && EventEngineUtils.nearlyEqual(num2, 32420f))
        {
            return(false);
        }
        if (!flag)
        {
            this.clrdist(actor);
        }
        if (actor.uid == this._context.controlUID)
        {
            this.gAnimCount++;
        }
        return(flag);
    }
示例#22
0
	private void ff9InitStateFieldMap(Int32 MapNo)
	{
		FF9StateFieldMap map = this.FF9Field.loc.map;
		map.ff9ResetStateFieldMap();
		this.FF9Sys.attr &= 4294966512u;
		this.FF9Field.attr |= 4u;
		FF9StateFieldSystem ff9Field = FF9StateSystem.Field.FF9Field;
		this.FF9Field.playerID = 0;
		map.nextMapNo = (this.FF9.fldMapNo = (Int16)MapNo);
		for (Int32 i = 1; i >= 0; i--)
		{
			for (Int32 j = 3; j >= 0; j--)
			{
				FieldMap.FF9FieldAttr.ff9[i, j] = 0;
				FieldMap.FF9FieldAttr.field[i, j] = 0;
			}
		}
		String text = FF9DBAll.EventDB[MapNo];
		map.evtPtr = EventEngineUtils.loadEventData(text, EventEngineUtils.ebSubFolderField);
		AnimationFactory.LoadAnimationUseInEvent(text);
		vib.LoadVibData(text);
		map.mcfPtr = MapConfiguration.LoadMapConfigData(text);
		GameObject gameObject = GameObject.Find("FieldMap Root");
		GameObject gameObject2 = new GameObject("FieldMap");
		gameObject2.transform.parent = gameObject.transform;
		PersistenSingleton<EventEngine>.Instance.fieldmap = gameObject2.AddComponent<FieldMap>();
		GameObject gameObject3 = new GameObject("FieldMap SPS");
		gameObject3.transform.parent = gameObject.transform;
		PersistenSingleton<EventEngine>.Instance.fieldSps = gameObject3.AddComponent<FieldSPSSystem>();
		PersistenSingleton<EventEngine>.Instance.fieldSps.Init(PersistenSingleton<EventEngine>.Instance.fieldmap);
		if (MapNo >= 3000 && MapNo <= 3012)
		{
			FF9StateSystem.Settings.CallBoosterButtonFuntion(BoosterType.BattleAssistance, false);
			FF9StateSystem.Settings.CallBoosterButtonFuntion(BoosterType.HighSpeedMode, false);
			FF9StateSystem.Settings.CallBoosterButtonFuntion(BoosterType.Attack9999, false);
			FF9StateSystem.Settings.CallBoosterButtonFuntion(BoosterType.NoRandomEncounter, false);
			PersistenSingleton<UIManager>.Instance.Booster.SetBoosterHudIcon(BoosterType.BattleAssistance, false);
			PersistenSingleton<UIManager>.Instance.Booster.SetBoosterHudIcon(BoosterType.HighSpeedMode, false);
			PersistenSingleton<UIManager>.Instance.Booster.SetBoosterHudIcon(BoosterType.Attack9999, false);
			PersistenSingleton<UIManager>.Instance.Booster.SetBoosterHudIcon(BoosterType.NoRandomEncounter, false);
			PersistenSingleton<UIManager>.Instance.SetUIPauseEnable(false);
			PersistenSingleton<UIManager>.Instance.ChangeUIState(UIManager.UIState.PreEnding);
		}
		else
		{
			PersistenSingleton<UIManager>.Instance.SetUIPauseEnable(true);
		}
		AllSoundDispatchPlayer allSoundDispatchPlayer = SoundLib.GetAllSoundDispatchPlayer();
		Int32 suspendSongID = allSoundDispatchPlayer.GetSuspendSongID();
		Int32 sndEffectResSoundID = allSoundDispatchPlayer.GetSndEffectResSoundID(0);
		Int32 sndEffectResSoundID2 = allSoundDispatchPlayer.GetSndEffectResSoundID(1);
		FF9Snd.BGMFieldSongCounter = 0;
		this.ee.StartEvents(map.evtPtr);
		FF9StateSystem.Field.SetTwistAD((Int32)this.ee.GetTwistA(), (Int32)this.ee.GetTwistD());
		PersistenSingleton<EventEngine>.Instance.eTb.InitMessage();
		PersistenSingleton<EventEngine>.Instance.eTb.InitMovieHitPoint(MapNo);
		this.FF9.npcCount = (Byte)this.ee.GetNumberNPC();
		this.fieldmap = GameObject.Find("FieldMap").GetComponent<FieldMap>();
		this.ee.updateModelsToBeAdded();
		Int32 suspendSongID2 = allSoundDispatchPlayer.GetSuspendSongID();
		Int32 sndEffectResSoundID3 = allSoundDispatchPlayer.GetSndEffectResSoundID(0);
		Int32 sndEffectResSoundID4 = allSoundDispatchPlayer.GetSndEffectResSoundID(1);
		if (suspendSongID != -1 && suspendSongID2 != -1 && suspendSongID == suspendSongID2)
		{
			FF9Snd.ff9fldsnd_song_restore();
		}
		if (FF9Snd.LatestWorldPlayedSong != -1 && FF9Snd.LatestWorldPlayedSong == SoundLib.GetAllSoundDispatchPlayer().GetCurrentMusicId() && FF9Snd.BGMFieldSongCounter == 0)
		{
			SoundLib.GetAllSoundDispatchPlayer().FF9SOUND_SONG_STOPCURRENT();
		}
		FF9Snd.LatestWorldPlayedSong = -1;
		FF9Snd.BGMFieldSongCounter = 0;
		if ((sndEffectResSoundID != -1 || sndEffectResSoundID2 != -1) && (sndEffectResSoundID3 != -1 || sndEffectResSoundID4 != -1) && sndEffectResSoundID == sndEffectResSoundID3 && sndEffectResSoundID2 == sndEffectResSoundID4)
		{
			FF9Snd.ff9fieldSoundRestoreAllResidentSndEffect();
		}
	}
示例#23
0
    private void ProcessNeck(Actor actor)
    {
        Vector3 vector3    = Vector3.zero;
        int     fixedPoint = 0;
        float   single     = 0f;
        float   single1    = 0f;
        PosObj  posObj     = null;
        int?    nullable   = new int?(0);
        int?    nullable1  = null;

        if ((actor.actf & EventEngine.actNeckTalk) != 0 && EventEngine.sLastTalker != null && EventEngine.sLastTalker != actor && this.dist64(actor.pos[0] - EventEngine.sLastTalker.pos[0], actor.pos[2] - EventEngine.sLastTalker.pos[2], 0f) >= (float)EventEngine.kNeckNear2)
        {
            posObj = EventEngine.sLastTalker;
            Actor actor1 = actor;
            actor1.actf = (ushort)(actor1.actf | (ushort)EventEngine.actLookTalker);
        }
        if (posObj != null || (actor.actf & EventEngine.actNeckT) != 0 && (actor.animFlag & EventEngine.afLower) == 0)
        {
            if ((actor.flags & 128) != 0)
            {
                Vector3 vector31 = actor.rotAngle;
                single1        = vector31.y;
                vector31.y     = actor.trot;
                actor.rotAngle = vector31;
            }
            if (posObj == null)
            {
                posObj = this.CollisionNeck(actor);
            }
            if (posObj != null)
            {
                if ((actor.actf & EventEngine.actLook) == 0 && (actor.flags & 128) == 0)
                {
                    Actor actor2 = actor;
                    actor2.actf = (ushort)(actor2.actf | (ushort)EventEngine.actLook);
                    this.GetDefaultLook(actor, ref vector3, 0);
                    actor.xl = vector3.x;
                    actor.yl = vector3.y;
                    actor.zl = vector3.z;
                }
                if ((actor.actf & EventEngine.actLook) != 0 && this.NeckRange(actor, ref nullable1))
                {
                    vector3.x = posObj.pos[0];
                    vector3.y = posObj.pos[1];
                    vector3.z = posObj.pos[2];
                    float single2 = vector3.x - actor.pos[0];
                    float single3 = vector3.z - actor.pos[2];
                    single = this.eBin.angleAsm(single2, single3);
                    float item = single - actor.rotAngle[1];
                    if (item > 180f)
                    {
                        item = item - 360f;
                    }
                    else if (item < -180f)
                    {
                        item = item + 360f;
                    }
                    fixedPoint = EventEngineUtils.ConvertFloatAngleToFixedPoint(item);
                    if (fixedPoint > 2048)
                    {
                        fixedPoint = fixedPoint - 4096;
                    }
                    if (fixedPoint > -EventEngine.kNeckAngle && fixedPoint < EventEngine.kNeckAngle)
                    {
                        int num  = (int)actor.pos[1];
                        int num1 = (int)vector3.y;
                        vector3.y = (float)(3 * (((int)actor.pos[1] << 6) - actor.eye * actor.scaley) + ((int)vector3.y << 6) - posObj.eye * posObj.scaley >> 8);
                        this.LookSlow(actor, vector3);
                    }
                    else if (this.NeckTurn(actor, EventEngineUtils.ConvertFloatAngleToFixedPoint(single)))
                    {
                        this.GetDefaultLook(actor, ref vector3, (fixedPoint <= EventEngine.kNeckAngle ? (int)(-EventEngine.kNeckAngle) : (int)EventEngine.kNeckAngle));
                        this.LookSlow(actor, vector3);
                    }
                }
            }
            else if ((actor.actf & EventEngine.actLook) != 0 && this.NeckRange(actor, ref nullable) && this.NeckTurn(actor, nullable.Value))
            {
                this.NeckReturn(actor);
            }
            if ((actor.flags & 128) != 0)
            {
                Vector3 vector32 = actor.rotAngle;
                vector32.y = single1;
                if (vector32.y < -180f)
                {
                    vector32.y = vector32.y + 360f;
                }
                else if (vector32.y > 180f)
                {
                    vector32.y = vector32.y - 360f;
                }
                actor.rotAngle[1] = vector32.y;
            }
        }
        else if ((actor.actf & EventEngine.actLook) != 0 && this.NeckRange(actor, ref nullable1))
        {
            this.NeckReturn(actor);
        }
        if ((actor.actf & EventEngine.actLook) == 0)
        {
            this.geoLookReset(actor);
        }
    }
示例#24
0
    private bool MoveToward_mixed(float x, float y, float z, int flags, PosObj flagsPosObj)
    {
        Actor actor = (Actor)this.gCur;

        if ((int)FF9StateSystem.Common.FF9.fldMapNo == 1823 && (int)actor.sid == 13 && ((int)x == -365 && (int)z == -373))
        {
            x = -389f;
            z = -600f;
        }
        if ((int)FF9StateSystem.Common.FF9.fldMapNo == 1550 && (int)actor.sid == 15 && ((int)x == -1109 && (int)z == -1014))
        {
            x = -1155f;
            z = -1070f;
        }


        float  num1     = (float)actor.speed;
        float  distance = 0.0f;
        PosObj posObj   = (PosObj)null;
        FieldMapActorController fieldMapActorController = (FieldMapActorController)null;
        WMActor wmActor   = (WMActor)null;
        float   x1        = 0.0f;
        float   y1        = 0.0f;
        float   z1        = 0.0f;
        Vector3 vector3_1 = Vector3.zero;

        if (this.gMode == 1)
        {
            fieldMapActorController = actor.fieldMapActorController;
            if ((UnityEngine.Object)fieldMapActorController == (UnityEngine.Object)null)
            {
                x1 = actor.pos[0];
                y1 = actor.pos[1];
                z1 = actor.pos[2];
            }
            else
            {
                x1 = fieldMapActorController.curPos.x;
                y1 = fieldMapActorController.curPos.y;
                z1 = fieldMapActorController.curPos.z;
            }
            vector3_1 = actor.rotAngle;
        }
        else if (this.gMode == 3)
        {
            wmActor = actor.wmActor;
            x1      = actor.pos[0];
            y1      = actor.pos[1];
            z1      = actor.pos[2];
        }
        float deltaX = x - x1;
        float num2   = y - y1;
        float deltaZ = z - z1;
        float num3;

        if (((int)actor.actf & EventEngine.actLockDir) != 0)
        {
            num3 = EventEngineUtils.ClampAngle(this.gMode != 1 ? wmActor.rot1 : vector3_1.y);
        }
        else
        {
            num3 = this.eBin.angleAsm(deltaX, deltaZ);
            if ((flags & 1) == 0 || flagsPosObj != null)
            {
                float num4 = EventEngineUtils.ClampAngle(this.gMode != 1 ? wmActor.rot1 : vector3_1.y);
                float a    = num3 - num4;
                if ((double)a < -180.0)
                {
                    a += 360f;
                }
                if ((double)a > 180.0 || EventEngineUtils.nearlyEqual(a, 180f))
                {
                    a -= 360f;
                }
                if (((int)FF9StateSystem.Common.FF9.fldMapNo != 307 || (int)this.gCur.sid != 11) && ((int)FF9StateSystem.Common.FF9.fldMapNo != 610 || (int)this.gCur.sid != 3) && EventEngineUtils.nearlyEqual(a, 0.0f))
                {
                    actor.actf |= (ushort)EventEngine.actLockDir;
                }
                float withOutShiftRight = EventEngineUtils.ConvertFixedPointAngleToDegreeWithOutShiftRight((short)((int)actor.omega << 3));
                if ((double)a > 0.0)
                {
                    if ((double)a > (double)withOutShiftRight)
                    {
                        num3 = num4 + withOutShiftRight;
                    }
                }
                else if ((double)a < -(double)withOutShiftRight)
                {
                    num3 = num4 - withOutShiftRight;
                }
                num3 = EventEngineUtils.ClampAngle(num3);
                if (this.gMode == 1)
                {
                    vector3_1.y       = num3;
                    actor.rotAngle[1] = num3;
                }
                else if (this.gMode == 3)
                {
                    wmActor.rot1 = num3;
                }
            }
        }
        float deltaY;
        float rotx;

        if ((flags & 2) != 0 && flagsPosObj == null)
        {
            deltaY = y - y1;
            float num4  = this.distance(deltaX, 0.0f, deltaZ);
            float angle = EventEngineUtils.ClampAngle(this.eBin.angleAsm(-deltaY, -num4));
            float num5  = EventEngineUtils.ClampAngle(actor.rot0);
            float a     = angle - num5;
            if ((double)a < -180.0)
            {
                a += 360f;
            }
            else if ((double)a > 180.0 || EventEngineUtils.nearlyEqual(a, 180f))
            {
                a -= 360f;
            }
            float withOutShiftRight = EventEngineUtils.ConvertFixedPointAngleToDegreeWithOutShiftRight((short)((int)actor.omega << 3));
            if ((double)a > 0.0)
            {
                if ((double)a > (double)withOutShiftRight)
                {
                    angle = num5 + withOutShiftRight;
                }
            }
            else if ((double)a < -(double)withOutShiftRight)
            {
                angle = num5 - withOutShiftRight;
            }
            rotx       = EventEngineUtils.ClampAngle(angle);
            actor.rot0 = rotx;
        }
        else
        {
            rotx   = 0.0f;
            deltaY = 0.0f;
        }
        Vector3 oVector;

        GetMoveVector(out oVector, rotx, num3, (float)actor.speed);
        if ((UnityEngine.Object)fieldMapActorController != (UnityEngine.Object)null && fieldMapActorController.name == fieldMapActorController.fieldMap.debugObjName)
        {
            Vector3 vector3_2 = new Vector3(x1, y1, z1);
            Vector3 vector3_3 = oVector;
            Vector3 vector3_4 = vector3_3.normalized * 100f * vector3_3.magnitude;
            Vector3 vector3_5 = new Vector3(0.0f, 100f, 0.0f);
            Vector3 vector3_6 = new Vector3(x, y, z);
            Debug.DrawLine(vector3_2 + vector3_5, vector3_2 + vector3_4 + vector3_5, Color.magenta, 2f, true);
            Debug.DrawLine(vector3_2 + vector3_5, vector3_2 + Vector3.up * 50f + vector3_5, Color.blue, 2f, true);
        }
        Vector3 vector3_7 = new Vector3(x1, y1, z1) + oVector;

        if (this.gMode == 1)
        {
            fieldMapActorController = actor.fieldMapActorController;
            if ((UnityEngine.Object)fieldMapActorController == (UnityEngine.Object)null)
            {
                actor.pos[0] = vector3_7.x;
                actor.pos[1] = vector3_7.y;
                actor.pos[2] = vector3_7.z;
            }
            else
            {
                fieldMapActorController.curPos = fieldMapActorController.curPos + oVector;
                fieldMapActorController.SyncPosToTransform();
            }
        }
        else if (this.gMode == 3)
        {
            wmActor.SetPosition(vector3_7.x, vector3_7.y, vector3_7.z);
        }
        if (this.gMode == 1 && (UnityEngine.Object)fieldMapActorController != (UnityEngine.Object)null)
        {
            if ((int)fieldMapActorController.originalActor.uid == 2 && (int)FF9StateSystem.Common.FF9.fldMapNo == 1605 && this.eBin.getVarManually(220) == 6622)
            {
                fieldMapActorController.originalActor.collRad = (byte)10;
            }
            if ((int)fieldMapActorController.originalActor.uid == 18 && (int)FF9StateSystem.Common.FF9.fldMapNo == 575 && this.eBin.getVarManually(220) == 3165)
            {
                fieldMapActorController.originalActor.collRad = (byte)34;
            }
            posObj = fieldMapActorController.walkMesh.Collision(fieldMapActorController, 0, out distance);
            if (posObj != null && ((double)distance < 0.0 || EventEngineUtils.nearlyEqual(distance, 0.0f)))
            {
                fieldMapActorController.curPos = fieldMapActorController.curPos - oVector;
            }
        }
        else if (this.gMode == 3)
        {
            posObj = (PosObj)this.Collision(this, (PosObj)actor, 0, ref distance);
            if (posObj != null && ((double)distance < 0.0 || EventEngineUtils.nearlyEqual(distance, 0.0f)))
            {
                wmActor.SetPosition(x1, y1, z1);
            }
            actor.pos[0] = vector3_7[0];
            actor.pos[1] = vector3_7[1];
            actor.pos[2] = vector3_7[2];
        }
        if ((int)actor.loopCount != 0 && (int)actor.loopCount != (int)byte.MaxValue)
        {
            --actor.loopCount;
        }
        bool flag1 = (int)actor.loopCount != 0;

        if (flagsPosObj != null)
        {
            flag1 = posObj != flagsPosObj || (double)distance > 0.0;
        }
        float a1 = this.dist64(deltaX, deltaY, deltaZ);

        if ((double)a1 < (double)num1 * (double)num1 || ((int)actor.actf & EventEngine.actMove) != 0 && (double)a1 > (double)actor.lastdist)
        {
            if ((double)a1 < (double)num1 * (double)num1 && (int)FF9StateSystem.Common.FF9.fldMapNo != 2204 && ((int)FF9StateSystem.Common.FF9.fldMapNo != 2209 || PersistenSingleton <EventEngine> .Instance.eBin.getVarManually(220) != 9850) && (this.gMode == 1 && (UnityEngine.Object)fieldMapActorController != (UnityEngine.Object)null))
            {
                fieldMapActorController.curPos.x = x;
                fieldMapActorController.curPos.z = z;
                fieldMapActorController.SyncPosToTransform();
            }
            flag1 = false;
        }
        bool flag2 = false;

        if ((int)FF9StateSystem.Common.FF9.fldMapNo == 901)
        {
            if ((int)actor.sid == 1)
            {
                flag2 = true;
            }
        }
        else if ((int)FF9StateSystem.Common.FF9.fldMapNo == 1808)
        {
            if ((int)actor.sid == 4 || (int)actor.sid == 5)
            {
                flag2 = true;
            }
        }
        else if ((int)FF9StateSystem.Common.FF9.fldMapNo == 1810 && (int)actor.sid == 5)
        {
            flag2 = true;
        }
        if (flag2 && (double)a1 > (double)actor.lastdist && (posObj != null && (int)posObj.uid == (int)this.GetControlUID()))
        {
            flag1 = true;
        }
        if ((double)actor.lastdist < (double)EventEngine.kInitialDist && (double)a1 < (double)actor.lastdist)
        {
            actor.actf |= (ushort)EventEngine.actMove;
        }
        if ((int)FF9StateSystem.Common.FF9.fldMapNo == 571 && (int)actor.sid == 4 && (EventEngineUtils.nearlyEqual(x, 887f) && EventEngineUtils.nearlyEqual(z, 1419f)) && (double)a1 > (double)actor.lastdist)
        {
            fieldMapActorController.curPos.x = 887f;
            fieldMapActorController.curPos.z = 1419f;
            fieldMapActorController.SyncPosToTransform();
            return(true);
        }
        actor.lastdist = a1;
        if ((int)FF9StateSystem.Common.FF9.fldMapNo == 2954 && (int)actor.sid == 11 && EventEngineUtils.nearlyEqual(a1, 32420f))
        {
            return(false);
        }
        if (!flag1)
        {
            this.clrdist(actor);
        }
        if ((int)actor.uid == (int)this._context.controlUID)
        {
            ++this.gAnimCount;
        }
        return(flag1);
    }