mirror of
https://github.com/jmarshall23/Hellfire.git
synced 2026-08-11 23:40:51 +02:00
537 lines
16 KiB
C++
537 lines
16 KiB
C++
/*-----------------------------------------------------------------------**
|
|
** Diablo
|
|
**
|
|
** Constants and Variables
|
|
**
|
|
** (C)1995 Condor, Inc. All rights reserved.
|
|
**-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
** Defines
|
|
**-----------------------------------------------------------------------*/
|
|
// STORYTELLER ST
|
|
// TAVERN OWNER TO
|
|
// PRIEST P
|
|
// HEALER H
|
|
// BARMAID BM
|
|
// BLACKSMITH BS
|
|
// TOWN DRUNK TD
|
|
// WITCH W
|
|
// PEG-LEGGED BOY PB
|
|
/*-----------------------------------------------------------------------**
|
|
// QUESTS
|
|
**-----------------------------------------------------------------------*/
|
|
// Skeleton King Quest
|
|
#define TXT_KINGST1 0 // ST
|
|
#define TXT_KINGTO1 1 // TO quest init
|
|
#define TXT_KINGTO2 2 // TO return before end
|
|
#define TXT_KINGTO3 3 // TO return upon completion
|
|
// P
|
|
#define TXT_KINGH1 4 // H
|
|
#define TXT_KINGBM1 5 // BM
|
|
#define TXT_KINGBS1 6 // BS
|
|
#define TXT_KINGTD1 7 // TD
|
|
#define TXT_KINGW1 8 // W
|
|
#define TXT_KINGPB1 9 // PB
|
|
|
|
#define TXT_KING1 10 // Skeleton King
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// Banner of Light Quest
|
|
#define TXT_BOLST1 11 // ST
|
|
#define TXT_BOLTO1 12 // TO quest init
|
|
#define TXT_BOLTO2 13 // TO return sign
|
|
// P
|
|
#define TXT_BOLH1 14 // H
|
|
#define TXT_BOLBM1 15 // BM
|
|
#define TXT_BOLBS1 16 // BS
|
|
#define TXT_BOLTD1 17 // TD
|
|
#define TXT_BOLW1 18 // W
|
|
#define TXT_BOLPB1 19 // PB
|
|
|
|
#define TXT_BOL1 20 // Snotspil first time
|
|
#define TXT_BOL2 21 // Snotspil empty handed
|
|
#define TXT_BOL3 22 // Snotspil with sign
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// Vile Betrayer Quest
|
|
#define TXT_VBST1 23 // ST quest not done
|
|
#define TXT_VBST2 24 // ST quest init
|
|
#define TXT_VBST3 25 // ST quest done
|
|
#define TXT_VBTO1 26 // TO
|
|
#define TXT_VBP3 27 // not in
|
|
#define TXT_VBP4 28 // not in
|
|
#define TXT_VBH1 29 // H
|
|
#define TXT_VBBM1 30 // BM
|
|
#define TXT_VBBS1 31 // BS
|
|
#define TXT_VBTD1 32 // TD
|
|
#define TXT_VBW1 33 // W
|
|
#define TXT_VBPB1 34 // PB
|
|
|
|
#define TXT_VB1 35 // Lazurus before sacrafice
|
|
#define TXT_VB2 36 // Lazurus after sacrafice
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// Poisoned Water Quest
|
|
#define TXT_PWST1 37 // ST
|
|
#define TXT_PWTO1 38 // TO
|
|
// P
|
|
#define TXT_PWH1 39 // H quest init
|
|
#define TXT_PWH2 40 // H return before done
|
|
#define TXT_PWH3 41 // H quest done
|
|
#define TXT_PWBM1 42 // BM
|
|
#define TXT_PWBS1 43 // BS
|
|
#define TXT_PWTD1 44 // TD
|
|
#define TXT_PWW1 45 // W
|
|
#define TXT_PWPB1 46 // PB
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// The Chamber of Bone Quest
|
|
#define TXT_BONEST1 47 // ST
|
|
#define TXT_BONETO1 48 // TO
|
|
// P
|
|
#define TXT_BONEH1 49 // H
|
|
#define TXT_BONEBM1 50 // BM
|
|
#define TXT_BONEBS1 51 // BS
|
|
#define TXT_BONETD1 52 // TD
|
|
#define TXT_BONEW1 53 // W
|
|
#define TXT_BONEPB1 54 // PB
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// The Butcher Quest
|
|
#define TXT_BUTCHST1 55 // ST
|
|
#define TXT_BUTCHTO1 56 // TO
|
|
// P
|
|
#define TXT_BUTCHH1 57 // H
|
|
#define TXT_BUTCHBM1 58 // BM
|
|
#define TXT_BUTCHBS1 59 // BS
|
|
#define TXT_BUTCHTD1 60 // TD
|
|
#define TXT_BUTCHW1 61 // W
|
|
#define TXT_BUTCHPB1 62 // PB
|
|
|
|
#define TXT_BUTCH1 63 // Wounded Townsman
|
|
#define TXT_BUTCH2 64 // Butcher
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// Halls of the Blind Quest
|
|
#define TXT_BLINDST1 65 // ST
|
|
#define TXT_BLINDTO1 66 // TO
|
|
// P
|
|
#define TXT_BLINDH1 67 // H
|
|
#define TXT_BLINDBM1 68 // BM
|
|
#define TXT_BLINDBS1 69 // BS
|
|
#define TXT_BLINDTD1 70 // TD
|
|
#define TXT_BLINDW1 71 // W
|
|
#define TXT_BLINDPB1 72 // PB
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// Veil of Steel Quest
|
|
#define TXT_VEILST1 73 // ST
|
|
#define TXT_VEILTO1 74 // TO
|
|
// P
|
|
#define TXT_VEILH1 75 // H
|
|
#define TXT_VEILBM1 76 // BM
|
|
#define TXT_VEILBS1 77 // BS
|
|
#define TXT_VEILTD1 78 // TD
|
|
#define TXT_VEILW1 79 // W
|
|
#define TXT_VEILPB1 80 // PB
|
|
|
|
#define TXT_VEIL1 81 // Lachdanan first time
|
|
#define TXT_VEIL2 82 // Lachdanan without elixir
|
|
#define TXT_VEIL3 83 // Lachdanan with elixir
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// The Anvil of Fury Quest
|
|
#define TXT_ANVILST1 84 // ST
|
|
#define TXT_ANVILTO1 85 // TO
|
|
// P
|
|
#define TXT_ANVILH1 86 // H
|
|
#define TXT_ANVILBM1 87 // BM
|
|
#define TXT_ANVILBS1 88 // BS
|
|
#define TXT_ANVILBS2 89 // BS
|
|
#define TXT_ANVILBS3 90 // BS
|
|
#define TXT_ANVILTD1 91 // TD
|
|
#define TXT_ANVILW1 92 // W
|
|
#define TXT_ANVILPB1 93 // PB
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// Stones of Blood Quest
|
|
#define TXT_BLOODST1 94 // ST
|
|
#define TXT_BLOODTO1 95 // TO
|
|
// P
|
|
#define TXT_BLOODH1 96 // H
|
|
#define TXT_BLOODBM1 97 // BM
|
|
#define TXT_BLOODBS1 98 // BS
|
|
#define TXT_BLOODTD1 99 // TD
|
|
#define TXT_BLOODW1 100 // W
|
|
#define TXT_BLOODPB1 101 // PB
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// Warlord of Blood Quest
|
|
#define TXT_WARLRDST1 102 // ST
|
|
#define TXT_WARLRDTO1 103 // TO
|
|
// P
|
|
#define TXT_WARLRDH1 104 // H
|
|
#define TXT_WARLRDBM1 105 // BM
|
|
#define TXT_WARLRDBS1 106 // BS
|
|
#define TXT_WARLRDTD1 107 // TD
|
|
#define TXT_WARLRDW1 108 // W
|
|
#define TXT_WARLRDPB1 109 // PB
|
|
|
|
#define TXT_WARLRD1 110 // Warlord of the Blood
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// Ring of Infravision Quest
|
|
#define TXT_INFRAST1 111 // ST
|
|
#define TXT_INFRATO1 112 // TO
|
|
// P
|
|
#define TXT_INFRAH1 113 // H
|
|
#define TXT_INFRABM1 114 // BM
|
|
#define TXT_INFRABS1 115 // BS
|
|
#define TXT_INFRABS2 116 // BS
|
|
#define TXT_INFRABS3 117 // BS
|
|
#define TXT_INFRATD1 118 // TD
|
|
#define TXT_INFRAW1 119 // W
|
|
#define TXT_INFRAPB1 120 // PB
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// Black Mushroom Quest
|
|
#define TXT_BLKMST1 121 // ST
|
|
#define TXT_BLKMTO1 122 // TO
|
|
// P
|
|
#define TXT_BLKMH1 123 // H no brain
|
|
#define TXT_BLKMH2 124 // H with brain
|
|
#define TXT_BLKMBM1 125 // BM
|
|
#define TXT_BLKMBS1 126 // BS
|
|
#define TXT_BLKMTD1 127 // TD
|
|
#define TXT_BLKMW1 128 // W
|
|
#define TXT_BLKMW2 129 // W
|
|
#define TXT_BLKMW3 130 // W
|
|
#define TXT_BLKMW4 131 // W
|
|
#define TXT_BLKMW5 132 // W
|
|
#define TXT_BLKMPB1 133 // PB
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// Map of Doom Quest
|
|
#define TXT_MODST1 134 // ST quest init
|
|
#define TXT_MODST2 135 // ST return before stars align and Diablo alive
|
|
#define TXT_MODST3 136 // ST return after stars align and Diablo alive
|
|
#define TXT_MODTO1 137 // TO
|
|
// P
|
|
#define TXT_MODH1 138 // H
|
|
#define TXT_MODBM1 139 // BM
|
|
#define TXT_MODBS1 140 // BS
|
|
#define TXT_MODTD1 141 // TD
|
|
#define TXT_MODW1 142 // W
|
|
#define TXT_MODPB1 143 // PB
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// Garbud the Weak Quest
|
|
|
|
#define TXT_GARB1 144 // Garbud first time
|
|
#define TXT_GARB2 145 // Garbud 2nd time
|
|
#define TXT_GARB3 146 // Garbud 3rd time
|
|
#define TXT_GARB4 147 // Garbud 4th time
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// Zhar the Mad Quest
|
|
|
|
#define TXT_ZHAR1 148 // Zhar 1st time
|
|
#define TXT_ZHAR2 149 // Zhar 2nd time
|
|
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
// TOWNSPEOPLE'S NONQUEST
|
|
**-----------------------------------------------------------------------*/
|
|
// Deckard Cain
|
|
#define TXT_STORY1 150
|
|
#define TXT_STORY2 151
|
|
#define TXT_STORY3 152
|
|
#define TXT_STORY4 153
|
|
#define TXT_STORY5 154
|
|
#define TXT_STORY6 155
|
|
#define TXT_STORY7 156
|
|
#define TXT_STORY9 157
|
|
#define TXT_STORY10 158
|
|
#define TXT_STORY11 159
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// Ogden
|
|
#define TXT_OGDEN1 160
|
|
#define TXT_OGDEN2 161
|
|
#define TXT_OGDEN3 162
|
|
#define TXT_OGDEN4 163
|
|
#define TXT_OGDEN5 164
|
|
#define TXT_OGDEN6 165
|
|
#define TXT_OGDEN8 166
|
|
#define TXT_OGDEN9 167
|
|
#define TXT_OGDEN10 168
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// Pepin
|
|
#define TXT_PEPIN1 169
|
|
#define TXT_PEPIN2 170
|
|
#define TXT_PEPIN3 171
|
|
#define TXT_PEPIN4 172
|
|
#define TXT_PEPIN5 173
|
|
#define TXT_PEPIN6 174
|
|
#define TXT_PEPIN7 175
|
|
#define TXT_PEPIN9 176
|
|
#define TXT_PEPIN10 177
|
|
#define TXT_PEPIN11 178
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// Gillian
|
|
#define TXT_GILIAN1 179
|
|
#define TXT_GILIAN2 180
|
|
#define TXT_GILIAN3 181
|
|
#define TXT_GILIAN4 182
|
|
#define TXT_GILIAN5 183
|
|
#define TXT_GILIAN6 184
|
|
#define TXT_GILIAN7 185
|
|
#define TXT_GILIAN9 186
|
|
#define TXT_GILIAN10 187
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// Griswold
|
|
#define TXT_GRIS1 188
|
|
#define TXT_GRIS2 189
|
|
#define TXT_GRIS3 190
|
|
#define TXT_GRIS4 191
|
|
#define TXT_GRIS5 192
|
|
#define TXT_GRIS6 193
|
|
#define TXT_GRIS7 194
|
|
#define TXT_GRIS8 195
|
|
#define TXT_GRIS9 196
|
|
#define TXT_GRIS10 197
|
|
#define TXT_GRIS12 198
|
|
#define TXT_GRIS13 199
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// Farnham
|
|
#define TXT_FARN1 200
|
|
#define TXT_FARN2 201
|
|
#define TXT_FARN3 202
|
|
#define TXT_FARN4 203
|
|
#define TXT_FARN5 204
|
|
#define TXT_FARN6 205
|
|
#define TXT_FARN8 206
|
|
#define TXT_FARN9 207
|
|
#define TXT_FARN10 208
|
|
#define TXT_FARN11 209
|
|
#define TXT_FARN12 210
|
|
#define TXT_FARN13 211
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// Adria
|
|
#define TXT_ADRIA1 212
|
|
#define TXT_ADRIA2 213
|
|
#define TXT_ADRIA3 214
|
|
#define TXT_ADRIA4 215
|
|
#define TXT_ADRIA5 216
|
|
#define TXT_ADRIA6 217
|
|
#define TXT_ADRIA7 218
|
|
#define TXT_ADRIA8 219
|
|
#define TXT_ADRIA9 220
|
|
#define TXT_ADRIA10 221
|
|
#define TXT_ADRIA12 222
|
|
#define TXT_ADRIA13 223
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
// Wirt
|
|
#define TXT_WIRT1 224
|
|
#define TXT_WIRT2 225
|
|
#define TXT_WIRT3 226
|
|
#define TXT_WIRT4 227
|
|
#define TXT_WIRT5 228
|
|
#define TXT_WIRT6 229
|
|
#define TXT_WIRT7 230
|
|
#define TXT_WIRT8 231
|
|
#define TXT_WIRT9 232
|
|
#define TXT_WIRT11 233
|
|
#define TXT_WIRT12 234
|
|
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
// BOOKS and SCROLLS as read by the heroes
|
|
**-----------------------------------------------------------------------*/
|
|
// Warrior
|
|
#define TXT_WARBONE 235 // Skeletal Tome
|
|
#define TXT_WARBLOOD 236 // Book of Blood
|
|
#define TXT_WARBLIND 237 // Book of the Blind
|
|
#define TXT_WARLORD 238 // Steel Tome
|
|
|
|
// Sorcerer
|
|
#define TXT_SORBONE 239 // Skeletal Tome
|
|
#define TXT_SORBLOOD 240 // Book of Blood
|
|
#define TXT_SORBLIND 241 // Book of the Blind
|
|
#define TXT_SORLORD 242 // Steel Tome
|
|
|
|
// Rogue
|
|
#define TXT_ROGBONE 243 // Skeletal Tome
|
|
#define TXT_ROGBLOOD 244 // Book of Blood
|
|
#define TXT_ROGBLIND 245 // Book of the Blind
|
|
#define TXT_ROGLORD 246 // Steel Tome
|
|
|
|
// Monk
|
|
// GWP Fix these if new quests are added.
|
|
#define TXT_MNKBONE 259 // Skeletal Tome
|
|
#define TXT_MNKBLOOD 260 // Book of Blood
|
|
#define TXT_MNKBLIND 261 // Book of the Blind
|
|
#define TXT_MNKLORD 262 // Steel Tome
|
|
|
|
// Bard
|
|
#define TXT_BRDBONE 263 // Skeletal Tome
|
|
#define TXT_BRDBLOOD 264 // Book of Blood
|
|
#define TXT_BRDBLIND 265 // Book of the Blind
|
|
#define TXT_BRDLORD 266 // Steel Tome
|
|
|
|
// Barbarian
|
|
#define TXT_BARBONE TXT_WARBONE
|
|
#define TXT_BARBLOOD TXT_WARBLOOD
|
|
#define TXT_BARBLIND TXT_WARBLIND
|
|
#define TXT_BARLORD TXT_WARLORD
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
#define TXT_COW1 247 // Cow1
|
|
#define TXT_COW2 248 // Cow2
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
**-----------------------------------------------------------------------*/
|
|
#define TXT_BOOK11 249 // Story Book Set 1, Book 1
|
|
#define TXT_BOOK12 250 // Story Book Set 1, Book 2
|
|
#define TXT_BOOK13 251 // Story Book Set 1, Book 3
|
|
#define TXT_BOOK21 252 // Story Book Set 2, Book 1
|
|
#define TXT_BOOK22 253 // Story Book Set 2, Book 2
|
|
#define TXT_BOOK23 254 // Story Book Set 2, Book 3
|
|
#define TXT_BOOK31 255 // Story Book Set 3, Book 1
|
|
#define TXT_BOOK32 256 // Story Book Set 3, Book 2
|
|
#define TXT_BOOK33 257 // Story Book Set 3, Book 3
|
|
|
|
#define TXT_INTRO 258 // Tavern owner intro
|
|
|
|
|
|
//-----------------------------------------------------------------------
|
|
// START OUR QUEST TEXT DEFINES HERE - JKEQUEST
|
|
//-----------------------------------------------------------------------
|
|
#define TXT_CRYPTMAP1 267 // Init text for crypt quest JKE
|
|
#define TXT_CRYPTMAP2 268
|
|
#define TXT_CRYPTMAP3 269
|
|
#define TXT_CRYPTMAP4 270
|
|
#define TXT_CRYPTMAP5 271
|
|
#define TXT_CRYPTMAP6 272
|
|
#define TXT_CRYPTMAP7 273
|
|
#define TXT_CRYPTMAP8 274
|
|
#define TXT_CRYPTMAP9 275
|
|
#define TXT_CRYPTMAP10 276
|
|
|
|
#define TXT_FARMER1 277 // Farmer explosion thing JKE
|
|
#define TXT_FARMER2 278
|
|
#define TXT_FARMER3 279
|
|
#define TXT_FARMER4 280
|
|
#define TXT_FARMER5 281
|
|
#define TXT_FARMER2A 307
|
|
#define TXT_FARMER6 308
|
|
#define TXT_FARMER7 309
|
|
#define TXT_FARMER8 310
|
|
#define TXT_FARMER9 311
|
|
|
|
|
|
#define TXT_THEO1 282 // Theo the teddy bear
|
|
#define TXT_THEO2 283
|
|
#define TXT_THEO3 284
|
|
#define TXT_THEO4 285
|
|
|
|
#define TXT_DEFILER1 286 // The Defiler
|
|
#define TXT_DEFILER2 287
|
|
#define TXT_DEFILER3 288
|
|
#define TXT_DEFILER4 289
|
|
#define TXT_DEFILER5 290
|
|
|
|
#define TXT_NA_KRUL1 291 // Na-Krul
|
|
#define TXT_NA_KRUL2 292
|
|
#define TXT_NA_KRUL3 293
|
|
#define TXT_NA_KRUL4 294
|
|
#define TXT_NA_KRUL5 295
|
|
|
|
#define TXT_CORNERSTONE1 296 // Cornerstone of the world
|
|
|
|
#define TXT_COWSUIT1 297 // Cow suit guy
|
|
#define TXT_COWSUIT2 298
|
|
#define TXT_COWSUIT3 299
|
|
#define TXT_COWSUIT4 300
|
|
#define TXT_COWSUIT4A 315
|
|
#define TXT_COWSUIT5 301
|
|
#define TXT_COWSUIT6 302
|
|
#define TXT_COWSUIT7 303
|
|
#define TXT_COWSUIT8 304
|
|
#define TXT_COWSUIT9 305
|
|
#define TXT_COWSUIT10 312
|
|
#define TXT_COWSUIT11 313
|
|
#define TXT_COWSUIT12 314
|
|
|
|
#define TXT_TRADER1 306
|
|
|
|
#define TXT_SKULLJRNL1 316
|
|
#define TXT_SKULLJRNL2 317
|
|
#define TXT_SKULLJRNL3 318
|
|
#define TXT_SKULLJRNL4 319
|
|
#define TXT_SKULLJRNL5 320
|
|
#define TXT_SKULLJRNL6 321
|
|
#define TXT_SKULLJRNL7 322
|
|
|
|
#define TXT_SPELL1 323
|
|
#define TXT_SPELL2 324
|
|
#define TXT_SPELL3 325
|
|
|
|
#define TXT_M_SPELL1 326
|
|
#define TXT_M_SPELL2 327
|
|
#define TXT_M_SPELL3 328
|
|
|
|
#define TXT_S_SPELL1 329
|
|
#define TXT_S_SPELL2 330
|
|
#define TXT_S_SPELL3 331
|
|
|
|
#define TXT_R_SPELL1 332
|
|
#define TXT_R_SPELL2 333
|
|
#define TXT_R_SPELL3 334
|
|
|
|
#define TXT_B_SPELL1 335
|
|
#define TXT_B_SPELL2 336
|
|
#define TXT_B_SPELL3 337
|
|
|
|
#define TXT_C_SPELL1 TXT_SPELL1
|
|
#define TXT_C_SPELL2 TXT_SPELL2
|
|
#define TXT_C_SPELL3 TXT_SPELL3
|
|
|
|
|
|
/*-----------------------------------------------------------------------**
|
|
** Externs
|
|
**-----------------------------------------------------------------------*/
|
|
extern const TextDataStruct alltext[];
|
|
extern const DWORD gdwAllTextEntries;
|