1
1
package com .crschnick .pdxu .app .installation ;
2
2
3
3
import com .crschnick .pdxu .app .core .TaskExecutor ;
4
+ import com .crschnick .pdxu .app .savegame .SavegameActions ;
4
5
import org .jnativehook .keyboard .NativeKeyEvent ;
5
6
import org .jnativehook .keyboard .NativeKeyListener ;
6
7
import org .slf4j .LoggerFactory ;
@@ -21,7 +22,7 @@ public void nativeKeyPressed(NativeKeyEvent e) {
21
22
if ((e .getModifiers () & NativeKeyEvent .SHIFT_MASK ) != 0 && ((e .getModifiers () & NativeKeyEvent .CTRL_MASK ) != 0 || (e .getModifiers () & NativeKeyEvent .META_MASK ) != 0 )) {
22
23
if (e .getKeyCode () == NativeKeyEvent .VC_K && canPass (1 )) {
23
24
LoggerFactory .getLogger (GameKeyListener .class ).debug ("Kill key pressed" );
24
- handle . kill ( );
25
+ GameAppManager . getInstance (). killGame ( handle );
25
26
}
26
27
if (e .getKeyCode () == NativeKeyEvent .VC_I && canPass (2 )) {
27
28
LoggerFactory .getLogger (GameKeyListener .class ).debug ("Import key pressed" );
@@ -33,10 +34,27 @@ public void nativeKeyPressed(NativeKeyEvent e) {
33
34
GameAppManager .getInstance ().loadLatestCheckpoint ();
34
35
}
35
36
if (e .getKeyCode () == NativeKeyEvent .VC_R && canPass (4 )) {
36
- TaskExecutor .getInstance ().submitTask (() -> {
37
- LoggerFactory .getLogger (GameKeyListener .class ).debug ("Reverting to latest save" );
38
- GameAppManager .getInstance ().importLatestAndLaunch ();
39
- }, true );
37
+ LoggerFactory .getLogger (GameKeyListener .class ).debug ("Reverting to latest save" );
38
+ var g = handle .getGame ();
39
+ if (g == null ) {
40
+ return ;
41
+ }
42
+
43
+ if (!handle .isAlive ()) {
44
+ return ;
45
+ }
46
+
47
+ if (!GameInstallation .ALL .get (g ).getDist ().supportsDirectLaunch ()) {
48
+ return ;
49
+ }
50
+
51
+ if (g .isEnabled ()) {
52
+ LoggerFactory .getLogger (GameKeyListener .class ).info ("Import latest savegame and launch" );
53
+ GameAppManager .getInstance ().killGame (handle );
54
+ TaskExecutor .getInstance ().submitTask (() -> {
55
+ SavegameActions .importLatestAndLaunch (g );
56
+ }, true );
57
+ }
40
58
}
41
59
}
42
60
}
0 commit comments