void RunWallAnimations()
    {
        for (int i = 0; i < wallAnimations.Count; i++)
        {
            WallAnimation wallAnimation = wallAnimations[i];

            int value = -1;

            if (wallAnimation.isX)
            {
                value = wallAnimation.wall.x;
            }
            if (wallAnimation.isY)
            {
                value = wallAnimation.wall.y;
            }

            if (value < wallAnimation.goalValue)
            {
                value = Mathf.Min(value + wallAnimation.thevel * TICSPERFRAME, wallAnimation.goalValue);
            }
            else
            {
                value = Mathf.Max(value - wallAnimation.thevel * TICSPERFRAME, wallAnimation.goalValue);
            }

            wallAnimation.thevel += wallAnimation.theacc;

            if (wallAnimation.isX)
            {
                wallAnimation.wall.x = value;
            }
            if (wallAnimation.isY)
            {
                wallAnimation.wall.y = value;
            }

            if (value == wallAnimation.goalValue)
            {
                wallAnimations.Remove(wallAnimation);
            }
        }
    }
    private void AddWallAnimation(walltype walltype, bool isX, bool isY, int goalValue, int thevel, int theacc)
    {
        WallAnimation newAnimation = new WallAnimation();

        newAnimation.wall      = walltype;
        newAnimation.isX       = isX;
        newAnimation.isY       = isY;
        newAnimation.goalValue = goalValue;
        newAnimation.thevel    = thevel;
        newAnimation.theacc    = theacc;

        // Check to see if this already has animation.
        for (int i = 0; i < wallAnimations.Count; i++)
        {
            if (wallAnimations[i] == newAnimation)
            {
                return;
            }
        }

        wallAnimations.Add(newAnimation);
    }