Files
Reboot-Launcher/common/lib/src/model/game_instance.dart
Alessandro Autiero eb7745cc4d 10.0
2024-12-09 12:14:41 +01:00

54 lines
1.2 KiB
Dart

import 'dart:io';
import 'package:reboot_common/common.dart';
import 'package:version/version.dart';
class GameInstance {
final Version version;
final int gamePid;
final int? launcherPid;
final int? eacPid;
final List<InjectableDll> injectedDlls;
final GameServerType? serverType;
bool launched;
bool movedToVirtualDesktop;
bool tokenError;
bool killed;
GameInstance? child;
GameInstance({
required this.version,
required this.gamePid,
required this.launcherPid,
required this.eacPid,
required this.serverType,
required this.child
}): tokenError = false, killed = false, launched = false, movedToVirtualDesktop = false, injectedDlls = [];
void kill() {
GameInstance? child = this;
while(child != null) {
child._kill();
child = child.child;
}
}
void _kill() {
launched = true;
killed = true;
Process.killPid(gamePid, ProcessSignal.sigabrt);
if(launcherPid != null) {
Process.killPid(launcherPid!, ProcessSignal.sigabrt);
}
if(eacPid != null) {
Process.killPid(eacPid!, ProcessSignal.sigabrt);
}
}
}
enum GameServerType {
headless,
virtualWindow,
window
}