If you really have one different process to do for each of the 16 possible combinations, I would suggest converting the array of Booleans into an int and switch on that int:
int i = booleans[0]?1:0
+ 2*(booleans[1]?1:0)
+ 4*(booleans[2]?1:0)
+ 8*(booleans[3]?1:0);
switch (i)
{
case 0: //false false false false
case 1: //true false false false
case 2: //false true false false
//...
case 15: //true true true true
}
But are you sure each situation is totally different and not a combination of 4 aspects only?