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); }