enigma-dev / RadialGM

A native IDE for ENIGMA written in C++ using the Qt Framework.
GNU General Public License v3.0
47 stars 21 forks source link

Default Values #122

Closed RobertBColton closed 4 years ago

RobertBColton commented 4 years ago

This is really odd and occurs on master. For some reason the x and y scale are invalid when loading a GMX, but the x and y value of instances is correct. I can reproduce it loading TKG's Key to Success GMX project. I looked high and low and can't seem to find the source of the bug, the Room proto seems correct and has the correct GMX alias of the field name.

RobertBColton commented 4 years ago

Ok, not a bug, but still an issue, I was actually loading the GM81, not the GMX. GameMaker 8.1 does not have instance scale at all, or any of the other properties also being complained about, such as color or instance name. What we need then is better defaults.

I notice that in the room proto, we actually do provide some defaults now. https://github.com/enigma-dev/enigma-dev/blob/d5e8e2f957f12192ca817087434f3cef46f012f7/shared/protos/Room.proto#L69

However, it seems our new message model is blocking them. https://github.com/enigma-dev/RadialGM/blob/356b0edeaba4bbb426407c16c3d4663e4b04f9dc/Models/MessageModel.cpp#L134

Then in the room view as an example, we are providing our own defaults by checking if the QVariant is valid. https://github.com/enigma-dev/RadialGM/blob/356b0edeaba4bbb426407c16c3d4663e4b04f9dc/Widgets/RoomView.cpp#L202

This is a bad idea because we are being redundant about the defaults. We should probably come to a consensus on how to deal with defaults and have them in a single location.

fundies commented 4 years ago

duplicate of https://github.com/enigma-dev/enigma-dev/issues/1872

RobertBColton commented 4 years ago

As of #123 you can now explicitly request the model provide the default when accessing data. This is only acceptable to do in specific cases, such as for x/y scale where it's known that GMK did not have those values.