# HG changeset patch # User Grumpy7 # Date 1379837040 -7200 # Node ID 861ede68187abb3ee2231cb16a0760164789072e # Parent 92732b6fc19697351eb611f928561c7874671077 Player::_48DCF6 renamed to Player::ReceiveSpecialAttackEffect, some case reordering, fixing getting only disease3 instead of disease1 and ignoring disease2 and 3, uSpecialAttack to uSpecialAttackType, uSpecialAttackType to uSpecialAttackLevel diff -r 92732b6fc196 -r 861ede68187a Monsters.cpp --- a/Monsters.cpp Sun Sep 22 09:36:38 2013 +0200 +++ b/Monsters.cpp Sun Sep 22 10:04:00 2013 +0200 @@ -893,8 +893,8 @@ { int str_len=0; int str_pos=0; - pInfos[curr_rec_num].uSpecialAttackType=1; - pInfos[curr_rec_num].uSpecialAttack=0; + pInfos[curr_rec_num].uSpecialAttackLevel=1; + pInfos[curr_rec_num].uSpecialAttackType=0; str_len=strlen(test_string); if (str_len>1) { @@ -903,12 +903,12 @@ if (tolower(test_string[str_pos])=='x') { test_string[str_pos]='\0'; - pInfos[curr_rec_num].uSpecialAttackType=atoi(&test_string[str_pos+1]); + pInfos[curr_rec_num].uSpecialAttackLevel=atoi(&test_string[str_pos+1]); test_string[str_pos]='x'; break; } } - pInfos[curr_rec_num].uSpecialAttack=ParseSpecialAttack(test_string); + pInfos[curr_rec_num].uSpecialAttackType=ParseSpecialAttack(test_string); } } break; diff -r 92732b6fc196 -r 861ede68187a Monsters.h --- a/Monsters.h Sun Sep 22 09:36:38 2013 +0200 +++ b/Monsters.h Sun Sep 22 10:04:00 2013 +0200 @@ -114,8 +114,8 @@ unsigned __int8 uAIType; HostilityRadius uHostilityType; char field_12; - unsigned __int8 uSpecialAttack; unsigned __int8 uSpecialAttackType; + unsigned __int8 uSpecialAttackLevel; unsigned __int8 uAttack1Type; unsigned __int8 uAttack1DamageDiceRolls; unsigned __int8 uAttack1DamageDiceSides; diff -r 92732b6fc196 -r 861ede68187a Player.cpp --- a/Player.cpp Sun Sep 22 09:36:38 2013 +0200 +++ b/Player.cpp Sun Sep 22 10:04:00 2013 +0200 @@ -2470,6 +2470,18 @@ return 1; break; case 9: + SetCondition(Condition_Disease1, 1); + pAudioPlayer->PlaySound((SoundID)222, 0, 0, -1, 0, 0, 0, 0); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + break; + case 10: + SetCondition(Condition_Disease2, 1); + pAudioPlayer->PlaySound((SoundID)222, 0, 0, -1, 0, 0, 0, 0); + pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); + return 1; + break; + case 11: SetCondition(Condition_Disease3, 1); pAudioPlayer->PlaySound((SoundID)222, 0, 0, -1, 0, 0, 0, 0); pGame->pStru6Instance->SetPlayerBuffAnim(0x99u, v3); @@ -7493,10 +7505,10 @@ } } if ( !(dword_6BE368_debug_settings_2 & 0x10) - && actorPtr->pMonsterInfo.uSpecialAttack - && rand() % 100 < actorPtr->pMonsterInfo.uLevel * actorPtr->pMonsterInfo.uSpecialAttackType ) - { - playerPtr->_48DCF6(actorPtr->pMonsterInfo.uSpecialAttack, actorPtr); + && actorPtr->pMonsterInfo.uSpecialAttackType + && rand() % 100 < actorPtr->pMonsterInfo.uLevel * actorPtr->pMonsterInfo.uSpecialAttackLevel ) + { + playerPtr->_48DCF6(actorPtr->pMonsterInfo.uSpecialAttackType, actorPtr); } } if ( !pParty->bTurnBasedModeOn ) @@ -7684,10 +7696,10 @@ } if ( !element && !(dword_6BE368_debug_settings_2 & 0x10) - && actorPtr->pMonsterInfo.uSpecialAttack - && rand() % 100 < actorPtr->pMonsterInfo.uLevel * actorPtr->pMonsterInfo.uSpecialAttackType ) - { - playerPtr->_48DCF6(actorPtr->pMonsterInfo.uSpecialAttack, actorPtr); + && actorPtr->pMonsterInfo.uSpecialAttackType + && rand() % 100 < actorPtr->pMonsterInfo.uLevel * actorPtr->pMonsterInfo.uSpecialAttackLevel ) + { + playerPtr->_48DCF6(actorPtr->pMonsterInfo.uSpecialAttackType, actorPtr); } if ( !pParty->bTurnBasedModeOn ) {