/**
 * The helper include file for the goals system.
 * @author Pinkfish
 * @started Thu Jul 30 18:08:47 PDT 1998
 * @see /std/living/goals.c
 * @see /std/npc/goals/base.c
 */
#ifndef __GOALS_H__
/** @ignore yes */
#define __GOALS_H__
/**
 * The lowest priority goal.
 */
#define GOAL_LOWEST_PRIORITY 0
/**
 * A low priority goal.
 */
#define GOAL_LOW_PRIORITY 1000
/**
 * A medium priority goal.
 */
#define GOAL_MEDIUM_PRIORITY 2000
/**
 * A high priority goal.
 */
#define GOAL_HIGH_PRIORITY 3000
/**
 * A very high priority goal.
 */
#define GOAL_VERY_HIGH_PRIORITY 4000
/**
 * The invalid priority for a goal.
 */
#define GOAL_INVALID_PRIORITY -32768
/**
 * The default priority for a goal that does not have a priority set.
 */
#define GOAL_DEFAULT_PRIORITY GOAL_LOWEST_PRIORITY
/**
 * This is the return value for the goal which tells it to skip
 * this goal and continue onto the next.
 */
#define GOAL_CONTINUE_PROCESSING 1
/**
 * The directory all the standard goals will go in.
 */
#define GOALS_DIR "/std/npc/goals/"
/**
 * The basic inherit for all npc goals.
 */
#define GOAL_BASE_INHERIT (GOALS_DIR "base")
/**
 * The class used to keep track of the data passed into a goal.
 */
class goal_control {
   /** The extra plans associated with the goal. */
   mapping extra_plans;
   /** The current plan of the goal. */
   string current_plan;
   /** The override priority of the goal. */
   int priority;
   /** The data is controled by the goal itself. */
   mixed data;
   /** The plan data for each plan. */
   mapping plan_info;
}
/**
 * This is the return value from the event handling routine if the event
 * was not handled.
 */
#define GOAL_EVENT_NOT_HANDLED 0
/**
 * This is the return value from the event handling system if the event
 * was handled.
 */
#define GOAL_EVENT_HANDLED 1
#endif