Help! newbie stuck in adding decisions to program

HI guys

I am programming my ssc robot and i have created a program where the robot will pick, go to vision system position then go to bin location and returns to home. The problem i am having is i would want to add conditions to where the robot will only move if digital input is received.

If pin 2 is high i want the robot to start sequence until it reaches a camera position where it will then wait for an input from pin 3 (good read) or pin 4 bad read. The robot will then move to the good or bad bins and returns home.

I have attached a small piece of the program. in the example i am trying to get the robot to wait till pin 2 is high before it starts and then when it is in forward position ( which will be eventually in front of a camera) wait for an input from pin 3 to decide to turn left instead of the timer i have put in.

In my example i have an if statement at the bottom, i thought this would make the program wait for input but it does nothing. I am new to arduino and any help would be greatly appreciated

const int buttonPin = 2;

void setup()
{
Serial.begin(9600);
pinMode(buttonPin, INPUT);

}

void homes()//returns to initial position
{
Serial.println("#1 P1500 T500");
delay(1000);
Serial.println("#2 P1800 T500");
delay(1000);
Serial.println("#3 P1500 T500");
delay(1000);
Serial.println("#4 P1500 T500");
delay(1000);
Serial.println("#6 P900 T500");
delay(1000);
}

void foward()//moves the arm forward
{
Serial.println("#1 P1300 T1000");//rotates
delay(1000);
Serial.println("#2 P2000 T1000");//moves shoulder
delay(1000);
Serial.println("#4 P2100 T1000");//moves wrist servo to position 1900
delay(1000);
}

void left()//moving the arm backwards
{
Serial.println("#1 P2400 T1000");//rotates
Serial.println("#2 P1820 T500"); //moves shoulder servo to position 1000
delay(1000);
Serial.println("#4 P1500 T500");
delay(1000);
}

void loop()
{
if (digitalRead(buttonPin)== HIGH); // read the state of the pushbutton value:
{
homes();
delay(10000);
foward();
delay(5000);
left();
delay(3000);

}
}

if (digitalRead(buttonPin)== HIGH);Oops

Please remember to use code tags when posting code

ok so i added a button state in to my code and the robot will not run until button 1 ( buttonPin) is pressed. the robot will move to home and forward then stop. if i press button 2 (buttonPin1)nothing happens. The program seems to go back to start and waits for start button again.

const int buttonPin = 4;
int buttonState= 0;
const int buttonPin1 = 8;
int buttonState1= 0;

void setup()
{
Serial.begin(9600);
pinMode(buttonPin, INPUT);

}

void homes()//returns to initial position
{
Serial.println("#1 P1500 T500");
delay(1000);
Serial.println("#2 P1800 T500");
delay(1000);
Serial.println("#3 P1500 T500");
delay(1000);
Serial.println("#4 P1500 T500");
delay(1000);
Serial.println("#6 P900 T500");
delay(1000);
}

void foward()//moves the arm forward
{
Serial.println("#1 P1300 T1000");//rotates
delay(1000);
Serial.println("#2 P2000 T1000");//moves shoulder
delay(1000);
Serial.println("#4 P2100 T1000");//moves wrist servo to position 1900
delay(1000);
}

void left()//moving the arm backwards
{
Serial.println("#1 P2400 T1000");//rotates
Serial.println("#2 P1820 T500"); //moves shoulder servo to position 1000
delay(1000);
Serial.println("#4 P1500 T500");
delay(1000);
}

void loop()
{
buttonState = digitalRead(buttonPin); // read button state
if (buttonState == HIGH) // if button pressed start
{
delay(10);
homes();
delay(10000);
foward();
delay(5000);
buttonState1 = digitalRead(buttonPin1); // read input on button 2
if (buttonState1 == HIGH) // if high run
{

left();
delay(3000);
}

}
}