Skip to content

Commit

Permalink
Merge branch 'main' of github.com:afwbkbc/glsmac into stable
Browse files Browse the repository at this point in the history
  • Loading branch information
afwbkbc committed Mar 16, 2024
2 parents 34240e8 + ff3eae7 commit 848d09a
Show file tree
Hide file tree
Showing 9 changed files with 26 additions and 18 deletions.
4 changes: 2 additions & 2 deletions src/game/FrontendRequest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ FrontendRequest::FrontendRequest( const FrontendRequest& other )
break;
}
case FR_TURN_ACTIVE_STATUS: {
data.turn_active_status.is_turn_active = other.data.turn_active_status.is_turn_active;
data.turn_active_status = other.data.turn_active_status;
break;
}
case FR_TURN_COMPLETE_STATUS: {
data.turn_complete_status.is_turn_complete = other.data.turn_complete_status.is_turn_complete;
data.turn_complete_status = other.data.turn_complete_status;
break;
}
case FR_SLOT_DEFINE: {
Expand Down
1 change: 1 addition & 0 deletions src/game/FrontendRequest.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ class FrontendRequest {
} turn_active_status;
struct {
bool is_turn_complete;
bool play_sound;
} turn_complete_status;
struct {
slot_defines_t* slotdefs;
Expand Down
5 changes: 3 additions & 2 deletions src/game/Game.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@ void Game::Iterate() {
m_state->m_bindings->Call( Bindings::CS_ON_START );
}
NextTurn();
CheckTurnComplete();
CheckTurnComplete( false ); // units may spawn later

}
}
Expand Down Expand Up @@ -1648,7 +1648,7 @@ void Game::NextTurn() {
AddFrontendRequest( fr );
}

void Game::CheckTurnComplete() {
void Game::CheckTurnComplete( const bool play_sound ) {
bool is_turn_complete = true;

for ( const auto& unit : m_units ) {
Expand All @@ -1663,6 +1663,7 @@ void Game::CheckTurnComplete() {
Log( "Sending turn complete status: " + std::to_string( m_is_turn_complete ) );
auto fr = FrontendRequest( FrontendRequest::FR_TURN_COMPLETE_STATUS );
fr.data.turn_complete_status.is_turn_complete = m_is_turn_complete;
fr.data.turn_complete_status.play_sound = play_sound;
AddFrontendRequest( fr );
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/game/Game.h
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,7 @@ CLASS( Game, MTModule )
Turn* m_current_turn = nullptr;

bool m_is_turn_complete = false;
void CheckTurnComplete();
void CheckTurnComplete( const bool play_sound = true );

};

Expand Down
10 changes: 6 additions & 4 deletions src/task/game/Game.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1006,10 +1006,11 @@ void Game::ProcessRequest( const ::game::FrontendRequest& request ) {
break;
}
case ::game::FrontendRequest::FR_TURN_ACTIVE_STATUS: {
if ( m_is_turn_active != request.data.turn_active_status.is_turn_active ) {
m_is_turn_active = request.data.turn_active_status.is_turn_active;
const auto& d = request.data.turn_active_status;
if ( m_is_turn_active != d.is_turn_active ) {
m_is_turn_active = d.is_turn_active;
ASSERT( m_ui.bottom_bar, "bottom bar not initialized" );
m_ui.bottom_bar->SetTurnActiveStatus( request.data.turn_active_status.is_turn_active );
m_ui.bottom_bar->SetTurnActiveStatus( d.is_turn_active );
if ( m_is_turn_active ) {
m_selected_unit_state = nullptr;
SelectNextUnitMaybe();
Expand All @@ -1026,7 +1027,8 @@ void Game::ProcessRequest( const ::game::FrontendRequest& request ) {
}
case ::game::FrontendRequest::FR_TURN_COMPLETE_STATUS: {
ASSERT( m_ui.bottom_bar, "bottom bar not initialized" );
m_ui.bottom_bar->SetTurnCompleteStatus( request.data.turn_complete_status.is_turn_complete );
const auto& d = request.data.turn_complete_status;
m_ui.bottom_bar->SetTurnCompleteStatus( d.is_turn_complete, d.play_sound );
break;
}
case ::game::FrontendRequest::FR_SLOT_DEFINE: {
Expand Down
4 changes: 2 additions & 2 deletions src/task/game/ui/bottom_bar/BottomBar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -295,8 +295,8 @@ void BottomBar::SetTurnActiveStatus( const bool is_turn_active ) {
m_sections.turn_complete_button->SetTurnActiveStatus( is_turn_active );
}

void BottomBar::SetTurnCompleteStatus( const bool is_turn_complete ) {
m_sections.turn_complete_button->SetFlashingEnabled( is_turn_complete );
void BottomBar::SetTurnCompleteStatus( const bool is_turn_complete, const bool play_sound ) {
m_sections.turn_complete_button->SetFlashingEnabled( is_turn_complete, play_sound );
}

}
Expand Down
2 changes: 1 addition & 1 deletion src/task/game/ui/bottom_bar/BottomBar.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ CLASS( BottomBar, UI )
void UpdateMapFileName();

void SetTurnActiveStatus( const bool is_turn_active );
void SetTurnCompleteStatus( const bool is_turn_complete );
void SetTurnCompleteStatus( const bool is_turn_complete, const bool play_sound );

private:
struct {
Expand Down
14 changes: 9 additions & 5 deletions src/task/game/ui/bottom_bar/TurnCompleteButton.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,29 +93,33 @@ void TurnCompleteButton::Destroy() {

void TurnCompleteButton::SetTurnActiveStatus( const bool is_turn_active ) {
if ( m_is_turn_active != is_turn_active ) {
m_is_turn_active = is_turn_active;
if ( is_turn_active ) {
SetFlashingEnabled( false );
SetFlashingEnabled( false, false );
SetLabel( "TURN COMPLETE" );
}
else {
SetLabel( "WAITING FOR PLAYERS" );
m_flash_alpha = FLASH_ALPHA_MIN;
SetFlashingEnabled( true );
SetFlashingEnabled( true, false );
m_sound->Stop();
m_flashing->Show();
}
m_is_turn_active = is_turn_active;
}
}

void TurnCompleteButton::SetFlashingEnabled( const bool is_flashing_enabled ) {
void TurnCompleteButton::SetFlashingEnabled( const bool is_flashing_enabled, const bool play_sound ) {
if ( is_flashing_enabled && !m_flash_timer.IsRunning() ) {
m_flash_alpha = FLASH_ALPHA_MIN;
m_flash_timer.SetInterval( FLASH_INTERVAL_MS );
m_sound->Play();
if ( play_sound ) {
m_sound->Play();
}
}
else if ( !is_flashing_enabled && m_flash_timer.IsRunning() ) {
m_flash_timer.Stop();
m_flashing->SetTintAlpha( 0.0f );
m_sound->Stop();
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/task/game/ui/bottom_bar/TurnCompleteButton.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ CLASS( TurnCompleteButton, ::ui::object::Button )
void Destroy() override;

void SetTurnActiveStatus( const bool is_turn_active );
void SetFlashingEnabled( const bool is_flashing_enabled );
void SetFlashingEnabled( const bool is_flashing_enabled, const bool play_sound );

private:
Game* m_game;
Expand Down

0 comments on commit 848d09a

Please sign in to comment.