DaveTheCoder There's a fundamental difference. States in a fsm are mutually exclusive, flags aren't. They model different things. That's why it's important to know your problem very well to be able to choose pattern(s) that model it adequately.
If the thing you're modeling consists only of mutually exclusive states - fsm is excellent. It will model the problem perfectly.
However, player states in action games, least for most simplistic ones, are typically not entirely mutually exclusive. States will tend to overlap and run in parallel to a varying degree depending on the type and complexity of the game. In my experience, the more the gameplay/controls are finetuned to feel good, the more of such overlaps need to be introduced, and consequently the more you need to fight against the rigid framework of mutual exclusivity provided by a fsm. You may end up needing to handle so many "exceptions" that your code would become as "ugly" as when using just plain ifs, only worse because now you also have the whole fsm beast to cater to in addition.