mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
Tweaked Compiler error messages, made some in def cast_csv_value show if trying to cast nil
This commit is contained in:
@@ -112,11 +112,11 @@ module Compiler
|
||||
else
|
||||
if sectionname.nil?
|
||||
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
|
||||
if !line[/^\s*(\w+)\s*=\s*(.*)$/]
|
||||
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
|
||||
r1 = $~[1]
|
||||
r2 = $~[2]
|
||||
@@ -316,7 +316,7 @@ module Compiler
|
||||
end
|
||||
str[0, fieldbytes] = ""
|
||||
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
|
||||
str[0, str.length] = $~.post_match
|
||||
else
|
||||
@@ -337,14 +337,14 @@ module Compiler
|
||||
field = csvfield!(str)
|
||||
return true if field[/^(?:1|TRUE|YES|Y)$/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
|
||||
|
||||
# Unused
|
||||
def csvInt!(str, _line = -1)
|
||||
ret = csvfield!(str)
|
||||
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
|
||||
return ret.to_i
|
||||
end
|
||||
@@ -353,7 +353,7 @@ module Compiler
|
||||
def csvPosInt!(str, _line = -1)
|
||||
ret = csvfield!(str)
|
||||
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
|
||||
return ret.to_i
|
||||
end
|
||||
@@ -361,7 +361,7 @@ module Compiler
|
||||
# Unused
|
||||
def csvFloat!(str, _line = -1)
|
||||
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
|
||||
|
||||
# Unused
|
||||
@@ -384,52 +384,52 @@ module Compiler
|
||||
def cast_csv_value(value, schema, enumer = nil)
|
||||
case schema.downcase
|
||||
when "i" # Integer
|
||||
if !value[/^\-?\d+$/]
|
||||
raise _INTL("Field {1} is not an integer\n{2}", value, FileLineData.linereport)
|
||||
if !value || !value[/^\-?\d+$/]
|
||||
raise _INTL("Field '{1}' is not an integer.", value) + "\n" + FileLineData.linereport
|
||||
end
|
||||
return value.to_i
|
||||
when "u" # Positive integer or zero
|
||||
if !value[/^\d+$/]
|
||||
raise _INTL("Field {1} is not a positive integer or 0\n{2}", value, FileLineData.linereport)
|
||||
if !value || !value[/^\d+$/]
|
||||
raise _INTL("Field '{1}' is not a positive integer or 0.", value) + "\n" + FileLineData.linereport
|
||||
end
|
||||
return value.to_i
|
||||
when "v" # Positive integer
|
||||
if !value[/^\d+$/]
|
||||
raise _INTL("Field {1} is not a positive integer\n{2}", value, FileLineData.linereport)
|
||||
if !value || !value[/^\d+$/]
|
||||
raise _INTL("Field '{1}' is not a positive integer.", value) + "\n" + FileLineData.linereport
|
||||
end
|
||||
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
|
||||
return value.to_i
|
||||
when "x" # Hexadecimal number
|
||||
if !value[/^[A-F0-9]+$/i]
|
||||
raise _INTL("Field '{1}' is not a hexadecimal number\n{2}", value, FileLineData.linereport)
|
||||
if !value || !value[/^[A-F0-9]+$/i]
|
||||
raise _INTL("Field '{1}' is not a hexadecimal number.", value) + "\n" + FileLineData.linereport
|
||||
end
|
||||
return value.hex
|
||||
when "f" # Floating point number
|
||||
if !value[/^\-?^\d*\.?\d*$/]
|
||||
raise _INTL("Field {1} is not a number\n{2}", value, FileLineData.linereport)
|
||||
if !value || !value[/^\-?^\d*\.?\d*$/]
|
||||
raise _INTL("Field '{1}' is not a number.", value) + "\n" + FileLineData.linereport
|
||||
end
|
||||
return value.to_f
|
||||
when "b" # Boolean
|
||||
return true if value[/^(?:1|TRUE|YES|Y)$/i]
|
||||
return false if value[/^(?:0|FALSE|NO|N)$/i]
|
||||
raise _INTL("Field {1} is not a Boolean value (true, false, 1, 0)\n{2}", value, FileLineData.linereport)
|
||||
return true if value && value[/^(?:1|TRUE|YES|Y)$/i]
|
||||
return false if value && value[/^(?:0|FALSE|NO|N)$/i]
|
||||
raise _INTL("Field '{1}' is not a Boolean value (true, false, 1, 0).", value) + "\n" + FileLineData.linereport
|
||||
when "n" # Name
|
||||
if !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)
|
||||
if !value || !value[/^(?![0-9])\w+$/]
|
||||
raise _INTL("Field '{1}' must contain only letters, digits, and\nunderscores and can't begin with a number.", value) + "\n" + FileLineData.linereport
|
||||
end
|
||||
when "s" # String
|
||||
when "q" # Unformatted text
|
||||
when "m" # Symbol
|
||||
if !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)
|
||||
if !value || !value[/^(?![0-9])\w+$/]
|
||||
raise _INTL("Field '{1}' must contain only letters, digits, and\nunderscores and can't begin with a number.", value) + "\n" + FileLineData.linereport
|
||||
end
|
||||
return value.to_sym
|
||||
when "e" # Enumerable
|
||||
return checkEnumField(value, enumer)
|
||||
when "y" # Enumerable or integer
|
||||
return value.to_i if value[/^\-?\d+$/]
|
||||
return value.to_i if value && value[/^\-?\d+$/]
|
||||
return checkEnumField(value, enumer)
|
||||
end
|
||||
return value
|
||||
@@ -440,10 +440,10 @@ module Compiler
|
||||
when Module
|
||||
begin
|
||||
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
|
||||
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
|
||||
return enumer.const_get(ret.to_sym)
|
||||
when Symbol, String
|
||||
@@ -451,36 +451,36 @@ module Compiler
|
||||
enumer = GameData.const_get(enumer.to_sym)
|
||||
begin
|
||||
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
|
||||
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
|
||||
return ret.to_sym
|
||||
end
|
||||
enumer = Object.const_get(enumer.to_sym)
|
||||
begin
|
||||
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
|
||||
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
|
||||
return enumer.const_get(ret.to_sym)
|
||||
when Array
|
||||
idx = findIndex(enumer) { |item| ret == item }
|
||||
idx = (nil_or_empty?(ret)) ? -1 : findIndex(enumer) { |item| ret == item }
|
||||
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
|
||||
return idx
|
||||
when Hash
|
||||
value = enumer[ret]
|
||||
value = (nil_or_empty?(ret)) ? nil : enumer[ret]
|
||||
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
|
||||
return value
|
||||
end
|
||||
raise _INTL("Enumeration not defined\n{1}", FileLineData.linereport)
|
||||
raise _INTL("Enumeration not defined.") + "\n" + FileLineData.linereport
|
||||
end
|
||||
|
||||
# Unused
|
||||
@@ -540,7 +540,7 @@ module Compiler
|
||||
if nil_or_empty?(field)
|
||||
subrecord.push(nil)
|
||||
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
|
||||
subrecord.push(field.to_i)
|
||||
end
|
||||
@@ -551,29 +551,29 @@ module Compiler
|
||||
if nil_or_empty?(field)
|
||||
subrecord.push(nil)
|
||||
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
|
||||
subrecord.push(field.to_i)
|
||||
end
|
||||
when "v" # Positive integer
|
||||
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)
|
||||
when "V" # Optional positive integer
|
||||
field = csvfield!(rec)
|
||||
if nil_or_empty?(field)
|
||||
subrecord.push(nil)
|
||||
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
|
||||
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
|
||||
subrecord.push(field.to_i)
|
||||
end
|
||||
when "x" # Hexadecimal number
|
||||
field = csvfield!(rec)
|
||||
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
|
||||
subrecord.push(field.hex)
|
||||
when "X" # Optional hexadecimal number
|
||||
@@ -581,7 +581,7 @@ module Compiler
|
||||
if nil_or_empty?(field)
|
||||
subrecord.push(nil)
|
||||
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
|
||||
subrecord.push(field.hex)
|
||||
end
|
||||
@@ -592,7 +592,7 @@ module Compiler
|
||||
if nil_or_empty?(field)
|
||||
subrecord.push(nil)
|
||||
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
|
||||
subrecord.push(field.to_f)
|
||||
end
|
||||
@@ -610,7 +610,7 @@ module Compiler
|
||||
when "n" # Name
|
||||
field = csvfield!(rec)
|
||||
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
|
||||
subrecord.push(field)
|
||||
when "N" # Optional name
|
||||
@@ -618,7 +618,7 @@ module Compiler
|
||||
if nil_or_empty?(field)
|
||||
subrecord.push(nil)
|
||||
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
|
||||
subrecord.push(field)
|
||||
end
|
||||
@@ -640,7 +640,7 @@ module Compiler
|
||||
when "m" # Symbol
|
||||
field = csvfield!(rec)
|
||||
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
|
||||
subrecord.push(field.to_sym)
|
||||
when "M" # Optional symbol
|
||||
@@ -648,7 +648,7 @@ module Compiler
|
||||
if nil_or_empty?(field)
|
||||
subrecord.push(nil)
|
||||
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
|
||||
subrecord.push(field.to_sym)
|
||||
end
|
||||
@@ -854,7 +854,7 @@ module Compiler
|
||||
clonitem.sub!(/\s*$/, "")
|
||||
itm = GameData::Item.try_get(clonitem)
|
||||
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
|
||||
return itm.id
|
||||
end
|
||||
@@ -867,7 +867,7 @@ module Compiler
|
||||
clonspecies = "NIDORANfE" if clonspecies == "NIDORANFE"
|
||||
spec = GameData::Species.try_get(clonspecies)
|
||||
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
|
||||
return spec.id
|
||||
end
|
||||
@@ -879,7 +879,7 @@ module Compiler
|
||||
mov = GameData::Move.try_get(clonmove)
|
||||
if !mov
|
||||
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
|
||||
return mov.id
|
||||
end
|
||||
@@ -891,7 +891,7 @@ module Compiler
|
||||
clonnature.sub!(/\s*$/, "")
|
||||
nat = GameData::Nature.try_get(clonnature)
|
||||
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
|
||||
return nat.id
|
||||
end
|
||||
@@ -903,7 +903,7 @@ module Compiler
|
||||
clontype.sub!(/\s*$/, "")
|
||||
typ = GameData::TrainerType.try_get(clontype)
|
||||
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
|
||||
return typ.id
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user