示例#1
0
        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);
        }
示例#2
0
//        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);
        }