Ejemplo n.º 1
0
 void InterpretFlags(KSoft.Collections.BitVector32 flags)
 {
     if (flags.Test(GvarAssemblerFlags.ClearTitleUpdateData))
     {
         mClearTitleUpdateData = true;
     }
     if (flags.Test(GvarAssemblerFlags.ClearWeaponTuning))
     {
         mClearWeaponTuning = true;
     }
     if (flags.Test(GvarAssemblerFlags.AddAllTeams))
     {
         // #TODO_MGLO:
     }
     if (flags.Test(GvarAssemblerFlags.ReadOperationNamesOnly))
     {
         EnumFlags.Add(ref mModelStreamFlags,
                       MegaloModel.MegaloScriptModelTagElementStreamFlags.UseConditionTypeNames |
                       MegaloModel.MegaloScriptModelTagElementStreamFlags.UseActionTypeNames);
     }
 }
Ejemplo n.º 2
0
        void InterpretFlags(KSoft.Collections.BitVector32 flags)
        {
            bool using_op_names = false;

            if (flags.Test(GvarDisassemblerFlags.WriteOperationNamesOnly))
            {
                EnumFlags.Add(ref mModelStreamFlags,
                              MegaloModel.MegaloScriptModelTagElementStreamFlags.UseConditionTypeNames |
                              MegaloModel.MegaloScriptModelTagElementStreamFlags.UseActionTypeNames);

                EnumFlags.Remove(ref mModelStreamFlags,
                                 MegaloModel.MegaloScriptModelTagElementStreamFlags.WriteConditionTypeNames |
                                 MegaloModel.MegaloScriptModelTagElementStreamFlags.WriteActionTypeNames);

                using_op_names = true;
            }
            if (flags.Test(GvarDisassemblerFlags.WriteOperationParameterNames))
            {
                EnumFlags.Add(ref mModelStreamFlags,
                              MegaloModel.MegaloScriptModelTagElementStreamFlags.WriteParamNames);
            }
            if (flags.Test(GvarDisassemblerFlags.WriteOperationParameterContexts))
            {
                EnumFlags.Add(ref mModelStreamFlags,
                              MegaloModel.MegaloScriptModelTagElementStreamFlags.WriteParamKinds);
            }
            if (flags.Test(GvarDisassemblerFlags.TryToPort) &&
                mGameBuildAndTarget.Build.IsWithinSameBranch(KBlam.Engine.EngineRegistry.EngineBranchHaloReach))
            {
                if (using_op_names)
                {
                    Debug.Trace.MgloGui.TraceInformation("Ignoring TryToPort since you have me writing operation names");
                }
                else
                {
                    EnumFlags.Add(ref mModelStreamFlags,
                                  MegaloModel.MegaloScriptModelTagElementStreamFlags.TryToPort);
                }
            }
            if (flags.Test(GvarDisassemblerFlags.DoNotWriteEnumOrIndexNames))
            {
                EnumFlags.Remove(ref mModelStreamFlags,
                                 MegaloModel.MegaloScriptModelTagElementStreamFlags.UseEnumNames |
                                 MegaloModel.MegaloScriptModelTagElementStreamFlags.UseIndexNames);
            }
            if (flags.Test(GvarDisassemblerFlags.WriteWithObjectIds))
            {
                EnumFlags.Remove(ref mModelStreamFlags,
                                 MegaloModel.MegaloScriptModelTagElementStreamFlags.EmbedObjectsWriteSansIds);
            }
            if (flags.Test(GvarDisassemblerFlags.DoNotEmbedObjects))
            {
                EnumFlags.Remove(ref mModelStreamFlags,
                                 MegaloModel.MegaloScriptModelTagElementStreamFlags.EmbedObjects |
                                 MegaloModel.MegaloScriptModelTagElementStreamFlags.EmbedObjectsWriteSansIds);
            }
            if (flags.Test(GvarDisassemblerFlags.AlwaysWriteDefaultData))
            {
                mIgnoreWritePredicates = true;
            }
        }