WIP port 4-d quest dialogue modules

This commit is contained in:
shenlei
2026-09-24 09:53:02 +09:00
parent a12e7fea42
commit ee7a9cd3e2
22 changed files with 2713 additions and 205 deletions
@@ -36,21 +36,7 @@
// 40250 UserInterface/PythonBackgroundModule.cpp
// 40250 UserInterface/PythonEventManagerMoudle.cpp
void AddStubConstants_event(PyObject* poModule)
{
(void) poModule;
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);
}
// 40250 UserInterface/PythonGameEventManagerModule.cpp
void AddStubConstants_eventMgr(PyObject* poModule)
{
(void) poModule;
}
// 40250 UserInterface/PythonGuild.cpp
void AddStubConstants_guild(PyObject* poModule)
{
@@ -76,12 +62,6 @@ void AddStubConstants_profiler(PyObject* poModule)
}
// 40250 UserInterface/PythonQuest.cpp
void AddStubConstants_quest(PyObject* poModule)
{
(void) poModule;
PyModule_AddIntConstant(poModule, "QUEST_MAX_NUM", 5);
}
// 40250 UserInterface/PythonSafeBox.cpp
void AddStubConstants_safebox(PyObject* poModule)
{
@@ -5,12 +5,9 @@
#include "../EterLib/UIRenderCommands.h"
// GameplayModuleConstants.cpp: each module's 40250 constants.
void AddStubConstants_event(PyObject* poModule);
void AddStubConstants_eventMgr(PyObject* poModule);
void AddStubConstants_guild(PyObject* poModule);
void AddStubConstants_messenger(PyObject* poModule);
void AddStubConstants_profiler(PyObject* poModule);
void AddStubConstants_quest(PyObject* poModule);
void AddStubConstants_safebox(PyObject* poModule);
void AddStubConstants_snd(PyObject* poModule);
void AddStubConstants_systemSetting(PyObject* poModule);
@@ -24,62 +21,6 @@ PyObject* stub_call_named(const char* name, PyObject* result = nullptr) {
return result ? result : Py_BuildValue("i", 0);
}
// 40250 UserInterface/PythonEventManagerMoudle.cpp: event export names.
PyObject* stub_event_RegisterEventSet(PyObject*, PyObject*) { return stub_call_named("event.RegisterEventSet", Py_BuildValue("i", 0)); }
PyObject* stub_event_RegisterEventSetFromString(PyObject*, PyObject*) { return stub_call_named("event.RegisterEventSetFromString", Py_BuildValue("i", 0)); }
PyObject* stub_event_ClearEventSet(PyObject*, PyObject*) { return stub_call_named("event.ClearEventSet", Py_BuildNone()); }
PyObject* stub_event_SetRestrictedCount(PyObject*, PyObject*) { return stub_call_named("event.SetRestrictedCount", Py_BuildNone()); }
PyObject* stub_event_GetEventSetLocalYPosition(PyObject*, PyObject*) { return stub_call_named("event.GetEventSetLocalYPosition", Py_BuildValue("i", 0)); }
PyObject* stub_event_AddEventSetLocalYPosition(PyObject*, PyObject*) { return stub_call_named("event.AddEventSetLocalYPosition", Py_BuildNone()); }
PyObject* stub_event_InsertText(PyObject*, PyObject*) { return stub_call_named("event.InsertText", Py_BuildNone()); }
PyObject* stub_event_InsertTextInline(PyObject*, PyObject*) { return stub_call_named("event.InsertTextInline", Py_BuildNone()); }
PyObject* stub_event_UpdateEventSet(PyObject*, PyObject*) { return stub_call_named("event.UpdateEventSet", Py_BuildNone()); }
PyObject* stub_event_RenderEventSet(PyObject*, PyObject*) { return stub_call_named("event.RenderEventSet", Py_BuildNone()); }
PyObject* stub_event_SetEventSetWidth(PyObject*, PyObject*) { return stub_call_named("event.SetEventSetWidth", Py_BuildNone()); }
PyObject* stub_event_Skip(PyObject*, PyObject*) { return stub_call_named("event.Skip", Py_BuildNone()); }
PyObject* stub_event_IsWait(PyObject*, PyObject*) { return stub_call_named("event.IsWait", Py_BuildValue("i", 0)); }
PyObject* stub_event_EndEventProcess(PyObject*, PyObject*) { return stub_call_named("event.EndEventProcess", Py_BuildNone()); }
PyObject* stub_event_SelectAnswer(PyObject*, PyObject*) { return stub_call_named("event.SelectAnswer", Py_BuildNone()); }
PyObject* stub_event_GetLineCount(PyObject*, PyObject*) { return stub_call_named("event.GetLineCount", Py_BuildValue("i", 0)); }
PyObject* stub_event_SetVisibleStartLine(PyObject*, PyObject*) { return stub_call_named("event.SetVisibleStartLine", Py_BuildNone()); }
PyObject* stub_event_GetVisibleStartLine(PyObject*, PyObject*) { return stub_call_named("event.GetVisibleStartLine", Py_BuildValue("i", 0)); }
PyObject* stub_event_SetEventHandler(PyObject*, PyObject*) { return stub_call_named("event.SetEventHandler", Py_BuildNone()); }
PyObject* stub_event_SetInterfaceWindow(PyObject*, PyObject*) { return stub_call_named("event.SetInterfaceWindow", Py_BuildNone()); }
PyObject* stub_event_SetLeftTimeString(PyObject*, PyObject*) { return stub_call_named("event.SetLeftTimeString", Py_BuildNone()); }
PyObject* stub_event_QuestButtonClick(PyObject*, PyObject*) { return stub_call_named("event.QuestButtonClick", Py_BuildNone()); }
PyObject* stub_event_Destroy(PyObject*, PyObject*) { return stub_call_named("event.Destroy", Py_BuildNone()); }
PyMethodDef methods_event[] = {
{ "RegisterEventSet", stub_event_RegisterEventSet, METH_VARARGS },
{ "RegisterEventSetFromString", stub_event_RegisterEventSetFromString, METH_VARARGS },
{ "ClearEventSet", stub_event_ClearEventSet, METH_VARARGS },
{ "SetRestrictedCount", stub_event_SetRestrictedCount, METH_VARARGS },
{ "GetEventSetLocalYPosition", stub_event_GetEventSetLocalYPosition, METH_VARARGS },
{ "AddEventSetLocalYPosition", stub_event_AddEventSetLocalYPosition, METH_VARARGS },
{ "InsertText", stub_event_InsertText, METH_VARARGS },
{ "InsertTextInline", stub_event_InsertTextInline, METH_VARARGS },
{ "UpdateEventSet", stub_event_UpdateEventSet, METH_VARARGS },
{ "RenderEventSet", stub_event_RenderEventSet, METH_VARARGS },
{ "SetEventSetWidth", stub_event_SetEventSetWidth, METH_VARARGS },
{ "Skip", stub_event_Skip, METH_VARARGS },
{ "IsWait", stub_event_IsWait, METH_VARARGS },
{ "EndEventProcess", stub_event_EndEventProcess, METH_VARARGS },
{ "SelectAnswer", stub_event_SelectAnswer, METH_VARARGS },
{ "GetLineCount", stub_event_GetLineCount, METH_VARARGS },
{ "SetVisibleStartLine", stub_event_SetVisibleStartLine, METH_VARARGS },
{ "GetVisibleStartLine", stub_event_GetVisibleStartLine, METH_VARARGS },
{ "SetEventHandler", stub_event_SetEventHandler, METH_VARARGS },
{ "SetInterfaceWindow", stub_event_SetInterfaceWindow, METH_VARARGS },
{ "SetLeftTimeString", stub_event_SetLeftTimeString, METH_VARARGS },
{ "QuestButtonClick", stub_event_QuestButtonClick, METH_VARARGS },
{ "Destroy", stub_event_Destroy, METH_VARARGS },
{ NULL, NULL }
};
// 40250 UserInterface/PythonGameEventManagerModule.cpp: eventMgr export names.
PyObject* stub_eventMgr_Update(PyObject*, PyObject*) { return stub_call_named("eventMgr.Update", Py_BuildNone()); }
PyMethodDef methods_eventMgr[] = {
{ "Update", stub_eventMgr_Update, METH_VARARGS },
{ NULL, NULL }
};
// 40250 UserInterface/PythonGuild.cpp: guild export names.
PyObject* stub_guild_IsGuildEnable(PyObject*, PyObject*) { return stub_call_named("guild.IsGuildEnable", Py_BuildValue("i", 0)); }
PyObject* stub_guild_GuildIDToMarkID(PyObject*, PyObject*) { return stub_call_named("guild.GuildIDToMarkID", Py_BuildValue("i", 0)); }
@@ -174,20 +115,6 @@ PyMethodDef methods_profiler[] = {
{ "Pop", stub_profiler_Pop, METH_VARARGS },
{ NULL, NULL }
};
// 40250 UserInterface/PythonQuest.cpp: quest export names.
PyObject* stub_quest_GetQuestCount(PyObject*, PyObject*) { return stub_call_named("quest.GetQuestCount", Py_BuildValue("i", 0)); }
PyObject* stub_quest_GetQuestData(PyObject*, PyObject*) { return stub_call_named("quest.GetQuestData", Py_BuildValue("sisi", "", 0, "", 0)); }
PyObject* stub_quest_GetQuestIndex(PyObject*, PyObject*) { return stub_call_named("quest.GetQuestIndex", Py_BuildValue("i", 0)); }
PyObject* stub_quest_GetQuestLastTime(PyObject*, PyObject*) { return stub_call_named("quest.GetQuestLastTime", Py_BuildValue("si", "", 0)); }
PyObject* stub_quest_Clear(PyObject*, PyObject*) { return stub_call_named("quest.Clear", Py_BuildNone()); }
PyMethodDef methods_quest[] = {
{ "GetQuestCount", stub_quest_GetQuestCount, METH_VARARGS },
{ "GetQuestData", stub_quest_GetQuestData, METH_VARARGS },
{ "GetQuestIndex", stub_quest_GetQuestIndex, METH_VARARGS },
{ "GetQuestLastTime", stub_quest_GetQuestLastTime, METH_VARARGS },
{ "Clear", stub_quest_Clear, METH_VARARGS },
{ NULL, NULL }
};
// 40250 UserInterface/PythonSafeBox.cpp: safebox export names.
PyObject* stub_safebox_GetCurrentSafeboxSize(PyObject*, PyObject*) { return stub_call_named("safebox.GetCurrentSafeboxSize", Py_BuildValue("i", 0)); }
PyObject* stub_safebox_GetItemID(PyObject*, PyObject*) { return stub_call_named("safebox.GetItemID", Py_BuildValue("i", 0)); }
@@ -344,16 +271,6 @@ PyMethodDef methods_udp[] = {
} // namespace
void init_2v0_gameplay_stubs() {
{
PyObject* module = Py_InitModule("event", methods_event);
PyModule_AddIntConstant(module, "__port_stub__", 1);
AddStubConstants_event(module);
}
{
PyObject* module = Py_InitModule("eventMgr", methods_eventMgr);
PyModule_AddIntConstant(module, "__port_stub__", 1);
AddStubConstants_eventMgr(module);
}
{
PyObject* module = Py_InitModule("guild", methods_guild);
PyModule_AddIntConstant(module, "__port_stub__", 1);
@@ -369,11 +286,6 @@ void init_2v0_gameplay_stubs() {
PyModule_AddIntConstant(module, "__port_stub__", 1);
AddStubConstants_profiler(module);
}
{
PyObject* module = Py_InitModule("quest", methods_quest);
PyModule_AddIntConstant(module, "__port_stub__", 1);
AddStubConstants_quest(module);
}
{
PyObject* module = Py_InitModule("safebox", methods_safebox);
PyModule_AddIntConstant(module, "__port_stub__", 1);
@@ -400,10 +400,13 @@ bool run_main_script_body(const char* lpCmdLine, std::string* error)
initTextTail();
initnet();
initMiniMap();
initEvent();
initeffect();
initfly();
initeventmgr();
initshop();
initskill();
initquest();
initBackground();
initServerStateChecker();
init_2v0_gameplay_stubs();
@@ -1,28 +0,0 @@
// Stand-in for the 40250 logic unit UserInterface/PythonEventManager.cpp, not ported yet: the members the ported units
// reference, as platform_stub.py stubs. Delete this file in the commit that ports the unit into port/
// (docs/PORT-PLAN.md).
#include "UserInterface/StdAfx.h"
#include "UserInterface/PythonEventManager.h"
#include "../../PlatformStub.h"
CPythonEventManager::CPythonEventManager()
{
MT_PLATFORM_STUB();
}
CPythonEventManager::~CPythonEventManager()
{
MT_PLATFORM_STUB();
}
auto CPythonEventManager::RegisterEventSetFromString(const std::string &) -> int
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<int>();
}
auto CPythonEventManager::SetVisibleLineCount(int, int) -> void
{
MT_PLATFORM_STUB();
}
@@ -1,68 +0,0 @@
// Stand-in for the 40250 logic unit UserInterface/PythonQuest.cpp, not ported yet: the members the ported units
// reference, as platform_stub.py stubs. Delete this file in the commit that ports the unit into port/
// (docs/PORT-PLAN.md).
#include "UserInterface/StdAfx.h"
#include "UserInterface/PythonQuest.h"
#include "../../PlatformStub.h"
CPythonQuest::CPythonQuest()
{
MT_PLATFORM_STUB();
}
CPythonQuest::~CPythonQuest()
{
MT_PLATFORM_STUB();
}
auto CPythonQuest::RegisterQuestInstance(const SQuestInstance &) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonQuest::DeleteQuestInstance(DWORD) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonQuest::IsQuest(DWORD) -> bool
{
MT_PLATFORM_STUB();
return mt_platform_stub_return<bool>();
}
auto CPythonQuest::MakeQuest(DWORD) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonQuest::SetQuestTitle(DWORD, const char *) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonQuest::SetQuestClockName(DWORD, const char *) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonQuest::SetQuestCounterName(DWORD, const char *) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonQuest::SetQuestClockValue(DWORD, int) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonQuest::SetQuestCounterValue(DWORD, int) -> void
{
MT_PLATFORM_STUB();
}
auto CPythonQuest::SetQuestIconFileName(DWORD, const char *) -> void
{
MT_PLATFORM_STUB();
}