client/UserInterface/PythonEventManagerMoudle.cpp

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);
}