1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
/* Starshatter: The Open Source Project
Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors
Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors
Copyright (c) 1997-2006, Destroyer Studios LLC.
AUTHOR: John DiCamillo
OVERVIEW
========
A significant (newsworthy) event in the dynamic campaign.
*/
#ifndef CombatEvent_h
#define CombatEvent_h
#include "Types.h"
#include "Geometry.h"
#include "Bitmap.h"
#include "Text.h"
#include "List.h"
// +--------------------------------------------------------------------+
class Campaign;
class CombatGroup;
class CombatUnit;
// +--------------------------------------------------------------------+
class CombatEvent
{
public:
static const char* TYPENAME() { return "CombatEvent"; }
enum EVENT_TYPE {
ATTACK,
DEFEND,
MOVE_TO,
CAPTURE,
STRATEGY,
CAMPAIGN_START,
STORY,
CAMPAIGN_END,
CAMPAIGN_FAIL
};
enum EVENT_SOURCE {
FORCOM,
TACNET,
INTEL,
MAIL,
NEWS
};
CombatEvent(Campaign* c, int type, int time, int team, int source, const char* rgn);
int operator == (const CombatEvent& u) const { return this == &u; }
// accessors/mutators:
int Type() const { return type; }
int Time() const { return time; }
int GetIFF() const { return team; }
int Points() const { return points; }
int Source() const { return source; }
Point Location() const { return loc; }
const char* Region() const { return region; }
const char* Title() const { return title; }
const char* Information() const { return info; }
const char* Filename() const { return file; }
const char* ImageFile() const { return image_file; }
const char* SceneFile() const { return scene_file; }
Bitmap& Image() { return image; }
const char* SourceName() const;
const char* TypeName() const;
bool Visited() const { return visited; }
void SetType(int t) { type = t; }
void SetTime(int t) { time = t; }
void SetIFF(int t) { team = t; }
void SetPoints(int p) { points = p; }
void SetSource(int s) { source = s; }
void SetLocation(const Point& p) { loc = p; }
void SetRegion(Text rgn) { region = rgn; }
void SetTitle(Text t) { title = t; }
void SetInformation(Text t) { info = t; }
void SetFilename(Text f) { file = f; }
void SetImageFile(Text f) { image_file = f; }
void SetSceneFile(Text f) { scene_file = f; }
void SetVisited(bool v) { visited = v; }
// operations:
void Load();
// utilities:
static int TypeFromName(const char* n);
static int SourceFromName(const char* n);
static const char* TypeName(int n);
static const char* SourceName(int n);
private:
Campaign* campaign;
int type;
int time;
int team;
int points;
int source;
bool visited;
Point loc;
Text region;
Text title;
Text info;
Text file;
Text image_file;
Text scene_file;
Bitmap image;
};
#endif // CombatEvent_h
|