Explain these lines of code please

Just wondering, Im using a 12vDC motor (see attachment) to turn a belt, on the belt there will be a sort of tab (or trigger for want of a better word), when the belt goes around the tab hits a microswitch (bounce is not an issue) and the motor stops for 15 seconds. This happens 5 times. Then i want the motor to do the same, only in the opposite direction. Thing is, I got this code but am unsure as to what all the lines actually mean, could someone decipher (explain and maybe add if they feel the need) for me please and thank you very much :wink: All answers are welcome

const unsigned long DelayAtEachStop = 15000;
unsigned long TimeOfLastStop = 0;
boolean MovingForward = true;
int MovementCount = 0;

void loop() {
unsigned long currentTime = millis();

if (currentTime - TimeOfLastStop > DelayAtEachStop) {
TimeOfLastStop = currentTime;
if (MovementCount > MaxMoves) {
MovementCount = 0;
MovingForward = !MovingForward; // Reverse direction


void loop() {                                             // this function is called repeatedly
  unsigned long currentTime = millis();                   // read the current time

   if (currentTime - TimeOfLastStop > DelayAtEachStop) {  // if the interval since the previous stop exceeds DelayAtEachStop
       TimeOfLastStop = currentTime;                      // update the time of the last stop to 'now'
       moveToNextStop();                                  // move to the next stop
       MovementCount++;                                   // increment the number of stops that have occurred
       if (MovementCount > MaxMoves) {                    // if the number of stops has reached MaxMoves 
            MovementCount = 0;                            // reset the count to zero, and
            MovingForward = !MovingForward;               // Reverse direction