add support for version 21 & 22
This commit is contained in:
+11
-1
@@ -175,6 +175,14 @@ module Mikunyan
|
|||||||
br.pos = file_size - meta_size
|
br.pos = file_size - meta_size
|
||||||
@endian = br.bool ? :big : :little
|
@endian = br.bool ? :big : :little
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if @format >= 22
|
||||||
|
meta_size = br.i32u
|
||||||
|
file_size = br.i64u
|
||||||
|
data_offset = br.i64u
|
||||||
|
br.adv(8)
|
||||||
|
end
|
||||||
|
|
||||||
br.endian = @endian
|
br.endian = @endian
|
||||||
|
|
||||||
@generator_version = br.cstr if @format >= 7
|
@generator_version = br.cstr if @format >= 7
|
||||||
@@ -198,7 +206,8 @@ module Mikunyan
|
|||||||
br.align(4) if @format >= 14
|
br.align(4) if @format >= 14
|
||||||
if @format >= 16
|
if @format >= 16
|
||||||
ObjectEntry.new(
|
ObjectEntry.new(
|
||||||
path_id: wide_path_id ? br.i64s : br.i32s, offset: br.i32u, size: br.i32u,
|
path_id: wide_path_id ? br.i64s : br.i32s,
|
||||||
|
offset: @format >= 22 ? br.i64u : br.i32u, size: br.i32u,
|
||||||
class_idx: br.i32u, stripped?: @format == 16 ? br.bool : nil,
|
class_idx: br.i32u, stripped?: @format == 16 ? br.bool : nil,
|
||||||
parent_asset: self
|
parent_asset: self
|
||||||
)
|
)
|
||||||
@@ -227,6 +236,7 @@ module Mikunyan
|
|||||||
end
|
end
|
||||||
|
|
||||||
@comment = br.cstr if @format >= 5
|
@comment = br.cstr if @format >= 5
|
||||||
|
# _ = br.i32 if @format >= 21
|
||||||
|
|
||||||
@objects.each do |e|
|
@objects.each do |e|
|
||||||
br.jmp(data_offset + e.offset)
|
br.jmp(data_offset + e.offset)
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ module Mikunyan
|
|||||||
end
|
end
|
||||||
stack[n.level] = n
|
stack[n.level] = n
|
||||||
end
|
end
|
||||||
|
br.adv(4) if version >= 21
|
||||||
else
|
else
|
||||||
nodes = []
|
nodes = []
|
||||||
stack = []
|
stack = []
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user