| 605 | } |
| 606 | |
| 607 | void Host::DoLoad( const char* const save_file_name ) |
| 608 | { |
| 609 | SaveLoadBuffer save_buffer; |
| 610 | unsigned int save_buffer_pos= 0u; |
| 611 | |
| 612 | Log::Info( "Load game" ); |
| 613 | |
| 614 | if( !LoadData( save_file_name, save_buffer ) ) |
| 615 | { |
| 616 | Log::User( "Loading failed." ); |
| 617 | return; |
| 618 | } |
| 619 | |
| 620 | EnsureClient(); |
| 621 | EnsureServer(); |
| 622 | EnsureLoopbackBuffer(); |
| 623 | |
| 624 | ClearBeforeGameStart(); |
| 625 | |
| 626 | const bool map_changed= |
| 627 | local_server_->Load( save_buffer, save_buffer_pos ); |
| 628 | if( !map_changed ) |
| 629 | { |
| 630 | Log::User( "Loading failed." ); |
| 631 | return; |
| 632 | } |
| 633 | |
| 634 | client_->Load( save_buffer, save_buffer_pos ); |
| 635 | |
| 636 | // Making server listen connections from loopback buffer. |
| 637 | connections_listener_proxy_->AddConnectionsListener( loopback_buffer_ ); |
| 638 | loopback_buffer_->RequestConnect(); |
| 639 | |
| 640 | // Make client working with loopback buffer connection. |
| 641 | client_->SetConnection( loopback_buffer_->GetClientSideConnection() ); |
| 642 | |
| 643 | if( system_window_ != nullptr ) |
| 644 | system_window_->SetTitle( base_window_title_ + " - singleplayer" ); |
| 645 | |
| 646 | is_single_player_= true; |
| 647 | |
| 648 | Log::User( "Game loaded." ); |
| 649 | } |
| 650 | |
| 651 | void Host::DrawLoadingFrame( const float progress, const char* const caption ) |
| 652 | { |
nothing calls this directly
no test coverage detected