diff --git a/MissionEditor/TriggerEventsDlg.cpp b/MissionEditor/TriggerEventsDlg.cpp index a5d6526..7084ab3 100644 --- a/MissionEditor/TriggerEventsDlg.cpp +++ b/MissionEditor/TriggerEventsDlg.cpp @@ -435,9 +435,13 @@ void CTriggerEventsDlg::OnSelchangeParameter() int original_cuparam = curparam; #ifdef RA2_MODE CString Param1 = GetParam(g_data["EventsRA2"][GetParam(EventData, startpos)], 1); + // 3rd position control code CString Code = GetParam(g_data["ParamTypes"][Param1], 2); - //MessageBox(Param1, Code); - if (atoi(Code) == 2) curparam--; + + // means there are parameters taken up 2 slots, even if only 1 is meaningful + if (atoi(Code) == 2) { + curparam--; + } #endif // END FIx diff --git a/MissionEditor/inlines.h b/MissionEditor/inlines.h index 5fc9856..1ff78ae 100644 --- a/MissionEditor/inlines.h +++ b/MissionEditor/inlines.h @@ -88,6 +88,11 @@ inline CString GetUnitPictureFilename(const CString& artSectionId, DWORD dwPicIn return {}; } +/** +* @brief Retrieve a stringified parameter from a serialized string, concated with ',' +* @param data Serialized string input +* @param param Nth param to retrieve, starts from 0 +*/ inline CString GetParam(const CString& data, const int param) { int paramStrPos = 0;