public CCMode(string name, G_CCMUX a, G_CCMUX b, G_CCMUX c, G_CCMUX d, G_ACMUX Aa, G_ACMUX Ab, G_ACMUX Ac, G_ACMUX Ad) { Name = name; this.a = a & (G_CCMUX)((1 << 4) - 1); this.b = b & (G_CCMUX)((1 << 4) - 1); this.c = c & (G_CCMUX)((1 << 5) - 1); this.d = d & (G_CCMUX)((1 << 3) - 1); this.Aa = Aa & (G_ACMUX)((1 << 3) - 1); this.Ab = Ab & (G_ACMUX)((1 << 3) - 1); this.Ac = Ac & (G_ACMUX)((1 << 3) - 1); this.Ad = Ad & (G_ACMUX)((1 << 3) - 1); }
// These 2 functions are reimps of oot's code private static string DisCCM(G_CCMUX value, int idx) { switch (value) { case G_CCMUX.G_CCMUX_COMBINED: case G_CCMUX.G_CCMUX_TEXEL0: case G_CCMUX.G_CCMUX_TEXEL1: case G_CCMUX.G_CCMUX_PRIMITIVE: case G_CCMUX.G_CCMUX_SHADE: case G_CCMUX.G_CCMUX_ENVIRONMENT: return(value.ToString().Replace("G_CCMUX_", "")); case (G_CCMUX)6: return((idx == 2) ? "CENTER" : (idx == 3) ? "SCALE" : "1"); case (G_CCMUX)7: return((idx == 1) ? "NOISE" : (idx == 2) ? "K4" : (idx == 3) ? "COMBINED_ALPHA" : "0"); default: { if (idx == 3) { switch (value) { case G_CCMUX.G_CCMUX_TEXEL0_ALPHA: case G_CCMUX.G_CCMUX_TEXEL1_ALPHA: case G_CCMUX.G_CCMUX_PRIMITIVE_ALPHA: case G_CCMUX.G_CCMUX_SHADE_ALPHA: case G_CCMUX.G_CCMUX_ENV_ALPHA: case G_CCMUX.G_CCMUX_LOD_FRACTION: case G_CCMUX.G_CCMUX_PRIM_LOD_FRAC: case G_CCMUX.G_CCMUX_K5: return(value.ToString().Replace("G_CCMUX_", "")); default: return("0"); } } else { return("0"); } } } }