From bb16c32bde58cba70e4877aa2d3ebd04332eb575 Mon Sep 17 00:00:00 2001 From: jacopograndi Date: Tue, 4 Jan 2022 13:35:02 +0100 Subject: linux compile and imgs --- game/playercontrol.h | 182 +++++++++++++++++++++++++-------------------------- 1 file changed, 91 insertions(+), 91 deletions(-) (limited to 'game/playercontrol.h') diff --git a/game/playercontrol.h b/game/playercontrol.h index c0075d4..d6b1fd7 100644 --- a/game/playercontrol.h +++ b/game/playercontrol.h @@ -1,92 +1,92 @@ -#ifndef PLAYERCONTROL_H -#define PLAYERCONTROL_H - -#include - -#include "gst.h" -#include "view.h" -#include -#include - - -enum pc_state { - select, - move, - attack, - train, - build, - merge, - trade, - age_up, - heal, - power, - move_target, - attack_target, - menu_train, - menu_build, - target_build, - merge_target, - target_heal, - target_convert, - menu_power, - target_power, - menu_unit, - menu_day, - menu_tech, - menu_trade, - menu_age_up, - end -}; - -enum pc_action { - sel_unit, - sel_ground, - opt, - back -}; - - -class Fsm; -using lambda = std::function; - - -class Arc { - public: - Arc (pc_state from, pc_action act, int p, lambda f) - : from(from), act(act), p(p), f(f) {}; - pc_state from; - pc_action act; - int p; - - lambda f; -}; - -class Fsm { - public: - Fsm() { state = select; } - - void transition (Gst &gst, View &view, Fsm &fsm, pc_action act, int p) { - std::cout << "> transitioning from " << state << " with " << act << std::endl; - for (Arc a : arcs) { - if (a.from == state && a.act == act && (a.p == p || a.p == -1)) { - state = a.f(gst, view, fsm, p); - break; - } - } - } - std::vector arcs; - - private: - pc_state state; -}; - - -class Player_control { - public: - Player_control (); - void process (Gst &gst, View &view); - - Fsm fsm; -}; - +#ifndef PLAYERCONTROL_H +#define PLAYERCONTROL_H + +#include + +#include "gst.h" +#include "view.h" +#include +#include + + +enum pc_state { + select, + move, + attack, + train, + build, + merge, + trade, + age_up, + heal, + power, + move_target, + attack_target, + menu_train, + menu_build, + target_build, + merge_target, + target_heal, + target_convert, + menu_power, + target_power, + menu_unit, + menu_day, + menu_tech, + menu_trade, + menu_age_up, + end +}; + +enum pc_action { + sel_unit, + sel_ground, + opt, + back +}; + + +class Fsm; +using lambda = std::function; + + +class Arc { + public: + Arc (pc_state from, pc_action act, int p, lambda f) + : from(from), act(act), p(p), f(f) {}; + pc_state from; + pc_action act; + int p; + + lambda f; +}; + +class Fsm { + public: + Fsm() { state = select; } + + void transition (Gst &gst, View &view, Fsm &fsm, pc_action act, int p) { + std::cout << "> transitioning from " << state << " with " << act << std::endl; + for (Arc a : arcs) { + if (a.from == state && a.act == act && (a.p == p || a.p == -1)) { + state = a.f(gst, view, fsm, p); + break; + } + } + } + std::vector arcs; + + private: + pc_state state; +}; + + +class Player_control { + public: + Player_control (); + void process (Gst &gst, View &view); + + Fsm fsm; +}; + #endif \ No newline at end of file -- cgit v1.2.3-54-g00ecf