Ejemplo n.º 1
0
    public static void ShowWorldBubble()
    {
        EventEngine instance = PersistenSingleton <EventEngine> .Instance;

        BubbleUI.Flag[] bubbleFlagData          = EIcon.GetBubbleFlagData(EIcon.sFIconType);
        Action <PosObj, Obj, UInt32>[] listener = new Action <PosObj, Obj, UInt32>[]
        {
            new Action <PosObj, Obj, UInt32>(EventCollision.BubbleUIListener)
        };
        PosObj  controlChar     = instance.GetControlChar();
        Vector3 uidefaultOffset = BubbleUI.UIDefaultOffset;

        if (controlChar.go == (UnityEngine.Object)null)
        {
            return;
        }
        if (EventCollision.IsChocoboFlyingOverForest() || (EIcon.dialogBubble && EIcon.dialogAlternativeKey))
        {
            Singleton <BubbleUI> .Instance.ChangePrimaryKey(Control.Cancel);

            EIcon.dialogAlternativeKey = false;
        }
        else
        {
            Singleton <BubbleUI> .Instance.ChangePrimaryKey(Control.Confirm);
        }
        EIcon.ShowDelay = Singleton <BubbleUI> .Instance.AnimationDuration;
        Vector3 transformOffset;

        EIcon.GetWorldActorOffset(out transformOffset, ref uidefaultOffset);
        Singleton <BubbleUI> .Instance.Show(controlChar.go.transform, controlChar, (Obj)null, EIcon.WorldCamera, transformOffset, uidefaultOffset, bubbleFlagData, listener);
    }
Ejemplo n.º 2
0
    private static Boolean CheckQuadPush(PosObj ctrl, Obj quad)
    {
        Boolean result = true;

        if (PersistenSingleton <EventEngine> .Instance.gMode == 1)
        {
            Int16 fldMapNo = FF9StateSystem.Common.FF9.fldMapNo;
            if (fldMapNo != 2108)
            {
                if (fldMapNo != 2802)
                {
                    if (fldMapNo == 2914)
                    {
                        Byte sid = quad.sid;
                        if (sid == 13)
                        {
                            result = false;
                        }
                    }
                }
                else if (quad.sid == 24)
                {
                    result = false;
                }
            }
            else if (quad.sid == 6)
            {
                result = EventCollision.IsQuadTalkable(ctrl, quad);
            }
        }
        return(result);
    }
Ejemplo n.º 3
0
    public static void ShowWorldBubble()
    {
        EventEngine instance = PersistenSingleton <EventEngine> .Instance;

        BubbleUI.Flag[] bubbleFlagData        = GetBubbleFlagData(s_FIconType);
        Action <PosObj, Obj, uint>[] listener = new Action <PosObj, Obj, uint>[1] {
            EventCollision.BubbleUIListener
        };
        PosObj  controlChar = instance.GetControlChar();
        Vector3 uiOffset    = BubbleUI.UIDefaultOffset;

        if (controlChar.go == null)
        {
            return;
        }

        if (EventCollision.IsChocoboFlyingOverForest() || IsDialogBubble && s_dialogAlternativeKey)
        {
            Singleton <BubbleUI> .Instance.ChangePrimaryKey(Control.Cancel);

            s_dialogAlternativeKey = false;
        }
        else
        {
            Singleton <BubbleUI> .Instance.ChangePrimaryKey(Control.Confirm);
        }

        ShowDelay = Singleton <BubbleUI> .Instance.AnimationDuration;
        Vector3 actorOffset;

        GetWorldActorOffset(out actorOffset, ref uiOffset);
        Singleton <BubbleUI> .Instance.Show(controlChar.go.transform, controlChar, null, WorldCamera, actorOffset, uiOffset, bubbleFlagData, listener);
    }
Ejemplo n.º 4
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));
    }
Ejemplo n.º 5
0
    public static Boolean CheckQuadInput(PosObj po)
    {
        EventEngine instance = PersistenSingleton <EventEngine> .Instance;
        UInt32      num      = ETb.KeyOn() & (UInt32)((instance.gMode != 1) ? EventInput.Lcircle : (EventInput.Lcircle | 524288u));

        if (num > 0u)
        {
            Obj obj = instance.TreadQuad(po, 4);
            if (obj != null && EventCollision.IsQuadTalkable(po, obj))
            {
                if (num == 524288u && instance.Request(obj, 1, 8, false))
                {
                    EventCollision.ClearPathFinding(po);
                    EMinigame.SetQuadmistOpponentId(obj);
                    return(true);
                }
                if (instance.Request(obj, 1, 3, false))
                {
                    EventCollision.ClearPathFinding(po);
                    return(true);
                }
            }
        }
        return(false);
    }
Ejemplo n.º 6
0
 private static void FixChocoAccidenlyFly(Dialog dialog)
 {
     if (PersistenSingleton <EventEngine> .Instance.gMode == 3 && EventCollision.IsChocoboWalkingInForestArea() && (dialog.TextId == 54 || dialog.TextId == 55 || dialog.TextId == 56 || dialog.TextId == 57 || dialog.TextId == 58 || dialog.TextId == 59 || dialog.TextId == 60 || dialog.TextId == 61 || dialog.TextId == 62))
     {
         PersistenSingleton <UIManager> .Instance.Dialogs.EnableCollider(false);
     }
 }
Ejemplo n.º 7
0
    private static Int32 CalculateRadiusFromOvalRatio(PosObj po, PosObj targetPosObj, Int32 radius)
    {
        Int32 fixedPointAngle = EventCollision.CollisionAngle(targetPosObj, po);
        Int32 num             = ff9.rcos(fixedPointAngle);
        Int32 num2            = (num * num >> 4) * (Int32)targetPosObj.ovalRatio + 16777216;

        radius = Convert.ToInt32((Single)radius * ff9.SquareRoot0((Single)num2)) >> 12;
        return(radius);
    }
 private void OnCollisionEnter2D(Collision2D collision)
 {
     if (collision.gameObject.layer == golfHoleLayer)
     {
         EventHoleCollision?.Invoke(true);
     }
     else
     {
         EventCollision?.Invoke();
     }
 }
Ejemplo n.º 9
0
 public static void BubbleUIListener(PosObj userObject, Obj collObj, UInt32 key)
 {
     if (userObject != null)
     {
         if (userObject.cid == 4)
         {
             EventCollision.CheckNPCInput(userObject);
         }
         else
         {
             EventCollision.CheckQuadInput(userObject);
         }
     }
 }
Ejemplo n.º 10
0
    private static Boolean IsQuadTalkable(PosObj ctrl, Obj quad)
    {
        if (PersistenSingleton <EventEngine> .Instance.gMode == 1)
        {
            Obj   obj      = (Obj)null;
            Int32 fldMapNo = (Int32)FF9StateSystem.Common.FF9.fldMapNo;
            Int32 uid      = (Int32)quad.uid;
            Int32 key      = EMinigame.CreateNPCID(fldMapNo, uid);
            if (EventEngineUtils.QuadTalkableData.ContainsKey(key))
            {
                obj = PersistenSingleton <EventEngine> .Instance.GetObjUID(EventEngineUtils.QuadTalkableData[key]);
            }
            if (obj != null)
            {
                Int32 num = fldMapNo;
                Int32 num2;
                if (num == 2108)
                {
                    num2 = EventCollision.GetDir((Actor)ctrl);
                    return(num2 > 90 && num2 < 160);
                }
                if (num == 2109)
                {
                    num2 = EventCollision.GetDir((Actor)ctrl);
                    return(num2 > 159 && num2 < 223);
                }
                if (num == 2103)
                {
                    num2 = EventCollision.GetDir((Actor)ctrl);
                    return(num2 > 159 && num2 < 223);
                }
                if (num != 2802)
                {
                    num2 = EventCollision.CollisionAngle(ctrl, obj);
                    return(num2 > -880 && num2 < 880);
                }
                Obj objUID = PersistenSingleton <EventEngine> .Instance.GetObjUID(18);

                Single num3 = 0f;
                if (PersistenSingleton <EventEngine> .Instance.isPosObj(objUID))
                {
                    num3 = -((PosObj)objUID).pos[1];
                }
                num2 = EventCollision.GetDir((Actor)ctrl);
                return(num2 > 16 && num2 < 112 && num3 > 950f);
            }
        }
        return(true);
    }
Ejemplo n.º 11
0
    public static Boolean PollCollisionIcon(Obj targetObject)
    {
        Boolean result = false;

        if (EventHUD.CurrentHUD == MinigameHUD.MogTutorial)
        {
            return(result);
        }
        EventEngine instance = PersistenSingleton <EventEngine> .Instance;

        if (instance.gMode == 1)
        {
            Boolean flag  = instance.GetIP((Int32)targetObject.sid, 3, targetObject.ebData) != instance.nil && 1 < targetObject.level;
            Boolean flag2 = instance.GetIP((Int32)targetObject.sid, 8, targetObject.ebData) != instance.nil && 1 < targetObject.level;
            if (flag && flag2)
            {
                EIcon.PollFIcon(2);
                result = true;
            }
            else if (flag && instance.IsActuallyTalkable(targetObject))
            {
                EIcon.PollFIcon(1);
                result = true;
            }
        }
        else
        {
            Boolean flag = instance.GetIP((Int32)targetObject.sid, 2, targetObject.ebData) != instance.nil && 1 < targetObject.level;
            if (flag)
            {
                if (EMinigame.CheckBeachMinigame() && !EventCollision.IsWorldTrigger())
                {
                    EIcon.PollFIcon(4);
                }
                else
                {
                    EIcon.PollFIcon(1);
                }
                result = true;
            }
        }
        return(result);
    }
Ejemplo n.º 12
0
    public static bool PollCollisionIcon(Obj targetObject)
    {
        if (EventHUD.CurrentHUD == MinigameHUD.MogTutorial)
        {
            return(false);
        }

        bool flag1 = false;

        EventEngine instance = PersistenSingleton <EventEngine> .Instance;

        if (instance.gMode == 1)
        {
            bool flag2 = instance.GetIP(targetObject.sid, 3, targetObject.ebData) != instance.nil && 1 < targetObject.level;
            bool flag3 = instance.GetIP(targetObject.sid, 8, targetObject.ebData) != instance.nil && 1 < targetObject.level;
            if (flag2 && flag3)
            {
                PollFIcon(2);
                flag1 = true;
            }
            else if (flag2 && instance.IsActuallyTalkable(targetObject))
            {
                PollFIcon(1);
                flag1 = true;
            }
        }
        else if (instance.GetIP(targetObject.sid, 2, targetObject.ebData) != instance.nil && 1 < targetObject.level)
        {
            if (EMinigame.CheckBeachMinigame() && !EventCollision.IsWorldTrigger())
            {
                PollFIcon(4);
            }
            else
            {
                PollFIcon(1);
            }
            flag1 = true;
        }
        return(flag1);
    }
Ejemplo n.º 13
0
 public static Boolean CheckChocoboVirtual()
 {
     if (FF9StateSystem.MobilePlatform)
     {
         if (PersistenSingleton <EventEngine> .Instance.gMode == 1)
         {
             if (EventHUD.CurrentHUD == MinigameHUD.ChocoHot)
             {
                 return(true);
             }
         }
         else if (PersistenSingleton <EventEngine> .Instance.gMode == 3)
         {
             if (EventCollision.IsRidingChocobo() && EventInput.IsPressedDig)
             {
                 return(true);
             }
             EventInput.IsPressedDig = false;
         }
     }
     return(false);
 }
Ejemplo n.º 14
0
    public static Boolean CheckNPCInput(PosObj po)
    {
        EventEngine instance = PersistenSingleton <EventEngine> .Instance;
        UInt32      num      = ETb.KeyOn() & (UInt32)((instance.gMode != 1) ? EventInput.Lcircle : (EventInput.Lcircle | 524288u));

        if (num > 0u)
        {
            Int32  nil      = instance.nil;
            Single nilFloat = instance.nilFloat;
            Obj    obj      = EventCollision.Collision(instance, po, 4, ref nilFloat);
            if (obj != null && EventCollision.IsNPCTalkable(obj))
            {
                EventCollision.sSysAngle = EventCollision.CollisionAngle(po, obj);
                if (EventCollision.sSysAngle > -1024 && EventCollision.sSysAngle < 1024)
                {
                    ((Actor)po).listener = obj.uid;
                    if (num == 524288u)
                    {
                        Boolean flag = instance.Request(obj, 1, 8, false);
                        if (flag)
                        {
                            EventCollision.ClearPathFinding(po);
                            EMinigame.SetQuadmistOpponentId(obj);
                            return(flag);
                        }
                    }
                    Boolean flag2 = instance.Request(obj, 1, 3, false);
                    if (flag2)
                    {
                        EventCollision.ClearPathFinding(po);
                        return(flag2);
                    }
                }
            }
        }
        return(false);
    }
Ejemplo n.º 15
0
 private Obj Collision(EventEngine eventEngine, PosObj po, Int32 mode, ref Single distance)
 {
     return(EventCollision.Collision(this, po, mode, ref distance));
 }
Ejemplo n.º 16
0
 private Obj Collision(EventEngine eventEngine, PosObj po, Int32 mode, ref Single distance)
 {
     return(EventCollision.Collision((Original::EventEngine)(System.Object) this, po, mode, ref distance));
 }
Ejemplo n.º 17
0
 private Obj Collision(EventEngine eventEngine, PosObj po, int mode, ref float distance)
 {
     return(EventCollision.Collision((Original::EventEngine)(object)this, po, mode, ref distance));
 }
Ejemplo n.º 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);
    }
Ejemplo n.º 19
0
 private void CollisionRequest(PosObj po)
 {
     EventCollision.CollisionRequest(po);
 }
Ejemplo n.º 20
0
    public static Obj Collision(EventEngine eventEngine, PosObj po, Int32 mode, ref Single distance)
    {
        Obj     result = (Obj)null;
        Single  num    = Single.MaxValue;
        Boolean flag   = (mode & 4) > 0;
        Int32   num2   = (Int32)(4 * (Byte)((!flag) ? po.collRad : po.talkRad));
        Vector3 a      = Vector3.zero;

        if (eventEngine.gMode != 1)
        {
            if (eventEngine.gMode == 3)
            {
                WMActor wmActor = ((Actor)po).wmActor;
                a = wmActor.RealPosition;
            }
            for (ObjList objList = eventEngine.GetActiveObjList(); objList != null; objList = objList.next)
            {
                Obj obj = objList.obj;
                if (obj.sid != 5 || eventEngine.gMode == 3)
                {
                }
                Byte    b     = (Byte)((obj.uid != eventEngine.GetControlUID()) ? 4 : 2);
                Boolean flag2 = (po.flags & b) > 0;
                Single  num3  = (Single)((!flag && !flag2) ? 0 : 1);
                Byte    b2    = (Byte)((!flag) ? ((Byte)((po.uid != eventEngine.GetControlUID()) ? 4 : 2)) : 8);
                Single  num4  = (Single)(obj.flags & b2);
                if (obj != po)
                {
                    Boolean flag3 = num3 <= 0f;
                    Boolean flag4 = num4 <= 0f;
                    if (flag3 || flag4)
                    {
                        flag3 = ((mode & 6) <= 0);
                        flag4 = (eventEngine.GetIP((Int32)obj.sid, (Int32)((!flag) ? 2 : 3), obj.ebData) != eventEngine.nil);
                        if ((flag3 || flag4) && obj.cid == 4)
                        {
                            Actor  actor  = (Actor)obj;
                            Single num5   = 0f;
                            Int32  num6   = (Int32)(4 * (Byte)((!flag) ? actor.collRad : actor.talkRad));
                            PosObj posObj = (PosObj)obj;
                            if (posObj.ovalRatio > 0)
                            {
                                num6 = EventCollision.CalculateRadiusFromOvalRatio(po, posObj, num6);
                            }
                            num6 += num2;
                            if ((mode & 6) != 0)
                            {
                                num6 += (Int32)(actor.speed + 60);
                            }
                            if (eventEngine.gMode == 3)
                            {
                                Single num7 = Vector3.Distance(a, actor.wmActor.RealPosition);
                                Single num8 = num7 * 256f;
                                num5 = num8;
                            }
                            if ((Single)num6 > num5 && num > num5)
                            {
                                result = actor;
                                num    = num5;
                            }
                        }
                    }
                }
            }
            if (distance > 0f)
            {
                distance = num;
            }
            return(result);
        }
        FieldMapActorController component = po.go.GetComponent <FieldMapActorController>();

        if (component == (UnityEngine.Object)null)
        {
            return((Obj)null);
        }
        return(component.walkMesh.Collision(component, mode, out distance));
    }
Ejemplo n.º 21
0
    public static void CollisionRequest(PosObj po)
    {
        Boolean     flag     = false;
        EventEngine instance = PersistenSingleton <EventEngine> .Instance;
        Int32       nil      = instance.nil;
        Single      nilFloat = instance.nilFloat;
        Obj         obj;

        if (EventCollision.CheckNPCInput(po))
        {
            if (instance.gMode != 3)
            {
                return;
            }
            obj = EventCollision.Collision(instance, po, 2, ref nilFloat);
        }
        else
        {
            obj = EventCollision.Collision(instance, po, 4, ref nilFloat);
            if (obj != null)
            {
                EventCollision.sSysAngle = EventCollision.CollisionAngle(po, obj);
                if (EventCollision.sSysAngle > -1024 && EventCollision.sSysAngle < 1024)
                {
                    if (EventCollision.IsNPCTalkable(obj))
                    {
                        flag = EIcon.PollCollisionIcon(obj);
                    }
                    if (!flag)
                    {
                        obj = EventCollision.Collision(instance, po, 2, ref nilFloat);
                    }
                }
                else
                {
                    obj = EventCollision.Collision(instance, po, 2, ref nilFloat);
                }
            }
            else
            {
                obj = EventCollision.Collision(instance, po, 2, ref nilFloat);
                if (instance.gMode == 3 && obj != null)
                {
                    WMActor wmActor = ((Actor)po).wmActor;
                    if (wmActor.ControlNo == 0)
                    {
                        flag = EIcon.PollCollisionIcon(obj);
                    }
                }
            }
        }
        if (obj != null && EventCollision.CheckNPCPush((PosObj)obj))
        {
            instance.Request(obj, 1, 2, false);
        }
        if (EventCollision.CheckQuadInput(po))
        {
            return;
        }
        obj = instance.TreadQuad(po, 2);
        if (obj != null)
        {
            Boolean flag2 = EventCollision.CheckQuadPush(po, obj) && instance.Request(obj, 1, 2, false);
            if (flag2)
            {
                if (instance.GetIP((Int32)obj.sid, 8, obj.ebData) != instance.nil)
                {
                    EIcon.PollFIcon(2);
                }
                else
                {
                    Int16 fldMapNo = FF9StateSystem.Common.FF9.fldMapNo;
                    if (fldMapNo == 2108)
                    {
                        if (EventCollision.CheckQuadTalk(po, obj))
                        {
                            EIcon.PollFIcon(1);
                        }
                    }
                }
            }
        }
        obj = instance.TreadQuad(po, 4);
        if (obj != null && EventCollision.CheckQuadTalk(po, obj) && EventCollision.IsQuadTalkable(po, obj))
        {
            EIcon.PollCollisionIcon(obj);
        }
        if (instance.gMode == 3 && obj == null)
        {
            if (EventCollision.IsChocoboWalkingOrFlyingInForestArea())
            {
                EIcon.PollFIcon(1);
            }
            else if (!flag && EMinigame.CheckBeachMinigame())
            {
                EIcon.PollFIcon(3);
            }
        }
    }