Code-only Proto Model

Reporter: RobertBColton  |  Status: open  |  Last Modified: November 10, 2018, 05:24:06 PM

Alright, fundies asked me to do this. Simple change here to convert the old drag and drop actions to code as soon as they are read by the GMK or GMX readers. He also wanted Event message to not have integer ids and subids but instead use a string name like the SOG format.

  • Proto2ES does NOT do the actions->gml conversion now
  • GMK/GMX converts the actions->gml with some special handling (they are emplaced at the back of a vector that is passed to Actions2Code)
  • Actions2Code logic was moved from emake/Proto2ES.cpp to its own source in libEGM/action.cpp and libEGM/action.h
  • A header CommandLine/Util.h was created so that we don't keep copying and pasting string_replace_all everywhere
  • Event no longer has integer based ids and has only a string name based on the same one used by SOG
  • GMK/GMX use the shared event parser to convert their integer event ids into a string name
  • Proto2ES builds a map like SOG in order to convert the event string names back into ids that are usable by EnigmaStruct

The idea here is that we do not plan on serializing or implementing the old drag and drop format anywhere in the UI. We still want people to be able to run games, so we keep the converted code for them. The new action format, if we get around to doing it, will use JDI to parse the GML and comments into a UI like GMS2.

>Codecov Report

Merging #1379 into master will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master    #1379   +/-   ##
  Coverage   16.82%   16.82%           
  Files         165      165           
  Lines       17307    17307           
  Hits         2912     2912           
  Misses      14395    14395

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8c022b7...0e0e13c. Read the comment docs.

Please sign in to post comments, or you can view this issue on GitHub.