internal static void Write(int version, BinaryWriter bw, AWARD_DATA reward) { bw.Write(reward.m_ulGoldNum); bw.Write(reward.m_ulExp); if (version >= 118) { bw.Write(reward.m_ulRealmExp); bw.Write(reward.m_bExpandRealmLevelMax); } bw.Write(reward.m_ulNewTask); bw.Write(reward.m_ulSP); bw.Write(reward.m_lReputation); bw.Write(reward.m_ulNewPeriod); bw.Write(reward.m_ulNewRelayStation); bw.Write(reward.m_ulStorehouseSize); if (version >= 57) { bw.Write(reward.m_ulStorehouseSize2); bw.Write(reward.m_ulStorehouseSize3); } if (version >= 75) { bw.Write(reward.m_ulStorehouseSize4); } if (version >= 53) { bw.Write(reward.m_lInventorySize); bw.Write(reward.m_ulPetInventorySize); } bw.Write(reward.m_ulFuryULimit); bw.Write(reward.m_ulTransWldId); ZONE_VERT.Write(version, bw, reward.m_TransPt); if (version >= 53) { bw.Write(reward.m_lMonsCtrl); bw.Write(reward.m_bTrigCtrl); } if (version >= 54) { bw.Write(reward.m_bUseLevCo); } if (version >= 55) { bw.Write(reward.m_bDivorce); } if (version >= 56) { bw.Write(reward.m_bSendMsg); bw.Write(reward.m_nMsgChannel); } bw.Write(reward.m_ulCandItems); bw.Write(reward.m_CandItemsPointer); if (version >= 68) { bw.Write(reward.m_ulSummonedMonsters); bw.Write(reward.m_MonstersPointer); } if (version >= 69) { bw.Write(reward.m_bAwardDeath); bw.Write(reward.m_bAwardDeathWithLoss); } if (version >= 75) { bw.Write(reward.m_ulDividend); } if (version >= 78) { bw.Write(reward.m_bAwardSkill); bw.Write(reward.m_iAwardSkillID); bw.Write(reward.m_iAwardSkillLevel); } if (version >= 124) { bw.Write(reward.AwardSoloTowerChallengeScore); } if (version >= 75) { bw.Write(reward.m_ulSpecifyContribTaskID); } if (version >= 78) { bw.Write(reward.m_ulSpecifyContribSubTaskID); } if (version >= 75) { bw.Write(reward.m_ulSpecifyContrib); bw.Write(reward.m_ulContrib); bw.Write(reward.m_ulRandContrib); bw.Write(reward.m_ulLowestcontrib); } if (version >= 89) { bw.Write(reward.m_iFactionContrib); bw.Write(reward.m_iFactionExpContrib); } if (version >= 75) { bw.Write(reward.m_ulPQRankingAwardCnt); bw.Write(reward.m_RankingAwardPointer); } if (version >= 59) { bw.Write(reward.m_ulChangeKeyCnt); bw.Write(reward.m_ulChangeKeyPointer); } if (version >= 118) { bw.Write(reward.m_ulHistoryChangeCnt); bw.Write(reward.m_plHistoryChangeKeyPointer); bw.Write(reward.m_plHistoryChangeKeyValuePointer); bw.Write(reward.m_pbHistoryChangeTypePointer); } if (version >= 59) { bw.Write(reward.m_bMulti); bw.Write(reward.m_nNumType); bw.Write(reward.m_lNum); bw.Write(reward.m_ulDisplayKeyCnt); bw.Write(reward.m_ulDisplayKeyCntPointer); } if (version >= 63) { bw.Write(reward.m_ulExpCnt); bw.Write(reward.m_pszExpPointer); bw.Write(reward.m_ulTaskCharCnt); bw.Write(reward.m_pTaskCharPointer); } if (version >= 99) { bw.Write(reward.m_iForceContribution); bw.Write(reward.m_iForceReputation); bw.Write(reward.m_iForceActivity); } if (version >= 100) { bw.Write(reward.m_iForceSetRepu); } if (version >= 101) { bw.Write(reward.m_iTaskLimit); } if (version >= 111) { bw.Write(reward.m_ulTitleNum); bw.Write(reward.m_pTitleAwardPointer); } if (version >= 118) { bw.Write(reward.m_iLeaderShip); } if (version >= 119) { bw.Write(reward.AwardWorldContrib); } if (version >= 127) { for (int num31 = 0; num31 < reward.AwardHomeResource.Length; num31++) { bw.Write(reward.AwardHomeResource[num31]); } bw.Write(reward.AwardCreateHome); } for (int index = 0; index < reward.m_CandItems.Length; index++) { AWARD_ITEMS_CAND.Write(version, bw, reward.m_CandItems[index]); } if (version >= 68 && reward.m_ulSummonedMonsters > 0) { AWARD_MONSTERS_SUMMONED.Write(version, bw, reward.m_SummonedMonsters); } if (version >= 75 && reward.m_ulPQRankingAwardCnt > 0) { AWARD_PQ_RANKING.Write(version, bw, reward.m_PQRankingAward); } if (version >= 59 && reward.m_ulChangeKeyCnt > 0) { for (int index5 = 0; index5 < reward.m_ulChangeKeyCnt; index5++) { bw.Write(reward.m_plChangeKey[index5]); bw.Write(reward.m_plChangeKeyValue[index5]); bw.Write(reward.m_pbChangeType[index5]); } } if (version >= 118 && reward.m_ulHistoryChangeCnt > 0) { for (int index4 = 0; index4 < reward.m_ulHistoryChangeCnt; index4++) { bw.Write(reward.m_plHistoryChangeKey[index4]); bw.Write(reward.m_plHistoryChangeKeyValue[index4]); bw.Write(reward.m_pbHistoryChangeType[index4]); } } if (version >= 59 && reward.m_ulDisplayKeyCnt > 0) { for (int index4 = 0; index4 < reward.m_ulDisplayKeyCnt; index4++) { bw.Write(reward.m_plDisplayKey[index4]); } } if (version >= 63 && reward.m_ulExpCnt > 0) { for (int index6 = 0; index6 < reward.m_ulExpCnt; index6++) { bw.Write(reward.m_pszExp[index6]); TASK_EXPRESSION.Write(version, bw, reward.m_pExpArr[index6]); } } if (version >= 63 && reward.m_ulTaskCharCnt > 0) { for (int index7 = 0; index7 < reward.m_ulTaskCharCnt; index7++) { bw.Write(reward.m_pTaskChar[index7]); } } if (version < 111) { return; } for (int index8 = 0; index8 < reward.m_pTitleAward.Length; index8++) { TITLE_AWARD.Write(version, bw, reward.m_pTitleAward[index8]); } }