LED Strobe Bar controller

Hey all, So I'm building this controller to be able to control a LED Strobe Light Bar I have. The light bad has two colors and is designed in two sections both having LEDs with two colors. The light bar requires a 5v trigger to turn on the desired color.

So I want my arduino to do the following:

1 button to turn all yellow LEDs on. 1 button to turn all white LEDs on. 1 button to turn all yellow LEDs to strobes on. 1 button to turn all white LEDs to strobe on. 1 button to turn on different strobing patterns.

I'm able to get all this working. I just want to see what you guys think of my code.

The only issue I'm encountering is that when pressing through the patterns I sometimes have to press the buttom more than once to switch to the next pattern.

Main code

const int buttonPin0 = 2;  //Solid All Yellow LEDs   
const int buttonPin1 = 3;  //Solid All White LEDs   
const int buttonPin2 = 4;  //Strobe All Yellow LEDs  
const int buttonPin3 = 5;  //Strobe All White LEDs
const int buttonPin4 = 6;  //Strobe Patterns 
const int ledPin0 =  9;   //First set of Yellow LEDs     
const int ledPin1 =  10;  //First set of White LEDs    
const int ledPin2 =  11;  //Second set of Yellow LEDs   
const int ledPin3 =  12;  //Second set of White LEDs   


int buttonState0 = 0;        
int buttonState1 = 0;         
int buttonState2 = 0;       
int buttonState3 = 0; 

int oldState;
int buttonState4 = 0; 
int state = 0;
unsigned long startTime;
unsigned long interval = 1000UL;

void setup() {
  pinMode(ledPin0, OUTPUT);   
  pinMode(ledPin1, OUTPUT);   
  pinMode(ledPin2, OUTPUT);   
  pinMode(ledPin3, OUTPUT);   

  pinMode(buttonPin0, INPUT);
  pinMode(buttonPin1, INPUT);
  pinMode(buttonPin2, INPUT);
  pinMode(buttonPin3, INPUT);
  pinMode(buttonPin4, INPUT);  

}

void loop(){
  buttonState0 = digitalRead(buttonPin0);
  buttonState1 = digitalRead(buttonPin1);
  buttonState2 = digitalRead(buttonPin2);
  buttonState3 = digitalRead(buttonPin3);
  buttonState4 = digitalRead(buttonPin4);

  if (buttonState0 == HIGH) {     //Solid Yellow
    SolidYellow();
  }   
  if (buttonState1 == HIGH) {     // Solid White
    SolidWhite(); 
  }
  if (buttonState2 == HIGH) {     //strobe yellow
    FlashYellow();
  }
  if (buttonState3 == HIGH) {   //strobe white  
    FlashWhite();
  }

  int buttonState4 = digitalRead(buttonPin4);
  {
    if (buttonState4 == HIGH)
    {
      if (oldState == LOW)
      {
        state++;
       if (state > 12) state = 0;
      }
    }
  }
  oldState = buttonState4;
  if (state == 0)
  {
    noFlash();
  }
  else if (state == 1)
  {
    flashA();
  }
  else if (state == 2)
  {
    flashB();
  }
  else if (state == 3)
  {
    flashC();
  }
  else if (state == 4)
  {
    flashD();
  }
  else if (state == 5)
  {
    flashE();
  }
  else if (state == 6)
  {
    flashF();
  }
  else if (state == 7)
  {
    flashG();
  }
  else if (state == 8)
  {
    flashH();
  }
  else if (state == 9)
  {
    flashI();
  }
  else if (state == 10)
  {
    flashJ();
  }
  else if (state == 11)
  {
    flashK();
  }
  else if (state == 12)
  {
    flashL();
  }
}