@@ -287,7 +287,7 @@ private void LoadWzData(WzMapleVersion mapleVersion, string mapleDirectory)
287
287
break ;
288
288
case 0 : // Equips
289
289
{
290
- LoadWzFileIfAbsent ( ref _CharacterWZ , mapleDirectory + "/Character" , mapleVersion ) ;
290
+ if ( ! LoadWzFileIfAbsent ( ref _CharacterWZ , mapleDirectory + "/Character" , mapleVersion ) ) return ;
291
291
DataGridView dGrid = ( DataGridView ) TabEquips . SelectedTab . Controls [ 0 ] ;
292
292
dGrid . Rows . Clear ( ) ;
293
293
List < WzImage > children = _CharacterWZ . WzDirectory . GetChildImages ( ) ;
@@ -365,7 +365,7 @@ private void LoadWzData(WzMapleVersion mapleVersion, string mapleDirectory)
365
365
case 3 : // Etc
366
366
case 4 : // Cash
367
367
{
368
- LoadWzFileIfAbsent ( ref _ItemWZ , mapleDirectory + "/Item" , mapleVersion ) ;
368
+ if ( ! LoadWzFileIfAbsent ( ref _ItemWZ , mapleDirectory + "/Item" , mapleVersion ) ) return ;
369
369
if ( selected_root == 1 )
370
370
( ( DataGridView ) TabUse . SelectedTab . Controls [ 0 ] ) . Rows . Clear ( ) ;
371
371
else if ( selected_root == 2 )
@@ -416,7 +416,7 @@ private void LoadWzData(WzMapleVersion mapleVersion, string mapleDirectory)
416
416
}
417
417
case 5 : // Map
418
418
{
419
- LoadWzFileIfAbsent ( ref _MapWZ , mapleDirectory + "/Map" , mapleVersion ) ;
419
+ if ( ! LoadWzFileIfAbsent ( ref _MapWZ , mapleDirectory + "/Map" , mapleVersion ) ) return ;
420
420
GridMaps . Rows . Clear ( ) ;
421
421
422
422
List < WzImage > children = _MapWZ . WzDirectory . GetChildImages ( ) ;
@@ -439,7 +439,7 @@ private void LoadWzData(WzMapleVersion mapleVersion, string mapleDirectory)
439
439
}
440
440
case 6 : // Mob
441
441
{
442
- LoadWzFileIfAbsent ( ref _MobWZ , mapleDirectory + "/Mob" , mapleVersion ) ;
442
+ if ( ! LoadWzFileIfAbsent ( ref _MobWZ , mapleDirectory + "/Mob" , mapleVersion ) ) return ;
443
443
GridMobs . Rows . Clear ( ) ;
444
444
445
445
List < WzImage > children = _MobWZ . WzDirectory . GetChildImages ( ) ;
@@ -455,7 +455,7 @@ private void LoadWzData(WzMapleVersion mapleVersion, string mapleDirectory)
455
455
}
456
456
case 7 : // Skills
457
457
{
458
- LoadWzFileIfAbsent ( ref _SkillWZ , mapleDirectory + "/Skill" , mapleVersion ) ;
458
+ if ( ! LoadWzFileIfAbsent ( ref _SkillWZ , mapleDirectory + "/Skill" , mapleVersion ) ) return ;
459
459
GridSkills . Rows . Clear ( ) ;
460
460
461
461
List < WzImage > children = _SkillWZ . WzDirectory . GetChildImages ( ) ;
@@ -479,7 +479,7 @@ private void LoadWzData(WzMapleVersion mapleVersion, string mapleDirectory)
479
479
}
480
480
case 8 : // NPCs
481
481
{
482
- LoadWzFileIfAbsent ( ref _NpcWZ , mapleDirectory + "/Npc" , mapleVersion ) ;
482
+ if ( ! LoadWzFileIfAbsent ( ref _NpcWZ , mapleDirectory + "/Npc" , mapleVersion ) ) return ;
483
483
GridNPCs . Rows . Clear ( ) ;
484
484
485
485
List < WzImage > children = _NpcWZ . WzDirectory . GetChildImages ( ) ;
@@ -494,20 +494,28 @@ private void LoadWzData(WzMapleVersion mapleVersion, string mapleDirectory)
494
494
}
495
495
}
496
496
497
- private void LoadWzFileIfAbsent ( ref WzFile wzFile , string fileName , WzMapleVersion mapleVersion )
497
+ private bool LoadWzFileIfAbsent ( ref WzFile wzFile , string fileName , WzMapleVersion mapleVersion )
498
498
{
499
- if ( wzFile != null ) return ;
499
+ if ( wzFile != null ) return false ;
500
500
if ( File . Exists ( fileName + ".wz" ) )
501
501
{
502
- wzFile = new WzFile ( fileName + ".wz" , ( short ) MapleVersion . Value , mapleVersion ) ;
503
- wzFile . ParseWzFile ( ) ;
502
+ wzFile = new WzFile ( fileName + ".wz" , ( short ) MapleVersion . Value , mapleVersion ) ;
503
+ try {
504
+ wzFile . ParseWzFile ( ) ;
505
+ return true ;
506
+ } catch ( EndOfStreamException )
507
+ {
508
+ MessageBox . Show ( "Failed to parse the WZ file. Perhaps an invalid WZ version was specified?" , "Error" , MessageBoxButtons . OK , MessageBoxIcon . Error ) ;
509
+ }
504
510
} else
505
511
{ // KMS
506
512
wzFile = new WzFile ( fileName , mapleVersion ) ;
507
513
WzDirectory dir = new WzDirectory ( fileName , wzFile ) ;
508
514
wzFile . WzDirectory = dir ;
509
515
RecursivelyLoadDirectory ( dir , fileName , mapleVersion ) ;
516
+ return true ;
510
517
}
518
+ return false ;
511
519
}
512
520
513
521
private void RecursivelyLoadDirectory ( WzDirectory dir , string directoryPath , WzMapleVersion mapleVersion )
0 commit comments