Events with background colors had their highlighting behavior disabled, because since an event has to be selected to add a color, users thought the color adding didn't work. However it was pointed out in #4129 that users still would like to know which event is selected. So this PR attempts to solve the problem by drawing a border over a selected event if that event has a background color.
1) Fixes the ship and wing dialog resizing for both sexp help and arrival/departure cues
2) Restores the sexp help in the Mission Goals dialog, which had been broken since the mini-help-box was added
PR #3342 meant that occasionally FRED would try to save a message that didn't exist. Make sure the old saved index doesn't point past the end of the valid message list.
Fixes#3996.
Instead of saving based on the m_cur_msg index, which may have been reset to -1, save on the most recent positive index. This should keep track of modified text and dropdowns even when m_cur_msg is set to -1 when the message list loses focus.
Fixes#3308.
Restores the MFC functions that were taken out in #3073. These functions appeared redundant, but they were actually necessary to intercept the MFC handling of Enter and Escape. In addition to fixing that behavior, this PR also adds some clarifying comments and renames some functions to prevent confusion.
Add FRED comments. These aren't the typical source-code style comments that are embedded in mission or table files; these are regular strings that are stored as mission data. You might think of them as annotations. Right-click on any node in the event tree and click on Edit Comment to add one. The tree node will then show a different icon and the comment will be visible as a tooltip when you mouse over the node text.
This adds the titular feature, as well as FRED support. There are also some associated minor UI fixes in FRED and some cleanup in missiongoals.cpp. And "Event Flags" are now a thing in case we want to add any other flags in the future.
Not resizing the Messages vector here was leading to a debug error about an out-of-range vector subscript, and who knows what other problems were being caused by overwriting whatever memory was after the Messages vector. There's no equivalent problem when parsing, because as each message is parsed, it gets pushed onto the back of the vector instead of assigned directly to an index.