@@ -153,16 +153,6 @@ void Game::GenerateOutput()
153153
154154void Game::LoadData ()
155155{
156- // Load textures
157- LoadTexture (" Assets/Laser.png" );
158- LoadTexture (" Assets/Ship01.png" );
159- LoadTexture (" Assets/Ship02.png" );
160- LoadTexture (" Assets/Ship03.png" );
161- LoadTexture (" Assets/Ship04.png" );
162- LoadTexture (" Assets/Farback01.png" );
163- LoadTexture (" Assets/Farback02.png" );
164- LoadTexture (" Assets/Stars.png" );
165-
166156 // Create player's ship
167157 mShip = new Ship (this );
168158 mShip ->SetPosition (Vector2 (100 .0f , 384 .0f ));
@@ -208,36 +198,36 @@ void Game::UnloadData()
208198 mTextures .clear ();
209199}
210200
211- void Game::LoadTexture (const char * fileName)
212- {
213- // Load from file
214- SDL_Surface* surf = IMG_Load (fileName);
215- if (!surf)
216- {
217- SDL_Log (" Failed to load texture file %s" , fileName);
218- return ;
219- }
220-
221- // Create texture from surface
222- SDL_Texture* text = SDL_CreateTextureFromSurface (mRenderer , surf);
223- SDL_FreeSurface (surf);
224- if (!text)
225- {
226- SDL_Log (" Failed to convert surface to texture for %s" , fileName);
227- return ;
228- }
229-
230- mTextures .emplace (fileName, text);
231- }
232-
233- SDL_Texture * Game::GetTexture (const char * fileName)
201+ SDL_Texture* Game::GetTexture (const std::string& fileName)
234202{
235203 SDL_Texture* tex = nullptr ;
204+ // Is the texture already in the map?
236205 auto iter = mTextures .find (fileName);
237206 if (iter != mTextures .end ())
238207 {
239208 tex = iter->second ;
240209 }
210+ else
211+ {
212+ // Load from file
213+ SDL_Surface* surf = IMG_Load (fileName.c_str ());
214+ if (!surf)
215+ {
216+ SDL_Log (" Failed to load texture file %s" , fileName.c_str ());
217+ return nullptr ;
218+ }
219+
220+ // Create texture from surface
221+ tex = SDL_CreateTextureFromSurface (mRenderer , surf);
222+ SDL_FreeSurface (surf);
223+ if (!tex)
224+ {
225+ SDL_Log (" Failed to convert surface to texture for %s" , fileName.c_str ());
226+ return nullptr ;
227+ }
228+
229+ mTextures .emplace (fileName.c_str (), tex);
230+ }
241231 return tex;
242232}
243233
0 commit comments