Browse Source

Clean up CheckStats (#335)

pull/4/head
Anders Jenbo 8 years ago committed by Robin Eklind
parent
commit
ed2626e6d8
  1. 139
      Source/player.cpp

139
Source/player.cpp

@ -3928,110 +3928,51 @@ void __fastcall SyncInitPlr(int pnum)
void __fastcall CheckStats(int pnum)
{
int v1; // esi
int v2; // eax
char v3; // cl
signed int v4; // esi
signed int v5; // edi
int v6; // edx
int v7; // ecx
int v8; // edx
int v9; // ecx
int v10; // edx
int v11; // ecx
int v12; // edx
int v13; // ecx
//signed int v14; // [esp+Ch] [ebp-4h]
v1 = pnum;
if ( (unsigned int)pnum >= MAX_PLRS )
if ( (DWORD)pnum >= MAX_PLRS ) {
TermMsg("CheckStats: illegal player %d", pnum);
v2 = v1;
v3 = plr[v1]._pClass;
if ( v3 )
{
if ( v3 == 1 )
{
v4 = 1;
}
else if ( v3 == 2 )
{
v4 = 2;
}
/*else
{
v4 = v14;
}*/
}
else
{
v4 = 0;
int c;
if ( plr[pnum]._pClass == PC_WARRIOR ) {
c = PC_WARRIOR;
} else if ( plr[pnum]._pClass == PC_ROGUE ) {
c = PC_ROGUE;
} else if ( plr[pnum]._pClass == PC_SORCERER ) {
c = PC_SORCERER;
}
v5 = 0;
do
{
if ( v5 )
{
switch ( v5 )
{
case ATTRIB_MAG:
v10 = plr[v2]._pBaseMag;
v11 = MaxStats[v4][1];
if ( v10 <= v11 )
{
if ( v10 < 0 )
plr[v2]._pBaseMag = 0;
}
else
{
plr[v2]._pBaseMag = v11;
}
break;
case ATTRIB_DEX:
v8 = plr[v2]._pBaseDex;
v9 = MaxStats[v4][2];
if ( v8 <= v9 )
{
if ( v8 < 0 )
plr[v2]._pBaseDex = 0;
}
else
{
plr[v2]._pBaseDex = v9;
}
break;
case ATTRIB_VIT:
v6 = plr[v2]._pBaseVit;
v7 = MaxStats[v4][3];
if ( v6 <= v7 )
{
if ( v6 < 0 )
plr[v2]._pBaseVit = 0;
}
else
{
plr[v2]._pBaseVit = v7;
}
break;
}
}
else
{
v12 = plr[v2]._pBaseStr;
v13 = MaxStats[v4][0];
if ( v12 <= v13 )
{
if ( v12 < 0 )
plr[v2]._pBaseStr = 0;
}
else
{
plr[v2]._pBaseStr = v13;
}
for (int i = 0; i < 4; i++ ) {
switch (i) {
case ATTRIB_STR:
if ( plr[pnum]._pBaseStr > MaxStats[c][ATTRIB_STR] ) {
plr[pnum]._pBaseStr = MaxStats[c][ATTRIB_STR];
} else if ( plr[pnum]._pBaseStr < 0 ) {
plr[pnum]._pBaseStr = 0;
}
break;
case ATTRIB_MAG:
if ( plr[pnum]._pBaseMag > MaxStats[c][ATTRIB_MAG] ) {
plr[pnum]._pBaseMag = MaxStats[c][ATTRIB_MAG];
} else if ( plr[pnum]._pBaseMag < 0 ) {
plr[pnum]._pBaseMag = 0;
}
break;
case ATTRIB_DEX:
if ( plr[pnum]._pBaseDex > MaxStats[c][ATTRIB_DEX] ) {
plr[pnum]._pBaseDex = MaxStats[c][ATTRIB_DEX];
} else if ( plr[pnum]._pBaseDex < 0 ) {
plr[pnum]._pBaseDex = 0;
}
break;
case ATTRIB_VIT:
if ( plr[pnum]._pBaseVit > MaxStats[c][ATTRIB_VIT] ) {
plr[pnum]._pBaseVit = MaxStats[c][ATTRIB_VIT];
} else if ( plr[pnum]._pBaseVit < 0 ) {
plr[pnum]._pBaseVit = 0;
}
break;
}
++v5;
}
while ( v5 < 4 );
}
void __fastcall ModifyPlrStr(int pnum, int l)

Loading…
Cancel
Save