|
|
|
|
@ -23,7 +23,26 @@ int plr_dframe_size;
|
|
|
|
|
|
|
|
|
|
const char ArmourChar[4] = { 'L', 'M', 'H', 0 }; |
|
|
|
|
const char WepChar[10] = { 'N', 'U', 'S', 'D', 'B', 'A', 'M', 'H', 'T', 0 }; |
|
|
|
|
const char CharChar[4] = { 'W', 'R', 'S', 0 }; |
|
|
|
|
const char CharChar[] = { |
|
|
|
|
'W', |
|
|
|
|
'R', |
|
|
|
|
'S', |
|
|
|
|
#ifdef HELLFIRE |
|
|
|
|
'M', |
|
|
|
|
'R', |
|
|
|
|
'W', |
|
|
|
|
0 |
|
|
|
|
}; |
|
|
|
|
const char CharCharHF[] = { |
|
|
|
|
'W', |
|
|
|
|
'R', |
|
|
|
|
'S', |
|
|
|
|
'M', |
|
|
|
|
'B', |
|
|
|
|
'C', |
|
|
|
|
#endif |
|
|
|
|
0 |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/* data */ |
|
|
|
|
|
|
|
|
|
@ -50,7 +69,16 @@ int MagicTbl[3] = { 10, 15, 35 };
|
|
|
|
|
int DexterityTbl[3] = { 20, 30, 15 }; |
|
|
|
|
int VitalityTbl[3] = { 25, 20, 20 }; |
|
|
|
|
int ToBlkTbl[3] = { 30, 20, 10 }; |
|
|
|
|
char *ClassStrTblOld[3] = { "Warrior", "Rogue", "Sorceror" }; // unused
|
|
|
|
|
char *ClassStrTblOld[] = { |
|
|
|
|
"Warrior", |
|
|
|
|
"Rogue", |
|
|
|
|
"Sorceror", |
|
|
|
|
#ifdef HELLFIRE |
|
|
|
|
"Monk", |
|
|
|
|
"Bard", |
|
|
|
|
"Barbarian", |
|
|
|
|
#endif |
|
|
|
|
}; |
|
|
|
|
int MaxStats[3][4] = { |
|
|
|
|
{ 250, 50, 60, 100 }, |
|
|
|
|
{ 55, 70, 250, 80 }, |
|
|
|
|
@ -109,7 +137,16 @@ int ExpLvlsTbl[MAXCHARLEVEL] = {
|
|
|
|
|
1310707109, |
|
|
|
|
1583495809 |
|
|
|
|
}; |
|
|
|
|
char *ClassStrTbl[3] = { "Warrior", "Rogue", "Sorceror" }; |
|
|
|
|
char *ClassStrTbl[] = { |
|
|
|
|
"Warrior", |
|
|
|
|
"Rogue", |
|
|
|
|
"Sorceror", |
|
|
|
|
#ifdef HELLFIRE |
|
|
|
|
"Monk", |
|
|
|
|
"Rogue", |
|
|
|
|
"Warrior", |
|
|
|
|
#endif |
|
|
|
|
}; |
|
|
|
|
BYTE fix[9] = { 0, 0, 3, 3, 3, 6, 6, 6, 8 }; /* PM_ChangeLightOff local type */ |
|
|
|
|
|
|
|
|
|
void SetPlayerGPtrs(BYTE *pData, BYTE **pAnim) |
|
|
|
|
@ -136,8 +173,18 @@ void LoadPlrGFX(int pnum, player_graphic gfxflag)
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
p = &plr[pnum]; |
|
|
|
|
sprintf(prefix, "%c%c%c", CharChar[p->_pClass], ArmourChar[p->_pgfxnum >> 4], WepChar[p->_pgfxnum & 0xF]); |
|
|
|
|
cs = ClassStrTbl[p->_pClass]; |
|
|
|
|
#ifdef HELLFIRE |
|
|
|
|
if ((p->_pClass != PC_BARD || hfbard_mpq == NULL) && (p->_pClass != PC_BARBARIAN || hfbarb_mpq == NULL)) { |
|
|
|
|
#endif |
|
|
|
|
sprintf(prefix, "%c%c%c", CharChar[p->_pClass], ArmourChar[p->_pgfxnum >> 4], WepChar[p->_pgfxnum & 0xF]); |
|
|
|
|
cs = ClassStrTbl[p->_pClass]; |
|
|
|
|
#ifdef HELLFIRE |
|
|
|
|
} else { |
|
|
|
|
sprintf(prefix, "%c%c%c", CharCharHF[p->_pClass], ArmourChar[p->_pgfxnum >> 4], WepChar[p->_pgfxnum & 0xF]); |
|
|
|
|
cs = ClassStrTbl[p->_pClass]; |
|
|
|
|
cs = ClassStrTblOld[p->_pClass]; |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
for (i = 1; i <= PFILE_NONDEATH; i <<= 1) { |
|
|
|
|
if (!(i & gfxflag)) { |
|
|
|
|
|