ACR_Movement.ACR_Movement.ScriptMain C# (CSharp) Method

ScriptMain() public method

public ScriptMain ( [ ScriptParameters, [ DefaultReturnCode ) : Int32
ScriptParameters [
DefaultReturnCode [
return System.Int32
        public Int32 ScriptMain([In] object[] ScriptParameters, [In] Int32 DefaultReturnCode)
        {
            int Command = (int)ScriptParameters[0]; // ScriptParameterTypes[0] is typeof(int)
            uint Target = (uint)ScriptParameters[1];
            
            if(!AppearanceTypes.characterMovement.ContainsKey(Target))
            {
                AppearanceTypes.characterMovement.Add(Target, AppearanceTypes.MovementType.Walking);
            }
            if(!AppearanceTypes.overlandMap.ContainsKey(Target))
            {
                AppearanceTypes.overlandMap.Add(Target, false);
            }
            if(!AppearanceTypes.currentSwimTrigger.ContainsKey(Target))
            {
                AppearanceTypes.currentSwimTrigger.Add(Target, OBJECT_INVALID);
            }

            switch((MovementCommand)Command)
            {
                case MovementCommand.EnterWater:
                    AppearanceTypes.characterMovement[Target] = AppearanceTypes.MovementType.Swimming;
                    AppearanceTypes.RecalculateMovement(this, Target);
                    if (GetIsObjectValid(AppearanceTypes.currentSwimTrigger[Target]) == CLRScriptBase.TRUE)
                    {
                        AppearanceTypes.currentSwimTrigger[Target] = OBJECT_SELF;
                    }
                    else
                    {
                        AppearanceTypes.currentSwimTrigger[Target] = OBJECT_SELF;
                        Swimming.SwimTriggerEnter(this, Target);
                    }
                    break;
                case MovementCommand.ExitWater:
                    break;
                case MovementCommand.MountHorse:
                    AppearanceTypes.characterMovement[Target] = AppearanceTypes.MovementType.Riding;
                    Riding.MountHorse(this, Target, OBJECT_SELF);
                    AppearanceTypes.RecalculateMovement(this, Target);
                    break;
                case MovementCommand.CloakRemoved:
                    if (Riding.isWarhorse.ContainsKey(Target))
                    {
                        AppearanceTypes.characterMovement[Target] = AppearanceTypes.MovementType.Walking;
                        Riding.Dismount(this, Target, GetPCItemLastUnequipped(), GetLocation(Target));
                        AppearanceTypes.RecalculateMovement(this, Target);
                    }
                    break;
                case MovementCommand.ToOverlandMap:
                    AppearanceTypes.overlandMap[Target] = true;
                    AppearanceTypes.RecalculateMovement(this, Target);
                    break;
                case MovementCommand.FromOverlandMap:
                    AppearanceTypes.overlandMap[Target] = false;
                    AppearanceTypes.RecalculateMovement(this, Target);
                    break;
                case MovementCommand.Dismount:
                    if(Riding.isWarhorse.ContainsKey(Target))
                    {
                        AppearanceTypes.characterMovement[Target] = AppearanceTypes.MovementType.Walking;
                        AppearanceTypes.RecalculateMovement(this, Target);
                        Riding.Dismount(this, Target, GetItemInSlot(INVENTORY_SLOT_CLOAK, Target), GetLocation(OBJECT_SELF));
                    }
                    break;
                case MovementCommand.ForceRecalculate:
                    AppearanceTypes.RecalculateMovement(this, Target);
                    break;
                case MovementCommand.RestoreHorse:
                    AppearanceTypes.characterMovement[Target] = AppearanceTypes.MovementType.Riding;
                    AppearanceTypes.RecalculateMovement(this, Target);
                    if (!Riding.isWarhorse.ContainsKey(Target)) Riding.isWarhorse.Add(Target, true);
                    break;
            }

            return 0;
        }