-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathunit.h
More file actions
104 lines (94 loc) · 2.61 KB
/
unit.h
File metadata and controls
104 lines (94 loc) · 2.61 KB
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
// *************************************************************************
// This file is part of Life, Death, and the Objective ("LDO")
// a simple squad-tactics strategy game by Steaphan Greene
//
// Copyright 2005-2008 Steaphan Greene <stea@cs.binghamton.edu>
//
// LDO is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// LDO is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with LDO (see the file named "COPYING");
// If not, see <http://www.gnu.org/licenses/>.
//
// *************************************************************************
#ifndef UNIT_H
#define UNIT_H
enum Attrib { // List of Attributes
ATTRIB_B = 0, // Body
ATTRIB_Q, // Quickness
ATTRIB_S, // Strength
ATTRIB_C, // Charisma
ATTRIB_I, // Intelligence
ATTRIB_W, // Willpower
ATTRIB_MAX
};
enum Skill { // List of Skills
SKILL_RIFLE = 0,
SKILL_PISTOL,
SKILL_SMG,
SKILL_ASSAULT, // Assault Rifles
SKILL_THROW,
SKILL_HEAVY, // Heavy Weapons
SKILL_LEADERSHIP,
SKILL_PERCEPTION,
SKILL_FIRSTAID,
SKILL_STEALTH,
SKILL_MAX,
SKILL_COMBAT_MAX = SKILL_LEADERSHIP
};
enum Item { // List of Items
ITEM_NONE = -1,
ITEM_LIGHTA, // Light Armor
ITEM_MEDIUMA, // Medium Armor
ITEM_HEAVYA, // Heavy Armor
ITEM_PISTOL,
ITEM_SMG,
ITEM_RIFLE,
ITEM_ASSAULT, // Assault Rifle
ITEM_HEAVYW, // Heavy Weapon
ITEM_GRENADE,
ITEM_MEDKIT,
ITEM_STREASURE, // Small Treasure
ITEM_TREASURE, // Treasure
ITEM_LTREASURE, // Large Treasure
ITEM_MAX,
ITEM_ARMOR_MAX = ITEM_PISTOL,
ITEM_WEAPON_MAX = ITEM_GRENADE
};
enum Locations { // List of Locations on Unit for Equipment
LOC_NONE = -1,
LOC_RSHOULD, // Right Shoulder
LOC_LSHOULD, // Left Shoulder
LOC_RHAND, // Right Hand
LOC_LHAND, // Left Hand
LOC_RLEG, // Right Leg
LOC_LLEG, // Left Leg
LOC_BELT,
LOC_PACK, // Backpack
LOC_MAX
};
#include <cstdio>
#include <string>
#include <vector>
using namespace std;
class Unit {
public:
Unit();
int Load(FILE *f, unsigned int ver);
int Save(FILE *f);
int id;
int troop;
string name;
char attribs[ATTRIB_MAX];
char skills[SKILL_MAX];
vector<Item> items[LOC_MAX];
};
#endif // UNIT_H