diff --git a/include/AssetManager.h b/include/AssetManager.h index 0d7a699..14d7bad 100644 --- a/include/AssetManager.h +++ b/include/AssetManager.h @@ -27,8 +27,8 @@ public: void createProjectile(Vector2D pos, Vector2D velocity, int scale, int range, int speed, const char* texturePath, Entity* owner); void createPowerup(Vector2D pos, std::function pickupFunc, std::string texturePath); - Vector2D calculateSpawnPosition(int width, int height); - template T calculateType(int amount); + Vector2D calculateSpawnPosition(Vector2D size, Vector2D spawnArea); + template [[deprecated]] T calculateRandomType(int amount); //texture management void addTexture(std::string id, const char* path); diff --git a/src/AssetManager.cpp b/src/AssetManager.cpp index 4bf00be..252fab5 100644 --- a/src/AssetManager.cpp +++ b/src/AssetManager.cpp @@ -74,17 +74,18 @@ void AssetManager::createPowerup(Vector2D pos, std::function pic powerups.addGroup((size_t)Entity::GroupLabel::POWERUPS); } -Vector2D AssetManager::calculateSpawnPosition(int width, int height) +Vector2D AssetManager::calculateSpawnPosition(Vector2D size, Vector2D spawnArea) { Vector2D spawnPos = Vector2D(-1, -1); for(int i = 0; i <= SPAWN_ATTEMPTS; i++) { + SDL_Rect spawnRect = { - rand() % (SCREEN_SIZE_WIDTH - width), - rand() % (SCREEN_SIZE_HEIGHT - height), - width, - height + rand() % (int)(spawnArea.x - size.x), + rand() % (int)(spawnArea.y - size.y), + size.x, + size.y }; std::vector colliders = this->man->getGame()->collisionHandler->getColliders({Entity::GroupLabel::MAPTILES}); @@ -103,7 +104,7 @@ Vector2D AssetManager::calculateSpawnPosition(int width, int height) } template -T AssetManager::calculateType(int amount) +T AssetManager::calculateRandomType(int amount) { T type = T(rand() % amount); return type;