public void insertChargingIfAppropriate(movement m)
    {
        if (!isChargeable())
            return;

        if (moveList[0].isFinished())
        {
            chargeLevel++;

            movement c = new movement(m);

            c.startVec = moveList[0].endVec;
            c.endVec = moveList[0].endVec;
            c.currentChargeLevel = chargeLevel;
            c.chargeLevels = moveList[0].chargeLevels;
            c.updateQuats();

            moveList.Insert(1, c);
        }
    }