rfg-modding / Nanoforge

A modding tool for Red Faction Guerilla Re-Mars-Tered
MIT License
31 stars 3 forks source link

Split project files #69

Open Moneyl opened 1 year ago

Moneyl commented 1 year ago

This is an improvement I'd like to make to the ProjectDB after v1.0.0 of the rewrite. The current design stores all project data aside from buffers in one file. This makes loading and saving progressively slower when more maps are imported. Even if you're only opening or editing one of them. To fix this each map should have their own file so it only loads the data that is needed.

This introduces some issues like how to handle data shared between maps. Perhaps store a list of referenced objects and load them when a map is loaded, or create stub objects in memory that can be loaded on request. I'd like to avoid the latter since we'd have to add a bunch of stub checks to the code instead of just assuming that all EditorObject fields are valid.