fusionpacker 0.1.1 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/fusionpacker +1 -1
- data/lib/RGSS/serialize.rb +1 -1
- data/lib/RGSS.rb +61 -62
- data/lib/fusionpacker/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b7f5e7542c392e7f45369bb7489f51c13f291e3e54485a35b109b752857bb379
|
4
|
+
data.tar.gz: 88c8c07d3185c7bcf3790dace0dfe0ba31812ac65686a3c77087fa0629ae14da
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d34c6d93a919c5e6910532ec8ff46ed5d965f6d148032a860bc9f630755e91afcc2ae133e3e0b5241342a62866a3be061fbf6942c9b5e3011d0af802ebb7400f
|
7
|
+
data.tar.gz: e1be468b92a39089ebcef4720de7b8f19b1d82338b828cbeae6efeea56630983c981cb118cfc221d7e313a0e664083444cadfbb514f4c4c0d4c3da8858aa0bb7
|
data/bin/fusionpacker
CHANGED
@@ -12,7 +12,7 @@ opts = Optimist::options do
|
|
12
12
|
opt :verbose, "Print verbose information while processing", :short => "V"
|
13
13
|
opt :scripts, "Convert scripts contained in /project/Scripts", :default => false
|
14
14
|
opt :saves, "Convert saves contained in /project", :default => false
|
15
|
-
opt :files, "Array of files to convert instead, delimited by spaces", :short => "l", :type => :strings
|
15
|
+
opt :files, "Array of files to convert instead, delimited by spaces. If this argument is present, paths to files are resolved from --project directory", :short => "l", :type => :strings
|
16
16
|
end
|
17
17
|
|
18
18
|
directions = {
|
data/lib/RGSS/serialize.rb
CHANGED
data/lib/RGSS.rb
CHANGED
@@ -43,13 +43,13 @@ class Table
|
|
43
43
|
if MAX_ROW_LENGTH != -1 && stride > MAX_ROW_LENGTH
|
44
44
|
block_length = (stride + MAX_ROW_LENGTH - 1) / MAX_ROW_LENGTH
|
45
45
|
row_length = (stride + block_length - 1) / block_length
|
46
|
-
rows = rows.collect{|x| x.each_slice(row_length).to_a}.flatten(1)
|
46
|
+
rows = rows.collect { |x| x.each_slice(row_length).to_a }.flatten(1)
|
47
47
|
end
|
48
|
-
rows = rows.collect{|x| x.collect{|y| "%04x" % y}.join(" ")}
|
49
|
-
|
48
|
+
rows = rows.collect { |x| x.collect { |y| "%04x" % y }.join(" ") }
|
49
|
+
coder['data'] = rows
|
50
50
|
else
|
51
51
|
coder['data'] = []
|
52
|
-
|
52
|
+
end
|
53
53
|
end
|
54
54
|
|
55
55
|
def init_with(coder)
|
@@ -57,7 +57,7 @@ class Table
|
|
57
57
|
@x = coder['x']
|
58
58
|
@y = coder['y']
|
59
59
|
@z = coder['z']
|
60
|
-
@data = coder['data'].collect{|x| x.split(" ").collect{|y| y.hex}}.flatten
|
60
|
+
@data = coder['data'].collect { |x| x.split(" ").collect { |y| y.hex } }.flatten
|
61
61
|
items = @x * @y * @z
|
62
62
|
raise "Size mismatch loading Table from YAML" unless items == @data.length
|
63
63
|
end
|
@@ -68,7 +68,7 @@ class Table
|
|
68
68
|
|
69
69
|
def self._load(bytes)
|
70
70
|
Table.new(bytes)
|
71
|
-
|
71
|
+
end
|
72
72
|
end
|
73
73
|
|
74
74
|
class Color
|
@@ -89,7 +89,7 @@ class Color
|
|
89
89
|
end
|
90
90
|
|
91
91
|
def self._load(bytes)
|
92
|
-
|
92
|
+
Color.new(bytes)
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
@@ -173,33 +173,32 @@ module RGSS
|
|
173
173
|
|
174
174
|
# Object.const_set(:PokemonDataBox, PokemonDataBox) unless Object.const_defined?(name, false)
|
175
175
|
# other classes that don't need definitions
|
176
|
-
[
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
].each {|x| process(Object, *x)}
|
202
|
-
|
176
|
+
[# RGSS data structures
|
177
|
+
[:RPG, :Actor], [:RPG, :Animation], [:RPG, :Animation, :Frame],
|
178
|
+
[:RPG, :Animation, :Timing], [:RPG, :Area], [:RPG, :Armor], [:RPG, :AudioFile],
|
179
|
+
[:RPG, :BaseItem], [:RPG, :BaseItem, :Feature], [:RPG, :BGM], [:RPG, :BGS],
|
180
|
+
[:RPG, :Class], [:RPG, :Class, :Learning], [:RPG, :CommonEvent], [:RPG, :Enemy],
|
181
|
+
[:RPG, :Enemy, :Action], [:RPG, :Enemy, :DropItem], [:RPG, :EquipItem],
|
182
|
+
[:RPG, :Event], [:RPG, :Event, :Page], [:RPG, :Event, :Page, :Condition],
|
183
|
+
[:RPG, :Event, :Page, :Graphic], [:RPG, :Item], [:RPG, :Map],
|
184
|
+
[:RPG, :Map, :Encounter], [:RPG, :MapInfo], [:RPG, :ME], [:RPG, :MoveCommand],
|
185
|
+
[:RPG, :MoveRoute], [:RPG, :SE], [:RPG, :Skill], [:RPG, :State],
|
186
|
+
[:RPG, :System, :Terms], [:RPG, :System, :TestBattler], [:RPG, :System, :Vehicle],
|
187
|
+
[:RPG, :System, :Words], [:RPG, :Tileset], [:RPG, :Troop], [:RPG, :Troop, :Member],
|
188
|
+
[:RPG, :Troop, :Page], [:RPG, :Troop, :Page, :Condition], [:RPG, :UsableItem],
|
189
|
+
[:RPG, :UsableItem, :Damage], [:RPG, :UsableItem, :Effect], [:RPG, :Weapon],
|
190
|
+
# Script classes serialized in save game files
|
191
|
+
[:Game_ActionResult], [:Game_Actor], [:Game_Actors], [:Game_BaseItem],
|
192
|
+
[:Game_BattleAction], [:Game_CommonEvent], [:Game_Enemy], [:Game_Event],
|
193
|
+
[:Game_Follower], [:Game_Followers], [:Game_Interpreter], [:Game_Map],
|
194
|
+
[:Game_Message], [:Game_Party], [:Game_Picture], [:Game_Pictures], [:Game_Player],
|
195
|
+
[:Game_System], [:Game_Timer], [:Game_Troop], [:Game_Screen], [:Game_Vehicle],
|
196
|
+
[:Interpreter],
|
197
|
+
[:PokemonDataCopy],
|
198
|
+
[:PBAnimations]
|
199
|
+
# coughing up classes for fusion
|
200
|
+
# [:PokemonDataBox, :Graphic]
|
201
|
+
].each { |x| process(Object, *x) }
|
203
202
|
|
204
203
|
def self.setup_system(version, options)
|
205
204
|
# convert variable and switch name arrays to a hash when serialized
|
@@ -211,10 +210,10 @@ module RGSS
|
|
211
210
|
reset_method(Game_System, :map_version, iso)
|
212
211
|
else
|
213
212
|
reset_method(RPG::System, :reduce_string, ->(str) {
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
213
|
+
return nil if str.nil?
|
214
|
+
stripped = str.strip
|
215
|
+
return stripped.empty? ? nil : stripped
|
216
|
+
})
|
218
217
|
# These magic numbers should be different. If they are the same, the saved version
|
219
218
|
# of the map in save files will be used instead of any updated version of the map
|
220
219
|
reset_method(RPG::System, :map_version, ->(ignored) { return 12345678 })
|
@@ -225,14 +224,14 @@ module RGSS
|
|
225
224
|
def self.setup_interpreter(version)
|
226
225
|
# Game_Interpreter is marshalled differently in VX Ace
|
227
226
|
if version == :ace
|
228
|
-
reset_method(Game_Interpreter, :marshal_dump, ->{
|
229
|
-
|
230
|
-
|
227
|
+
reset_method(Game_Interpreter, :marshal_dump, -> {
|
228
|
+
return @data
|
229
|
+
})
|
231
230
|
reset_method(Game_Interpreter, :marshal_load, ->(obj) {
|
232
|
-
|
233
|
-
|
231
|
+
@data = obj
|
232
|
+
})
|
234
233
|
else
|
235
|
-
|
234
|
+
remove_defined_method(Game_Interpreter, :marshal_dump)
|
236
235
|
remove_defined_method(Game_Interpreter, :marshal_load)
|
237
236
|
end
|
238
237
|
end
|
@@ -240,11 +239,11 @@ module RGSS
|
|
240
239
|
def self.setup_event_command(version, options)
|
241
240
|
# format event commands to flow style for the event codes that aren't move commands
|
242
241
|
if options[:round_trip]
|
243
|
-
reset_method(RPG::EventCommand, :clean, ->{})
|
242
|
+
reset_method(RPG::EventCommand, :clean, -> {})
|
244
243
|
else
|
245
|
-
reset_method(RPG::EventCommand, :clean, ->{
|
246
|
-
|
247
|
-
|
244
|
+
reset_method(RPG::EventCommand, :clean, -> {
|
245
|
+
@parameters[0].rstrip! if @code == 401
|
246
|
+
})
|
248
247
|
end
|
249
248
|
reset_const(RPG::EventCommand, :MOVE_LIST_CODE, version == :xp ? 209 : 205)
|
250
249
|
end
|
@@ -261,13 +260,13 @@ module RGSS
|
|
261
260
|
SCRIPTS_BASE = 'Scripts'
|
262
261
|
|
263
262
|
ACE_DATA_EXT = '.rvdata2'
|
264
|
-
VX_DATA_EXT
|
265
|
-
XP_DATA_EXT
|
266
|
-
YAML_EXT
|
267
|
-
RUBY_EXT
|
263
|
+
VX_DATA_EXT = '.rvdata'
|
264
|
+
XP_DATA_EXT = '.rxdata'
|
265
|
+
YAML_EXT = '.yaml'
|
266
|
+
RUBY_EXT = '.rb'
|
268
267
|
|
269
|
-
def self.get_data_directory(base)
|
270
|
-
return File.join(base, 'Data')
|
268
|
+
def self.get_data_directory(base, files)
|
269
|
+
return files && base || File.join(base, 'Data')
|
271
270
|
end
|
272
271
|
|
273
272
|
def self.get_yaml_directory(base)
|
@@ -306,17 +305,17 @@ module RGSS
|
|
306
305
|
include RGSS::BasicCoder
|
307
306
|
|
308
307
|
def encode(name, value)
|
309
|
-
return Hash[value.collect {|pair|
|
310
|
-
|
311
|
-
|
312
|
-
|
308
|
+
return Hash[value.collect { |pair|
|
309
|
+
key, value = pair
|
310
|
+
next ["%03d %03d %s" % key, value]
|
311
|
+
}]
|
313
312
|
end
|
314
313
|
|
315
314
|
def decode(name, value)
|
316
|
-
return Hash[value.collect {|pair|
|
317
|
-
|
318
|
-
|
319
|
-
|
315
|
+
return Hash[value.collect { |pair|
|
316
|
+
key, value = pair
|
317
|
+
next [key.scanf("%d %d %s"), value]
|
318
|
+
}]
|
320
319
|
end
|
321
320
|
end
|
322
321
|
|
data/lib/fusionpacker/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fusionpacker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Howard Jeng
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2023-10-
|
14
|
+
date: 2023-10-04 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|