// ********************************************************************************************** // // // // ********************************************************************************************** // void classMap::drawMap() { if (bg1_surface.width > 0 && game_data.stages[stage_number].maps[number].backgrounds[0].speed == 0.0) { for (int i=0; i<mapSurface.width/bg1_surface.width+1; i++) { graphLib.copyArea(st_position(i*bg1_surface.width, game_data.stages[stage_number].maps[number].backgrounds[0].adjust_y), &bg1_surface, &mapSurface); } bg1_surface.freeGraphic(); } if (bg2_surface.width > 0 && game_data.stages[stage_number].maps[number].backgrounds[1].speed == 0.0) { std::cout << "classmap::loadMap - showing bg2 as static" << std::endl; for (int i=0; i<mapSurface.width/bg2_surface.width+1; i++) { graphLib.copyArea(st_position(i*bg2_surface.width, game_data.stages[stage_number].maps[number].backgrounds[1].adjust_y), &bg2_surface, &mapSurface); } bg2_surface.freeGraphic(); } struct st_position pos_origin; struct st_position pos_destiny; for (int i=0; i<MAP_W; i++) { for (int j=0; j<MAP_H; j++) { // level 1 pos_origin.x = map_tiles.tiles[i][j].tile1.x; pos_origin.y = map_tiles.tiles[i][j].tile1.y; pos_destiny.x = i*TILESIZE; pos_destiny.y = j*TILESIZE; graphLib.placeTile(pos_origin, pos_destiny, &mapSurface); // level 2 pos_origin.x = map_tiles.tiles[i][j].tile2.x; pos_origin.y = map_tiles.tiles[i][j].tile2.y; graphLib.placeTile(pos_origin, pos_destiny, &mapSurface); } } }
/// @TODO: fix animation. investigate a better way for drawing it (code is way too confusing) void classMap::redraw_boss_door(bool is_close, int nTiles, int tileX, short player_number) { int k, tileCount; //is_close = false; // THIS IS A TEMPORARY FIX //std::cout << "classMap::redraw_boss_door - is_close: " << is_close << std::endl; input.waitTime(10); //for (k=0; k<tilePieces; k++) { for (k=0; k<nTiles; k++) { tileCount = nTiles; //if (is_close == false) { std::cout << "classMap::redraw_boss_door - nTiles: " << nTiles << ", tilePieces: " << tilePieces << ", tileCount: " << tileCount << std::endl; } // redraw screen showMap(); graphLib.updateScreen(); int tiles_showed; if (is_close == false) { tiles_showed = k; } else { tiles_showed = 0; } for (int i=0; i<MAP_W; i++) { for (int j=0; j<MAP_H; j++) { if (map_tiles.tiles[i][j].tile3.x != -1 && map_tiles.tiles[i][j].tile3.y != -1) { if (i == tileX && map_tiles.tiles[i][j].locked == TERRAIN_DOOR) { //std::cout << "****** redraw_boss_door - k: " << k << ", tiles_showed: " << tiles_showed << ", nTiles: " << nTiles << std::endl; if (is_close == false) { if (tiles_showed < nTiles) { graphLib.placeTile(st_position(map_tiles.tiles[i][j].tile3.x, map_tiles.tiles[i][j].tile3.y), st_position((i*TILESIZE)-scroll.x, (j*TILESIZE)-scroll.y), &graphLib.gameScreen); graphLib.updateScreen(); tiles_showed++; } } else { if (tiles_showed < k) { graphLib.placeTile(st_position(map_tiles.tiles[i][j].tile3.x, map_tiles.tiles[i][j].tile3.y), st_position((i*TILESIZE)-scroll.x, (j*TILESIZE)-scroll.y), &graphLib.gameScreen); graphLib.updateScreen(); tiles_showed++; } } } else { graphLib.placeTile(st_position(map_tiles.tiles[i][j].tile3.x, map_tiles.tiles[i][j].tile3.y), st_position((i*TILESIZE)+scroll.x, (j*TILESIZE)-scroll.y), &graphLib.gameScreen); } } } } _player_list.at(0)->show(); graphLib.draw_hp_bar(_player_list.at(0)->get_current_hp(), player_number, WEAPON_DEFAULT); //show_sprite(p1Obj->sprite, game_screen); //draw_hp_bar(p1Obj); graphLib.updateScreen(); input.waitTime(100); } input.waitTime(100); }
// ********************************************************************************************** // // show the third level of tiles // // ********************************************************************************************** // void classMap::showAbove() { // draw 3rd tile level struct st_position pos_origin; struct st_position pos_destiny; for (int i=0; i<MAP_W; i++) { for (int j=0; j<MAP_H; j++) { if (map_tiles.tiles[i][j].tile3.x != -1 && map_tiles.tiles[i][j].tile3.y != -1) { pos_origin.x = map_tiles.tiles[i][j].tile3.x; pos_origin.y = map_tiles.tiles[i][j].tile3.y; pos_destiny.x = (i*TILESIZE)-scroll.x; pos_destiny.y = (j*TILESIZE)-scroll.y; graphLib.placeTile(pos_origin, pos_destiny, &graphLib.gameScreen); } } } }