You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Initialize a new project by navigating to an empty directory.
Point Soulstruct towards DS1R installation as normal.
Choose "Yes, import all game files".
Click through the 'Region Cleanup' prompt (choice doesn't matter).
Choose "Yes, translate them".
Choose "Yes, export them".
Choose "Yes, include them".
Navigate to the "Entities" tab ("m10_00_00_00 [Depths]" is chosen by default).
Click the "Write Entities" button.
Navigate to the "Events" tab ("m10_00_00_00 [Depths]" is chosen by default).
Attempt to compile the script.
At this point, compilation will fail with the following error:
Issue
During project initialization, if the user chooses to translate entities the offer_entities_export function is called. During which, if the user also chooses export the entities Python modules, the user is offered inclusion of "pre-identified game IDs".
Answering yes to all of these ends up generating entities Python modules that include the pre-identified IDs from the vanilla_entities folder. For entities concerning the common event script, these are the only contents of the entity file and it can not be regenerated. However, each of the maps' entity files are generated using MSB.write_entities_module and specifying the append_to_module kwarg.
The issue is that if a map's entity file is regenerated using the "Write Entities" button, the resulting MSB.write_entities_modulecall does not attempt to append the respective "vanilla_entities" file to the resulting entities module. The result is that references to the Flags module fail during compilation, showing the error above.
Note that if the event script is compiled before the entities file is regenerated excluding the Flags class, then the error won't occur until Soulstruct is restarted. EMEVD.ENTITIES_ENUM_MANAGER seems to hold onto enums that have been imported, even if that enum is specifically not imported in subsequent decompilations, via its __CACHED_MODULE_CLASSES property. Restarting Soulstruct resets this cache of imported modules.
The text was updated successfully, but these errors were encountered:
Steps to Reproduce:
python -m soulstruct
.At this point, compilation will fail with the following error:
Issue
During project initialization, if the user chooses to translate entities the
offer_entities_export
function is called. During which, if the user also chooses export theentities
Python modules, the user is offered inclusion of "pre-identified game IDs".Answering yes to all of these ends up generating
entities
Python modules that include the pre-identified IDs from the vanilla_entities folder. For entities concerning the common event script, these are the only contents of the entity file and it can not be regenerated. However, each of the maps' entity files are generated usingMSB.write_entities_module
and specifying theappend_to_module
kwarg.The issue is that if a map's entity file is regenerated using the "Write Entities" button, the resulting
MSB.write_entities_module
call does not attempt to append the respective "vanilla_entities" file to the resulting entities module. The result is that references to theFlags
module fail during compilation, showing the error above.Note that if the event script is compiled before the entities file is regenerated excluding the
Flags
class, then the error won't occur until Soulstruct is restarted.EMEVD.ENTITIES_ENUM_MANAGER
seems to hold onto enums that have been imported, even if that enum is specifically not imported in subsequent decompilations, via its__CACHED_MODULE_CLASSES
property. Restarting Soulstruct resets this cache of imported modules.The text was updated successfully, but these errors were encountered: