diff --git a/MissionEditor/TriggerEditorDlg.cpp b/MissionEditor/TriggerEditorDlg.cpp index 44779e8..20ffa56 100644 --- a/MissionEditor/TriggerEditorDlg.cpp +++ b/MissionEditor/TriggerEditorDlg.cpp @@ -128,24 +128,31 @@ void CTriggerEditorDlg::UpdateDialog() while(m_Trigger.DeleteString(0)!=CB_ERR); m_Trigger.SetWindowText(""); - for(i=0;i=m_Trigger.GetCount()) curData=m_Trigger.GetCount()-1; + if (curData < 0) { + curData = 0; + } + if (curData >= m_Trigger.GetCount()) { + curData = m_Trigger.GetCount() - 1; + } - if(ini.sections["Triggers"].values.size()) m_Trigger.SetCurSel(0); + if (ini["Triggers"].Size()) { + m_Trigger.SetCurSel(0); + } for(i=0;iGetIniFile(); CString ID_T=GetFreeID(); - ini.sections["Triggers"].values[ID_T]=Map->GetHouseID(0, TRUE)+",,New trigger,0,1,1,1,0"; - ini.sections["Events"].values[ID_T]="0"; - ini.sections["Actions"].values[ID_T]="0"; + ini.SetString("Triggers", ID_T, Map->GetHouseID(0, TRUE) + ",,New trigger,0,1,1,1,0"); + ini.SetString("Events", ID_T, "0"); + ini.SetString("Actions", ID_T, "0"); //if(MessageBox("Trigger created. If you want to create a simple tag now, press Yes. The tag will be called ""New tag"", you should name it like the trigger (after you have set up the trigger).","Trigger created",MB_YESNO)) { CString ID_TAG=GetFreeID(); - ini.sections["Tags"].values[ID_TAG]="0,New tag,"; - ini.sections["Tags"].values[ID_TAG]+=ID_T; + ini.SetString("Tags",ID_TAG, "0,New tag," + ID_T); } ((CFinalSunDlg*)theApp.m_pMainWnd)->UpdateDialogs(TRUE); - int i; - for(i=0;iUpdateDialogs(TRUE); @@ -235,27 +235,38 @@ void CTriggerEditorDlg::OnEditchangeTrigger() CIniFile& ini=Map->GetIniFile(); int curSel=m_Trigger.GetCurSel(); - if(curSel<0) - { - m_TriggerOptions.m_currentTrigger=""; - if(m_TriggerOptions.m_hWnd) m_TriggerOptions.UpdateDialog(); - m_TriggerEvents.m_currentTrigger=""; - if(m_TriggerEvents.m_hWnd) m_TriggerEvents.UpdateDialog(); - m_TriggerActions.m_currentTrigger=""; - if(m_TriggerActions.m_hWnd) m_TriggerActions.UpdateDialog(); + if (curSel < 0) { + m_TriggerOptions.m_currentTrigger = ""; + if (m_TriggerOptions.m_hWnd) { + m_TriggerOptions.UpdateDialog(); + } + m_TriggerEvents.m_currentTrigger = ""; + if (m_TriggerEvents.m_hWnd) { + m_TriggerEvents.UpdateDialog(); + } + m_TriggerActions.m_currentTrigger = ""; + if (m_TriggerActions.m_hWnd) { + m_TriggerActions.UpdateDialog(); + } return; } int curInd=m_Trigger.GetItemData(curSel); - CString Trigger=*ini.sections["Triggers"].GetValueName(curInd); + auto const triggerId=ini["Triggers"].Nth(curInd).first; - m_TriggerOptions.m_currentTrigger=Trigger; - if(m_TriggerOptions.m_hWnd) m_TriggerOptions.UpdateDialog(); - m_TriggerEvents.m_currentTrigger=Trigger; - if(m_TriggerEvents.m_hWnd) m_TriggerEvents.UpdateDialog(); - m_TriggerActions.m_currentTrigger=Trigger; - if(m_TriggerActions.m_hWnd) m_TriggerActions.UpdateDialog(); + m_TriggerOptions.m_currentTrigger=triggerId; + if (m_TriggerOptions.m_hWnd) { + m_TriggerOptions.UpdateDialog(); + } + m_TriggerEvents.m_currentTrigger = triggerId; + if (m_TriggerEvents.m_hWnd) { + m_TriggerEvents.UpdateDialog(); + } + m_TriggerActions.m_currentTrigger = triggerId; + if (m_TriggerActions.m_hWnd) { + m_TriggerActions.UpdateDialog(); + } } void CTriggerEditorDlg::OnSelchangeTriggertab(NMHDR* pNMHDR, LRESULT* pResult) @@ -288,25 +299,21 @@ void CTriggerEditorDlg::OnPlaceonmap() CIniFile& ini=Map->GetIniFile(); int sel=m_Trigger.GetCurSel(); - if(sel<0) return; + if (sel < 0) { + return; + } + int curtrig=m_Trigger.GetItemData(sel); - - CString trigger=*ini.sections["Triggers"].GetValueName(curtrig); - - int i; + auto const triggerId = ini["Triggers"].Nth(curtrig).first; CString tag; - for(i=0;iGetIniFile(); int sel=m_Trigger.GetCurSel(); - if(sel<0) return; + if (sel < 0) { + return; + } int curtrig=m_Trigger.GetItemData(sel); - CString trigger=*ini.sections["Triggers"].GetValueName(curtrig); + auto const& triggerId = ini["Triggers"].Nth(curtrig).first; - CString ID_T=GetFreeID(); - ini.sections["Triggers"].values[ID_T]=ini.sections["Triggers"].values[trigger]; - ini.sections["Events"].values[ID_T]=ini.sections["Events"].values[trigger]; - ini.sections["Actions"].values[ID_T]=ini.sections["Actions"].values[trigger]; + CString newId = GetFreeID(); + ini.SetString("Triggers", newId, ini["Triggers"][triggerId]); + ini.SetString("Events", newId, ini["Events"][triggerId]); + ini.SetString("Actions", newId, ini["Actions"][triggerId]); - ini.sections["Triggers"].values[ID_T]=SetParam(ini.sections["Triggers"].values[ID_T], 2, GetParam(ini.sections["Triggers"].values[ID_T], 2) + " Clone"); + ini.SetString("Triggers", newId, SetParam(ini["Triggers"][newId], 2, GetParam(ini["Triggers"][newId], 2) + " Clone")); { - CString ID_TAG=GetFreeID(); - ini.sections["Tags"].values[ID_TAG]=(CString)"0,"+GetParam(ini.sections["Triggers"].values[ID_T], 2)+","; - ini.sections["Tags"].values[ID_TAG]+=ID_T; + CString newTagId = GetFreeID(); + ini.SetString("Tags", newTagId, "0," + GetParam(ini["Triggers"][newId], 2) + ","); + ini.SetString("Tags", newTagId, newId); } ((CFinalSunDlg*)theApp.m_pMainWnd)->UpdateDialogs(TRUE); - int i; - for(i=0;i