diff --git a/binding-mri/binding-mri.cpp b/binding-mri/binding-mri.cpp index ca61a4f..34482df 100644 --- a/binding-mri/binding-mri.cpp +++ b/binding-mri/binding-mri.cpp @@ -295,11 +295,20 @@ static void runRMXPScripts() VALUE string = newStringUTF8(RSTRING_PTR(scriptDecoded), RSTRING_LEN(scriptDecoded)); - char fname[32]; - int len = snprintf(fname, sizeof(fname), "Section%03ld", i); + VALUE fname; + if (shState->rtData().config.useScriptNames) + { + fname = rb_ary_entry(script, 1); + } + else + { + char buf[32]; + int len = snprintf(buf, sizeof(buf), "Section%03ld", i); + fname = newStringUTF8(buf, len); + } int state; - evalString(string, newStringUTF8(fname, len), &state); + evalString(string, fname, &state); if (state) break; } diff --git a/mkxp.conf.sample b/mkxp.conf.sample index 11fb146..cfe7268 100644 --- a/mkxp.conf.sample +++ b/mkxp.conf.sample @@ -113,3 +113,9 @@ # RTP=/path/to/rtp1 # RTP=/path/to/rtp2.zip # RTP=/path/to/game.rgssad + + +# Use the script's name as filename in warnings and error messages +# (default: disabled) +# +# useScriptNames=false diff --git a/src/config.cpp b/src/config.cpp index 7e3091f..fcde0c0 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -49,7 +49,8 @@ Config::Config() gameFolder("."), anyAltToggleFS(false), allowSymlinks(false), - pathCache(true) + pathCache(true), + useScriptNames(false) {} void Config::read(int argc, char *argv[]) @@ -72,7 +73,8 @@ void Config::read(int argc, char *argv[]) PO_DESC(allowSymlinks, bool) \ PO_DESC(iconPath, std::string) \ PO_DESC(customScript, std::string) \ - PO_DESC(pathCache, bool) + PO_DESC(pathCache, bool) \ + PO_DESC(useScriptNames, bool) // Not gonna take your shit boost #define GUARD_ALL( exp ) try { exp } catch(...) {} diff --git a/src/config.h b/src/config.h index 411ce51..d91e13a 100644 --- a/src/config.h +++ b/src/config.h @@ -51,6 +51,8 @@ struct Config std::string iconPath; + bool useScriptNames; + std::string customScript; std::vector rtps;