Instead of querying the engine version, we can create a giant feature struct with flags for the feature differences between engines.
Examples:
has_unlocked_picture_patch
dual_wield_behavior - combined hit (2k), multiple hits (2k3)
supports_reversed_states
supports_bottom_transparency
key_input_proc_style
battle_system_type - 2k, 2k3
max_actor_hp - 999 (2k), 9999 (2k3), custom value
max_variable_value
etc..
This could be used to implement features from third party patches. It would also allow game developers to customize these for EasyRPG games.
I would add some macro and/or template magic to transform these features into compile time values. This would allow custom games to hard code their behavior and not pay any runtime costs for unsupported behaviors.
[ ] Implement full feature set
[ ] Add helper functions to generate feature structs from all mainstream RPG_RT versions.
[ ] Add support for third party patch detection to enable patch features
[ ] Add support for compile time feature set for performance
Instead of querying the engine version, we can create a giant feature struct with flags for the feature differences between engines.
Examples:
etc..
This could be used to implement features from third party patches. It would also allow game developers to customize these for EasyRPG games.
I would add some macro and/or template magic to transform these features into compile time values. This would allow custom games to hard code their behavior and not pay any runtime costs for unsupported behaviors.