Skip to content

Conversation

@NQNStudios
Copy link
Collaborator

@NQNStudios NQNStudios commented Aug 1, 2025

I threw the whole scenario archive in my scenarios folder and found some bugs.

  • Some scenarios like 100 Evil Sliths don't start with a letter and the alphabetical buttons don't handle that (it will crash)
  • Scenarios with unrecognized special nodes will show an error even if you're just loading the header for the scenario picker

This fixes them and adds a '#' button which pages the picker to the first page of custom scenarios.

@CelticMinstrel
Copy link
Member

Scenarios with unrecognized special nodes will show an error even if you're just loading the header for the scenario picker

How can a legacy scenario have an unrecognized special node?

@NQNStudios
Copy link
Collaborator Author

It happens here:

https://github.com/calref/cboe/blob/master/src/scenario/special.cpp#L525

I didn't check which scenarios were the ones that caused it.

@CelticMinstrel
Copy link
Member

Would that be difficult to check?

@NQNStudios
Copy link
Collaborator Author

NQNStudios commented Aug 2, 2025

Not too difficult, no.

When I say 'the whole scenario archive', I'm referring to this one arranged by The Lurker via Kelandon's archive and other sources. I've copied it to a repository here in which I ran a script to extract every zip file, because each scenario was in a separate one. (I'm experimenting with the possibility of shipping Itch Edition with the complete archive, which would obviate the need for an online scenario browser unless/until we start seeing new scenario releases again.)

Printing the identity of the scenarios that contain unrecognized nodes, it turns out there's only one.

Unrecognized node type found: 115
Unrecognized node type found: 232
Unrecognized node type found: 33
Unrecognized node type found: 160
scenario.scen_name: 
file_to_load: "/Users/nat/Library/Application Support/Blades of Exile/Scenarios/BoEArchFull/Normal/Suspension of Tranquility, The/Suspension of Tranquility/tranquil.exs"

Its name field is blank but there's the filename and node numbers.

EDIT: Wait a sec, I've found more, but I think they only show the error when you enter the scenario (probably because the unrecognized nodes are on a town or outdoor node, not scenario node?)

@CelticMinstrel
Copy link
Member

I've copied it to a repository here in which I ran a script to extract every zip file, because each scenario was in a separate one.

Did you extract the zips on a Mac? Did you manually convert all the .meg files to data-fork files?

Printing the identity of the scenarios that contain unrecognized nodes, it turns out there's only one.
Its name field is blank but there's the filename and node numbers.
EDIT: Wait a sec, I've found more, but I think they only show the error when you enter the scenario (probably because the unrecognized nodes are on a town or outdoor node, not scenario node?)

Okay, comparing those numbers to here doesn't reveal any matches, so I think there's a good chance that this just comes from garbage data in the file. Not sure how that could've happened though…

@NQNStudios
Copy link
Collaborator Author

Did you extract the zips on a Mac?

Yes.

Did you manually convert all the .meg files to data-fork files?

No, should I? How do I do that?

@CelticMinstrel
Copy link
Member

No, should I?

I think it would be a good idea, because it enables the files to be stored on an NTFS filesystem.

How do I do that?

I found this answer on StackOverflow. It's old, so I don't know if it'll still work on MacOS 15. (I also don't know what happens to resource forks when stored on an APFS drive…)

@NQNStudios
Copy link
Collaborator Author

NQNStudios commented Aug 2, 2025

To be honest I don't even know what a resource file vs resource fork vs data fork is. This stuff is from a few years before the first time I had my own computer. Most of my searches are not turning up anything on MEG as a standard MacOS file type, they're talking about modern formats for unrelated projects.

That StackOverflow gives this one-liner, but it's unclear what to replace with what when invoking it...

cp resource_file/..namedfork/rsrc resource_fork

@CelticMinstrel
Copy link
Member

Something like this, maybe?

mv something.meg something.meg.temp
cp something.meg.temp/..namedfork/rsrc something.meg

@NQNStudios
Copy link
Collaborator Author

Closing in favor of #788

@NQNStudios NQNStudios closed this Aug 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants