#include "StdAfx.h" #include "PythonTextTail.h" #include "PythonCharacterManager.h" PyObject * textTailClear(PyObject * poSelf, PyObject * poArgs) { CPythonTextTail::Instance().Clear(); return Py_BuildNone(); } PyObject * textTailUpdateAllTextTail(PyObject * poSelf, PyObject * poArgs) { CPythonTextTail::Instance().UpdateAllTextTail(); return Py_BuildNone(); } PyObject * textTailUpdateShowingTextTail(PyObject * poSelf, PyObject * poArgs) { CPythonTextTail::Instance().UpdateShowingTextTail(); return Py_BuildNone(); } PyObject * textTailRender(PyObject * poSelf, PyObject * poArgs) { CPythonTextTail::Instance().Render(); return Py_BuildNone(); } PyObject * textTailRegisterCharacterTextTail(PyObject * poSelf, PyObject * poArgs) { int iGuildID; if (!PyTuple_GetInteger(poArgs, 0, &iGuildID)) return Py_BuildException(); int iVirtualID; if (!PyTuple_GetInteger(poArgs, 1, &iVirtualID)) return Py_BuildException(); CPythonTextTail::Instance().RegisterCharacterTextTail(iGuildID, iVirtualID, D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f)); return Py_BuildNone(); } PyObject * textTailGetPosition(PyObject * poSelf, PyObject * poArgs) { int VirtualID; if (!PyTuple_GetInteger(poArgs, 0, &VirtualID)) return Py_BuildException(); float x=0.0f; float y=0.0f; float z=0.0f; bool isData=CPythonTextTail::Instance().GetTextTailPosition(VirtualID, &x, &y, &z); if (!isData) { CPythonCharacterManager& rkChrMgr=CPythonCharacterManager::Instance(); CInstanceBase* pkInstMain=rkChrMgr.GetMainInstancePtr(); if (pkInstMain) { const D3DXVECTOR3 & c_rv3Position = pkInstMain->GetGraphicThingInstanceRef().GetPosition(); CPythonGraphic::Instance().ProjectPosition(c_rv3Position.x, c_rv3Position.y, c_rv3Position.z, &x, &y); } } return Py_BuildValue("fff", x, y, z); } PyObject * textTailIsChat(PyObject * poSelf, PyObject * poArgs) { int VirtualID; if (!PyTuple_GetInteger(poArgs, 0, &VirtualID)) return Py_BuildException(); return Py_BuildValue("i", CPythonTextTail::Instance().IsChatTextTail(VirtualID)); } PyObject * textTailRegisterChatTail(PyObject * poSelf, PyObject * poArgs) { int VirtualID; if (!PyTuple_GetInteger(poArgs, 0, &VirtualID)) return Py_BuildException(); char * szText; if (!PyTuple_GetString(poArgs, 1, &szText)) return Py_BuildException(); CPythonTextTail::Instance().RegisterChatTail(VirtualID, szText); return Py_BuildNone(); } PyObject * textTailRegisterInfoTail(PyObject * poSelf, PyObject * poArgs) { int VirtualID; if (!PyTuple_GetInteger(poArgs, 0, &VirtualID)) return Py_BuildException(); char * szText; if (!PyTuple_GetString(poArgs, 1, &szText)) return Py_BuildException(); CPythonTextTail::Instance().RegisterInfoTail(VirtualID, szText); return Py_BuildNone(); } PyObject * textTailAttachTitle(PyObject * poSelf, PyObject * poArgs) { int iVirtualID; if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID)) return Py_BuildException(); char * szName; if (!PyTuple_GetString(poArgs, 1, &szName)) return Py_BuildException(); float fr; if (!PyTuple_GetFloat(poArgs, 2, &fr)) return Py_BuildException(); float fg; if (!PyTuple_GetFloat(poArgs, 3, &fg)) return Py_BuildException(); float fb; if (!PyTuple_GetFloat(poArgs, 4, &fb)) return Py_BuildException(); CPythonTextTail::Instance().AttachTitle(iVirtualID, szName, D3DXCOLOR(fr, fg, fb, 1.0f)); return Py_BuildNone(); } PyObject * textTailShowCharacterTextTail(PyObject * poSelf, PyObject * poArgs) { int VirtualID; if (!PyTuple_GetInteger(poArgs, 0, &VirtualID)) return Py_BuildException(); CPythonTextTail::Instance().ShowCharacterTextTail(VirtualID); return Py_BuildNone(); } PyObject * textTailShowItemTextTail(PyObject * poSelf, PyObject * poArgs) { int VirtualID; if (!PyTuple_GetInteger(poArgs, 0, &VirtualID)) return Py_BuildException(); CPythonTextTail::Instance().ShowItemTextTail(VirtualID); return Py_BuildNone(); } PyObject * textTailArrangeTextTail(PyObject * poSelf, PyObject * poArgs) { CPythonTextTail::Instance().ArrangeTextTail(); return Py_BuildNone(); } PyObject * textTailHideAllTextTail(PyObject * poSelf, PyObject * poArgs) { CPythonTextTail::Instance().HideAllTextTail(); return Py_BuildNone(); } PyObject * textTailShowAllTextTail(PyObject * poSelf, PyObject * poArgs) { CPythonTextTail::Instance().ShowAllTextTail(); return Py_BuildNone(); } PyObject * textTailPick(PyObject * poSelf, PyObject * poArgs) { int ix; if (!PyTuple_GetInteger(poArgs, 0, &ix)) return Py_BuildException(); int iy; if (!PyTuple_GetInteger(poArgs, 1, &iy)) return Py_BuildException(); int iValue = CPythonTextTail::Instance().Pick(ix, iy); return Py_BuildValue("i", iValue); } PyObject * textTailSelectItemName(PyObject * poSelf, PyObject * poArgs) { int iVirtualID; if (!PyTuple_GetInteger(poArgs, 0, &iVirtualID)) return Py_BuildException(); CPythonTextTail::Instance().SelectItemName(iVirtualID); return Py_BuildNone(); } PyObject * textTailEnablePKTitle(PyObject * poSelf, PyObject * poArgs) { int iFlag; if (!PyTuple_GetInteger(poArgs, 0, &iFlag)) return Py_BuildException(); CPythonTextTail::Instance().EnablePKTitle(iFlag); return Py_BuildNone(); } void initTextTail() { static PyMethodDef s_methods[] = { { "Clear", textTailClear, METH_VARARGS }, { "UpdateAllTextTail", textTailUpdateAllTextTail, METH_VARARGS }, { "UpdateShowingTextTail", textTailUpdateShowingTextTail, METH_VARARGS }, { "Render", textTailRender, METH_VARARGS }, { "ShowCharacterTextTail", textTailShowCharacterTextTail, METH_VARARGS }, { "ShowItemTextTail", textTailShowItemTextTail, METH_VARARGS }, { "GetPosition", textTailGetPosition, METH_VARARGS }, { "IsChat", textTailIsChat, METH_VARARGS }, { "ArrangeTextTail", textTailArrangeTextTail, METH_VARARGS }, { "HideAllTextTail", textTailHideAllTextTail, METH_VARARGS }, { "ShowAllTextTail", textTailShowAllTextTail, METH_VARARGS }, { "Pick", textTailPick, METH_VARARGS }, { "SelectItemName", textTailSelectItemName, METH_VARARGS }, { "EnablePKTitle", textTailEnablePKTitle, METH_VARARGS }, // For Test { "RegisterCharacterTextTail", textTailRegisterCharacterTextTail, METH_VARARGS }, { "RegisterChatTail", textTailRegisterChatTail, METH_VARARGS }, { "RegisterInfoTail", textTailRegisterInfoTail, METH_VARARGS }, { "AttachTitle", textTailAttachTitle, METH_VARARGS }, { NULL, NULL, NULL }, }; Py_InitModule("textTail", s_methods); }