Hooks
static bool BeforeCvUnitCombat_cpp_AddCombatMember(CvCombatMemberEntry* pkArray, int* piMembers, int iMaxMembers, IDInfo kMember, CvCombatMemberEntry::MEMBER_TYPE eType, int iX, int iY, EraTypes eEra, CvCombatMemberEntry*& result);static void AfterCvUnitCombat_cpp_AddCombatMember(CvCombatMemberEntry* pkArray, int* piMembers, int iMaxMembers, IDInfo kMember, CvCombatMemberEntry::MEMBER_TYPE eType, int iX, int iY, EraTypes eEra, CvCombatMemberEntry*& result);static CvCombatMemberEntry* ReplaceCvUnitCombat_cpp_AddCombatMember(CvCombatMemberEntry* (*original)(CvCombatMemberEntry*, int*, int, IDInfo, CvCombatMemberEntry::MEMBER_TYPE, int, int, EraTypes), CvCombatMemberEntry* pkArray, int* piMembers, int iMaxMembers, IDInfo kMember, CvCombatMemberEntry::MEMBER_TYPE eType, int iX, int iY, EraTypes eEra);CivRegisterBefore<CivHooks::CvUnitCombat_cpp_AddCombatMember>(host, &BeforeCvUnitCombat_cpp_AddCombatMember);CivRegisterAfter<CivHooks::CvUnitCombat_cpp_AddCombatMember>(host, &AfterCvUnitCombat_cpp_AddCombatMember);CivRegisterReplace<CivHooks::CvUnitCombat_cpp_AddCombatMember>(host, &ReplaceCvUnitCombat_cpp_AddCombatMember);
Code
57// Add a member to the combat array58static CvCombatMemberEntry* AddCombatMember(CvCombatMemberEntry* pkArray, int* piMembers, int iMaxMembers, IDInfo kMember, CvCombatMemberEntry::MEMBER_TYPE eType, int iX, int iY, EraTypes eEra)59{60 if(*piMembers < iMaxMembers)61 {62 int iCount = *piMembers;63 if(!FindCombatMember(pkArray, iCount, kMember, eType))64 {65 CvCombatMemberEntry& kEntry = pkArray[iCount];66 kEntry.SetPlayer(kMember.eOwner);67 kEntry.SetID(kMember.iID, eType);68 kEntry.SetDamage(0);69 kEntry.SetFinalDamage(0);70 kEntry.SetMaxHitPoints(0);71 kEntry.SetPlot(iX, iY);72 kEntry.SetEra(eEra);73 *piMembers += 1;74 return &(pkArray[iCount]);75 }76 }77 return NULL;78}