// Token: 0x06000887 RID: 2183 RVA: 0x00037394 File Offset: 0x00035794 public Vector2 GetVecEx(TouchStick.StickPosMode vis) { float dirCodeAngle = this.angle; float num = this.tilt; switch (vis) { case TouchStick.StickPosMode.FULL_ANALOG: return(this.posRaw); case TouchStick.StickPosMode.ANALOG_8WAY: dirCodeAngle = TouchStick.GetDirCodeAngle(this.dir8way); num = ((this.dir8way == TouchStick.StickDir.NEUTRAL) ? 0f : num); break; case TouchStick.StickPosMode.ANALOG_4WAY: dirCodeAngle = TouchStick.GetDirCodeAngle(this.dir4way); num = ((this.dir4way == TouchStick.StickDir.NEUTRAL) ? 0f : num); break; case TouchStick.StickPosMode.DIGITAL_8WAY: dirCodeAngle = TouchStick.GetDirCodeAngle(this.dir8way); num = (float)((this.dir8way == TouchStick.StickDir.NEUTRAL) ? 0 : 1); break; case TouchStick.StickPosMode.DIGITAL_4WAY: dirCodeAngle = TouchStick.GetDirCodeAngle(this.dir4way); num = (float)((this.dir4way == TouchStick.StickDir.NEUTRAL) ? 0 : 1); break; } return(TouchStick.RotateVec2(new Vector2(0f, 1f), dirCodeAngle) * num); }
// Token: 0x060008C1 RID: 2241 RVA: 0x00038580 File Offset: 0x00036980 private void SetInternalPos(Vector2 pos) { this.pollPos = pos; if (this.disableX) { pos.x = 0f; } if (this.disableY) { pos.y = 0f; } float num = Mathf.Clamp01(pos.magnitude); Vector2 normalized = this.dirVec; float num2 = this.safeAngle; if (num > 0.01f) { normalized = pos.normalized; num2 = Mathf.Atan2(normalized.x, normalized.y) * 57.29578f; } if (num > ((this.dir8way != TouchStick.StickDir.NEUTRAL) ? this.joy.stickDigitalLeaveThresh : this.joy.stickDigitalEnterThresh)) { if (this.dir8wayLastNonNeutral == TouchStick.StickDir.NEUTRAL) { this.dir4way = TouchStick.GetDirCodeFromAngle(num2, false); this.dir8way = TouchStick.GetDirCodeFromAngle(num2, true); } else if (num > this.joy.stickDigitalEnterThresh) { float dirCodeAngle = TouchStick.GetDirCodeAngle(this.dir8wayLastNonNeutral); if (Mathf.Abs(Mathf.DeltaAngle(dirCodeAngle, num2)) > 22.5f + this.joy.stickMagnetAngleMargin) { this.dir8way = TouchStick.GetDirCodeFromAngle(num2, true); } else { this.dir8way = this.dir8wayLastNonNeutral; } float dirCodeAngle2 = TouchStick.GetDirCodeAngle(this.dir4wayLastNonNeutral); if (Mathf.Abs(Mathf.DeltaAngle(dirCodeAngle2, num2)) > 45f + this.joy.stickMagnetAngleMargin) { this.dir4way = TouchStick.GetDirCodeFromAngle(num2, false); } else { this.dir4way = this.dir4wayLastNonNeutral; } } } else { this.dir4way = TouchStick.StickDir.NEUTRAL; this.dir8way = TouchStick.StickDir.NEUTRAL; } if (this.dir4way != TouchStick.StickDir.NEUTRAL) { this.dir4wayLastNonNeutral = this.dir4way; } if (this.dir8way != TouchStick.StickDir.NEUTRAL) { this.dir8wayLastNonNeutral = this.dir8way; } this.tilt = num; this.angle = num2; this.safeAngle = num2; this.posRaw = normalized * num; this.dirVec = normalized; }