void update_movement(GameState * state) { register int i; if (((state->wave.spawn_counter % 10 == 0 && !state->wave.completed) || (state->wave.cool_down_counter % 10 == 0 && state->wave.cool_down_counter != 0)) && state->mana != MANA_MAX) { if (state->mana + MANA_UPDATE < MANA_MAX) { state->mana += MANA_UPDATE; } else { state->mana += MANA_MAX - state->mana; } } //als frost wave actief is is er geen movement if (!state->spells.frost_wave_active) { //pad moet herberekend worden if (state->refresh_paths) { for (i = 0; i < state->enemies_length; i++) { if (state->enemies[i].enemy.alive) { refresh_path(&state->enemies[i].enemy.path, &state->world); } } state->refresh_paths = 0; } move_enemies(state); } move_projectiles(state); }
// ZZZ: split out from update_world()'s loop. static int update_world_elements_one_tick() { if (m1_solo_player_in_terminal()) { update_m1_solo_player_in_terminal(GameQueue); } else { L_Call_Idle(); update_lights(); update_medias(); update_platforms(); update_control_panels(); // don't put after update_players update_players(GameQueue, false); move_projectiles(); move_monsters(); update_effects(); recreate_objects(); handle_random_sound_image(); animate_scenery(); // LP additions: if (film_profile.animate_items) { animate_items(); } AnimTxtr_Update(); ChaseCam_Update(); motion_sensor_scan(); check_m1_exploration(); #if !defined(DISABLE_NETWORKING) update_net_game(); #endif // !defined(DISABLE_NETWORKING) } if(check_level_change()) { return kUpdateChangeLevel; } #if !defined(DISABLE_NETWORKING) if(game_is_over()) { return kUpdateGameOver; } #endif // !defined(DISABLE_NETWORKING) dynamic_world->tick_count+= 1; dynamic_world->game_information.game_time_remaining-= 1; return kUpdateNormalCompletion; }