public static bool[] gIsShowChar = new bool[0x400]; //for MFC only static public int GetParaTypeNameIndex(int ParaCode, int TypeIndex) { ParaTypeInfo TypeInfo = GetParaTypeInfo(ParaCode); if (TypeInfo.isAllowNULL && TypeInfo.DefIndex == 0x10000 && TypeIndex == TypeInfo.NameNum - 1) { return(nullValue); } switch (ParaCode) { case 2: if (TypeIndex >= gCharMax) { TypeIndex += 0x400 - gCharMax; } break; case 9: if (TypeIndex == gTrackMax) { TypeIndex = 0xff; } break; case 0xe: if (TypeIndex == 1) { TypeIndex = 0xff; } break; case 0x1e: if (TypeIndex >= gSEMax + gSEMMax) { TypeIndex += 200 - gSEMax - gSEMMax; } else if (TypeIndex >= gSEMax) { TypeIndex += 100 - gSEMax; } break; case 0x30: { int t = 0; if (TypeIndex >= 15) { ++TypeIndex; } if (((TypeIndex + 1) & 1) != 0) { t |= 2; } if (((TypeIndex + 1) & 2) != 0) { t |= 4; } if (((TypeIndex + 1) & 4) != 0) { t |= 8; } if (((TypeIndex + 1) & 8) != 0) { t |= 0x10; } if (((TypeIndex + 1) & 16) != 0) { t |= 0x80; } TypeIndex = t; break; } case 0x4a: if (TypeIndex == 8) { TypeIndex = 0xff; } else if (TypeIndex == 7) { TypeIndex = 0x80; } else if (TypeIndex == 6) { TypeIndex = 0x20; } else if (TypeIndex == 5) { TypeIndex = 0x10; } break; case 0x4b: if (TypeIndex >= gMEffMax) { TypeIndex += 100 - gMEffMax; } break; } return(TypeIndex); }
// static int gLogoMax=13; //~0x400 public static ParaTypeInfo GetParaTypeInfo(int ParaCode) { ParaTypeInfo TypeInfo = new ParaTypeInfo(); TypeInfo.IsUseCombo = true; TypeInfo.isAllowNULL = false; TypeInfo.MaxNameLen = 10; TypeInfo.DefIndex = 0x10000; switch (ParaCode) { case 2: TypeInfo.isAllowNULL = true; TypeInfo.MaxNameLen = 12 + 5; TypeInfo.NameNum = gCharMax + 4 + 1; break; case 3: TypeInfo.isAllowNULL = true; TypeInfo.DefIndex = 6; TypeInfo.MaxNameLen = 10; TypeInfo.NameNum = ARRAYSIZE(strPara3) + 1; break; case 7: TypeInfo.isAllowNULL = true; TypeInfo.DefIndex = 1; TypeInfo.MaxNameLen = 10; TypeInfo.NameNum = ARRAYSIZE(strPara7) + 1; break; case 9: TypeInfo.MaxNameLen = 7; TypeInfo.NameNum = gTrackMax + 1; break; case 0xc: TypeInfo.isAllowNULL = true; TypeInfo.MaxNameLen = 7; TypeInfo.NameNum = gMMap1Max + 1; break; case 0xd: TypeInfo.isAllowNULL = true; TypeInfo.MaxNameLen = 8; TypeInfo.NameNum = ARRAYSIZE(strParad) + 1; break; case 0xe: TypeInfo.MaxNameLen = 4; TypeInfo.NameNum = 2; break; case 0x10: TypeInfo.MaxNameLen = 4; TypeInfo.NameNum = ARRAYSIZE(strPara10); break; case 0x12: TypeInfo.MaxNameLen = 8; TypeInfo.NameNum = ARRAYSIZE(strPara12); break; case 0x13: TypeInfo.MaxNameLen = 11; TypeInfo.NameNum = gPMapObjMax; break; case 0x15: TypeInfo.isAllowNULL = true; TypeInfo.MaxNameLen = 4; TypeInfo.NameNum = gSceMax + 1; break; case 0x17: TypeInfo.isAllowNULL = true; TypeInfo.MaxNameLen = 16; TypeInfo.NameNum = gItemMax + 1; break; case 0x18: TypeInfo.isAllowNULL = true; TypeInfo.MaxNameLen = 4; TypeInfo.NameNum = ARRAYSIZE(strPara18) + 1; break; case 0x1a: TypeInfo.isAllowNULL = true; TypeInfo.MaxNameLen = 8; TypeInfo.NameNum = 1 + 1; break; case 0x1b: TypeInfo.MaxNameLen = 9; TypeInfo.NameNum = gAVIMax; break; case 0x1c: TypeInfo.isAllowNULL = true; TypeInfo.MaxNameLen = 8; TypeInfo.NameNum = gMMap2Max + 1; break; case 0x1e: TypeInfo.MaxNameLen = 11; TypeInfo.NameNum = gSEMax + gSEMMax + gSEEMax; break; case 0x22: TypeInfo.isAllowNULL = true; TypeInfo.DefIndex = 1; TypeInfo.MaxNameLen = 18; TypeInfo.NameNum = ARRAYSIZE(strPara22) + 1; break; case 0x23: TypeInfo.MaxNameLen = 5; TypeInfo.NameNum = ARRAYSIZE(strPara23); break; case 0x24: TypeInfo.MaxNameLen = 2; TypeInfo.NameNum = ARRAYSIZE(strPara24); break; case 0x27: TypeInfo.isAllowNULL = true; TypeInfo.DefIndex = 1; TypeInfo.MaxNameLen = 6; TypeInfo.NameNum = ARRAYSIZE(strPara27) + 1; break; case 0x28: TypeInfo.MaxNameLen = 8; TypeInfo.NameNum = ARRAYSIZE(strPara28); break; case 0x2b: TypeInfo.isAllowNULL = true; TypeInfo.MaxNameLen = 8; TypeInfo.NameNum = ARRAYSIZE(strPara2b) + 1; break; case 0x2c: TypeInfo.isAllowNULL = true; TypeInfo.DefIndex = 0; TypeInfo.MaxNameLen = 4; TypeInfo.NameNum = ARRAYSIZE(strPara2c) + 1; break; case 0x2d: TypeInfo.MaxNameLen = 8; TypeInfo.NameNum = ARRAYSIZE(strPara2d); break; case 0x2e: TypeInfo.MaxNameLen = 5; TypeInfo.NameNum = ARRAYSIZE(strPara2e); break; case 0x2f: TypeInfo.isAllowNULL = true; TypeInfo.MaxNameLen = 5; TypeInfo.NameNum = ARRAYSIZE(strPara2f) + 1; break; case 0x30: TypeInfo.isAllowNULL = true; TypeInfo.MaxNameLen = 24; TypeInfo.NameNum = 30 + 1; break; case 0x34: TypeInfo.MaxNameLen = 1; TypeInfo.NameNum = ARRAYSIZE(strPara34); break; case 0x37: TypeInfo.MaxNameLen = 8; TypeInfo.NameNum = gSceMax + gSceMax; break; case 0x38: TypeInfo.isAllowNULL = true; TypeInfo.MaxNameLen = 12; TypeInfo.NameNum = gCharMax + 1; break; case 0x39: TypeInfo.isAllowNULL = true; TypeInfo.MaxNameLen = 12; TypeInfo.NameNum = gCharMax + 1; break; case 0x3a: TypeInfo.MaxNameLen = 2; TypeInfo.NameNum = ARRAYSIZE(strPara3a); break; case 0x3b: TypeInfo.isAllowNULL = true; TypeInfo.DefIndex = 0; TypeInfo.MaxNameLen = 16; TypeInfo.NameNum = gItemDefenseID - gItemWeaponID + 3; break; case 0x3c: TypeInfo.isAllowNULL = true; TypeInfo.DefIndex = 0; TypeInfo.MaxNameLen = 16; TypeInfo.NameNum = gItemAssistID - gItemDefenseID + 3; break; case 0x3d: TypeInfo.isAllowNULL = true; TypeInfo.DefIndex = 0; TypeInfo.MaxNameLen = 16; TypeInfo.NameNum = gItemOtherID - gItemAssistID + 3; break; case 0x3e: TypeInfo.isAllowNULL = true; TypeInfo.DefIndex = 0; TypeInfo.MaxNameLen = 8; TypeInfo.NameNum = gCharLvMax - 0 + 1 + gCharLvMax + 1; break; case 0x3f: TypeInfo.MaxNameLen = 8; TypeInfo.NameNum = ARRAYSIZE(strPara3f); break; case 0x40: TypeInfo.isAllowNULL = true; TypeInfo.DefIndex = 0; TypeInfo.MaxNameLen = 9; TypeInfo.NameNum = ARRAYSIZE(strPara40) + 1; break; case 0x41: TypeInfo.DefIndex = 2; TypeInfo.MaxNameLen = 9; TypeInfo.NameNum = ARRAYSIZE(strPara41); break; case 0x42: TypeInfo.MaxNameLen = 8; TypeInfo.NameNum = gGateMax; break; case 0x43: TypeInfo.MaxNameLen = 4; TypeInfo.NameNum = ARRAYSIZE(strPara43); break; case 0x44: TypeInfo.MaxNameLen = 6; TypeInfo.NameNum = ARRAYSIZE(strPara44); break; case 0x45: TypeInfo.isAllowNULL = true; TypeInfo.DefIndex = 2; TypeInfo.MaxNameLen = 4; TypeInfo.NameNum = ARRAYSIZE(strPara45) + 1; break; case 0x46: TypeInfo.isAllowNULL = true; TypeInfo.MaxNameLen = 8; TypeInfo.NameNum = ARRAYSIZE(strPara46) + 1; break; case 0x47: TypeInfo.isAllowNULL = true; TypeInfo.DefIndex = 0; TypeInfo.MaxNameLen = 4; TypeInfo.NameNum = ARRAYSIZE(strPara47) + 1; break; case 0x48: TypeInfo.MaxNameLen = 8; TypeInfo.NameNum = ARRAYSIZE(strPara48); break; case 0x49: TypeInfo.isAllowNULL = true; TypeInfo.DefIndex = 0; TypeInfo.MaxNameLen = 5; TypeInfo.NameNum = 1 + gItemLvMax + 1; break; case 0x4a: TypeInfo.MaxNameLen = 11; TypeInfo.NameNum = 9; break; case 0x4b: TypeInfo.MaxNameLen = 10; TypeInfo.NameNum = gMEffMax + gMCallMax + 1; break; case 0x4c: TypeInfo.MaxNameLen = 8; TypeInfo.NameNum = ARRAYSIZE(strPara4c); break; case 0x4d: TypeInfo.MaxNameLen = 8; TypeInfo.NameNum = ARRAYSIZE(strPara4d); break; case 0x4e: TypeInfo.MaxNameLen = 8; TypeInfo.NameNum = ARRAYSIZE(strPara4e); break; case 0x100: TypeInfo.MaxNameLen = 25; TypeInfo.NameNum = (int)CommandId.CMD_MAX; break; case 0x103: TypeInfo.MaxNameLen = 8; TypeInfo.NameNum = gTroopNum; break; default: TypeInfo.IsUseCombo = false; break; } if (TypeInfo.isAllowNULL && TypeInfo.DefIndex != 0x10000) { --TypeInfo.NameNum; } return(TypeInfo); }