swf_ruby 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/swf_ruby/replace_target.rb +16 -4
- data/lib/swf_ruby/swf/tag.rb +17 -6
- data/lib/swf_ruby/version.rb +1 -1
- metadata +4 -24
@@ -31,6 +31,7 @@ module SwfRuby
|
|
31
31
|
attr_accessor :idmap
|
32
32
|
attr_accessor :target_define_tags_string
|
33
33
|
attr_accessor :target_control_tags_string
|
34
|
+
attr_reader :target_swf_dumper
|
34
35
|
|
35
36
|
def initialize(offset, swf)
|
36
37
|
@offset = offset
|
@@ -39,7 +40,7 @@ module SwfRuby
|
|
39
40
|
@frame_count = @target_swf_dumper.header.frame_count
|
40
41
|
@define_tags = @target_swf_dumper.tags.select { |t| t.define_tag? }
|
41
42
|
@control_tags = @target_swf_dumper.tags - @define_tags
|
42
|
-
@idmap = {}
|
43
|
+
@idmap = { 65535 => 65535 }
|
43
44
|
end
|
44
45
|
|
45
46
|
def self.build_list_by_instance_var_names(swf_dumper, var_name_to_swf)
|
@@ -61,10 +62,21 @@ module SwfRuby
|
|
61
62
|
if t.character_id
|
62
63
|
sprite_indices[t.character_id] = i
|
63
64
|
end
|
64
|
-
if
|
65
|
-
|
66
|
-
|
65
|
+
if Swf::TAG_TYPE[t.code] == "DefineSprite"
|
66
|
+
sd = SwfRuby::SpriteDumper.new
|
67
|
+
sd.dump(t)
|
68
|
+
sd.tags.each do |t2|
|
69
|
+
if var_name == t2.refer_character_inst_name
|
70
|
+
refer_character_id = t2.refer_character_id
|
71
|
+
break
|
72
|
+
end
|
73
|
+
end
|
74
|
+
else
|
75
|
+
if var_name == t.refer_character_inst_name
|
76
|
+
refer_character_id = t.refer_character_id
|
77
|
+
end
|
67
78
|
end
|
79
|
+
break if refer_character_id
|
68
80
|
end
|
69
81
|
raise ReplaceTargetError unless refer_character_id
|
70
82
|
offset = swf_dumper.tags_addresses[sprite_indices[refer_character_id]]
|
data/lib/swf_ruby/swf/tag.rb
CHANGED
@@ -90,9 +90,7 @@ module SwfRuby
|
|
90
90
|
when "RemoveObject"
|
91
91
|
@refer_character_id_offset = data_offset
|
92
92
|
@refer_character_id = @data[0, 2].unpack("v").first
|
93
|
-
when "DefineShape"
|
94
|
-
when "DefineShape2"
|
95
|
-
when "DefineShape3"
|
93
|
+
when "DefineShape", "DefineShape2", "DefineShape3"
|
96
94
|
version = Swf::TAG_TYPE[@code][-1].to_i
|
97
95
|
version = 1 if version == 0
|
98
96
|
@refer_bitmap_offsets_to_ids = {}
|
@@ -135,9 +133,22 @@ module SwfRuby
|
|
135
133
|
if self.define_tag?
|
136
134
|
offset = @long_header ? 6 : 2
|
137
135
|
@rawdata[offset, 2] = [character_id].pack("v")
|
138
|
-
@
|
139
|
-
|
140
|
-
|
136
|
+
if Swf::TAG_TYPE[@code] == "DefineSprite"
|
137
|
+
sd = SwfRuby::SpriteDumper.new.dump(self)
|
138
|
+
rdata = ""
|
139
|
+
sd.tags.each do |t|
|
140
|
+
if t.refer_character_id
|
141
|
+
rdata << t.rawdata_with_refer_character_id(idmap[t.refer_character_id])
|
142
|
+
else
|
143
|
+
rdata << t.rawdata
|
144
|
+
end
|
145
|
+
end
|
146
|
+
@rawdata[offset+4..-1] = rdata
|
147
|
+
else
|
148
|
+
@refer_bitmap_offsets_to_ids.each do |bitmap_id_offset, bitmap_id|
|
149
|
+
@rawdata[bitmap_id_offset, 2] = [idmap[bitmap_id]].pack("v")
|
150
|
+
end if @refer_bitmap_offsets_to_ids
|
151
|
+
end
|
141
152
|
end
|
142
153
|
@rawdata
|
143
154
|
end
|
data/lib/swf_ruby/version.rb
CHANGED
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: swf_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 2
|
8
|
-
- 0
|
9
|
-
version: 0.2.0
|
4
|
+
prerelease:
|
5
|
+
version: 0.2.1
|
10
6
|
platform: ruby
|
11
7
|
authors: []
|
12
8
|
|
@@ -14,7 +10,7 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date: 2011-
|
13
|
+
date: 2011-05-24 00:00:00 +09:00
|
18
14
|
default_executable:
|
19
15
|
dependencies:
|
20
16
|
- !ruby/object:Gem::Dependency
|
@@ -25,12 +21,6 @@ dependencies:
|
|
25
21
|
requirements:
|
26
22
|
- - ">="
|
27
23
|
- !ruby/object:Gem::Version
|
28
|
-
segments:
|
29
|
-
- 1
|
30
|
-
- 0
|
31
|
-
- 0
|
32
|
-
- rc
|
33
|
-
- 5
|
34
24
|
version: 1.0.0.rc.5
|
35
25
|
type: :runtime
|
36
26
|
version_requirements: *id001
|
@@ -42,10 +32,6 @@ dependencies:
|
|
42
32
|
requirements:
|
43
33
|
- - ">="
|
44
34
|
- !ruby/object:Gem::Version
|
45
|
-
segments:
|
46
|
-
- 2
|
47
|
-
- 13
|
48
|
-
- 0
|
49
35
|
version: 2.13.0
|
50
36
|
type: :runtime
|
51
37
|
version_requirements: *id002
|
@@ -117,23 +103,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
117
103
|
requirements:
|
118
104
|
- - ">="
|
119
105
|
- !ruby/object:Gem::Version
|
120
|
-
segments:
|
121
|
-
- 0
|
122
106
|
version: "0"
|
123
107
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
124
108
|
none: false
|
125
109
|
requirements:
|
126
110
|
- - ">="
|
127
111
|
- !ruby/object:Gem::Version
|
128
|
-
segments:
|
129
|
-
- 1
|
130
|
-
- 3
|
131
|
-
- 6
|
132
112
|
version: 1.3.6
|
133
113
|
requirements: []
|
134
114
|
|
135
115
|
rubyforge_project: swf_ruby
|
136
|
-
rubygems_version: 1.
|
116
|
+
rubygems_version: 1.6.2
|
137
117
|
signing_key:
|
138
118
|
specification_version: 3
|
139
119
|
summary: Utilities to dump or manipulate Swf binary file.
|