21
21
22
22
public class RoomDisplay extends JPanel {
23
23
public final DQ dq ;
24
- Level level ;
24
+ public Level level ;
25
25
public Timer timer ;
26
26
private int timerspeed = 128 ;
27
27
public boolean useSounds = true ;
@@ -36,6 +36,8 @@ public boolean isFocusable() {
36
36
return (true );
37
37
}
38
38
39
+ public RoomDisplay rd ;
40
+
39
41
public RoomDisplay (final DQ dq ) {
40
42
this .dq = dq ;
41
43
setSize (new Dimension (560 , 384 ));
@@ -131,7 +133,7 @@ public void actionPerformed(ActionEvent e) {
131
133
}
132
134
catch (FileNotFoundException ie ) {
133
135
// filename does not exist
134
- RoomDisplay rd = level .roomdisplay ;
136
+ rd = level .roomdisplay ;
135
137
String classname = "com.droidquest.levels." + filename .substring (0 , filename .length () - 4 );
136
138
Constructor constructor = null ;
137
139
try {
@@ -443,16 +445,45 @@ void SaveLevel() {
443
445
444
446
public void SaveLevel (String filename ) {
445
447
System .out .println ("Saving level " + filename );
448
+ String [] filenames = filename .split ("/" );
449
+ if (filenames .length > 1 ) {
450
+ filename = filenames [filenames .length - 1 ];
451
+ }
446
452
try {
447
- FileOutputStream out = new FileOutputStream (System .getProperty ("user.home" ) + "/.DroidQuest/" + "ROlevels /" + filename );
453
+ FileOutputStream out = new FileOutputStream (System .getProperty ("user.home" ) + "/.DroidQuest/Saves /" + filename );
448
454
ObjectOutputStream s = new ObjectOutputStream (out );
449
455
level .writeObject (s );
450
456
s .flush ();
451
457
s .close ();
452
458
out .close ();
453
459
}
454
- catch (FileNotFoundException e ) {
455
- System .out .println ("File Not Found" );
460
+ catch (FileNotFoundException e ) {
461
+ System .out .println ("File Not Found" + filename );
462
+ return ;
463
+ }
464
+ catch (IOException e ) {
465
+ System .out .println ("IO Exception" );
466
+ System .out .println (e .getMessage ());
467
+ }
468
+ }
469
+
470
+ public void SaveLevelAuto (String filename ) {
471
+ System .out .println ("Saving level " + filename );
472
+ String [] filenames = filename .split ("/" );
473
+ if (filenames .length > 1 ) {
474
+ filename = filenames [filenames .length - 1 ];
475
+ }
476
+ try {
477
+ File file = new File (System .getProperty ("user.home" ) + "/.DroidQuest/" + filename );
478
+ if (!file .exists ()) {
479
+ file .createNewFile ();
480
+ }
481
+ FileOutputStream out = new FileOutputStream (file );
482
+ ObjectOutputStream s = new ObjectOutputStream (out );
483
+ level .writeObject (s );
484
+ s .flush ();
485
+ s .close ();
486
+ out .close ();
456
487
}
457
488
catch (IOException e ) {
458
489
System .out .println ("IO Exception" );
@@ -468,16 +499,23 @@ void LoadLevel(String filename) {
468
499
Room .level = level ;
469
500
Material .level = level ;
470
501
502
+ String [] split = filename .split ("/" );
503
+ if (split .length == 1 ) {
504
+ filename = System .getProperty ("user.home" ) + "/.DroidQuest/Saves/" + filename ;
505
+ }
506
+
507
+ System .out .println ("Loading level " + filename );
508
+
471
509
// Add flags for loading Object inventories or running Init()
472
510
try {
473
- FileInputStream in = new FileInputStream (System . getProperty ( "user.home" ) + "/.DroidQuest/" + "ROlevels/" + filename );
511
+ FileInputStream in = new FileInputStream (filename );
474
512
ObjectInputStream s = new ObjectInputStream (in );
475
513
level .readObject (s );
476
514
s .close ();
477
515
in .close ();
478
516
}
479
517
catch (FileNotFoundException e ) {
480
- System .out .println ("File Not Found" );
518
+ System .out .println ("File Not Found" + filename );
481
519
return ;
482
520
}
483
521
catch (IOException e ) {
0 commit comments