#include "utility/command.h"
#include "gameplay/gameactor.h"

//void LambdaCommand::execute(GameActor& actor) { func(actor); }

void MoveUpCommand::execute(GameActor& actor) { actor.moveUp(); }
void MoveDownCommand::execute(GameActor& actor) { actor.moveDown(); }
void MoveLeftCommand::execute(GameActor& actor) { actor.moveLeft(); }
void MoveRightCommand::execute(GameActor& actor) { actor.moveRight(); }
void MoveForwardCommand::execute(GameActor& actor) { actor.moveForward(); }
void MoveBackwardCommand::execute(GameActor& actor) { actor.moveBackward(); }
void StrafeLeftCommand::execute(GameActor& actor) { actor.strafeLeft(); }
void StrafeRightCommand::execute(GameActor& actor) { actor.strafeRight(); }
void CycleUpCommand::execute(GameActor& actor) { actor.cycleUpWeapons(); }
void CycleDownCommand::execute(GameActor& actor) { actor.cycleDownWeapons(); }

void ShootCommand::execute(GameActor& actor, const MouseState& mouse_state) { actor.fireWeapon(); }
void CycleCommand::execute(GameActor& actor, const MouseState& mouse_state) { actor.cycleWeapons(mouse_state); }
void FollowMouseCommand::execute(GameActor& actor, const MouseState& mouse_state) { actor.followMouse(mouse_state); }
