Adapting classes to use lights
Obviously, each and every single class that does any rendering in our game does it differently. Rendering the same graphics to different types of material maps is no exception to this rule. Let's see how every light-supporting class should implement their respective Draw
methods in order to stay in sync with our lighting system.
The Map class
The first class we need to deal with is the Map
class. It will be a bit different due to the way it handles the drawing of tiles. So let's take a look at what needs to be added in:
class Map : ..., public LightUser { public: ... void Draw(MaterialMapContainer& l_materials, Window& l_window, int l_layer); protected: ... Void CheckTextureSizes(int l_fromZ, int l_toZ); std::array<sf::RenderTexture, Sheet::Num_Layers> m_textures; ... };
So far, so good! The Map
class is now using the LightUser
interface. The m_textures
data member is an established array that existed before all of this...