-
Notifications
You must be signed in to change notification settings - Fork 0
/
MWRandItemGroup.h
179 lines (138 loc) · 5.39 KB
/
MWRandItemGroup.h
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
/*===========================================================================
*
* File: Mwranditemgroup.H
* Author: Dave Humphrey ([email protected])
* Created On: July 3, 2003
*
* Description
*
*=========================================================================*/
#ifndef __MWRANDITEMGROUP_H
#define __MWRANDITEMGROUP_H
/*===========================================================================
*
* Begin Required Includes
*
*=========================================================================*/
#include "mwrandcom.h"
#include "mwranditems.h"
/*===========================================================================
* End of Required Includes
*=========================================================================*/
/*===========================================================================
*
* Begin Definitions
*
*=========================================================================*/
/* Default option values */
#define MWRIG_DEFAULT_CREATELIST true
#define MWRIG_DEFAULT_CURSEDCHANCE 0.33f
#define MWRIG_DEFAULT_PREFIXCHANCE 0.25f
#define MWRIG_DEFAULT_SUFFIXCHANCE 0.50f
#define MWRIG_DEFAULT_UNIQUECHANCE 0.25f
#define MWRIG_DEFAULT_CHANCENONE 10.0f
#define MWRIG_DEFAULT_RANDOMBELL 50.0f
#define MWRIG_DEFAULT_ITEMMASK MWRI_ITEMMASK_ALL
#define MWRIG_DEFAULT_MINLEVEL 1
#define MWRIG_DEFAULT_MAXLEVEL 100
#define MWRIG_DEFAULT_NUMITEMS 100
#define MWRIG_MAX_SCRIPTFILES 16
/*===========================================================================
* End of Definitions
*=========================================================================*/
/*===========================================================================
*
* Begin Type Definitions
*
*=========================================================================*/
/* Basic data for a single group */
class mwri_group_t {
public:
TCHAR IDPrefix[MWRI_MAX_NAMESIZE+1];
int IDType;
int MinLevel;
int MaxLevel;
bool UseBell;
float RandomBell;
int NumItems;
bool CreateLevelLists;
bool MakePHLists;
bool UseListID;
TCHAR ListID[MWRI_MAX_NAMESIZE+1];
TCHAR PHListID[MWRI_MAX_NAMESIZE+1];
bool OutputScript;
bool OutputScriptRecord;
TCHAR ScriptFile[MWRI_MAX_NAMESIZE+1];
float ChanceNone;
bool RemoveDuplicates;
int ItemMask;
float PrefixChance;
float SuffixChance;
float UniqueChance;
float CursedChance;
bool UseScriptNames;
TCHAR InstallScript[MWRI_MAX_NAMESIZE+1];
TCHAR UninstallScript[MWRI_MAX_NAMESIZE+1];
TCHAR BaseItems[_MAX_PATH+1];
TCHAR Effects[_MAX_PATH+1];
TCHAR Uniques[_MAX_PATH+1];
TCHAR LevelLists[_MAX_PATH+1];
};
typedef struct {
TCHAR Filename[_MAX_PATH+1];
} mwri_espfile_t;
/*===========================================================================
* End of Type Definitions
*=========================================================================*/
/*===========================================================================
*
* Begin Class CMwRandItemGroup Definition
*
* Holds basic information from a group file.
*
*=========================================================================*/
class CMwRandItemGroup {
/*---------- Begin Private Class Members ----------------------*/
private:
mwri_group_t m_GroupData; /* Basic group data */
int m_InputLine;
mwri_espfile_t m_EspFiles[MWRIG_MAX_SCRIPTFILES];
int m_NumEspFiles;
/*---------- Begin Protected Class Methods --------------------*/
protected:
/*---------- Begin Public Class Methods -----------------------*/
public:
/* Class Constructors/Destructors */
CMwRandItemGroup();
virtual ~CMwRandItemGroup() { Destroy(); }
virtual void Destroy (void);
/* Attempt to add an esp file to the group data */
bool AddEspFile (const TCHAR* pFilename);
/* Get class members */
mwri_group_t* GetGroup (void) { return (&m_GroupData); }
mwri_espfile_t* GetEspFiles (void) { return (m_EspFiles); }
int GetNumEspFiles (void) { return (m_NumEspFiles); }
bool IsValidEspFile (const int Index) { return (Index >= 0 && Index < m_NumEspFiles); }
const TCHAR* GetEspFile (const int Index) { return (IsValidEspFile(Index) ? m_EspFiles[Index].Filename : NULL); }
/* Attempt to load/save a group file */
bool Load (const TCHAR* pFilename);
bool Save (const TCHAR* pFilename);
/* Sets a group parameter */
bool SetParameter (const TCHAR* pVariable, const TCHAR* pValue);
};
/*===========================================================================
* End of Class CMwRandItemGroup Definition
*=========================================================================*/
/*===========================================================================
*
* Begin Function Prototypes
*
*=========================================================================*/
void DefaultMWRandItemGroupOptions (mwri_group_t& Group);
/*===========================================================================
* End of Function Prototypes
*=========================================================================*/
#endif
/*===========================================================================
* End of File Mwranditemgroup.H
*=========================================================================*/