invertika_game.SpawnArea.update C# (CSharp) Method

update() public method

public update ( ) : void
return void
        public void update()
        {
            //            if (mNextSpawn > 0)
            //                mNextSpawn--;
            //
            //            if (mNextSpawn == 0 && mNumBeings < mMaxBeings && mSpawnRate > 0)
            //            {
            //                MapComposite *map = getMap();
            //                const Map *realMap = map->getMap();
            //
            //                // Reset the spawn area to the whole map in case of dimensionless zone
            //                if (mZone.w == 0 || mZone.h == 0)
            //                {
            //                    mZone.x = 0;
            //                    mZone.y = 0;
            //                    mZone.w = realMap->getWidth() * realMap->getTileWidth();
            //                    mZone.h = realMap->getHeight() * realMap->getTileHeight();
            //                }
            //
            //                // Find a free spawn location. Give up after 10 tries
            //                int c = 10;
            //                Point position;
            //                const int x = mZone.x;
            //                const int y = mZone.y;
            //                const int width = mZone.w;
            //                const int height = mZone.h;
            //
            //                Being *being = new Monster(mSpecy);
            //
            //                if (being->getModifiedAttribute(ATTR_MAX_HP) <= 0)
            //                {
            //                    LOG_WARN("Refusing to spawn dead monster " << mSpecy->getId());
            //                    delete being;
            //                    being = 0;
            //                }
            //
            //                if (being)
            //                {
            //                    do
            //                    {
            //                        position = Point(x + rand() % width, y + rand() % height);
            //                        c--;
            //                    }
            //                    while (!realMap->getWalk(position.x / realMap->getTileWidth(),
            //                                             position.y / realMap->getTileHeight(),
            //                                             being->getWalkMask()) && c);
            //
            //                    if (c)
            //                    {
            //                        being->addListener(&mSpawnedListener);
            //                        being->setMap(map);
            //                        being->setPosition(position);
            //                        being->clearDestination();
            //                        GameState::enqueueInsert(being);
            //
            //                        mNumBeings++;
            //                    }
            //                    else
            //                    {
            //                        LOG_WARN("Unable to find a free spawn location for monster "
            //                                 << mSpecy->getId() << " on map " << map->getName()
            //                                 << " (" << x << ',' << y << ','
            //                                 << width << ',' << height << ')');
            //                        delete being;
            //                    }
            //                }
            //
            //                // Predictable respawn intervals (can be randomized later)
            //                mNextSpawn = (10 * 60) / mSpawnRate;
            //            }
        }