Пример #1
0
void setupGame(bool loadUpWorld) {
	currentLevel = 1;

	// Reset entity manager.
	memset(&eManager, 0, sizeof(eManager));
	sf2d_set_clear_color(RGBA8(0x82, 0x6D, 0x6C, 0xFF));

	if (!loadUpWorld) {
		initNewMap();
		initPlayer();
		airWizardHealthDisplay = 2000;
		int i;
		for (i = 0; i < 5; ++i) {
			trySpawn(500, i);
		}
		addEntityToList(newAirWizardEntity(630, 820, 0), &eManager);
		player.p.hasWonSaved = false;
	} else {
		initPlayer();
		loadWorld(currentFileName, &eManager, &player, (u8*) map, (u8*) data);
	}

	initMiniMap(loadUpWorld);
	shouldRenderMap = false;
	mScrollX = 0;
	mScrollY = 0;
	zoomLevel = 2;
    sprintf(mapText,"x%d",zoomLevel);
	initGame = 0;
}
Пример #2
0
void Level::tick()
{
	trySpawn(1);

	int tilesTickAttempts = w * h / 50;
	for (int i = 0; i < tilesTickAttempts; ++i)
	{
		int xt = random->nextInt(w);
		int yt = random->nextInt(h);
		getTile(xt, yt)->tick(this, xt, yt);
	}
	for (list<Entity*>::iterator it = entities.begin(); it != entities.end(); it++ )
	{
		Entity * e = *it;
		int xto = e->x >> 4;
		int yto = e->y >> 4;

		e->tick();

		if (e->removed)
		{
			removeEntity(xto, yto, e);
			//we should not delete player, because it will freeze on death
			//we should not delete furniture, because it is used in FurnitureItem, when taken
			if (!e->instanceOf(PLAYER) && !e->instanceOf(FURNITURE))
				delete e;
			it = entities.erase(it);
		}
		else
		{
			int xt = e->x >> 4;
			int yt = e->y >> 4;

			if (xto != xt || yto != yt)
			{
				removeEntity(xto, yto, e);
				insertEntity(xt, yt, e);
			}
		}
	}
}
Пример #3
0
void setupGame(bool loadUpWorld){
    currentLevel = 1;
    
    // Reset entity manager.
    memset(&eManager, 0, sizeof(eManager));
    sf2d_set_clear_color(RGBA8(0x82, 0x6D, 0x6C, 0xFF));
    
    if(!loadUpWorld){
        initNewMap();
        initPlayer();
        airWizardHealthDisplay = 2000;
        int i;
        for(i=0;i<5;++i){ 
            trySpawn(500, i);    
        }
        addEntityToList(newAirWizardEntity(630,820,0), &eManager);
    } else {
        initPlayer();
        loadWorld(currentFileName, &eManager, &player, (u8*)map, (u8*)data);
    }
    
    initMiniMap(loadUpWorld);
    initGame = 0;  
}