Refactor Overworld loading to use async tasks

Refactored Overworld::LoadSprites to use std::async for concurrent sprite loading, improving efficiency. Modified Overworld::LoadOverworldMaps to wait for all async tasks and check results for errors. Updated Overworld::LoadSpritesFromMap to use mutable_current_graphics() for mutable access to current graphics. Added mutable_current_graphics method to OverworldMap class. Optimized Sprite constructor to take a const reference to avoid unnecessary copying.
This commit is contained in:
Justin Scofield
2025-01-05 20:57:13 -05:00
parent 839449e85d
commit 510581ad1f
3 changed files with 19 additions and 9 deletions

View File

@@ -279,7 +279,7 @@ static const std::string kSpriteDefaultNames[]{
class Sprite : public GameEntity {
public:
Sprite() = default;
Sprite(std::vector<uint8_t> src, uint8_t overworld_map_id, uint8_t id,
Sprite(const std::vector<uint8_t>& src, uint8_t overworld_map_id, uint8_t id,
uint8_t x, uint8_t y, int map_x, int map_y)
: map_id_(static_cast<int>(overworld_map_id)),
id_(id),