ai_event.hpp

Go to the documentation of this file.
00001 /* $Id: ai_event.hpp 15481 2009-02-14 20:03:06Z yexo $ */
00002 
00005 #ifndef AI_EVENT_HPP
00006 #define AI_EVENT_HPP
00007 
00008 #include "ai_object.hpp"
00009 
00015 class AIEvent : public AIObject {
00016 public:
00017   static const char *GetClassName() { return "AIEvent"; }
00018 
00022   enum AIEventType {
00023     AI_ET_INVALID = 0,
00024     AI_ET_TEST,
00025     AI_ET_SUBSIDY_OFFER,
00026     AI_ET_SUBSIDY_OFFER_EXPIRED,
00027     AI_ET_SUBSIDY_AWARDED,
00028     AI_ET_SUBSIDY_EXPIRED,
00029     AI_ET_ENGINE_PREVIEW,
00030     AI_ET_COMPANY_NEW,
00031     AI_ET_COMPANY_IN_TROUBLE,
00032     AI_ET_COMPANY_MERGER,
00033     AI_ET_COMPANY_BANKRUPT,
00034     AI_ET_VEHICLE_CRASHED,
00035     AI_ET_VEHICLE_LOST,
00036     AI_ET_VEHICLE_WAITING_IN_DEPOT,
00037     AI_ET_VEHICLE_UNPROFITABLE,
00038     AI_ET_INDUSTRY_OPEN,
00039     AI_ET_INDUSTRY_CLOSE,
00040     AI_ET_ENGINE_AVAILABLE,
00041     AI_ET_STATION_FIRST_VEHICLE,
00042     AI_ET_DISASTER_ZEPPELINER_CRASHED,
00043     AI_ET_DISASTER_ZEPPELINER_CLEARED,
00044   };
00045 
00049   AIEvent(AIEvent::AIEventType type) :
00050     type(type)
00051   {}
00052 
00057   AIEventType GetEventType() { return this->type; }
00058 
00059 protected:
00063   AIEventType type;
00064 };
00065 
00071 class AIEventController : public AIObject {
00072 public:
00076   static const char *GetClassName() { return "AIEventController"; }
00077 
00082   static bool IsEventWaiting();
00083 
00088   static AIEvent *GetNextEvent();
00089 
00090 #ifndef EXPORT_SKIP
00091 
00095   static void InsertEvent(AIEvent *event);
00096 
00101   static void FreeEventPointer();
00102 #endif /* EXPORT_SKIP */
00103 
00104 private:
00108   static void CreateEventPointer();
00109 };
00110 
00111 #endif /* AI_EVENT_HPP */

Generated on Mon Mar 9 23:33:45 2009 for openttd by  doxygen 1.5.6