#include "CMyProfile.h" #include "CStoryCore.h" #include "CFTTSaveFile.h" #include "CFE.h" #include "CStoryProfileStages.h" #include "CFTTServerTime.h" #include "CFTTTime.h" #include "TStoryConfig.h" #include "CUnlockables.h" #include "CMessageBoxHandler.h" #include "CFESLevelSelect.h" #include "str_conv.h" #include "memctrl.h" bool CMyProfile::ms_bLoading; ESaveMode g_eSaveMode; TStoryConfig STY_tConfig; MYSTATIC struct CFTTSaveFileProjectSettings G_Profiles = { "DOCS:profile.dat", "DOCS:profiletemp.dat", "DOCS:profile_cld_u.dat", "DOCS:profile_cld_d.dat", "DOCS:profile_cld_dc.dat", "StoryUser", "Profile", "HeroRecord", 5, 0x39, 1, 0xf36ec841, 0xec16cac0, 0x8ad62178, 0xbf1096d8}; CMyProfile MP_cMyProfile; //------------------------------------------------------------------------------------------------- //001CCC00 //^_^ TProfileData::TProfileData() { // m_ProfileStats = new CProfileStats(); // m_CGameSettings_2b80 = new CGameSettings(); } //------------------------------------------------------------------------------------------------- //001CCC24 //^_^ TProfileData::~TProfileData() { // delete m_ProfileStats; // delete m_CGameSettings_2b80; } //------------------------------------------------------------------------------------------------- //001CC950 //^_^ void TProfileData::Serialize(CFTTSerialize &pSerialize) { } //------------------------------------------------------------------------------------------------- //001CC2E4 //^_^ void TProfileDataCloud::Serialize(CFTTSerialize &pSerialize) { return; } //------------------------------------------------------------------------------------------------- //001CCBB4 //^_^ CMyProfile::CMyProfile() { } //------------------------------------------------------------------------------------------------- //001CCC14 CMyProfile::~CMyProfile() { } //------------------------------------------------------------------------------------------------- //0011977C //^_^ void CMyProfile::SetInstallSourceTracker(const char *val) { } //------------------------------------------------------------------------------------------------- //00119788 //^_^ void CMyProfile::SetInstallSourceCampaign(char const *val) { } //------------------------------------------------------------------------------------------------- //0012C8AC //^_^ void CMyProfile::SetAllowLevelSelectVideoAds(bool val) { } //------------------------------------------------------------------------------------------------- //0012CA3C //^_^ void CMyProfile::SetStageClubTeam(int val1, int val2) { } //------------------------------------------------------------------------------------------------- //00131D60 //^_^ int CMyProfile::GetPossibleStartingClubs(int val1, int *val2, int val3) { return 0; } //------------------------------------------------------------------------------------------------- //00131D6C //^_^ int CMyProfile::GetPossibleNewClubs(int val1, bool val2, int val3, int *val4, int val5, ELeague val6, bool val7, bool val8) { return 0; } //------------------------------------------------------------------------------------------------- //00152D88 //^_^ void CMyProfile::EnergyIncrease(int val1, bool val2) { } //------------------------------------------------------------------------------------------------- //00153B40 //^_^ void CMyProfile::UpdateTermsOfServiceID(int val1) { } //------------------------------------------------------------------------------------------------- //001CCC3A //^_^ void CMyProfile::Shutdown() { } //------------------------------------------------------------------------------------------------- //001CCC60 //^_^ CStoryProfileStages *CMyProfile::GetProfileStages() { return NULL; } //------------------------------------------------------------------------------------------------- //001CCC80 //^_^ void CMyProfile::InitialiseSaveFiles() { } //------------------------------------------------------------------------------------------------- //001CCCB4 //^_~ int CMyProfile::DoLoadOnBoot(bool &val1) { LOGE("DoLoadOnBoot%x",val1); val1=rand(); return rand(); } //------------------------------------------------------------------------------------------------- //001CCDC0 //^_^ void CMyProfile::SetIsSideStory(bool val1, bool val2) { } //------------------------------------------------------------------------------------------------- //001CCE94 //^_^ int CMyProfile::LoadDiskData() { int result = 0; return result; } //------------------------------------------------------------------------------------------------- //001CD040 void CMyProfile::LoadCloudDataWithVersion(bool, bool) { } //------------------------------------------------------------------------------------------------- //001CD09C void CMyProfile::LoadCloudData(bool) { } //------------------------------------------------------------------------------------------------- //001CD238 //^_^ void CMyProfile::SetAllDefaults() { // EUserABTest v3; } //------------------------------------------------------------------------------------------------- //001CD42C //^_^ void CMyProfile::LoadLocalData() { } //------------------------------------------------------------------------------------------------- //001CD442 //^_^ void CMyProfile::ReInitialiseSideStory(int br0) { } //------------------------------------------------------------------------------------------------- //001CD454 void CMyProfile::UpdateFacebookAchievements() { LOGE("UpdateFacebookAchievements%p",this); } //------------------------------------------------------------------------------------------------- //001CD480 void CMyProfile::FacebookLoginCompleteWithAnalytics(int, wchar_t *) { } //------------------------------------------------------------------------------------------------- //001CD484 void CMyProfile::FacebookLoginComplete(int, wchar_t *) { } //------------------------------------------------------------------------------------------------- //001CD508 void CMyProfile::FacebookLoginCompleteWithReward(int, wchar_t *) { } //------------------------------------------------------------------------------------------------- //001CD544 void CMyProfile::FacebookGetFriendsComplete(int) { } //------------------------------------------------------------------------------------------------- //001CD55C //^_^ void CMyProfile::AttemptSave(ESaveMode dr0) { g_eSaveMode = dr0; } //------------------------------------------------------------------------------------------------- //001CD570 //^_^ 这个函数只有开启堆栈保护, 才能编译出来和原始程序一样 void CMyProfile::Stage460Fix() { } //------------------------------------------------------------------------------------------------- //001CD644 //^_^ int CMyProfile::GetStagesComplete(int dr0) { return GetProfileStages()->GetStagesComplete(dr0); } //------------------------------------------------------------------------------------------------- //001CD656 //^_^ int CMyProfile::GetHaveChangedTeamOnStage(int dr0) { return pCStoryProfile->GetHaveChangedTeamOnStage(dr0); } //------------------------------------------------------------------------------------------------- //001CD660 //^_^ void CMyProfile::SetPostStageOperation(TStageOperation aTStageOperation) { } //------------------------------------------------------------------------------------------------- //001CD694 //^_^ int CMyProfile::GetGameVersionFromProfile() { return 0; } //------------------------------------------------------------------------------------------------- //001CD6F0 //^_^ void CMyProfile::SetLargestPurchase(int dr1) { } //------------------------------------------------------------------------------------------------- //001CD6FA //^_^ void CMyProfile::IncrementNumberOfPurchases() { } //------------------------------------------------------------------------------------------------- //001CD706 //^_^ void CMyProfile::SetFirstStagePurchase(int dr1) { } //------------------------------------------------------------------------------------------------- //001CD710 //^_^ void CMyProfile::ResetSidePolaroidDates() { } //------------------------------------------------------------------------------------------------- //001CD728 //^_^ void CMyProfile::ResetMainPolaroidDates() { } //------------------------------------------------------------------------------------------------- //001CD740 void CMyProfile::UpdateCB(int, void *) { //不太有用的函数 } //------------------------------------------------------------------------------------------------- //001CD758 void CMyProfile::SetFacebookToken(char *, int) { //不太有用的函数 } //------------------------------------------------------------------------------------------------- //001CD75E void CMyProfile::CloudDelete(void (*)(int)) { //不太有用的函数 } //------------------------------------------------------------------------------------------------- //001CD768 void CMyProfile::ShouldDoCloudSave() { //不太有用的函数 } //------------------------------------------------------------------------------------------------- //001CD7E0 //^_^ int CMyProfile::GetStagesStars(int dr1) { CStoryProfileStages *v3 = GetProfileStages(); return v3->GetStagesStars(dr1); } //------------------------------------------------------------------------------------------------- //001CD7F4 //^_^ void CMyProfile::AddCloudSaveRecord() { //不太有用的函数 } //------------------------------------------------------------------------------------------------- //001CD854 //^_^ void CMyProfile::UpdateSaveLoadTime() { } //------------------------------------------------------------------------------------------------- //001CD870 //^_^ void CMyProfile::CheckSave() { LOGE("%pCMyProfile::CheckSave",this); } //------------------------------------------------------------------------------------------------- //001CD890 //???该函数因为有部分逻辑是保存到云服务上, 所以跳过了部分代码。 很难做到完全一样 int CMyProfile::Save(ESaveMode bESaveModer0) { return 0; } //------------------------------------------------------------------------------------------------- //001CDAA0 //^_^ void CMyProfile::UnlockSeason(int val1, bool val2, bool val3) { } //------------------------------------------------------------------------------------------------- //001CDAC2 //^_^ void CMyProfile::ResetAllFeats() { } //------------------------------------------------------------------------------------------------- //001CDAD0 //^_^ void CMyProfile::ResetNotificationRewards() { } //------------------------------------------------------------------------------------------------- //001CDAEC //^_^ TStageOperation CMyProfile::GetPostStageOperation() { TStageOperation TStageOperationr0; return TStageOperationr0; } //------------------------------------------------------------------------------------------------- //001CDB10 //^_^ void CMyProfile::ClearPostStageOperation() { } //------------------------------------------------------------------------------------------------- //001CDB30 //^_^ void CMyProfile::SetTutorialMessageShown(int dr1, bool br2) { } //------------------------------------------------------------------------------------------------- //001CDB52 //^_^ int CMyProfile::GetSeasonComplete(int dr1) { return 0; } //------------------------------------------------------------------------------------------------- //001CDB64 //^_^ void CMyProfile::IncStageAttempts(int dr1) { } //------------------------------------------------------------------------------------------------- //001CDB76 //^_^ int CMyProfile::GetStageComplete(int dr1) { return 0; } //------------------------------------------------------------------------------------------------- //001CDB90 //^_^ int CMyProfile::GetStageNumber(int dar1) { return 0; } //------------------------------------------------------------------------------------------------- //001CDBFC //^_^ int CMyProfile::GetStageStars(int dr1) { return 0; } //------------------------------------------------------------------------------------------------- //001CDC0E //^_^ int CMyProfile::GetStageScore(int dr1) { return 0; } //------------------------------------------------------------------------------------------------- //001CDC20 //^_^ int CMyProfile::GetStageAttempts(int dr1) { return 0; } //------------------------------------------------------------------------------------------------- //001CDC32 //^_^ int CMyProfile::CountPacksWithAllStars() { return 0; } //------------------------------------------------------------------------------------------------- //001CDC40 //^_^ void CMyProfile::SetRatedGameVersion(int dr1) { } //------------------------------------------------------------------------------------------------- //001CDC64 //^_^ void CMyProfile::SetSkinColour(int dr1) { } //------------------------------------------------------------------------------------------------- //001CDC74 //^_^ uchar CMyProfile::GetSkinColour() { return 0; } //------------------------------------------------------------------------------------------------- //001CDC84 //^_^ void CMyProfile::SetHeadType(int dr1) { } //------------------------------------------------------------------------------------------------- //001CDC94 //^_^ uchar CMyProfile::GetHeadType() { return 0; } //------------------------------------------------------------------------------------------------- //001CDCA4 //^_^ void CMyProfile::SetHairColour(int dr1) { } //------------------------------------------------------------------------------------------------- //001CDCB4 //^_^ uchar CMyProfile::GetHairColour() { return 0; } //------------------------------------------------------------------------------------------------- //001CDCC4 //^_^ void CMyProfile::SetHairStyle(int dr1) { } //------------------------------------------------------------------------------------------------- //001CDCD4 //^_^ uchar CMyProfile::GetHairStyle() { return 0; } //------------------------------------------------------------------------------------------------- //001CDCE4 //^_^ void CMyProfile::SetFacialHair(int dr1) { } //------------------------------------------------------------------------------------------------- //001CDCF4 //^_^ uchar CMyProfile::GetFacialHair() { return 0; } //------------------------------------------------------------------------------------------------- //001CDD04 //^_^ void CMyProfile::SetBootColour(int dr1) { } //------------------------------------------------------------------------------------------------- //001CDD14 //^_^ uchar CMyProfile::GetBootColour() { return 0; } //------------------------------------------------------------------------------------------------- //001CDD24 //^_^ void CMyProfile::SetBodyType(int dr1) { } //------------------------------------------------------------------------------------------------- //001CDD5C //^_^ uchar CMyProfile::GetBodyType() { return 0; } //------------------------------------------------------------------------------------------------- //001CDD90 //^_^ void CMyProfile::SetShirtLength(int dr1) { } //------------------------------------------------------------------------------------------------- //001CDDC8 //^_^ uchar CMyProfile::GetShirtLength() { return 0; } //------------------------------------------------------------------------------------------------- //001CDDFC //^_^ void CMyProfile::SetShirtNumber(int dr1) { } //------------------------------------------------------------------------------------------------- //001CDE0C //^_^ uchar CMyProfile::GetShirtNumber() { return 0; } //------------------------------------------------------------------------------------------------- //001CDE1C //^_^ void CMyProfile::SetPlayerName(wchar_t const *pWBufr1) { } //------------------------------------------------------------------------------------------------- //001CDE30 //^_^ wchar_t const *CMyProfile::GetPlayerName() { LOGE("GetPlayerName"); return (wchar_t*)rand(); } //------------------------------------------------------------------------------------------------- //001CDE40 //^_^ void CMyProfile::SetPlayerInitialised() { } //------------------------------------------------------------------------------------------------- //001CDE58 //^_^ bool CMyProfile::GetPlayerInitialised() { return 0; } //------------------------------------------------------------------------------------------------- //001CDE68 //^_^ void CMyProfile::SetHaveAskedToRate() { } //------------------------------------------------------------------------------------------------- //001CDE88 //???这个函数和原始代码汇编少一个PUSH POP void CMyProfile::CheckRestoreEnergy() { } //------------------------------------------------------------------------------------------------- //001CDEB4 //^_^ void CMyProfile::FoundEasterEgg(int dr1) { } //------------------------------------------------------------------------------------------------- //001CDEF0 //^_^ int CMyProfile::EasterEggAlreadyFound(int dr1) { return 1; } //------------------------------------------------------------------------------------------------- //001CDF0E //^_^ void CMyProfile::SetStartUpMessageViewedID(int dr1) { } //------------------------------------------------------------------------------------------------- //001CDF14 //^_^ int CMyProfile::GetAreGettingMoreStars() { return 0; } //------------------------------------------------------------------------------------------------- //001CDF24 //^_^ void CMyProfile::SetAreGettingMoreStars(bool br1) { } //------------------------------------------------------------------------------------------------- //001CDF34 //^_^ int CMyProfile::GetTotalNumberOfStars() { return 0; } //------------------------------------------------------------------------------------------------- //001CDF3C //^_^ int CMyProfile::GetEffectiveStarsPurchased() { return 0; } //------------------------------------------------------------------------------------------------- //001CDF58 //^_^ void CMyProfile::AddEffectiveStarsPurchased(int dr1) { } //------------------------------------------------------------------------------------------------- //001CDF74 //^_^ int CMyProfile::GetSeasonUnlockStars(int dr1) { return 0; } //------------------------------------------------------------------------------------------------- //001CDFE4 //^_^ int CMyProfile::GetSeasonUnlockCost(int dr1) { return -1; } //------------------------------------------------------------------------------------------------- //001CE050 //^_^ int CMyProfile::IsSeasonUnlocked(int dr1) { return 0; } //------------------------------------------------------------------------------------------------- //001CE062 //^_^ int CMyProfile::IsSeasonComplete(int dr1) { return 0; } //------------------------------------------------------------------------------------------------- //001CE074 //^_^ void CMyProfile::SetNotificationRewards() { LOGE("CMyProfile::SetNotificationRewards%p",this); } //------------------------------------------------------------------------------------------------- //001CE076 //^_^ void CMyProfile::SetupSideStory() { } //------------------------------------------------------------------------------------------------- //001CE094 //^_^ void CMyProfile::SetSideStoryComplete(bool br1) { } //------------------------------------------------------------------------------------------------- //001CE0AC //^_^ int CMyProfile::GetActiveSideStoryID() { return 0; } //------------------------------------------------------------------------------------------------- //001CE0CC //^_^ void CMyProfile::SetNationalTeam(int dr1) { } //------------------------------------------------------------------------------------------------- //001CE0F8 //^_^ uint16 CMyProfile::GetNationalTeam() { LOGE("CMyProfile::GetNationalTeam%p",this); return rand(); } //------------------------------------------------------------------------------------------------- //001CE108 void CMyProfile::CheckNotificationRewards() { } //------------------------------------------------------------------------------------------------- //001CE10A void CMyProfile::HaveSetRewardNotifications() { } //------------------------------------------------------------------------------------------------- //001CE10E //^_^ void CMyProfile::RewardForNotification(int dr1) { } //------------------------------------------------------------------------------------------------- //001CE138 //^_^ void CMyProfile::NeedToCheckNotifications() { LOGE("CMyProfile::NeedToCheckNotifications%p",this); return; } //------------------------------------------------------------------------------------------------- //001CE16C 没啥用的函数跳过 int CMyProfile::CalculateAndCheckNotificationRewards() { return 0; } //------------------------------------------------------------------------------------------------- //001CE2B8 bool CMyProfile::GetAllowLevelSelectVideoAds() { return 0; } //------------------------------------------------------------------------------------------------- //001CE2C6 //^_^ void CMyProfile::ResetUnlimitedEnergy() { } //------------------------------------------------------------------------------------------------- //001CE2EE //^_^ bool CMyProfile::HaveUnlimitedEnergy() { bool bret; // r5 return true; } //------------------------------------------------------------------------------------------------- //001CE350 //^_^ void CMyProfile::SetEndOfUnlimitedEnergyTime() { } //------------------------------------------------------------------------------------------------- //001CE3A0 //^_^ void CMyProfile::EnergyUse(int dr1) { } //------------------------------------------------------------------------------------------------- //001CE3B4 //^_^ long CMyProfile::GetSizeOfProfile() { return 0; } //------------------------------------------------------------------------------------------------- //001CE3C8 //??? 编译出汇编不一样 void CMyProfile::SetFeatComplete(int dr1, bool br2) { } //------------------------------------------------------------------------------------------------- //001CE408 //^_^ int CMyProfile::IsUserCheat() { return 0; } //------------------------------------------------------------------------------------------------- //001CE40C //^_^ int CMyProfile::GetUserType() { return 0; } //------------------------------------------------------------------------------------------------- //001CE470 //^_^ void CMyProfile::SetAllowCloud(bool br1) { } //------------------------------------------------------------------------------------------------- //001CE478 //^_^ bool CMyProfile::GetFeatComplete(int dr1) { return 0; } //------------------------------------------------------------------------------------------------- //001CE480 //???这个函数似乎和广告相关 ,先不实现 void CMyProfile::EnergyMessageCB(int, void *) { } //------------------------------------------------------------------------------------------------- //001CE63C //???内购, 跳过 void CMyProfile::BuyEnergyCallback(int, void *) { } //------------------------------------------------------------------------------------------------- //001CE648 //???和内购相关, 先跳过 void CMyProfile::DisplayEnergyMessage() { } //------------------------------------------------------------------------------------------------- //001CE79C //^_^ uint CMyProfile::GetConfigFileCreditReimburseID() { return 0; } //------------------------------------------------------------------------------------------------- //001CE7A0 //^_^ void CMyProfile::SetConfigFileCreditReimburseID(int dr1) { } //------------------------------------------------------------------------------------------------- //001CE7A4 //^_^ PolaroidDate *CMyProfile::GetPolaroidDate(int dr1) { return 0; } //------------------------------------------------------------------------------------------------- //001CE7B8 //^_^ void CMyProfile::SetPolaroidDate(int dr1, uchar cr2, uchar cr3) { } //------------------------------------------------------------------------------------------------- //001CE7D8 //内购促销,跳过 int CMyProfile::GetPromotionPurchase(int) { return 0; } //------------------------------------------------------------------------------------------------- //001CE7FA //内购促销,跳过 int CMyProfile::HaveActiveTriggeredPromotion() { return 0; } //------------------------------------------------------------------------------------------------- //001CE82E //内购促销,跳过 void CMyProfile::AddPromotionPurchase(int) { } //------------------------------------------------------------------------------------------------- //001CE85A //内购促销,跳过 int CMyProfile::SetupPromotionPurchase(int) { return 0; } //------------------------------------------------------------------------------------------------- //001CE8FA //内购促销,跳过 int CMyProfile::AnotherTriggeredPromotionShowingOrBlocking(int) { return 0; } //------------------------------------------------------------------------------------------------- //001CE934 //^_^ bool CMyProfile::IsSideStoryInitialised() { return CSideStoryProfile::m_tData.field_0; } //------------------------------------------------------------------------------------------------- //001CE944 //^_^ bool CMyProfile::HaveCompletedSideQuest() { return m_TProfileDataCloud.field_470[0]; } //------------------------------------------------------------------------------------------------- //001CE94A //^_^ int CMyProfile::GetNumMedals(EMedal_Type dr1) { return m_TProfileDataCloud.NumMedals_480[dr1]; } //------------------------------------------------------------------------------------------------- //001CE954 //^_^ void CMyProfile::IncrementMedalType(EMedal_Type dr1, int) { ++m_TProfileDataCloud.NumMedals_480[dr1]; } //------------------------------------------------------------------------------------------------- //001CE9E0 //^_^ void CMyProfile::DecrementMedalType(EMedal_Type dr1) { --m_TProfileDataCloud.NumMedals_480[dr1]; } //------------------------------------------------------------------------------------------------- //001CEA28 //升级相关, 跳过 int CMyProfile::ShowUpdateMessageBox() { return 0; } //------------------------------------------------------------------------------------------------- //001CEA7C //应该用不到, 先放着 void CMyProfile::ResetProfile() { } //------------------------------------------------------------------------------------------------- //001CECD8 //上传日志到AWS, 跳过 void CMyProfile::SetupPushNotifications() { } //------------------------------------------------------------------------------------------------- //001D898C //^_^ void CMyProfile::UseRewind() { pCStoryProfile->UseRewind(); } //-------------------------------------------------------------------------------------------------