public static void DrawCursorSingle(SpriteBatch sb, Color color, float rot = float.NaN, float scale = 1f, Vector2 manualPosition = default(Vector2), int cursorSlot = 0, int specialMode = 0) { bool flag1 = false; bool flag2 = true; bool flag3 = true; Vector2 origin = Vector2.Zero; Vector2 position = new Vector2((float)Main.mouseX, (float)Main.mouseY); if (manualPosition != Vector2.Zero) { position = manualPosition; } if (float.IsNaN(rot)) { rot = 0.0f; } else { flag1 = true; rot -= 2.356194f; } if (cursorSlot == 4 || cursorSlot == 5) { flag2 = false; origin = new Vector2(8f); if (flag1 && specialMode == 0) { float num1 = rot; if ((double)num1 < 0.0) { num1 += 6.283185f; } for (float num2 = 0.0f; (double)num2 < 4.0; ++num2) { if ((double)Math.Abs(num1 - 1.570796f * num2) <= 0.785398185253143) { rot = 1.570796f * num2; break; } } } } if (Main.ThickMouse && cursorSlot == 0 || cursorSlot == 1) { Main.DrawThickCursor(cursorSlot == 1); } if (flag2) { sb.Draw(Main.cursorTextures[cursorSlot], position + Vector2.One, new Rectangle?(), Utils.MultiplyRGB(color, new Color(0.2f, 0.2f, 0.2f, 0.5f)), rot, origin, scale * 1.1f, SpriteEffects.None, 0.0f); } if (!flag3) { return; } sb.Draw(Main.cursorTextures[cursorSlot], position, new Rectangle?(), color, rot, origin, scale, SpriteEffects.None, 0.0f); }