315 lines
9.0 KiB
C++
315 lines
9.0 KiB
C++
#include "StdAfx.h"
|
|
#include "PythonEventManager.h"
|
|
#include "PythonNetworkStream.h"
|
|
|
|
PyObject * eventRegisterEventSet(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
char * szFileName;
|
|
if (!PyTuple_GetString(poArgs, 0, &szFileName))
|
|
return Py_BuildException();
|
|
|
|
int iEventIndex = CPythonEventManager::Instance().RegisterEventSet(szFileName);
|
|
return Py_BuildValue("i", iEventIndex);
|
|
}
|
|
|
|
PyObject * eventRegisterEventSetFromString(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
char * szEventString;
|
|
if (!PyTuple_GetString(poArgs, 0, &szEventString))
|
|
return Py_BuildException();
|
|
|
|
int iEventIndex = CPythonEventManager::Instance().RegisterEventSetFromString(szEventString);
|
|
return Py_BuildValue("i", iEventIndex);
|
|
}
|
|
|
|
PyObject * eventClearEventSet(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
int iIndex;
|
|
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
|
|
return Py_BuildException();
|
|
|
|
CPythonEventManager::Instance().ClearEventSeti(iIndex);
|
|
return Py_BuildNone();
|
|
}
|
|
|
|
PyObject * eventSetRestrictedCount(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
int iIndex;
|
|
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
|
|
return Py_BuildException();
|
|
|
|
int iCount;
|
|
if (!PyTuple_GetInteger(poArgs, 1, &iCount))
|
|
return Py_BuildException();
|
|
|
|
CPythonEventManager::Instance().SetRestrictedCount(iIndex, iCount);
|
|
return Py_BuildNone();
|
|
}
|
|
|
|
PyObject * eventGetEventSetLocalYPosition(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
int iIndex;
|
|
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
|
|
return Py_BuildException();
|
|
|
|
return Py_BuildValue("i", CPythonEventManager::Instance().GetEventSetLocalYPosition(iIndex));
|
|
}
|
|
|
|
PyObject * eventAddEventSetLocalYPosition(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
int iIndex;
|
|
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
|
|
return Py_BuildException();
|
|
int iPos;
|
|
if (!PyTuple_GetInteger(poArgs, 1, &iPos))
|
|
return Py_BuildException();
|
|
|
|
CPythonEventManager::Instance().AddEventSetLocalYPosition(iIndex, iPos);
|
|
return Py_BuildNone();
|
|
}
|
|
|
|
PyObject * eventInsertText(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
int iIndex;
|
|
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
|
|
return Py_BuildException();
|
|
char * szText;
|
|
if (!PyTuple_GetString(poArgs, 1, &szText))
|
|
return Py_BuildException();
|
|
|
|
CPythonEventManager::Instance().InsertText(iIndex, szText);
|
|
return Py_BuildNone();
|
|
}
|
|
|
|
PyObject * eventInsertTextInline(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
int iIndex;
|
|
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
|
|
return Py_BuildException();
|
|
char * szText;
|
|
if (!PyTuple_GetString(poArgs, 1, &szText))
|
|
return Py_BuildException();
|
|
int iXIndex;
|
|
if (!PyTuple_GetInteger(poArgs, 2, &iXIndex))
|
|
return Py_BuildException();
|
|
|
|
CPythonEventManager::Instance().InsertText(iIndex, szText,iXIndex);
|
|
return Py_BuildNone();
|
|
}
|
|
|
|
PyObject * eventUpdateEventSet(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
int iIndex;
|
|
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
|
|
return Py_BuildException();
|
|
|
|
int ix;
|
|
if (!PyTuple_GetInteger(poArgs, 1, &ix))
|
|
return Py_BuildException();
|
|
|
|
int iy;
|
|
if (!PyTuple_GetInteger(poArgs, 2, &iy))
|
|
return Py_BuildException();
|
|
|
|
CPythonEventManager::Instance().UpdateEventSet(iIndex, ix, -iy);
|
|
return Py_BuildNone();
|
|
}
|
|
|
|
PyObject * eventRenderEventSet(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
int iIndex;
|
|
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
|
|
return Py_BuildException();
|
|
|
|
CPythonEventManager::Instance().RenderEventSet(iIndex);
|
|
return Py_BuildNone();
|
|
}
|
|
|
|
PyObject * eventSetEventSetWidth(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
int iIndex;
|
|
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
|
|
return Py_BuildException();
|
|
int iWidth;
|
|
if (!PyTuple_GetInteger(poArgs, 1, &iWidth))
|
|
return Py_BuildException();
|
|
|
|
CPythonEventManager::Instance().SetEventSetWidth(iIndex, iWidth);
|
|
return Py_BuildNone();
|
|
}
|
|
|
|
PyObject * eventSkip(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
int iIndex;
|
|
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
|
|
return Py_BuildException();
|
|
|
|
CPythonEventManager::Instance().Skip(iIndex);
|
|
return Py_BuildNone();
|
|
}
|
|
|
|
PyObject * eventIsWait(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
int iIndex;
|
|
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
|
|
return Py_BuildException();
|
|
|
|
return Py_BuildValue("i", CPythonEventManager::Instance().IsWait(iIndex) == true ? 1 : 0);
|
|
}
|
|
|
|
PyObject * eventEndEventProcess(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
int iIndex;
|
|
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
|
|
return Py_BuildException();
|
|
|
|
CPythonEventManager::Instance().EndEventProcess(iIndex);
|
|
|
|
return Py_BuildNone();
|
|
}
|
|
|
|
PyObject * eventSetEventHandler(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
int iIndex;
|
|
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
|
|
return Py_BuildException();
|
|
|
|
PyObject * poEventHandler;
|
|
if (!PyTuple_GetObject(poArgs, 1, &poEventHandler))
|
|
return Py_BuildException();
|
|
|
|
CPythonEventManager::Instance().SetEventHandler(iIndex, poEventHandler);
|
|
return Py_BuildNone();
|
|
}
|
|
|
|
PyObject * eventSelectAnswer(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
int iIndex;
|
|
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
|
|
return Py_BuildException();
|
|
|
|
int iAnswer;
|
|
if (!PyTuple_GetInteger(poArgs, 1, &iAnswer))
|
|
return Py_BuildException();
|
|
|
|
CPythonEventManager::Instance().SelectAnswer(iIndex, iAnswer);
|
|
return Py_BuildNone();
|
|
}
|
|
|
|
PyObject * eventGetLineCount(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
int iIndex;
|
|
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
|
|
return Py_BuildException();
|
|
|
|
int iLineCount = CPythonEventManager::Instance().GetLineCount(iIndex);
|
|
return Py_BuildValue("i", iLineCount);
|
|
}
|
|
|
|
PyObject * eventSetVisibleStartLine(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
int iIndex;
|
|
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
|
|
return Py_BuildException();
|
|
|
|
int iStartLine;
|
|
if (!PyTuple_GetInteger(poArgs, 1, &iStartLine))
|
|
return Py_BuildException();
|
|
|
|
CPythonEventManager::Instance().SetVisibleStartLine(iIndex, iStartLine);
|
|
return Py_BuildNone();
|
|
}
|
|
|
|
PyObject * eventGetVisibleStartLine(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
int iIndex;
|
|
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
|
|
return Py_BuildException();
|
|
|
|
return Py_BuildValue("i", CPythonEventManager::Instance().GetVisibleStartLine(iIndex));
|
|
}
|
|
|
|
PyObject * eventQuestButtonClick(PyObject * poSelf, PyObject * poArgs)
|
|
{
|
|
int iIndex;
|
|
if (!PyTuple_GetInteger(poArgs, 0, &iIndex))
|
|
return Py_BuildException();
|
|
|
|
CPythonNetworkStream::Instance().SendScriptButtonPacket(iIndex);
|
|
|
|
return Py_BuildNone();
|
|
}
|
|
|
|
PyObject * eventSetInterfaceWindow(PyObject* poSelf, PyObject* poArgs)
|
|
{
|
|
PyObject * pyHandle;
|
|
if (!PyTuple_GetObject(poArgs, 0, &pyHandle))
|
|
return Py_BadArgument();
|
|
|
|
CPythonEventManager & rpem = CPythonEventManager::Instance();
|
|
rpem.SetInterfaceWindow(pyHandle);
|
|
return Py_BuildNone();
|
|
}
|
|
|
|
PyObject * eventSetLeftTimeString(PyObject* poSelf, PyObject* poArgs)
|
|
{
|
|
char * szText;
|
|
if (!PyTuple_GetString(poArgs, 0, &szText))
|
|
return Py_BuildException();
|
|
|
|
CPythonEventManager & rpem = CPythonEventManager::Instance();
|
|
rpem.SetLeftTimeString(szText);
|
|
return Py_BuildNone();
|
|
}
|
|
|
|
PyObject * eventDestroy(PyObject* poSelf, PyObject* poArgs)
|
|
{
|
|
CPythonEventManager & rpem = CPythonEventManager::Instance();
|
|
rpem.Destroy();
|
|
return Py_BuildNone();
|
|
}
|
|
|
|
void initEvent()
|
|
{
|
|
static PyMethodDef s_methods[] =
|
|
{
|
|
{ "RegisterEventSet", eventRegisterEventSet, METH_VARARGS },
|
|
{ "RegisterEventSetFromString", eventRegisterEventSetFromString, METH_VARARGS },
|
|
{ "ClearEventSet", eventClearEventSet, METH_VARARGS },
|
|
|
|
{ "SetRestrictedCount", eventSetRestrictedCount, METH_VARARGS },
|
|
|
|
{ "GetEventSetLocalYPosition", eventGetEventSetLocalYPosition, METH_VARARGS },
|
|
{ "AddEventSetLocalYPosition", eventAddEventSetLocalYPosition, METH_VARARGS },
|
|
{ "InsertText", eventInsertText, METH_VARARGS },
|
|
{ "InsertTextInline", eventInsertTextInline, METH_VARARGS },
|
|
|
|
{ "UpdateEventSet", eventUpdateEventSet, METH_VARARGS },
|
|
{ "RenderEventSet", eventRenderEventSet, METH_VARARGS },
|
|
{ "SetEventSetWidth", eventSetEventSetWidth, METH_VARARGS },
|
|
|
|
{ "Skip", eventSkip, METH_VARARGS },
|
|
{ "IsWait", eventIsWait, METH_VARARGS },
|
|
{ "EndEventProcess", eventEndEventProcess, METH_VARARGS },
|
|
|
|
{ "SelectAnswer", eventSelectAnswer, METH_VARARGS },
|
|
{ "GetLineCount", eventGetLineCount, METH_VARARGS },
|
|
{ "SetVisibleStartLine", eventSetVisibleStartLine, METH_VARARGS },
|
|
{ "GetVisibleStartLine", eventGetVisibleStartLine, METH_VARARGS },
|
|
|
|
{ "SetEventHandler", eventSetEventHandler, METH_VARARGS },
|
|
{ "SetInterfaceWindow", eventSetInterfaceWindow, METH_VARARGS },
|
|
{ "SetLeftTimeString", eventSetLeftTimeString, METH_VARARGS },
|
|
|
|
{ "QuestButtonClick", eventQuestButtonClick, METH_VARARGS },
|
|
{ "Destroy", eventDestroy, METH_VARARGS },
|
|
{ NULL, NULL, NULL },
|
|
};
|
|
|
|
PyObject * poModule = Py_InitModule("event", s_methods);
|
|
|
|
PyModule_AddIntConstant(poModule, "BOX_VISIBLE_LINE_COUNT", CPythonEventManager::BOX_VISIBLE_LINE_COUNT);
|
|
PyModule_AddIntConstant(poModule, "BUTTON_TYPE_NEXT", CPythonEventManager::BUTTON_TYPE_NEXT);
|
|
PyModule_AddIntConstant(poModule, "BUTTON_TYPE_DONE", CPythonEventManager::BUTTON_TYPE_DONE);
|
|
PyModule_AddIntConstant(poModule, "BUTTON_TYPE_CANCEL", CPythonEventManager::BUTTON_TYPE_CANCEL);
|
|
} |