void CalculateInfoData() { int i,cn,crewQ; ref mchref,chref; crewQ = 0; mchref = GetMainCharacter(); for(i=0; i<4; i++) { cn = GetCompanionIndex(mchref,i); if( cn>=0 && GetRemovable(&Characters[cn]) ) { chref = GetCharacter(cn); crewQ += GetCrewQuantity(chref); } } int nLeaderShip = GetSummonSkillFromName(mchref,SKILL_LEADERSHIP); nPaymentQ = 5 + crewQ*(16-nLeaderShip); if( CheckAttribute(mchref,"CrewPayment") ) { nPaymentQ += makeint( stf(mchref.CrewPayment)*(11.0-SKILL_LEADERSHIP)/10.0 ); } nMoraleDecreaseQ = 30-nLeaderShip; if( CheckCharacterPerk(mchref,"IronWill") ) nMoraleDecreaseQ /= 2; CreateString(true,"payment",""+nPaymentQ,FONT_NORMAL,COLOR_NORMAL,320,258,SCRIPT_ALIGN_CENTER,1.0); if( sti(mchref.Money) < nPaymentQ ) { SetSelectable("B_OK",false); SetCurrentNode("B_CANCEL"); } }
void SetNextParty(bool bRight) { // boal --> /* BEGIN MOD : Stone-D 27/07/2003 */ EnhancedSetNextParty(bRight); return; // boal <-- /* END MOD : Stone-D 27/07/2003 */ int i,cn; if(bRight) { curOfficer++; for(i=curOfficer; i<7; i++) { if(i<4) {cn = GetOfficersIndex(xi_refMainChar,i);} else {cn = GetCompanionIndex(xi_refMainChar,i-3);} if( cn>-1 && GetRemovable(GetCharacter(cn)) ) break; } if(i<7) { xi_refCharacter = GetCharacter(cn); curOfficer = i; } else { xi_refCharacter = xi_refMainChar; curOfficer = 0; } } else { curOfficer--; if(curOfficer<0) curOfficer=6; for(i=curOfficer; i>0; i--) { if(i<4) {cn = GetOfficersIndex(xi_refMainChar,i);} else {cn = GetCompanionIndex(xi_refMainChar,i-3);} if( cn>-1 && GetRemovable(GetCharacter(cn)) ) break; } if(i>0) {xi_refCharacter = GetCharacter(cn);} else {xi_refCharacter = xi_refMainChar;} curOfficer = i; } AddCharacterExp(xi_refCharacter,0); }
int CHeaderCtrlExt::GetRemovableItemCount() { int nRemovable = 0; int nCount = GetItemCount(); for(int i = 0;i < nCount;++i) { if(GetRemovable(i))nRemovable++; } return nRemovable; }