/* FinalSun/FinalAlert 2 Mission Editor Copyright (C) 1999-2024 Electronic Arts, Inc. Authored by Matthias Wagner This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ // Basic.cpp: Implementierungsdatei // #include "stdafx.h" #include "FinalSun.h" #include "Basic.h" #include "resource.h" #include "mapdata.h" #include "variables.h" #include "functions.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // Eigenschaftenseite CBasic IMPLEMENT_DYNCREATE(CBasic, CPropertyPage) CBasic::CBasic() : CDialog(CBasic::IDD) { //{{AFX_DATA_INIT(CBasic) //}}AFX_DATA_INIT } CBasic::~CBasic() { } void CBasic::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CBasic) DDX_Control(pDX, IDC_REQUIREDADDON, m_RequiredAddOn); DDX_Control(pDX, IDC_VEINGROWTHENABLED, m_VeinGrowthEnabled); DDX_Control(pDX, IDC_TRUCKCRATE, m_TruckCrate); DDX_Control(pDX, IDC_TRAINCRATE, m_TrainCrate); DDX_Control(pDX, IDC_TIBERIUMGROWTHENABLED, m_TiberiumGrowthEnabled); DDX_Control(pDX, IDC_TIBERIUMDEATHTOVISCEROID, m_TiberiumDeathToVisceroid); DDX_Control(pDX, IDC_SKIPSCORE, m_SkipScore); DDX_Control(pDX, IDC_SKIPMAPSELECT, m_SkipMapSelect); DDX_Control(pDX, IDC_ONETIMEONLY, m_OneTimeOnly); DDX_Control(pDX, IDC_OFFICIAL, m_Official); DDX_Control(pDX, IDC_NEXTSCENARIO, m_NextScenario); DDX_Control(pDX, IDC_PERCENT, m_Percent); DDX_Control(pDX, IDC_NEWINIFORMAT, m_NewINIFormat); DDX_Control(pDX, IDC_NAME, m_Name); DDX_Control(pDX, IDC_MULTIPLAYERONLY, m_MultiplayerOnly); DDX_Control(pDX, IDC_INITTIME, m_InitTime); DDX_Control(pDX, IDC_IGNOREGLOBALAITRIGGERS, m_IgnoreGlobalAITriggers); DDX_Control(pDX, IDC_ICEGROWTHENABLED, m_IceGrowthEnabled); DDX_Control(pDX, IDC_FREERADAR, m_FreeRadar); DDX_Control(pDX, IDC_ENDOFGAME, m_EndOfGame); DDX_Control(pDX, IDC_CARRYOVERCAP, m_CarryOverCap); DDX_Control(pDX, IDC_ALTNEXTSCENARIO, m_AltNextScenario); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CBasic, CDialog) //{{AFX_MSG_MAP(CBasic) ON_EN_CHANGE(IDC_NAME, OnChangeName) ON_CBN_EDITCHANGE(IDC_NEXTSCENARIO, OnEditchangeNextscenario) ON_CBN_EDITCHANGE(IDC_ALTNEXTSCENARIO, OnEditchangeAltnextscenario) ON_EN_CHANGE(IDC_NEWINIFORMAT, OnChangeNewiniformat) ON_EN_CHANGE(IDC_CARRYOVERCAP, OnChangeCarryovercap) ON_CBN_EDITCHANGE(IDC_ENDOFGAME, OnEditchangeEndofgame) ON_CBN_EDITCHANGE(IDC_SKIPSCORE, OnEditchangeSkipscore) ON_CBN_EDITCHANGE(IDC_ONETIMEONLY, OnEditchangeOnetimeonly) ON_CBN_EDITCHANGE(IDC_SKIPMAPSELECT, OnEditchangeSkipmapselect) ON_CBN_EDITCHANGE(IDC_OFFICIAL, OnEditchangeOfficial) ON_CBN_EDITCHANGE(IDC_IGNOREGLOBALAITRIGGERS, OnEditchangeIgnoreglobalaitriggers) ON_CBN_EDITCHANGE(IDC_TRUCKCRATE, OnEditchangeTruckcrate) ON_CBN_EDITCHANGE(IDC_TRAINCRATE, OnEditchangeTraincrate) ON_EN_CHANGE(IDC_PERCENT, OnChangePercent) ON_EN_CHANGE(IDC_MULTIPLAYERONLY, OnChangeMultiplayeronly) ON_CBN_EDITCHANGE(IDC_TIBERIUMGROWTHENABLED, OnEditchangeTiberiumgrowthenabled) ON_CBN_EDITCHANGE(IDC_VEINGROWTHENABLED, OnEditchangeVeingrowthenabled) ON_CBN_EDITCHANGE(IDC_ICEGROWTHENABLED, OnEditchangeIcegrowthenabled) ON_CBN_EDITCHANGE(IDC_TIBERIUMDEATHTOVISCEROID, OnEditchangeTiberiumdeathtovisceroid) ON_CBN_EDITCHANGE(IDC_FREERADAR, OnEditchangeFreeradar) ON_EN_CHANGE(IDC_INITTIME, OnChangeInittime) ON_CBN_EDITCHANGE(IDC_REQUIREDADDON, OnEditchangeRequiredaddon) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // Behandlungsroutinen für Nachrichten CBasic //DEL void CBasic::OnOK() //DEL { //DEL // TODO: Zusätzliche Prüfung hier einfügen //DEL //DEL CPropertyPage::OnOK(); //DEL } void CBasic::UpdateDialog() { CIniFile& ini=Map->GetIniFile(); m_AltNextScenario.SetWindowText(ini.sections["Basic"].values["AltNextScenario"]); m_Name.SetWindowText(ini.sections["Basic"].values["Name"]); m_CarryOverCap.SetWindowText(ini.sections["Basic"].values["CarryOverCap"]); m_EndOfGame.SetWindowText(ini.sections["Basic"].values["EndOfGame"]); m_FreeRadar.SetWindowText(ini.sections["Basic"].values["FreeRadar"]); m_IceGrowthEnabled.SetWindowText(ini.sections["Basic"].values["IceGrowthEnabled"]); m_IgnoreGlobalAITriggers.SetWindowText(ini.sections["Basic"].values["IgnoreGlobalAITriggers"]); m_InitTime.SetWindowText(ini.sections["Basic"].values["InitTime"]); m_MultiplayerOnly.SetWindowText(ini.sections["Basic"].values["MultiplayerOnly"]); m_NewINIFormat.SetWindowText(ini.sections["Basic"].values["NewINIFormat"]); m_NextScenario.SetWindowText(ini.sections["Basic"].values["NextScenario"]); m_Official.SetWindowText(ini.sections["Basic"].values["Official"]); m_OneTimeOnly.SetWindowText(ini.sections["Basic"].values["OneTimeOnly"]); m_Percent.SetWindowText(ini.sections["Basic"].values["Percent"]); m_SkipMapSelect.SetWindowText(ini.sections["Basic"].values["SkipMapSelect"]); m_SkipScore.SetWindowText(ini.sections["Basic"].values["SkipScore"]); m_TiberiumDeathToVisceroid.SetWindowText(ini.sections["Basic"].values["TiberiumDeathToVisceroid"]); m_TiberiumGrowthEnabled.SetWindowText(ini.sections["Basic"].values["TiberiumGrowthEnabled"]); m_TrainCrate.SetWindowText(ini.sections["Basic"].values["TrainCrate"]); m_TruckCrate.SetWindowText(ini.sections["Basic"].values["TruckCrate"]); m_VeinGrowthEnabled.SetWindowText(ini.sections["Basic"].values["VeinGrowthEnabled"]); if(ini.sections["Basic"].values.find("RequiredAddOn")!=ini.sections["Basic"].values.end()) { m_RequiredAddOn.SetWindowText(ini.sections["Basic"].values["RequiredAddOn"]); } else m_RequiredAddOn.SetWindowText("0"); } void CBasic::OnChangeName() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["Name"]=GetText(&m_Name); } void CBasic::UpdateData() { // MessageBox("This function ( UpdateData() ) should not be called here... please report to the author."); errstream << "CBasic::UpdateData() called - should not be called" << endl; errstream.flush(); } void CBasic::OnEditchangeNextscenario() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["NextScenario"]=GetText(&m_NextScenario); } void CBasic::OnEditchangeAltnextscenario() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["AltNextScenario"]=GetText(&m_AltNextScenario); } void CBasic::OnChangeNewiniformat() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["NewINIFormat"]=GetText(&m_NewINIFormat); } void CBasic::OnChangeCarryovercap() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["CarryOverCap"]=GetText(&m_CarryOverCap); } void CBasic::OnEditchangeEndofgame() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["EndOfGame"]=GetText(&m_EndOfGame); } void CBasic::OnEditchangeSkipscore() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["SkipScore"]=GetText(&m_SkipScore); } void CBasic::OnEditchangeOnetimeonly() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["OneTimeOnly"]=GetText(&m_OneTimeOnly); } void CBasic::OnEditchangeSkipmapselect() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["SkipMapSelect"]=GetText(&m_SkipMapSelect); } void CBasic::OnEditchangeOfficial() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["Official"]=GetText(&m_Official); } void CBasic::OnEditchangeIgnoreglobalaitriggers() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["IgnoreGlobalAITriggers"]=GetText(&m_IgnoreGlobalAITriggers); } void CBasic::OnEditchangeTruckcrate() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["TruckCrate"]=GetText(&m_TruckCrate); } void CBasic::OnEditchangeTraincrate() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["TrainCrate"]=GetText(&m_TrainCrate); } void CBasic::OnChangePercent() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["Percent"]=GetText(&m_Percent); } void CBasic::OnChangeMultiplayeronly() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["MultiplayerOnly"]=GetText(&m_MultiplayerOnly); } void CBasic::OnEditchangeTiberiumgrowthenabled() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["TiberiumGrowthEnabled"]=GetText(&m_TiberiumGrowthEnabled); } void CBasic::OnEditchangeVeingrowthenabled() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["VeinGrowthEnabled"]=GetText(&m_VeinGrowthEnabled); } void CBasic::OnEditchangeIcegrowthenabled() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["IceGrowthEnabled"]=GetText(&m_IceGrowthEnabled); } void CBasic::OnEditchangeTiberiumdeathtovisceroid() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["TiberiumDeathToVisceroid"]=GetText(&m_TiberiumDeathToVisceroid); } void CBasic::OnEditchangeFreeradar() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["FreeRadar"]=GetText(&m_FreeRadar); } void CBasic::OnChangeInittime() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["InitTime"]=GetText(&m_InitTime); } void CBasic::UpdateStrings() { SetDlgItemText(IDC_LDESC, GetLanguageStringACP("BasicDesc")); SetDlgItemText(IDC_LNAME, GetLanguageStringACP("BasicName")); SetDlgItemText(IDC_LNEXTSCENARIO, GetLanguageStringACP("BasicNextScenario")); SetDlgItemText(IDC_LALTNEXTSCENARIO, GetLanguageStringACP("BasicAltNextScenario")); SetDlgItemText(IDC_LNEWINIFORMAT, GetLanguageStringACP("BasicNewIniFormat")); SetDlgItemText(IDC_LCARRYOVERCAP, GetLanguageStringACP("BasicCarryOverCap")); SetDlgItemText(IDC_LENDOFGAME, GetLanguageStringACP("BasicEndOfGame")); SetDlgItemText(IDC_LSKIPSCORE, GetLanguageStringACP("BasicSkipScore")); SetDlgItemText(IDC_LONETIMEONLY, GetLanguageStringACP("BasicOneTimeOnly")); SetDlgItemText(IDC_LSKIPMAPSELECT, GetLanguageStringACP("BasicSkipMapSelect")); SetDlgItemText(IDC_LOFFICIAL, GetLanguageStringACP("BasicOfficial")); SetDlgItemText(IDC_LIGNOREGLOBALAITRIGGERS, GetLanguageStringACP("BasicIgnoreGlobalAITriggers")); SetDlgItemText(IDC_LTRUCKCRATE, GetLanguageStringACP("BasicTruckCrate")); SetDlgItemText(IDC_LTRAINCRATE, GetLanguageStringACP("BasicTrainCrate")); SetDlgItemText(IDC_LPERCENT, GetLanguageStringACP("BasicPercent")); SetDlgItemText(IDC_LMULTIPLAYERONLY, GetLanguageStringACP("BasicMultiplayerOnly")); SetDlgItemText(IDC_LTIBERIUMGROWTHENABLED, GetLanguageStringACP("BasicTiberiumGrowthEnabled")); SetDlgItemText(IDC_LVEINGROWTHENABLED, GetLanguageStringACP("BasicVeinGrowthEnabled")); SetDlgItemText(IDC_LICEGROWTHENABLED, GetLanguageStringACP("BasicIceGrowthEnabled")); SetDlgItemText(IDC_LTIBERIUMDEATHTOVISCEROID, GetLanguageStringACP("BasicTiberiumDeathToVisceroid")); SetDlgItemText(IDC_LFREERADAR, GetLanguageStringACP("BasicFreeRadar")); SetDlgItemText(IDC_LINITIME, GetLanguageStringACP("BasicInitTime")); SetDlgItemText(IDC_LADDONNEEDED, GetLanguageStringACP("BasicAddOnNeeded")); #ifdef RA2_MODE GetDlgItem(IDC_LVEINGROWTHENABLED)->ShowWindow(SW_HIDE); GetDlgItem(IDC_VEINGROWTHENABLED)->ShowWindow(SW_HIDE); GetDlgItem(IDC_LTRAINCRATE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_TRAINCRATE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_ICEGROWTHENABLED)->ShowWindow(SW_HIDE); GetDlgItem(IDC_LICEGROWTHENABLED)->ShowWindow(SW_HIDE); GetDlgItem(IDC_TIBERIUMDEATHTOVISCEROID)->ShowWindow(SW_HIDE); GetDlgItem(IDC_LTIBERIUMDEATHTOVISCEROID)->ShowWindow(SW_HIDE); #endif SetWindowText(TranslateStringACP("Basic")); } void CBasic::OnEditchangeRequiredaddon() { CIniFile& ini=Map->GetIniFile(); ini.sections["Basic"].values["RequiredAddOn"]=GetText(&m_RequiredAddOn); if(ini.sections["Basic"].values["RequiredAddOn"]=="0") ini.sections["Basic"].values.erase("RequiredAddOn"); } void CBasic::PostNcDestroy() { // do not call PostNcDestroy as this is a member of FinalSunDlg //CPropertyPage::PostNcDestroy(); }