New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[OTR Archive] Move shared scenes out of nonmq/mq folders #3191
[OTR Archive] Move shared scenes out of nonmq/mq folders #3191
Conversation
i vote yes we do it it sounds like a really good idea |
I also vote yes, the alignment PR now merged and this PR would indeed make things way easier for textures packs makers |
I have elected to use a regex pattern in OTRExporter and ZAPDTR to filter for only explicit scenes that will have MQ variants (this makes it so theives hideout and ganons collapse considered shared scenes). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
one non-blocking comment
int16_t inNonSharedScene = (sceneNum >= SCENE_DEKU_TREE && sceneNum <= SCENE_ICE_CAVERN) || | ||
sceneNum == SCENE_GERUDO_TRAINING_GROUND || sceneNum == SCENE_INSIDE_GANONS_CASTLE; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i feel like we do something similar in quite a few places throughout the codebase. i know changing the scene order would break things, but i think it'd be nice to come up with a reusable reliable source of truth for stuff like "is this scene a dungeon" and "is this scene the same in mq and vanilla"
that feels like code cleanup and out of scope for this PR though
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, some of them are dungeons + bosses, or all of ganons scenes instead of just the trials part. So those aren't useful here. But agree overall that we can try to clean up and move those to a similar location.
634a8c0
to
82b66d5
Compare
This is a PoC and request for comment on the possibility of moving shared scenes between
mq
andnonmq
to a new common folder in the OTR calledshared
.After the work from #3161, all roms should have the same exact "name" for the same textures (aligned with MQ debug names), so moving the common scenes to a shared location will cut down the amount of duplicate textures that a texture pack maker has to implement.
Although texture names are synced, other resource types do not share names yet (DList, VTX, etc). Currently this is not an issue as OTR patching would just place the mq ones side by side the nonmq ones, and nonmq will have the higher priority so scenes will load fine. Synchronizing these names will only really matter once scene editing support via mod OTRs becomes available, so I don't consider that a blocker for this proposal.
The way this is handled is the xml definitions already has a breakdown of
dungeons
,indoor
,overworld
andmisc
scenes. So rather than applying thenonmq
/mq
divide to "all" themes, I have moved the split to apply only to the scenes defined in thedungeons
folder, and the rest now are placed under theshared
folder.Something to note is that the
dungeons
folder has more than just the actual MQ dungeons, it also includes Thieves' Hideout, Boss rooms, Outside Ganon's Castle, and Ganons Tower/Castle Collapse. We could technically move these xml definitions out to another folder to further reduce the common scenes. Alternatively we could build a map of the scenes we want split, but this map would need to exist both in ZAPD and OTRExporter.EDIT: I've decided to use regex to search for the explicit dungeons (as seen in OTRExporter/ZAPDTR PRs)
Depends on HarbourMasters/ZAPDTR#16
Depends on HarbourMasters/OTRExporter#11
Build Artifacts