예제 #1
0
        private uint CompileExpression(ScriptValueType type, IScriptSyntax node)
        {
            if (node is ScriptGroup group)
            {
                return(CompileGroupExpression(type, group));
            }

            switch (type.Halo3ODST)
            {
            case ScriptValueType.Halo3ODSTValue.Boolean:
                if (node is ScriptBoolean boolValue)
                {
                    return(CompileBooleanExpression(boolValue));
                }
                else
                {
                    throw new FormatException(node.ToString());
                }

            case ScriptValueType.Halo3ODSTValue.Real:
                if (node is ScriptReal realValue)
                {
                    return(CompileRealExpression(realValue));
                }
                else
                {
                    throw new FormatException(node.ToString());
                }

            case ScriptValueType.Halo3ODSTValue.Short:
                if (node is ScriptInteger shortValue)
                {
                    return(CompileShortExpression(shortValue));
                }
                else
                {
                    throw new FormatException(node.ToString());
                }

            case ScriptValueType.Halo3ODSTValue.Long:
                if (node is ScriptInteger longValue)
                {
                    return(CompileLongExpression(longValue));
                }
                else
                {
                    throw new FormatException(node.ToString());
                }

            case ScriptValueType.Halo3ODSTValue.String:
                if (node is ScriptString stringValue)
                {
                    return(CompileStringExpression(stringValue));
                }
                else
                {
                    throw new FormatException(node.ToString());
                }

            case ScriptValueType.Halo3ODSTValue.Script:
                break;

            case ScriptValueType.Halo3ODSTValue.StringId:
                break;

            case ScriptValueType.Halo3ODSTValue.UnitSeatMapping:
                break;

            case ScriptValueType.Halo3ODSTValue.TriggerVolume:
                break;

            case ScriptValueType.Halo3ODSTValue.CutsceneFlag:
                break;

            case ScriptValueType.Halo3ODSTValue.CutsceneCameraPoint:
                break;

            case ScriptValueType.Halo3ODSTValue.CutsceneTitle:
                break;

            case ScriptValueType.Halo3ODSTValue.CutsceneRecording:
                break;

            case ScriptValueType.Halo3ODSTValue.DeviceGroup:
                break;

            case ScriptValueType.Halo3ODSTValue.Ai:
                break;

            case ScriptValueType.Halo3ODSTValue.AiCommandList:
                break;

            case ScriptValueType.Halo3ODSTValue.AiCommandScript:
                break;

            case ScriptValueType.Halo3ODSTValue.AiBehavior:
                break;

            case ScriptValueType.Halo3ODSTValue.AiOrders:
                break;

            case ScriptValueType.Halo3ODSTValue.AiLine:
                break;

            case ScriptValueType.Halo3ODSTValue.StartingProfile:
                break;

            case ScriptValueType.Halo3ODSTValue.Conversation:
                break;

            case ScriptValueType.Halo3ODSTValue.ZoneSet:
                break;

            case ScriptValueType.Halo3ODSTValue.DesignerZone:
                break;

            case ScriptValueType.Halo3ODSTValue.PointReference:
                break;

            case ScriptValueType.Halo3ODSTValue.Style:
                break;

            case ScriptValueType.Halo3ODSTValue.ObjectList:
                break;

            case ScriptValueType.Halo3ODSTValue.Folder:
                break;

            case ScriptValueType.Halo3ODSTValue.Sound:
                break;

            case ScriptValueType.Halo3ODSTValue.Effect:
                break;

            case ScriptValueType.Halo3ODSTValue.Damage:
                break;

            case ScriptValueType.Halo3ODSTValue.LoopingSound:
                break;

            case ScriptValueType.Halo3ODSTValue.AnimationGraph:
                break;

            case ScriptValueType.Halo3ODSTValue.DamageEffect:
                break;

            case ScriptValueType.Halo3ODSTValue.ObjectDefinition:
                break;

            case ScriptValueType.Halo3ODSTValue.Bitmap:
                break;

            case ScriptValueType.Halo3ODSTValue.Shader:
                break;

            case ScriptValueType.Halo3ODSTValue.RenderModel:
                break;

            case ScriptValueType.Halo3ODSTValue.StructureDefinition:
                break;

            case ScriptValueType.Halo3ODSTValue.LightmapDefinition:
                break;

            case ScriptValueType.Halo3ODSTValue.CinematicDefinition:
                break;

            case ScriptValueType.Halo3ODSTValue.CinematicSceneDefinition:
                break;

            case ScriptValueType.Halo3ODSTValue.BinkDefinition:
                break;

            case ScriptValueType.Halo3ODSTValue.AnyTag:
                break;

            case ScriptValueType.Halo3ODSTValue.AnyTagNotResolving:
                break;

            case ScriptValueType.Halo3ODSTValue.GameDifficulty:
                break;

            case ScriptValueType.Halo3ODSTValue.Team:
                break;

            case ScriptValueType.Halo3ODSTValue.MpTeam:
                break;

            case ScriptValueType.Halo3ODSTValue.Controller:
                break;

            case ScriptValueType.Halo3ODSTValue.ButtonPreset:
                break;

            case ScriptValueType.Halo3ODSTValue.JoystickPreset:
                break;

            case ScriptValueType.Halo3ODSTValue.PlayerColor:
                break;

            case ScriptValueType.Halo3ODSTValue.PlayerCharacterType:
                break;

            case ScriptValueType.Halo3ODSTValue.VoiceOutputSetting:
                break;

            case ScriptValueType.Halo3ODSTValue.VoiceMask:
                break;

            case ScriptValueType.Halo3ODSTValue.SubtitleSetting:
                break;

            case ScriptValueType.Halo3ODSTValue.ActorType:
                break;

            case ScriptValueType.Halo3ODSTValue.ModelState:
                break;

            case ScriptValueType.Halo3ODSTValue.Event:
                break;

            case ScriptValueType.Halo3ODSTValue.CharacterPhysics:
                break;

            case ScriptValueType.Halo3ODSTValue.PrimarySkull:
                break;

            case ScriptValueType.Halo3ODSTValue.SecondarySkull:
                break;

            case ScriptValueType.Halo3ODSTValue.Object:
                break;

            case ScriptValueType.Halo3ODSTValue.Unit:
                break;

            case ScriptValueType.Halo3ODSTValue.Vehicle:
                break;

            case ScriptValueType.Halo3ODSTValue.Weapon:
                break;

            case ScriptValueType.Halo3ODSTValue.Device:
                break;

            case ScriptValueType.Halo3ODSTValue.Scenery:
                break;

            case ScriptValueType.Halo3ODSTValue.EffectScenery:
                break;

            case ScriptValueType.Halo3ODSTValue.ObjectName:
                break;

            case ScriptValueType.Halo3ODSTValue.UnitName:
                break;

            case ScriptValueType.Halo3ODSTValue.VehicleName:
                break;

            case ScriptValueType.Halo3ODSTValue.WeaponName:
                break;

            case ScriptValueType.Halo3ODSTValue.DeviceName:
                break;

            case ScriptValueType.Halo3ODSTValue.SceneryName:
                break;

            case ScriptValueType.Halo3ODSTValue.EffectSceneryName:
                break;

            case ScriptValueType.Halo3ODSTValue.CinematicLightprobe:
                break;

            case ScriptValueType.Halo3ODSTValue.AnimationBudgetReference:
                break;

            case ScriptValueType.Halo3ODSTValue.LoopingSoundBudgetReference:
                break;

            case ScriptValueType.Halo3ODSTValue.SoundBudgetReference:
                break;
            }

            throw new NotImplementedException(type.ToString());
        }