#include "state.hpp" // Delegate calls from State->changeState to Car->changeState void State::changeState(Car *c, State *s) { c->changeState(s);} // Stopped state transitions void Stopped::Start(Car *c) { changeState(c, Running::instance());} void Stopped::Smash(Car *c) { changeState(c, Broken::instance());} // Running state transitions void Running::Stop(Car *c) { changeState(c, Stopped::instance());} void Running::Smash(Car *c) { changeState(c, Burning::instance());}