<commit_before>#ifndef SSPAPPLICATION_AI_DIRECTORSTATE_H
#define SSPAPPLICATION_AI_DIRECTORSTATE_H
#include "ComponentStructs.h" // EVENT Handling in the function LevelDirector::React
// Different types and levels of hints per state 
enum Hint : unsigned int
{
	NONE = 0,
	ONE,
	TWO,
	THREE,
	EXAMPLE,
	TUTORIAL
};

// Handling the EVENT from LevelDirector::React
/* This is to know which entities have been discovered/used in the level so we can trigger
the next state if all these entities are part of the conditions */
struct Condition
{
	int entityID = -1;	// Which subject
	bool used = true;	// Have the players used the entity
};

class DirectorState
{
public:
	int stateID = -1;
	int goalStateID = 0; // all states go back to idle before entering other states
	// TODO: Data that allows the functions to be generic

	// State - Data
	/* both players outside the "checkpoint" (bounding box) would trigger the idle state */
	bool playerOne = false;
	bool playerTwo = false;
	int timeDelay = -1;

	Condition subjects[5];<commit_msg>ADD new data container to locate player in state<commit_after>#ifndef SSPAPPLICATION_AI_DIRECTORSTATE_H
#define SSPAPPLICATION_AI_DIRECTORSTATE_H
#include "ComponentStructs.h" // EVENT Handling in the function LevelDirector::React
// Different types and levels of hints per state 
enum Hint : unsigned int
{
	NONE = 0,
	ONE,
	TWO,
	THREE,
	EXAMPLE,
	TUTORIAL
};

// Handling the EVENT from LevelDirector::React
/* This is to know which entities have been discovered/used in the level so we can trigger
the next state if all these entities are part of the conditions */
struct Condition
{
	int entityID = -1;	// Which subject
	bool used = true;	// Have the players used the entity
};

struct FieldData
{
	int* FD_entityID;
	bool* FD_first_inside;
	bool* FD_second_inside;
};

class DirectorState
{
public:
	int stateID = -1;
	int goalStateID = 0; // all states go back to idle before entering other states
	// TODO: Data that allows the functions to be generic

	// State - Data
	/* both players outside the "checkpoint" (bounding box) would trigger the idle state */
	bool playerOne = false;
	bool playerTwo = false;
	int timeDelay = -1;

	Condition subjects[5];
	FieldData fieldMap[3];// Locate players in which field they are
{'fraction_non_alphanumeric': 0.0760053026955369, 'fraction_numerical': 0.0057445868316394165, 'mean_word_length': 4.042316258351893, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7044438', 'n_tokens_mistral': 698, 'n_tokens_neox': 676, 'n_words': 290}