void update_ticket_state(struct ticket_config *tk, struct booth_site *sender) { if (tk->state == ST_CANDIDATE) { tk_log_info("learned from %s about " "newer ticket, stopping elections", site_string(sender)); /* there could be rejects coming from others; don't log * warnings unnecessarily */ tk->expect_more_rejects = 1; } if (tk->leader == local || tk->is_granted) { /* message from a live leader with valid ticket? */ if (sender == tk->leader && term_time_left(tk)) { if (tk->is_granted) { tk_log_warn("ticket was granted here, " "but it's live at %s (revoking here)", site_string(sender)); } else { tk_log_info("ticket live at %s", site_string(sender)); } disown_ticket(tk); ticket_write(tk); set_state(tk, ST_FOLLOWER); set_next_state(tk, ST_FOLLOWER); } else { if (tk->state == ST_CANDIDATE) { set_state(tk, ST_FOLLOWER); } set_next_state(tk, ST_LEADER); } } else { if (!tk->leader || tk->leader == no_leader) { if (sender) tk_log_info("ticket is not granted"); else tk_log_info("ticket is not granted (from CIB)"); set_state(tk, ST_INIT); } else { if (sender) tk_log_info("ticket granted to %s (says %s)", site_string(tk->leader), tk->leader == sender ? "they" : site_string(sender)); else tk_log_info("ticket granted to %s (from CIB)", site_string(tk->leader)); set_state(tk, ST_FOLLOWER); /* just make sure that we check the ticket soon */ set_next_state(tk, ST_FOLLOWER); } } }
//handles collision between zombie killer and the zombies void ZombieKiller::collision_manegment() { Zombie *runner = head2; while(runner != NULL) { ++runner->hitRate; if (runner->x <= collisionBox.x + collisionBox.w && runner->y <= collisionBox.y + collisionBox.h && runner->x >= collisionBox.x && runner->y >= collisionBox.y) { if(runner->hitRate >= 50) { --life; if(life == 0) { //Quit the program set_next_state(STATE_GAME_OVER); zombieKilled = deadZombieCount; } runner->hitRate = 0; } } runner = runner->next; } }
int main(void) { /* setup controller */ sys_init(); /* setup u8g and m2 libraries */ setup(); /* application main loop */ for(;;) { m2_CheckKey(); if ( m2_HandleKey() ) { /* picture loop */ u8g_FirstPage(&u8g); do { draw(); m2_CheckKey(); } while( u8g_NextPage(&u8g) ); } set_next_state(); } }
/* we were a leader and somebody says that they have a more up * to date ticket * there was probably connectivity loss * tricky */ static int leader_handle_newer_ticket( struct ticket_config *tk, struct booth_site *sender, struct booth_site *leader, struct boothc_ticket_msg *msg ) { update_term_from_msg(tk, msg); if (leader != no_leader && leader && leader != local) { /* eek, two leaders, split brain */ /* normally shouldn't happen; run election */ tk_log_error("from %s: ticket granted to %s! (revoking locally)", site_string(sender), site_string(leader) ); } else if (term_time_left(tk)) { /* eek, two leaders, split brain */ /* normally shouldn't happen; run election */ tk_log_error("from %s: ticket granted to %s! (revoking locally)", site_string(sender), site_string(leader) ); } set_next_state(tk, ST_LEADER); return 0; }
//checks if zombie killer finished the game void ZombieKiller::is_finished() { if(head3 == NULL && head2 == NULL) { zombieKilled = deadZombieCount; set_next_state(STATE_GAME_OVER); } }
// Update (goto menu!) void intro::update(){ // Intro screen //fade_in( img_intro, 16); al_rest( 1.0); //fade_out( 16); // Go to menu set_next_state( STATE_MENU); }
void reset_ticket(struct ticket_config *tk) { ignore_ext_test(tk); disown_ticket(tk); no_resends(tk); set_state(tk, ST_INIT); set_next_state(tk, 0); tk->voted_for = NULL; }
/** Ticket revoke. * Only to be started from the leader. */ int do_revoke_ticket(struct ticket_config *tk) { if (tk->acks_expected) { tk_log_info("delay ticket revoke until the current operation finishes"); set_next_state(tk, ST_INIT); return RLT_MORE; } else { start_revoke_ticket(tk); return RLT_SUCCESS; } }
/** * Updates this object. * * @param window a reference to an sf::RenderWindow. */ void Score::update(sf::RenderWindow &window) { std::string sTemp; ss << this->nScore; ss >> sTemp; ss.str(std::string()); ss.clear(); this->getText().setString(this->sPretext + sTemp); if (this->nScore == 10) { if (this->getLabel().compare("player-score") == 0) { set_next_state(STATE_WIN); } else { set_next_state(STATE_LOSE); } } GameObject::update(window); }
void Game::update() { poll_joystick(); // Character movements (runs only every 2nd loop) if(frames_done % 2 == 0){ character.update(tile_map); for(int i = 0; i < badGuy.size(); i++){ badGuy.at(i) -> update(newTileMap, &character); } } // Tile map positions newTileMap -> x = tile_map -> x; newTileMap -> y = tile_map -> y; if(key[KEY_R]){ enemy* newBadGuy = new enemy( character.getX(), character.getY(), enemy_mutant); newBadGuy -> load_images(); newBadGuy -> load_sounds(); badGuy.push_back(newBadGuy); rest(10); } if(key[KEY_T]){ enemy* newBadGuy = new enemy( character.getX(), character.getY(), enemy_sentry); newBadGuy -> load_images(); newBadGuy -> load_sounds(); badGuy.push_back(newBadGuy); rest(100); } // Back to menu if( key[KEY_M] || joy[0].button[6].b){ set_next_state( STATE_MENU); } // Die if(character.getDead() || character.getFinishLevel()){ init(); character.setFinishLevel( false); } // Respawn if(key[KEY_Y]){ character.spawncommand(tile_map); } }
/** * Starts game engine, creates window and renderer */ int GameEngine::init() { window = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, Mario::SCREEN_WIDTH, Mario::SCREEN_HEIGHT, SDL_WINDOW_SHOWN ); if( window == NULL ) { printf( "Window could not be created! SDL_Error: %s\n", SDL_GetError() ); return Mario::STATUS_FATAL; } renderer = SDL_CreateRenderer( window, -1, SDL_RENDERER_ACCELERATED ); if (renderer == NULL) { printf( "Could not create renderer. SDL_Error: %s\n", SDL_GetError() ); return Mario::STATUS_FATAL; } // Set render draw color to WHITE SDL_SetRenderDrawColor( renderer, 0xFF, 0xFF, 0xFF, 0xFF ); set_next_state(STATE_INIT); changeState(); return Mario::STATUS_OK; }
void Editor::update(){ // Back to menu if( key[KEY_M] && !saving && !opening){ set_next_state( STATE_MENU); } // Close menu if(key[KEY_TILDE]){ clear_keybuf(); opening = false; saving = false; } if( saving){ save(); } else if( opening){ open(); } else{ // Scroll Map if(mouse_y < 10 && tile_map -> y > 0){ tile_map -> y -= 16; } if(mouse_y > (SCREEN_H-10) && tile_map -> y < tile_map -> height * 64 - SCREEN_H){ tile_map -> y += 16; } if(mouse_x < 10 && tile_map -> x > 0){ tile_map -> x -= 8; } if(mouse_x > (SCREEN_W-10) && tile_map -> x < tile_map -> width * 64 - SCREEN_W){ tile_map -> x += 8; } // Change selected if(key[KEY_UP]){ exampleTile -> setX(0); exampleTile -> setY(0); exampleTile -> changeType( 1); rest( 100); } if(key[KEY_DOWN]){ exampleTile -> setX(0); exampleTile -> setY(0); exampleTile -> changeType( -1); rest( 100); } // Change Layer if(key[KEY_TAB]){ if(layer == 0){ layer = 1; } else{ layer = 0; } while(key[KEY_TAB]){} } // Place tile if( mouse_b & 1){ //Check for collision if( layer == 1){ for(int i = 0; i < tile_map -> mapTiles.size(); i++){ if(collisionAny(mouse_x + tile_map -> x, mouse_x + tile_map -> x, tile_map -> mapTiles.at(i).getX(), tile_map -> mapTiles.at(i).getX() + 64, mouse_y + tile_map -> y, mouse_y + tile_map -> y, tile_map -> mapTiles.at(i).getY(), tile_map -> mapTiles.at(i).getY() + 64)){ tile_map -> mapTiles.at(i).setType(selectedTileType); } } } else{ for(int i = 0; i < tile_map -> mapTilesBack.size(); i++){ if(collisionAny(mouse_x + tile_map -> x, mouse_x + tile_map -> x, tile_map -> mapTilesBack.at(i).getX(), tile_map -> mapTilesBack.at(i).getX() + 64, mouse_y + tile_map -> y, mouse_y + tile_map -> y, tile_map -> mapTilesBack.at(i).getY(), tile_map -> mapTilesBack.at(i).getY() + 64)){ tile_map -> mapTilesBack.at(i).setType(selectedTileType); } } } } // Get tile type tile if( key[KEY_K]){ //Check for collision if( layer == 1){ for(int i = 0; i < tile_map -> mapTiles.size(); i++){ if(collisionAny(mouse_x + tile_map -> x, mouse_x + tile_map -> x, tile_map -> mapTiles.at(i).getX(), tile_map -> mapTiles.at(i).getX() + 64, mouse_y + tile_map -> y, mouse_y + tile_map -> y, tile_map -> mapTiles.at(i).getY(), tile_map -> mapTiles.at(i).getY() + 64)){ exampleTile -> setX(0); exampleTile -> setY(0); selectedTileType = tile_map -> mapTiles.at(i).getType(); exampleTile -> setType(selectedTileType); } } } else{ for(int i = 0; i < tile_map -> mapTilesBack.size(); i++){ if(collisionAny(mouse_x + tile_map -> x, mouse_x + tile_map -> x, tile_map -> mapTilesBack.at(i).getX(), tile_map -> mapTilesBack.at(i).getX() + 64, mouse_y + tile_map -> y, mouse_y + tile_map -> y, tile_map -> mapTilesBack.at(i).getY(), tile_map -> mapTilesBack.at(i).getY() + 64)){ exampleTile -> setX(0); exampleTile -> setY(0); selectedTileType = tile_map -> mapTilesBack.at(i).getType(); exampleTile -> setType(selectedTileType); } } } } // Erase tile if( mouse_b & 2){ //Check for collision if( layer == 1){ for(int i = 0; i < tile_map -> mapTiles.size(); i++){ if(collisionAny(mouse_x + tile_map -> x, mouse_x + tile_map -> x, tile_map -> mapTiles.at(i).getX(), tile_map -> mapTiles.at(i).getX() + 64, mouse_y + tile_map -> y, mouse_y + tile_map -> y, tile_map -> mapTiles.at(i).getY(), tile_map -> mapTiles.at(i).getY() + 64)){ tile_map -> mapTiles.at(i).setType(0); } } } else{ for(int i = 0; i < tile_map -> mapTilesBack.size(); i++){ if(collisionAny(mouse_x + tile_map -> x, mouse_x + tile_map -> x, tile_map -> mapTilesBack.at(i).getX(), tile_map -> mapTilesBack.at(i).getX() + 64, mouse_y + tile_map -> y, mouse_y + tile_map -> y, tile_map -> mapTilesBack.at(i).getY(), tile_map -> mapTilesBack.at(i).getY() + 64)){ tile_map -> mapTilesBack.at(i).setType(0); } } } } // Save map if(key[KEY_S]){ clear_keybuf(); saving = true; } // Open map if(key[KEY_O]){ clear_keybuf(); opening = true; } //Fill map if(key[KEY_F]){ for(int i = 0; i < tile_map -> mapTilesBack.size(); i++){ tile_map -> mapTilesBack.at(i).setType(selectedTileType); } } if(key[KEY_G]){ for(int i = 0; i < tile_map -> mapTiles.size(); i++){ tile_map -> mapTiles.at(i).setType(selectedTileType); } } } }
// Update loop void menu::update(){ //Menu animations if( animation_pos < 100 && !startClicked) animation_pos += 4; if( animation_pos > 0 && startClicked) animation_pos -= 4; // Start the game if( startClicked && animation_pos <= 0) set_next_state( STATE_GAME); // Open submenu or start game if( mini_screen == MINISTATE_MENU){ // Start game with controller if( joystickListener::buttonPressed[JOY_XBOX_START] || joystickListener::buttonPressed[JOY_XBOX_A]){ startClicked = true; } // Buttons if( mouseListener::mouse_pressed & 1){ // Start game if( collision( mouseListener::mouse_x, mouseListener::mouse_x, 40, 40 + al_get_bitmap_width(start), mouseListener::mouse_y, mouseListener::mouse_y, 410, 410 + al_get_bitmap_height(start))){ startClicked = true; } // Scores else if( collision( mouseListener::mouse_x, mouseListener::mouse_x, 660, 660 + al_get_bitmap_width(highscores_button), mouseListener::mouse_y, mouseListener::mouse_y, 30, 30 + al_get_bitmap_height(highscores_button))){ updateScores( scores); mini_screen = MINISTATE_SCORES; } // Credits menu else if( collision( mouseListener::mouse_x, mouseListener::mouse_x, 542, 644, mouseListener::mouse_y, mouseListener::mouse_y, 548, 600)){ mini_screen = MINISTATE_CREDITS; } // Controls menu else if( collision( mouseListener::mouse_x, mouseListener::mouse_x, 644, 696, mouseListener::mouse_y, mouseListener::mouse_y, 548 ,600)){ mini_screen = MINISTATE_CONTROLS; } // Help screen else if( collision( mouseListener::mouse_x, mouseListener::mouse_x, 696, 749, mouseListener::mouse_y, mouseListener::mouse_y, 548, 600)){ mini_screen = MINISTATE_TUTORIAL; } // Options menu else if( collision( mouseListener::mouse_x, mouseListener::mouse_x, 749, 800, mouseListener::mouse_y, mouseListener::mouse_y, 548, 600)){ mini_screen = MINISTATE_OPTIONS; } } } // Exit menus else if( mini_screen == MINISTATE_TUTORIAL || mini_screen == MINISTATE_CREDITS || mini_screen == MINISTATE_CONTROLS || mini_screen == MINISTATE_SCORES ){ if( keyListener::lastKeyPressed != -1 || mouseListener::mouse_pressed & 1 || joystickListener::lastButtonPressed != -1){ mini_screen = MINISTATE_MENU; draw(); } } // Options else if( mini_screen == MINISTATE_OPTIONS && mouseListener::mouse_pressed & 1){ // Particles toggle if( collision( 280, 360, mouseListener::mouse_x, mouseListener::mouse_x, 400, 480, mouseListener::mouse_y, mouseListener::mouse_y)){ settings[SETTING_PARTICLE_TYPE] = (settings[SETTING_PARTICLE_TYPE] + 1) % 4; } // Sound button toggle else if( collision( 120, 200, mouseListener::mouse_x, mouseListener::mouse_x, 180, 260, mouseListener::mouse_y, mouseListener::mouse_y)){ settings[SETTING_SOUND] = (settings[SETTING_SOUND] + 1) % 2; } // Music button toggle else if( collision( 280, 360, mouseListener::mouse_x, mouseListener::mouse_x, 180, 260, mouseListener::mouse_y, mouseListener::mouse_y)){ settings[SETTING_MUSIC] = (settings[SETTING_MUSIC] + 1) % 2; if( settings[SETTING_MUSIC] == 0) al_stop_sample( ¤tMusic); else al_play_sample( music_mainmenu, 1.0, 0.0, 1.0, ALLEGRO_PLAYMODE_ONCE, ¤tMusic); } // Fullscreen toggle else if( collision( 120, 200, mouseListener::mouse_x, mouseListener::mouse_x, 400, 480, mouseListener::mouse_y, mouseListener::mouse_y)){ settings[SETTING_FULLSCREEN] = (settings[SETTING_FULLSCREEN] + 1) % 2; if( settings[SETTING_FULLSCREEN]){ // Fullscreen stuff al_destroy_display( display); al_set_new_display_flags(ALLEGRO_FULLSCREEN_WINDOW); display = al_create_display( SCREEN_W, SCREEN_H); ALLEGRO_DISPLAY_MODE disp_data; al_get_display_mode(al_get_num_display_modes() - 1, &disp_data); float sx = disp_data.width / (float)SCREEN_W; float sy = disp_data.height / (float)SCREEN_H; ALLEGRO_TRANSFORM trans; al_identity_transform(&trans); al_scale_transform(&trans, sx, sy); al_use_transform(&trans); al_hide_mouse_cursor( display); } else{ al_destroy_display( display); al_set_new_display_flags(ALLEGRO_WINDOWED); display = al_create_display( SCREEN_W, SCREEN_H); al_hide_mouse_cursor( display); } } //Screen shake else if( collision( 280, 360, mouseListener::mouse_x, mouseListener::mouse_x, 290, 370, mouseListener::mouse_y, mouseListener::mouse_y)){ settings[SETTING_SCREENSHAKE] = (settings[SETTING_SCREENSHAKE] + 1) % 4; } // Control Toggle else if( collision( 120, 200, mouseListener::mouse_x, mouseListener::mouse_x, 290, 370, mouseListener::mouse_y, mouseListener::mouse_y)){ settings[SETTING_CONTROLMODE] = ((settings[SETTING_CONTROLMODE] + 1) % 3); } // Power off else if( collision( 540, 620, mouseListener::mouse_x, mouseListener::mouse_x, 180, 260, mouseListener::mouse_y, mouseListener::mouse_y)){ write_settings(); set_next_state( STATE_EXIT); } // Exit menu else if( collision( 540, 620, mouseListener::mouse_x, mouseListener::mouse_x, 407, 487, mouseListener::mouse_y, mouseListener::mouse_y)){ mini_screen = MINISTATE_MENU; write_settings(); } } // Update mouse particles if( settings[SETTING_PARTICLE_TYPE] != 3 && mouse_rocket_up){ for( int i = 0; i < 500; i++){ if( random( 1, 10) == 1){ ALLEGRO_COLOR part_color = al_map_rgb( 255, random(0,255), 0); if( settings[SETTING_CHRISTMAS]){ int red_or_green = random( 0, 1) * 255; part_color = al_map_rgb( red_or_green, 255 - red_or_green, 0); } particle newParticle( mouseListener::mouse_x, mouseListener::mouse_y + 16, part_color, random( -2, 2), random( 8, 20), 1, settings[SETTING_PARTICLE_TYPE]); mousePart.push_back( newParticle); } } } for( unsigned int i = 0; i < mousePart.size(); i++){ mousePart.at(i).logic(); if( random( 0, 10) == 0) mousePart.erase( mousePart.begin() + i); } // Close game if( keyListener::key[ALLEGRO_KEY_ESCAPE]) set_next_state( STATE_EXIT); // Check if mouse is going up mouse_rocket_up = ( mouseListener::mouse_y < mouseMove); mouseMove = mouseListener::mouse_y; }
void state_in_object_name_t::on_string( daw::string_view ) { // json_value_t name{ value }; // Set current object name json_value_t set_next_state( current_state_t::in_object_value ); }
void state_in_object_value_t::on_array_begin( ) { // push_and_set_next_value( json_value_t{ } ); set_next_state( current_state_t::in_object_name ); push_and_set_next_state( current_state_t::in_array ); }
void Menu::update(){ // Disable/Enable mouse control on input if(key[KEY_UP] || key[KEY_DOWN] || key[KEY_LEFT] || key[KEY_RIGHT] || key[KEY_W] || key[KEY_A] || key[KEY_S] || key[KEY_D] || joy[0].stick[0].axis[1].d2 || joy[0].stick[0].axis[1].d1 || joy[0].button[4].b || joy[0].button[5].b) mouse_control=false; else if (mouse_x!=old_mouse_x || mouse_y!=old_mouse_y) mouse_control=true; old_mouse_x = mouse_x; old_mouse_y = mouse_y; menuOpen = false; poll_joystick(); // Move around live background if( scrollDirection == "right"){ if( tile_map -> x + 1 < (tile_map -> width * 64 - SCREEN_W)){ tile_map -> x += 1; } else{ scrollDirection = "left"; } } else if( scrollDirection == "left"){ if( tile_map -> x - 1 > 0){ tile_map -> x -= 1; } else{ scrollDirection = "right"; } } // Move selector if( selectorY != newSelectorY){ int selectorVelocity; if( newSelectorY != selectorY){ selectorVelocity = (newSelectorY - selectorY )/ 6; if( newSelectorY - selectorY < 0){ selectorVelocity -= 1; } else if( newSelectorY - selectorY > 0){ selectorVelocity += 1; } } selectorY += selectorVelocity; } if((key[KEY_W] || key[KEY_UP] || joy[0].stick[0].axis[1].d1) && step>10){ if(selectorHovering!=0) selectorHovering--; else selectorHovering=3; step=0; } if((key[KEY_S] || key[KEY_DOWN] || joy[0].stick[0].axis[1].d2) && step>10){ if(selectorHovering!=3) selectorHovering++; else selectorHovering=0; step=0; } // Hover play if((mouse_control && (collisionAny(mouse_x,mouse_x,60,270,mouse_y,mouse_y, SCREEN_H-323, SCREEN_H-278)) || !mouse_control && ( selectorHovering==0))){ if(newSelectorY != SCREEN_H-323){ newSelectorY = SCREEN_H-323; selectorX = 60; play_sample(click,255,125,1000,0); } } // Hover edit else if((mouse_control && (collisionAny(mouse_x,mouse_x,60,270,mouse_y,mouse_y, SCREEN_H-260, SCREEN_H-215)) || !mouse_control && ( selectorHovering==1))){ if(newSelectorY != SCREEN_H-260){ newSelectorY = SCREEN_H-260; selectorX = 60; play_sample(click,255,125,1000,0); } } // Hover help else if((mouse_control && (collisionAny(mouse_x,mouse_x,60,270,mouse_y,mouse_y, SCREEN_H-197, SCREEN_H-152)) || !mouse_control && ( selectorHovering==2))){ if(newSelectorY != SCREEN_H-197){ newSelectorY = SCREEN_H-197; selectorX = 60; play_sample(click,255,125,1000,0); } menuOpen = true; } //Hover exit else if((mouse_control && (collisionAny(mouse_x,mouse_x,60,270,mouse_y,mouse_y, SCREEN_H-132, SCREEN_H-87)) || !mouse_control && ( selectorHovering==3))){ if(newSelectorY != SCREEN_H-132){ newSelectorY = SCREEN_H-132; selectorX = 60; play_sample(click,255,125,1000,0); } } // Select button // level select left if(((collisionAny(mouse_x,mouse_x,SCREEN_W-180,SCREEN_W-140,mouse_y,mouse_y, 80, 120) && mouse_b & 1) || (key[KEY_A] || key[KEY_LEFT] || joy[0].button[4].b)) && step>10) { play_sample(click,255,125,1000,0); if( levelOn > 0){ levelOn--; } else{ levelOn = 3; } if( levelOn == 0){ tile_map -> load( "data/levels/level_01"); } else if( levelOn == 1){ tile_map -> load( "data/levels/level_test"); } else if( levelOn == 2){ tile_map -> load( "data/saves/danny"); } else if( levelOn == 3){ tile_map -> load( "data/saves/dannyII"); } tile_map -> y = random( 0, (tile_map -> height * 64) - SCREEN_H); tile_map -> x = 0; step=0; } if(((collisionAny(mouse_x,mouse_x,SCREEN_W-80,SCREEN_W-40,mouse_y,mouse_y, 80, 120) && mouse_b & 1) || (key[KEY_D] || key[KEY_RIGHT] || joy[0].button[5].b)) && step>10){ // level select right play_sample(click,255,125,1000,0); if( levelOn < 3){ levelOn++; } else{ levelOn = 0; } if( levelOn == 0){ tile_map -> load( "data/levels/level_01"); } else if( levelOn == 1){ tile_map -> load( "data/levels/level_test"); } else if( levelOn == 2){ tile_map -> load( "data/saves/danny"); } else if( levelOn == 3){ tile_map -> load( "data/saves/dannyII"); } tile_map -> y = random( 0, (tile_map -> height * 64) - SCREEN_H); tile_map -> x = 0; step=0; } // Start if(((collisionAny(mouse_x,mouse_x,60,270,mouse_y,mouse_y, SCREEN_H-323, SCREEN_H-278)&& mouse_b & 1)|| ((key[KEY_ENTER] || joy[0].button[0].b) && selectorHovering==0)) && step>10){ set_next_state( STATE_GAME); } // Edit if(((collisionAny(mouse_x,mouse_x,60,270,mouse_y,mouse_y, SCREEN_H-260, SCREEN_H-215)&& mouse_b & 1)|| ((key[KEY_ENTER] || joy[0].button[0].b) && selectorHovering==1)) && step>10){ set_next_state( STATE_EDIT); } // Quit if(((collisionAny(mouse_x,mouse_x,60,270,mouse_y,mouse_y, SCREEN_H-132, SCREEN_H-87)&& mouse_b & 1)|| ((key[KEY_ENTER] || joy[0].button[0].b) && selectorHovering==3)) && step>10){ set_next_state( STATE_EXIT); } step++; }
void state_in_object_value_t::on_null( ) { // Value is already null set_next_state( current_state_t::in_object_name ); }
void state_in_object_value_t::on_integer( daw::string_view ) { // Save data // current_value( ) = json_value_t{ to_integer( value ) }; set_next_state( current_state_t::in_object_name ); }
void state_in_object_value_t::on_string( daw::string_view ) { // Save data // current_value( ) = json_value_t{ value.to_string( ) }; set_next_state( current_state_t::in_object_name ); }
void state_in_object_value_t::on_boolean( bool ) { // Save data // current_value( ) = json_value_t{ value }; set_next_state( current_state_t::in_object_name ); }
void Init::update() { // Change to splash screen set_next_state(STATE_MENU); }
void Intro::update() { // Wait 2 seconds then go to the menu set_next_state(STATE_MENU); }
// Update void init::update(){ set_next_state( STATE_MENU); }
void Pause::handle_events(App *app) { sf::Event event; while (app->window.pollEvent(event)) { if((event.type == sf::Event::KeyPressed) && (event.key.code == sf::Keyboard::Escape)) { set_next_state(STATE_OVERWORLD); //std::cout << "unpausing" << std::endl; } else if((event.type == sf::Event::KeyPressed) && (event.key.code == sf::Keyboard::Up)) { // TODO this segfaults when UP is pressed first if(menu_option_index > 0) { menu_option_index--; } else { menu_option_index = menu_options.size() - 1; menu_options[menu_option_index-1].setColor(sf::Color(155,155,155)); } update_option_text(); } else if((event.type == sf::Event::KeyPressed) && (event.key.code == sf::Keyboard::Down)) { if(menu_option_index < menu_options.size() - 1) { menu_option_index++; } else { menu_option_index = 0; menu_options[menu_option_index+1].setColor(sf::Color(155,155,155)); } update_option_text(); } if((event.type == sf::Event::KeyPressed) && (event.key.code == sf::Keyboard::Return)) { if(menu_option_index == Play) set_next_state(STATE_OVERWORLD); else if(menu_option_index == Exit) set_next_state(STATE_TITLE); // TODO: clear the state(s) or stack? } if(event.type == sf::Event::Closed) { app->window.close(); } if (event.type == sf::Event::Resized) { //app->window_width = event.size.width; //app->window_height = event.size.height; } } }
/** * Shutdown and exit the logos handler. */ void logos_exit() { music_stop(); unload_logos_dat(); set_next_state(STATE_FLYING); }