Manually rebased over latest mkxp commit. Some features, such as lighting, are not reimplemented yet.

This commit is contained in:
Mathew Velasquez 2015-09-02 22:41:25 -04:00
parent 5a7480a406
commit 3b64e7871b
24 changed files with 722 additions and 320 deletions

View file

@ -75,6 +75,8 @@ void graphicsBindingInit();
void fileIntBindingInit();
void oneshotBindingInit();
RB_METHOD(mriPrint);
RB_METHOD(mriP);
RB_METHOD(mkxpDataDirectory);
@ -111,6 +113,7 @@ static void mriBindingInit()
graphicsBindingInit();
fileIntBindingInit();
oneshotBindingInit();
if (rgssVer >= 3)
{
@ -151,7 +154,11 @@ static void mriBindingInit()
static void
showMsg(const std::string &msg)
{
#ifdef NDEBUG
shState->eThread().showMessageBox(msg.c_str());
#else
Debug() << msg.c_str();
#endif
}
static void printP(int argc, VALUE *argv,
@ -193,7 +200,7 @@ RB_METHOD(mriP)
RB_METHOD(mkxpDataDirectory)
{
RB_UNUSED_PARAM;
const std::string &path = shState->config().customDataPath;
const char *s = path.empty() ? "." : path.c_str();
@ -473,10 +480,7 @@ static void runRMXPScripts(BacktraceData &btData)
char buf[512];
int len;
if (conf.useScriptNames)
len = snprintf(buf, sizeof(buf), "%03ld:%s", i, scriptName);
else
len = snprintf(buf, sizeof(buf), SCRIPT_SECTION_FMT, i);
len = snprintf(buf, sizeof(buf), "%03ld:%s", i, scriptName);
fname = newStringUTF8(buf, len);
btData.scriptNames.insert(buf, scriptName);
@ -588,11 +592,7 @@ static void mriBindingExecute()
mriBindingInit();
std::string &customScript = conf.customScript;
if (!customScript.empty())
runCustomScript(customScript);
else
runRMXPScripts(btData);
runRMXPScripts(btData);
VALUE exc = rb_errinfo();
if (!NIL_P(exc) && !rb_obj_is_kind_of(exc, rb_eSystemExit))

View file

@ -0,0 +1,46 @@
#include "oneshot.h"
#include "etc.h"
#include "sharedstate.h"
#include "binding-util.h"
#include "binding-types.h"
RB_METHOD(oneshotSetYesNo)
{
RB_UNUSED_PARAM;
const char *yes;
const char *no;
rb_get_args(argc, argv, "zz", &yes, &no RB_ARG_END);
shState->oneshot().setYesNo(yes, no);
return Qnil;
}
RB_METHOD(oneshotMsgBox)
{
RB_UNUSED_PARAM;
int type;
const char *body;
const char *title = 0;
rb_get_args(argc, argv, "iz|z", &type, &body, &title RB_ARG_END);
return rb_bool_new(shState->oneshot().msgbox(type, body, title));
}
void oneshotBindingInit()
{
VALUE module = rb_define_module("Oneshot");
VALUE msg = rb_define_module_under(module, "Msg");
//Constants
rb_const_set(module, rb_intern("USER_NAME"), rb_str_new2(shState->oneshot().userName().c_str()));
rb_const_set(module, rb_intern("SAVE_PATH"), rb_str_new2(shState->oneshot().savePath().c_str()));
rb_const_set(module, rb_intern("LANG"), ID2SYM(rb_intern(shState->oneshot().lang().c_str())));
rb_const_set(msg, rb_intern("INFO"), INT2FIX(Oneshot::MSG_INFO));
rb_const_set(msg, rb_intern("YESNO"), INT2FIX(Oneshot::MSG_YESNO));
rb_const_set(msg, rb_intern("WARN"), INT2FIX(Oneshot::MSG_WARN));
rb_const_set(msg, rb_intern("ERR"), INT2FIX(Oneshot::MSG_ERR));
//Functions
_rb_define_module_function(module, "set_yes_no", oneshotSetYesNo);
_rb_define_module_function(module, "msgbox", oneshotMsgBox);
}