1
0
Fork 0
mirror of synced 2024-06-26 18:20:50 +12:00

GameLaunchHelper: Enumerate valid actions and states from 1 instead of 0

Fixes potential boolean checks on the relevant attributes
This commit is contained in:
loathingKernel 2023-01-24 15:28:01 +02:00
parent 6ccbeb12dc
commit 95df85419b
4 changed files with 14 additions and 13 deletions

View file

@ -119,7 +119,7 @@ class Console(QDialog):
def on_process_exit(self, app_title: str, status: Union[int, str]):
self.error(
self.tr("Application \"{}\" finished with \"{}\"").format(app_title, status)
self.tr("Application \"{}\" finished with \"{}\"\n").format(app_title, status)
)
self.accept_close = True

View file

@ -128,14 +128,14 @@ class RareGame(QObject):
self.state = RareGame.State.RUNNING
self.metadata.last_played = datetime.now()
self.__save_metadata()
self.signals.game.launched.emit()
self.signals.game.launched.emit(self.app_name)
@pyqtSlot(int)
def __game_finished(self, exit_code: int):
if exit_code == GameProcess.Code.ON_STARTUP:
return
self.state = RareGame.State.IDLE
self.signals.game.finished.emit()
self.signals.game.finished.emit(self.app_name)
__metadata_json: Dict = None
@ -283,6 +283,7 @@ class RareGame(QObject):
self.igame = None
self.signals.game.uninstalled.emit(self.app_name)
self.set_pixmap()
self.signals.widget.update.emit()
@property
def can_run_offline(self) -> bool:

View file

@ -2,10 +2,11 @@ from dataclasses import dataclass
class Actions:
finished = 0
error = 1
message = 2
state_update = 3
undefined = 0
finished = 1
error = 2
message = 3
state_update = 4
@dataclass
@ -38,11 +39,10 @@ class FinishedModel(BaseModel):
@dataclass
class StateChangedModel(BaseModel):
class States:
started = 0
started = 1
# for future
syncing_cloud = 1
cloud_sync_finished = 2
syncing_cloud = 2
cloud_sync_finished = 3
new_state: int

View file

@ -20,6 +20,7 @@ class GameProcess(QObject):
class Code(IntEnum):
SUCCESS = 0
ERROR = 1
TIMEOUT = -1
ON_STARTUP = -1234
@ -93,10 +94,9 @@ class GameProcess(QObject):
model = ErrorModel.from_json(data)
logger.error(f"Error in game {self.game.app_title}: {model.error_string}")
self.socket.close()
self.__game_finished(1)
self.__game_finished(GameProcess.Code.ERROR)
QMessageBox.warning(None, "Error", self.tr(
"Error in game {}:\n{}").format(self.game.app_title, model.error_string))
elif action == Actions.state_update:
model = StateChangedModel.from_json(data)
if model.new_state == StateChangedModel.States.started: