@@ -70,25 +70,32 @@ fs.readFile(sprFile, function (err, buffer) {
70
70
if ( err ) throw err ;
71
71
72
72
var reader = new BufferReader ( buffer ) ,
73
-
74
- info = {
75
- signature : reader . nextUInt32LE ( ) ,
76
- size : reader . nextUInt16LE ( ) ,
77
- } ;
73
+ count = 0 ,
74
+ info = {
75
+ signature : reader . nextUInt32LE ( ) ,
76
+ size : reader . nextUInt16LE ( ) ,
77
+ } ;
78
78
79
79
console . log ( "Signature: " + info . signature ) ;
80
80
console . log ( " Sprites: " + info . size ) ;
81
81
82
82
bars . push ( mbars . newBar ( ' Parsing: [:bar] :percent | ETA: :eta | Time Elapsed: :elapsed' , { complete : '=' , incomplete : ' ' , clear : true , width : 40 , total : info . size } ) ) ;
83
- bars . push ( mbars . newBar ( 'Exporting: [:bar] :percent | ETA: :eta | Time Elapsed: :elapsed' , { complete : '=' , incomplete : ' ' , clear : true , width : 40 , total : info . size } ) ) ;
84
83
85
84
for ( var spriteId = 1 ; spriteId < info . size ; spriteId ++ ) {
86
85
87
86
var obj = base ( spriteId ) ;
88
87
var formula = 6 + ( spriteId - 1 ) * 4 ;
89
-
90
88
reader . seek ( formula ) ;
91
- reader . seek ( reader . nextUInt32LE ( ) + 3 ) ;
89
+
90
+ var address = reader . nextUInt32LE ( ) ;
91
+ if ( address == 0 ) { // Address 0 always is an empty sprite.
92
+ bars [ 0 ] . tick ( ) ;
93
+ continue ;
94
+ }
95
+ reader . seek ( address ) ;
96
+
97
+ // Skipping color key.
98
+ reader . move ( 3 ) ;
92
99
93
100
var offset = reader . tell ( ) + reader . nextUInt16LE ( ) ;
94
101
@@ -108,8 +115,10 @@ fs.readFile(sprFile, function (err, buffer) {
108
115
}
109
116
}
110
117
118
+ count ++ ;
111
119
queue . push ( obj ) ;
112
120
bars [ 0 ] . tick ( ) ;
113
121
}
114
122
123
+ bars . push ( mbars . newBar ( 'Exporting: [:bar] :percent | ETA: :eta | Time Elapsed: :elapsed' , { complete : '=' , incomplete : ' ' , clear : true , width : 40 , total : count } ) ) ;
115
124
} ) ;
0 commit comments