bottle_texture.loadFromFile("assets/kir.png");
YF_texture.loadFromFile("assets/YF.png");
+ bike_texture.loadFromFile("assets/cyklist.png");
+ f.close();
}
void Game_state::update(Context &context)
int remaining_time {static_cast<int>(data["game_constants"]["game_time"]) - static_cast<int>(game_time)};
if (remaining_time < 0)
{
- context.next_state = std::make_unique<Start_menu>();
+ // LÄGG ALLT NEDAN I GAME OVER MENYN.
+ std::string current_line{"Gorilla," + std::to_string(points)};
+
+ std::ifstream highscore_file_r{"assets/highscore.csv"};
+ std::vector<std::string> lines_read;
+ std::vector<std::string> lines_write;
+ for (std::string one_line; std::getline(highscore_file_r, one_line);lines_read.push_back(one_line));
+
+ bool added {false};
+ for (std::string::size_type line_count{0}; line_count < lines_read.size(); line_count++)
+ {
+ if (!added && points > std::stoi(lines_read[line_count].substr(lines_read[line_count].find_first_of(',') + 1)))
+ {
+ std::cout << "i loop" << std::endl;
+ lines_write.push_back(current_line);
+ added = true;
+ }
+ lines_write.push_back(lines_read[line_count]);
+ }
+
+ if (!added) lines_write.push_back(current_line);
+
+
+
+ if (lines_write.size() > data["game_constants"]["scoreboard"]) lines_write.pop_back();
+
+ highscore_file_r.close();
+
+ std::ofstream highscore_file_w{"assets/highscore.csv"};
+ for (std::string::size_type line_count{0}; line_count < lines_write.size(); highscore_file_w << lines_write[line_count++] << std::endl);
+ highscore_file_w.close();
+
+ context.next_state = std::make_unique<GameOver_menu>();
return;
}
time_since_last_yf = 0;
}
+ if(time_since_last_bike >= 1 / static_cast<float>(data["game_constants"]["bikes_per_second"]))
+ {
+ bike = std::make_unique<Bike_enemy>(bike_texture, data["bike_enemy"]);
+ time_since_last_bike = 0;
+ }
enemy->update(context);
- game_map->update(points, remaining_time);
+ game_map->update(player->get_collected(), points, remaining_time);
- if (yf.size()>0)
+ if (yf != nullptr)
{
- for(unsigned int i {0}; i < yf.size(); ++i)
- {
- yf[i]->update(context);
- }
+ yf->update(context);
+ }
+ if(bike != nullptr)
+ {
+ bike->update(context);
}
}