Fixed being unable to write values to PBS files that were enumerated to something other than a number, error log files now go in the game's folder

This commit is contained in:
Maruno17
2023-11-04 23:32:43 +00:00
parent 5cab0f407d
commit 092fbda34d
4 changed files with 48 additions and 61 deletions

1
.gitignore vendored
View File

@@ -10,6 +10,7 @@ Data/*
!Data/messages_core.dat !Data/messages_core.dat
# Files in the main project folder # Files in the main project folder
errorlog.txt
Game.ini Game.ini
Game.rxproj Game.rxproj
RGSS*.dll RGSS*.dll

View File

@@ -51,7 +51,6 @@ def pbPrintException(e)
end end
# output to log # output to log
errorlog = "errorlog.txt" errorlog = "errorlog.txt"
errorlog = RTP.getSaveFileName("errorlog.txt") if (Object.const_defined?(:RTP) rescue false)
File.open(errorlog, "ab") do |f| File.open(errorlog, "ab") do |f|
f.write("\r\n=================\r\n\r\n[#{Time.now}]\r\n") f.write("\r\n=================\r\n\r\n[#{Time.now}]\r\n")
f.write(message) f.write(message)

View File

@@ -380,7 +380,6 @@ module PluginManager
e.backtrace[0, 10].each { |i| message += "#{i}\r\n" } e.backtrace[0, 10].each { |i| message += "#{i}\r\n" }
# output to log # output to log
errorlog = "errorlog.txt" errorlog = "errorlog.txt"
errorlog = RTP.getSaveFileName("errorlog.txt") if (Object.const_defined?(:RTP) rescue false)
File.open(errorlog, "ab") do |f| File.open(errorlog, "ab") do |f|
f.write("\r\n=================\r\n\r\n[#{Time.now}]\r\n") f.write("\r\n=================\r\n\r\n[#{Time.now}]\r\n")
f.write(message) f.write(message)

View File

@@ -760,69 +760,57 @@ module Compiler
end end
end end
file.write(",") if index > 0 file.write(",") if index > 0
if value.nil? next if value.nil?
# do nothing case schema[1][i, 1]
elsif value.is_a?(String) when "e", "E" # Enumerable
if schema[1][i, 1].downcase == "q" enumer = schema[2 + i]
file.write(value) case enumer
else when Array
file.write(csvQuote(value)) file.write(enumer[value])
when Symbol, String
mod = Object.const_get(enumer.to_sym)
file.write(getConstantName(mod, value))
when Module
file.write(getConstantName(enumer, value))
when Hash
enumer.each_key do |key|
next if enumer[key] != value
file.write(key)
break
end
end end
elsif value.is_a?(Symbol) when "y", "Y" # Enumerable or integer
file.write(csvQuote(value.to_s)) enumer = schema[2 + i]
elsif value == true case enumer
file.write("true") when Array
elsif value == false file.write((enumer[value].nil?) ? value : enumer[value])
file.write("false") when Symbol, String
elsif value.is_a?(Numeric) mod = Object.const_get(enumer.to_sym)
case schema[1][i, 1] file.write(getConstantNameOrValue(mod, value))
when "e", "E" # Enumerable when Module
enumer = schema[2 + i] file.write(getConstantNameOrValue(enumer, value))
case enumer when Hash
when Array hasenum = false
file.write(enumer[value]) enumer.each_key do |key|
when Symbol, String next if enumer[key] != value
mod = Object.const_get(enumer.to_sym) file.write(key)
file.write(getConstantName(mod, value)) hasenum = true
when Module break
file.write(getConstantName(enumer, value))
when Hash
enumer.each_key do |key|
if enumer[key] == value
file.write(key)
break
end
end
end end
when "y", "Y" # Enumerable or integer file.write(value) unless hasenum
enumer = schema[2 + i]
case enumer
when Array
if enumer[value].nil?
file.write(value)
else
file.write(enumer[value])
end
when Symbol, String
mod = Object.const_get(enumer.to_sym)
file.write(getConstantNameOrValue(mod, value))
when Module
file.write(getConstantNameOrValue(enumer, value))
when Hash
hasenum = false
enumer.each_key do |key|
next if enumer[key] != value
file.write(key)
hasenum = true
break
end
file.write(value) unless hasenum
end
else # Any other record type
file.write(value.inspect)
end end
else else
file.write(value.inspect) if value.is_a?(String)
file.write((schema[1][i, 1].downcase == "q") ? value : csvQuote(value))
elsif value.is_a?(Symbol)
file.write(csvQuote(value.to_s))
elsif value == true
file.write("true")
elsif value == false
file.write("false")
else
file.write(value.inspect)
end
end end
end end
break if start > 0 && index >= rec.length - 1 break if start > 0 && index >= rec.length - 1