comparison Player.cpp @ 1008:446175a32a15

player math fix
author Gloval
date Sat, 18 May 2013 22:41:26 +0400
parents e865f349aa41
children f73e1a219d38
comparison
equal deleted inserted replaced
1007:7e4045b6f191 1008:446175a32a15
1980 { 1980 {
1981 v6 = 5; 1981 v6 = 5;
1982 } 1982 }
1983 else 1983 else
1984 { 1984 {
1985 if ( v1 >= 0 ) 1985 if ( (v1&0xFF) >= 0 )
1986 { 1986 {
1987 v4 = ((v1 & 0x40) != 0) + 1; 1987 v4 = ((v1 & 0x40) != 0) + 1;
1988 return v2 * v4; 1988 return v2 * v4;
1989 } 1989 }
1990 v6 = 3; 1990 v6 = 3;
1995 1995
1996 //----- (004910A8) -------------------------------------------------------- 1996 //----- (004910A8) --------------------------------------------------------
1997 int Player::GetMeditation() 1997 int Player::GetMeditation()
1998 { 1998 {
1999 char v1; // al@1 1999 char v1; // al@1
2000 int v2; // ecx@1 2000 int base_level; // ecx@1
2001 int v4; // eax@3 2001 int v4; // eax@3
2002 signed int v6; // [sp-4h] [bp-4h]@2 2002 signed int v6; // [sp-4h] [bp-4h]@2
2003 2003
2004 v1 = GetActualSkillLevel(PLAYER_SKILL_MEDITATION); 2004 v1 = GetActualSkillLevel(PLAYER_SKILL_MEDITATION);
2005 v2 = v1 & 0x3F; 2005 base_level = v1 & 0x3F;
2006 if ( v1 & 0x100 ) 2006 if ( v1 & 0x100 )
2007 { 2007 {
2008 v6 = 5; 2008 v6 = 5;
2009 } 2009 }
2010 else 2010 else
2011 { 2011 {
2012 if ( v1 >= 0 ) 2012 if ( (v1&0xFF) >= 0 )
2013 { 2013 {
2014 v4 = ((v1 & 0x40) != 0) + 1; 2014 v4 = ((v1 & 0x40) != 0) + 1;
2015 return v2 * v4; 2015 return base_level * v4;
2016 } 2016 }
2017 v6 = 3; 2017 v6 = 3;
2018 } 2018 }
2019 v4 = v6; 2019 v4 = v6;
2020 return v2 * v4; 2020 return base_level * v4;
2021 } 2021 }
2022 2022
2023 //----- (004910D3) -------------------------------------------------------- 2023 //----- (004910D3) --------------------------------------------------------
2024 int Player::CanIdentify(ItemGen *pItem) 2024 int Player::CanIdentify(ItemGen *pItem)
2025 { 2025 {
5642 } 5642 }
5643 return result; 5643 return result;
5644 } 5644 }
5645 5645
5646 //----- (0048F882) -------------------------------------------------------- 5646 //----- (0048F882) --------------------------------------------------------
5647 char Player::GetActualSkillLevel(PLAYER_SKILL_TYPE uSkillType) 5647 int Player::GetActualSkillLevel( PLAYER_SKILL_TYPE uSkillType )
5648 { 5648 {
5649 signed int v2; // esi@1 5649 signed int v2; // esi@1
5650 unsigned __int16 v3; // ax@126 5650 unsigned __int16 v3; // ax@126
5651 char result; // al@127 5651 char result; // al@127
5652 unsigned int v5; // [sp-4h] [bp-14h]@13 5652 unsigned int v5; // [sp-4h] [bp-14h]@13
5653 signed int v6; // [sp-4h] [bp-14h]@27 5653 signed int v6; // [sp-4h] [bp-14h]@27
5873 } 5873 }
5874 break; 5874 break;
5875 } 5875 }
5876 5876
5877 v3 = pActiveSkills[uSkillType]; 5877 v3 = pActiveSkills[uSkillType];
5878 if ( v2 + (pActiveSkills[uSkillType] & 0x3F) < 60 ) 5878 if ( v2 + (v3 & 0x3F) < 60 )
5879 result = v2 + v3; 5879 result = v2 + v3;
5880 else 5880 else
5881 result = v3 & 0xFC | 0x3C; 5881 result = v3 & 0xFFFC | 0x3C; //al
5882 return result; 5882 return result;
5883 } 5883 }
5884 5884
5885 //----- (0048FC00) -------------------------------------------------------- 5885 //----- (0048FC00) --------------------------------------------------------
5886 int Player::GetSkillBonus(enum CHARACTER_ATTRIBUTE_TYPE a2) 5886 int Player::GetSkillBonus(enum CHARACTER_ATTRIBUTE_TYPE a2)