CSC8503_Advanced_Game_Technologies / CSC8503 / CSC8503Common / PushdownMachine.h
PushdownMachine.h
Raw
#pragma once
#include <stack>

namespace NCL {
	namespace CSC8503 {
		class PushdownState;

		class PushdownMachine {
		public:
			PushdownMachine(PushdownState* initialState) {
				this->initialState = initialState;
			}
			~PushdownMachine() {}

			bool Update(float dt);
			bool isEmpty() { return stateStack.empty(); }

		protected:
			PushdownState* activeState;
			PushdownState* initialState;

			std::stack<PushdownState*> stateStack;
		};
	}
}