Browse Source

Clean up NextPlrLevel

pull/4/head
Anders Jenbo 8 years ago committed by Dennis Duda
parent
commit
e750efcfce
  1. 81
      Source/player.cpp

81
Source/player.cpp

@ -867,56 +867,45 @@ int __fastcall CalcStatDiff(int pnum)
void __fastcall NextPlrLevel(int pnum)
{
int v1; // edi
int v2; // esi
char *v3; // eax
char v4; // bl
int v5; // eax
char v6; // bl
char v7; // al
signed int v8; // edx
int v9; // ebp
signed int v10; // eax
int v11; // edx
v1 = pnum;
if ( (unsigned int)pnum >= MAX_PLRS )
if ( (DWORD)pnum >= MAX_PLRS ) {
TermMsg("NextPlrLevel: illegal player %d", pnum);
v2 = v1;
v3 = &plr[v1]._pLevel;
v4 = ++*v3;
++plr[v2]._pMaxLvl;
if ( CalcStatDiff(v1) >= 5 )
plr[v2]._pStatPts += 5;
else
plr[v2]._pStatPts = CalcStatDiff(v1);
v5 = v4;
v6 = gbMaxPlayers;
plr[v2]._pNextExper = ExpLvlsTbl[v5];
v7 = plr[v2]._pClass;
v8 = v7 != 2 ? 128 : 64;
if ( v6 == 1 )
v8 = v7 != 2 ? 129 : 65;
v9 = myplr;
plr[v2]._pMaxHP += v8;
plr[v2]._pHitPoints = plr[v2]._pMaxHP;
plr[v2]._pMaxHPBase += v8;
plr[v2]._pHPBase = plr[v2]._pMaxHPBase;
if ( v1 == v9 )
}
char l = ++plr[pnum]._pLevel;
plr[pnum]._pMaxLvl++;
if ( CalcStatDiff(pnum) < 5 ) {
plr[pnum]._pStatPts = CalcStatDiff(pnum);
} else {
plr[pnum]._pStatPts += 5;
}
plr[pnum]._pNextExper = ExpLvlsTbl[l];
char c = plr[pnum]._pClass;
int hp = c == PC_SORCERER ? 64 : 128;
if ( gbMaxPlayers == 1 ) {
hp++;
}
plr[pnum]._pMaxHP += hp;
plr[pnum]._pHitPoints = plr[pnum]._pMaxHP;
plr[pnum]._pMaxHPBase += hp;
plr[pnum]._pHPBase = plr[pnum]._pMaxHPBase;
if ( pnum == myplr ) {
drawhpflag = 1;
v10 = v7 != 0 ? 128 : 64;
if ( v6 == 1 )
++v10;
plr[v2]._pMaxMana += v10;
plr[v2]._pMaxManaBase += v10;
v11 = plr[v2]._pMaxManaBase;
if ( !(plr[v1]._pIFlags & 0x8000000) )
{
plr[v2]._pMana = plr[v2]._pMaxMana;
plr[v2]._pManaBase = v11;
}
if ( v1 == v9 )
int mana = c != PC_WARRIOR ? 128 : 64;
if ( gbMaxPlayers == 1 ) {
++mana;
}
plr[pnum]._pMaxMana += mana;
plr[pnum]._pMaxManaBase += mana;
if ( !(plr[pnum]._pIFlags & ISPL_NOMANA) ) {
plr[pnum]._pMana = plr[pnum]._pMaxMana;
plr[pnum]._pManaBase = plr[pnum]._pMaxManaBase;
}
if ( pnum == myplr ) {
drawmanaflag = 1;
}
}
// 679660: using guessed type char gbMaxPlayers;

Loading…
Cancel
Save