public static void drawRelBar( Graphics g, AnimationManager2D am2d, int x, int y, int width, int relState, int levelF, bool big) { AppEngine canvas = AppEngine.getCanvas(); TextManager textManager = canvas.getTextManager(); SimData simData = canvas.getSimData(); if (am2d == null) { int relStateDescString = simData.getRelStateDescString(relState); int font = big ? 3 : 3; g.Begin(); textManager.drawString(g, relStateDescString, font, x, y - 3, 18); g.End(); } else { int animLeft = 208; int animMid = 209; int animRight = 210; if ((simData.getRelStateFlags(relState) & 1) != 0) { animLeft = 211; animMid = 212; animRight = 213; } else if ((simData.getRelStateFlags(relState) & 2) != 0) { animLeft = 214; animMid = 215; animRight = 216; } float w = (float)(width - 25); float scaleY1 = big ? 1.33333f : 1f; float scaleY2 = big ? 1f : 0.75f; am2d.submitAnimHBar(217, 218, 219, (float)x, (float)y, (float)width, 1f, scaleY1); if (levelF != 65536) { am2d.flushAnims(g); int clipX = g.getClipX(); int clipY = g.getClipY(); int clipWidth = g.getClipWidth(); int clipHeight = g.getClipHeight(); int y1 = x - (width >> 1); int h = MathExt.Fmul(width, levelF); g.setClip(clipY, y1, clipHeight, h); am2d.submitAnimHBar(animLeft, animMid, animRight, (float)x, (float)y, (float)width, 1f, scaleY1); am2d.flushAnims(g); g.setClip(clipX, clipY, clipWidth, clipHeight); } else { am2d.submitAnimHBar(animLeft, animMid, animRight, (float)x, (float)y, (float)width, 1f, scaleY1); } am2d.submitAnimHBar(220, 221, 222, (float)x, (float)y, w, 1f, scaleY2); } }