MCPcopy Create free account
hub / github.com/Panzerschrek/Chasm-Reverse / DoLoad

Method DoLoad

PanzerChasm/host.cpp:607–649  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

605}
606
607void 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
651void Host::DrawLoadingFrame( const float progress, const char* const caption )
652{

Callers

nothing calls this directly

Calls 7

LoadDataFunction · 0.85
RequestConnectMethod · 0.80
SetConnectionMethod · 0.80
SetTitleMethod · 0.80
LoadMethod · 0.45

Tested by

no test coverage detected