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) void __fastcall NextPlrLevel(int pnum)
{ {
int v1; // edi if ( (DWORD)pnum >= MAX_PLRS ) {
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 )
TermMsg("NextPlrLevel: illegal player %d", pnum); TermMsg("NextPlrLevel: illegal player %d", pnum);
v2 = v1; }
v3 = &plr[v1]._pLevel;
v4 = ++*v3; char l = ++plr[pnum]._pLevel;
++plr[v2]._pMaxLvl; plr[pnum]._pMaxLvl++;
if ( CalcStatDiff(v1) >= 5 ) if ( CalcStatDiff(pnum) < 5 ) {
plr[v2]._pStatPts += 5; plr[pnum]._pStatPts = CalcStatDiff(pnum);
else } else {
plr[v2]._pStatPts = CalcStatDiff(v1); plr[pnum]._pStatPts += 5;
v5 = v4; }
v6 = gbMaxPlayers;
plr[v2]._pNextExper = ExpLvlsTbl[v5]; plr[pnum]._pNextExper = ExpLvlsTbl[l];
v7 = plr[v2]._pClass;
v8 = v7 != 2 ? 128 : 64; char c = plr[pnum]._pClass;
if ( v6 == 1 ) int hp = c == PC_SORCERER ? 64 : 128;
v8 = v7 != 2 ? 129 : 65; if ( gbMaxPlayers == 1 ) {
v9 = myplr; hp++;
plr[v2]._pMaxHP += v8; }
plr[v2]._pHitPoints = plr[v2]._pMaxHP; plr[pnum]._pMaxHP += hp;
plr[v2]._pMaxHPBase += v8; plr[pnum]._pHitPoints = plr[pnum]._pMaxHP;
plr[v2]._pHPBase = plr[v2]._pMaxHPBase; plr[pnum]._pMaxHPBase += hp;
if ( v1 == v9 ) plr[pnum]._pHPBase = plr[pnum]._pMaxHPBase;
if ( pnum == myplr ) {
drawhpflag = 1; 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; drawmanaflag = 1;
}
} }
// 679660: using guessed type char gbMaxPlayers; // 679660: using guessed type char gbMaxPlayers;

Loading…
Cancel
Save