From e33e19d0587146859d48a134ec9fd94e7b7ba5cd Mon Sep 17 00:00:00 2001 From: "FWoltermann@gmail.com" Date: Thu, 8 Dec 2011 14:53:40 +0000 Subject: Initial upload --- Stars45/MissionEvent.h | 167 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 Stars45/MissionEvent.h (limited to 'Stars45/MissionEvent.h') diff --git a/Stars45/MissionEvent.h b/Stars45/MissionEvent.h new file mode 100644 index 0000000..c4025d1 --- /dev/null +++ b/Stars45/MissionEvent.h @@ -0,0 +1,167 @@ +/* Project Starshatter 4.5 + Destroyer Studios LLC + Copyright © 1997-2004. All Rights Reserved. + + SUBSYSTEM: Stars.exe + FILE: MissionEvent.h + AUTHOR: John DiCamillo + + + OVERVIEW + ======== + Events for mission scripting +*/ + +#ifndef MissionEvent_h +#define MissionEvent_h + +#include "Types.h" +#include "List.h" +#include "Text.h" +#include "Geometry.h" +#include "Bitmap.h" + +// +--------------------------------------------------------------------+ + +class Mission; +class MissionElement; +class MissionLoad; +class MissionEvent; + +class Ship; +class System; +class Element; +class ShipDesign; +class WeaponDesign; +class StarSystem; +class Instruction; +class Sound; + +// +--------------------------------------------------------------------+ + +class MissionEvent +{ + friend class Mission; + friend class MissionTemplate; + friend class MsnEditDlg; + friend class MsnEventDlg; + +public: + static const char* TYPENAME() { return "MissionEvent"; } + + enum EVENT_TYPE { + MESSAGE, + OBJECTIVE, + INSTRUCTION, + IFF, + DAMAGE, + JUMP, + HOLD, + SKIP, + END_MISSION, + + BEGIN_SCENE, + CAMERA, + VOLUME, + DISPLAY, + FIRE_WEAPON, + END_SCENE, + + NUM_EVENTS + }; + + enum EVENT_STATUS { + PENDING, ACTIVE, COMPLETE, SKIPPED + }; + + enum EVENT_TRIGGER { + TRIGGER_TIME, TRIGGER_DAMAGE, TRIGGER_DESTROYED, + TRIGGER_JUMP, TRIGGER_LAUNCH, TRIGGER_DOCK, + TRIGGER_NAVPT, TRIGGER_EVENT, TRIGGER_SKIPPED, + TRIGGER_TARGET, TRIGGER_SHIPS_LEFT, TRIGGER_DETECT, + TRIGGER_RANGE, TRIGGER_EVENT_ALL, TRIGGER_EVENT_ANY, + NUM_TRIGGERS + }; + + MissionEvent(); + ~MissionEvent(); + + // operations: + void ExecFrame(double seconds); + void Activate(); + + virtual bool CheckTrigger(); + virtual void Execute(bool silent=false); + virtual void Skip(); + + // accessors: + int EventID() const { return id; } + int Status() const { return status; } + bool IsPending() const { return status == PENDING; } + bool IsActive() const { return status == ACTIVE; } + bool IsComplete() const { return status == COMPLETE; } + bool IsSkipped() const { return status == SKIPPED; } + + double Time() const { return time; } + double Delay() const { return delay; } + + int Event() const { return event; } + const char* EventName() const; + Text EventShip() const { return event_ship; } + Text EventSource() const { return event_source; } + Text EventTarget() const { return event_target; } + Text EventMessage() const { return event_message; } + Text EventSound() const { return event_sound; } + + int EventParam(int index=0) const; + int NumEventParams() const; + + int EventChance() const { return event_chance; } + Point EventPoint() const { return event_point; } + Rect EventRect() const { return event_rect; } + + int Trigger() const { return trigger; } + const char* TriggerName() const; + Text TriggerShip() const { return trigger_ship; } + Text TriggerTarget() const { return trigger_target; } + + Text TriggerParamStr() const; + int TriggerParam(int index=0) const; + int NumTriggerParams() const; + + static const char* EventName(int n); + static int EventForName(const char* n); + static const char* TriggerName(int n); + static int TriggerForName(const char* n); + +protected: + int id; + int status; + double time; + double delay; + + int event; + Text event_ship; + Text event_source; + Text event_target; + Text event_message; + Text event_sound; + int event_param[10]; + int event_nparams; + int event_chance; + Vec3 event_point; + Rect event_rect; + + int trigger; + Text trigger_ship; + Text trigger_target; + int trigger_param[10]; + int trigger_nparams; + + Bitmap image; + Sound* sound; +}; + + +#endif MissionEvent_h + -- cgit v1.1