void GameStateLoad::readGameSlots() { for (int i=0; i<GAME_SLOT_MAX; i++) { readGameSlot(i); } }
void GameStateLoad::logic() { frame_ticker++; if (frame_ticker == 64) frame_ticker = 0; if (frame_ticker < 32) current_frame = frame_ticker / 8; else current_frame = (63 - frame_ticker) / 8; if (button_exit->checkClick()) { requestedGameState = new GameStateTitle(screen, inp, font, msg); } if(loading_requested) { loading = true; loading_requested = false; logicLoading(); } if (button_action->checkClick()) { if (stats[selected_slot].name == "") { // create a new game GameStateNew* newgame = new GameStateNew(screen, inp, font, msg); newgame->game_slot = selected_slot + 1; requestedGameState = newgame; } else { loading_requested = true; } } if (button_alternate->checkClick()) { // Display pop-up to make sure save should be deleted confirm->visible = true; confirm->render(); } if (confirm->visible) { confirm->logic(); if(confirm->confirmClicked) { stringstream filename; filename << PATH_USER << "save" << (selected_slot+1) << ".txt"; if(remove(filename.str().c_str()) != 0) perror("Error deleting save from path"); stats[selected_slot] = StatBlock(); readGameSlot(selected_slot); loadPreview(selected_slot); loadPortrait(selected_slot); button_alternate->enabled = false; button_action->label = msg->get("new_game_button"); confirm->visible = false; confirm->confirmClicked = false; } } // check clicking game slot if (inp->pressing[MAIN1] && !inp->lock[MAIN1]) { for (int i=0; i<GAME_SLOT_MAX; i++) { if (isWithin(slot_pos[i], inp->mouse)) { selected_slot = i; inp->lock[MAIN1] = true; loadPortrait(selected_slot); button_action->enabled = true; if (stats[selected_slot].name == "") { button_action->label = msg->get("new_game_button"); button_alternate->enabled = false; } else { button_action->label = msg->get("load_game_button"); button_alternate->enabled = true; } } } } }