mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-07 13:15:01 +00:00
Tweaked Compiler error messages, made some in def cast_csv_value show if trying to cast nil
This commit is contained in:
@@ -411,7 +411,7 @@ module PluginManager
|
|||||||
Compiler.pbCompilerEachPreppedLine(filename) do |line, line_no|
|
Compiler.pbCompilerEachPreppedLine(filename) do |line, line_no|
|
||||||
# split line up into property name and values
|
# split line up into property name and values
|
||||||
if !line[/^\s*(\w+)\s*=\s*(.*)$/]
|
if !line[/^\s*(\w+)\s*=\s*(.*)$/]
|
||||||
raise _INTL("Bad line syntax (expected syntax like XXX=YYY)\n{1}", FileLineData.linereport)
|
raise _INTL("Bad line syntax (expected syntax like XXX=YYY).") + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
property = $~[1].upcase
|
property = $~[1].upcase
|
||||||
data = $~[2].split(",")
|
data = $~[2].split(",")
|
||||||
|
|||||||
@@ -112,11 +112,11 @@ module Compiler
|
|||||||
else
|
else
|
||||||
if sectionname.nil?
|
if sectionname.nil?
|
||||||
FileLineData.setLine(line, lineno)
|
FileLineData.setLine(line, lineno)
|
||||||
raise _INTL("Expected a section at the beginning of the file. This error may also occur if the file was not saved in UTF-8.\n{1}", FileLineData.linereport)
|
raise _INTL("Expected a section at the beginning of the file.\nThis error may also occur if the file was not saved in UTF-8.") + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
if !line[/^\s*(\w+)\s*=\s*(.*)$/]
|
if !line[/^\s*(\w+)\s*=\s*(.*)$/]
|
||||||
FileLineData.setSection(sectionname, nil, line)
|
FileLineData.setSection(sectionname, nil, line)
|
||||||
raise _INTL("Bad line syntax (expected syntax like XXX=YYY)\n{1}", FileLineData.linereport)
|
raise _INTL("Bad line syntax (expected syntax like XXX=YYY).") + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
r1 = $~[1]
|
r1 = $~[1]
|
||||||
r2 = $~[2]
|
r2 = $~[2]
|
||||||
@@ -316,7 +316,7 @@ module Compiler
|
|||||||
end
|
end
|
||||||
str[0, fieldbytes] = ""
|
str[0, fieldbytes] = ""
|
||||||
if !str[/^\s*,/] && !str[/^\s*$/]
|
if !str[/^\s*,/] && !str[/^\s*$/]
|
||||||
raise _INTL("Invalid quoted field (in: {1})\n{2}", str, FileLineData.linereport)
|
raise _INTL("Invalid quoted field (in: {1}).", str) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
str[0, str.length] = $~.post_match
|
str[0, str.length] = $~.post_match
|
||||||
else
|
else
|
||||||
@@ -337,14 +337,14 @@ module Compiler
|
|||||||
field = csvfield!(str)
|
field = csvfield!(str)
|
||||||
return true if field[/^(?:1|TRUE|YES|Y)$/i]
|
return true if field[/^(?:1|TRUE|YES|Y)$/i]
|
||||||
return false if field[/^(?:0|FALSE|NO|N)$/i]
|
return false if field[/^(?:0|FALSE|NO|N)$/i]
|
||||||
raise _INTL("Field {1} is not a Boolean value (true, false, 1, 0)\n{2}", field, FileLineData.linereport)
|
raise _INTL("Field '{1}' is not a Boolean value (true, false, 1, 0).", field) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
|
|
||||||
# Unused
|
# Unused
|
||||||
def csvInt!(str, _line = -1)
|
def csvInt!(str, _line = -1)
|
||||||
ret = csvfield!(str)
|
ret = csvfield!(str)
|
||||||
if !ret[/^\-?\d+$/]
|
if !ret[/^\-?\d+$/]
|
||||||
raise _INTL("Field {1} is not an integer\n{2}", ret, FileLineData.linereport)
|
raise _INTL("Field '{1}' is not an integer.", ret) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
return ret.to_i
|
return ret.to_i
|
||||||
end
|
end
|
||||||
@@ -353,7 +353,7 @@ module Compiler
|
|||||||
def csvPosInt!(str, _line = -1)
|
def csvPosInt!(str, _line = -1)
|
||||||
ret = csvfield!(str)
|
ret = csvfield!(str)
|
||||||
if !ret[/^\d+$/]
|
if !ret[/^\d+$/]
|
||||||
raise _INTL("Field {1} is not a positive integer\n{2}", ret, FileLineData.linereport)
|
raise _INTL("Field '{1}' is not a positive integer.", ret) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
return ret.to_i
|
return ret.to_i
|
||||||
end
|
end
|
||||||
@@ -361,7 +361,7 @@ module Compiler
|
|||||||
# Unused
|
# Unused
|
||||||
def csvFloat!(str, _line = -1)
|
def csvFloat!(str, _line = -1)
|
||||||
ret = csvfield!(str)
|
ret = csvfield!(str)
|
||||||
return Float(ret) rescue raise _INTL("Field {1} is not a number\n{2}", ret, FileLineData.linereport)
|
return Float(ret) rescue raise _INTL("Field '{1}' is not a number.", ret) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
|
|
||||||
# Unused
|
# Unused
|
||||||
@@ -384,52 +384,52 @@ module Compiler
|
|||||||
def cast_csv_value(value, schema, enumer = nil)
|
def cast_csv_value(value, schema, enumer = nil)
|
||||||
case schema.downcase
|
case schema.downcase
|
||||||
when "i" # Integer
|
when "i" # Integer
|
||||||
if !value[/^\-?\d+$/]
|
if !value || !value[/^\-?\d+$/]
|
||||||
raise _INTL("Field {1} is not an integer\n{2}", value, FileLineData.linereport)
|
raise _INTL("Field '{1}' is not an integer.", value) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
return value.to_i
|
return value.to_i
|
||||||
when "u" # Positive integer or zero
|
when "u" # Positive integer or zero
|
||||||
if !value[/^\d+$/]
|
if !value || !value[/^\d+$/]
|
||||||
raise _INTL("Field {1} is not a positive integer or 0\n{2}", value, FileLineData.linereport)
|
raise _INTL("Field '{1}' is not a positive integer or 0.", value) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
return value.to_i
|
return value.to_i
|
||||||
when "v" # Positive integer
|
when "v" # Positive integer
|
||||||
if !value[/^\d+$/]
|
if !value || !value[/^\d+$/]
|
||||||
raise _INTL("Field {1} is not a positive integer\n{2}", value, FileLineData.linereport)
|
raise _INTL("Field '{1}' is not a positive integer.", value) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
if value.to_i == 0
|
if value.to_i == 0
|
||||||
raise _INTL("Field '{1}' must be greater than 0\n{2}", value, FileLineData.linereport)
|
raise _INTL("Field '{1}' must be greater than 0.", value) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
return value.to_i
|
return value.to_i
|
||||||
when "x" # Hexadecimal number
|
when "x" # Hexadecimal number
|
||||||
if !value[/^[A-F0-9]+$/i]
|
if !value || !value[/^[A-F0-9]+$/i]
|
||||||
raise _INTL("Field '{1}' is not a hexadecimal number\n{2}", value, FileLineData.linereport)
|
raise _INTL("Field '{1}' is not a hexadecimal number.", value) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
return value.hex
|
return value.hex
|
||||||
when "f" # Floating point number
|
when "f" # Floating point number
|
||||||
if !value[/^\-?^\d*\.?\d*$/]
|
if !value || !value[/^\-?^\d*\.?\d*$/]
|
||||||
raise _INTL("Field {1} is not a number\n{2}", value, FileLineData.linereport)
|
raise _INTL("Field '{1}' is not a number.", value) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
return value.to_f
|
return value.to_f
|
||||||
when "b" # Boolean
|
when "b" # Boolean
|
||||||
return true if value[/^(?:1|TRUE|YES|Y)$/i]
|
return true if value && value[/^(?:1|TRUE|YES|Y)$/i]
|
||||||
return false if value[/^(?:0|FALSE|NO|N)$/i]
|
return false if value && value[/^(?:0|FALSE|NO|N)$/i]
|
||||||
raise _INTL("Field {1} is not a Boolean value (true, false, 1, 0)\n{2}", value, FileLineData.linereport)
|
raise _INTL("Field '{1}' is not a Boolean value (true, false, 1, 0).", value) + "\n" + FileLineData.linereport
|
||||||
when "n" # Name
|
when "n" # Name
|
||||||
if !value[/^(?![0-9])\w+$/]
|
if !value || !value[/^(?![0-9])\w+$/]
|
||||||
raise _INTL("Field '{1}' must contain only letters, digits, and\nunderscores and can't begin with a number.\n{2}", value, FileLineData.linereport)
|
raise _INTL("Field '{1}' must contain only letters, digits, and\nunderscores and can't begin with a number.", value) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
when "s" # String
|
when "s" # String
|
||||||
when "q" # Unformatted text
|
when "q" # Unformatted text
|
||||||
when "m" # Symbol
|
when "m" # Symbol
|
||||||
if !value[/^(?![0-9])\w+$/]
|
if !value || !value[/^(?![0-9])\w+$/]
|
||||||
raise _INTL("Field '{1}' must contain only letters, digits, and\nunderscores and can't begin with a number.\n{2}", value, FileLineData.linereport)
|
raise _INTL("Field '{1}' must contain only letters, digits, and\nunderscores and can't begin with a number.", value) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
return value.to_sym
|
return value.to_sym
|
||||||
when "e" # Enumerable
|
when "e" # Enumerable
|
||||||
return checkEnumField(value, enumer)
|
return checkEnumField(value, enumer)
|
||||||
when "y" # Enumerable or integer
|
when "y" # Enumerable or integer
|
||||||
return value.to_i if value[/^\-?\d+$/]
|
return value.to_i if value && value[/^\-?\d+$/]
|
||||||
return checkEnumField(value, enumer)
|
return checkEnumField(value, enumer)
|
||||||
end
|
end
|
||||||
return value
|
return value
|
||||||
@@ -440,10 +440,10 @@ module Compiler
|
|||||||
when Module
|
when Module
|
||||||
begin
|
begin
|
||||||
if nil_or_empty?(ret) || !enumer.const_defined?(ret)
|
if nil_or_empty?(ret) || !enumer.const_defined?(ret)
|
||||||
raise _INTL("Undefined value {1} in {2}\n{3}", ret, enumer.name, FileLineData.linereport)
|
raise _INTL("Undefined value {1} in {2}.", ret, enumer.name) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
rescue NameError
|
rescue NameError
|
||||||
raise _INTL("Incorrect value {1} in {2}\n{3}", ret, enumer.name, FileLineData.linereport)
|
raise _INTL("Incorrect value {1} in {2}.", ret, enumer.name) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
return enumer.const_get(ret.to_sym)
|
return enumer.const_get(ret.to_sym)
|
||||||
when Symbol, String
|
when Symbol, String
|
||||||
@@ -451,36 +451,36 @@ module Compiler
|
|||||||
enumer = GameData.const_get(enumer.to_sym)
|
enumer = GameData.const_get(enumer.to_sym)
|
||||||
begin
|
begin
|
||||||
if nil_or_empty?(ret) || !enumer.exists?(ret.to_sym)
|
if nil_or_empty?(ret) || !enumer.exists?(ret.to_sym)
|
||||||
raise _INTL("Undefined value {1} in {2}\n{3}", ret, enumer.name, FileLineData.linereport)
|
raise _INTL("Undefined value {1} in {2}.", ret, enumer.name) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
rescue NameError
|
rescue NameError
|
||||||
raise _INTL("Incorrect value {1} in {2}\n{3}", ret, enumer.name, FileLineData.linereport)
|
raise _INTL("Incorrect value {1} in {2}.", ret, enumer.name) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
return ret.to_sym
|
return ret.to_sym
|
||||||
end
|
end
|
||||||
enumer = Object.const_get(enumer.to_sym)
|
enumer = Object.const_get(enumer.to_sym)
|
||||||
begin
|
begin
|
||||||
if nil_or_empty?(ret) || !enumer.const_defined?(ret)
|
if nil_or_empty?(ret) || !enumer.const_defined?(ret)
|
||||||
raise _INTL("Undefined value {1} in {2}\n{3}", ret, enumer.name, FileLineData.linereport)
|
raise _INTL("Undefined value {1} in {2}.", ret, enumer.name) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
rescue NameError
|
rescue NameError
|
||||||
raise _INTL("Incorrect value {1} in {2}\n{3}", ret, enumer.name, FileLineData.linereport)
|
raise _INTL("Incorrect value {1} in {2}.", ret, enumer.name) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
return enumer.const_get(ret.to_sym)
|
return enumer.const_get(ret.to_sym)
|
||||||
when Array
|
when Array
|
||||||
idx = findIndex(enumer) { |item| ret == item }
|
idx = (nil_or_empty?(ret)) ? -1 : findIndex(enumer) { |item| ret == item }
|
||||||
if idx < 0
|
if idx < 0
|
||||||
raise _INTL("Undefined value {1} (expected one of: {2})\n{3}", ret, enumer.inspect, FileLineData.linereport)
|
raise _INTL("Undefined value {1} (expected one of: {2}).", ret, enumer.inspect) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
return idx
|
return idx
|
||||||
when Hash
|
when Hash
|
||||||
value = enumer[ret]
|
value = (nil_or_empty?(ret)) ? nil : enumer[ret]
|
||||||
if value.nil?
|
if value.nil?
|
||||||
raise _INTL("Undefined value {1} (expected one of: {2})\n{3}", ret, enumer.keys.inspect, FileLineData.linereport)
|
raise _INTL("Undefined value {1} (expected one of: {2}).", ret, enumer.keys.inspect) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
return value
|
return value
|
||||||
end
|
end
|
||||||
raise _INTL("Enumeration not defined\n{1}", FileLineData.linereport)
|
raise _INTL("Enumeration not defined.") + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
|
|
||||||
# Unused
|
# Unused
|
||||||
@@ -540,7 +540,7 @@ module Compiler
|
|||||||
if nil_or_empty?(field)
|
if nil_or_empty?(field)
|
||||||
subrecord.push(nil)
|
subrecord.push(nil)
|
||||||
elsif !field[/^\-?\d+$/]
|
elsif !field[/^\-?\d+$/]
|
||||||
raise _INTL("Field {1} is not an integer\n{2}", field, FileLineData.linereport)
|
raise _INTL("Field '{1}' is not an integer.", field) + "\n" + FileLineData.linereport
|
||||||
else
|
else
|
||||||
subrecord.push(field.to_i)
|
subrecord.push(field.to_i)
|
||||||
end
|
end
|
||||||
@@ -551,29 +551,29 @@ module Compiler
|
|||||||
if nil_or_empty?(field)
|
if nil_or_empty?(field)
|
||||||
subrecord.push(nil)
|
subrecord.push(nil)
|
||||||
elsif !field[/^\d+$/]
|
elsif !field[/^\d+$/]
|
||||||
raise _INTL("Field '{1}' must be 0 or greater\n{2}", field, FileLineData.linereport)
|
raise _INTL("Field '{1}' must be 0 or greater.", field) + "\n" + FileLineData.linereport
|
||||||
else
|
else
|
||||||
subrecord.push(field.to_i)
|
subrecord.push(field.to_i)
|
||||||
end
|
end
|
||||||
when "v" # Positive integer
|
when "v" # Positive integer
|
||||||
field = csvPosInt!(rec, lineno)
|
field = csvPosInt!(rec, lineno)
|
||||||
raise _INTL("Field '{1}' must be greater than 0\n{2}", field, FileLineData.linereport) if field == 0
|
raise _INTL("Field '{1}' must be greater than 0.", field) + "\n" + FileLineData.linereport if field == 0
|
||||||
subrecord.push(field)
|
subrecord.push(field)
|
||||||
when "V" # Optional positive integer
|
when "V" # Optional positive integer
|
||||||
field = csvfield!(rec)
|
field = csvfield!(rec)
|
||||||
if nil_or_empty?(field)
|
if nil_or_empty?(field)
|
||||||
subrecord.push(nil)
|
subrecord.push(nil)
|
||||||
elsif !field[/^\d+$/]
|
elsif !field[/^\d+$/]
|
||||||
raise _INTL("Field '{1}' must be greater than 0\n{2}", field, FileLineData.linereport)
|
raise _INTL("Field '{1}' must be greater than 0.", field) + "\n" + FileLineData.linereport
|
||||||
elsif field.to_i == 0
|
elsif field.to_i == 0
|
||||||
raise _INTL("Field '{1}' must be greater than 0\n{2}", field, FileLineData.linereport)
|
raise _INTL("Field '{1}' must be greater than 0.", field) + "\n" + FileLineData.linereport
|
||||||
else
|
else
|
||||||
subrecord.push(field.to_i)
|
subrecord.push(field.to_i)
|
||||||
end
|
end
|
||||||
when "x" # Hexadecimal number
|
when "x" # Hexadecimal number
|
||||||
field = csvfield!(rec)
|
field = csvfield!(rec)
|
||||||
if !field[/^[A-Fa-f0-9]+$/]
|
if !field[/^[A-Fa-f0-9]+$/]
|
||||||
raise _INTL("Field '{1}' is not a hexadecimal number\n{2}", field, FileLineData.linereport)
|
raise _INTL("Field '{1}' is not a hexadecimal number.", field) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
subrecord.push(field.hex)
|
subrecord.push(field.hex)
|
||||||
when "X" # Optional hexadecimal number
|
when "X" # Optional hexadecimal number
|
||||||
@@ -581,7 +581,7 @@ module Compiler
|
|||||||
if nil_or_empty?(field)
|
if nil_or_empty?(field)
|
||||||
subrecord.push(nil)
|
subrecord.push(nil)
|
||||||
elsif !field[/^[A-Fa-f0-9]+$/]
|
elsif !field[/^[A-Fa-f0-9]+$/]
|
||||||
raise _INTL("Field '{1}' is not a hexadecimal number\n{2}", field, FileLineData.linereport)
|
raise _INTL("Field '{1}' is not a hexadecimal number.", field) + "\n" + FileLineData.linereport
|
||||||
else
|
else
|
||||||
subrecord.push(field.hex)
|
subrecord.push(field.hex)
|
||||||
end
|
end
|
||||||
@@ -592,7 +592,7 @@ module Compiler
|
|||||||
if nil_or_empty?(field)
|
if nil_or_empty?(field)
|
||||||
subrecord.push(nil)
|
subrecord.push(nil)
|
||||||
elsif !field[/^\-?^\d*\.?\d*$/]
|
elsif !field[/^\-?^\d*\.?\d*$/]
|
||||||
raise _INTL("Field {1} is not a floating point number\n{2}", field, FileLineData.linereport)
|
raise _INTL("Field '{1}' is not a floating point number.", field) + "\n" + FileLineData.linereport
|
||||||
else
|
else
|
||||||
subrecord.push(field.to_f)
|
subrecord.push(field.to_f)
|
||||||
end
|
end
|
||||||
@@ -610,7 +610,7 @@ module Compiler
|
|||||||
when "n" # Name
|
when "n" # Name
|
||||||
field = csvfield!(rec)
|
field = csvfield!(rec)
|
||||||
if !field[/^(?![0-9])\w+$/]
|
if !field[/^(?![0-9])\w+$/]
|
||||||
raise _INTL("Field '{1}' must contain only letters, digits, and\nunderscores and can't begin with a number.\n{2}", field, FileLineData.linereport)
|
raise _INTL("Field '{1}' must contain only letters, digits, and\nunderscores and can't begin with a number.", field) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
subrecord.push(field)
|
subrecord.push(field)
|
||||||
when "N" # Optional name
|
when "N" # Optional name
|
||||||
@@ -618,7 +618,7 @@ module Compiler
|
|||||||
if nil_or_empty?(field)
|
if nil_or_empty?(field)
|
||||||
subrecord.push(nil)
|
subrecord.push(nil)
|
||||||
elsif !field[/^(?![0-9])\w+$/]
|
elsif !field[/^(?![0-9])\w+$/]
|
||||||
raise _INTL("Field '{1}' must contain only letters, digits, and\nunderscores and can't begin with a number.\n{2}", field, FileLineData.linereport)
|
raise _INTL("Field '{1}' must contain only letters, digits, and\nunderscores and can't begin with a number.", field) + "\n" + FileLineData.linereport
|
||||||
else
|
else
|
||||||
subrecord.push(field)
|
subrecord.push(field)
|
||||||
end
|
end
|
||||||
@@ -640,7 +640,7 @@ module Compiler
|
|||||||
when "m" # Symbol
|
when "m" # Symbol
|
||||||
field = csvfield!(rec)
|
field = csvfield!(rec)
|
||||||
if !field[/^(?![0-9])\w+$/]
|
if !field[/^(?![0-9])\w+$/]
|
||||||
raise _INTL("Field '{1}' must contain only letters, digits, and\nunderscores and can't begin with a number.\n{2}", field, FileLineData.linereport)
|
raise _INTL("Field '{1}' must contain only letters, digits, and\nunderscores and can't begin with a number.", field) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
subrecord.push(field.to_sym)
|
subrecord.push(field.to_sym)
|
||||||
when "M" # Optional symbol
|
when "M" # Optional symbol
|
||||||
@@ -648,7 +648,7 @@ module Compiler
|
|||||||
if nil_or_empty?(field)
|
if nil_or_empty?(field)
|
||||||
subrecord.push(nil)
|
subrecord.push(nil)
|
||||||
elsif !field[/^(?![0-9])\w+$/]
|
elsif !field[/^(?![0-9])\w+$/]
|
||||||
raise _INTL("Field '{1}' must contain only letters, digits, and\nunderscores and can't begin with a number.\n{2}", field, FileLineData.linereport)
|
raise _INTL("Field '{1}' must contain only letters, digits, and\nunderscores and can't begin with a number.", field) + "\n" + FileLineData.linereport
|
||||||
else
|
else
|
||||||
subrecord.push(field.to_sym)
|
subrecord.push(field.to_sym)
|
||||||
end
|
end
|
||||||
@@ -854,7 +854,7 @@ module Compiler
|
|||||||
clonitem.sub!(/\s*$/, "")
|
clonitem.sub!(/\s*$/, "")
|
||||||
itm = GameData::Item.try_get(clonitem)
|
itm = GameData::Item.try_get(clonitem)
|
||||||
if !itm
|
if !itm
|
||||||
raise _INTL("Undefined item constant name: {1}\nMake sure the item is defined in PBS/items.txt.\n{2}", item, FileLineData.linereport)
|
raise _INTL("Undefined item constant name: {1}.\nMake sure the item is defined in PBS/items.txt.", item) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
return itm.id
|
return itm.id
|
||||||
end
|
end
|
||||||
@@ -867,7 +867,7 @@ module Compiler
|
|||||||
clonspecies = "NIDORANfE" if clonspecies == "NIDORANFE"
|
clonspecies = "NIDORANfE" if clonspecies == "NIDORANFE"
|
||||||
spec = GameData::Species.try_get(clonspecies)
|
spec = GameData::Species.try_get(clonspecies)
|
||||||
if !spec
|
if !spec
|
||||||
raise _INTL("Undefined species constant name: {1}\nMake sure the species is defined in PBS/pokemon.txt.\n{2}", species, FileLineData.linereport)
|
raise _INTL("Undefined species constant name: {1}.\nMake sure the species is defined in PBS/pokemon.txt.", species) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
return spec.id
|
return spec.id
|
||||||
end
|
end
|
||||||
@@ -879,7 +879,7 @@ module Compiler
|
|||||||
mov = GameData::Move.try_get(clonmove)
|
mov = GameData::Move.try_get(clonmove)
|
||||||
if !mov
|
if !mov
|
||||||
return nil if skip_unknown
|
return nil if skip_unknown
|
||||||
raise _INTL("Undefined move constant name: {1}\nMake sure the move is defined in PBS/moves.txt.\n{2}", move, FileLineData.linereport)
|
raise _INTL("Undefined move constant name: {1}.\nMake sure the move is defined in PBS/moves.txt.", move) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
return mov.id
|
return mov.id
|
||||||
end
|
end
|
||||||
@@ -891,7 +891,7 @@ module Compiler
|
|||||||
clonnature.sub!(/\s*$/, "")
|
clonnature.sub!(/\s*$/, "")
|
||||||
nat = GameData::Nature.try_get(clonnature)
|
nat = GameData::Nature.try_get(clonnature)
|
||||||
if !nat
|
if !nat
|
||||||
raise _INTL("Undefined nature constant name: {1}\nMake sure the nature is defined in the scripts.\n{2}", nature, FileLineData.linereport)
|
raise _INTL("Undefined nature constant name: {1}.\nMake sure the nature is defined in the scripts.", nature) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
return nat.id
|
return nat.id
|
||||||
end
|
end
|
||||||
@@ -903,7 +903,7 @@ module Compiler
|
|||||||
clontype.sub!(/\s*$/, "")
|
clontype.sub!(/\s*$/, "")
|
||||||
typ = GameData::TrainerType.try_get(clontype)
|
typ = GameData::TrainerType.try_get(clontype)
|
||||||
if !typ
|
if !typ
|
||||||
raise _INTL("Undefined Trainer type constant name: {1}\nMake sure the trainer type is defined in PBS/trainer_types.txt.\n{2}", type, FileLineData.linereport)
|
raise _INTL("Undefined trainer type constant name: {1}.\nMake sure the trainer type is defined in PBS/trainer_types.txt.", type) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
return typ.id
|
return typ.id
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ module Compiler
|
|||||||
# Validate and modify the compiled data
|
# Validate and modify the compiled data
|
||||||
yield false, data_hash if block_given?
|
yield false, data_hash if block_given?
|
||||||
if game_data.exists?(data_hash[:id])
|
if game_data.exists?(data_hash[:id])
|
||||||
raise _INTL("Section name '{1}' is used twice.\n{2}", data_hash[:id], FileLineData.linereport)
|
raise _INTL("Section name '{1}' is used twice.", data_hash[:id]) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
# Add section's data to records
|
# Add section's data to records
|
||||||
game_data.register(data_hash)
|
game_data.register(data_hash)
|
||||||
@@ -116,19 +116,19 @@ module Compiler
|
|||||||
FileLineData.setLine(line, lineno)
|
FileLineData.setLine(line, lineno)
|
||||||
record = get_csv_record(line, schema)
|
record = get_csv_record(line, schema)
|
||||||
if !pbRgssExists?(sprintf("Data/Map%03d.rxdata", record[0]))
|
if !pbRgssExists?(sprintf("Data/Map%03d.rxdata", record[0]))
|
||||||
print _INTL("Warning: Map {1}, as mentioned in the map connection data, was not found.\n{2}", record[0], FileLineData.linereport)
|
print _INTL("Warning: Map {1}, as mentioned in the map connection data, was not found.", record[0]) + "\n" + FileLineData.linereport
|
||||||
elsif !pbRgssExists?(sprintf("Data/Map%03d.rxdata", record[3]))
|
elsif !pbRgssExists?(sprintf("Data/Map%03d.rxdata", record[3]))
|
||||||
print _INTL("Warning: Map {1}, as mentioned in the map connection data, was not found.\n{2}", record[3], FileLineData.linereport)
|
print _INTL("Warning: Map {1}, as mentioned in the map connection data, was not found.", record[3]) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
case record[1]
|
case record[1]
|
||||||
when "N"
|
when "N"
|
||||||
raise _INTL("North side of first map must connect with south side of second map\n{1}", FileLineData.linereport) if record[4] != "S"
|
raise _INTL("North side of first map must connect with south side of second map.") + "\n" + FileLineData.linereport if record[4] != "S"
|
||||||
when "S"
|
when "S"
|
||||||
raise _INTL("South side of first map must connect with north side of second map\n{1}", FileLineData.linereport) if record[4] != "N"
|
raise _INTL("South side of first map must connect with north side of second map.") + "\n" + FileLineData.linereport if record[4] != "N"
|
||||||
when "E"
|
when "E"
|
||||||
raise _INTL("East side of first map must connect with west side of second map\n{1}", FileLineData.linereport) if record[4] != "W"
|
raise _INTL("East side of first map must connect with west side of second map.") + "\n" + FileLineData.linereport if record[4] != "W"
|
||||||
when "W"
|
when "W"
|
||||||
raise _INTL("West side of first map must connect with east side of second map\n{1}", FileLineData.linereport) if record[4] != "E"
|
raise _INTL("West side of first map must connect with east side of second map.") + "\n" + FileLineData.linereport if record[4] != "E"
|
||||||
end
|
end
|
||||||
records.push(record)
|
records.push(record)
|
||||||
end
|
end
|
||||||
@@ -210,11 +210,9 @@ module Compiler
|
|||||||
|
|
||||||
def validate_compiled_move(hash)
|
def validate_compiled_move(hash)
|
||||||
if (hash[:category] || 2) == 2 && (hash[:power] || 0) != 0
|
if (hash[:category] || 2) == 2 && (hash[:power] || 0) != 0
|
||||||
raise _INTL("Move {1} is defined as a Status move with a non-zero base damage.\n{2}",
|
raise _INTL("Move {1} is defined as a Status move with a non-zero base damage.", hash[:real_name]) + "\n" + FileLineData.linereport
|
||||||
hash[:real_name], FileLineData.linereport)
|
|
||||||
elsif (hash[:category] || 2) != 2 && (hash[:power] || 0) == 0
|
elsif (hash[:category] || 2) != 2 && (hash[:power] || 0) == 0
|
||||||
print _INTL("Warning: Move {1} is defined as Physical or Special but has a base damage of 0. Changing it to a Status move.\n{2}",
|
print _INTL("Warning: Move {1} is defined as Physical or Special but has a base damage of 0. Changing it to a Status move.", hash[:real_name]) + "\n" + FileLineData.linereport
|
||||||
hash[:real_name], FileLineData.linereport)
|
|
||||||
hash[:category] = 2
|
hash[:category] = 2
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -424,7 +422,7 @@ module Compiler
|
|||||||
# Validate and modify the compiled data
|
# Validate and modify the compiled data
|
||||||
validate_compiled_pokemon_form(data_hash)
|
validate_compiled_pokemon_form(data_hash)
|
||||||
if GameData::Species.exists?(data_hash[:id])
|
if GameData::Species.exists?(data_hash[:id])
|
||||||
raise _INTL("Section name '{1}' is used twice.\n{2}", data_hash[:id], FileLineData.linereport)
|
raise _INTL("Section name '{1}' is used twice.", data_hash[:id]) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
# Add section's data to records
|
# Add section's data to records
|
||||||
GameData::Species.register(data_hash)
|
GameData::Species.register(data_hash)
|
||||||
@@ -443,9 +441,9 @@ module Compiler
|
|||||||
hash[:form] = hash[:id][1]
|
hash[:form] = hash[:id][1]
|
||||||
hash[:id] = sprintf("%s_%d", hash[:species].to_s, hash[:form]).to_sym
|
hash[:id] = sprintf("%s_%d", hash[:species].to_s, hash[:form]).to_sym
|
||||||
if !GameData::Species.exists?(hash[:species])
|
if !GameData::Species.exists?(hash[:species])
|
||||||
raise _INTL("Undefined species ID '{1}'.\n{3}", hash[:species], FileLineData.linereport)
|
raise _INTL("Undefined species ID '{1}'.", hash[:species]) + "\n" + FileLineData.linereport
|
||||||
elsif GameData::Species.exists?(hash[:id])
|
elsif GameData::Species.exists?(hash[:id])
|
||||||
raise _INTL("Form {1} for species ID {2} is defined twice.\n{3}", hash[:form], hash[:species], FileLineData.linereport)
|
raise _INTL("Form {1} for species ID '{2}' is defined twice.", hash[:form], hash[:species]) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
# Perform the same validations on this form as for a regular species
|
# Perform the same validations on this form as for a regular species
|
||||||
validate_compiled_pokemon(hash)
|
validate_compiled_pokemon(hash)
|
||||||
@@ -592,11 +590,11 @@ module Compiler
|
|||||||
if line[/^\s*\[\s*(\d+)\s*\]\s*$/]
|
if line[/^\s*\[\s*(\d+)\s*\]\s*$/]
|
||||||
section = $~[1].to_i
|
section = $~[1].to_i
|
||||||
if dex_lists[section]
|
if dex_lists[section]
|
||||||
raise _INTL("Dex list number {1} is defined at least twice.\n{2}", section, FileLineData.linereport)
|
raise _INTL("Dex list number {1} is defined at least twice.", section) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
dex_lists[section] = []
|
dex_lists[section] = []
|
||||||
else
|
else
|
||||||
raise _INTL("Expected a section at the beginning of the file.\n{1}", FileLineData.linereport) if !section
|
raise _INTL("Expected a section at the beginning of the file.") + "\n" + FileLineData.linereport if !section
|
||||||
species_list = line.split(",")
|
species_list = line.split(",")
|
||||||
species_list.each do |species|
|
species_list.each do |species|
|
||||||
next if !species || species.empty?
|
next if !species || species.empty?
|
||||||
@@ -613,7 +611,7 @@ module Compiler
|
|||||||
next if list == unique_list
|
next if list == unique_list
|
||||||
list.each_with_index do |s, i|
|
list.each_with_index do |s, i|
|
||||||
next if unique_list[i] == s
|
next if unique_list[i] == s
|
||||||
raise _INTL("Dex list number {1} has species {2} listed twice.\n{3}", index, s, FileLineData.linereport)
|
raise _INTL("Dex list number {1} has species {2} listed twice.", index, s) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# Save all data
|
# Save all data
|
||||||
@@ -665,17 +663,17 @@ module Compiler
|
|||||||
if current_type && line[/^\d+,/] # Species line
|
if current_type && line[/^\d+,/] # Species line
|
||||||
values = line.split(",").collect! { |v| v.strip }
|
values = line.split(",").collect! { |v| v.strip }
|
||||||
if !values || values.length < 3
|
if !values || values.length < 3
|
||||||
raise _INTL("Expected a species entry line for encounter type {1} for map '{2}', got \"{3}\" instead.\n{4}",
|
raise _INTL("Expected a species entry line for encounter type {1} for map {2}.",
|
||||||
GameData::EncounterType.get(current_type).real_name, encounter_hash[:map], line, FileLineData.linereport)
|
GameData::EncounterType.get(current_type).real_name, encounter_hash[:map]) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
values = get_csv_record(line, [nil, "vevV", nil, :Species])
|
values = get_csv_record(line, [nil, "vevV", nil, :Species])
|
||||||
values[3] = values[2] if !values[3]
|
values[3] = values[2] if !values[3]
|
||||||
if values[2] > max_level
|
if values[2] > max_level
|
||||||
raise _INTL("Level number {1} is not valid (max. {2}).\n{3}", values[2], max_level, FileLineData.linereport)
|
raise _INTL("Level number {1} is not valid (max. {2}).", values[2], max_level) + "\n" + FileLineData.linereport
|
||||||
elsif values[3] > max_level
|
elsif values[3] > max_level
|
||||||
raise _INTL("Level number {1} is not valid (max. {2}).\n{3}", values[3], max_level, FileLineData.linereport)
|
raise _INTL("Level number {1} is not valid (max. {2}).", values[3], max_level) + "\n" + FileLineData.linereport
|
||||||
elsif values[2] > values[3]
|
elsif values[2] > values[3]
|
||||||
raise _INTL("Minimum level is greater than maximum level: {1}\n{2}", line, FileLineData.linereport)
|
raise _INTL("Minimum level is greater than maximum level.") + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
encounter_hash[:types][current_type].push(values)
|
encounter_hash[:types][current_type].push(values)
|
||||||
elsif line[/^\[\s*(.+)\s*\]$/] # Map ID line
|
elsif line[/^\[\s*(.+)\s*\]$/] # Map ID line
|
||||||
@@ -704,7 +702,7 @@ module Compiler
|
|||||||
# Raise an error if a map/version combo is used twice
|
# Raise an error if a map/version combo is used twice
|
||||||
key = sprintf("%s_%d", map_number, map_version).to_sym
|
key = sprintf("%s_%d", map_number, map_version).to_sym
|
||||||
if GameData::Encounter::DATA[key]
|
if GameData::Encounter::DATA[key]
|
||||||
raise _INTL("Encounters for map '{1}' are defined twice.\n{2}", map_number, FileLineData.linereport)
|
raise _INTL("Encounters for map '{1}' are defined twice.", map_number) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
step_chances = {}
|
step_chances = {}
|
||||||
# Construct encounter hash
|
# Construct encounter hash
|
||||||
@@ -718,7 +716,7 @@ module Compiler
|
|||||||
}
|
}
|
||||||
current_type = nil
|
current_type = nil
|
||||||
elsif !encounter_hash # File began with something other than a map ID line
|
elsif !encounter_hash # File began with something other than a map ID line
|
||||||
raise _INTL("Expected a map number, got \"{1}\" instead.\n{2}", line, FileLineData.linereport)
|
raise _INTL("Expected a map number, got \"{1}\" instead.", line) + "\n" + FileLineData.linereport
|
||||||
else
|
else
|
||||||
# Check if line is an encounter method name or not
|
# Check if line is an encounter method name or not
|
||||||
values = line.split(",").collect! { |v| v.strip }
|
values = line.split(",").collect! { |v| v.strip }
|
||||||
@@ -728,8 +726,7 @@ module Compiler
|
|||||||
step_chances[current_type] ||= GameData::EncounterType.get(current_type).trigger_chance
|
step_chances[current_type] ||= GameData::EncounterType.get(current_type).trigger_chance
|
||||||
encounter_hash[:types][current_type] = []
|
encounter_hash[:types][current_type] = []
|
||||||
else
|
else
|
||||||
raise _INTL("Undefined encounter type \"{1}\" for map '{2}'.\n{3}",
|
raise _INTL("Undefined encounter type \"{1}\" for map '{2}'.", line, encounter_hash[:map]) + "\n" + FileLineData.linereport
|
||||||
line, encounter_hash[:map], FileLineData.linereport)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -819,7 +816,7 @@ module Compiler
|
|||||||
elsif line[/^\s*(\w+)\s*=\s*(.*)$/]
|
elsif line[/^\s*(\w+)\s*=\s*(.*)$/]
|
||||||
# XXX=YYY lines
|
# XXX=YYY lines
|
||||||
if !data_hash
|
if !data_hash
|
||||||
raise _INTL("Expected a section at the beginning of the file.\n{1}", FileLineData.linereport)
|
raise _INTL("Expected a section at the beginning of the file.") + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
key = $~[1]
|
key = $~[1]
|
||||||
if schema[key] # Property of the trainer
|
if schema[key] # Property of the trainer
|
||||||
@@ -835,7 +832,7 @@ module Compiler
|
|||||||
end
|
end
|
||||||
elsif sub_schema[key] # Property of a Pokémon
|
elsif sub_schema[key] # Property of a Pokémon
|
||||||
if !current_pkmn
|
if !current_pkmn
|
||||||
raise _INTL("Pokémon hasn't been defined yet!\n{1}", FileLineData.linereport)
|
raise _INTL("Pokémon hasn't been defined yet!") + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
current_pkmn[sub_schema[key][0]] = get_csv_record($~[2], sub_schema[key])
|
current_pkmn[sub_schema[key][0]] = get_csv_record($~[2], sub_schema[key])
|
||||||
end
|
end
|
||||||
@@ -862,19 +859,18 @@ module Compiler
|
|||||||
hash[:version] = hash[:id][2]
|
hash[:version] = hash[:id][2]
|
||||||
# Ensure the trainer has at least one Pokémon
|
# Ensure the trainer has at least one Pokémon
|
||||||
if hash[:pokemon].empty?
|
if hash[:pokemon].empty?
|
||||||
raise _INTL("Trainer with ID {1} has no Pokémon.\n{2}", hash[:id], FileLineData.linereport)
|
raise _INTL("Trainer with ID '{1}' has no Pokémon.", hash[:id]) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
max_level = GameData::GrowthRate.max_level
|
max_level = GameData::GrowthRate.max_level
|
||||||
hash[:pokemon].each do |pkmn|
|
hash[:pokemon].each do |pkmn|
|
||||||
# Ensure valid level
|
# Ensure valid level
|
||||||
if pkmn[:level] > max_level
|
if pkmn[:level] > max_level
|
||||||
raise _INTL("Invalid Pokémon level {1} (must be 1-{2}).\n{3}",
|
raise _INTL("Invalid Pokémon level {1} (must be 1-{2}).", pkmn[:level], max_level) + "\n" + FileLineData.linereport
|
||||||
pkmn[:level], max_level, FileLineData.linereport)
|
|
||||||
end
|
end
|
||||||
# Ensure valid name length
|
# Ensure valid name length
|
||||||
if pkmn[:real_name] && pkmn[:real_name].length > Pokemon::MAX_NAME_SIZE
|
if pkmn[:real_name] && pkmn[:real_name].length > Pokemon::MAX_NAME_SIZE
|
||||||
raise _INTL("Invalid Pokémon nickname: {1} (must be 1-{2} characters).\n{3}",
|
raise _INTL("Invalid Pokémon nickname: {1} (must be 1-{2} characters).",
|
||||||
pkmn[:real_name], Pokemon::MAX_NAME_SIZE, FileLineData.linereport)
|
pkmn[:real_name], Pokemon::MAX_NAME_SIZE) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
# Ensure no duplicate moves
|
# Ensure no duplicate moves
|
||||||
pkmn[:moves].uniq! if pkmn[:moves]
|
pkmn[:moves].uniq! if pkmn[:moves]
|
||||||
@@ -885,8 +881,7 @@ module Compiler
|
|||||||
next if s.pbs_order < 0
|
next if s.pbs_order < 0
|
||||||
iv_hash[s.id] = pkmn[:iv][s.pbs_order] || pkmn[:iv][0]
|
iv_hash[s.id] = pkmn[:iv][s.pbs_order] || pkmn[:iv][0]
|
||||||
if iv_hash[s.id] > Pokemon::IV_STAT_LIMIT
|
if iv_hash[s.id] > Pokemon::IV_STAT_LIMIT
|
||||||
raise _INTL("Invalid IV: {1} (must be 0-{2}).\n{3}",
|
raise _INTL("Invalid IV: {1} (must be 0-{2}).", iv_hash[s.id], Pokemon::IV_STAT_LIMIT) + "\n" + FileLineData.linereport
|
||||||
iv_hash[s.id], Pokemon::IV_STAT_LIMIT, FileLineData.linereport)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
pkmn[:iv] = iv_hash
|
pkmn[:iv] = iv_hash
|
||||||
@@ -900,26 +895,24 @@ module Compiler
|
|||||||
ev_hash[s.id] = pkmn[:ev][s.pbs_order] || pkmn[:ev][0]
|
ev_hash[s.id] = pkmn[:ev][s.pbs_order] || pkmn[:ev][0]
|
||||||
ev_total += ev_hash[s.id]
|
ev_total += ev_hash[s.id]
|
||||||
if ev_hash[s.id] > Pokemon::EV_STAT_LIMIT
|
if ev_hash[s.id] > Pokemon::EV_STAT_LIMIT
|
||||||
raise _INTL("Invalid EV: {1} (must be 0-{2}).\n{3}",
|
raise _INTL("Invalid EV: {1} (must be 0-{2}).", ev_hash[s.id], Pokemon::EV_STAT_LIMIT) + "\n" + FileLineData.linereport
|
||||||
ev_hash[s.id], Pokemon::EV_STAT_LIMIT, FileLineData.linereport)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
pkmn[:ev] = ev_hash
|
pkmn[:ev] = ev_hash
|
||||||
if ev_total > Pokemon::EV_LIMIT
|
if ev_total > Pokemon::EV_LIMIT
|
||||||
raise _INTL("Invalid EV set (must sum to {1} or less).\n{2}",
|
raise _INTL("Invalid EV set (must sum to {1} or less).", Pokemon::EV_LIMIT) + "\n" + FileLineData.linereport
|
||||||
Pokemon::EV_LIMIT, FileLineData.linereport)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# Ensure valid happiness
|
# Ensure valid happiness
|
||||||
if pkmn[:happiness]
|
if pkmn[:happiness]
|
||||||
if pkmn[:happiness] > 255
|
if pkmn[:happiness] > 255
|
||||||
raise _INTL("Bad happiness: {1} (must be 0-255).\n{2}", pkmn[:happiness], FileLineData.linereport)
|
raise _INTL("Bad happiness: {1} (must be 0-255).", pkmn[:happiness]) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# Ensure valid Poké Ball
|
# Ensure valid Poké Ball
|
||||||
if pkmn[:poke_ball]
|
if pkmn[:poke_ball]
|
||||||
if !GameData::Item.get(pkmn[:poke_ball]).is_poke_ball?
|
if !GameData::Item.get(pkmn[:poke_ball]).is_poke_ball?
|
||||||
raise _INTL("Value {1} isn't a defined Poké Ball.\n{2}", pkmn[:poke_ball], FileLineData.linereport)
|
raise _INTL("Value '{1}' isn't a defined Poké Ball.", pkmn[:poke_ball]) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -984,10 +977,10 @@ module Compiler
|
|||||||
rsection[schema[0]] = record
|
rsection[schema[0]] = record
|
||||||
end
|
end
|
||||||
if !rsection[0]
|
if !rsection[0]
|
||||||
raise _INTL("No trainer data file given in section {1}.\n{2}", name, FileLineData.linereport)
|
raise _INTL("No trainer data file given in section {1}.", name) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
if !rsection[1]
|
if !rsection[1]
|
||||||
raise _INTL("No trainer data file given in section {1}.\n{2}", name, FileLineData.linereport)
|
raise _INTL("No trainer data file given in section {1}.", name) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
rsection[3] = rsection[0]
|
rsection[3] = rsection[0]
|
||||||
rsection[4] = rsection[1]
|
rsection[4] = rsection[1]
|
||||||
@@ -1116,12 +1109,12 @@ module Compiler
|
|||||||
if data_hash[:id] == 0
|
if data_hash[:id] == 0
|
||||||
validate_compiled_global_metadata(data_hash)
|
validate_compiled_global_metadata(data_hash)
|
||||||
if GameData::Metadata.exists?(data_hash[:id])
|
if GameData::Metadata.exists?(data_hash[:id])
|
||||||
raise _INTL("Global metadata ID '{1}' is used twice.\n{2}", data_hash[:id], FileLineData.linereport)
|
raise _INTL("Global metadata ID '{1}' is used twice.", data_hash[:id]) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
validate_compiled_player_metadata(data_hash)
|
validate_compiled_player_metadata(data_hash)
|
||||||
if GameData::PlayerMetadata.exists?(data_hash[:id])
|
if GameData::PlayerMetadata.exists?(data_hash[:id])
|
||||||
raise _INTL("Player metadata ID '{1}' is used twice.\n{2}", data_hash[:id], FileLineData.linereport)
|
raise _INTL("Player metadata ID '{1}' is used twice.", data_hash[:id]) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# Add section's data to records
|
# Add section's data to records
|
||||||
@@ -1142,7 +1135,7 @@ module Compiler
|
|||||||
|
|
||||||
def validate_compiled_global_metadata(hash)
|
def validate_compiled_global_metadata(hash)
|
||||||
if hash[:home].nil?
|
if hash[:home].nil?
|
||||||
raise _INTL("The entry 'Home' is required in metadata.txt section 0.\n{1}", FileLineData.linereport)
|
raise _INTL("The entry 'Home' is required in metadata.txt section 0.") + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -1153,11 +1146,11 @@ module Compiler
|
|||||||
def validate_all_compiled_metadata
|
def validate_all_compiled_metadata
|
||||||
# Ensure global metadata is defined
|
# Ensure global metadata is defined
|
||||||
if !GameData::Metadata.exists?(0)
|
if !GameData::Metadata.exists?(0)
|
||||||
raise _INTL("Global metadata is not defined in metadata.txt but should be.\n{1}", FileLineData.linereport)
|
raise _INTL("Global metadata is not defined in metadata.txt but should be.") + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
# Ensure player character 1's metadata is defined
|
# Ensure player character 1's metadata is defined
|
||||||
if !GameData::PlayerMetadata.exists?(1)
|
if !GameData::PlayerMetadata.exists?(1)
|
||||||
raise _INTL("Metadata for player character 1 is not defined in metadata.txt but should be.\n{1}", FileLineData.linereport)
|
raise _INTL("Metadata for player character 1 is not defined in metadata.txt but should be.") + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
# Get storage creator's name for translating
|
# Get storage creator's name for translating
|
||||||
storage_creator = [GameData::Metadata.get.real_storage_creator]
|
storage_creator = [GameData::Metadata.get.real_storage_creator]
|
||||||
@@ -1221,7 +1214,7 @@ module Compiler
|
|||||||
hash[:id] = sprintf("%s_%d", hash[:area].to_s, hash[:version]).to_sym
|
hash[:id] = sprintf("%s_%d", hash[:area].to_s, hash[:version]).to_sym
|
||||||
end
|
end
|
||||||
if GameData::DungeonParameters.exists?(hash[:id])
|
if GameData::DungeonParameters.exists?(hash[:id])
|
||||||
raise _INTL("Version {1} of dungeon area {2} is defined twice.\n{3}", hash[:version], hash[:area], FileLineData.linereport)
|
raise _INTL("Version {1} of dungeon area {2} is defined twice.", hash[:version], hash[:area]) + "\n" + FileLineData.linereport
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user