Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00012 #ifndef SCRIPT_EVENT_HPP
00013 #define SCRIPT_EVENT_HPP
00014
00015 #include "script_object.hpp"
00016
00023 class ScriptEvent : public ScriptObject {
00024 public:
00028 enum ScriptEventType {
00029 ET_INVALID = 0,
00030 ET_TEST,
00031 ET_SUBSIDY_OFFER,
00032 ET_SUBSIDY_OFFER_EXPIRED,
00033 ET_SUBSIDY_AWARDED,
00034 ET_SUBSIDY_EXPIRED,
00035 ET_ENGINE_PREVIEW,
00036 ET_COMPANY_NEW,
00037 ET_COMPANY_IN_TROUBLE,
00038 ET_COMPANY_ASK_MERGER,
00039 ET_COMPANY_MERGER,
00040 ET_COMPANY_BANKRUPT,
00041 ET_VEHICLE_CRASHED,
00042 ET_VEHICLE_LOST,
00043 ET_VEHICLE_WAITING_IN_DEPOT,
00044 ET_VEHICLE_UNPROFITABLE,
00045 ET_INDUSTRY_OPEN,
00046 ET_INDUSTRY_CLOSE,
00047 ET_ENGINE_AVAILABLE,
00048 ET_STATION_FIRST_VEHICLE,
00049 ET_DISASTER_ZEPPELINER_CRASHED,
00050 ET_DISASTER_ZEPPELINER_CLEARED,
00051 ET_TOWN_FOUNDED,
00052 ET_AIRCRAFT_DEST_TOO_FAR,
00053 };
00054
00058 ScriptEvent(ScriptEvent::ScriptEventType type) :
00059 type(type)
00060 {}
00061
00066 ScriptEventType GetEventType() { return this->type; }
00067
00068 protected:
00072 ScriptEventType type;
00073 };
00074
00081 class ScriptEventController : public ScriptObject {
00082 public:
00087 static bool IsEventWaiting();
00088
00093 static ScriptEvent *GetNextEvent();
00094
00100 static void InsertEvent(ScriptEvent *event);
00101
00106 static void FreeEventPointer();
00107
00108 private:
00112 static void CreateEventPointer();
00113 };
00114
00115 #endif