CryExtension_Ref

Over the years CRYENGINE has grown into a complex piece of software which poses quite a challenge to newcomers and experienced users alike trying to understand, configure, run and possibly extend it. Refactoring into extensions should allow simpler customization. Existing features can be unplugged (at least to some degree), replaced, customized as well as new features added.

The framework uses the concept of shared pointers and is implemented in a way to enforce their consistent usage which should help reducing the chance of resource leaks. Moreover, a set of C++ templates wrapped in a few macros is provided for convenience and to encourage engine refactoring into extensions. This glue code efficiently implements all base services and registers extensions within the engine. Additionally, a few helper functions implement type safe casting of interface pointers, querying the IDs of extension interfaces, and convenient instantiation of extension classes.