An event function that changes the player 1's current character, and a function that changes the player 2's current character. It is simply a selection of None, Mario, Luigi, Peach, Toad, or Link for each function.
Similar to issues (SMBX64-Extended) Episode-wide Named Event Triggering #100 and (SMBX64-Extended) Event disabling by other events #101 , this second feature is something that is required to be stored in the save file data, although only five variables. Or it can use one variable that is bitwise, see below.
This is an event function that can enable or disable playable characters for the save file. This means that the user may select these characters on the save file selection, or change to them on the world map while paused. However, it does not "automatically switch" the playable character, similarly to how playing as a character using a character change block in an SMBX64 episode does not unlock them in the save file. To change the character AND disable a character at the same time, the user will pair it with the above event function.
This function should probably be stored in each event as a bitwise operator so it is only stored as one value per event. For example,
0=None (if the event's function has this value, no change is applied to the save file, and all SMBX64 events are converted to defaultly use this for example)
1=Mario
2=Luigi
4=Peach
8=Toad
16=Link
So if an event's unlocked characters value is 20, we and the runtime see that this event ENABLES Peach and Link in the save file and DISABLES Mario, Luigi, and Toad in the save file, due to 20 being the unique sum of 4 (Peach) and 16 (Link). If a 6th character ever gets added, their value would be 32, and the 7th would be 64... etc.
I have always disliked SMBX64 episodes that can only unlock characters via star doors or map locations; this means that the player has to go to that location with the player block if they want to use that character again, every time they resume their saved game! This is much more elegant and also allows for removing characters from the selection, such as for plot-related reasons.
The text was updated successfully, but these errors were encountered:
I agree with your idea, but not with your suggested implementation. Instead, I think it should be done like this:
Locked/unlocked Characters should be determined by compat.ini. That will allow it to be configurable on a per-level basis.
Events should be able to change the compat.ini entry of a level/episode. It is already planned to allow compai.ini files inside the Save Folder to overwrite their corresponding episode/level configurations, though I have yet to open an issue for that. Gonna aim to open it next week at the latest.
The Character Blocks could receive a special value. Adding them to new episodes will automatically activate the event, unless the designer opts out. In old episodes it will not enable the event by default, unless the compat.ini entry enable-character-block-unlock is set to true. That will allow to enhance old episodes like "Yoshi's Archipelago" without editing the files directly, by adding it to #54.
I agree with your idea, but not with your suggested implementation. Instead, I think it should be done like this:
1. Locked/unlocked Characters should be determined by _compat.ini_. That will allow it to be configurable on a per-level basis.
2. Events should be able to change the _compat.ini_ entry of a level/episode. It is already planned to allow compai.ini files inside the Save Folder to overwrite their corresponding episode/level configurations, though I have yet to open an issue for that. Gonna aim to open it next week at the latest.
3. The Character Blocks could receive a special value. Adding them to new episodes will automatically activate the event, unless the designer opts out. In old episodes it will not enable the event by default, unless the compat.ini entry `enable-character-block-unlock` is set to true. That will allow to enhance old episodes like "_Yoshi's Archipelago_" without editing the files directly, by adding it to [#54](https://github.com/Wohlstand/TheXTech/issues/54).
I do like the idea of per-level control, but I strongly feel like it belongs in the actual save file and not under a seperate compat.ini, which wasn't really intended for storing data specific to a play-through, whereas the save data file is.
An event function that changes the player 1's current character, and a function that changes the player 2's current character. It is simply a selection of None, Mario, Luigi, Peach, Toad, or Link for each function.
Similar to issues (SMBX64-Extended) Episode-wide Named Event Triggering #100 and (SMBX64-Extended) Event disabling by other events #101 , this second feature is something that is required to be stored in the save file data, although only five variables. Or it can use one variable that is bitwise, see below.
This is an event function that can enable or disable playable characters for the save file. This means that the user may select these characters on the save file selection, or change to them on the world map while paused. However, it does not "automatically switch" the playable character, similarly to how playing as a character using a character change block in an SMBX64 episode does not unlock them in the save file. To change the character AND disable a character at the same time, the user will pair it with the above event function.
This function should probably be stored in each event as a bitwise operator so it is only stored as one value per event. For example,
0=None (if the event's function has this value, no change is applied to the save file, and all SMBX64 events are converted to defaultly use this for example)
1=Mario
2=Luigi
4=Peach
8=Toad
16=Link
So if an event's unlocked characters value is 20, we and the runtime see that this event ENABLES Peach and Link in the save file and DISABLES Mario, Luigi, and Toad in the save file, due to 20 being the unique sum of 4 (Peach) and 16 (Link). If a 6th character ever gets added, their value would be 32, and the 7th would be 64... etc.
I have always disliked SMBX64 episodes that can only unlock characters via star doors or map locations; this means that the player has to go to that location with the player block if they want to use that character again, every time they resume their saved game! This is much more elegant and also allows for removing characters from the selection, such as for plot-related reasons.
The text was updated successfully, but these errors were encountered: