123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258 |
- //===========================================================================//
- // Copyright (C) Microsoft Corporation. All rights reserved. //
- //===========================================================================//
- #include "StdAfx.h"
- #include "CampaignData.h"
- #include "EString.h"
- #include "ECharString.h"
- #include "assert.h"
- static long sReadIdBoolean(FitIniFile &missionFile, const char *varName, bool &value) {
- long result = 0;
- bool tmpBool;
- result = missionFile.readIdBoolean((char *)varName, tmpBool);
- if (NO_ERR != result) {
- //assert(false);
- } else {
- value = tmpBool;
- }
- return result;
- }
- static long sReadIdInteger(FitIniFile &missionFile, const char *varName, int &value) {
- long result = 0;
- long tmpLong;
- result = missionFile.readIdLong((char *)varName, tmpLong);
- if (NO_ERR != result) {
- //assert(false);
- } else {
- value = tmpLong;
- }
- return result;
- }
- static long sReadIdString(FitIniFile &missionFile, const char *varName, CString &CStr) {
- long result = 0;
- char buffer[2001/*buffer size*/]; buffer[0] = '\0';
- result = missionFile.readIdString((char *)varName, buffer, 2001/*buffer size*/ - 1);
- if (NO_ERR != result) {
- //assert(false);
- } else {
- CStr = buffer;
- }
- return result;
- }
- CMissionData::CMissionData() {
- m_PurchaseFile = "purchase_All";
- m_LogisticsEnabled = true;
- m_IsMandatory = true;
- m_PilotPromotionEnabled = true;
- m_PurchasingEnabled = false;
- m_SalvageEnabled = true;
- m_MissionSelectionEnabled = true;
- }
- bool CMissionData::operator==(const CMissionData &rhs) const {
- if ((m_MissionFile == rhs.m_MissionFile)
- && (m_PurchaseFile == rhs.m_PurchaseFile)
- && (m_LogisticsEnabled == rhs.m_LogisticsEnabled)
- && (m_IsMandatory == rhs.m_IsMandatory)
- && (m_PilotPromotionEnabled == rhs.m_PilotPromotionEnabled)
- && (m_PurchasingEnabled == rhs.m_PurchasingEnabled)
- && (m_MissionSelectionEnabled == rhs.m_MissionSelectionEnabled)
- && (m_SalvageEnabled == rhs.m_SalvageEnabled)) {
- return true;
- } else {
- return false;
- }
- }
- bool CMissionData::Save(FitIniFile &fitFile) {
- fitFile.writeIdString( "FileName", m_MissionFile.GetBuffer(0));
- fitFile.writeIdBoolean("Mandatory", m_IsMandatory);
- fitFile.writeIdString( "PurchaseFile", m_PurchaseFile.GetBuffer(0));
- fitFile.writeIdBoolean("PlayLogistics", m_LogisticsEnabled);
- fitFile.writeIdBoolean("PlaySalvage", m_SalvageEnabled);
- fitFile.writeIdBoolean("PlayPilotPromotion", m_PilotPromotionEnabled);
- fitFile.writeIdBoolean("PlayPurchasing", m_PurchasingEnabled);
- fitFile.writeIdBoolean( "PlaySelection", m_MissionSelectionEnabled );
- return true;
- }
- bool CMissionData::Read(FitIniFile &fitFile) {
- int result;
- result = sReadIdString(fitFile, "FileName", m_MissionFile);
- result = sReadIdBoolean(fitFile, "Mandatory", m_IsMandatory);
- result = sReadIdString(fitFile, "PurchaseFile", m_PurchaseFile);
- result = sReadIdBoolean(fitFile, "PlayLogistics", m_LogisticsEnabled);
- result = sReadIdBoolean(fitFile, "PlaySalvage", m_SalvageEnabled);
- result = sReadIdBoolean(fitFile, "PlayPilotPromotion", m_PilotPromotionEnabled);
- result = sReadIdBoolean(fitFile, "PlayPurchasing", m_PurchasingEnabled);
- result = sReadIdBoolean( fitFile, "PlaySelection", m_MissionSelectionEnabled );
- return true;
- }
- CGroupData::CGroupData() {
- m_OperationFile = "mcl_cm_op_sample";
- m_NumMissionsToComplete = 1;
- m_TuneNumber = 0;
- }
- bool CGroupData::operator==(const CGroupData &rhs) const {
- if ((m_MissionList == rhs.m_MissionList)
- && (m_OperationFile == rhs.m_OperationFile)
- && (m_PreVideoFile == rhs.m_PreVideoFile)
- && (m_VideoFile == rhs.m_VideoFile)
- && (m_Label == rhs.m_Label)
- && (m_NumMissionsToComplete == rhs.m_NumMissionsToComplete)
- && (m_TuneNumber == rhs.m_TuneNumber)
- && (m_ABLScript == rhs.m_ABLScript)) {
- return true;
- } else {
- return false;
- }
- }
- bool CGroupData::Save(FitIniFile &fitFile, const char *groupName) {
- fitFile.writeIdString( "Label", m_Label.GetBuffer(0));
- fitFile.writeIdLong("NumberToComplete", m_NumMissionsToComplete);
- fitFile.writeIdString( "OperationFile", m_OperationFile.GetBuffer(0));
- fitFile.writeIdString( "Video", m_VideoFile.GetBuffer(0));
- fitFile.writeIdString( "PreVideo", m_PreVideoFile.GetBuffer(0));
- fitFile.writeIdLong("Tune", m_TuneNumber);
- fitFile.writeIdLong("MissionCount", m_MissionList.Count());
- if (!m_ABLScript.IsEmpty()) {
- fitFile.writeIdString( "ABLScript", m_ABLScript.GetBuffer(0));
- }
- CMissionList::EIterator it;
- int index;
- for (it = m_MissionList.Begin(), index = 0; !it.IsDone(); it++, index+=1) {
- ECharString blockName;
- blockName.Format("%sMission%d", groupName, index);
- fitFile.writeBlock(blockName.Data());
- (*it).Save(fitFile);
- }
- return true;
- }
- bool CGroupData::Read(FitIniFile &fitFile, const char *groupName) {
- int result;
- result = sReadIdString(fitFile, "Label", m_Label);
- result = sReadIdInteger(fitFile, "NumberToComplete", m_NumMissionsToComplete);
- result = sReadIdString(fitFile, "OperationFile", m_OperationFile);
- result = sReadIdString(fitFile, "Video", m_VideoFile);
- result = sReadIdString(fitFile, "PreVideo", m_PreVideoFile);
- result = sReadIdInteger(fitFile, "Tune", m_TuneNumber);
- result = sReadIdString(fitFile, "ABLScript", m_ABLScript);
- int missionCount = 0;
- result = sReadIdInteger(fitFile, "MissionCount", missionCount);
- if (NO_ERR != result) { return false; }
- int index;
- for (index = 0; missionCount > index; index+=1) {
- ECharString blockName;
- blockName.Format("%sMission%d", groupName, index);
- result = fitFile.seekBlock(blockName.Data());
- if (NO_ERR != result) { assert(false); continue; }
- CMissionData missionData;
- bool bresult = missionData.Read(fitFile);
- if (true != bresult) { assert(false); continue; }
- m_MissionList.Append(missionData);
- }
- return true;
- }
- CCampaignData::CCampaignData() {
- m_NameUseResourceString = false;
- m_NameResourceStringID = 0;
- m_CBills = 0;
- }
- bool CCampaignData::operator==(const CCampaignData &rhs) const {
- if ((m_GroupList == rhs.m_GroupList)
- && (m_Name == rhs.m_Name)
- && (m_NameUseResourceString == rhs.m_NameUseResourceString)
- && (m_NameResourceStringID == rhs.m_NameResourceStringID)
- && (m_CBills == rhs.m_CBills)
- && (m_FinalVideo == rhs.m_FinalVideo)) {
- return true;
- } else {
- return false;
- }
- }
- bool CCampaignData::Save(CString pathName) {
- FitIniFile fitFile;
- int result = fitFile.create(pathName.GetBuffer(0));
- if (result != NO_ERR)
- {
- return false;
- }
- fitFile.writeBlock("Campaign");
- fitFile.writeIdBoolean("NameUseResourceString", m_NameUseResourceString);
- if (!m_NameUseResourceString) {
- fitFile.writeIdString("CampaignName", m_Name.GetBuffer(0));
- } else {
- fitFile.writeIdLong("NameID", m_NameResourceStringID);
- }
- fitFile.writeIdLong("CBills", m_CBills);
- fitFile.writeIdString( "FinalVideo", m_FinalVideo.GetBuffer(0));
- fitFile.writeIdLong("GroupCount", m_GroupList.Count());
- CGroupList::EIterator it;
- int index;
- for (it = m_GroupList.Begin(), index = 0; !it.IsDone(); it++, index+=1) {
- ECharString blockName;
- blockName.Format("Group%d", index);
- fitFile.writeBlock(blockName.Data());
- (*it).Save(fitFile, blockName.Data());
- }
- fitFile.close();
- return true;
- }
- bool CCampaignData::Read(CString pathName) {
- FitIniFile fitFile;
- int result = fitFile.open(pathName.GetBuffer(0));
- if (NO_ERR != result) { assert(false); return false; }
- result = fitFile.seekBlock("Campaign");
- if (NO_ERR != result) { assert(false); }
- result = sReadIdString(fitFile, "CampaignName", m_Name);
- if (NO_ERR == result) { m_NameUseResourceString = false; }
- result = sReadIdInteger(fitFile, "NameID", m_NameResourceStringID);
- if (NO_ERR == result) { m_NameUseResourceString = true; }
- result = sReadIdBoolean(fitFile, "NameUseResourceString", m_NameUseResourceString);
- result = sReadIdInteger(fitFile, "CBills", m_CBills);
- result = sReadIdString(fitFile, "FinalVideo", m_FinalVideo);
- int groupCount = 0;
- result = sReadIdInteger(fitFile, "GroupCount", groupCount);
- if (NO_ERR != result) { return false; }
- int index;
- for (index = 0; groupCount > index; index+=1) {
- ECharString blockName;
- blockName.Format("Group%d", index);
- result = fitFile.seekBlock(blockName.Data());
- if (NO_ERR != result) { assert(false); continue; }
- CGroupData groupData;
- bool bresult = groupData.Read(fitFile, blockName.Data());
- if (true != bresult) { assert(false); continue; }
- m_GroupList.Append(groupData);
- }
- fitFile.close();
- return true;
- }
|