mirror of
https://github.com/Maruno17/pokemon-essentials.git
synced 2025-09-08 16:30:39 +02:00
Fixed bug in previous commit relating to writing PBS files
This commit is contained in:
@@ -763,41 +763,63 @@ module Compiler
|
|||||||
next if value.nil?
|
next if value.nil?
|
||||||
case schema[1][i, 1]
|
case schema[1][i, 1]
|
||||||
when "e", "E" # Enumerable
|
when "e", "E" # Enumerable
|
||||||
enumer = schema[2 + i]
|
enumer = schema[2 + i - start]
|
||||||
case enumer
|
case enumer
|
||||||
when Array
|
when Array
|
||||||
file.write(enumer[value])
|
file.write((value.is_a?(Integer) && enumer[value].nil?) ? enumer[value] : value)
|
||||||
when Symbol, String
|
when Symbol, String
|
||||||
mod = Object.const_get(enumer.to_sym)
|
if GameData.const_defined?(enumer.to_sym)
|
||||||
file.write(getConstantName(mod, value))
|
mod = GameData.const_get(enumer.to_sym)
|
||||||
|
file.write(mod.get(value).id.to_s)
|
||||||
|
else
|
||||||
|
mod = Object.const_get(enumer.to_sym)
|
||||||
|
file.write(getConstantName(mod, value))
|
||||||
|
end
|
||||||
when Module
|
when Module
|
||||||
file.write(getConstantName(enumer, value))
|
file.write(getConstantName(enumer, value))
|
||||||
when Hash
|
when Hash
|
||||||
enumer.each_key do |key|
|
if value.is_a?(String)
|
||||||
next if enumer[key] != value
|
file.write(value)
|
||||||
file.write(key)
|
else
|
||||||
break
|
enumer.each_key do |key|
|
||||||
|
next if enumer[key] != value
|
||||||
|
file.write(key)
|
||||||
|
break
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
when "y", "Y" # Enumerable or integer
|
when "y", "Y" # Enumerable or integer
|
||||||
enumer = schema[2 + i]
|
enumer = schema[2 + i - start]
|
||||||
case enumer
|
case enumer
|
||||||
when Array
|
when Array
|
||||||
file.write((enumer[value].nil?) ? value : enumer[value])
|
file.write((value.is_a?(Integer) && enumer[value].nil?) ? enumer[value] : value)
|
||||||
when Symbol, String
|
when Symbol, String
|
||||||
mod = Object.const_get(enumer.to_sym)
|
if !Kernel.const_defined?(enumer.to_sym) && GameData.const_defined?(enumer.to_sym)
|
||||||
file.write(getConstantNameOrValue(mod, value))
|
mod = GameData.const_get(enumer.to_sym)
|
||||||
|
if mod.exists?(value)
|
||||||
|
file.write(mod.get(value).id.to_s)
|
||||||
|
else
|
||||||
|
file.write(value.to_s)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
mod = Object.const_get(enumer.to_sym)
|
||||||
|
file.write(getConstantNameOrValue(mod, value))
|
||||||
|
end
|
||||||
when Module
|
when Module
|
||||||
file.write(getConstantNameOrValue(enumer, value))
|
file.write(getConstantNameOrValue(enumer, value))
|
||||||
when Hash
|
when Hash
|
||||||
hasenum = false
|
if value.is_a?(String)
|
||||||
enumer.each_key do |key|
|
file.write(value)
|
||||||
next if enumer[key] != value
|
else
|
||||||
file.write(key)
|
has_enum = false
|
||||||
hasenum = true
|
enumer.each_key do |key|
|
||||||
break
|
next if enumer[key] != value
|
||||||
|
file.write(key)
|
||||||
|
has_enum = true
|
||||||
|
break
|
||||||
|
end
|
||||||
|
file.write(value) if !has_enum
|
||||||
end
|
end
|
||||||
file.write(value) unless hasenum
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if value.is_a?(String)
|
if value.is_a?(String)
|
||||||
|
Reference in New Issue
Block a user