pioneerspacesim / pioneer

A game of lonely space adventure
https://pioneerspacesim.net
1.63k stars 377 forks source link

Inconsistent UI behavior/availability while game is paused #5066

Open ghost opened 3 years ago

ghost commented 3 years ago

Observed behaviour

Right after loading the game, when opening the BBS, all missions are grayed out and none respond to clicks. When undocking docking again and reopening the BBS, only the missions that shouldn't be available are grayed out and all respond to clicks by opening a form or dialog.

Expected behaviour

Right after loading the game, when opening the BBS, only the missions that shouldn't be available are grayed out and all respond to clicks by opening a form or dialog.

Steps to reproduce

  1. Start Pioneer
  2. Start a new game "Start on Mars"
  3. Save the game
  4. End the game
  5. Load the saved game state
  6. Open the BBS

My pioneer version (and OS):

Version: master (commit ca1ad5566143f5d3b7720a47a8e37f64f3f25e68) OS: Linux (5.9.12-arch1-1)

WKFO commented 3 years ago

Make sure you unpause the game after loading the save file. This is something that needs fixing probably, but that's the quick help I can provide.

ghost commented 3 years ago

Why are the missions grayed out when the game is paused?

impaktor commented 3 years ago

@misterwrong because the game world is frozen, you've stopped time.

Also stops players from putting the game state in some undefined corner that triggers a crash (search the issue tracker and you'll see plenty of those bugs in the past).

bszlrd commented 3 years ago

What's the reason behind loading the game to a paused state?

ghost commented 3 years ago

@impaktor I can still refuel and request take off while the game is paused. I can also set a route, which makes more sense imo, but it is confusing like this.

impaktor commented 3 years ago

Yes, I consider that to be the bug. Only action in paused state should be unpause.

The-EG commented 3 years ago

What's the reason behind loading the game to a paused state?

From what I can tell, you can save a game at pretty much any time...I have no idea if it works or if we prevent it, but I've seen some parts of the code that loads the saves that seems to be setup for games that were saved while performing a hyperjump even...

My pure guess is that if you were to save while performing a maneuver or flying close to the surface of a planet with strong gravity, you would want to be able to 'get your bearings' after the save was loaded and not have to react instantly after hitting the load button.

osjc commented 3 years ago

Regarding the misbehaving bulletin board, I also noticed that the content completely changes upon load. I suspect each of the starports has its own bulletin board and the relationship between the starports and their boards gets mangled upon save/load.