That's definitely an idea...
Thu Dec 27, 2018 10:29am

Missed Christmas release so maybe Feb 2019 (19th anniversary of NE) would be a good goal to aim for then.

I have the parser, Gmail just looks like it decided I'm not allowed to download it anymore...

Here's what I see

Potential thoughts using parser off the top of my head:
* Use your parser as a base (if that's okay).
* Rewrite in something I'm more versed at like Java.
* Load each screen into some object like so:

* Story class:
* int storyId
* String storyName (ex: Wry Humor, Menal Condition, etc)
* boolean isParseSuccessful - flag if parse of story was successful
* List<String> errorMessages - if want to possibly continue on errors but hold them some place for later. Error messages added to list in order they appear.
* List<StoryPage> pages - StoryPage contains page information. Potentially switch to map to avoid duplicate page ids?

* StoryPage class: Used to hold each screen info for each story.
* int sourceStoryId - Story id which page belongs to.
* int pageId
* String originalSubName - name of original sub routine in source file.
* String pageText
* boolean isParsed - maybe not needed. Flag to set if parsing of page was finished
* String statusMessage - Generic message or note for page parsing, could be error or just info.
* List<PageChoice> pageChoices

* PageChoice class: Used to hold each page's choices information.
* String choiceText
* boolean isParsed - same as above. maybe left out
* String statusMessage - ditto
* int choiceId - Choice id per page. Ex: sourePageId = 123 and choiceId = 1.
* int sourcePageId - Page choice is from
* int destinationPageId - Page choice will send you to if picked.
* String destinationSubName - name of sub routine in source that is specified for that choice.

Parsing will probably take multiple iterations to populate the objects above.
Flow something like:
1st pass: Populate stories without page information. Generate story id, story name and set flags.
2nd pass: Populate all page information as well as choices but do not fill in destination page ids as they may have not been populated yet. DO fill in destinationSubName for each choice though. That will be used in pass #3.
3rd pass: Populate choice destination page ids by iterating through each choice and finding the matching page subName with the set destinationSubName in pass #2.

After the data can be outputted to the multiple .dat files in the format used in Wry COBOL. (Or whatever else really...)

  • So your code is kinda split up like this:Puckdropper, Mon Dec 24 3:15pm
    SUB name STORY text OPTIONS choices END SUB So parsing things into screens just means picking up the sub declarations and figuring out where the options go. I did some of that when I got into that... more
    • That's definitely an idea... ☻ Erik, Thu Dec 27 10:29am
      • Looks like there's a "Looks safe" option you can try clicking on. Hard to tell if it's actually a hyperlink or not. Modern web design sucks. You're welcome to use whatever you want from the parser... more
        • Nope. No luck.Erik, Fri Dec 28 2:59pm
          Clicking on the "looks safe" didn't change anything except remove the warning from the email. Google still won't let me download the file. Edit: Started working on the parser today from scratch... more
          • So my parser code probably wouldn't help much anyway. If you still want it, I'll find some way to get it to you... probably upload it to my website.
            • If it's not too much trouble..Erik_, Sat Dec 29 4:14am
              I would like to still check it out again. You might have some ideas and such that I would have missed otherwise. Here is a link to the current status of my hacked together parser I've thrown together ... more
              • Here ya goPuckdropper, Sun Dec 30 9:53pm
       I got lazy and this is the same file I sent you. I don't remember if I made any changes since then.
                • Thanks!Erik_, Wed Jan 2 2:39pm
                  Didn't have time yet to go through it too much but I see you also have what looks like multiple passes as well as what I didn't notice until later on that MOST of the game uses SELECT/CASE to sub... more
Click here to receive daily updates
"Don't quote me." - Erik