# HG changeset patch # User Grumpy7 # Date 1381204004 -7200 # Node ID 1641ab7f21ec77edb09783291ab61945f4eef6de # Parent 253194aba8b8137830cb52d3afab780a1362e2ab Player::SubtractVariable moving everything to one switch diff -r 253194aba8b8 -r 1641ab7f21ec Player.cpp --- a/Player.cpp Mon Oct 07 07:56:07 2013 +0200 +++ b/Player.cpp Tue Oct 08 05:46:44 2013 +0200 @@ -6619,418 +6619,192 @@ v4 = 2; else if ( this == pPlayers[4] ) v4 = 3; - - v3 = 0; - result = false; - if ( VarNum >= VAR_AutoNotes ) - { - if ( VarNum <= VAR_NumDeaths ) - { - if ( VarNum == VAR_NumDeaths ) - { + + + + + if ( VarNum >= VAR_MapPersistentVariable_0 && VarNum <= VAR_MapPersistentVariable_99 ) + { + + byte_5E4C15[VarNum] -= (char)pValue; + return false; + } + + switch (VarNum) + { + case VAR_NumDeaths: pParty->uNumDeaths -= (unsigned int)pValue; return pValue; - } - if ( VarNum == VAR_AutoNotes ) + case VAR_AutoNotes: + v11 = (char *)pParty->_autonote_bits; + v22 = (short)pValue - 1; + _449B7E_toggle_bit((unsigned char *)v11, v22, 0); + return result; + + case VAR_NPCs2: + v18 = 0; + GetNewNPCData(sDialogue_SpeakingActorNPC_ID, &v18); + result = (bool) pValue; + if ( v18 == pValue ) { - v11 = (char *)pParty->_autonote_bits; - v22 = (short)pValue - 1; + npcIdToDismissAfterDialogue = pValue; } else { - if ( VarNum != VAR_PlayerBits ) + npcIdToDismissAfterDialogue = 0; + pParty->hirelingScrollPosition = 0; + LOBYTE(pNPCStats->pNewNPCData[(int)pValue].uFlags) &= 0x7Fu; + pParty->CountHirelings(); + viewparams->bRedrawGameUI = true; + } + return result; + break; + case VAR_HiredNPCHasSpeciality: + if ( (signed int)pNPCStats->uNumNewNPCs > 0 ) + { + v20 = (char *)&pNPCStats->pNewNPCData[0].uFlags; + for ( v19 = 0; v19 < (signed int)pNPCStats->uNumNewNPCs; ++v19 ) { - switch ( VarNum ) + if ( *((void **)v20 + 4) == (void *)pValue ) { - case VAR_NPCs2: - v18 = 0; - GetNewNPCData(sDialogue_SpeakingActorNPC_ID, &v18); - result = (bool) pValue; - if ( v18 == pValue ) - { - npcIdToDismissAfterDialogue = pValue; - } - else - { - npcIdToDismissAfterDialogue = 0; - pParty->hirelingScrollPosition = 0; - LOBYTE(pNPCStats->pNewNPCData[(int)pValue].uFlags) &= 0x7Fu; - pParty->CountHirelings(); - viewparams->bRedrawGameUI = true; - } - break; - case VAR_HiredNPCHasSpeciality: - if ( (signed int)pNPCStats->uNumNewNPCs > 0 ) - { - v20 = (char *)&pNPCStats->pNewNPCData[0].uFlags; - for ( v19 = 0; v19 < (signed int)pNPCStats->uNumNewNPCs; ++v19 ) - { - if ( *((void **)v20 + 4) == (void *)pValue ) - { - v21 = *(int *)v20; - if ( (char)*(int *)v20 < 0 ) - { - LOBYTE(v21) = v21 & 0x7F; - *(int *)v20 = v21; - } - } - v20 += 76; - } - } - if ( pParty->pHirelings[0].uProfession == pValue ) - memset(pParty->pHirelings, 0, 0x4Cu); - if ( pParty->pHirelings[1].uProfession == pValue ) - memset(&pParty->pHirelings[1], 0, 0x4Cu); - pParty->hirelingScrollPosition = 0; - pParty->CountHirelings(); - break; - case VAR_NumSkillPoints: - v17 = (char *)&this->uSkillPoints; - result = *v17 != NULL; - if ( (unsigned int)pValue <= *(int *)v17 ) - { - *(int *)v17 -= (int)pValue; - result = (v17 != NULL); - } - else - *(int *)v17 = 0; - break; - case VAR_ReputationInCurrentLocation: - v16 = (char *)&pOutdoor->ddm; - if ( uCurrentlyLoadedLevelType != LEVEL_Outdoor ) - v16 = (char *)&pIndoor->dlv; - *((int *)v16 + 2) -= (int)pValue; - if ( *((int *)v16 + 2) < -10000 ) - *((int *)v16 + 2) = -10000; - break; - case VAR_GoldInBank: - result = VarNum - 306; - if ( (unsigned int)pValue <= pParty->uNumGoldInBank ) - { - result = (bool)pValue; - pParty->uNumGoldInBank -= (unsigned int)pValue; - } - else -LABEL_88: - dword_5B65C4 = 1; - break; + v21 = *(int *)v20; + if ( (char)*(int *)v20 < 0 ) + { + LOBYTE(v21) = v21 & 0x7F; + *(int *)v20 = v21; + } } - return result; + v20 += 76; } - v11 = this->field_1A50; - v22 = (signed __int16)pValue; } - _449B7E_toggle_bit((unsigned char *)v11, v22, 0); + if ( pParty->pHirelings[0].uProfession == pValue ) + memset(pParty->pHirelings, 0, 0x4Cu); + if ( pParty->pHirelings[1].uProfession == pValue ) + memset(&pParty->pHirelings[1], 0, 0x4Cu); + pParty->hirelingScrollPosition = 0; + pParty->CountHirelings(); return result; - } - switch ( VarNum ) - { - case VAR_NumBounties: - result = (bool)pValue; - pParty->uNumBountiesCollected -= (unsigned int)pValue; - break; - case VAR_PrisonTerms: - result = (bool)pValue; - pParty->uNumPrisonTerms -= (int)pValue; - break; - case VAR_ArenaWinsPage: - result = (bool)pValue; - pParty->uNumArenaPageWins -= (char)pValue; - break; - case VAR_ArenaWinsSquire: - result = (bool)pValue; - pParty->uNumArenaSquireWins -= (char)pValue; - break; - case VAR_ArenaWinsKnight: - result = (bool)pValue; - pParty->uNumArenaKnightWins -= (char)pValue; - break; - case VAR_ArenaWinsLord: - result = (bool)pValue; - pParty->uNumArenaLordWins -= (char)pValue; - break; - } - Error("Function not returning any value! (%u)", VarNum); - } - else - { - if ( VarNum >= VAR_MapPersistentVariable_0 ) - { - byte_5E4C15[VarNum] -= (char)pValue; - } - else - { - switch ( VarNum ) + break; + + case VAR_NumSkillPoints: + v17 = (char *)&this->uSkillPoints; + result = *v17 != NULL; + if ( (unsigned int)pValue <= *(int *)v17 ) + { + *(int *)v17 -= (int)pValue; + result = (v17 != NULL); + } + else + *(int *)v17 = 0; + return result; + break; + case VAR_ReputationInCurrentLocation: + v16 = (char *)&pOutdoor->ddm; + if ( uCurrentlyLoadedLevelType != LEVEL_Outdoor ) + v16 = (char *)&pIndoor->dlv; + *((int *)v16 + 2) -= (int)pValue; + if ( *((int *)v16 + 2) < -10000 ) + *((int *)v16 + 2) = -10000; + return result; + break; + case VAR_GoldInBank: + result = VarNum - 306; + if ( (unsigned int)pValue <= pParty->uNumGoldInBank ) + { + result = (bool)pValue; + pParty->uNumGoldInBank -= (unsigned int)pValue; + } + else { - case VAR_RandomGold: - v6 = rand() % (signed int)pValue + 1; - if ( v6 > pParty->uNumGold ) - v6 = pParty->uNumGold; - Party::TakeGold(v6); - sprintf(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[503], v6); - ShowStatusBarString(pTmpBuf.data(), 2); - GameUI_DrawFoodAndGold(); - return result; - case VAR_RandomFood: - v7 = rand() % (signed int)pValue + 1; - if ( v7 > pParty->uNumFoodRations ) - v7 = pParty->uNumFoodRations; - Party::TakeFood(v7); - sprintf(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[504], v7); - ShowStatusBarString(pTmpBuf.data(), 2u); - GameUI_DrawFoodAndGold(); - PlayAwardSound_Anim98(v4); - return result; - case VAR_CurrentHP: - ReceiveDamage((signed int)pValue, DMGT_PHISYCAL); - PlayAwardSound_Anim98(v4); - return result; - case VAR_CurrentSP: - this->sMana = max(this->sMana - pValue, 0); - PlayAwardSound_Anim98(v4); - return result; - case VAR_ACModifier: - this->sACModifier -= (unsigned __int8)pValue; - PlayAwardSound_Anim98(v4); - return result; - case VAR_BaseLevel: - this->uLevel -= (unsigned __int8)pValue; - PlayAwardSound_Anim98(v4); - return result; - case VAR_LevelModifier: - this->sLevelModifier -= (unsigned __int8)pValue; - PlayAwardSound_Anim98(v4); - return result; - case VAR_Age: - this->sAgeModifier -= (signed __int16)pValue; - return result; - case VAR_Award: - _449B7E_toggle_bit(this->_achieved_awards_bits, (signed __int16)pValue, 0); - return result; - case VAR_Experience: - this->uExperience -= pValue; - PlayAwardSound_Anim98(v4); - return result; - case VAR_QBits_QuestsDone: - _449B7E_toggle_bit(pParty->_quest_bits, (__int16)pValue, 0); - this->PlaySound(SPEECH_96, 0); - return true; - case VAR_PlayerItemInHands: - v15 = this->pInventoryMatrix; - break; - case VAR_FixedGold: - if ( (unsigned int)pValue > pParty->uNumGold ) - goto LABEL_88; - Party::TakeGold((unsigned int)pValue); - return result; - case VAR_MightBonus: - case VAR_ActualMight: - this->uMightBonus -= (unsigned __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); - return result; - case VAR_IntellectBonus: - case VAR_ActualIntellect: - this->uIntelligenceBonus -= (unsigned __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); - return result; - case VAR_PersonalityBonus: - case VAR_ActualPersonality: - this->uWillpowerBonus -= (unsigned __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); - return result; - case VAR_EnduranceBonus: - case VAR_ActualEndurance: - this->uEnduranceBonus -= (unsigned __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); - return result; - case VAR_SpeedBonus: - case VAR_ActualSpeed: - this->uSpeedBonus -= (unsigned __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); - return result; - case VAR_AccuracyBonus: - case VAR_ActualAccuracy: - this->uAccuracyBonus -= (unsigned __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); - return result; - case VAR_LuckBonus: - case VAR_ActualLuck: - this->uLuckBonus -= (unsigned __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); - return result; - case VAR_BaseMight: - this->uMight -= (unsigned __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); - return result; - case VAR_BaseIntellect: - this->uIntelligence -= (unsigned __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); - return result; - case VAR_BasePersonality: - this->uWillpower -= (unsigned __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); - return result; - case VAR_BaseEndurance: - this->uEndurance -= (unsigned __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); - return result; - case VAR_BaseSpeed: - this->uSpeed -= (unsigned __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); - return result; - case VAR_BaseAccuracy: - this->uAccuracy -= (unsigned __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); - return result; - case VAR_BaseLuck: - this->uLuck -= (unsigned __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); - return result; - case VAR_FireResistance: - this->sResFireBase -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); - return result; - case VAR_AirResistance: - this->sResAirBase -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); - return result; - case VAR_WaterResistance: - this->sResWaterBase -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); - return result; - case VAR_EarthResistance: - this->sResEarthBase -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); - return result; - case VAR_SpiritResistance: - this->sResSpiritBase -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); - return result; - case VAR_MindResistance: - this->sResMindBase -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); - return result; - case VAR_BodyResistance: - this->sResBodyBase -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); - return result; - case VAR_LightResistance: - this->sResLightBase -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); - return result; - case VAR_DarkResistance: - this->sResDarkBase -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); - return result; - case VAR_MagicResistance: - this->sResMagicBase -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); - return result; - case VAR_FireResistanceBonus: - this->sResFireBonus -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); - return result; - case VAR_AirResistanceBonus: - this->sResAirBonus -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); - return result; - case VAR_WaterResistanceBonus: - this->sResWaterBonus -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); - return result; - case VAR_EarthResistanceBonus: - this->sResEarthBonus -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); - return result; - case VAR_SpiritResistanceBonus: - this->sResSpiritBonus -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); - return result; - case VAR_MindResistanceBonus: - this->sResMindBonus -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); - return result; - case VAR_BodyResistanceBonus: - this->sResBodyBonus -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); - return result; - case VAR_LightResistanceBonus: - this->sResLightBonus -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); - return result; - case VAR_DarkResistanceBonus: - this->sResDarkBonus -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); - return result; - case VAR_MagicResistanceBonus: - this->sResMagicBonus -= (signed __int16)pValue; - this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); - return result; - case VAR_FixedFood: - Party::TakeFood((unsigned int)pValue); - PlayAwardSound_Anim98(v4); - return result; - case VAR_StaffSkill: - case VAR_SwordSkill: - case VAR_DaggerSkill: - case VAR_AxeSkill: - case VAR_SpearSkill: - case VAR_BowSkill: - case VAR_MaceSkill: - case VAR_BlasterSkill: - case VAR_ShieldSkill: - case VAR_LeatherSkill: - case VAR_SkillChain: - case VAR_PlateSkill: - case VAR_FireSkill: - case VAR_AirSkill: - case VAR_WaterSkill: - case VAR_EarthSkill: - case VAR_SpiritSkill: - case VAR_MindSkill: - case VAR_BodySkill: - case VAR_LightSkill: - case VAR_DarkSkill: - case VAR_IdentifyItemSkill: - case VAR_MerchantSkill: - case VAR_RepairSkill: - case VAR_BodybuildingSkill: - case VAR_MeditationSkill: - case VAR_PerceptionSkill: - case VAR_DiplomacySkill: - case VAR_DisarmTrapSkill: - case VAR_LearningSkill: - *((short *)&this->pConditions[16] + VarNum) -= (unsigned __int8)pValue; - PlayAwardSound_Anim98(v4); - return result; - case VAR_Cursed: - case VAR_Weak: - case VAR_Asleep: - case VAR_Afraid: - case VAR_Drunk: - case VAR_Insane: - case VAR_PoisonedGreen: - case VAR_DiseasedGreen: - case VAR_PoisonedYellow: - case VAR_DiseasedYellow: - case VAR_PoisonedRed: - case VAR_DiseasedRed: - case VAR_Paralyzed: - case VAR_Unconsious: - case VAR_Dead: - case VAR_Stoned: - case VAR_Eradicated: - //*((int *)this + 2 * VarNum - 210) = 0; - //*((int *)this + 2 * result - 209) = 0; - this->pConditions[VarNum] = 0; - PlayAwardSound_Anim98(v4); - return result; - default: - return result; + dword_5B65C4 = 1; } - for (v3 = 1; v3 < 126; v3++) + return result; + break; + + + case VAR_NumBounties: + result = (bool)pValue; + pParty->uNumBountiesCollected -= (unsigned int)pValue; + break; + case VAR_PrisonTerms: + result = (bool)pValue; + pParty->uNumPrisonTerms -= (int)pValue; + break; + case VAR_ArenaWinsPage: + result = (bool)pValue; + pParty->uNumArenaPageWins -= (char)pValue; + break; + case VAR_ArenaWinsSquire: + result = (bool)pValue; + pParty->uNumArenaSquireWins -= (char)pValue; + break; + case VAR_ArenaWinsKnight: + result = (bool)pValue; + pParty->uNumArenaKnightWins -= (char)pValue; + break; + case VAR_ArenaWinsLord: + result = (bool)pValue; + pParty->uNumArenaLordWins -= (char)pValue; + break; + + + case VAR_RandomGold: + v6 = rand() % (signed int)pValue + 1; + if ( v6 > pParty->uNumGold ) + v6 = pParty->uNumGold; + Party::TakeGold(v6); + sprintf(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[503], v6); + ShowStatusBarString(pTmpBuf.data(), 2); + GameUI_DrawFoodAndGold(); + return result; + case VAR_RandomFood: + v7 = rand() % (signed int)pValue + 1; + if ( v7 > pParty->uNumFoodRations ) + v7 = pParty->uNumFoodRations; + Party::TakeFood(v7); + sprintf(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[504], v7); + ShowStatusBarString(pTmpBuf.data(), 2u); + GameUI_DrawFoodAndGold(); + PlayAwardSound_Anim98(v4); + return result; + case VAR_CurrentHP: + ReceiveDamage((signed int)pValue, DMGT_PHISYCAL); + PlayAwardSound_Anim98(v4); + return result; + case VAR_CurrentSP: + this->sMana = max(this->sMana - pValue, 0); + PlayAwardSound_Anim98(v4); + return result; + case VAR_ACModifier: + this->sACModifier -= (unsigned __int8)pValue; + PlayAwardSound_Anim98(v4); + return result; + case VAR_BaseLevel: + this->uLevel -= (unsigned __int8)pValue; + PlayAwardSound_Anim98(v4); + return result; + case VAR_LevelModifier: + this->sLevelModifier -= (unsigned __int8)pValue; + PlayAwardSound_Anim98(v4); + return result; + case VAR_Age: + this->sAgeModifier -= (signed __int16)pValue; + return result; + case VAR_Award: + _449B7E_toggle_bit(this->_achieved_awards_bits, (signed __int16)pValue, 0); + return result; + case VAR_Experience: + this->uExperience -= pValue; + PlayAwardSound_Anim98(v4); + return result; + case VAR_QBits_QuestsDone: + _449B7E_toggle_bit(pParty->_quest_bits, (__int16)pValue, 0); + this->PlaySound(SPEECH_96, 0); + return true; + case VAR_PlayerItemInHands: + for (v3 = 0; v3 < 126; v3++) { - if ( *(&this->pInventoryItemList[pInventoryMatrix[v3] - 1].uItemID) == pValue ) + if ( this->pInventoryItemList[pInventoryMatrix[v3]].uItemID == pValue ) { RemoveItemAtInventoryIndex(v3); return true; @@ -7042,10 +6816,216 @@ return true; } return false; - } - } - - //assert(false); + break; + case VAR_FixedGold: + if ( (unsigned int)pValue > pParty->uNumGold ) + { + dword_5B65C4 = 1; + return result; + } + Party::TakeGold((unsigned int)pValue); + return result; + case VAR_MightBonus: + case VAR_ActualMight: + this->uMightBonus -= (unsigned __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); + return result; + case VAR_IntellectBonus: + case VAR_ActualIntellect: + this->uIntelligenceBonus -= (unsigned __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); + return result; + case VAR_PersonalityBonus: + case VAR_ActualPersonality: + this->uWillpowerBonus -= (unsigned __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); + return result; + case VAR_EnduranceBonus: + case VAR_ActualEndurance: + this->uEnduranceBonus -= (unsigned __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); + return result; + case VAR_SpeedBonus: + case VAR_ActualSpeed: + this->uSpeedBonus -= (unsigned __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); + return result; + case VAR_AccuracyBonus: + case VAR_ActualAccuracy: + this->uAccuracyBonus -= (unsigned __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); + return result; + case VAR_LuckBonus: + case VAR_ActualLuck: + this->uLuckBonus -= (unsigned __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); + return result; + case VAR_BaseMight: + this->uMight -= (unsigned __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); + return result; + case VAR_BaseIntellect: + this->uIntelligence -= (unsigned __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); + return result; + case VAR_BasePersonality: + this->uWillpower -= (unsigned __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); + return result; + case VAR_BaseEndurance: + this->uEndurance -= (unsigned __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); + return result; + case VAR_BaseSpeed: + this->uSpeed -= (unsigned __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); + return result; + case VAR_BaseAccuracy: + this->uAccuracy -= (unsigned __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); + return result; + case VAR_BaseLuck: + this->uLuck -= (unsigned __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); + return result; + case VAR_FireResistance: + this->sResFireBase -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); + return result; + case VAR_AirResistance: + this->sResAirBase -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); + return result; + case VAR_WaterResistance: + this->sResWaterBase -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); + return result; + case VAR_EarthResistance: + this->sResEarthBase -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); + return result; + case VAR_SpiritResistance: + this->sResSpiritBase -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); + return result; + case VAR_MindResistance: + this->sResMindBase -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); + return result; + case VAR_BodyResistance: + this->sResBodyBase -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); + return result; + case VAR_LightResistance: + this->sResLightBase -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); + return result; + case VAR_DarkResistance: + this->sResDarkBase -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); + return result; + case VAR_MagicResistance: + this->sResMagicBase -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); + return result; + case VAR_FireResistanceBonus: + this->sResFireBonus -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); + return result; + case VAR_AirResistanceBonus: + this->sResAirBonus -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_92); + return result; + case VAR_WaterResistanceBonus: + this->sResWaterBonus -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); + return result; + case VAR_EarthResistanceBonus: + this->sResEarthBonus -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); + return result; + case VAR_SpiritResistanceBonus: + this->sResSpiritBonus -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); + return result; + case VAR_MindResistanceBonus: + this->sResMindBonus -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); + return result; + case VAR_BodyResistanceBonus: + this->sResBodyBonus -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); + return result; + case VAR_LightResistanceBonus: + this->sResLightBonus -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); + return result; + case VAR_DarkResistanceBonus: + this->sResDarkBonus -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); + return result; + case VAR_MagicResistanceBonus: + this->sResMagicBonus -= (signed __int16)pValue; + this->PlayAwardSound_Anim98_Face(v4, SPEECH_91); + return result; + case VAR_FixedFood: + Party::TakeFood((unsigned int)pValue); + PlayAwardSound_Anim98(v4); + return result; + case VAR_StaffSkill: + case VAR_SwordSkill: + case VAR_DaggerSkill: + case VAR_AxeSkill: + case VAR_SpearSkill: + case VAR_BowSkill: + case VAR_MaceSkill: + case VAR_BlasterSkill: + case VAR_ShieldSkill: + case VAR_LeatherSkill: + case VAR_SkillChain: + case VAR_PlateSkill: + case VAR_FireSkill: + case VAR_AirSkill: + case VAR_WaterSkill: + case VAR_EarthSkill: + case VAR_SpiritSkill: + case VAR_MindSkill: + case VAR_BodySkill: + case VAR_LightSkill: + case VAR_DarkSkill: + case VAR_IdentifyItemSkill: + case VAR_MerchantSkill: + case VAR_RepairSkill: + case VAR_BodybuildingSkill: + case VAR_MeditationSkill: + case VAR_PerceptionSkill: + case VAR_DiplomacySkill: + case VAR_DisarmTrapSkill: + case VAR_LearningSkill: + *((short *)&this->pConditions[16] + VarNum) -= (unsigned __int8)pValue; + PlayAwardSound_Anim98(v4); + return result; + case VAR_Cursed: + case VAR_Weak: + case VAR_Asleep: + case VAR_Afraid: + case VAR_Drunk: + case VAR_Insane: + case VAR_PoisonedGreen: + case VAR_DiseasedGreen: + case VAR_PoisonedYellow: + case VAR_DiseasedYellow: + case VAR_PoisonedRed: + case VAR_DiseasedRed: + case VAR_Paralyzed: + case VAR_Unconsious: + case VAR_Dead: + case VAR_Stoned: + case VAR_Eradicated: + this->pConditions[VarNum] = 0; + PlayAwardSound_Anim98(v4); + return result; + } return false; } // 5B65C4: using guessed type int dword_5B65C4;