diff --git a/.agents/skills/metin2-40250-parity-audit/SKILL.md b/.agents/skills/metin2-40250-parity-audit/SKILL.md index 61e32041..c0ff8962 100644 --- a/.agents/skills/metin2-40250-parity-audit/SKILL.md +++ b/.agents/skills/metin2-40250-parity-audit/SKILL.md @@ -155,6 +155,9 @@ behavior verified from code inspection alone. skeleton `extension/src/platform//.cpp` for platform-layer mirror headers from clang's AST (needs `script/port_gate.sh macos` for compile commands); never overwrites without `--force`. `grep -r MT_PLATFORM_STUB extension/src/platform` lists the platform functions still unimplemented. +- `scripts/stub_constants.py [--check]` — regenerates the 2V0 stub modules' constants + (`platform/ScriptLib/GameplayModuleConstants.cpp`) and stub return shapes (`GameplayModules.cpp`) + from the 40250 module sources; rerun when a stub module is ported for real and removed. - `scripts/port_deps.py closure | slices [--write] | order [--write]` — `#include` graph with the implicit edges each library's `StdAfx.h` supplies; writes the 2V0-2V3 unit lists and the batch-2 topological order to `audit/slices/`. Regenerate after changing a slice definition. diff --git a/.agents/skills/metin2-40250-parity-audit/scripts/stub_constants.py b/.agents/skills/metin2-40250-parity-audit/scripts/stub_constants.py new file mode 100644 index 00000000..838e43d2 --- /dev/null +++ b/.agents/skills/metin2-40250-parity-audit/scripts/stub_constants.py @@ -0,0 +1,216 @@ +#!/usr/bin/env python3 +"""Write the module constants and return shapes of the 2V0 native stub modules from the 40250 sources. + + stub_constants.py [--check] + +The stub modules in extension/src/platform/ScriptLib/GameplayModules.cpp only export names. Their +constants are data the root scripts compute with (uiSafebox divides by safebox.SAFEBOX_SLOT_Y_COUNT), +so each stub module gets its 40250 init function's `PyModule_Add{Int,String}Constant` lines verbatim, +with the preprocessor lines around them and the source file's includes, in +extension/src/platform/ScriptLib/GameplayModuleConstants.cpp as `AddStubConstants_(poModule)`. +A module that is ported for real drops out of the stub list and out of this file. + +The stub functions themselves (`stub__` in GameplayModules.cpp) return a zero value of +the shape their 40250 function returns on its last `return`: the `Py_BuildValue` format with every +number 0, every string "" and every object None, or None for `Py_BuildNone()`. uiTaskBar unpacks +`player.GetLocalQuickSlot` as a pair, so an `int` 0 stops the script where the real module would not. +Functions whose last return is not a build call (lists built by hand, ...) keep returning 0. +""" + +from __future__ import annotations + +import argparse +import re +import sys + +import refroot + +REPO = refroot.repo_root() +STUBS = REPO / "extension/src/platform/ScriptLib/GameplayModules.cpp" +OUT = REPO / "extension/src/platform/ScriptLib/GameplayModuleConstants.cpp" +INIT = re.compile(r'Py_InitModule\("([A-Za-z_]+)"') +KEEP = re.compile(r'^\s*(PyModule_Add(Int|String)Constant\s*\(|#\s*(if|ifdef|ifndef|elif|else|endif)\b)') +INCLUDE = re.compile(r'^\s*#\s*include\s*"([^"]+)"') + + +def read(path) -> list[str]: + return path.read_bytes().decode("cp949", "replace").replace("\r", "").split("\n") + + +def init_body(lines: list[str], module: str) -> list[str]: + start = next(i for i, l in enumerate(lines) if f'Py_InitModule("{module}"' in l and not l.strip().startswith("//")) + body = [] + for line in lines[start + 1:]: + if line.startswith("}"): + break + if KEEP.match(line): + body.append(line.strip() if line.lstrip().startswith("#") else "\t" + line.strip()) + # Preprocessor pairs with nothing between them carry no constant. + changed = True + while changed: + changed = False + for i in range(len(body) - 1): + if re.match(r"#\s*if", body[i]) and re.match(r"#\s*endif", body[i + 1]): + del body[i:i + 2] + changed = True + break + return body + + +def enums(lines: list[str]) -> list[str]: + """The file's constant definitions and enum blocks (file scope or inside the init function) that constants name.""" + out, inside = [], False + for line in lines: + if re.match(r"extern const \w+\s+\w+\s*=", line): + out.append(line) + continue + if re.match(r"\s*enum\b", line): + inside = True + if inside: + out.append(line[1:] if line.startswith("\t") and out and out[0].startswith("\t") else line) + if "};" in line: + inside = False + out.append("") + return out + + +ZERO = {"i": "0", "b": "0", "h": "0", "B": "0", "H": "0", "I": "0u", "c": "0", "l": "0L", "k": "0UL", + "L": "0LL", "K": "0ULL", "n": "(Py_ssize_t) 0", "f": "0.0", "d": "0.0", "s": '""', "z": '""', + "O": "Py_None", "S": "Py_None", "N": "Py_None"} + + +def zero_value(fmt: str) -> str | None: + """A C expression building `fmt` with zeros, or None when the format has a converter.""" + out_fmt, args, i = "", [], 0 + while i < len(fmt): + ch = fmt[i] + if ch in "()[]{}:, \t": + out_fmt += ch + elif ch in ZERO: + out_fmt += "O" if ch in "SN" else ch + args.append(ZERO[ch]) + if i + 1 < len(fmt) and fmt[i + 1] == "#": + out_fmt += "#" + args.append("0") + i += 1 + elif ch == "O" and i + 1 < len(fmt) and fmt[i + 1] in "&!": + return None + else: + return None + i += 1 + return "Py_BuildValue(" + ", ".join([f'"{out_fmt}"'] + args) + ")" + + +def function_bodies(ref) -> dict[str, str]: + bodies = {} + for path in ref.glob("*.cpp"): + text = "\n".join(read(path)) + for m in re.finditer(r"PyObject\s*\*\s*(\w+)\s*\(\s*PyObject\s*\*\s*\w*\s*,\s*PyObject\s*\*\s*\w*\s*\)\s*\{", text): + depth, j = 1, m.end() + while depth and j < len(text): + depth += {"{": 1, "}": -1}.get(text[j], 0) + j += 1 + bodies.setdefault(m.group(1), text[m.end():j - 1]) + return bodies + + +def return_shape(body: str) -> str | None: + body = re.sub(r"//[^\n]*|/\*.*?\*/", "", body, flags=re.S) + returns = [r.strip() for r in re.findall(r"\breturn\b([^;]*);", body)] + returns = [r for r in returns if not r.startswith("Py_BuildException")] + if not returns: + return None + last = returns[-1] + if last.startswith("Py_BuildNone"): + return "Py_BuildNone()" + m = re.match(r'Py_BuildValue\s*\(\s*"([^"]*)"', last) + return zero_value(m.group(1)) if m else None + + +def shapes() -> tuple[str, int]: + """GameplayModules.cpp with every stub returning its 40250 shape; also the count left at 0.""" + ref = refroot.reference_root() / "UserInterface" + bodies = function_bodies(ref) + tables = {} + for path in ref.glob("*.cpp"): + text = "\n".join(read(path)) + m = re.search(r'Py_InitModule\("(\w+)"', text) + if not m: + continue + for name, func in re.findall(r'\{\s*"(\w+)"\s*,\s*(\w+)\s*,\s*METH_VARARGS', text): + tables.setdefault(m.group(1), {}).setdefault(name, func) + left = 0 + + def fix(m): + nonlocal left + module, name = m.group(2).split(".", 1) + shape = return_shape(bodies.get(tables.get(module, {}).get(name, ""), "")) + if not shape: + left += 1 + return f'{m.group(1)}"{m.group(2)}"); }}' + return f'{m.group(1)}"{m.group(2)}", {shape}); }}' + + text = re.sub(r'(\{ return stub_call_named\()"([\w.]+)"(?:, .*)?\); \}$', fix, STUBS.read_text(), flags=re.M) + return text, left + + +def generate() -> str: + ref = refroot.reference_root() / "UserInterface" + modules = INIT.findall(STUBS.read_text()) + sources = {} + for path in sorted(ref.glob("*.cpp")): + for line in read(path): + m = INIT.search(line) + if m and not line.strip().startswith("//"): + sources[m.group(1)] = path + out = [ + "// Generated by .agents/skills/metin2-40250-parity-audit/scripts/stub_constants.py; do not edit.", + "// The module constants of the 2V0 stub modules (GameplayModules.cpp), copied from each 40250", + "// module's init function with the preprocessor lines around them.", + '#include "UserInterface/StdAfx.h"', + ] + root = REPO / "extension/src/port" + port = {p.relative_to(root).as_posix().lower(): p.relative_to(root).as_posix() for p in root.rglob("*.h")} + includes, bodies = [], [] + for module in modules: + path = sources[module] + body = init_body(read(path), module) + for line in read(path): + m = INCLUDE.match(line) + if m and m.group(1).lower() != "stdafx.h": + rel = m.group(1)[3:] if m.group(1).startswith("../") else "UserInterface/" + m.group(1) + if rel.lower() not in port: + continue # not mirrored (e.g. the UDP datagram unit); its constants need none of it + inc = f'#include "{port[rel.lower()]}"' + if inc not in includes: + includes.append(inc) + blocks = enums(read(path)) + if blocks: + bodies.append(f"\n// 40250 UserInterface/{path.name}") + bodies.extend(l for l in blocks[:-1]) + bodies.append(f"\n// 40250 UserInterface/{path.name}\nvoid AddStubConstants_{module}(PyObject* poModule)\n{{") + bodies.append("\t(void) poModule;") + bodies.extend(body) + bodies.append("}") + return "\n".join(out + includes + bodies) + "\n" + + +def main() -> int: + ap = argparse.ArgumentParser() + ap.add_argument("--check", action="store_true", help="fail if the file is out of date") + args = ap.parse_args() + text = generate() + stubs, left = shapes() + if args.check: + stale = [p for p, t in ((OUT, text), (STUBS, stubs)) if not p.exists() or p.read_text() != t] + for p in stale: + print(f"{p.relative_to(REPO)} is out of date; run stub_constants.py", file=sys.stderr) + return 1 if stale else 0 + OUT.write_text(text) + STUBS.write_text(stubs) + print(f"wrote {OUT.relative_to(REPO)} and {STUBS.relative_to(REPO)} ({left} stubs keep returning 0)") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/audit/history.jsonl b/audit/history.jsonl index a6998b9c..8ac5ac74 100644 --- a/audit/history.jsonl +++ b/audit/history.jsonl @@ -512,3 +512,4 @@ {"time": "2026-09-23T06:18:52Z", "event": "port_round", "unit": "PORT-PLAN 2V1-d: offline FakeServer login -> select -> loading", "ported": ["PythonNetworkStreamPhaseGame SendClientVersionPacket body (verbatim, in the platform/pending stand-in)"], "adapted": ["NetStream::ActivateCipher decrypts the unread receive buffer (PORT: ciphertext pipelined behind KEY_AGREEMENT_COMPLETED)", "CPythonApplication marked final (PORT: no application object on the platform, virtual overrides must be called directly)", "platform CPythonApplication::GetGlobalTime reads CTimer (40250 caches it in m_fGlobalTime each Process); SetCenterPosition/SetEventCamera/SetDefaultCamera stubs (2V3)"], "divergent": ["GetExcutedFileName is a platform stub, so CG_CLIENT_VERSION carries an empty filename", "SendClientVersionPacket lives in the PhaseGame stand-in until PhaseGame is ported"], "needs_live": ["login/select/loading against the 40250 server (2V1-e)"], "tests": ["port.login_flow: pass (auth + two game connections, every sequence byte checked; 5x repeat stable)", "ctest 34/34 pass", "script/port_gate.sh macos: PASS", "godot python_host_test.gd: pass"], "todo": ["2V1-e live smoke", "port the platform/pending units", "game.GameWindow after loading (2V2)"]} {"time": "2026-09-23T06:23:33Z", "event": "port_round", "unit": "PORT-PLAN 2V1-e: live smoke harness (port.login_live)", "ported": [], "adapted": ["port_login_flow_test live mode: server and account from MT_LIVE_* env vars only, passed to Python as objects, never printed"], "divergent": [], "needs_live": ["login -> character list -> loading against 192.168.21.203 (host unreachable from this machine on 2026-09-23)", "the live loading-phase packet burst through the platform/pending stand-ins", "auth/login failure popups (wrong password, already logged in, blocked)", "CG_CLIENT_VERSION with an empty filename (GetExcutedFileName stub) accepted by the server"], "tests": ["port.login_flow: pass", "port.login_live: skipped without MT_LIVE_*", "script/port_gate.sh macos: PASS"], "todo": ["run port.login_live once the server is reachable", "port the platform/pending units"]} {"time": "2026-09-23T07:40:54Z", "event": "port_round", "unit": "PORT-PLAN 2V1-e: live smoke against 192.168.21.203", "ported": [], "adapted": [], "divergent": [], "needs_live": ["the loading-phase packet burst after GC_MAIN_CHARACTER and CG_ENTERGAME (2V2 GameWindow)", "auth/login failure popups", "server handling of CG_CLIENT_VERSION with an empty filename (not observable client-side)"], "tests": ["port.login_live: pass x2 against 192.168.21.203 (auth handshake + key agreement + LOGIN3, game LOGIN2, character list, DirectEnter reconnect, CHARACTER_SELECT, GC_MAIN_CHARACTER -> LoadData + CG_CLIENT_VERSION; no unknown packets)", "port.login_flow: pass"], "todo": ["2V2", "port the platform/pending units"]} +{"time": "2026-09-23T07:52:21Z", "event": "port_round", "unit": "PORT-PLAN 2V2-a: game.GameWindow opens after Loading, CG_ENTERGAME", "ported": [], "adapted": ["2V0 stub modules: 40250 constants (verbatim init lines, stub_constants.py) and zero return values shaped like each reference function's last Py_BuildValue"], "divergent": [], "fixed": ["UserInterface/StdAfx.h included GameType.h before Locale.h, dropping GameType.h's ENABLE_NEW_EQUIPMENT_SYSTEM branches; 40250 PCH order restored"], "needs_live": ["PHASE_GAME and the Entergame burst: GamePhase/SetGamePhase still stand-ins (2V2-b)"], "tests": ["port.login_flow: pass (fake server receives CG_ENTERGAME with the right sequence byte, GameWindow shown)", "port.login_live: pass against 192.168.21.203 (GameWindow shown)", "port.packet: pass"], "todo": ["2V2-b PhaseGame dispatch", "2V2-c PythonCharacterManager", "2V2-d InstanceBase/ActorInstance", "2V2-e render"]} diff --git a/docs/PORT-PLAN.md b/docs/PORT-PLAN.md index 5732487c..cc8c0da0 100644 --- a/docs/PORT-PLAN.md +++ b/docs/PORT-PLAN.md @@ -416,6 +416,14 @@ extension/third_party/cpython-2.7.18/ # 静态库(2P 批次 3. **2V2 — GamePhase/角色显示**:加入 GamePhase 的最小分派闭包、`PythonCharacterManager`、`InstanceBase`、`ActorInstance` 及角色模型/动画/资源 adapter。验收为进入游戏、创建主角并显示可辨认的静止角色;这个切片要求 2D 的 proto 和所需资源通过 strict gate。 + + | 子步骤 | 内容 | 状态 | + | --- | --- | --- | + | 2V2-a | Loading 结束后打开 `game.GameWindow`,发 `CG_ENTERGAME` | 完成:2V0 桩模块的常量与返回值形状改为按 40250 生成(`scripts/stub_constants.py`:常量逐行抄各模块 init 的 `PyModule_Add*Constant` 及其预处理行/枚举/`extern const` 定义,写到 `platform/ScriptLib/GameplayModuleConstants.cpp`;桩函数返回参考函数最后一个 `return` 的 `Py_BuildValue` 格式的零值或 None,而不是一律 `int 0`),`uiSafebox.SetTableSize` 的除零和 `uiTaskBar` 解包失败随之消失,`interfaceModule.MakeInterface` 走完。修正:`UserInterface/StdAfx.h` 按 40250 PCH 顺序先 `Locale.h` 后 `GameType.h`(之前反了,`GameType.h` 里 `ENABLE_NEW_EQUIPMENT_SYSTEM` 分支全被丢掉)。`port.login_flow` 假服在 `CG_CLIENT_VERSION` 后收 `CG_ENTERGAME`(校验序列字节),测试等到 `GameWindow` 显示;`port.login_live` 2026-09-23 对 192.168.21.203 同样走到 `GameWindow`。`GamePhase`/`SetGamePhase` 仍是替身:服务器的 PHASE_GAME 及 Loading 阶段落到 `GamePhase()` 的包会卡住读流 | + | 2V2-b | `PythonNetworkStreamPhaseGame*.cpp` 分派闭包:`SetGamePhase`/`GamePhase`,PHASE_GAME 后的 Entergame 包洪流(`GC_TIME`/`GC_CHANNEL`/`GC_CHARACTER_ADD`/`GC_CHAR_ADDITIONAL_INFO`/`GC_CHARACTER_UPDATE`/技能/物品/快捷栏…)读流不断 | TODO | + | 2V2-c | `PythonCharacterManager` + `chrmgr`/`chr` 模块:`playerSettingModule` 的种族/动作/特效注册走真实实现 | TODO | + | 2V2-d | `InstanceBase` + `ActorInstance` + `CGraphicThingInstance` adapter:`GC_CHARACTER_ADD` 创建主角实例(msm 模型 + 待机动作) | TODO | + | 2V2-e | Godot 显示主角(渲染 adapter),离线 + 真服 smoke:进游戏看到可辨认的静止角色 | TODO | 4. **2V3 — 本地移动**:加入 `PythonPlayer`、`PythonPlayerInput*`、`PythonPlayerEventHandler`、 `InstanceBaseMovement`、`ActorInstance{Motion,Event,Position,Rotation,CollisionDetection}` 的实际依赖闭包。验收为输入经过新路径 改变位置/朝向、发送与 40250 相同的移动封包,并在离线边界测试和真服 smoke 中通过。接通时删除对应 legacy 玩法逻辑。 diff --git a/extension/src/platform/ScriptLib/GameplayModuleConstants.cpp b/extension/src/platform/ScriptLib/GameplayModuleConstants.cpp new file mode 100644 index 00000000..60b1252f --- /dev/null +++ b/extension/src/platform/ScriptLib/GameplayModuleConstants.cpp @@ -0,0 +1,1073 @@ +// Generated by .agents/skills/metin2-40250-parity-audit/scripts/stub_constants.py; do not edit. +// The module constants of the 2V0 stub modules (GameplayModules.cpp), copied from each 40250 +// module's init function with the preprocessor lines around them. +#include "UserInterface/StdAfx.h" +#include "UserInterface/ServerStateChecker.h" +#include "UserInterface/PythonSystem.h" +#include "UserInterface/PythonBackground.h" +#include "EterLib/StateManager.h" +#include "GameLib/MapOutdoor.h" +#include "UserInterface/PythonChat.h" +#include "UserInterface/PythonItem.h" +#include "GameLib/ItemManager.h" +#include "UserInterface/PythonCharacterManager.h" +#include "UserInterface/PythonNonPlayer.h" +#include "UserInterface/InstanceBase.h" +#include "GameLib/RaceManager.h" +#include "EffectLib/EffectManager.h" +#include "UserInterface/PythonEventManager.h" +#include "UserInterface/PythonNetworkStream.h" +#include "GameLib/GameEventManager.h" +#include "UserInterface/PythonExchange.h" +#include "GameLib/FlyingObjectManager.h" +#include "UserInterface/PythonGuild.h" +#include "UserInterface/AbstractPlayer.h" +#include "UserInterface/MarkManager.h" +#include "UserInterface/PythonIME.h" +#include "UserInterface/PythonApplication.h" +#include "UserInterface/AbstractApplication.h" +#include "UserInterface/PythonMessenger.h" +#include "UserInterface/PythonMiniMap.h" +#include "UserInterface/PythonPlayer.h" +#include "EterLib/Profiler.h" +#include "UserInterface/PythonQuest.h" +#include "UserInterface/PythonSafeBox.h" +#include "UserInterface/PythonShop.h" +#include "UserInterface/PythonSkill.h" +#include "EterBase/Poly/Poly.h" +#include "EterPack/EterPackManager.h" +#include "UserInterface/PythonTextTail.h" + +// 40250 UserInterface/ServerStateCheckerModule.cpp +void AddStubConstants_ServerStateChecker(PyObject* poModule) +{ + (void) poModule; +} + +// 40250 UserInterface/PythonBackgroundModule.cpp +void AddStubConstants_background(PyObject* poModule) +{ + (void) poModule; + PyModule_AddIntConstant(poModule, "PART_SKY", CMapOutdoor::PART_SKY); + PyModule_AddIntConstant(poModule, "PART_TREE", CMapOutdoor::PART_TREE); + PyModule_AddIntConstant(poModule, "PART_CLOUD", CMapOutdoor::PART_CLOUD); + PyModule_AddIntConstant(poModule, "PART_WATER", CMapOutdoor::PART_WATER); + PyModule_AddIntConstant(poModule, "PART_OBJECT", CMapOutdoor::PART_OBJECT); + PyModule_AddIntConstant(poModule, "PART_TERRAIN", CMapOutdoor::PART_TERRAIN); + PyModule_AddIntConstant(poModule, "SKY_RENDER_MODE_DEFAULT", CSkyObject::SKY_RENDER_MODE_DEFAULT); + PyModule_AddIntConstant(poModule, "SKY_RENDER_MODE_DIFFUSE", CSkyObject::SKY_RENDER_MODE_DIFFUSE); + PyModule_AddIntConstant(poModule, "SKY_RENDER_MODE_TEXTURE", CSkyObject::SKY_RENDER_MODE_TEXTURE); + PyModule_AddIntConstant(poModule, "SKY_RENDER_MODE_MODULATE", CSkyObject::SKY_RENDER_MODE_MODULATE); + PyModule_AddIntConstant(poModule, "SKY_RENDER_MODE_MODULATE2X", CSkyObject::SKY_RENDER_MODE_MODULATE2X); + PyModule_AddIntConstant(poModule, "SKY_RENDER_MODE_MODULATE4X", CSkyObject::SKY_RENDER_MODE_MODULATE4X); + PyModule_AddIntConstant(poModule, "SHADOW_NONE", CPythonBackground::SHADOW_NONE); + PyModule_AddIntConstant(poModule, "SHADOW_GROUND", CPythonBackground::SHADOW_GROUND); + PyModule_AddIntConstant(poModule, "SHADOW_GROUND_AND_SOLO", CPythonBackground::SHADOW_GROUND_AND_SOLO); + PyModule_AddIntConstant(poModule, "SHADOW_ALL", CPythonBackground::SHADOW_ALL); + PyModule_AddIntConstant(poModule, "SHADOW_ALL_HIGH", CPythonBackground::SHADOW_ALL_HIGH); + PyModule_AddIntConstant(poModule, "SHADOW_ALL_MAX", CPythonBackground::SHADOW_ALL_MAX); + PyModule_AddIntConstant(poModule, "DISTANCE0", CPythonBackground::DISTANCE0); + PyModule_AddIntConstant(poModule, "DISTANCE1", CPythonBackground::DISTANCE1); + PyModule_AddIntConstant(poModule, "DISTANCE2", CPythonBackground::DISTANCE2); + PyModule_AddIntConstant(poModule, "DISTANCE3", CPythonBackground::DISTANCE3); + PyModule_AddIntConstant(poModule, "DISTANCE4", CPythonBackground::DISTANCE4); + PyModule_AddIntConstant(poModule, "DISTANCE_SORT", CMapOutdoor::DISTANCE_SORT); + PyModule_AddIntConstant(poModule, "TEXTURE_SORT", CMapOutdoor::TEXTURE_SORT); +} + +// 40250 UserInterface/PythonChatModule.cpp +void AddStubConstants_chat(PyObject* poModule) +{ + (void) poModule; + PyModule_AddIntConstant(poModule, "CHAT_TYPE_TALKING", CHAT_TYPE_TALKING); + PyModule_AddIntConstant(poModule, "CHAT_TYPE_INFO", CHAT_TYPE_INFO); + PyModule_AddIntConstant(poModule, "CHAT_TYPE_NOTICE", CHAT_TYPE_NOTICE); + PyModule_AddIntConstant(poModule, "CHAT_TYPE_PARTY", CHAT_TYPE_PARTY); + PyModule_AddIntConstant(poModule, "CHAT_TYPE_GUILD", CHAT_TYPE_GUILD); + PyModule_AddIntConstant(poModule, "CHAT_TYPE_COMMAND", CHAT_TYPE_COMMAND); + PyModule_AddIntConstant(poModule, "CHAT_TYPE_SHOUT", CHAT_TYPE_SHOUT); + PyModule_AddIntConstant(poModule, "CHAT_TYPE_WHISPER", CHAT_TYPE_WHISPER); + PyModule_AddIntConstant(poModule, "WHISPER_TYPE_CHAT", CPythonChat::WHISPER_TYPE_CHAT); + PyModule_AddIntConstant(poModule, "WHISPER_TYPE_SYSTEM", CPythonChat::WHISPER_TYPE_SYSTEM); + PyModule_AddIntConstant(poModule, "WHISPER_TYPE_GM", CPythonChat::WHISPER_TYPE_GM); + PyModule_AddIntConstant(poModule, "BOARD_STATE_VIEW", CPythonChat::BOARD_STATE_VIEW); + PyModule_AddIntConstant(poModule, "BOARD_STATE_EDIT", CPythonChat::BOARD_STATE_EDIT); + PyModule_AddIntConstant(poModule, "BOARD_STATE_LOG", CPythonChat::BOARD_STATE_LOG); + PyModule_AddIntConstant(poModule, "CHAT_SET_CHAT_WINDOW", 0); + PyModule_AddIntConstant(poModule, "CHAT_SET_LOG_WINDOW", 1); +} + +// 40250 UserInterface/PythonCharacterModule.cpp +void AddStubConstants_chr(PyObject* poModule) +{ + (void) poModule; + PyModule_AddIntConstant(poModule, "PLAYER_NAME_MAX_LEN", PLAYER_NAME_MAX_LEN); + PyModule_AddIntConstant(poModule, "MOTION_NONE", CRaceMotionData::NAME_NONE); + PyModule_AddIntConstant(poModule, "MOTION_SPAWN", CRaceMotionData::NAME_SPAWN); + PyModule_AddIntConstant(poModule, "MOTION_WAIT", CRaceMotionData::NAME_WAIT); + PyModule_AddIntConstant(poModule, "MOTION_WALK", CRaceMotionData::NAME_WALK); + PyModule_AddIntConstant(poModule, "MOTION_RUN", CRaceMotionData::NAME_RUN); + PyModule_AddIntConstant(poModule, "MOTION_CHANGE_WEAPON", CRaceMotionData::NAME_CHANGE_WEAPON); + PyModule_AddIntConstant(poModule, "MOTION_DAMAGE", CRaceMotionData::NAME_DAMAGE); + PyModule_AddIntConstant(poModule, "MOTION_DAMAGE_FLYING", CRaceMotionData::NAME_DAMAGE_FLYING); + PyModule_AddIntConstant(poModule, "MOTION_STAND_UP", CRaceMotionData::NAME_STAND_UP); + PyModule_AddIntConstant(poModule, "MOTION_DAMAGE_BACK", CRaceMotionData::NAME_DAMAGE_BACK); + PyModule_AddIntConstant(poModule, "MOTION_DAMAGE_FLYING_BACK", CRaceMotionData::NAME_DAMAGE_FLYING_BACK); + PyModule_AddIntConstant(poModule, "MOTION_STAND_UP_BACK", CRaceMotionData::NAME_STAND_UP_BACK); + PyModule_AddIntConstant(poModule, "MOTION_DEAD", CRaceMotionData::NAME_DEAD); + PyModule_AddIntConstant(poModule, "MOTION_DEAD_BACK", CRaceMotionData::NAME_DEAD_BACK); + PyModule_AddIntConstant(poModule, "MOTION_NORMAL_ATTACK", CRaceMotionData::NAME_NORMAL_ATTACK); + PyModule_AddIntConstant(poModule, "MOTION_COMBO_ATTACK_1", CRaceMotionData::NAME_COMBO_ATTACK_1); + PyModule_AddIntConstant(poModule, "MOTION_COMBO_ATTACK_2", CRaceMotionData::NAME_COMBO_ATTACK_2); + PyModule_AddIntConstant(poModule, "MOTION_COMBO_ATTACK_3", CRaceMotionData::NAME_COMBO_ATTACK_3); + PyModule_AddIntConstant(poModule, "MOTION_COMBO_ATTACK_4", CRaceMotionData::NAME_COMBO_ATTACK_4); + PyModule_AddIntConstant(poModule, "MOTION_COMBO_ATTACK_5", CRaceMotionData::NAME_COMBO_ATTACK_5); + PyModule_AddIntConstant(poModule, "MOTION_COMBO_ATTACK_6", CRaceMotionData::NAME_COMBO_ATTACK_6); + PyModule_AddIntConstant(poModule, "MOTION_COMBO_ATTACK_7", CRaceMotionData::NAME_COMBO_ATTACK_7); + PyModule_AddIntConstant(poModule, "MOTION_COMBO_ATTACK_8", CRaceMotionData::NAME_COMBO_ATTACK_8); + PyModule_AddIntConstant(poModule, "MOTION_INTRO_WAIT", CRaceMotionData::NAME_INTRO_WAIT); + PyModule_AddIntConstant(poModule, "MOTION_INTRO_SELECTED", CRaceMotionData::NAME_INTRO_SELECTED); + PyModule_AddIntConstant(poModule, "MOTION_INTRO_NOT_SELECTED", CRaceMotionData::NAME_INTRO_NOT_SELECTED); + PyModule_AddIntConstant(poModule, "MOTION_FISHING_THROW", CRaceMotionData::NAME_FISHING_THROW); + PyModule_AddIntConstant(poModule, "MOTION_FISHING_WAIT", CRaceMotionData::NAME_FISHING_WAIT); + PyModule_AddIntConstant(poModule, "MOTION_FISHING_STOP", CRaceMotionData::NAME_FISHING_STOP); + PyModule_AddIntConstant(poModule, "MOTION_FISHING_REACT", CRaceMotionData::NAME_FISHING_REACT); + PyModule_AddIntConstant(poModule, "MOTION_FISHING_CATCH", CRaceMotionData::NAME_FISHING_CATCH); + PyModule_AddIntConstant(poModule, "MOTION_FISHING_FAIL", CRaceMotionData::NAME_FISHING_FAIL); + PyModule_AddIntConstant(poModule, "MOTION_STOP", CRaceMotionData::NAME_STOP); + PyModule_AddIntConstant(poModule, "MOTION_SKILL", CRaceMotionData::NAME_SKILL); + PyModule_AddIntConstant(poModule, "MOTION_CLAP", CRaceMotionData::NAME_CLAP); + PyModule_AddIntConstant(poModule, "MOTION_DANCE_1", CRaceMotionData::NAME_DANCE_1); + PyModule_AddIntConstant(poModule, "MOTION_DANCE_2", CRaceMotionData::NAME_DANCE_2); + PyModule_AddIntConstant(poModule, "MOTION_DANCE_3", CRaceMotionData::NAME_DANCE_3); + PyModule_AddIntConstant(poModule, "MOTION_DANCE_4", CRaceMotionData::NAME_DANCE_4); + PyModule_AddIntConstant(poModule, "MOTION_DANCE_5", CRaceMotionData::NAME_DANCE_5); + PyModule_AddIntConstant(poModule, "MOTION_DANCE_6", CRaceMotionData::NAME_DANCE_6); + PyModule_AddIntConstant(poModule, "MOTION_CONGRATULATION", CRaceMotionData::NAME_CONGRATULATION); + PyModule_AddIntConstant(poModule, "MOTION_FORGIVE", CRaceMotionData::NAME_FORGIVE); + PyModule_AddIntConstant(poModule, "MOTION_ANGRY", CRaceMotionData::NAME_ANGRY); + PyModule_AddIntConstant(poModule, "MOTION_ATTRACTIVE", CRaceMotionData::NAME_ATTRACTIVE); + PyModule_AddIntConstant(poModule, "MOTION_SAD", CRaceMotionData::NAME_SAD); + PyModule_AddIntConstant(poModule, "MOTION_SHY", CRaceMotionData::NAME_SHY); + PyModule_AddIntConstant(poModule, "MOTION_CHEERUP", CRaceMotionData::NAME_CHEERUP); + PyModule_AddIntConstant(poModule, "MOTION_BANTER", CRaceMotionData::NAME_BANTER); + PyModule_AddIntConstant(poModule, "MOTION_JOY", CRaceMotionData::NAME_JOY); + PyModule_AddIntConstant(poModule, "MOTION_CHEERS_1", CRaceMotionData::NAME_CHEERS_1); + PyModule_AddIntConstant(poModule, "MOTION_CHEERS_2", CRaceMotionData::NAME_CHEERS_2); + PyModule_AddIntConstant(poModule, "MOTION_KISS_WITH_WARRIOR", CRaceMotionData::NAME_KISS_WITH_WARRIOR); + PyModule_AddIntConstant(poModule, "MOTION_KISS_WITH_ASSASSIN", CRaceMotionData::NAME_KISS_WITH_ASSASSIN); + PyModule_AddIntConstant(poModule, "MOTION_KISS_WITH_SURA", CRaceMotionData::NAME_KISS_WITH_SURA); + PyModule_AddIntConstant(poModule, "MOTION_KISS_WITH_SHAMAN", CRaceMotionData::NAME_KISS_WITH_SHAMAN); + PyModule_AddIntConstant(poModule, "MOTION_FRENCH_KISS_WITH_WARRIOR", CRaceMotionData::NAME_FRENCH_KISS_WITH_WARRIOR); + PyModule_AddIntConstant(poModule, "MOTION_FRENCH_KISS_WITH_ASSASSIN", CRaceMotionData::NAME_FRENCH_KISS_WITH_ASSASSIN); + PyModule_AddIntConstant(poModule, "MOTION_FRENCH_KISS_WITH_SURA", CRaceMotionData::NAME_FRENCH_KISS_WITH_SURA); + PyModule_AddIntConstant(poModule, "MOTION_FRENCH_KISS_WITH_SHAMAN", CRaceMotionData::NAME_FRENCH_KISS_WITH_SHAMAN); + PyModule_AddIntConstant(poModule, "MOTION_SLAP_HIT_WITH_WARRIOR", CRaceMotionData::NAME_SLAP_HIT_WITH_WARRIOR); + PyModule_AddIntConstant(poModule, "MOTION_SLAP_HIT_WITH_ASSASSIN", CRaceMotionData::NAME_SLAP_HIT_WITH_ASSASSIN); + PyModule_AddIntConstant(poModule, "MOTION_SLAP_HIT_WITH_SURA", CRaceMotionData::NAME_SLAP_HIT_WITH_SURA); + PyModule_AddIntConstant(poModule, "MOTION_SLAP_HIT_WITH_SHAMAN", CRaceMotionData::NAME_SLAP_HIT_WITH_SHAMAN); + PyModule_AddIntConstant(poModule, "MOTION_SLAP_HURT_WITH_WARRIOR", CRaceMotionData::NAME_SLAP_HURT_WITH_WARRIOR); + PyModule_AddIntConstant(poModule, "MOTION_SLAP_HURT_WITH_ASSASSIN", CRaceMotionData::NAME_SLAP_HURT_WITH_ASSASSIN); + PyModule_AddIntConstant(poModule, "MOTION_SLAP_HURT_WITH_SURA", CRaceMotionData::NAME_SLAP_HURT_WITH_SURA); + PyModule_AddIntConstant(poModule, "MOTION_SLAP_HURT_WITH_SHAMAN", CRaceMotionData::NAME_SLAP_HURT_WITH_SHAMAN); + PyModule_AddIntConstant(poModule, "MOTION_DIG", CRaceMotionData::NAME_DIG); + PyModule_AddIntConstant(poModule, "MOTION_MODE_RESERVED", CRaceMotionData::MODE_RESERVED); + PyModule_AddIntConstant(poModule, "MOTION_MODE_GENERAL", CRaceMotionData::MODE_GENERAL); + PyModule_AddIntConstant(poModule, "MOTION_MODE_ONEHAND_SWORD", CRaceMotionData::MODE_ONEHAND_SWORD); + PyModule_AddIntConstant(poModule, "MOTION_MODE_TWOHAND_SWORD", CRaceMotionData::MODE_TWOHAND_SWORD); + PyModule_AddIntConstant(poModule, "MOTION_MODE_DUALHAND_SWORD", CRaceMotionData::MODE_DUALHAND_SWORD); + PyModule_AddIntConstant(poModule, "MOTION_MODE_BOW", CRaceMotionData::MODE_BOW); + PyModule_AddIntConstant(poModule, "MOTION_MODE_FAN", CRaceMotionData::MODE_FAN); + PyModule_AddIntConstant(poModule, "MOTION_MODE_BELL", CRaceMotionData::MODE_BELL); + PyModule_AddIntConstant(poModule, "MOTION_MODE_FISHING", CRaceMotionData::MODE_FISHING); + PyModule_AddIntConstant(poModule, "MOTION_MODE_HORSE", CRaceMotionData::MODE_HORSE); + PyModule_AddIntConstant(poModule, "MOTION_MODE_HORSE_ONEHAND_SWORD", CRaceMotionData::MODE_HORSE_ONEHAND_SWORD); + PyModule_AddIntConstant(poModule, "MOTION_MODE_HORSE_TWOHAND_SWORD", CRaceMotionData::MODE_HORSE_TWOHAND_SWORD); + PyModule_AddIntConstant(poModule, "MOTION_MODE_HORSE_DUALHAND_SWORD", CRaceMotionData::MODE_HORSE_DUALHAND_SWORD); + PyModule_AddIntConstant(poModule, "MOTION_MODE_HORSE_BOW", CRaceMotionData::MODE_HORSE_BOW); + PyModule_AddIntConstant(poModule, "MOTION_MODE_HORSE_FAN", CRaceMotionData::MODE_HORSE_FAN); + PyModule_AddIntConstant(poModule, "MOTION_MODE_HORSE_BELL", CRaceMotionData::MODE_HORSE_BELL); + PyModule_AddIntConstant(poModule, "MOTION_MODE_WEDDING_DRESS", CRaceMotionData::MODE_WEDDING_DRESS); + PyModule_AddIntConstant(poModule, "DIR_NORTH", CInstanceBase::DIR_NORTH); + PyModule_AddIntConstant(poModule, "DIR_NORTHEAST", CInstanceBase::DIR_NORTHEAST); + PyModule_AddIntConstant(poModule, "DIR_EAST", CInstanceBase::DIR_EAST); + PyModule_AddIntConstant(poModule, "DIR_SOUTHEAST", CInstanceBase::DIR_SOUTHEAST); + PyModule_AddIntConstant(poModule, "DIR_SOUTH", CInstanceBase::DIR_SOUTH); + PyModule_AddIntConstant(poModule, "DIR_SOUTHWEST", CInstanceBase::DIR_SOUTHWEST); + PyModule_AddIntConstant(poModule, "DIR_WEST", CInstanceBase::DIR_WEST); + PyModule_AddIntConstant(poModule, "DIR_NORTHWEST", CInstanceBase::DIR_NORTHWEST); + PyModule_AddIntConstant(poModule, "INSTANCE_TYPE_PLAYER", CActorInstance::TYPE_PC); + PyModule_AddIntConstant(poModule, "INSTANCE_TYPE_NPC", CActorInstance::TYPE_NPC); + PyModule_AddIntConstant(poModule, "INSTANCE_TYPE_ENEMY", CActorInstance::TYPE_ENEMY); + PyModule_AddIntConstant(poModule, "INSTANCE_TYPE_BUILDING", CActorInstance::TYPE_BUILDING); + PyModule_AddIntConstant(poModule, "INSTANCE_TYPE_OBJECT", CActorInstance::TYPE_OBJECT); + PyModule_AddIntConstant(poModule, "PART_WEAPON", CRaceData::PART_WEAPON); + PyModule_AddIntConstant(poModule, "PART_HEAD", CRaceData::PART_HEAD); + PyModule_AddIntConstant(poModule, "PART_WEAPON_LEFT", CRaceData::PART_WEAPON_LEFT); + PyModule_AddIntConstant(poModule, "AFFECT_POISON", CInstanceBase::AFFECT_POISON); + PyModule_AddIntConstant(poModule, "AFFECT_SLOW", CInstanceBase::AFFECT_SLOW); + PyModule_AddIntConstant(poModule, "AFFECT_STUN", CInstanceBase::AFFECT_STUN); + PyModule_AddIntConstant(poModule, "AFFECT_MOV_SPEED_POTION", CInstanceBase::AFFECT_MOV_SPEED_POTION); + PyModule_AddIntConstant(poModule, "AFFECT_ATT_SPEED_POTION", CInstanceBase::AFFECT_ATT_SPEED_POTION); + PyModule_AddIntConstant(poModule, "AFFECT_FISH_MIND", CInstanceBase::AFFECT_FISH_MIND); + PyModule_AddIntConstant(poModule, "AFFECT_JEONGWI", CInstanceBase::AFFECT_JEONGWI); + PyModule_AddIntConstant(poModule, "AFFECT_GEOMGYEONG", CInstanceBase::AFFECT_GEOMGYEONG); + PyModule_AddIntConstant(poModule, "AFFECT_CHEONGEUN", CInstanceBase::AFFECT_CHEONGEUN); + PyModule_AddIntConstant(poModule, "AFFECT_GYEONGGONG", CInstanceBase::AFFECT_GYEONGGONG); + PyModule_AddIntConstant(poModule, "AFFECT_EUNHYEONG", CInstanceBase::AFFECT_EUNHYEONG); + PyModule_AddIntConstant(poModule, "AFFECT_GWIGEOM", CInstanceBase::AFFECT_GWIGEOM); + PyModule_AddIntConstant(poModule, "AFFECT_GONGPO", CInstanceBase::AFFECT_GONGPO); + PyModule_AddIntConstant(poModule, "AFFECT_JUMAGAP", CInstanceBase::AFFECT_JUMAGAP); + PyModule_AddIntConstant(poModule, "AFFECT_HOSIN", CInstanceBase::AFFECT_HOSIN); + PyModule_AddIntConstant(poModule, "AFFECT_BOHO", CInstanceBase::AFFECT_BOHO); + PyModule_AddIntConstant(poModule, "AFFECT_KWAESOK", CInstanceBase::AFFECT_KWAESOK); + PyModule_AddIntConstant(poModule, "AFFECT_HEUKSIN", CInstanceBase::AFFECT_HEUKSIN); + PyModule_AddIntConstant(poModule, "AFFECT_MUYEONG", CInstanceBase::AFFECT_MUYEONG); + PyModule_AddIntConstant(poModule, "AFFECT_GICHEON", CInstanceBase::AFFECT_GICHEON); + PyModule_AddIntConstant(poModule, "AFFECT_JEUNGRYEOK", CInstanceBase::AFFECT_JEUNGRYEOK); + PyModule_AddIntConstant(poModule, "AFFECT_PABEOP", CInstanceBase::AFFECT_PABEOP); + PyModule_AddIntConstant(poModule, "AFFECT_FALLEN_CHEONGEUN", CInstanceBase::AFFECT_FALLEN_CHEONGEUN); + PyModule_AddIntConstant(poModule, "AFFECT_CHINA_FIREWORK", CInstanceBase::AFFECT_CHINA_FIREWORK); + PyModule_AddIntConstant(poModule, "NEW_AFFECT_MALL", CInstanceBase::NEW_AFFECT_MALL); + PyModule_AddIntConstant(poModule, "NEW_AFFECT_NO_DEATH_PENALTY", CInstanceBase::NEW_AFFECT_NO_DEATH_PENALTY); + PyModule_AddIntConstant(poModule, "NEW_AFFECT_SKILL_BOOK_BONUS", CInstanceBase::NEW_AFFECT_SKILL_BOOK_BONUS); + PyModule_AddIntConstant(poModule, "NEW_AFFECT_SKILL_BOOK_NO_DELAY", CInstanceBase::NEW_AFFECT_SKILL_BOOK_NO_DELAY); + PyModule_AddIntConstant(poModule, "NEW_AFFECT_EXP_BONUS", CInstanceBase::NEW_AFFECT_EXP_BONUS); + PyModule_AddIntConstant(poModule, "NEW_AFFECT_EXP_BONUS_EURO_FREE", CInstanceBase::NEW_AFFECT_EXP_BONUS_EURO_FREE); + PyModule_AddIntConstant(poModule, "NEW_AFFECT_EXP_BONUS_EURO_FREE_UNDER_15",CInstanceBase::NEW_AFFECT_EXP_BONUS_EURO_FREE_UNDER_15); + PyModule_AddIntConstant(poModule, "NEW_AFFECT_ITEM_BONUS", CInstanceBase::NEW_AFFECT_ITEM_BONUS); + PyModule_AddIntConstant(poModule, "NEW_AFFECT_SAFEBOX", CInstanceBase::NEW_AFFECT_SAFEBOX); + PyModule_AddIntConstant(poModule, "NEW_AFFECT_AUTOLOOT", CInstanceBase::NEW_AFFECT_AUTOLOOT); + PyModule_AddIntConstant(poModule, "NEW_AFFECT_FISH_MIND", CInstanceBase::NEW_AFFECT_FISH_MIND); + PyModule_AddIntConstant(poModule, "NEW_AFFECT_MARRIAGE_FAST", CInstanceBase::NEW_AFFECT_MARRIAGE_FAST); + PyModule_AddIntConstant(poModule, "NEW_AFFECT_GOLD_BONUS", CInstanceBase::NEW_AFFECT_GOLD_BONUS); + PyModule_AddIntConstant(poModule, "NEW_AFFECT_AUTO_HP_RECOVERY", CInstanceBase::NEW_AFFECT_AUTO_HP_RECOVERY); + PyModule_AddIntConstant(poModule, "NEW_AFFECT_AUTO_SP_RECOVERY", CInstanceBase::NEW_AFFECT_AUTO_SP_RECOVERY); + PyModule_AddIntConstant(poModule, "NEW_AFFECT_DRAGON_SOUL_QUALIFIED", CInstanceBase::NEW_AFFECT_DRAGON_SOUL_QUALIFIED); + PyModule_AddIntConstant(poModule, "NEW_AFFECT_DRAGON_SOUL_DECK1", CInstanceBase::NEW_AFFECT_DRAGON_SOUL_DECK1); + PyModule_AddIntConstant(poModule, "NEW_AFFECT_DRAGON_SOUL_DECK2", CInstanceBase::NEW_AFFECT_DRAGON_SOUL_DECK2); +} + +// 40250 UserInterface/PythonCharacterManagerModule.cpp +void AddStubConstants_chrmgr(PyObject* poModule) +{ + (void) poModule; + PyModule_AddIntConstant(poModule, "NAMECOLOR_MOB", CInstanceBase::NAMECOLOR_NORMAL_MOB); + PyModule_AddIntConstant(poModule, "NAMECOLOR_NPC", CInstanceBase::NAMECOLOR_NORMAL_NPC); + PyModule_AddIntConstant(poModule, "NAMECOLOR_PC", CInstanceBase::NAMECOLOR_NORMAL_PC); + PyModule_AddIntConstant(poModule, "NAMECOLOR_EMPIRE_MOB", CInstanceBase::NAMECOLOR_EMPIRE_MOB); + PyModule_AddIntConstant(poModule, "NAMECOLOR_EMPIRE_NPC", CInstanceBase::NAMECOLOR_EMPIRE_NPC); + PyModule_AddIntConstant(poModule, "NAMECOLOR_EMPIRE_PC", CInstanceBase::NAMECOLOR_EMPIRE_PC); + PyModule_AddIntConstant(poModule, "NAMECOLOR_FUNC", CInstanceBase::NAMECOLOR_FUNC); + PyModule_AddIntConstant(poModule, "NAMECOLOR_PK", CInstanceBase::NAMECOLOR_PK); + PyModule_AddIntConstant(poModule, "NAMECOLOR_PVP", CInstanceBase::NAMECOLOR_PVP); + PyModule_AddIntConstant(poModule, "NAMECOLOR_PARTY", CInstanceBase::NAMECOLOR_PARTY); + PyModule_AddIntConstant(poModule, "NAMECOLOR_WARP", CInstanceBase::NAMECOLOR_WARP); + PyModule_AddIntConstant(poModule, "NAMECOLOR_WAYPOINT", CInstanceBase::NAMECOLOR_WAYPOINT); + PyModule_AddIntConstant(poModule, "NAMECOLOR_EXTRA", CInstanceBase::NAMECOLOR_EXTRA); + PyModule_AddIntConstant(poModule, "EFFECT_SPAWN_DISAPPEAR", CInstanceBase::EFFECT_SPAWN_DISAPPEAR); + PyModule_AddIntConstant(poModule, "EFFECT_SPAWN_APPEAR", CInstanceBase::EFFECT_SPAWN_APPEAR); + PyModule_AddIntConstant(poModule, "EFFECT_DUST", CInstanceBase::EFFECT_DUST); + PyModule_AddIntConstant(poModule, "EFFECT_HORSE_DUST", CInstanceBase::EFFECT_HORSE_DUST); + PyModule_AddIntConstant(poModule, "EFFECT_STUN", CInstanceBase::EFFECT_STUN); + PyModule_AddIntConstant(poModule, "EFFECT_HIT", CInstanceBase::EFFECT_HIT); + PyModule_AddIntConstant(poModule, "EFFECT_FLAME_ATTACK", CInstanceBase::EFFECT_FLAME_ATTACK); + PyModule_AddIntConstant(poModule, "EFFECT_FLAME_HIT", CInstanceBase::EFFECT_FLAME_HIT); + PyModule_AddIntConstant(poModule, "EFFECT_FLAME_ATTACH", CInstanceBase::EFFECT_FLAME_ATTACH); + PyModule_AddIntConstant(poModule, "EFFECT_ELECTRIC_ATTACK", CInstanceBase::EFFECT_ELECTRIC_ATTACK); + PyModule_AddIntConstant(poModule, "EFFECT_ELECTRIC_HIT", CInstanceBase::EFFECT_ELECTRIC_HIT); + PyModule_AddIntConstant(poModule, "EFFECT_ELECTRIC_ATTACH", CInstanceBase::EFFECT_ELECTRIC_ATTACH); + PyModule_AddIntConstant(poModule, "EFFECT_SELECT", CInstanceBase::EFFECT_SELECT); + PyModule_AddIntConstant(poModule, "EFFECT_TARGET", CInstanceBase::EFFECT_TARGET); + PyModule_AddIntConstant(poModule, "EFFECT_CRITICAL", CInstanceBase::EFFECT_CRITICAL); + PyModule_AddIntConstant(poModule, "EFFECT_DAMAGE_TARGET", CInstanceBase::EFFECT_DAMAGE_TARGET); + PyModule_AddIntConstant(poModule, "EFFECT_DAMAGE_NOT_TARGET", CInstanceBase::EFFECT_DAMAGE_NOT_TARGET); + PyModule_AddIntConstant(poModule, "EFFECT_DAMAGE_SELFDAMAGE", CInstanceBase::EFFECT_DAMAGE_SELFDAMAGE); + PyModule_AddIntConstant(poModule, "EFFECT_DAMAGE_SELFDAMAGE2", CInstanceBase::EFFECT_DAMAGE_SELFDAMAGE2); + PyModule_AddIntConstant(poModule, "EFFECT_DAMAGE_POISON", CInstanceBase::EFFECT_DAMAGE_POISON); + PyModule_AddIntConstant(poModule, "EFFECT_DAMAGE_MISS", CInstanceBase::EFFECT_DAMAGE_MISS); + PyModule_AddIntConstant(poModule, "EFFECT_DAMAGE_TARGETMISS", CInstanceBase::EFFECT_DAMAGE_TARGETMISS); + PyModule_AddIntConstant(poModule, "EFFECT_DAMAGE_CRITICAL", CInstanceBase::EFFECT_DAMAGE_CRITICAL); + PyModule_AddIntConstant(poModule, "EFFECT_LEVELUP", CInstanceBase::EFFECT_LEVELUP); + PyModule_AddIntConstant(poModule, "EFFECT_SKILLUP", CInstanceBase::EFFECT_SKILLUP); + PyModule_AddIntConstant(poModule, "EFFECT_HPUP_RED", CInstanceBase::EFFECT_HPUP_RED); + PyModule_AddIntConstant(poModule, "EFFECT_SPUP_BLUE", CInstanceBase::EFFECT_SPUP_BLUE); + PyModule_AddIntConstant(poModule, "EFFECT_SPEEDUP_GREEN", CInstanceBase::EFFECT_SPEEDUP_GREEN); + PyModule_AddIntConstant(poModule, "EFFECT_DXUP_PURPLE", CInstanceBase::EFFECT_DXUP_PURPLE); + PyModule_AddIntConstant(poModule, "EFFECT_PENETRATE", CInstanceBase::EFFECT_PENETRATE); + PyModule_AddIntConstant(poModule, "EFFECT_BLOCK", CInstanceBase::EFFECT_BLOCK); + PyModule_AddIntConstant(poModule, "EFFECT_DODGE", CInstanceBase::EFFECT_DODGE); + PyModule_AddIntConstant(poModule, "EFFECT_FIRECRACKER", CInstanceBase::EFFECT_FIRECRACKER); + PyModule_AddIntConstant(poModule, "EFFECT_SPIN_TOP", CInstanceBase::EFFECT_SPIN_TOP); + PyModule_AddIntConstant(poModule, "EFFECT_WEAPON", CInstanceBase::EFFECT_WEAPON); + PyModule_AddIntConstant(poModule, "EFFECT_AFFECT", CInstanceBase::EFFECT_AFFECT); + PyModule_AddIntConstant(poModule, "EFFECT_EMOTICON", CInstanceBase::EFFECT_EMOTICON); + PyModule_AddIntConstant(poModule, "EFFECT_EMPIRE", CInstanceBase::EFFECT_EMPIRE); + PyModule_AddIntConstant(poModule, "EFFECT_REFINED", CInstanceBase::EFFECT_REFINED); + PyModule_AddIntConstant(poModule, "EFFECT_SUCCESS", CInstanceBase::EFFECT_SUCCESS) ; + PyModule_AddIntConstant(poModule, "EFFECT_FAIL", CInstanceBase::EFFECT_FAIL) ; + PyModule_AddIntConstant(poModule, "EFFECT_FR_SUCCESS", CInstanceBase::EFFECT_FR_SUCCESS) ; + PyModule_AddIntConstant(poModule, "EFFECT_LEVELUP_ON_14_FOR_GERMANY", CInstanceBase::EFFECT_LEVELUP_ON_14_FOR_GERMANY ); //레벨업 14일때 ( 독일전용 ) + PyModule_AddIntConstant(poModule, "EFFECT_LEVELUP_UNDER_15_FOR_GERMANY", CInstanceBase::EFFECT_LEVELUP_UNDER_15_FOR_GERMANY );//레벨업 15일때 ( 독일전용 ) + PyModule_AddIntConstant(poModule, "EFFECT_PERCENT_DAMAGE1", CInstanceBase::EFFECT_PERCENT_DAMAGE1); + PyModule_AddIntConstant(poModule, "EFFECT_PERCENT_DAMAGE2", CInstanceBase::EFFECT_PERCENT_DAMAGE2); + PyModule_AddIntConstant(poModule, "EFFECT_PERCENT_DAMAGE3", CInstanceBase::EFFECT_PERCENT_DAMAGE3); + PyModule_AddIntConstant(poModule, "EFFECT_AUTO_HPUP", CInstanceBase::EFFECT_AUTO_HPUP); + PyModule_AddIntConstant(poModule, "EFFECT_AUTO_SPUP", CInstanceBase::EFFECT_AUTO_SPUP); + PyModule_AddIntConstant(poModule, "EFFECT_RAMADAN_RING_EQUIP", CInstanceBase::EFFECT_RAMADAN_RING_EQUIP); + PyModule_AddIntConstant(poModule, "EFFECT_HALLOWEEN_CANDY_EQUIP", CInstanceBase::EFFECT_HALLOWEEN_CANDY_EQUIP); + PyModule_AddIntConstant(poModule, "EFFECT_HAPPINESS_RING_EQUIP", CInstanceBase::EFFECT_HAPPINESS_RING_EQUIP); + PyModule_AddIntConstant(poModule, "EFFECT_LOVE_PENDANT_EQUIP", CInstanceBase::EFFECT_LOVE_PENDANT_EQUIP); +} + +// 40250 UserInterface/PythonEffectModule.cpp + enum +{ + FLY_NONE, + FLY_EXP, + FLY_HP_MEDIUM, + FLY_HP_BIG, + FLY_SP_SMALL, + FLY_SP_MEDIUM, + FLY_SP_BIG, + FLY_FIREWORK1, + FLY_FIREWORK2, + FLY_FIREWORK3, + FLY_FIREWORK4, + FLY_FIREWORK5, + FLY_FIREWORK6, + FLY_FIREWORK_XMAS, + FLY_CHAIN_LIGHTNING, + FLY_HP_SMALL, + FLY_SKILL_MUYEONG, +}; + +// 40250 UserInterface/PythonEffectModule.cpp +void AddStubConstants_effect(PyObject* poModule) +{ + (void) poModule; + PyModule_AddIntConstant(poModule, "INDEX_FLY_TYPE_NORMAL", CFlyingManager::INDEX_FLY_TYPE_NORMAL); + PyModule_AddIntConstant(poModule, "INDEX_FLY_TYPE_FIRE_CRACKER", CFlyingManager::INDEX_FLY_TYPE_FIRE_CRACKER); + PyModule_AddIntConstant(poModule, "INDEX_FLY_TYPE_AUTO_FIRE", CFlyingManager::INDEX_FLY_TYPE_AUTO_FIRE); + PyModule_AddIntConstant(poModule, "FLY_NONE", FLY_NONE); + PyModule_AddIntConstant(poModule, "FLY_EXP", FLY_EXP); + PyModule_AddIntConstant(poModule, "FLY_HP_MEDIUM", FLY_HP_MEDIUM); + PyModule_AddIntConstant(poModule, "FLY_HP_BIG", FLY_HP_BIG); + PyModule_AddIntConstant(poModule, "FLY_SP_SMALL", FLY_SP_SMALL); + PyModule_AddIntConstant(poModule, "FLY_SP_MEDIUM", FLY_SP_MEDIUM); + PyModule_AddIntConstant(poModule, "FLY_SP_BIG", FLY_SP_BIG); + PyModule_AddIntConstant(poModule, "FLY_FIREWORK1", FLY_FIREWORK1); + PyModule_AddIntConstant(poModule, "FLY_FIREWORK2", FLY_FIREWORK2); + PyModule_AddIntConstant(poModule, "FLY_FIREWORK3", FLY_FIREWORK3); + PyModule_AddIntConstant(poModule, "FLY_FIREWORK4", FLY_FIREWORK4); + PyModule_AddIntConstant(poModule, "FLY_FIREWORK5", FLY_FIREWORK5); + PyModule_AddIntConstant(poModule, "FLY_FIREWORK6", FLY_FIREWORK6); + PyModule_AddIntConstant(poModule, "FLY_FIREWORK_XMAS", FLY_FIREWORK_XMAS); + PyModule_AddIntConstant(poModule, "FLY_CHAIN_LIGHTNING", FLY_CHAIN_LIGHTNING); + PyModule_AddIntConstant(poModule, "FLY_HP_SMALL", FLY_HP_SMALL); + PyModule_AddIntConstant(poModule, "FLY_SKILL_MUYEONG", FLY_SKILL_MUYEONG); +} + +// 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/PythonExchangeModule.cpp +void AddStubConstants_exchange(PyObject* poModule) +{ + (void) poModule; + PyModule_AddIntConstant(poModule, "EXCHANGE_ITEM_MAX_NUM", CPythonExchange::EXCHANGE_ITEM_MAX_NUM); +} + +// 40250 UserInterface/PythonFlyModule.cpp +void AddStubConstants_fly(PyObject* poModule) +{ + (void) poModule; +} + +// 40250 UserInterface/PythonGuild.cpp +void AddStubConstants_guild(PyObject* poModule) +{ + (void) poModule; + PyModule_AddIntConstant(poModule, "AUTH_ADD_MEMBER", GUILD_AUTH_ADD_MEMBER); + PyModule_AddIntConstant(poModule, "AUTH_REMOVE_MEMBER", GUILD_AUTH_REMOVE_MEMBER); + PyModule_AddIntConstant(poModule, "AUTH_NOTICE", GUILD_AUTH_NOTICE); + PyModule_AddIntConstant(poModule, "AUTH_SKILL", GUILD_AUTH_SKILL); + PyModule_AddIntConstant(poModule, "ENEMY_GUILD_SLOT_MAX_COUNT", CPythonGuild::ENEMY_GUILD_SLOT_MAX_COUNT); +} + +// 40250 UserInterface/PythonIMEModule.cpp +void AddStubConstants_ime(PyObject* poModule) +{ + (void) poModule; +} + +// 40250 UserInterface/PythonItemModule.cpp +void AddStubConstants_item(PyObject* poModule) +{ + (void) poModule; + PyModule_AddIntConstant(poModule, "USESOUND_ACCESSORY", CPythonItem::USESOUND_ACCESSORY); + PyModule_AddIntConstant(poModule, "USESOUND_ARMOR", CPythonItem::USESOUND_ARMOR); + PyModule_AddIntConstant(poModule, "USESOUND_BOW", CPythonItem::USESOUND_BOW); + PyModule_AddIntConstant(poModule, "USESOUND_DEFAULT", CPythonItem::USESOUND_DEFAULT); + PyModule_AddIntConstant(poModule, "USESOUND_WEAPON", CPythonItem::USESOUND_WEAPON); + PyModule_AddIntConstant(poModule, "USESOUND_POTION", CPythonItem::USESOUND_POTION); + PyModule_AddIntConstant(poModule, "USESOUND_PORTAL", CPythonItem::USESOUND_PORTAL); + PyModule_AddIntConstant(poModule, "DROPSOUND_ACCESSORY", CPythonItem::DROPSOUND_ACCESSORY); + PyModule_AddIntConstant(poModule, "DROPSOUND_ARMOR", CPythonItem::DROPSOUND_ARMOR); + PyModule_AddIntConstant(poModule, "DROPSOUND_BOW", CPythonItem::DROPSOUND_BOW); + PyModule_AddIntConstant(poModule, "DROPSOUND_DEFAULT", CPythonItem::DROPSOUND_DEFAULT); + PyModule_AddIntConstant(poModule, "DROPSOUND_WEAPON", CPythonItem::DROPSOUND_WEAPON); + PyModule_AddIntConstant(poModule, "EQUIPMENT_COUNT", c_Equipment_Count); + PyModule_AddIntConstant(poModule, "EQUIPMENT_HEAD", c_Equipment_Head); + PyModule_AddIntConstant(poModule, "EQUIPMENT_BODY", c_Equipment_Body); + PyModule_AddIntConstant(poModule, "EQUIPMENT_WEAPON", c_Equipment_Weapon); + PyModule_AddIntConstant(poModule, "EQUIPMENT_WRIST", c_Equipment_Wrist); + PyModule_AddIntConstant(poModule, "EQUIPMENT_SHOES", c_Equipment_Shoes); + PyModule_AddIntConstant(poModule, "EQUIPMENT_NECK", c_Equipment_Neck); + PyModule_AddIntConstant(poModule, "EQUIPMENT_EAR", c_Equipment_Ear); + PyModule_AddIntConstant(poModule, "EQUIPMENT_UNIQUE1", c_Equipment_Unique1); + PyModule_AddIntConstant(poModule, "EQUIPMENT_UNIQUE2", c_Equipment_Unique2); + PyModule_AddIntConstant(poModule, "EQUIPMENT_ARROW", c_Equipment_Arrow); +#ifdef ENABLE_NEW_EQUIPMENT_SYSTEM + PyModule_AddIntConstant(poModule, "EQUIPMENT_RING1", c_Equipment_Ring1); + PyModule_AddIntConstant(poModule, "EQUIPMENT_RING2", c_Equipment_Ring2); + PyModule_AddIntConstant(poModule, "EQUIPMENT_BELT", c_Equipment_Belt); +#endif + PyModule_AddIntConstant(poModule, "ITEM_TYPE_NONE", CItemData::ITEM_TYPE_NONE); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_WEAPON", CItemData::ITEM_TYPE_WEAPON); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_ARMOR", CItemData::ITEM_TYPE_ARMOR); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_USE", CItemData::ITEM_TYPE_USE); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_AUTOUSE", CItemData::ITEM_TYPE_AUTOUSE); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_MATERIAL", CItemData::ITEM_TYPE_MATERIAL); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_SPECIAL", CItemData::ITEM_TYPE_SPECIAL); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_TOOL", CItemData::ITEM_TYPE_TOOL); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_LOTTERY", CItemData::ITEM_TYPE_LOTTERY); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_ELK", CItemData::ITEM_TYPE_ELK); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_METIN", CItemData::ITEM_TYPE_METIN); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_CONTAINER", CItemData::ITEM_TYPE_CONTAINER); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_FISH", CItemData::ITEM_TYPE_FISH); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_ROD", CItemData::ITEM_TYPE_ROD); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_RESOURCE", CItemData::ITEM_TYPE_RESOURCE); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_CAMPFIRE", CItemData::ITEM_TYPE_CAMPFIRE); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_UNIQUE", CItemData::ITEM_TYPE_UNIQUE); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_SKILLBOOK", CItemData::ITEM_TYPE_SKILLBOOK); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_QUEST", CItemData::ITEM_TYPE_QUEST); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_POLYMORPH", CItemData::ITEM_TYPE_POLYMORPH); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_TREASURE_BOX", CItemData::ITEM_TYPE_TREASURE_BOX); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_TREASURE_KEY", CItemData::ITEM_TYPE_TREASURE_KEY); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_PICK", CItemData::ITEM_TYPE_PICK); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_BLEND", CItemData::ITEM_TYPE_BLEND); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_DS", CItemData::ITEM_TYPE_DS); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_SPECIAL_DS", CItemData::ITEM_TYPE_SPECIAL_DS); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_RING", CItemData::ITEM_TYPE_RING); + PyModule_AddIntConstant(poModule, "ITEM_TYPE_BELT", CItemData::ITEM_TYPE_BELT); +#ifdef ENABLE_COSTUME_SYSTEM + PyModule_AddIntConstant(poModule, "ITEM_TYPE_COSTUME", CItemData::ITEM_TYPE_COSTUME); + PyModule_AddIntConstant(poModule, "COSTUME_TYPE_BODY", CItemData::COSTUME_BODY); + PyModule_AddIntConstant(poModule, "COSTUME_TYPE_HAIR", CItemData::COSTUME_HAIR); + PyModule_AddIntConstant(poModule, "COSTUME_SLOT_START", c_Costume_Slot_Start); + PyModule_AddIntConstant(poModule, "COSTUME_SLOT_COUNT", c_Costume_Slot_Count); + PyModule_AddIntConstant(poModule, "COSTUME_SLOT_BODY", c_Costume_Slot_Body); + PyModule_AddIntConstant(poModule, "COSTUME_SLOT_HAIR", c_Costume_Slot_Hair); + PyModule_AddIntConstant(poModule, "COSTUME_SLOT_END", c_Costume_Slot_End); +#endif +#ifdef ENABLE_NEW_EQUIPMENT_SYSTEM + PyModule_AddIntConstant(poModule, "BELT_INVENTORY_SLOT_START", c_Belt_Inventory_Slot_Start); + PyModule_AddIntConstant(poModule, "BELT_INVENTORY_SLOT_COUNT", c_Belt_Inventory_Slot_Count); + PyModule_AddIntConstant(poModule, "BELT_INVENTORY_SLOT_END", c_Belt_Inventory_Slot_End); +#endif + PyModule_AddIntConstant(poModule, "WEAPON_SWORD", CItemData::WEAPON_SWORD); + PyModule_AddIntConstant(poModule, "WEAPON_DAGGER", CItemData::WEAPON_DAGGER); + PyModule_AddIntConstant(poModule, "WEAPON_BOW", CItemData::WEAPON_BOW); + PyModule_AddIntConstant(poModule, "WEAPON_TWO_HANDED", CItemData::WEAPON_TWO_HANDED); + PyModule_AddIntConstant(poModule, "WEAPON_BELL", CItemData::WEAPON_BELL); + PyModule_AddIntConstant(poModule, "WEAPON_FAN", CItemData::WEAPON_FAN); + PyModule_AddIntConstant(poModule, "WEAPON_ARROW", CItemData::WEAPON_ARROW); + PyModule_AddIntConstant(poModule, "WEAPON_NUM_TYPES", CItemData::WEAPON_NUM_TYPES); + PyModule_AddIntConstant(poModule, "USE_POTION", CItemData::USE_POTION); + PyModule_AddIntConstant(poModule, "USE_TALISMAN", CItemData::USE_TALISMAN); + PyModule_AddIntConstant(poModule, "USE_TUNING", CItemData::USE_TUNING); + PyModule_AddIntConstant(poModule, "USE_MOVE", CItemData::USE_MOVE); + PyModule_AddIntConstant(poModule, "USE_TREASURE_BOX", CItemData::USE_TREASURE_BOX); + PyModule_AddIntConstant(poModule, "USE_MONEYBAG", CItemData::USE_MONEYBAG); + PyModule_AddIntConstant(poModule, "USE_BAIT", CItemData::USE_BAIT); + PyModule_AddIntConstant(poModule, "USE_ABILITY_UP", CItemData::USE_ABILITY_UP); + PyModule_AddIntConstant(poModule, "USE_AFFECT", CItemData::USE_AFFECT); + PyModule_AddIntConstant(poModule, "USE_CREATE_STONE", CItemData::USE_CREATE_STONE); + PyModule_AddIntConstant(poModule, "USE_SPECIAL", CItemData::USE_SPECIAL); + PyModule_AddIntConstant(poModule, "USE_POTION_NODELAY", CItemData::USE_POTION_NODELAY); + PyModule_AddIntConstant(poModule, "USE_CLEAR", CItemData::USE_CLEAR); + PyModule_AddIntConstant(poModule, "USE_INVISIBILITY", CItemData::USE_INVISIBILITY); + PyModule_AddIntConstant(poModule, "USE_DETACHMENT", CItemData::USE_DETACHMENT); + PyModule_AddIntConstant(poModule, "USE_TIME_CHARGE_PER", CItemData::USE_TIME_CHARGE_PER); + PyModule_AddIntConstant(poModule, "USE_TIME_CHARGE_FIX", CItemData::USE_TIME_CHARGE_FIX); + PyModule_AddIntConstant(poModule, "MATERIAL_DS_REFINE_NORMAL", CItemData::MATERIAL_DS_REFINE_NORMAL); + PyModule_AddIntConstant(poModule, "MATERIAL_DS_REFINE_BLESSED", CItemData::MATERIAL_DS_REFINE_BLESSED); + PyModule_AddIntConstant(poModule, "MATERIAL_DS_REFINE_HOLLY", CItemData::MATERIAL_DS_REFINE_HOLLY); + PyModule_AddIntConstant(poModule, "METIN_NORMAL", CItemData::METIN_NORMAL); + PyModule_AddIntConstant(poModule, "METIN_GOLD", CItemData::METIN_GOLD); + PyModule_AddIntConstant(poModule, "LIMIT_NONE", CItemData::LIMIT_NONE); + PyModule_AddIntConstant(poModule, "LIMIT_LEVEL", CItemData::LIMIT_LEVEL); + PyModule_AddIntConstant(poModule, "LIMIT_STR", CItemData::LIMIT_STR); + PyModule_AddIntConstant(poModule, "LIMIT_DEX", CItemData::LIMIT_DEX); + PyModule_AddIntConstant(poModule, "LIMIT_INT", CItemData::LIMIT_INT); + PyModule_AddIntConstant(poModule, "LIMIT_CON", CItemData::LIMIT_CON); + PyModule_AddIntConstant(poModule, "LIMIT_PCBANG", CItemData::LIMIT_PCBANG); + PyModule_AddIntConstant(poModule, "LIMIT_REAL_TIME", CItemData::LIMIT_REAL_TIME); + PyModule_AddIntConstant(poModule, "LIMIT_REAL_TIME_START_FIRST_USE", CItemData::LIMIT_REAL_TIME_START_FIRST_USE); + PyModule_AddIntConstant(poModule, "LIMIT_TIMER_BASED_ON_WEAR", CItemData::LIMIT_TIMER_BASED_ON_WEAR); + PyModule_AddIntConstant(poModule, "LIMIT_TYPE_MAX_NUM", CItemData::LIMIT_MAX_NUM); + PyModule_AddIntConstant(poModule, "LIMIT_MAX_NUM", CItemData::ITEM_LIMIT_MAX_NUM); + PyModule_AddIntConstant(poModule, "ITEM_ANTIFLAG_FEMALE", CItemData::ITEM_ANTIFLAG_FEMALE); + PyModule_AddIntConstant(poModule, "ITEM_ANTIFLAG_MALE", CItemData::ITEM_ANTIFLAG_MALE); + PyModule_AddIntConstant(poModule, "ITEM_ANTIFLAG_WARRIOR", CItemData::ITEM_ANTIFLAG_WARRIOR); + PyModule_AddIntConstant(poModule, "ITEM_ANTIFLAG_ASSASSIN", CItemData::ITEM_ANTIFLAG_ASSASSIN); + PyModule_AddIntConstant(poModule, "ITEM_ANTIFLAG_SURA", CItemData::ITEM_ANTIFLAG_SURA); + PyModule_AddIntConstant(poModule, "ITEM_ANTIFLAG_SHAMAN", CItemData::ITEM_ANTIFLAG_SHAMAN); + PyModule_AddIntConstant(poModule, "ITEM_ANTIFLAG_GET", CItemData::ITEM_ANTIFLAG_GET); + PyModule_AddIntConstant(poModule, "ITEM_ANTIFLAG_DROP", CItemData::ITEM_ANTIFLAG_DROP); + PyModule_AddIntConstant(poModule, "ITEM_ANTIFLAG_SELL", CItemData::ITEM_ANTIFLAG_SELL); + PyModule_AddIntConstant(poModule, "ITEM_ANTIFLAG_EMPIRE_A", CItemData::ITEM_ANTIFLAG_EMPIRE_A); + PyModule_AddIntConstant(poModule, "ITEM_ANTIFLAG_EMPIRE_B", CItemData::ITEM_ANTIFLAG_EMPIRE_B); + PyModule_AddIntConstant(poModule, "ITEM_ANTIFLAG_EMPIRE_R", CItemData::ITEM_ANTIFLAG_EMPIRE_R); + PyModule_AddIntConstant(poModule, "ITEM_ANTIFLAG_SAVE", CItemData::ITEM_ANTIFLAG_SAVE); + PyModule_AddIntConstant(poModule, "ITEM_ANTIFLAG_GIVE", CItemData::ITEM_ANTIFLAG_GIVE); + PyModule_AddIntConstant(poModule, "ITEM_ANTIFLAG_PKDROP", CItemData::ITEM_ANTIFLAG_PKDROP); + PyModule_AddIntConstant(poModule, "ITEM_ANTIFLAG_STACK", CItemData::ITEM_ANTIFLAG_STACK); + PyModule_AddIntConstant(poModule, "ITEM_ANTIFLAG_MYSHOP", CItemData::ITEM_ANTIFLAG_MYSHOP); + PyModule_AddIntConstant(poModule, "ITEM_FLAG_RARE", CItemData::ITEM_FLAG_RARE); + PyModule_AddIntConstant(poModule, "ITEM_FLAG_UNIQUE", CItemData::ITEM_FLAG_UNIQUE); + PyModule_AddIntConstant(poModule, "ITEM_FLAG_CONFIRM_WHEN_USE", CItemData::ITEM_FLAG_CONFIRM_WHEN_USE); + PyModule_AddIntConstant(poModule, "ANTIFLAG_FEMALE", CItemData::ITEM_ANTIFLAG_FEMALE); + PyModule_AddIntConstant(poModule, "ANTIFLAG_MALE", CItemData::ITEM_ANTIFLAG_MALE); + PyModule_AddIntConstant(poModule, "ANTIFLAG_WARRIOR", CItemData::ITEM_ANTIFLAG_WARRIOR); + PyModule_AddIntConstant(poModule, "ANTIFLAG_ASSASSIN", CItemData::ITEM_ANTIFLAG_ASSASSIN); + PyModule_AddIntConstant(poModule, "ANTIFLAG_SURA", CItemData::ITEM_ANTIFLAG_SURA); + PyModule_AddIntConstant(poModule, "ANTIFLAG_SHAMAN", CItemData::ITEM_ANTIFLAG_SHAMAN); + PyModule_AddIntConstant(poModule, "ANTIFLAG_GET", CItemData::ITEM_ANTIFLAG_GET); + PyModule_AddIntConstant(poModule, "ANTIFLAG_DROP", CItemData::ITEM_ANTIFLAG_DROP); + PyModule_AddIntConstant(poModule, "ANTIFLAG_SELL", CItemData::ITEM_ANTIFLAG_SELL); + PyModule_AddIntConstant(poModule, "ANTIFLAG_EMPIRE_A", CItemData::ITEM_ANTIFLAG_EMPIRE_A); + PyModule_AddIntConstant(poModule, "ANTIFLAG_EMPIRE_B", CItemData::ITEM_ANTIFLAG_EMPIRE_B); + PyModule_AddIntConstant(poModule, "ANTIFLAG_EMPIRE_R", CItemData::ITEM_ANTIFLAG_EMPIRE_R); + PyModule_AddIntConstant(poModule, "ANTIFLAG_SAVE", CItemData::ITEM_ANTIFLAG_SAVE); + PyModule_AddIntConstant(poModule, "ANTIFLAG_GIVE", CItemData::ITEM_ANTIFLAG_GIVE); + PyModule_AddIntConstant(poModule, "ANTIFLAG_PKDROP", CItemData::ITEM_ANTIFLAG_PKDROP); + PyModule_AddIntConstant(poModule, "ANTIFLAG_STACK", CItemData::ITEM_ANTIFLAG_STACK); + PyModule_AddIntConstant(poModule, "ANTIFLAG_MYSHOP", CItemData::ITEM_ANTIFLAG_MYSHOP); + PyModule_AddIntConstant(poModule, "WEARABLE_BODY", CItemData::WEARABLE_BODY); + PyModule_AddIntConstant(poModule, "WEARABLE_HEAD", CItemData::WEARABLE_HEAD); + PyModule_AddIntConstant(poModule, "WEARABLE_FOOTS", CItemData::WEARABLE_FOOTS); + PyModule_AddIntConstant(poModule, "WEARABLE_WRIST", CItemData::WEARABLE_WRIST); + PyModule_AddIntConstant(poModule, "WEARABLE_WEAPON", CItemData::WEARABLE_WEAPON); + PyModule_AddIntConstant(poModule, "WEARABLE_NECK", CItemData::WEARABLE_NECK); + PyModule_AddIntConstant(poModule, "WEARABLE_EAR", CItemData::WEARABLE_EAR); + PyModule_AddIntConstant(poModule, "WEARABLE_UNIQUE", CItemData::WEARABLE_UNIQUE); + PyModule_AddIntConstant(poModule, "WEARABLE_SHIELD", CItemData::WEARABLE_SHIELD); + PyModule_AddIntConstant(poModule, "WEARABLE_ARROW", CItemData::WEARABLE_ARROW); + PyModule_AddIntConstant(poModule, "ARMOR_BODY", CItemData::ARMOR_BODY); + PyModule_AddIntConstant(poModule, "ARMOR_HEAD", CItemData::ARMOR_HEAD); + PyModule_AddIntConstant(poModule, "ARMOR_SHIELD", CItemData::ARMOR_SHIELD); + PyModule_AddIntConstant(poModule, "ARMOR_WRIST", CItemData::ARMOR_WRIST); + PyModule_AddIntConstant(poModule, "ARMOR_FOOTS", CItemData::ARMOR_FOOTS); + PyModule_AddIntConstant(poModule, "ARMOR_NECK", CItemData::ARMOR_NECK); + PyModule_AddIntConstant(poModule, "ARMOR_EAR", CItemData::ARMOR_EAR); + PyModule_AddIntConstant(poModule, "ITEM_APPLY_MAX_NUM", CItemData::ITEM_APPLY_MAX_NUM); + PyModule_AddIntConstant(poModule, "ITEM_SOCKET_MAX_NUM", CItemData::ITEM_SOCKET_MAX_NUM); + PyModule_AddIntConstant(poModule, "APPLY_NONE", CItemData::APPLY_NONE); + PyModule_AddIntConstant(poModule, "APPLY_STR", CItemData::APPLY_STR); + PyModule_AddIntConstant(poModule, "APPLY_DEX", CItemData::APPLY_DEX); + PyModule_AddIntConstant(poModule, "APPLY_CON", CItemData::APPLY_CON); + PyModule_AddIntConstant(poModule, "APPLY_INT", CItemData::APPLY_INT); + PyModule_AddIntConstant(poModule, "APPLY_MAX_HP", CItemData::APPLY_MAX_HP); + PyModule_AddIntConstant(poModule, "APPLY_MAX_SP", CItemData::APPLY_MAX_SP); + PyModule_AddIntConstant(poModule, "APPLY_HP_REGEN", CItemData::APPLY_HP_REGEN); + PyModule_AddIntConstant(poModule, "APPLY_SP_REGEN", CItemData::APPLY_SP_REGEN); + PyModule_AddIntConstant(poModule, "APPLY_DEF_GRADE_BONUS", CItemData::APPLY_DEF_GRADE_BONUS); + PyModule_AddIntConstant(poModule, "APPLY_ATT_GRADE_BONUS", CItemData::APPLY_ATT_GRADE_BONUS); + PyModule_AddIntConstant(poModule, "APPLY_ATT_SPEED", CItemData::APPLY_ATT_SPEED); + PyModule_AddIntConstant(poModule, "APPLY_MOV_SPEED", CItemData::APPLY_MOV_SPEED); + PyModule_AddIntConstant(poModule, "APPLY_CAST_SPEED", CItemData::APPLY_CAST_SPEED); + PyModule_AddIntConstant(poModule, "APPLY_MAGIC_ATT_GRADE", CItemData::APPLY_MAGIC_ATT_GRADE); + PyModule_AddIntConstant(poModule, "APPLY_MAGIC_DEF_GRADE", CItemData::APPLY_MAGIC_DEF_GRADE); + PyModule_AddIntConstant(poModule, "APPLY_SKILL", CItemData::APPLY_SKILL); + PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_ANIMAL", CItemData::APPLY_ATTBONUS_ANIMAL); + PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_UNDEAD", CItemData::APPLY_ATTBONUS_UNDEAD); + PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_DEVIL", CItemData::APPLY_ATTBONUS_DEVIL); + PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_HUMAN", CItemData::APPLY_ATTBONUS_HUMAN); + PyModule_AddIntConstant(poModule, "APPLY_BOW_DISTANCE", CItemData::APPLY_BOW_DISTANCE); + PyModule_AddIntConstant(poModule, "APPLY_RESIST_BOW", CItemData::APPLY_RESIST_BOW); + PyModule_AddIntConstant(poModule, "APPLY_RESIST_FIRE", CItemData::APPLY_RESIST_FIRE); + PyModule_AddIntConstant(poModule, "APPLY_RESIST_ELEC", CItemData::APPLY_RESIST_ELEC); + PyModule_AddIntConstant(poModule, "APPLY_RESIST_MAGIC", CItemData::APPLY_RESIST_MAGIC); + PyModule_AddIntConstant(poModule, "APPLY_POISON_PCT", CItemData::APPLY_POISON_PCT); + PyModule_AddIntConstant(poModule, "APPLY_SLOW_PCT", CItemData::APPLY_SLOW_PCT); + PyModule_AddIntConstant(poModule, "APPLY_STUN_PCT", CItemData::APPLY_STUN_PCT); + PyModule_AddIntConstant(poModule, "APPLY_CRITICAL_PCT", CItemData::APPLY_CRITICAL_PCT); // n% 확률로 두배 타격 + PyModule_AddIntConstant(poModule, "APPLY_PENETRATE_PCT", CItemData::APPLY_PENETRATE_PCT); // n% 확률로 적의 방어력 무시 + PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_ORC", CItemData::APPLY_ATTBONUS_ORC); // 웅귀에게 n% 추가 데미지 + PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_MILGYO", CItemData::APPLY_ATTBONUS_MILGYO); // 밀교에게 n% 추가 데미지 + PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_UNDEAD", CItemData::APPLY_ATTBONUS_UNDEAD); // 시체에게 n% 추가 데미지 + PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_DEVIL", CItemData::APPLY_ATTBONUS_DEVIL); // 악마에게 n% 추가 데미지 + PyModule_AddIntConstant(poModule, "APPLY_STEAL_HP", CItemData::APPLY_STEAL_HP); // n% 확률로 타격의 10% 를 생명력으로 흡수 + PyModule_AddIntConstant(poModule, "APPLY_STEAL_SP", CItemData::APPLY_STEAL_SP); // n% 확률로 타격의 10% 를 정신력으로 흡수 + PyModule_AddIntConstant(poModule, "APPLY_MANA_BURN_PCT", CItemData::APPLY_MANA_BURN_PCT); // n% 확률로 상대의 마나를 깎는다 + PyModule_AddIntConstant(poModule, "APPLY_DAMAGE_SP_RECOVER", CItemData::APPLY_DAMAGE_SP_RECOVER); // n% 확률로 정신력 2 회복 + PyModule_AddIntConstant(poModule, "APPLY_BLOCK", CItemData::APPLY_BLOCK); // n% 확률로 물리공격 완벽 방어 + PyModule_AddIntConstant(poModule, "APPLY_DODGE", CItemData::APPLY_DODGE); // n% 확률로 물리공격 완벽 회피 + PyModule_AddIntConstant(poModule, "APPLY_RESIST_SWORD", CItemData::APPLY_RESIST_SWORD); // 한손검에 의한 피해를 n% 감소 + PyModule_AddIntConstant(poModule, "APPLY_RESIST_TWOHAND", CItemData::APPLY_RESIST_TWOHAND); // 양손검에 의한 피해를 n% 감소 + PyModule_AddIntConstant(poModule, "APPLY_RESIST_DAGGER", CItemData::APPLY_RESIST_DAGGER); // 단도에 의한 피해를 n% 감소 + PyModule_AddIntConstant(poModule, "APPLY_RESIST_BELL", CItemData::APPLY_RESIST_BELL); // 방울에 의한 피해를 n% 감소 + PyModule_AddIntConstant(poModule, "APPLY_RESIST_FAN", CItemData::APPLY_RESIST_FAN); // 부채에 의한 피해를 n% 감소 + PyModule_AddIntConstant(poModule, "APPLY_RESIST_WIND", CItemData::APPLY_RESIST_WIND); // 바람에 의한 피해를 n% 감소 + PyModule_AddIntConstant(poModule, "APPLY_REFLECT_MELEE", CItemData::APPLY_REFLECT_MELEE); // 근접 타격 n% 를 적에게 되돌린다 + PyModule_AddIntConstant(poModule, "APPLY_REFLECT_CURSE", CItemData::APPLY_REFLECT_CURSE); // 적이 나에게 저주 사용시 n% 확률로 되돌린다 + PyModule_AddIntConstant(poModule, "APPLY_POISON_REDUCE", CItemData::APPLY_POISON_REDUCE); // 독에 의한 데미지 감소 + PyModule_AddIntConstant(poModule, "APPLY_KILL_SP_RECOVER", CItemData::APPLY_KILL_SP_RECOVER); // 적을 죽였을때 n% 확률로 정신력 10 회복 + PyModule_AddIntConstant(poModule, "APPLY_EXP_DOUBLE_BONUS", CItemData::APPLY_EXP_DOUBLE_BONUS); // n% 확률로 경험치 획득량 2배 + PyModule_AddIntConstant(poModule, "APPLY_GOLD_DOUBLE_BONUS", CItemData::APPLY_GOLD_DOUBLE_BONUS); // n% 확률로 돈 획득량 2배 + PyModule_AddIntConstant(poModule, "APPLY_ITEM_DROP_BONUS", CItemData::APPLY_ITEM_DROP_BONUS); // n% 확률로 아이템 획득량 2배 + PyModule_AddIntConstant(poModule, "APPLY_POTION_BONUS", CItemData::APPLY_POTION_BONUS); // 물약 복용시 n% 만큼 성능 증대 + PyModule_AddIntConstant(poModule, "APPLY_KILL_HP_RECOVER", CItemData::APPLY_KILL_HP_RECOVER); // 죽일때마다 생명력 회복 + PyModule_AddIntConstant(poModule, "APPLY_IMMUNE_STUN", CItemData::APPLY_IMMUNE_STUN); // 기절 하지 않는다 + PyModule_AddIntConstant(poModule, "APPLY_IMMUNE_SLOW", CItemData::APPLY_IMMUNE_SLOW); // 느려지지 않는다 + PyModule_AddIntConstant(poModule, "APPLY_IMMUNE_FALL", CItemData::APPLY_IMMUNE_FALL); // 넘어지지 않는다 + PyModule_AddIntConstant(poModule, "APPLY_MAX_STAMINA", CItemData::APPLY_MAX_STAMINA); // 최대 스테미너 증가 + PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_WARRIOR", CItemData::APPLY_ATT_BONUS_TO_WARRIOR); + PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_ASSASSIN", CItemData::APPLY_ATT_BONUS_TO_ASSASSIN); + PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_SURA", CItemData::APPLY_ATT_BONUS_TO_SURA); + PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_SHAMAN", CItemData::APPLY_ATT_BONUS_TO_SHAMAN); + PyModule_AddIntConstant(poModule, "APPLY_ATTBONUS_MONSTER", CItemData::APPLY_ATT_BONUS_TO_MONSTER); + PyModule_AddIntConstant(poModule, "APPLY_MALL_ATTBONUS", CItemData::APPLY_MALL_ATTBONUS); + PyModule_AddIntConstant(poModule, "APPLY_MALL_DEFBONUS", CItemData::APPLY_MALL_DEFBONUS); + PyModule_AddIntConstant(poModule, "APPLY_MALL_EXPBONUS", CItemData::APPLY_MALL_EXPBONUS); + PyModule_AddIntConstant(poModule, "APPLY_MALL_ITEMBONUS", CItemData::APPLY_MALL_ITEMBONUS); + PyModule_AddIntConstant(poModule, "APPLY_MALL_GOLDBONUS", CItemData::APPLY_MALL_GOLDBONUS); + PyModule_AddIntConstant(poModule, "APPLY_MAX_HP_PCT", CItemData::APPLY_MAX_HP_PCT); + PyModule_AddIntConstant(poModule, "APPLY_MAX_SP_PCT", CItemData::APPLY_MAX_SP_PCT); + PyModule_AddIntConstant(poModule, "APPLY_SKILL_DAMAGE_BONUS", CItemData::APPLY_SKILL_DAMAGE_BONUS); + PyModule_AddIntConstant(poModule, "APPLY_NORMAL_HIT_DAMAGE_BONUS", CItemData::APPLY_NORMAL_HIT_DAMAGE_BONUS); + PyModule_AddIntConstant(poModule, "APPLY_SKILL_DEFEND_BONUS", CItemData::APPLY_SKILL_DEFEND_BONUS); + PyModule_AddIntConstant(poModule, "APPLY_NORMAL_HIT_DEFEND_BONUS", CItemData::APPLY_NORMAL_HIT_DEFEND_BONUS); + PyModule_AddIntConstant(poModule, "APPLY_PC_BANG_EXP_BONUS", CItemData::APPLY_PC_BANG_EXP_BONUS); + PyModule_AddIntConstant(poModule, "APPLY_PC_BANG_DROP_BONUS", CItemData::APPLY_PC_BANG_DROP_BONUS); + PyModule_AddIntConstant(poModule, "APPLY_RESIST_WARRIOR", CItemData::APPLY_RESIST_WARRIOR ); + PyModule_AddIntConstant(poModule, "APPLY_RESIST_ASSASSIN", CItemData::APPLY_RESIST_ASSASSIN ); + PyModule_AddIntConstant(poModule, "APPLY_RESIST_SURA", CItemData::APPLY_RESIST_SURA ); + PyModule_AddIntConstant(poModule, "APPLY_RESIST_SHAMAN", CItemData::APPLY_RESIST_SHAMAN ); + PyModule_AddIntConstant(poModule, "APPLY_ENERGY", CItemData::APPLY_ENERGY ); // 기력 + PyModule_AddIntConstant(poModule, "APPLY_COSTUME_ATTR_BONUS", CItemData::APPLY_COSTUME_ATTR_BONUS ); + PyModule_AddIntConstant(poModule, "APPLY_MAGIC_ATTBONUS_PER", CItemData::APPLY_MAGIC_ATTBONUS_PER ); + PyModule_AddIntConstant(poModule, "APPLY_MELEE_MAGIC_ATTBONUS_PER", CItemData::APPLY_MELEE_MAGIC_ATTBONUS_PER ); + PyModule_AddIntConstant(poModule, "APPLY_RESIST_ICE", CItemData::APPLY_RESIST_ICE ); + PyModule_AddIntConstant(poModule, "APPLY_RESIST_EARTH", CItemData::APPLY_RESIST_EARTH ); + PyModule_AddIntConstant(poModule, "APPLY_RESIST_DARK", CItemData::APPLY_RESIST_DARK ); + PyModule_AddIntConstant(poModule, "APPLY_ANTI_CRITICAL_PCT", CItemData::APPLY_ANTI_CRITICAL_PCT ); + PyModule_AddIntConstant(poModule, "APPLY_ANTI_PENETRATE_PCT", CItemData::APPLY_ANTI_PENETRATE_PCT ); +} + +// 40250 UserInterface/PythonMessenger.cpp +void AddStubConstants_messenger(PyObject* poModule) +{ + (void) poModule; +} + +// 40250 UserInterface/PythonMiniMapModule.cpp +void AddStubConstants_miniMap(PyObject* poModule) +{ + (void) poModule; + PyModule_AddIntConstant(poModule, "TYPE_OPC", CPythonMiniMap::TYPE_OPC); + PyModule_AddIntConstant(poModule, "TYPE_OPCPVP", CPythonMiniMap::TYPE_OPCPVP); + PyModule_AddIntConstant(poModule, "TYPE_OPCPVPSELF", CPythonMiniMap::TYPE_OPCPVPSELF); + PyModule_AddIntConstant(poModule, "TYPE_NPC", CPythonMiniMap::TYPE_NPC); + PyModule_AddIntConstant(poModule, "TYPE_MONSTER", CPythonMiniMap::TYPE_MONSTER); + PyModule_AddIntConstant(poModule, "TYPE_WARP", CPythonMiniMap::TYPE_WARP); + PyModule_AddIntConstant(poModule, "TYPE_WAYPOINT", CPythonMiniMap::TYPE_WAYPOINT); + PyModule_AddIntConstant(poModule, "TYPE_PARTY", CPythonMiniMap::TYPE_PARTY); + PyModule_AddIntConstant(poModule, "TYPE_EMPIRE", CPythonMiniMap::TYPE_EMPIRE); +} + +// 40250 UserInterface/PythonNonPlayerModule.cpp +void AddStubConstants_nonplayer(PyObject* poModule) +{ + (void) poModule; + PyModule_AddIntConstant(poModule, "ON_CLICK_EVENT_NONE", CPythonNonPlayer::ON_CLICK_EVENT_NONE); + PyModule_AddIntConstant(poModule, "ON_CLICK_EVENT_BATTLE", CPythonNonPlayer::ON_CLICK_EVENT_BATTLE); + PyModule_AddIntConstant(poModule, "ON_CLICK_EVENT_SHOP", CPythonNonPlayer::ON_CLICK_EVENT_SHOP); + PyModule_AddIntConstant(poModule, "ON_CLICK_EVENT_TALK", CPythonNonPlayer::ON_CLICK_EVENT_TALK); + PyModule_AddIntConstant(poModule, "ON_CLICK_EVENT_VEHICLE", CPythonNonPlayer::ON_CLICK_EVENT_VEHICLE); + PyModule_AddIntConstant(poModule, "PAWN", 0); + PyModule_AddIntConstant(poModule, "S_PAWN", 1); + PyModule_AddIntConstant(poModule, "KNIGHT", 2); + PyModule_AddIntConstant(poModule, "S_KNIGHT", 3); + PyModule_AddIntConstant(poModule, "BOSS", 4); + PyModule_AddIntConstant(poModule, "KING", 5); +} + +// 40250 UserInterface/PythonPlayerModule.cpp +extern const DWORD c_iSkillIndex_Tongsol = 121; +extern const DWORD c_iSkillIndex_Combo = 122; +extern const DWORD c_iSkillIndex_Fishing = 123; +extern const DWORD c_iSkillIndex_Mining = 124; +extern const DWORD c_iSkillIndex_Making = 125; +extern const DWORD c_iSkillIndex_Language1 = 126; +extern const DWORD c_iSkillIndex_Language2 = 127; +extern const DWORD c_iSkillIndex_Language3 = 128; +extern const DWORD c_iSkillIndex_Polymorph = 129; +extern const DWORD c_iSkillIndex_Riding = 130; +extern const DWORD c_iSkillIndex_Summon = 131; +enum +{ + EMOTION_CLAP = 1, + EMOTION_CHEERS_1, + EMOTION_CHEERS_2, + EMOTION_DANCE_1, + EMOTION_DANCE_2, + EMOTION_DANCE_3, + EMOTION_DANCE_4, + EMOTION_DANCE_5, + EMOTION_DANCE_6, // 강남스타일 + EMOTION_CONGRATULATION, + EMOTION_FORGIVE, + EMOTION_ANGRY, + + EMOTION_ATTRACTIVE, + EMOTION_SAD, + EMOTION_SHY, + EMOTION_CHEERUP, + EMOTION_BANTER, + EMOTION_JOY, + + EMOTION_KISS = 51, + EMOTION_FRENCH_KISS, + EMOTION_SLAP, + +}; + +enum +{ + REFINE_SCROLL_TYPE_MAKE_SOCKET = 1, + REFINE_SCROLL_TYPE_UP_GRADE = 2, +}; + +enum +{ + REFINE_CANT, + REFINE_OK, + REFINE_ALREADY_MAX_SOCKET_COUNT, + REFINE_NEED_MORE_GOOD_SCROLL, + REFINE_CANT_MAKE_SOCKET_ITEM, + REFINE_NOT_NEXT_GRADE_ITEM, + REFINE_CANT_REFINE_METIN_TO_EQUIPMENT, + REFINE_CANT_REFINE_ROD, +}; + +enum +{ + ATTACH_METIN_CANT, + ATTACH_METIN_OK, + ATTACH_METIN_NOT_MATCHABLE_ITEM, + ATTACH_METIN_NO_MATCHABLE_SOCKET, + ATTACH_METIN_NOT_EXIST_GOLD_SOCKET, + ATTACH_METIN_CANT_ATTACH_TO_EQUIPMENT, +}; + +enum +{ + DETACH_METIN_CANT, + DETACH_METIN_OK, +}; + +// 40250 UserInterface/PythonPlayerModule.cpp +void AddStubConstants_player(PyObject* poModule) +{ + (void) poModule; + PyModule_AddIntConstant(poModule, "LEVEL", POINT_LEVEL); + PyModule_AddIntConstant(poModule, "VOICE", POINT_VOICE); + PyModule_AddIntConstant(poModule, "EXP", POINT_EXP); + PyModule_AddIntConstant(poModule, "NEXT_EXP", POINT_NEXT_EXP); + PyModule_AddIntConstant(poModule, "HP", POINT_HP); + PyModule_AddIntConstant(poModule, "MAX_HP", POINT_MAX_HP); + PyModule_AddIntConstant(poModule, "SP", POINT_SP); + PyModule_AddIntConstant(poModule, "MAX_SP", POINT_MAX_SP); + PyModule_AddIntConstant(poModule, "STAMINA", POINT_STAMINA); + PyModule_AddIntConstant(poModule, "MAX_STAMINA", POINT_MAX_STAMINA); + PyModule_AddIntConstant(poModule, "ELK", POINT_GOLD); + PyModule_AddIntConstant(poModule, "ST", POINT_ST); + PyModule_AddIntConstant(poModule, "HT", POINT_HT); + PyModule_AddIntConstant(poModule, "DX", POINT_DX); + PyModule_AddIntConstant(poModule, "IQ", POINT_IQ); + PyModule_AddIntConstant(poModule, "ATT_POWER", POINT_ATT_POWER); + PyModule_AddIntConstant(poModule, "ATT_MIN", POINT_MIN_ATK); + PyModule_AddIntConstant(poModule, "ATT_MAX", POINT_MAX_ATK); + PyModule_AddIntConstant(poModule, "MIN_MAGIC_WEP", POINT_MIN_MAGIC_WEP); + PyModule_AddIntConstant(poModule, "MAX_MAGIC_WEP", POINT_MAX_MAGIC_WEP); + PyModule_AddIntConstant(poModule, "ATT_SPEED", POINT_ATT_SPEED); + PyModule_AddIntConstant(poModule, "ATT_BONUS", POINT_ATT_GRADE_BONUS); + PyModule_AddIntConstant(poModule, "EVADE_RATE", POINT_EVADE_RATE); + PyModule_AddIntConstant(poModule, "MOVING_SPEED", POINT_MOV_SPEED); + PyModule_AddIntConstant(poModule, "DEF_GRADE", POINT_DEF_GRADE); + PyModule_AddIntConstant(poModule, "DEF_BONUS", POINT_DEF_GRADE_BONUS); + PyModule_AddIntConstant(poModule, "CASTING_SPEED", POINT_CASTING_SPEED); + PyModule_AddIntConstant(poModule, "MAG_ATT", POINT_MAGIC_ATT_GRADE); + PyModule_AddIntConstant(poModule, "MAG_DEF", POINT_MAGIC_DEF_GRADE); + PyModule_AddIntConstant(poModule, "EMPIRE_POINT", POINT_EMPIRE_POINT); + PyModule_AddIntConstant(poModule, "STAT", POINT_STAT); + PyModule_AddIntConstant(poModule, "SKILL_PASSIVE", POINT_SUB_SKILL); + PyModule_AddIntConstant(poModule, "SKILL_SUPPORT", POINT_SUB_SKILL); + PyModule_AddIntConstant(poModule, "SKILL_ACTIVE", POINT_SKILL); + PyModule_AddIntConstant(poModule, "SKILL_HORSE", POINT_HORSE_SKILL); + PyModule_AddIntConstant(poModule, "PLAYTIME", POINT_PLAYTIME); + PyModule_AddIntConstant(poModule, "BOW_DISTANCE", POINT_BOW_DISTANCE); + PyModule_AddIntConstant(poModule, "HP_RECOVERY", POINT_HP_RECOVERY); + PyModule_AddIntConstant(poModule, "SP_RECOVERY", POINT_SP_RECOVERY); + PyModule_AddIntConstant(poModule, "ATTACKER_BONUS", POINT_PARTY_ATT_GRADE); + PyModule_AddIntConstant(poModule, "MAX_NUM", POINT_MAX_NUM); + PyModule_AddIntConstant(poModule, "POINT_CRITICAL_PCT", POINT_CRITICAL_PCT); + PyModule_AddIntConstant(poModule, "POINT_PENETRATE_PCT", POINT_PENETRATE_PCT); + PyModule_AddIntConstant(poModule, "POINT_MALL_ATTBONUS", POINT_MALL_ATTBONUS); + PyModule_AddIntConstant(poModule, "POINT_MALL_DEFBONUS", POINT_MALL_DEFBONUS); + PyModule_AddIntConstant(poModule, "POINT_MALL_EXPBONUS", POINT_MALL_EXPBONUS); + PyModule_AddIntConstant(poModule, "POINT_MALL_ITEMBONUS", POINT_MALL_ITEMBONUS); + PyModule_AddIntConstant(poModule, "POINT_MALL_GOLDBONUS", POINT_MALL_GOLDBONUS); + PyModule_AddIntConstant(poModule, "POINT_MAX_HP_PCT", POINT_MAX_HP_PCT); + PyModule_AddIntConstant(poModule, "POINT_MAX_SP_PCT", POINT_MAX_SP_PCT); + PyModule_AddIntConstant(poModule, "POINT_SKILL_DAMAGE_BONUS", POINT_SKILL_DAMAGE_BONUS); + PyModule_AddIntConstant(poModule, "POINT_NORMAL_HIT_DAMAGE_BONUS", POINT_NORMAL_HIT_DAMAGE_BONUS); + PyModule_AddIntConstant(poModule, "POINT_SKILL_DEFEND_BONUS", POINT_SKILL_DEFEND_BONUS); + PyModule_AddIntConstant(poModule, "POINT_NORMAL_HIT_DEFEND_BONUS", POINT_NORMAL_HIT_DEFEND_BONUS); + PyModule_AddIntConstant(poModule, "POINT_PC_BANG_EXP_BONUS", POINT_PC_BANG_EXP_BONUS); + PyModule_AddIntConstant(poModule, "POINT_PC_BANG_DROP_BONUS", POINT_PC_BANG_DROP_BONUS); + PyModule_AddIntConstant(poModule, "ENERGY", POINT_ENERGY); + PyModule_AddIntConstant(poModule, "ENERGY_END_TIME", POINT_ENERGY_END_TIME); + PyModule_AddIntConstant(poModule, "SKILL_GRADE_NORMAL", CPythonPlayer::SKILL_NORMAL); + PyModule_AddIntConstant(poModule, "SKILL_GRADE_MASTER", CPythonPlayer::SKILL_MASTER); + PyModule_AddIntConstant(poModule, "SKILL_GRADE_GRAND_MASTER", CPythonPlayer::SKILL_GRAND_MASTER); + PyModule_AddIntConstant(poModule, "SKILL_GRADE_PERFECT_MASTER", CPythonPlayer::SKILL_PERFECT_MASTER); + PyModule_AddIntConstant(poModule, "CATEGORY_ACTIVE", CPythonPlayer::CATEGORY_ACTIVE); + PyModule_AddIntConstant(poModule, "CATEGORY_PASSIVE", CPythonPlayer::CATEGORY_PASSIVE); + PyModule_AddIntConstant(poModule, "INVENTORY_PAGE_SIZE", c_Inventory_Page_Size); + PyModule_AddIntConstant(poModule, "INVENTORY_PAGE_COUNT", c_Inventory_Page_Count); + PyModule_AddIntConstant(poModule, "INVENTORY_SLOT_COUNT", c_Inventory_Count); + PyModule_AddIntConstant(poModule, "EQUIPMENT_SLOT_START", c_Equipment_Start); + PyModule_AddIntConstant(poModule, "EQUIPMENT_PAGE_COUNT", c_Equipment_Count); +#ifdef ENABLE_NEW_EQUIPMENT_SYSTEM + PyModule_AddIntConstant(poModule, "NEW_EQUIPMENT_SLOT_START", c_New_Equipment_Start); + PyModule_AddIntConstant(poModule, "NEW_EQUIPMENT_SLOT_COUNT", c_New_Equipment_Count); +#endif + PyModule_AddIntConstant(poModule, "MBF_SKILL", CPythonPlayer::MBF_SKILL); + PyModule_AddIntConstant(poModule, "MBF_ATTACK", CPythonPlayer::MBF_ATTACK); + PyModule_AddIntConstant(poModule, "MBF_CAMERA", CPythonPlayer::MBF_CAMERA); + PyModule_AddIntConstant(poModule, "MBF_SMART", CPythonPlayer::MBF_SMART); + PyModule_AddIntConstant(poModule, "MBF_MOVE", CPythonPlayer::MBF_MOVE); + PyModule_AddIntConstant(poModule, "MBF_AUTO", CPythonPlayer::MBF_AUTO); + PyModule_AddIntConstant(poModule, "MBS_PRESS", CPythonPlayer::MBS_PRESS); + PyModule_AddIntConstant(poModule, "MBS_CLICK", CPythonPlayer::MBS_CLICK); + PyModule_AddIntConstant(poModule, "MBT_RIGHT", CPythonPlayer::MBT_RIGHT); + PyModule_AddIntConstant(poModule, "MBT_LEFT", CPythonPlayer::MBT_LEFT); + PyModule_AddIntConstant(poModule, "SLOT_TYPE_NONE", SLOT_TYPE_NONE); + PyModule_AddIntConstant(poModule, "SLOT_TYPE_INVENTORY", SLOT_TYPE_INVENTORY); + PyModule_AddIntConstant(poModule, "SLOT_TYPE_SKILL", SLOT_TYPE_SKILL); + PyModule_AddIntConstant(poModule, "SLOT_TYPE_SHOP", SLOT_TYPE_SHOP); + PyModule_AddIntConstant(poModule, "SLOT_TYPE_EXCHANGE_OWNER", SLOT_TYPE_EXCHANGE_OWNER); + PyModule_AddIntConstant(poModule, "SLOT_TYPE_EXCHANGE_TARGET", SLOT_TYPE_EXCHANGE_TARGET); + PyModule_AddIntConstant(poModule, "SLOT_TYPE_QUICK_SLOT", SLOT_TYPE_QUICK_SLOT); + PyModule_AddIntConstant(poModule, "SLOT_TYPE_SAFEBOX", SLOT_TYPE_SAFEBOX); + PyModule_AddIntConstant(poModule, "SLOT_TYPE_PRIVATE_SHOP", SLOT_TYPE_PRIVATE_SHOP); + PyModule_AddIntConstant(poModule, "SLOT_TYPE_MALL", SLOT_TYPE_MALL); + PyModule_AddIntConstant(poModule, "SLOT_TYPE_EMOTION", SLOT_TYPE_EMOTION); + PyModule_AddIntConstant(poModule, "SLOT_TYPE_DRAGON_SOUL_INVENTORY", SLOT_TYPE_DRAGON_SOUL_INVENTORY); + PyModule_AddIntConstant(poModule, "RESERVED_WINDOW", RESERVED_WINDOW); + PyModule_AddIntConstant(poModule, "INVENTORY", INVENTORY); + PyModule_AddIntConstant(poModule, "EQUIPMENT", EQUIPMENT); + PyModule_AddIntConstant(poModule, "SAFEBOX", SAFEBOX); + PyModule_AddIntConstant(poModule, "MALL", MALL); + PyModule_AddIntConstant(poModule, "DRAGON_SOUL_INVENTORY", DRAGON_SOUL_INVENTORY); + PyModule_AddIntConstant(poModule, "GROUND", GROUND); + PyModule_AddIntConstant(poModule, "ITEM_MONEY", -1); + PyModule_AddIntConstant(poModule, "SKILL_SLOT_COUNT", SKILL_MAX_NUM); + PyModule_AddIntConstant(poModule, "EFFECT_PICK", CPythonPlayer::EFFECT_PICK); + PyModule_AddIntConstant(poModule, "METIN_SOCKET_TYPE_NONE", CPythonPlayer::METIN_SOCKET_TYPE_NONE); + PyModule_AddIntConstant(poModule, "METIN_SOCKET_TYPE_SILVER", CPythonPlayer::METIN_SOCKET_TYPE_SILVER); + PyModule_AddIntConstant(poModule, "METIN_SOCKET_TYPE_GOLD", CPythonPlayer::METIN_SOCKET_TYPE_GOLD); + PyModule_AddIntConstant(poModule, "METIN_SOCKET_MAX_NUM", ITEM_SOCKET_SLOT_MAX_NUM); + PyModule_AddIntConstant(poModule, "ATTRIBUTE_SLOT_MAX_NUM", ITEM_ATTRIBUTE_SLOT_MAX_NUM); + PyModule_AddIntConstant(poModule, "REFINE_CANT", REFINE_CANT); + PyModule_AddIntConstant(poModule, "REFINE_OK", REFINE_OK); + PyModule_AddIntConstant(poModule, "REFINE_ALREADY_MAX_SOCKET_COUNT", REFINE_ALREADY_MAX_SOCKET_COUNT); + PyModule_AddIntConstant(poModule, "REFINE_NEED_MORE_GOOD_SCROLL", REFINE_NEED_MORE_GOOD_SCROLL); + PyModule_AddIntConstant(poModule, "REFINE_CANT_MAKE_SOCKET_ITEM", REFINE_CANT_MAKE_SOCKET_ITEM); + PyModule_AddIntConstant(poModule, "REFINE_NOT_NEXT_GRADE_ITEM", REFINE_NOT_NEXT_GRADE_ITEM); + PyModule_AddIntConstant(poModule, "REFINE_CANT_REFINE_METIN_TO_EQUIPMENT", REFINE_CANT_REFINE_METIN_TO_EQUIPMENT); + PyModule_AddIntConstant(poModule, "REFINE_CANT_REFINE_ROD", REFINE_CANT_REFINE_ROD); + PyModule_AddIntConstant(poModule, "ATTACH_METIN_CANT", ATTACH_METIN_CANT); + PyModule_AddIntConstant(poModule, "ATTACH_METIN_OK", ATTACH_METIN_OK); + PyModule_AddIntConstant(poModule, "ATTACH_METIN_NOT_MATCHABLE_ITEM", ATTACH_METIN_NOT_MATCHABLE_ITEM); + PyModule_AddIntConstant(poModule, "ATTACH_METIN_NO_MATCHABLE_SOCKET", ATTACH_METIN_NO_MATCHABLE_SOCKET); + PyModule_AddIntConstant(poModule, "ATTACH_METIN_NOT_EXIST_GOLD_SOCKET", ATTACH_METIN_NOT_EXIST_GOLD_SOCKET); + PyModule_AddIntConstant(poModule, "ATTACH_METIN_CANT_ATTACH_TO_EQUIPMENT", ATTACH_METIN_CANT_ATTACH_TO_EQUIPMENT); + PyModule_AddIntConstant(poModule, "DETACH_METIN_CANT", DETACH_METIN_CANT); + PyModule_AddIntConstant(poModule, "DETACH_METIN_OK", DETACH_METIN_OK); + PyModule_AddIntConstant(poModule, "PARTY_STATE_NORMAL", CPythonPlayer::PARTY_ROLE_NORMAL); + PyModule_AddIntConstant(poModule, "PARTY_STATE_LEADER", CPythonPlayer::PARTY_ROLE_LEADER); + PyModule_AddIntConstant(poModule, "PARTY_STATE_ATTACKER", CPythonPlayer::PARTY_ROLE_ATTACKER); + PyModule_AddIntConstant(poModule, "PARTY_STATE_TANKER", CPythonPlayer::PARTY_ROLE_TANKER); + PyModule_AddIntConstant(poModule, "PARTY_STATE_BUFFER", CPythonPlayer::PARTY_ROLE_BUFFER); + PyModule_AddIntConstant(poModule, "PARTY_STATE_SKILL_MASTER", CPythonPlayer::PARTY_ROLE_SKILL_MASTER); + PyModule_AddIntConstant(poModule, "PARTY_STATE_BERSERKER", CPythonPlayer::PARTY_ROLE_BERSERKER); + PyModule_AddIntConstant(poModule, "PARTY_STATE_DEFENDER", CPythonPlayer::PARTY_ROLE_DEFENDER); + PyModule_AddIntConstant(poModule, "PARTY_STATE_MAX_NUM", CPythonPlayer::PARTY_ROLE_MAX_NUM); + PyModule_AddIntConstant(poModule, "SKILL_INDEX_TONGSOL", c_iSkillIndex_Tongsol); + PyModule_AddIntConstant(poModule, "SKILL_INDEX_FISHING", c_iSkillIndex_Fishing); + PyModule_AddIntConstant(poModule, "SKILL_INDEX_MINING", c_iSkillIndex_Mining); + PyModule_AddIntConstant(poModule, "SKILL_INDEX_MAKING", c_iSkillIndex_Making); + PyModule_AddIntConstant(poModule, "SKILL_INDEX_COMBO", c_iSkillIndex_Combo); + PyModule_AddIntConstant(poModule, "SKILL_INDEX_LANGUAGE1", c_iSkillIndex_Language1); + PyModule_AddIntConstant(poModule, "SKILL_INDEX_LANGUAGE2", c_iSkillIndex_Language2); + PyModule_AddIntConstant(poModule, "SKILL_INDEX_LANGUAGE3", c_iSkillIndex_Language3); + PyModule_AddIntConstant(poModule, "SKILL_INDEX_POLYMORPH", c_iSkillIndex_Polymorph); + PyModule_AddIntConstant(poModule, "SKILL_INDEX_RIDING", c_iSkillIndex_Riding); + PyModule_AddIntConstant(poModule, "SKILL_INDEX_SUMMON", c_iSkillIndex_Summon); + PyModule_AddIntConstant(poModule, "PK_MODE_PEACE", PK_MODE_PEACE); + PyModule_AddIntConstant(poModule, "PK_MODE_REVENGE", PK_MODE_REVENGE); + PyModule_AddIntConstant(poModule, "PK_MODE_FREE", PK_MODE_FREE); + PyModule_AddIntConstant(poModule, "PK_MODE_PROTECT", PK_MODE_PROTECT); + PyModule_AddIntConstant(poModule, "PK_MODE_GUILD", PK_MODE_GUILD); + PyModule_AddIntConstant(poModule, "PK_MODE_MAX_NUM", PK_MODE_MAX_NUM); + PyModule_AddIntConstant(poModule, "BLOCK_EXCHANGE", BLOCK_EXCHANGE); + PyModule_AddIntConstant(poModule, "BLOCK_PARTY", BLOCK_PARTY_INVITE); + PyModule_AddIntConstant(poModule, "BLOCK_GUILD", BLOCK_GUILD_INVITE); + PyModule_AddIntConstant(poModule, "BLOCK_WHISPER", BLOCK_WHISPER); + PyModule_AddIntConstant(poModule, "BLOCK_FRIEND", BLOCK_MESSENGER_INVITE); + PyModule_AddIntConstant(poModule, "BLOCK_PARTY_REQUEST", BLOCK_PARTY_REQUEST); + PyModule_AddIntConstant(poModule, "PARTY_EXP_NON_DISTRIBUTION", PARTY_EXP_DISTRIBUTION_NON_PARITY); + PyModule_AddIntConstant(poModule, "PARTY_EXP_DISTRIBUTION_PARITY", PARTY_EXP_DISTRIBUTION_PARITY); + PyModule_AddIntConstant(poModule, "EMOTION_CLAP", EMOTION_CLAP); + PyModule_AddIntConstant(poModule, "EMOTION_CHEERS_1", EMOTION_CHEERS_1); + PyModule_AddIntConstant(poModule, "EMOTION_CHEERS_2", EMOTION_CHEERS_2); + PyModule_AddIntConstant(poModule, "EMOTION_DANCE_1", EMOTION_DANCE_1); + PyModule_AddIntConstant(poModule, "EMOTION_DANCE_2", EMOTION_DANCE_2); + PyModule_AddIntConstant(poModule, "EMOTION_DANCE_3", EMOTION_DANCE_3); + PyModule_AddIntConstant(poModule, "EMOTION_DANCE_4", EMOTION_DANCE_4); + PyModule_AddIntConstant(poModule, "EMOTION_DANCE_5", EMOTION_DANCE_5); + PyModule_AddIntConstant(poModule, "EMOTION_DANCE_6", EMOTION_DANCE_6); // PSY 강남스타일 + PyModule_AddIntConstant(poModule, "EMOTION_CONGRATULATION", EMOTION_CONGRATULATION); + PyModule_AddIntConstant(poModule, "EMOTION_FORGIVE", EMOTION_FORGIVE); + PyModule_AddIntConstant(poModule, "EMOTION_ANGRY", EMOTION_ANGRY); + PyModule_AddIntConstant(poModule, "EMOTION_ATTRACTIVE", EMOTION_ATTRACTIVE); + PyModule_AddIntConstant(poModule, "EMOTION_SAD", EMOTION_SAD); + PyModule_AddIntConstant(poModule, "EMOTION_SHY", EMOTION_SHY); + PyModule_AddIntConstant(poModule, "EMOTION_CHEERUP", EMOTION_CHEERUP); + PyModule_AddIntConstant(poModule, "EMOTION_BANTER", EMOTION_BANTER); + PyModule_AddIntConstant(poModule, "EMOTION_JOY", EMOTION_JOY); + PyModule_AddIntConstant(poModule, "EMOTION_KISS", EMOTION_KISS); + PyModule_AddIntConstant(poModule, "EMOTION_FRENCH_KISS", EMOTION_FRENCH_KISS); + PyModule_AddIntConstant(poModule, "EMOTION_SLAP", EMOTION_SLAP); + PyModule_AddIntConstant(poModule, "AUTO_POTION_TYPE_HP", CPythonPlayer::AUTO_POTION_TYPE_HP); + PyModule_AddIntConstant(poModule, "AUTO_POTION_TYPE_SP", CPythonPlayer::AUTO_POTION_TYPE_SP); + PyModule_AddIntConstant(poModule, "DRAGON_SOUL_PAGE_SIZE", c_DragonSoul_Inventory_Box_Size); + PyModule_AddIntConstant(poModule, "DRAGON_SOUL_PAGE_COUNT", DRAGON_SOUL_GRADE_MAX); + PyModule_AddIntConstant(poModule, "DRAGON_SOUL_SLOT_COUNT", c_DragonSoul_Inventory_Count); + PyModule_AddIntConstant(poModule, "DRAGON_SOUL_EQUIPMENT_SLOT_START", c_DragonSoul_Equip_Start); + PyModule_AddIntConstant(poModule, "DRAGON_SOUL_EQUIPMENT_PAGE_COUNT", DS_DECK_MAX_NUM); + PyModule_AddIntConstant(poModule, "DRAGON_SOUL_EQUIPMENT_FIRST_SIZE", c_DragonSoul_Equip_Slot_Max); + PyModule_AddIntConstant(poModule, "DRAGON_SOUL_REFINE_CLOSE", DS_SUB_HEADER_CLOSE); + PyModule_AddIntConstant(poModule, "DS_SUB_HEADER_DO_UPGRADE", DS_SUB_HEADER_DO_UPGRADE); + PyModule_AddIntConstant(poModule, "DS_SUB_HEADER_DO_IMPROVEMENT", DS_SUB_HEADER_DO_IMPROVEMENT); + PyModule_AddIntConstant(poModule, "DS_SUB_HEADER_DO_REFINE", DS_SUB_HEADER_DO_REFINE); +} + +// 40250 UserInterface/PythonProfilerModule.cpp +void AddStubConstants_profiler(PyObject* poModule) +{ + (void) 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) +{ + (void) poModule; + PyModule_AddIntConstant(poModule, "SAFEBOX_SLOT_X_COUNT", CPythonSafeBox::SAFEBOX_SLOT_X_COUNT); + PyModule_AddIntConstant(poModule, "SAFEBOX_SLOT_Y_COUNT", CPythonSafeBox::SAFEBOX_SLOT_Y_COUNT); + PyModule_AddIntConstant(poModule, "SAFEBOX_PAGE_SIZE", CPythonSafeBox::SAFEBOX_PAGE_SIZE); +} + +// 40250 UserInterface/PythonShop.cpp +void AddStubConstants_shop(PyObject* poModule) +{ + (void) poModule; + PyModule_AddIntConstant(poModule, "SHOP_SLOT_COUNT", SHOP_HOST_ITEM_MAX_NUM); + PyModule_AddIntConstant(poModule, "SHOP_COIN_TYPE_GOLD", SHOP_COIN_TYPE_GOLD); + PyModule_AddIntConstant(poModule, "SHOP_COIN_TYPE_SECONDARY_COIN", SHOP_COIN_TYPE_SECONDARY_COIN); +} + +// 40250 UserInterface/PythonSkill.cpp +void AddStubConstants_skill(PyObject* poModule) +{ + (void) poModule; + PyModule_AddIntConstant(poModule, "SKILL_TYPE_NONE", CPythonSkill::SKILL_TYPE_NONE); + PyModule_AddIntConstant(poModule, "SKILL_TYPE_ACTIVE", CPythonSkill::SKILL_TYPE_ACTIVE); + PyModule_AddIntConstant(poModule, "SKILL_TYPE_SUPPORT", CPythonSkill::SKILL_TYPE_SUPPORT); + PyModule_AddIntConstant(poModule, "SKILL_TYPE_GUILD", CPythonSkill::SKILL_TYPE_GUILD); + PyModule_AddIntConstant(poModule, "SKILL_TYPE_HORSE", CPythonSkill::SKILL_TYPE_HORSE); + PyModule_AddIntConstant(poModule, "SKILL_TYPE_MAX_NUM", CPythonSkill::SKILL_TYPE_MAX_NUM); + PyModule_AddIntConstant(poModule, "SKILL_GRADE_COUNT", CPythonSkill::SKILL_GRADE_COUNT); + PyModule_AddIntConstant(poModule, "SKILL_GRADE_STEP_COUNT", CPythonSkill::SKILL_GRADE_STEP_COUNT); + PyModule_AddIntConstant(poModule, "SKILL_GRADEGAP", CPythonSkill::SKILL_GRADEGAP); + PyModule_AddIntConstant(poModule, "SKILL_EFFECT_COUNT", CPythonSkill::SKILL_EFFECT_COUNT); +} + +// 40250 UserInterface/PythonSoundManagerModule.cpp +void AddStubConstants_snd(PyObject* poModule) +{ + (void) poModule; +} + +// 40250 UserInterface/PythonSystemModule.cpp +void AddStubConstants_systemSetting(PyObject* poModule) +{ + (void) poModule; + PyModule_AddIntConstant(poModule, "WINDOW_STATUS", CPythonSystem::WINDOW_STATUS); + PyModule_AddIntConstant(poModule, "WINDOW_INVENTORY", CPythonSystem::WINDOW_INVENTORY); + PyModule_AddIntConstant(poModule, "WINDOW_ABILITY", CPythonSystem::WINDOW_ABILITY); + PyModule_AddIntConstant(poModule, "WINDOW_SOCIETY", CPythonSystem::WINDOW_SOCIETY); + PyModule_AddIntConstant(poModule, "WINDOW_JOURNAL", CPythonSystem::WINDOW_JOURNAL); + PyModule_AddIntConstant(poModule, "WINDOW_COMMAND", CPythonSystem::WINDOW_COMMAND); + PyModule_AddIntConstant(poModule, "WINDOW_QUICK", CPythonSystem::WINDOW_QUICK); + PyModule_AddIntConstant(poModule, "WINDOW_GAUGE", CPythonSystem::WINDOW_GAUGE); + PyModule_AddIntConstant(poModule, "WINDOW_MINIMAP", CPythonSystem::WINDOW_MINIMAP); + PyModule_AddIntConstant(poModule, "WINDOW_CHAT", CPythonSystem::WINDOW_CHAT); +} + +// 40250 UserInterface/PythonTextTailModule.cpp +void AddStubConstants_textTail(PyObject* poModule) +{ + (void) poModule; +} + +// 40250 UserInterface/PythonNetworkDatagramModule.cpp +void AddStubConstants_udp(PyObject* poModule) +{ + (void) poModule; +} diff --git a/extension/src/platform/ScriptLib/GameplayModules.cpp b/extension/src/platform/ScriptLib/GameplayModules.cpp index dd59e211..4326feda 100644 --- a/extension/src/platform/ScriptLib/GameplayModules.cpp +++ b/extension/src/platform/ScriptLib/GameplayModules.cpp @@ -4,19 +4,48 @@ #include #include "../EterLib/UIRenderCommands.h" +// GameplayModuleConstants.cpp: each module's 40250 constants. +void AddStubConstants_ServerStateChecker(PyObject* poModule); +void AddStubConstants_background(PyObject* poModule); +void AddStubConstants_chat(PyObject* poModule); +void AddStubConstants_chr(PyObject* poModule); +void AddStubConstants_chrmgr(PyObject* poModule); +void AddStubConstants_effect(PyObject* poModule); +void AddStubConstants_event(PyObject* poModule); +void AddStubConstants_eventMgr(PyObject* poModule); +void AddStubConstants_exchange(PyObject* poModule); +void AddStubConstants_fly(PyObject* poModule); +void AddStubConstants_guild(PyObject* poModule); +void AddStubConstants_ime(PyObject* poModule); +void AddStubConstants_item(PyObject* poModule); +void AddStubConstants_messenger(PyObject* poModule); +void AddStubConstants_miniMap(PyObject* poModule); +void AddStubConstants_nonplayer(PyObject* poModule); +void AddStubConstants_player(PyObject* poModule); +void AddStubConstants_profiler(PyObject* poModule); +void AddStubConstants_quest(PyObject* poModule); +void AddStubConstants_safebox(PyObject* poModule); +void AddStubConstants_shop(PyObject* poModule); +void AddStubConstants_skill(PyObject* poModule); +void AddStubConstants_snd(PyObject* poModule); +void AddStubConstants_systemSetting(PyObject* poModule); +void AddStubConstants_textTail(PyObject* poModule); +void AddStubConstants_udp(PyObject* poModule); + namespace { -PyObject* stub_call_named(const char* name) { +// Returns `result`, a zero value shaped like the 40250 function's return (stub_constants.py), or 0. +PyObject* stub_call_named(const char* name, PyObject* result = nullptr) { std::fprintf(stderr, "2V0 native stub called: %s\n", name); std::fflush(stderr); - return Py_BuildValue("i", 0); + return result ? result : Py_BuildValue("i", 0); } // 40250 UserInterface/ServerStateCheckerModule.cpp: ServerStateChecker export names. -PyObject* stub_ServerStateChecker_Create(PyObject*, PyObject*) { return stub_call_named("ServerStateChecker.Create"); } -PyObject* stub_ServerStateChecker_Update(PyObject*, PyObject*) { return stub_call_named("ServerStateChecker.Update"); } -PyObject* stub_ServerStateChecker_Request(PyObject*, PyObject*) { return stub_call_named("ServerStateChecker.Request"); } -PyObject* stub_ServerStateChecker_AddChannel(PyObject*, PyObject*) { return stub_call_named("ServerStateChecker.AddChannel"); } -PyObject* stub_ServerStateChecker_Initialize(PyObject*, PyObject*) { return stub_call_named("ServerStateChecker.Initialize"); } +PyObject* stub_ServerStateChecker_Create(PyObject*, PyObject*) { return stub_call_named("ServerStateChecker.Create", Py_BuildNone()); } +PyObject* stub_ServerStateChecker_Update(PyObject*, PyObject*) { return stub_call_named("ServerStateChecker.Update", Py_BuildNone()); } +PyObject* stub_ServerStateChecker_Request(PyObject*, PyObject*) { return stub_call_named("ServerStateChecker.Request", Py_BuildNone()); } +PyObject* stub_ServerStateChecker_AddChannel(PyObject*, PyObject*) { return stub_call_named("ServerStateChecker.AddChannel", Py_BuildNone()); } +PyObject* stub_ServerStateChecker_Initialize(PyObject*, PyObject*) { return stub_call_named("ServerStateChecker.Initialize", Py_BuildNone()); } PyMethodDef methods_ServerStateChecker[] = { { "Create", stub_ServerStateChecker_Create, METH_VARARGS }, { "Update", stub_ServerStateChecker_Update, METH_VARARGS }, @@ -25,57 +54,55 @@ PyMethodDef methods_ServerStateChecker[] = { { "Initialize", stub_ServerStateChecker_Initialize, METH_VARARGS }, { NULL, NULL } }; -const char* ints_ServerStateChecker[] = {NULL}; -const char* strings_ServerStateChecker[] = {NULL}; // 40250 UserInterface/PythonBackgroundModule.cpp: background export names. -PyObject* stub_background_IsSoftwareTiling(PyObject*, PyObject*) { return stub_call_named("background.IsSoftwareTiling"); } -PyObject* stub_background_EnableSoftwareTiling(PyObject*, PyObject*) { return stub_call_named("background.EnableSoftwareTiling"); } -PyObject* stub_background_EnableSnow(PyObject*, PyObject*) { return stub_call_named("background.EnableSnow"); } -PyObject* stub_background_GlobalPositionToLocalPosition(PyObject*, PyObject*) { return stub_call_named("background.GlobalPositionToLocalPosition"); } -PyObject* stub_background_GlobalPositionToMapInfo(PyObject*, PyObject*) { return stub_call_named("background.GlobalPositionToMapInfo"); } -PyObject* stub_background_GetRenderShadowTime(PyObject*, PyObject*) { return stub_call_named("background.GetRenderShadowTime"); } -PyObject* stub_background_LoadMap(PyObject*, PyObject*) { return stub_call_named("background.LoadMap"); } -PyObject* stub_background_Destroy(PyObject*, PyObject*) { return stub_call_named("background.Destroy"); } -PyObject* stub_background_RegisterEnvironmentData(PyObject*, PyObject*) { return stub_call_named("background.RegisterEnvironmentData"); } -PyObject* stub_background_SetEnvironmentData(PyObject*, PyObject*) { return stub_call_named("background.SetEnvironmentData"); } -PyObject* stub_background_GetCurrentMapName(PyObject*, PyObject*) { return stub_call_named("background.GetCurrentMapName"); } -PyObject* stub_background_GetPickingPoint(PyObject*, PyObject*) { return stub_call_named("background.GetPickingPoint"); } -PyObject* stub_background_BeginEnvironment(PyObject*, PyObject*) { return stub_call_named("background.BeginEnvironment"); } -PyObject* stub_background_EndEnvironment(PyObject*, PyObject*) { return stub_call_named("background.EndEnvironment"); } -PyObject* stub_background_SetCharacterDirLight(PyObject*, PyObject*) { return stub_call_named("background.SetCharacterDirLight"); } -PyObject* stub_background_SetBackgroundDirLight(PyObject*, PyObject*) { return stub_call_named("background.SetBackgroundDirLight"); } -PyObject* stub_background_Initialize(PyObject*, PyObject*) { return stub_call_named("background.Initialize"); } -PyObject* stub_background_Update(PyObject*, PyObject*) { return stub_call_named("background.Update"); } -PyObject* stub_background_Render(PyObject*, PyObject*) { return stub_call_named("background.Render"); } -PyObject* stub_background_RenderPCBlocker(PyObject*, PyObject*) { return stub_call_named("background.RenderPCBlocker"); } -PyObject* stub_background_RenderCollision(PyObject*, PyObject*) { return stub_call_named("background.RenderCollision"); } -PyObject* stub_background_RenderSky(PyObject*, PyObject*) { return stub_call_named("background.RenderSky"); } -PyObject* stub_background_RenderCloud(PyObject*, PyObject*) { return stub_call_named("background.RenderCloud"); } -PyObject* stub_background_RenderWater(PyObject*, PyObject*) { return stub_call_named("background.RenderWater"); } -PyObject* stub_background_RenderEffect(PyObject*, PyObject*) { return stub_call_named("background.RenderEffect"); } -PyObject* stub_background_RenderBeforeLensFlare(PyObject*, PyObject*) { return stub_call_named("background.RenderBeforeLensFlare"); } -PyObject* stub_background_RenderAfterLensFlare(PyObject*, PyObject*) { return stub_call_named("background.RenderAfterLensFlare"); } -PyObject* stub_background_RenderCharacterShadowToTexture(PyObject*, PyObject*) { return stub_call_named("background.RenderCharacterShadowToTexture"); } -PyObject* stub_background_RenderDungeon(PyObject*, PyObject*) { return stub_call_named("background.RenderDungeon"); } -PyObject* stub_background_GetHeight(PyObject*, PyObject*) { return stub_call_named("background.GetHeight"); } -PyObject* stub_background_SetShadowLevel(PyObject*, PyObject*) { return stub_call_named("background.SetShadowLevel"); } -PyObject* stub_background_SetVisiblePart(PyObject*, PyObject*) { return stub_call_named("background.SetVisiblePart"); } -PyObject* stub_background_GetShadowMapColor(PyObject*, PyObject*) { return stub_call_named("background.GetShadowMapColor"); } -PyObject* stub_background_SetSplatLimit(PyObject*, PyObject*) { return stub_call_named("background.SetSplatLimit"); } -PyObject* stub_background_GetRenderedSplatNum(PyObject*, PyObject*) { return stub_call_named("background.GetRenderedSplatNum"); } -PyObject* stub_background_GetRenderedGraphicThingInstanceNum(PyObject*, PyObject*) { return stub_call_named("background.GetRenderedGraphicThingInstanceNum"); } -PyObject* stub_background_SelectViewDistanceNum(PyObject*, PyObject*) { return stub_call_named("background.SelectViewDistanceNum"); } -PyObject* stub_background_SetViewDistanceSet(PyObject*, PyObject*) { return stub_call_named("background.SetViewDistanceSet"); } -PyObject* stub_background_GetFarClip(PyObject*, PyObject*) { return stub_call_named("background.GetFarClip"); } -PyObject* stub_background_GetDistanceSetInfo(PyObject*, PyObject*) { return stub_call_named("background.GetDistanceSetInfo"); } -PyObject* stub_background_SetBGLoading(PyObject*, PyObject*) { return stub_call_named("background.SetBGLoading"); } -PyObject* stub_background_SetRenderSort(PyObject*, PyObject*) { return stub_call_named("background.SetRenderSort"); } -PyObject* stub_background_SetTransparentTree(PyObject*, PyObject*) { return stub_call_named("background.SetTransparentTree"); } -PyObject* stub_background_SetXMasTree(PyObject*, PyObject*) { return stub_call_named("background.SetXMasTree"); } -PyObject* stub_background_RegisterDungeonMapName(PyObject*, PyObject*) { return stub_call_named("background.RegisterDungeonMapName"); } -PyObject* stub_background_VisibleGuildArea(PyObject*, PyObject*) { return stub_call_named("background.VisibleGuildArea"); } -PyObject* stub_background_DisableGuildArea(PyObject*, PyObject*) { return stub_call_named("background.DisableGuildArea"); } -PyObject* stub_background_WarpTest(PyObject*, PyObject*) { return stub_call_named("background.WarpTest"); } +PyObject* stub_background_IsSoftwareTiling(PyObject*, PyObject*) { return stub_call_named("background.IsSoftwareTiling", Py_BuildValue("i", 0)); } +PyObject* stub_background_EnableSoftwareTiling(PyObject*, PyObject*) { return stub_call_named("background.EnableSoftwareTiling", Py_BuildNone()); } +PyObject* stub_background_EnableSnow(PyObject*, PyObject*) { return stub_call_named("background.EnableSnow", Py_BuildNone()); } +PyObject* stub_background_GlobalPositionToLocalPosition(PyObject*, PyObject*) { return stub_call_named("background.GlobalPositionToLocalPosition", Py_BuildValue("ii", 0, 0)); } +PyObject* stub_background_GlobalPositionToMapInfo(PyObject*, PyObject*) { return stub_call_named("background.GlobalPositionToMapInfo", Py_BuildValue("sii", "", 0, 0)); } +PyObject* stub_background_GetRenderShadowTime(PyObject*, PyObject*) { return stub_call_named("background.GetRenderShadowTime", Py_BuildValue("i", 0)); } +PyObject* stub_background_LoadMap(PyObject*, PyObject*) { return stub_call_named("background.LoadMap", Py_BuildNone()); } +PyObject* stub_background_Destroy(PyObject*, PyObject*) { return stub_call_named("background.Destroy", Py_BuildNone()); } +PyObject* stub_background_RegisterEnvironmentData(PyObject*, PyObject*) { return stub_call_named("background.RegisterEnvironmentData", Py_BuildNone()); } +PyObject* stub_background_SetEnvironmentData(PyObject*, PyObject*) { return stub_call_named("background.SetEnvironmentData", Py_BuildNone()); } +PyObject* stub_background_GetCurrentMapName(PyObject*, PyObject*) { return stub_call_named("background.GetCurrentMapName", Py_BuildValue("s", "")); } +PyObject* stub_background_GetPickingPoint(PyObject*, PyObject*) { return stub_call_named("background.GetPickingPoint", Py_BuildValue("fff", 0.0, 0.0, 0.0)); } +PyObject* stub_background_BeginEnvironment(PyObject*, PyObject*) { return stub_call_named("background.BeginEnvironment", Py_BuildNone()); } +PyObject* stub_background_EndEnvironment(PyObject*, PyObject*) { return stub_call_named("background.EndEnvironment", Py_BuildNone()); } +PyObject* stub_background_SetCharacterDirLight(PyObject*, PyObject*) { return stub_call_named("background.SetCharacterDirLight", Py_BuildNone()); } +PyObject* stub_background_SetBackgroundDirLight(PyObject*, PyObject*) { return stub_call_named("background.SetBackgroundDirLight", Py_BuildNone()); } +PyObject* stub_background_Initialize(PyObject*, PyObject*) { return stub_call_named("background.Initialize", Py_BuildNone()); } +PyObject* stub_background_Update(PyObject*, PyObject*) { return stub_call_named("background.Update", Py_BuildNone()); } +PyObject* stub_background_Render(PyObject*, PyObject*) { return stub_call_named("background.Render", Py_BuildNone()); } +PyObject* stub_background_RenderPCBlocker(PyObject*, PyObject*) { return stub_call_named("background.RenderPCBlocker", Py_BuildNone()); } +PyObject* stub_background_RenderCollision(PyObject*, PyObject*) { return stub_call_named("background.RenderCollision", Py_BuildNone()); } +PyObject* stub_background_RenderSky(PyObject*, PyObject*) { return stub_call_named("background.RenderSky", Py_BuildNone()); } +PyObject* stub_background_RenderCloud(PyObject*, PyObject*) { return stub_call_named("background.RenderCloud", Py_BuildNone()); } +PyObject* stub_background_RenderWater(PyObject*, PyObject*) { return stub_call_named("background.RenderWater", Py_BuildNone()); } +PyObject* stub_background_RenderEffect(PyObject*, PyObject*) { return stub_call_named("background.RenderEffect", Py_BuildNone()); } +PyObject* stub_background_RenderBeforeLensFlare(PyObject*, PyObject*) { return stub_call_named("background.RenderBeforeLensFlare", Py_BuildNone()); } +PyObject* stub_background_RenderAfterLensFlare(PyObject*, PyObject*) { return stub_call_named("background.RenderAfterLensFlare", Py_BuildNone()); } +PyObject* stub_background_RenderCharacterShadowToTexture(PyObject*, PyObject*) { return stub_call_named("background.RenderCharacterShadowToTexture", Py_BuildNone()); } +PyObject* stub_background_RenderDungeon(PyObject*, PyObject*) { return stub_call_named("background.RenderDungeon", Py_BuildNone()); } +PyObject* stub_background_GetHeight(PyObject*, PyObject*) { return stub_call_named("background.GetHeight", Py_BuildValue("f", 0.0)); } +PyObject* stub_background_SetShadowLevel(PyObject*, PyObject*) { return stub_call_named("background.SetShadowLevel", Py_BuildNone()); } +PyObject* stub_background_SetVisiblePart(PyObject*, PyObject*) { return stub_call_named("background.SetVisiblePart", Py_BuildNone()); } +PyObject* stub_background_GetShadowMapColor(PyObject*, PyObject*) { return stub_call_named("background.GetShadowMapColor", Py_BuildValue("i", 0)); } +PyObject* stub_background_SetSplatLimit(PyObject*, PyObject*) { return stub_call_named("background.SetSplatLimit", Py_BuildNone()); } +PyObject* stub_background_GetRenderedSplatNum(PyObject*, PyObject*) { return stub_call_named("background.GetRenderedSplatNum", Py_BuildValue("iifs", 0, 0, 0.0, "")); } +PyObject* stub_background_GetRenderedGraphicThingInstanceNum(PyObject*, PyObject*) { return stub_call_named("background.GetRenderedGraphicThingInstanceNum", Py_BuildValue("ii", 0, 0)); } +PyObject* stub_background_SelectViewDistanceNum(PyObject*, PyObject*) { return stub_call_named("background.SelectViewDistanceNum", Py_BuildNone()); } +PyObject* stub_background_SetViewDistanceSet(PyObject*, PyObject*) { return stub_call_named("background.SetViewDistanceSet", Py_BuildNone()); } +PyObject* stub_background_GetFarClip(PyObject*, PyObject*) { return stub_call_named("background.GetFarClip", Py_BuildValue("f", 0.0)); } +PyObject* stub_background_GetDistanceSetInfo(PyObject*, PyObject*) { return stub_call_named("background.GetDistanceSetInfo", Py_BuildValue("ifff", 0, 0.0, 0.0, 0.0)); } +PyObject* stub_background_SetBGLoading(PyObject*, PyObject*) { return stub_call_named("background.SetBGLoading", Py_BuildNone()); } +PyObject* stub_background_SetRenderSort(PyObject*, PyObject*) { return stub_call_named("background.SetRenderSort", Py_BuildNone()); } +PyObject* stub_background_SetTransparentTree(PyObject*, PyObject*) { return stub_call_named("background.SetTransparentTree", Py_BuildNone()); } +PyObject* stub_background_SetXMasTree(PyObject*, PyObject*) { return stub_call_named("background.SetXMasTree", Py_BuildNone()); } +PyObject* stub_background_RegisterDungeonMapName(PyObject*, PyObject*) { return stub_call_named("background.RegisterDungeonMapName", Py_BuildNone()); } +PyObject* stub_background_VisibleGuildArea(PyObject*, PyObject*) { return stub_call_named("background.VisibleGuildArea", Py_BuildNone()); } +PyObject* stub_background_DisableGuildArea(PyObject*, PyObject*) { return stub_call_named("background.DisableGuildArea", Py_BuildNone()); } +PyObject* stub_background_WarpTest(PyObject*, PyObject*) { return stub_call_named("background.WarpTest", Py_BuildNone()); } PyMethodDef methods_background[] = { { "IsSoftwareTiling", stub_background_IsSoftwareTiling, METH_VARARGS }, { "EnableSoftwareTiling", stub_background_EnableSoftwareTiling, METH_VARARGS }, @@ -127,39 +154,37 @@ PyMethodDef methods_background[] = { { "WarpTest", stub_background_WarpTest, METH_VARARGS }, { NULL, NULL } }; -const char* ints_background[] = {"PART_SKY", "PART_TREE", "PART_CLOUD", "PART_WATER", "PART_OBJECT", "PART_TERRAIN", "SKY_RENDER_MODE_DEFAULT", "SKY_RENDER_MODE_DIFFUSE", "SKY_RENDER_MODE_TEXTURE", "SKY_RENDER_MODE_MODULATE", "SKY_RENDER_MODE_MODULATE2X", "SKY_RENDER_MODE_MODULATE4X", "SHADOW_NONE", "SHADOW_GROUND", "SHADOW_GROUND_AND_SOLO", "SHADOW_ALL", "SHADOW_ALL_HIGH", "SHADOW_ALL_MAX", "DISTANCE0", "DISTANCE1", "DISTANCE2", "DISTANCE3", "DISTANCE4", "DISTANCE_SORT", "TEXTURE_SORT", NULL}; -const char* strings_background[] = {NULL}; // 40250 UserInterface/PythonChatModule.cpp: chat export names. -PyObject* stub_chat_SetChatColor(PyObject*, PyObject*) { return stub_call_named("chat.SetChatColor"); } -PyObject* stub_chat_Clear(PyObject*, PyObject*) { return stub_call_named("chat.Clear"); } -PyObject* stub_chat_Close(PyObject*, PyObject*) { return stub_call_named("chat.Close"); } -PyObject* stub_chat_CreateChatSet(PyObject*, PyObject*) { return stub_call_named("chat.CreateChatSet"); } -PyObject* stub_chat_Update(PyObject*, PyObject*) { return stub_call_named("chat.Update"); } -PyObject* stub_chat_Render(PyObject*, PyObject*) { return stub_call_named("chat.Render"); } -PyObject* stub_chat_SetBoardState(PyObject*, PyObject*) { return stub_call_named("chat.SetBoardState"); } -PyObject* stub_chat_SetPosition(PyObject*, PyObject*) { return stub_call_named("chat.SetPosition"); } -PyObject* stub_chat_SetHeight(PyObject*, PyObject*) { return stub_call_named("chat.SetHeight"); } -PyObject* stub_chat_SetStep(PyObject*, PyObject*) { return stub_call_named("chat.SetStep"); } -PyObject* stub_chat_ToggleChatMode(PyObject*, PyObject*) { return stub_call_named("chat.ToggleChatMode"); } -PyObject* stub_chat_EnableChatMode(PyObject*, PyObject*) { return stub_call_named("chat.EnableChatMode"); } -PyObject* stub_chat_DisableChatMode(PyObject*, PyObject*) { return stub_call_named("chat.DisableChatMode"); } -PyObject* stub_chat_SetEndPos(PyObject*, PyObject*) { return stub_call_named("chat.SetEndPos"); } -PyObject* stub_chat_GetLineCount(PyObject*, PyObject*) { return stub_call_named("chat.GetLineCount"); } -PyObject* stub_chat_GetVisibleLineCount(PyObject*, PyObject*) { return stub_call_named("chat.GetVisibleLineCount"); } -PyObject* stub_chat_GetLineStep(PyObject*, PyObject*) { return stub_call_named("chat.GetLineStep"); } -PyObject* stub_chat_AppendChat(PyObject*, PyObject*) { return stub_call_named("chat.AppendChat"); } -PyObject* stub_chat_AppendChatWithDelay(PyObject*, PyObject*) { return stub_call_named("chat.AppendChatWithDelay"); } -PyObject* stub_chat_ArrangeShowingChat(PyObject*, PyObject*) { return stub_call_named("chat.ArrangeShowingChat"); } -PyObject* stub_chat_IgnoreCharacter(PyObject*, PyObject*) { return stub_call_named("chat.IgnoreCharacter"); } -PyObject* stub_chat_IsIgnoreCharacter(PyObject*, PyObject*) { return stub_call_named("chat.IsIgnoreCharacter"); } -PyObject* stub_chat_CreateWhisper(PyObject*, PyObject*) { return stub_call_named("chat.CreateWhisper"); } -PyObject* stub_chat_AppendWhisper(PyObject*, PyObject*) { return stub_call_named("chat.AppendWhisper"); } -PyObject* stub_chat_RenderWhisper(PyObject*, PyObject*) { return stub_call_named("chat.RenderWhisper"); } -PyObject* stub_chat_SetWhisperBoxSize(PyObject*, PyObject*) { return stub_call_named("chat.SetWhisperBoxSize"); } -PyObject* stub_chat_SetWhisperPosition(PyObject*, PyObject*) { return stub_call_named("chat.SetWhisperPosition"); } -PyObject* stub_chat_ClearWhisper(PyObject*, PyObject*) { return stub_call_named("chat.ClearWhisper"); } -PyObject* stub_chat_InitWhisper(PyObject*, PyObject*) { return stub_call_named("chat.InitWhisper"); } -PyObject* stub_chat_GetLinkFromHyperlink(PyObject*, PyObject*) { return stub_call_named("chat.GetLinkFromHyperlink"); } +PyObject* stub_chat_SetChatColor(PyObject*, PyObject*) { return stub_call_named("chat.SetChatColor", Py_BuildNone()); } +PyObject* stub_chat_Clear(PyObject*, PyObject*) { return stub_call_named("chat.Clear", Py_BuildNone()); } +PyObject* stub_chat_Close(PyObject*, PyObject*) { return stub_call_named("chat.Close", Py_BuildNone()); } +PyObject* stub_chat_CreateChatSet(PyObject*, PyObject*) { return stub_call_named("chat.CreateChatSet", Py_BuildValue("i", 0)); } +PyObject* stub_chat_Update(PyObject*, PyObject*) { return stub_call_named("chat.Update", Py_BuildNone()); } +PyObject* stub_chat_Render(PyObject*, PyObject*) { return stub_call_named("chat.Render", Py_BuildNone()); } +PyObject* stub_chat_SetBoardState(PyObject*, PyObject*) { return stub_call_named("chat.SetBoardState", Py_BuildNone()); } +PyObject* stub_chat_SetPosition(PyObject*, PyObject*) { return stub_call_named("chat.SetPosition", Py_BuildNone()); } +PyObject* stub_chat_SetHeight(PyObject*, PyObject*) { return stub_call_named("chat.SetHeight", Py_BuildNone()); } +PyObject* stub_chat_SetStep(PyObject*, PyObject*) { return stub_call_named("chat.SetStep", Py_BuildNone()); } +PyObject* stub_chat_ToggleChatMode(PyObject*, PyObject*) { return stub_call_named("chat.ToggleChatMode", Py_BuildNone()); } +PyObject* stub_chat_EnableChatMode(PyObject*, PyObject*) { return stub_call_named("chat.EnableChatMode", Py_BuildNone()); } +PyObject* stub_chat_DisableChatMode(PyObject*, PyObject*) { return stub_call_named("chat.DisableChatMode", Py_BuildNone()); } +PyObject* stub_chat_SetEndPos(PyObject*, PyObject*) { return stub_call_named("chat.SetEndPos", Py_BuildNone()); } +PyObject* stub_chat_GetLineCount(PyObject*, PyObject*) { return stub_call_named("chat.GetLineCount", Py_BuildValue("i", 0)); } +PyObject* stub_chat_GetVisibleLineCount(PyObject*, PyObject*) { return stub_call_named("chat.GetVisibleLineCount", Py_BuildValue("i", 0)); } +PyObject* stub_chat_GetLineStep(PyObject*, PyObject*) { return stub_call_named("chat.GetLineStep", Py_BuildValue("i", 0)); } +PyObject* stub_chat_AppendChat(PyObject*, PyObject*) { return stub_call_named("chat.AppendChat", Py_BuildNone()); } +PyObject* stub_chat_AppendChatWithDelay(PyObject*, PyObject*) { return stub_call_named("chat.AppendChatWithDelay", Py_BuildNone()); } +PyObject* stub_chat_ArrangeShowingChat(PyObject*, PyObject*) { return stub_call_named("chat.ArrangeShowingChat", Py_BuildNone()); } +PyObject* stub_chat_IgnoreCharacter(PyObject*, PyObject*) { return stub_call_named("chat.IgnoreCharacter", Py_BuildNone()); } +PyObject* stub_chat_IsIgnoreCharacter(PyObject*, PyObject*) { return stub_call_named("chat.IsIgnoreCharacter", Py_BuildNone()); } +PyObject* stub_chat_CreateWhisper(PyObject*, PyObject*) { return stub_call_named("chat.CreateWhisper", Py_BuildNone()); } +PyObject* stub_chat_AppendWhisper(PyObject*, PyObject*) { return stub_call_named("chat.AppendWhisper", Py_BuildNone()); } +PyObject* stub_chat_RenderWhisper(PyObject*, PyObject*) { return stub_call_named("chat.RenderWhisper", Py_BuildNone()); } +PyObject* stub_chat_SetWhisperBoxSize(PyObject*, PyObject*) { return stub_call_named("chat.SetWhisperBoxSize", Py_BuildNone()); } +PyObject* stub_chat_SetWhisperPosition(PyObject*, PyObject*) { return stub_call_named("chat.SetWhisperPosition", Py_BuildNone()); } +PyObject* stub_chat_ClearWhisper(PyObject*, PyObject*) { return stub_call_named("chat.ClearWhisper", Py_BuildNone()); } +PyObject* stub_chat_InitWhisper(PyObject*, PyObject*) { return stub_call_named("chat.InitWhisper", Py_BuildNone()); } +PyObject* stub_chat_GetLinkFromHyperlink(PyObject*, PyObject*) { return stub_call_named("chat.GetLinkFromHyperlink", Py_BuildValue("s", "")); } PyMethodDef methods_chat[] = { { "SetChatColor", stub_chat_SetChatColor, METH_VARARGS }, { "Clear", stub_chat_Clear, METH_VARARGS }, @@ -193,87 +218,85 @@ PyMethodDef methods_chat[] = { { "GetLinkFromHyperlink", stub_chat_GetLinkFromHyperlink, METH_VARARGS }, { NULL, NULL } }; -const char* ints_chat[] = {"CHAT_TYPE_TALKING", "CHAT_TYPE_INFO", "CHAT_TYPE_NOTICE", "CHAT_TYPE_PARTY", "CHAT_TYPE_GUILD", "CHAT_TYPE_COMMAND", "CHAT_TYPE_SHOUT", "CHAT_TYPE_WHISPER", "WHISPER_TYPE_CHAT", "WHISPER_TYPE_SYSTEM", "WHISPER_TYPE_GM", "BOARD_STATE_VIEW", "BOARD_STATE_EDIT", "BOARD_STATE_LOG", "CHAT_SET_CHAT_WINDOW", "CHAT_SET_LOG_WINDOW", NULL}; -const char* strings_chat[] = {NULL}; // 40250 UserInterface/PythonCharacterModule.cpp: chr export names. -PyObject* stub_chr_DismountHorse(PyObject*, PyObject*) { return stub_call_named("chr.DismountHorse"); } -PyObject* stub_chr_MountHorse(PyObject*, PyObject*) { return stub_call_named("chr.MountHorse"); } -PyObject* stub_chr_Destroy(PyObject*, PyObject*) { return stub_call_named("chr.Destroy"); } -PyObject* stub_chr_Update(PyObject*, PyObject*) { return stub_call_named("chr.Update"); } -PyObject* stub_chr_Deform(PyObject*, PyObject*) { return stub_call_named("chr.Deform"); } -PyObject* stub_chr_Render(PyObject*, PyObject*) { return stub_call_named("chr.Render"); } -PyObject* stub_chr_RenderCollision(PyObject*, PyObject*) { return stub_call_named("chr.RenderCollision"); } -PyObject* stub_chr_CreateInstance(PyObject*, PyObject*) { return stub_call_named("chr.CreateInstance"); } -PyObject* stub_chr_DeleteInstance(PyObject*, PyObject*) { return stub_call_named("chr.DeleteInstance"); } -PyObject* stub_chr_DeleteInstanceByFade(PyObject*, PyObject*) { return stub_call_named("chr.DeleteInstanceByFade"); } -PyObject* stub_chr_SelectInstance(PyObject*, PyObject*) { return stub_call_named("chr.SelectInstance"); } -PyObject* stub_chr_HasInstance(PyObject*, PyObject*) { return stub_call_named("chr.HasInstance"); } -PyObject* stub_chr_IsEnemy(PyObject*, PyObject*) { return stub_call_named("chr.IsEnemy"); } -PyObject* stub_chr_IsNPC(PyObject*, PyObject*) { return stub_call_named("chr.IsNPC"); } -PyObject* stub_chr_IsGameMaster(PyObject*, PyObject*) { return stub_call_named("chr.IsGameMaster"); } -PyObject* stub_chr_IsPartyMember(PyObject*, PyObject*) { return stub_call_named("chr.IsPartyMember"); } -PyObject* stub_chr_Select(PyObject*, PyObject*) { return stub_call_named("chr.Select"); } -PyObject* stub_chr_SetAddRenderMode(PyObject*, PyObject*) { return stub_call_named("chr.SetAddRenderMode"); } -PyObject* stub_chr_SetBlendRenderMode(PyObject*, PyObject*) { return stub_call_named("chr.SetBlendRenderMode"); } -PyObject* stub_chr_Unselect(PyObject*, PyObject*) { return stub_call_named("chr.Unselect"); } -PyObject* stub_chr_Hide(PyObject*, PyObject*) { return stub_call_named("chr.Hide"); } -PyObject* stub_chr_Show(PyObject*, PyObject*) { return stub_call_named("chr.Show"); } -PyObject* stub_chr_Pick(PyObject*, PyObject*) { return stub_call_named("chr.Pick"); } -PyObject* stub_chr_PickAll(PyObject*, PyObject*) { return stub_call_named("chr.PickAll"); } -PyObject* stub_chr_SetArmor(PyObject*, PyObject*) { return stub_call_named("chr.SetArmor"); } -PyObject* stub_chr_SetWeapon(PyObject*, PyObject*) { return stub_call_named("chr.SetWeapon"); } -PyObject* stub_chr_ChangeShape(PyObject*, PyObject*) { return stub_call_named("chr.ChangeShape"); } -PyObject* stub_chr_SetRace(PyObject*, PyObject*) { return stub_call_named("chr.SetRace"); } -PyObject* stub_chr_SetHair(PyObject*, PyObject*) { return stub_call_named("chr.SetHair"); } -PyObject* stub_chr_ChangeHair(PyObject*, PyObject*) { return stub_call_named("chr.ChangeHair"); } -PyObject* stub_chr_SetVirtualID(PyObject*, PyObject*) { return stub_call_named("chr.SetVirtualID"); } -PyObject* stub_chr_SetNameString(PyObject*, PyObject*) { return stub_call_named("chr.SetNameString"); } -PyObject* stub_chr_SetInstanceType(PyObject*, PyObject*) { return stub_call_named("chr.SetInstanceType"); } -PyObject* stub_chr_SetPixelPosition(PyObject*, PyObject*) { return stub_call_named("chr.SetPixelPosition"); } -PyObject* stub_chr_SetDirection(PyObject*, PyObject*) { return stub_call_named("chr.SetDirection"); } -PyObject* stub_chr_Refresh(PyObject*, PyObject*) { return stub_call_named("chr.Refresh"); } -PyObject* stub_chr_Revive(PyObject*, PyObject*) { return stub_call_named("chr.Revive"); } -PyObject* stub_chr_Die(PyObject*, PyObject*) { return stub_call_named("chr.Die"); } -PyObject* stub_chr_AttachEffectByID(PyObject*, PyObject*) { return stub_call_named("chr.AttachEffectByID"); } -PyObject* stub_chr_AttachEffectByName(PyObject*, PyObject*) { return stub_call_named("chr.AttachEffectByName"); } -PyObject* stub_chr_LookAt(PyObject*, PyObject*) { return stub_call_named("chr.LookAt"); } -PyObject* stub_chr_SetMotionMode(PyObject*, PyObject*) { return stub_call_named("chr.SetMotionMode"); } -PyObject* stub_chr_SetLoopMotion(PyObject*, PyObject*) { return stub_call_named("chr.SetLoopMotion"); } -PyObject* stub_chr_BlendLoopMotion(PyObject*, PyObject*) { return stub_call_named("chr.BlendLoopMotion"); } -PyObject* stub_chr_PushOnceMotion(PyObject*, PyObject*) { return stub_call_named("chr.PushOnceMotion"); } -PyObject* stub_chr_PushLoopMotion(PyObject*, PyObject*) { return stub_call_named("chr.PushLoopMotion"); } -PyObject* stub_chr_GetPixelPosition(PyObject*, PyObject*) { return stub_call_named("chr.GetPixelPosition"); } -PyObject* stub_chr_SetRotation(PyObject*, PyObject*) { return stub_call_named("chr.SetRotation"); } -PyObject* stub_chr_SetRotationAll(PyObject*, PyObject*) { return stub_call_named("chr.SetRotationAll"); } -PyObject* stub_chr_BlendRotation(PyObject*, PyObject*) { return stub_call_named("chr.BlendRotation"); } -PyObject* stub_chr_GetRotation(PyObject*, PyObject*) { return stub_call_named("chr.GetRotation"); } -PyObject* stub_chr_GetRace(PyObject*, PyObject*) { return stub_call_named("chr.GetRace"); } -PyObject* stub_chr_GetName(PyObject*, PyObject*) { return stub_call_named("chr.GetName"); } -PyObject* stub_chr_GetNameByVID(PyObject*, PyObject*) { return stub_call_named("chr.GetNameByVID"); } -PyObject* stub_chr_GetGuildID(PyObject*, PyObject*) { return stub_call_named("chr.GetGuildID"); } -PyObject* stub_chr_GetProjectPosition(PyObject*, PyObject*) { return stub_call_named("chr.GetProjectPosition"); } -PyObject* stub_chr_GetVirtualNumber(PyObject*, PyObject*) { return stub_call_named("chr.GetVirtualNumber"); } -PyObject* stub_chr_GetInstanceType(PyObject*, PyObject*) { return stub_call_named("chr.GetInstanceType"); } -PyObject* stub_chr_GetBoundBoxOnlyXY(PyObject*, PyObject*) { return stub_call_named("chr.GetBoundBoxOnlyXY"); } -PyObject* stub_chr_RaceToJob(PyObject*, PyObject*) { return stub_call_named("chr.RaceToJob"); } -PyObject* stub_chr_RaceToSex(PyObject*, PyObject*) { return stub_call_named("chr.RaceToSex"); } -PyObject* stub_chr_testGetPKData(PyObject*, PyObject*) { return stub_call_named("chr.testGetPKData"); } -PyObject* stub_chr_FaintTest(PyObject*, PyObject*) { return stub_call_named("chr.FaintTest"); } -PyObject* stub_chr_SetMoveSpeed(PyObject*, PyObject*) { return stub_call_named("chr.SetMoveSpeed"); } -PyObject* stub_chr_SetAttackSpeed(PyObject*, PyObject*) { return stub_call_named("chr.SetAttackSpeed"); } -PyObject* stub_chr_WeaponTraceSetTexture(PyObject*, PyObject*) { return stub_call_named("chr.WeaponTraceSetTexture"); } -PyObject* stub_chr_WeaponTraceUseAlpha(PyObject*, PyObject*) { return stub_call_named("chr.WeaponTraceUseAlpha"); } -PyObject* stub_chr_WeaponTraceUseTexture(PyObject*, PyObject*) { return stub_call_named("chr.WeaponTraceUseTexture"); } -PyObject* stub_chr_MoveToDestPosition(PyObject*, PyObject*) { return stub_call_named("chr.MoveToDestPosition"); } -PyObject* stub_chr_testSetComboType(PyObject*, PyObject*) { return stub_call_named("chr.testSetComboType"); } -PyObject* stub_chr_testSetAddRenderMode(PyObject*, PyObject*) { return stub_call_named("chr.testSetAddRenderMode"); } -PyObject* stub_chr_testSetModulateRenderMode(PyObject*, PyObject*) { return stub_call_named("chr.testSetModulateRenderMode"); } -PyObject* stub_chr_testSetAddRenderModeRGB(PyObject*, PyObject*) { return stub_call_named("chr.testSetAddRenderModeRGB"); } -PyObject* stub_chr_testSetModulateRenderModeRGB(PyObject*, PyObject*) { return stub_call_named("chr.testSetModulateRenderModeRGB"); } -PyObject* stub_chr_testSetSpecularRenderMode(PyObject*, PyObject*) { return stub_call_named("chr.testSetSpecularRenderMode"); } -PyObject* stub_chr_testSetSpecularRenderMode2(PyObject*, PyObject*) { return stub_call_named("chr.testSetSpecularRenderMode2"); } -PyObject* stub_chr_testRestoreRenderMode(PyObject*, PyObject*) { return stub_call_named("chr.testRestoreRenderMode"); } -PyObject* stub_chr_testSetRideMan(PyObject*, PyObject*) { return stub_call_named("chr.testSetRideMan"); } +PyObject* stub_chr_DismountHorse(PyObject*, PyObject*) { return stub_call_named("chr.DismountHorse", Py_BuildNone()); } +PyObject* stub_chr_MountHorse(PyObject*, PyObject*) { return stub_call_named("chr.MountHorse", Py_BuildNone()); } +PyObject* stub_chr_Destroy(PyObject*, PyObject*) { return stub_call_named("chr.Destroy", Py_BuildNone()); } +PyObject* stub_chr_Update(PyObject*, PyObject*) { return stub_call_named("chr.Update", Py_BuildNone()); } +PyObject* stub_chr_Deform(PyObject*, PyObject*) { return stub_call_named("chr.Deform", Py_BuildNone()); } +PyObject* stub_chr_Render(PyObject*, PyObject*) { return stub_call_named("chr.Render", Py_BuildNone()); } +PyObject* stub_chr_RenderCollision(PyObject*, PyObject*) { return stub_call_named("chr.RenderCollision", Py_BuildNone()); } +PyObject* stub_chr_CreateInstance(PyObject*, PyObject*) { return stub_call_named("chr.CreateInstance", Py_BuildNone()); } +PyObject* stub_chr_DeleteInstance(PyObject*, PyObject*) { return stub_call_named("chr.DeleteInstance", Py_BuildNone()); } +PyObject* stub_chr_DeleteInstanceByFade(PyObject*, PyObject*) { return stub_call_named("chr.DeleteInstanceByFade", Py_BuildNone()); } +PyObject* stub_chr_SelectInstance(PyObject*, PyObject*) { return stub_call_named("chr.SelectInstance", Py_BuildNone()); } +PyObject* stub_chr_HasInstance(PyObject*, PyObject*) { return stub_call_named("chr.HasInstance", Py_BuildValue("i", 0)); } +PyObject* stub_chr_IsEnemy(PyObject*, PyObject*) { return stub_call_named("chr.IsEnemy", Py_BuildValue("i", 0)); } +PyObject* stub_chr_IsNPC(PyObject*, PyObject*) { return stub_call_named("chr.IsNPC", Py_BuildValue("i", 0)); } +PyObject* stub_chr_IsGameMaster(PyObject*, PyObject*) { return stub_call_named("chr.IsGameMaster", Py_BuildValue("i", 0)); } +PyObject* stub_chr_IsPartyMember(PyObject*, PyObject*) { return stub_call_named("chr.IsPartyMember", Py_BuildValue("i", 0)); } +PyObject* stub_chr_Select(PyObject*, PyObject*) { return stub_call_named("chr.Select", Py_BuildNone()); } +PyObject* stub_chr_SetAddRenderMode(PyObject*, PyObject*) { return stub_call_named("chr.SetAddRenderMode", Py_BuildNone()); } +PyObject* stub_chr_SetBlendRenderMode(PyObject*, PyObject*) { return stub_call_named("chr.SetBlendRenderMode", Py_BuildNone()); } +PyObject* stub_chr_Unselect(PyObject*, PyObject*) { return stub_call_named("chr.Unselect", Py_BuildNone()); } +PyObject* stub_chr_Hide(PyObject*, PyObject*) { return stub_call_named("chr.Hide", Py_BuildNone()); } +PyObject* stub_chr_Show(PyObject*, PyObject*) { return stub_call_named("chr.Show", Py_BuildNone()); } +PyObject* stub_chr_Pick(PyObject*, PyObject*) { return stub_call_named("chr.Pick", Py_BuildValue("i", 0)); } +PyObject* stub_chr_PickAll(PyObject*, PyObject*) { return stub_call_named("chr.PickAll", Py_BuildValue("i", 0)); } +PyObject* stub_chr_SetArmor(PyObject*, PyObject*) { return stub_call_named("chr.SetArmor", Py_BuildNone()); } +PyObject* stub_chr_SetWeapon(PyObject*, PyObject*) { return stub_call_named("chr.SetWeapon", Py_BuildNone()); } +PyObject* stub_chr_ChangeShape(PyObject*, PyObject*) { return stub_call_named("chr.ChangeShape", Py_BuildNone()); } +PyObject* stub_chr_SetRace(PyObject*, PyObject*) { return stub_call_named("chr.SetRace", Py_BuildNone()); } +PyObject* stub_chr_SetHair(PyObject*, PyObject*) { return stub_call_named("chr.SetHair", Py_BuildNone()); } +PyObject* stub_chr_ChangeHair(PyObject*, PyObject*) { return stub_call_named("chr.ChangeHair", Py_BuildNone()); } +PyObject* stub_chr_SetVirtualID(PyObject*, PyObject*) { return stub_call_named("chr.SetVirtualID", Py_BuildNone()); } +PyObject* stub_chr_SetNameString(PyObject*, PyObject*) { return stub_call_named("chr.SetNameString", Py_BuildNone()); } +PyObject* stub_chr_SetInstanceType(PyObject*, PyObject*) { return stub_call_named("chr.SetInstanceType", Py_BuildNone()); } +PyObject* stub_chr_SetPixelPosition(PyObject*, PyObject*) { return stub_call_named("chr.SetPixelPosition", Py_BuildNone()); } +PyObject* stub_chr_SetDirection(PyObject*, PyObject*) { return stub_call_named("chr.SetDirection", Py_BuildNone()); } +PyObject* stub_chr_Refresh(PyObject*, PyObject*) { return stub_call_named("chr.Refresh", Py_BuildNone()); } +PyObject* stub_chr_Revive(PyObject*, PyObject*) { return stub_call_named("chr.Revive", Py_BuildNone()); } +PyObject* stub_chr_Die(PyObject*, PyObject*) { return stub_call_named("chr.Die", Py_BuildNone()); } +PyObject* stub_chr_AttachEffectByID(PyObject*, PyObject*) { return stub_call_named("chr.AttachEffectByID", Py_BuildNone()); } +PyObject* stub_chr_AttachEffectByName(PyObject*, PyObject*) { return stub_call_named("chr.AttachEffectByName", Py_BuildNone()); } +PyObject* stub_chr_LookAt(PyObject*, PyObject*) { return stub_call_named("chr.LookAt", Py_BuildNone()); } +PyObject* stub_chr_SetMotionMode(PyObject*, PyObject*) { return stub_call_named("chr.SetMotionMode", Py_BuildNone()); } +PyObject* stub_chr_SetLoopMotion(PyObject*, PyObject*) { return stub_call_named("chr.SetLoopMotion", Py_BuildNone()); } +PyObject* stub_chr_BlendLoopMotion(PyObject*, PyObject*) { return stub_call_named("chr.BlendLoopMotion", Py_BuildNone()); } +PyObject* stub_chr_PushOnceMotion(PyObject*, PyObject*) { return stub_call_named("chr.PushOnceMotion", Py_BuildNone()); } +PyObject* stub_chr_PushLoopMotion(PyObject*, PyObject*) { return stub_call_named("chr.PushLoopMotion", Py_BuildNone()); } +PyObject* stub_chr_GetPixelPosition(PyObject*, PyObject*) { return stub_call_named("chr.GetPixelPosition", Py_BuildValue("fff", 0.0, 0.0, 0.0)); } +PyObject* stub_chr_SetRotation(PyObject*, PyObject*) { return stub_call_named("chr.SetRotation", Py_BuildNone()); } +PyObject* stub_chr_SetRotationAll(PyObject*, PyObject*) { return stub_call_named("chr.SetRotationAll", Py_BuildNone()); } +PyObject* stub_chr_BlendRotation(PyObject*, PyObject*) { return stub_call_named("chr.BlendRotation", Py_BuildNone()); } +PyObject* stub_chr_GetRotation(PyObject*, PyObject*) { return stub_call_named("chr.GetRotation", Py_BuildValue("f", 0.0)); } +PyObject* stub_chr_GetRace(PyObject*, PyObject*) { return stub_call_named("chr.GetRace", Py_BuildValue("i", 0)); } +PyObject* stub_chr_GetName(PyObject*, PyObject*) { return stub_call_named("chr.GetName", Py_BuildValue("s", "")); } +PyObject* stub_chr_GetNameByVID(PyObject*, PyObject*) { return stub_call_named("chr.GetNameByVID", Py_BuildValue("s", "")); } +PyObject* stub_chr_GetGuildID(PyObject*, PyObject*) { return stub_call_named("chr.GetGuildID", Py_BuildValue("i", 0)); } +PyObject* stub_chr_GetProjectPosition(PyObject*, PyObject*) { return stub_call_named("chr.GetProjectPosition", Py_BuildValue("ii", 0, 0)); } +PyObject* stub_chr_GetVirtualNumber(PyObject*, PyObject*) { return stub_call_named("chr.GetVirtualNumber", Py_BuildValue("i", 0)); } +PyObject* stub_chr_GetInstanceType(PyObject*, PyObject*) { return stub_call_named("chr.GetInstanceType", Py_BuildValue("i", 0)); } +PyObject* stub_chr_GetBoundBoxOnlyXY(PyObject*, PyObject*) { return stub_call_named("chr.GetBoundBoxOnlyXY", Py_BuildValue("ffff", 0.0, 0.0, 0.0, 0.0)); } +PyObject* stub_chr_RaceToJob(PyObject*, PyObject*) { return stub_call_named("chr.RaceToJob", Py_BuildValue("i", 0)); } +PyObject* stub_chr_RaceToSex(PyObject*, PyObject*) { return stub_call_named("chr.RaceToSex", Py_BuildValue("i", 0)); } +PyObject* stub_chr_testGetPKData(PyObject*, PyObject*) { return stub_call_named("chr.testGetPKData", Py_BuildValue("ii", 0, 0)); } +PyObject* stub_chr_FaintTest(PyObject*, PyObject*) { return stub_call_named("chr.FaintTest", Py_BuildNone()); } +PyObject* stub_chr_SetMoveSpeed(PyObject*, PyObject*) { return stub_call_named("chr.SetMoveSpeed", Py_BuildNone()); } +PyObject* stub_chr_SetAttackSpeed(PyObject*, PyObject*) { return stub_call_named("chr.SetAttackSpeed", Py_BuildNone()); } +PyObject* stub_chr_WeaponTraceSetTexture(PyObject*, PyObject*) { return stub_call_named("chr.WeaponTraceSetTexture", Py_BuildNone()); } +PyObject* stub_chr_WeaponTraceUseAlpha(PyObject*, PyObject*) { return stub_call_named("chr.WeaponTraceUseAlpha", Py_BuildNone()); } +PyObject* stub_chr_WeaponTraceUseTexture(PyObject*, PyObject*) { return stub_call_named("chr.WeaponTraceUseTexture", Py_BuildNone()); } +PyObject* stub_chr_MoveToDestPosition(PyObject*, PyObject*) { return stub_call_named("chr.MoveToDestPosition", Py_BuildNone()); } +PyObject* stub_chr_testSetComboType(PyObject*, PyObject*) { return stub_call_named("chr.testSetComboType", Py_BuildNone()); } +PyObject* stub_chr_testSetAddRenderMode(PyObject*, PyObject*) { return stub_call_named("chr.testSetAddRenderMode", Py_BuildNone()); } +PyObject* stub_chr_testSetModulateRenderMode(PyObject*, PyObject*) { return stub_call_named("chr.testSetModulateRenderMode", Py_BuildNone()); } +PyObject* stub_chr_testSetAddRenderModeRGB(PyObject*, PyObject*) { return stub_call_named("chr.testSetAddRenderModeRGB", Py_BuildNone()); } +PyObject* stub_chr_testSetModulateRenderModeRGB(PyObject*, PyObject*) { return stub_call_named("chr.testSetModulateRenderModeRGB", Py_BuildNone()); } +PyObject* stub_chr_testSetSpecularRenderMode(PyObject*, PyObject*) { return stub_call_named("chr.testSetSpecularRenderMode", Py_BuildNone()); } +PyObject* stub_chr_testSetSpecularRenderMode2(PyObject*, PyObject*) { return stub_call_named("chr.testSetSpecularRenderMode2", Py_BuildNone()); } +PyObject* stub_chr_testRestoreRenderMode(PyObject*, PyObject*) { return stub_call_named("chr.testRestoreRenderMode", Py_BuildNone()); } +PyObject* stub_chr_testSetRideMan(PyObject*, PyObject*) { return stub_call_named("chr.testSetRideMan", Py_BuildNone()); } PyMethodDef methods_chr[] = { { "DismountHorse", stub_chr_DismountHorse, METH_VARARGS }, { "MountHorse", stub_chr_MountHorse, METH_VARARGS }, @@ -355,46 +378,44 @@ PyMethodDef methods_chr[] = { { "testSetRideMan", stub_chr_testSetRideMan, METH_VARARGS }, { NULL, NULL } }; -const char* ints_chr[] = {"PLAYER_NAME_MAX_LEN", "MOTION_NONE", "MOTION_SPAWN", "MOTION_WAIT", "MOTION_WALK", "MOTION_RUN", "MOTION_CHANGE_WEAPON", "MOTION_DAMAGE", "MOTION_DAMAGE_FLYING", "MOTION_STAND_UP", "MOTION_DAMAGE_BACK", "MOTION_DAMAGE_FLYING_BACK", "MOTION_STAND_UP_BACK", "MOTION_DEAD", "MOTION_DEAD_BACK", "MOTION_NORMAL_ATTACK", "MOTION_COMBO_ATTACK_1", "MOTION_COMBO_ATTACK_2", "MOTION_COMBO_ATTACK_3", "MOTION_COMBO_ATTACK_4", "MOTION_COMBO_ATTACK_5", "MOTION_COMBO_ATTACK_6", "MOTION_COMBO_ATTACK_7", "MOTION_COMBO_ATTACK_8", "MOTION_INTRO_WAIT", "MOTION_INTRO_SELECTED", "MOTION_INTRO_NOT_SELECTED", "MOTION_FISHING_THROW", "MOTION_FISHING_WAIT", "MOTION_FISHING_STOP", "MOTION_FISHING_REACT", "MOTION_FISHING_CATCH", "MOTION_FISHING_FAIL", "MOTION_STOP", "MOTION_SKILL", "MOTION_CLAP", "MOTION_DANCE_1", "MOTION_DANCE_2", "MOTION_DANCE_3", "MOTION_DANCE_4", "MOTION_DANCE_5", "MOTION_DANCE_6", "MOTION_CONGRATULATION", "MOTION_FORGIVE", "MOTION_ANGRY", "MOTION_ATTRACTIVE", "MOTION_SAD", "MOTION_SHY", "MOTION_CHEERUP", "MOTION_BANTER", "MOTION_JOY", "MOTION_CHEERS_1", "MOTION_CHEERS_2", "MOTION_KISS_WITH_WARRIOR", "MOTION_KISS_WITH_ASSASSIN", "MOTION_KISS_WITH_SURA", "MOTION_KISS_WITH_SHAMAN", "MOTION_FRENCH_KISS_WITH_WARRIOR", "MOTION_FRENCH_KISS_WITH_ASSASSIN", "MOTION_FRENCH_KISS_WITH_SURA", "MOTION_FRENCH_KISS_WITH_SHAMAN", "MOTION_SLAP_HIT_WITH_WARRIOR", "MOTION_SLAP_HIT_WITH_ASSASSIN", "MOTION_SLAP_HIT_WITH_SURA", "MOTION_SLAP_HIT_WITH_SHAMAN", "MOTION_SLAP_HURT_WITH_WARRIOR", "MOTION_SLAP_HURT_WITH_ASSASSIN", "MOTION_SLAP_HURT_WITH_SURA", "MOTION_SLAP_HURT_WITH_SHAMAN", "MOTION_DIG", "MOTION_MODE_RESERVED", "MOTION_MODE_GENERAL", "MOTION_MODE_ONEHAND_SWORD", "MOTION_MODE_TWOHAND_SWORD", "MOTION_MODE_DUALHAND_SWORD", "MOTION_MODE_BOW", "MOTION_MODE_FAN", "MOTION_MODE_BELL", "MOTION_MODE_FISHING", "MOTION_MODE_HORSE", "MOTION_MODE_HORSE_ONEHAND_SWORD", "MOTION_MODE_HORSE_TWOHAND_SWORD", "MOTION_MODE_HORSE_DUALHAND_SWORD", "MOTION_MODE_HORSE_BOW", "MOTION_MODE_HORSE_FAN", "MOTION_MODE_HORSE_BELL", "MOTION_MODE_WEDDING_DRESS", "DIR_NORTH", "DIR_NORTHEAST", "DIR_EAST", "DIR_SOUTHEAST", "DIR_SOUTH", "DIR_SOUTHWEST", "DIR_WEST", "DIR_NORTHWEST", "INSTANCE_TYPE_PLAYER", "INSTANCE_TYPE_NPC", "INSTANCE_TYPE_ENEMY", "INSTANCE_TYPE_BUILDING", "INSTANCE_TYPE_OBJECT", "PART_WEAPON", "PART_HEAD", "PART_WEAPON_LEFT", "AFFECT_POISON", "AFFECT_SLOW", "AFFECT_STUN", "AFFECT_MOV_SPEED_POTION", "AFFECT_ATT_SPEED_POTION", "AFFECT_FISH_MIND", "AFFECT_JEONGWI", "AFFECT_GEOMGYEONG", "AFFECT_CHEONGEUN", "AFFECT_GYEONGGONG", "AFFECT_EUNHYEONG", "AFFECT_GWIGEOM", "AFFECT_GONGPO", "AFFECT_JUMAGAP", "AFFECT_HOSIN", "AFFECT_BOHO", "AFFECT_KWAESOK", "AFFECT_HEUKSIN", "AFFECT_MUYEONG", "AFFECT_GICHEON", "AFFECT_JEUNGRYEOK", "AFFECT_PABEOP", "AFFECT_FALLEN_CHEONGEUN", "AFFECT_CHINA_FIREWORK", "NEW_AFFECT_MALL", "NEW_AFFECT_NO_DEATH_PENALTY", "NEW_AFFECT_SKILL_BOOK_BONUS", "NEW_AFFECT_SKILL_BOOK_NO_DELAY", "NEW_AFFECT_EXP_BONUS", "NEW_AFFECT_EXP_BONUS_EURO_FREE", "NEW_AFFECT_EXP_BONUS_EURO_FREE_UNDER_15", "NEW_AFFECT_ITEM_BONUS", "NEW_AFFECT_SAFEBOX", "NEW_AFFECT_AUTOLOOT", "NEW_AFFECT_FISH_MIND", "NEW_AFFECT_MARRIAGE_FAST", "NEW_AFFECT_GOLD_BONUS", "NEW_AFFECT_AUTO_HP_RECOVERY", "NEW_AFFECT_AUTO_SP_RECOVERY", "NEW_AFFECT_DRAGON_SOUL_QUALIFIED", "NEW_AFFECT_DRAGON_SOUL_DECK1", "NEW_AFFECT_DRAGON_SOUL_DECK2", NULL}; -const char* strings_chr[] = {NULL}; // 40250 UserInterface/PythonCharacterManagerModule.cpp: chrmgr export names. -PyObject* stub_chrmgr_SetEmpireNameMode(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetEmpireNameMode"); } -PyObject* stub_chrmgr_GetVIDInfo(PyObject*, PyObject*) { return stub_call_named("chrmgr.GetVIDInfo"); } -PyObject* stub_chrmgr_GetPickedVID(PyObject*, PyObject*) { return stub_call_named("chrmgr.GetPickedVID"); } -PyObject* stub_chrmgr_SetShapeModel(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetShapeModel"); } -PyObject* stub_chrmgr_AppendShapeSkin(PyObject*, PyObject*) { return stub_call_named("chrmgr.AppendShapeSkin"); } -PyObject* stub_chrmgr_SetPathName(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetPathName"); } -PyObject* stub_chrmgr_LoadRaceData(PyObject*, PyObject*) { return stub_call_named("chrmgr.LoadRaceData"); } -PyObject* stub_chrmgr_LoadLocalRaceData(PyObject*, PyObject*) { return stub_call_named("chrmgr.LoadLocalRaceData"); } -PyObject* stub_chrmgr_CreateRace(PyObject*, PyObject*) { return stub_call_named("chrmgr.CreateRace"); } -PyObject* stub_chrmgr_SelectRace(PyObject*, PyObject*) { return stub_call_named("chrmgr.SelectRace"); } -PyObject* stub_chrmgr_RegisterAttachingBoneName(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterAttachingBoneName"); } -PyObject* stub_chrmgr_RegisterMotionMode(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterMotionMode"); } -PyObject* stub_chrmgr_RegisterMotion(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterMotion"); } -PyObject* stub_chrmgr_SetMotionRandomWeight(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetMotionRandomWeight"); } -PyObject* stub_chrmgr_RegisterNormalAttack(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterNormalAttack"); } -PyObject* stub_chrmgr_ReserveComboAttack(PyObject*, PyObject*) { return stub_call_named("chrmgr.ReserveComboAttack"); } -PyObject* stub_chrmgr_RegisterComboAttack(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterComboAttack"); } -PyObject* stub_chrmgr_ReserveComboAttackNew(PyObject*, PyObject*) { return stub_call_named("chrmgr.ReserveComboAttackNew"); } -PyObject* stub_chrmgr_RegisterComboAttackNew(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterComboAttackNew"); } -PyObject* stub_chrmgr_RegisterMotionData(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterMotionData"); } -PyObject* stub_chrmgr_RegisterRaceName(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterRaceName"); } -PyObject* stub_chrmgr_RegisterRaceSrcName(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterRaceSrcName"); } -PyObject* stub_chrmgr_RegisterCacheMotionData(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterCacheMotionData"); } -PyObject* stub_chrmgr_SetAffect(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetAffect"); } -PyObject* stub_chrmgr_SetEmoticon(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetEmoticon"); } -PyObject* stub_chrmgr_IsPossibleEmoticon(PyObject*, PyObject*) { return stub_call_named("chrmgr.IsPossibleEmoticon"); } -PyObject* stub_chrmgr_RegisterEffect(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterEffect"); } -PyObject* stub_chrmgr_RegisterCacheEffect(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterCacheEffect"); } -PyObject* stub_chrmgr_RegisterPointEffect(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterPointEffect"); } -PyObject* stub_chrmgr_ShowPointEffect(PyObject*, PyObject*) { return stub_call_named("chrmgr.ShowPointEffect"); } -PyObject* stub_chrmgr_ToggleDirectionLine(PyObject*, PyObject*) { return stub_call_named("chrmgr.ToggleDirectionLine"); } -PyObject* stub_chrmgr_SetMovingSpeed(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetMovingSpeed"); } -PyObject* stub_chrmgr_SetDustGap(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetDustGap"); } -PyObject* stub_chrmgr_SetHorseDustGap(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetHorseDustGap"); } -PyObject* stub_chrmgr_RegisterTitleName(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterTitleName"); } -PyObject* stub_chrmgr_RegisterNameColor(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterNameColor"); } -PyObject* stub_chrmgr_RegisterTitleColor(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterTitleColor"); } +PyObject* stub_chrmgr_SetEmpireNameMode(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetEmpireNameMode", Py_BuildNone()); } +PyObject* stub_chrmgr_GetVIDInfo(PyObject*, PyObject*) { return stub_call_named("chrmgr.GetVIDInfo", Py_BuildValue("s", "")); } +PyObject* stub_chrmgr_GetPickedVID(PyObject*, PyObject*) { return stub_call_named("chrmgr.GetPickedVID", Py_BuildValue("i", 0)); } +PyObject* stub_chrmgr_SetShapeModel(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetShapeModel", Py_BuildNone()); } +PyObject* stub_chrmgr_AppendShapeSkin(PyObject*, PyObject*) { return stub_call_named("chrmgr.AppendShapeSkin", Py_BuildNone()); } +PyObject* stub_chrmgr_SetPathName(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetPathName", Py_BuildNone()); } +PyObject* stub_chrmgr_LoadRaceData(PyObject*, PyObject*) { return stub_call_named("chrmgr.LoadRaceData", Py_BuildNone()); } +PyObject* stub_chrmgr_LoadLocalRaceData(PyObject*, PyObject*) { return stub_call_named("chrmgr.LoadLocalRaceData", Py_BuildNone()); } +PyObject* stub_chrmgr_CreateRace(PyObject*, PyObject*) { return stub_call_named("chrmgr.CreateRace", Py_BuildNone()); } +PyObject* stub_chrmgr_SelectRace(PyObject*, PyObject*) { return stub_call_named("chrmgr.SelectRace", Py_BuildNone()); } +PyObject* stub_chrmgr_RegisterAttachingBoneName(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterAttachingBoneName", Py_BuildNone()); } +PyObject* stub_chrmgr_RegisterMotionMode(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterMotionMode", Py_BuildNone()); } +PyObject* stub_chrmgr_RegisterMotion(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterMotion", Py_BuildNone()); } +PyObject* stub_chrmgr_SetMotionRandomWeight(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetMotionRandomWeight", Py_BuildNone()); } +PyObject* stub_chrmgr_RegisterNormalAttack(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterNormalAttack", Py_BuildNone()); } +PyObject* stub_chrmgr_ReserveComboAttack(PyObject*, PyObject*) { return stub_call_named("chrmgr.ReserveComboAttack", Py_BuildNone()); } +PyObject* stub_chrmgr_RegisterComboAttack(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterComboAttack", Py_BuildNone()); } +PyObject* stub_chrmgr_ReserveComboAttackNew(PyObject*, PyObject*) { return stub_call_named("chrmgr.ReserveComboAttackNew", Py_BuildNone()); } +PyObject* stub_chrmgr_RegisterComboAttackNew(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterComboAttackNew", Py_BuildNone()); } +PyObject* stub_chrmgr_RegisterMotionData(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterMotionData", Py_BuildNone()); } +PyObject* stub_chrmgr_RegisterRaceName(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterRaceName", Py_BuildNone()); } +PyObject* stub_chrmgr_RegisterRaceSrcName(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterRaceSrcName", Py_BuildNone()); } +PyObject* stub_chrmgr_RegisterCacheMotionData(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterCacheMotionData", Py_BuildNone()); } +PyObject* stub_chrmgr_SetAffect(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetAffect", Py_BuildNone()); } +PyObject* stub_chrmgr_SetEmoticon(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetEmoticon", Py_BuildNone()); } +PyObject* stub_chrmgr_IsPossibleEmoticon(PyObject*, PyObject*) { return stub_call_named("chrmgr.IsPossibleEmoticon", Py_BuildValue("i", 0)); } +PyObject* stub_chrmgr_RegisterEffect(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterEffect", Py_BuildNone()); } +PyObject* stub_chrmgr_RegisterCacheEffect(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterCacheEffect", Py_BuildNone()); } +PyObject* stub_chrmgr_RegisterPointEffect(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterPointEffect", Py_BuildNone()); } +PyObject* stub_chrmgr_ShowPointEffect(PyObject*, PyObject*) { return stub_call_named("chrmgr.ShowPointEffect", Py_BuildNone()); } +PyObject* stub_chrmgr_ToggleDirectionLine(PyObject*, PyObject*) { return stub_call_named("chrmgr.ToggleDirectionLine", Py_BuildNone()); } +PyObject* stub_chrmgr_SetMovingSpeed(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetMovingSpeed", Py_BuildNone()); } +PyObject* stub_chrmgr_SetDustGap(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetDustGap", Py_BuildNone()); } +PyObject* stub_chrmgr_SetHorseDustGap(PyObject*, PyObject*) { return stub_call_named("chrmgr.SetHorseDustGap", Py_BuildNone()); } +PyObject* stub_chrmgr_RegisterTitleName(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterTitleName", Py_BuildNone()); } +PyObject* stub_chrmgr_RegisterNameColor(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterNameColor", Py_BuildNone()); } +PyObject* stub_chrmgr_RegisterTitleColor(PyObject*, PyObject*) { return stub_call_named("chrmgr.RegisterTitleColor", Py_BuildNone()); } PyMethodDef methods_chrmgr[] = { { "SetEmpireNameMode", stub_chrmgr_SetEmpireNameMode, METH_VARARGS }, { "GetVIDInfo", stub_chrmgr_GetVIDInfo, METH_VARARGS }, @@ -435,16 +456,14 @@ PyMethodDef methods_chrmgr[] = { { "RegisterTitleColor", stub_chrmgr_RegisterTitleColor, METH_VARARGS }, { NULL, NULL } }; -const char* ints_chrmgr[] = {"NAMECOLOR_MOB", "NAMECOLOR_NPC", "NAMECOLOR_PC", "NAMECOLOR_EMPIRE_MOB", "NAMECOLOR_EMPIRE_NPC", "NAMECOLOR_EMPIRE_PC", "NAMECOLOR_FUNC", "NAMECOLOR_PK", "NAMECOLOR_PVP", "NAMECOLOR_PARTY", "NAMECOLOR_WARP", "NAMECOLOR_WAYPOINT", "NAMECOLOR_EXTRA", "EFFECT_SPAWN_DISAPPEAR", "EFFECT_SPAWN_APPEAR", "EFFECT_DUST", "EFFECT_HORSE_DUST", "EFFECT_STUN", "EFFECT_HIT", "EFFECT_FLAME_ATTACK", "EFFECT_FLAME_HIT", "EFFECT_FLAME_ATTACH", "EFFECT_ELECTRIC_ATTACK", "EFFECT_ELECTRIC_HIT", "EFFECT_ELECTRIC_ATTACH", "EFFECT_SELECT", "EFFECT_TARGET", "EFFECT_CRITICAL", "EFFECT_DAMAGE_TARGET", "EFFECT_DAMAGE_NOT_TARGET", "EFFECT_DAMAGE_SELFDAMAGE", "EFFECT_DAMAGE_SELFDAMAGE2", "EFFECT_DAMAGE_POISON", "EFFECT_DAMAGE_MISS", "EFFECT_DAMAGE_TARGETMISS", "EFFECT_DAMAGE_CRITICAL", "EFFECT_LEVELUP", "EFFECT_SKILLUP", "EFFECT_HPUP_RED", "EFFECT_SPUP_BLUE", "EFFECT_SPEEDUP_GREEN", "EFFECT_DXUP_PURPLE", "EFFECT_PENETRATE", "EFFECT_BLOCK", "EFFECT_DODGE", "EFFECT_FIRECRACKER", "EFFECT_SPIN_TOP", "EFFECT_WEAPON", "EFFECT_AFFECT", "EFFECT_EMOTICON", "EFFECT_EMPIRE", "EFFECT_REFINED", "EFFECT_SUCCESS", "EFFECT_FAIL", "EFFECT_FR_SUCCESS", "EFFECT_LEVELUP_ON_14_FOR_GERMANY", "EFFECT_LEVELUP_UNDER_15_FOR_GERMANY", "EFFECT_PERCENT_DAMAGE1", "EFFECT_PERCENT_DAMAGE2", "EFFECT_PERCENT_DAMAGE3", "EFFECT_AUTO_HPUP", "EFFECT_AUTO_SPUP", "EFFECT_RAMADAN_RING_EQUIP", "EFFECT_HALLOWEEN_CANDY_EQUIP", "EFFECT_HAPPINESS_RING_EQUIP", "EFFECT_LOVE_PENDANT_EQUIP", NULL}; -const char* strings_chrmgr[] = {NULL}; // 40250 UserInterface/PythonEffectModule.cpp: effect export names. -PyObject* stub_effect_RegisterEffect(PyObject*, PyObject*) { return stub_call_named("effect.RegisterEffect"); } -PyObject* stub_effect_CreateEffect(PyObject*, PyObject*) { return stub_call_named("effect.CreateEffect"); } -PyObject* stub_effect_DeleteEffect(PyObject*, PyObject*) { return stub_call_named("effect.DeleteEffect"); } -PyObject* stub_effect_SetPosition(PyObject*, PyObject*) { return stub_call_named("effect.SetPosition"); } -PyObject* stub_effect_RegisterIndexedFlyData(PyObject*, PyObject*) { return stub_call_named("effect.RegisterIndexedFlyData"); } -PyObject* stub_effect_Update(PyObject*, PyObject*) { return stub_call_named("effect.Update"); } -PyObject* stub_effect_Render(PyObject*, PyObject*) { return stub_call_named("effect.Render"); } +PyObject* stub_effect_RegisterEffect(PyObject*, PyObject*) { return stub_call_named("effect.RegisterEffect", Py_BuildNone()); } +PyObject* stub_effect_CreateEffect(PyObject*, PyObject*) { return stub_call_named("effect.CreateEffect", Py_BuildValue("i", 0)); } +PyObject* stub_effect_DeleteEffect(PyObject*, PyObject*) { return stub_call_named("effect.DeleteEffect", Py_BuildNone()); } +PyObject* stub_effect_SetPosition(PyObject*, PyObject*) { return stub_call_named("effect.SetPosition", Py_BuildNone()); } +PyObject* stub_effect_RegisterIndexedFlyData(PyObject*, PyObject*) { return stub_call_named("effect.RegisterIndexedFlyData", Py_BuildNone()); } +PyObject* stub_effect_Update(PyObject*, PyObject*) { return stub_call_named("effect.Update", Py_BuildNone()); } +PyObject* stub_effect_Render(PyObject*, PyObject*) { return stub_call_named("effect.Render", Py_BuildNone()); } PyMethodDef methods_effect[] = { { "RegisterEffect", stub_effect_RegisterEffect, METH_VARARGS }, { "CreateEffect", stub_effect_CreateEffect, METH_VARARGS }, @@ -455,32 +474,30 @@ PyMethodDef methods_effect[] = { { "Render", stub_effect_Render, METH_VARARGS }, { NULL, NULL } }; -const char* ints_effect[] = {"INDEX_FLY_TYPE_NORMAL", "INDEX_FLY_TYPE_FIRE_CRACKER", "INDEX_FLY_TYPE_AUTO_FIRE", "FLY_NONE", "FLY_EXP", "FLY_HP_MEDIUM", "FLY_HP_BIG", "FLY_SP_SMALL", "FLY_SP_MEDIUM", "FLY_SP_BIG", "FLY_FIREWORK1", "FLY_FIREWORK2", "FLY_FIREWORK3", "FLY_FIREWORK4", "FLY_FIREWORK5", "FLY_FIREWORK6", "FLY_FIREWORK_XMAS", "FLY_CHAIN_LIGHTNING", "FLY_HP_SMALL", "FLY_SKILL_MUYEONG", NULL}; -const char* strings_effect[] = {NULL}; // 40250 UserInterface/PythonEventManagerMoudle.cpp: event export names. -PyObject* stub_event_RegisterEventSet(PyObject*, PyObject*) { return stub_call_named("event.RegisterEventSet"); } -PyObject* stub_event_RegisterEventSetFromString(PyObject*, PyObject*) { return stub_call_named("event.RegisterEventSetFromString"); } -PyObject* stub_event_ClearEventSet(PyObject*, PyObject*) { return stub_call_named("event.ClearEventSet"); } -PyObject* stub_event_SetRestrictedCount(PyObject*, PyObject*) { return stub_call_named("event.SetRestrictedCount"); } -PyObject* stub_event_GetEventSetLocalYPosition(PyObject*, PyObject*) { return stub_call_named("event.GetEventSetLocalYPosition"); } -PyObject* stub_event_AddEventSetLocalYPosition(PyObject*, PyObject*) { return stub_call_named("event.AddEventSetLocalYPosition"); } -PyObject* stub_event_InsertText(PyObject*, PyObject*) { return stub_call_named("event.InsertText"); } -PyObject* stub_event_InsertTextInline(PyObject*, PyObject*) { return stub_call_named("event.InsertTextInline"); } -PyObject* stub_event_UpdateEventSet(PyObject*, PyObject*) { return stub_call_named("event.UpdateEventSet"); } -PyObject* stub_event_RenderEventSet(PyObject*, PyObject*) { return stub_call_named("event.RenderEventSet"); } -PyObject* stub_event_SetEventSetWidth(PyObject*, PyObject*) { return stub_call_named("event.SetEventSetWidth"); } -PyObject* stub_event_Skip(PyObject*, PyObject*) { return stub_call_named("event.Skip"); } -PyObject* stub_event_IsWait(PyObject*, PyObject*) { return stub_call_named("event.IsWait"); } -PyObject* stub_event_EndEventProcess(PyObject*, PyObject*) { return stub_call_named("event.EndEventProcess"); } -PyObject* stub_event_SelectAnswer(PyObject*, PyObject*) { return stub_call_named("event.SelectAnswer"); } -PyObject* stub_event_GetLineCount(PyObject*, PyObject*) { return stub_call_named("event.GetLineCount"); } -PyObject* stub_event_SetVisibleStartLine(PyObject*, PyObject*) { return stub_call_named("event.SetVisibleStartLine"); } -PyObject* stub_event_GetVisibleStartLine(PyObject*, PyObject*) { return stub_call_named("event.GetVisibleStartLine"); } -PyObject* stub_event_SetEventHandler(PyObject*, PyObject*) { return stub_call_named("event.SetEventHandler"); } -PyObject* stub_event_SetInterfaceWindow(PyObject*, PyObject*) { return stub_call_named("event.SetInterfaceWindow"); } -PyObject* stub_event_SetLeftTimeString(PyObject*, PyObject*) { return stub_call_named("event.SetLeftTimeString"); } -PyObject* stub_event_QuestButtonClick(PyObject*, PyObject*) { return stub_call_named("event.QuestButtonClick"); } -PyObject* stub_event_Destroy(PyObject*, PyObject*) { return stub_call_named("event.Destroy"); } +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 }, @@ -507,35 +524,31 @@ PyMethodDef methods_event[] = { { "Destroy", stub_event_Destroy, METH_VARARGS }, { NULL, NULL } }; -const char* ints_event[] = {"BOX_VISIBLE_LINE_COUNT", "BUTTON_TYPE_NEXT", "BUTTON_TYPE_DONE", "BUTTON_TYPE_CANCEL", NULL}; -const char* strings_event[] = {NULL}; // 40250 UserInterface/PythonGameEventManagerModule.cpp: eventMgr export names. -PyObject* stub_eventMgr_Update(PyObject*, PyObject*) { return stub_call_named("eventMgr.Update"); } +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 } }; -const char* ints_eventMgr[] = {NULL}; -const char* strings_eventMgr[] = {NULL}; // 40250 UserInterface/PythonExchangeModule.cpp: exchange export names. -PyObject* stub_exchange_InitTrading(PyObject*, PyObject*) { return stub_call_named("exchange.InitTrading"); } -PyObject* stub_exchange_isTrading(PyObject*, PyObject*) { return stub_call_named("exchange.isTrading"); } -PyObject* stub_exchange_GetElkFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetElkFromSelf"); } -PyObject* stub_exchange_GetElkFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetElkFromTarget"); } -PyObject* stub_exchange_GetItemVnumFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemVnumFromSelf"); } -PyObject* stub_exchange_GetItemVnumFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemVnumFromTarget"); } -PyObject* stub_exchange_GetItemCountFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemCountFromSelf"); } -PyObject* stub_exchange_GetItemCountFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemCountFromTarget"); } -PyObject* stub_exchange_GetAcceptFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetAcceptFromSelf"); } -PyObject* stub_exchange_GetAcceptFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetAcceptFromTarget"); } -PyObject* stub_exchange_GetNameFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetNameFromSelf"); } -PyObject* stub_exchange_GetNameFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetNameFromTarget"); } -PyObject* stub_exchange_GetItemMetinSocketFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemMetinSocketFromTarget"); } -PyObject* stub_exchange_GetItemMetinSocketFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemMetinSocketFromSelf"); } -PyObject* stub_exchange_GetItemAttributeFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemAttributeFromTarget"); } -PyObject* stub_exchange_GetItemAttributeFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemAttributeFromSelf"); } -PyObject* stub_exchange_GetElkMode(PyObject*, PyObject*) { return stub_call_named("exchange.GetElkMode"); } -PyObject* stub_exchange_SetElkMode(PyObject*, PyObject*) { return stub_call_named("exchange.SetElkMode"); } +PyObject* stub_exchange_InitTrading(PyObject*, PyObject*) { return stub_call_named("exchange.InitTrading", Py_BuildNone()); } +PyObject* stub_exchange_isTrading(PyObject*, PyObject*) { return stub_call_named("exchange.isTrading", Py_BuildValue("i", 0)); } +PyObject* stub_exchange_GetElkFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetElkFromSelf", Py_BuildValue("i", 0)); } +PyObject* stub_exchange_GetElkFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetElkFromTarget", Py_BuildValue("i", 0)); } +PyObject* stub_exchange_GetItemVnumFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemVnumFromSelf", Py_BuildValue("i", 0)); } +PyObject* stub_exchange_GetItemVnumFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemVnumFromTarget", Py_BuildValue("i", 0)); } +PyObject* stub_exchange_GetItemCountFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemCountFromSelf", Py_BuildValue("i", 0)); } +PyObject* stub_exchange_GetItemCountFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemCountFromTarget", Py_BuildValue("i", 0)); } +PyObject* stub_exchange_GetAcceptFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetAcceptFromSelf", Py_BuildValue("i", 0)); } +PyObject* stub_exchange_GetAcceptFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetAcceptFromTarget", Py_BuildValue("i", 0)); } +PyObject* stub_exchange_GetNameFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetNameFromSelf", Py_BuildValue("s", "")); } +PyObject* stub_exchange_GetNameFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetNameFromTarget", Py_BuildValue("s", "")); } +PyObject* stub_exchange_GetItemMetinSocketFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemMetinSocketFromTarget", Py_BuildValue("i", 0)); } +PyObject* stub_exchange_GetItemMetinSocketFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemMetinSocketFromSelf", Py_BuildValue("i", 0)); } +PyObject* stub_exchange_GetItemAttributeFromTarget(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemAttributeFromTarget", Py_BuildValue("ii", 0, 0)); } +PyObject* stub_exchange_GetItemAttributeFromSelf(PyObject*, PyObject*) { return stub_call_named("exchange.GetItemAttributeFromSelf", Py_BuildValue("ii", 0, 0)); } +PyObject* stub_exchange_GetElkMode(PyObject*, PyObject*) { return stub_call_named("exchange.GetElkMode", Py_BuildValue("b", 0)); } +PyObject* stub_exchange_SetElkMode(PyObject*, PyObject*) { return stub_call_named("exchange.SetElkMode", Py_BuildNone()); } PyMethodDef methods_exchange[] = { { "InitTrading", stub_exchange_InitTrading, METH_VARARGS }, { "isTrading", stub_exchange_isTrading, METH_VARARGS }, @@ -557,53 +570,49 @@ PyMethodDef methods_exchange[] = { { "SetElkMode", stub_exchange_SetElkMode, METH_VARARGS }, { NULL, NULL } }; -const char* ints_exchange[] = {"EXCHANGE_ITEM_MAX_NUM", NULL}; -const char* strings_exchange[] = {NULL}; // 40250 UserInterface/PythonFlyModule.cpp: fly export names. -PyObject* stub_fly_Update(PyObject*, PyObject*) { return stub_call_named("fly.Update"); } -PyObject* stub_fly_Render(PyObject*, PyObject*) { return stub_call_named("fly.Render"); } +PyObject* stub_fly_Update(PyObject*, PyObject*) { return stub_call_named("fly.Update", Py_BuildNone()); } +PyObject* stub_fly_Render(PyObject*, PyObject*) { return stub_call_named("fly.Render", Py_BuildNone()); } PyMethodDef methods_fly[] = { { "Update", stub_fly_Update, METH_VARARGS }, { "Render", stub_fly_Render, METH_VARARGS }, { NULL, NULL } }; -const char* ints_fly[] = {NULL}; -const char* strings_fly[] = {NULL}; // 40250 UserInterface/PythonGuild.cpp: guild export names. -PyObject* stub_guild_IsGuildEnable(PyObject*, PyObject*) { return stub_call_named("guild.IsGuildEnable"); } -PyObject* stub_guild_GuildIDToMarkID(PyObject*, PyObject*) { return stub_call_named("guild.GuildIDToMarkID"); } -PyObject* stub_guild_GetMarkImageFilenameByMarkID(PyObject*, PyObject*) { return stub_call_named("guild.GetMarkImageFilenameByMarkID"); } -PyObject* stub_guild_GetMarkIndexByMarkID(PyObject*, PyObject*) { return stub_call_named("guild.GetMarkIndexByMarkID"); } -PyObject* stub_guild_GetGuildID(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildID"); } -PyObject* stub_guild_HasGuildLand(PyObject*, PyObject*) { return stub_call_named("guild.HasGuildLand"); } -PyObject* stub_guild_GetGuildName(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildName"); } -PyObject* stub_guild_GetGuildMasterName(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildMasterName"); } -PyObject* stub_guild_GetEnemyGuildName(PyObject*, PyObject*) { return stub_call_named("guild.GetEnemyGuildName"); } -PyObject* stub_guild_GetGuildMoney(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildMoney"); } -PyObject* stub_guild_GetGuildBoardCommentCount(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildBoardCommentCount"); } -PyObject* stub_guild_GetGuildBoardCommentData(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildBoardCommentData"); } -PyObject* stub_guild_GetGuildLevel(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildLevel"); } -PyObject* stub_guild_GetGuildExperience(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildExperience"); } -PyObject* stub_guild_GetGuildMemberCount(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildMemberCount"); } -PyObject* stub_guild_GetGuildMemberLevelSummary(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildMemberLevelSummary"); } -PyObject* stub_guild_GetGuildMemberLevelAverage(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildMemberLevelAverage"); } -PyObject* stub_guild_GetGuildExperienceSummary(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildExperienceSummary"); } -PyObject* stub_guild_GetGuildSkillPoint(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildSkillPoint"); } -PyObject* stub_guild_GetDragonPowerPoint(PyObject*, PyObject*) { return stub_call_named("guild.GetDragonPowerPoint"); } -PyObject* stub_guild_GetGuildSkillLevel(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildSkillLevel"); } -PyObject* stub_guild_GetSkillLevel(PyObject*, PyObject*) { return stub_call_named("guild.GetSkillLevel"); } -PyObject* stub_guild_GetSkillMaxLevelNew(PyObject*, PyObject*) { return stub_call_named("guild.GetSkillMaxLevelNew"); } -PyObject* stub_guild_SetSkillIndex(PyObject*, PyObject*) { return stub_call_named("guild.SetSkillIndex"); } -PyObject* stub_guild_GetSkillIndex(PyObject*, PyObject*) { return stub_call_named("guild.GetSkillIndex"); } -PyObject* stub_guild_GetGradeData(PyObject*, PyObject*) { return stub_call_named("guild.GetGradeData"); } -PyObject* stub_guild_GetGradeName(PyObject*, PyObject*) { return stub_call_named("guild.GetGradeName"); } -PyObject* stub_guild_GetMemberCount(PyObject*, PyObject*) { return stub_call_named("guild.GetMemberCount"); } -PyObject* stub_guild_GetMemberData(PyObject*, PyObject*) { return stub_call_named("guild.GetMemberData"); } -PyObject* stub_guild_MemberIndexToPID(PyObject*, PyObject*) { return stub_call_named("guild.MemberIndexToPID"); } -PyObject* stub_guild_IsMember(PyObject*, PyObject*) { return stub_call_named("guild.IsMember"); } -PyObject* stub_guild_IsMemberByName(PyObject*, PyObject*) { return stub_call_named("guild.IsMemberByName"); } -PyObject* stub_guild_MainPlayerHasAuthority(PyObject*, PyObject*) { return stub_call_named("guild.MainPlayerHasAuthority"); } -PyObject* stub_guild_Destroy(PyObject*, PyObject*) { return stub_call_named("guild.Destroy"); } +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)); } +PyObject* stub_guild_GetMarkImageFilenameByMarkID(PyObject*, PyObject*) { return stub_call_named("guild.GetMarkImageFilenameByMarkID", Py_BuildValue("s", "")); } +PyObject* stub_guild_GetMarkIndexByMarkID(PyObject*, PyObject*) { return stub_call_named("guild.GetMarkIndexByMarkID", Py_BuildValue("i", 0)); } +PyObject* stub_guild_GetGuildID(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildID", Py_BuildValue("i", 0)); } +PyObject* stub_guild_HasGuildLand(PyObject*, PyObject*) { return stub_call_named("guild.HasGuildLand", Py_BuildValue("i", 0)); } +PyObject* stub_guild_GetGuildName(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildName", Py_BuildValue("s", "")); } +PyObject* stub_guild_GetGuildMasterName(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildMasterName", Py_BuildValue("s", "")); } +PyObject* stub_guild_GetEnemyGuildName(PyObject*, PyObject*) { return stub_call_named("guild.GetEnemyGuildName", Py_BuildValue("s", "")); } +PyObject* stub_guild_GetGuildMoney(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildMoney", Py_BuildValue("i", 0)); } +PyObject* stub_guild_GetGuildBoardCommentCount(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildBoardCommentCount", Py_BuildValue("i", 0)); } +PyObject* stub_guild_GetGuildBoardCommentData(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildBoardCommentData", Py_BuildValue("iss", 0, "", "")); } +PyObject* stub_guild_GetGuildLevel(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildLevel", Py_BuildValue("i", 0)); } +PyObject* stub_guild_GetGuildExperience(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildExperience", Py_BuildValue("ii", 0, 0)); } +PyObject* stub_guild_GetGuildMemberCount(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildMemberCount", Py_BuildValue("ii", 0, 0)); } +PyObject* stub_guild_GetGuildMemberLevelSummary(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildMemberLevelSummary", Py_BuildValue("i", 0)); } +PyObject* stub_guild_GetGuildMemberLevelAverage(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildMemberLevelAverage", Py_BuildValue("i", 0)); } +PyObject* stub_guild_GetGuildExperienceSummary(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildExperienceSummary", Py_BuildValue("i", 0)); } +PyObject* stub_guild_GetGuildSkillPoint(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildSkillPoint", Py_BuildValue("i", 0)); } +PyObject* stub_guild_GetDragonPowerPoint(PyObject*, PyObject*) { return stub_call_named("guild.GetDragonPowerPoint", Py_BuildValue("ii", 0, 0)); } +PyObject* stub_guild_GetGuildSkillLevel(PyObject*, PyObject*) { return stub_call_named("guild.GetGuildSkillLevel", Py_BuildValue("i", 0)); } +PyObject* stub_guild_GetSkillLevel(PyObject*, PyObject*) { return stub_call_named("guild.GetSkillLevel", Py_BuildValue("i", 0)); } +PyObject* stub_guild_GetSkillMaxLevelNew(PyObject*, PyObject*) { return stub_call_named("guild.GetSkillMaxLevelNew", Py_BuildValue("i", 0)); } +PyObject* stub_guild_SetSkillIndex(PyObject*, PyObject*) { return stub_call_named("guild.SetSkillIndex", Py_BuildNone()); } +PyObject* stub_guild_GetSkillIndex(PyObject*, PyObject*) { return stub_call_named("guild.GetSkillIndex", Py_BuildValue("i", 0)); } +PyObject* stub_guild_GetGradeData(PyObject*, PyObject*) { return stub_call_named("guild.GetGradeData", Py_BuildValue("si", "", 0)); } +PyObject* stub_guild_GetGradeName(PyObject*, PyObject*) { return stub_call_named("guild.GetGradeName", Py_BuildValue("s", "")); } +PyObject* stub_guild_GetMemberCount(PyObject*, PyObject*) { return stub_call_named("guild.GetMemberCount", Py_BuildValue("i", 0)); } +PyObject* stub_guild_GetMemberData(PyObject*, PyObject*) { return stub_call_named("guild.GetMemberData", Py_BuildValue("isiiiii", 0, "", 0, 0, 0, 0, 0)); } +PyObject* stub_guild_MemberIndexToPID(PyObject*, PyObject*) { return stub_call_named("guild.MemberIndexToPID", Py_BuildValue("i", 0)); } +PyObject* stub_guild_IsMember(PyObject*, PyObject*) { return stub_call_named("guild.IsMember", Py_BuildValue("i", 0)); } +PyObject* stub_guild_IsMemberByName(PyObject*, PyObject*) { return stub_call_named("guild.IsMemberByName", Py_BuildValue("i", 0)); } +PyObject* stub_guild_MainPlayerHasAuthority(PyObject*, PyObject*) { return stub_call_named("guild.MainPlayerHasAuthority", Py_BuildValue("i", 0)); } +PyObject* stub_guild_Destroy(PyObject*, PyObject*) { return stub_call_named("guild.Destroy", Py_BuildNone()); } PyMethodDef methods_guild[] = { { "IsGuildEnable", stub_guild_IsGuildEnable, METH_VARARGS }, { "GuildIDToMarkID", stub_guild_GuildIDToMarkID, METH_VARARGS }, @@ -641,42 +650,40 @@ PyMethodDef methods_guild[] = { { "Destroy", stub_guild_Destroy, METH_VARARGS }, { NULL, NULL } }; -const char* ints_guild[] = {"AUTH_ADD_MEMBER", "AUTH_REMOVE_MEMBER", "AUTH_NOTICE", "AUTH_SKILL", "ENEMY_GUILD_SLOT_MAX_COUNT", NULL}; -const char* strings_guild[] = {NULL}; // 40250 UserInterface/PythonIMEModule.cpp: ime export names. -PyObject* stub_ime_Enable(PyObject*, PyObject*) { return stub_call_named("ime.Enable"); } -PyObject* stub_ime_Disable(PyObject*, PyObject*) { return stub_call_named("ime.Disable"); } -PyObject* stub_ime_EnableCaptureInput(PyObject*, PyObject*) { return stub_call_named("ime.EnableCaptureInput"); } -PyObject* stub_ime_DisableCaptureInput(PyObject*, PyObject*) { return stub_call_named("ime.DisableCaptureInput"); } -PyObject* stub_ime_SetMax(PyObject*, PyObject*) { return stub_call_named("ime.SetMax"); } -PyObject* stub_ime_SetUserMax(PyObject*, PyObject*) { return stub_call_named("ime.SetUserMax"); } -PyObject* stub_ime_SetText(PyObject*, PyObject*) { return stub_call_named("ime.SetText"); } -PyObject* stub_ime_GetText(PyObject*, PyObject*) { return stub_call_named("ime.GetText"); } -PyObject* stub_ime_GetCodePage(PyObject*, PyObject*) { return stub_call_named("ime.GetCodePage"); } -PyObject* stub_ime_GetCandidateCount(PyObject*, PyObject*) { return stub_call_named("ime.GetCandidateCount"); } -PyObject* stub_ime_GetCandidate(PyObject*, PyObject*) { return stub_call_named("ime.GetCandidate"); } -PyObject* stub_ime_GetCandidateSelection(PyObject*, PyObject*) { return stub_call_named("ime.GetCandidateSelection"); } -PyObject* stub_ime_GetReading(PyObject*, PyObject*) { return stub_call_named("ime.GetReading"); } -PyObject* stub_ime_GetReadingError(PyObject*, PyObject*) { return stub_call_named("ime.GetReadingError"); } -PyObject* stub_ime_EnableIME(PyObject*, PyObject*) { return stub_call_named("ime.EnableIME"); } -PyObject* stub_ime_DisableIME(PyObject*, PyObject*) { return stub_call_named("ime.DisableIME"); } -PyObject* stub_ime_GetInputMode(PyObject*, PyObject*) { return stub_call_named("ime.GetInputMode"); } -PyObject* stub_ime_SetInputMode(PyObject*, PyObject*) { return stub_call_named("ime.SetInputMode"); } -PyObject* stub_ime_SetNumberMode(PyObject*, PyObject*) { return stub_call_named("ime.SetNumberMode"); } -PyObject* stub_ime_SetStringMode(PyObject*, PyObject*) { return stub_call_named("ime.SetStringMode"); } -PyObject* stub_ime_AddExceptKey(PyObject*, PyObject*) { return stub_call_named("ime.AddExceptKey"); } -PyObject* stub_ime_ClearExceptKey(PyObject*, PyObject*) { return stub_call_named("ime.ClearExceptKey"); } -PyObject* stub_ime_MoveLeft(PyObject*, PyObject*) { return stub_call_named("ime.MoveLeft"); } -PyObject* stub_ime_MoveRight(PyObject*, PyObject*) { return stub_call_named("ime.MoveRight"); } -PyObject* stub_ime_MoveHome(PyObject*, PyObject*) { return stub_call_named("ime.MoveHome"); } -PyObject* stub_ime_MoveEnd(PyObject*, PyObject*) { return stub_call_named("ime.MoveEnd"); } -PyObject* stub_ime_SetCursorPosition(PyObject*, PyObject*) { return stub_call_named("ime.SetCursorPosition"); } -PyObject* stub_ime_Delete(PyObject*, PyObject*) { return stub_call_named("ime.Delete"); } -PyObject* stub_ime_PasteString(PyObject*, PyObject*) { return stub_call_named("ime.PasteString"); } -PyObject* stub_ime_PasteBackspace(PyObject*, PyObject*) { return stub_call_named("ime.PasteBackspace"); } -PyObject* stub_ime_PasteReturn(PyObject*, PyObject*) { return stub_call_named("ime.PasteReturn"); } -PyObject* stub_ime_PasteTextFromClipBoard(PyObject*, PyObject*) { return stub_call_named("ime.PasteTextFromClipBoard"); } -PyObject* stub_ime_EnablePaste(PyObject*, PyObject*) { return stub_call_named("ime.EnablePaste"); } +PyObject* stub_ime_Enable(PyObject*, PyObject*) { return stub_call_named("ime.Enable", Py_BuildNone()); } +PyObject* stub_ime_Disable(PyObject*, PyObject*) { return stub_call_named("ime.Disable", Py_BuildNone()); } +PyObject* stub_ime_EnableCaptureInput(PyObject*, PyObject*) { return stub_call_named("ime.EnableCaptureInput", Py_BuildNone()); } +PyObject* stub_ime_DisableCaptureInput(PyObject*, PyObject*) { return stub_call_named("ime.DisableCaptureInput", Py_BuildNone()); } +PyObject* stub_ime_SetMax(PyObject*, PyObject*) { return stub_call_named("ime.SetMax", Py_BuildNone()); } +PyObject* stub_ime_SetUserMax(PyObject*, PyObject*) { return stub_call_named("ime.SetUserMax", Py_BuildNone()); } +PyObject* stub_ime_SetText(PyObject*, PyObject*) { return stub_call_named("ime.SetText", Py_BuildNone()); } +PyObject* stub_ime_GetText(PyObject*, PyObject*) { return stub_call_named("ime.GetText", Py_BuildValue("s", "")); } +PyObject* stub_ime_GetCodePage(PyObject*, PyObject*) { return stub_call_named("ime.GetCodePage", Py_BuildValue("i", 0)); } +PyObject* stub_ime_GetCandidateCount(PyObject*, PyObject*) { return stub_call_named("ime.GetCandidateCount", Py_BuildValue("i", 0)); } +PyObject* stub_ime_GetCandidate(PyObject*, PyObject*) { return stub_call_named("ime.GetCandidate", Py_BuildValue("si", "", 0)); } +PyObject* stub_ime_GetCandidateSelection(PyObject*, PyObject*) { return stub_call_named("ime.GetCandidateSelection", Py_BuildValue("i", 0)); } +PyObject* stub_ime_GetReading(PyObject*, PyObject*) { return stub_call_named("ime.GetReading", Py_BuildValue("s", "")); } +PyObject* stub_ime_GetReadingError(PyObject*, PyObject*) { return stub_call_named("ime.GetReadingError", Py_BuildValue("i", 0)); } +PyObject* stub_ime_EnableIME(PyObject*, PyObject*) { return stub_call_named("ime.EnableIME", Py_BuildNone()); } +PyObject* stub_ime_DisableIME(PyObject*, PyObject*) { return stub_call_named("ime.DisableIME", Py_BuildNone()); } +PyObject* stub_ime_GetInputMode(PyObject*, PyObject*) { return stub_call_named("ime.GetInputMode", Py_BuildValue("i", 0)); } +PyObject* stub_ime_SetInputMode(PyObject*, PyObject*) { return stub_call_named("ime.SetInputMode", Py_BuildNone()); } +PyObject* stub_ime_SetNumberMode(PyObject*, PyObject*) { return stub_call_named("ime.SetNumberMode", Py_BuildNone()); } +PyObject* stub_ime_SetStringMode(PyObject*, PyObject*) { return stub_call_named("ime.SetStringMode", Py_BuildNone()); } +PyObject* stub_ime_AddExceptKey(PyObject*, PyObject*) { return stub_call_named("ime.AddExceptKey", Py_BuildNone()); } +PyObject* stub_ime_ClearExceptKey(PyObject*, PyObject*) { return stub_call_named("ime.ClearExceptKey", Py_BuildNone()); } +PyObject* stub_ime_MoveLeft(PyObject*, PyObject*) { return stub_call_named("ime.MoveLeft", Py_BuildNone()); } +PyObject* stub_ime_MoveRight(PyObject*, PyObject*) { return stub_call_named("ime.MoveRight", Py_BuildNone()); } +PyObject* stub_ime_MoveHome(PyObject*, PyObject*) { return stub_call_named("ime.MoveHome", Py_BuildNone()); } +PyObject* stub_ime_MoveEnd(PyObject*, PyObject*) { return stub_call_named("ime.MoveEnd", Py_BuildNone()); } +PyObject* stub_ime_SetCursorPosition(PyObject*, PyObject*) { return stub_call_named("ime.SetCursorPosition", Py_BuildNone()); } +PyObject* stub_ime_Delete(PyObject*, PyObject*) { return stub_call_named("ime.Delete", Py_BuildNone()); } +PyObject* stub_ime_PasteString(PyObject*, PyObject*) { return stub_call_named("ime.PasteString", Py_BuildNone()); } +PyObject* stub_ime_PasteBackspace(PyObject*, PyObject*) { return stub_call_named("ime.PasteBackspace", Py_BuildNone()); } +PyObject* stub_ime_PasteReturn(PyObject*, PyObject*) { return stub_call_named("ime.PasteReturn", Py_BuildNone()); } +PyObject* stub_ime_PasteTextFromClipBoard(PyObject*, PyObject*) { return stub_call_named("ime.PasteTextFromClipBoard", Py_BuildNone()); } +PyObject* stub_ime_EnablePaste(PyObject*, PyObject*) { return stub_call_named("ime.EnablePaste", Py_BuildNone()); } PyMethodDef methods_ime[] = { { "Enable", stub_ime_Enable, METH_VARARGS }, { "Disable", stub_ime_Disable, METH_VARARGS }, @@ -713,45 +720,43 @@ PyMethodDef methods_ime[] = { { "EnablePaste", stub_ime_EnablePaste, METH_VARARGS }, { NULL, NULL } }; -const char* ints_ime[] = {NULL}; -const char* strings_ime[] = {NULL}; // 40250 UserInterface/PythonItemModule.cpp: item export names. -PyObject* stub_item_SetUseSoundFileName(PyObject*, PyObject*) { return stub_call_named("item.SetUseSoundFileName"); } -PyObject* stub_item_SetDropSoundFileName(PyObject*, PyObject*) { return stub_call_named("item.SetDropSoundFileName"); } -PyObject* stub_item_SelectItem(PyObject*, PyObject*) { return stub_call_named("item.SelectItem"); } -PyObject* stub_item_GetItemName(PyObject*, PyObject*) { return stub_call_named("item.GetItemName"); } -PyObject* stub_item_GetItemDescription(PyObject*, PyObject*) { return stub_call_named("item.GetItemDescription"); } -PyObject* stub_item_GetItemSummary(PyObject*, PyObject*) { return stub_call_named("item.GetItemSummary"); } -PyObject* stub_item_GetIconImage(PyObject*, PyObject*) { return stub_call_named("item.GetIconImage"); } -PyObject* stub_item_GetIconImageFileName(PyObject*, PyObject*) { return stub_call_named("item.GetIconImageFileName"); } -PyObject* stub_item_GetItemSize(PyObject*, PyObject*) { return stub_call_named("item.GetItemSize"); } -PyObject* stub_item_GetItemType(PyObject*, PyObject*) { return stub_call_named("item.GetItemType"); } -PyObject* stub_item_GetItemSubType(PyObject*, PyObject*) { return stub_call_named("item.GetItemSubType"); } -PyObject* stub_item_GetIBuyItemPrice(PyObject*, PyObject*) { return stub_call_named("item.GetIBuyItemPrice"); } -PyObject* stub_item_GetISellItemPrice(PyObject*, PyObject*) { return stub_call_named("item.GetISellItemPrice"); } -PyObject* stub_item_IsAntiFlag(PyObject*, PyObject*) { return stub_call_named("item.IsAntiFlag"); } -PyObject* stub_item_IsFlag(PyObject*, PyObject*) { return stub_call_named("item.IsFlag"); } -PyObject* stub_item_IsWearableFlag(PyObject*, PyObject*) { return stub_call_named("item.IsWearableFlag"); } -PyObject* stub_item_Is1GoldItem(PyObject*, PyObject*) { return stub_call_named("item.Is1GoldItem"); } -PyObject* stub_item_GetLimit(PyObject*, PyObject*) { return stub_call_named("item.GetLimit"); } -PyObject* stub_item_GetAffect(PyObject*, PyObject*) { return stub_call_named("item.GetAffect"); } -PyObject* stub_item_GetValue(PyObject*, PyObject*) { return stub_call_named("item.GetValue"); } -PyObject* stub_item_GetSocket(PyObject*, PyObject*) { return stub_call_named("item.GetSocket"); } -PyObject* stub_item_GetIconInstance(PyObject*, PyObject*) { return stub_call_named("item.GetIconInstance"); } -PyObject* stub_item_GetUseType(PyObject*, PyObject*) { return stub_call_named("item.GetUseType"); } -PyObject* stub_item_DeleteIconInstance(PyObject*, PyObject*) { return stub_call_named("item.DeleteIconInstance"); } -PyObject* stub_item_IsEquipmentVID(PyObject*, PyObject*) { return stub_call_named("item.IsEquipmentVID"); } -PyObject* stub_item_IsRefineScroll(PyObject*, PyObject*) { return stub_call_named("item.IsRefineScroll"); } -PyObject* stub_item_IsDetachScroll(PyObject*, PyObject*) { return stub_call_named("item.IsDetachScroll"); } -PyObject* stub_item_IsKey(PyObject*, PyObject*) { return stub_call_named("item.IsKey"); } -PyObject* stub_item_IsMetin(PyObject*, PyObject*) { return stub_call_named("item.IsMetin"); } -PyObject* stub_item_CanAddToQuickSlotItem(PyObject*, PyObject*) { return stub_call_named("item.CanAddToQuickSlotItem"); } -PyObject* stub_item_Update(PyObject*, PyObject*) { return stub_call_named("item.Update"); } -PyObject* stub_item_Render(PyObject*, PyObject*) { return stub_call_named("item.Render"); } -PyObject* stub_item_CreateItem(PyObject*, PyObject*) { return stub_call_named("item.CreateItem"); } -PyObject* stub_item_DeleteItem(PyObject*, PyObject*) { return stub_call_named("item.DeleteItem"); } -PyObject* stub_item_Pick(PyObject*, PyObject*) { return stub_call_named("item.Pick"); } -PyObject* stub_item_LoadItemTable(PyObject*, PyObject*) { return stub_call_named("item.LoadItemTable"); } +PyObject* stub_item_SetUseSoundFileName(PyObject*, PyObject*) { return stub_call_named("item.SetUseSoundFileName", Py_BuildNone()); } +PyObject* stub_item_SetDropSoundFileName(PyObject*, PyObject*) { return stub_call_named("item.SetDropSoundFileName", Py_BuildNone()); } +PyObject* stub_item_SelectItem(PyObject*, PyObject*) { return stub_call_named("item.SelectItem", Py_BuildNone()); } +PyObject* stub_item_GetItemName(PyObject*, PyObject*) { return stub_call_named("item.GetItemName", Py_BuildValue("s", "")); } +PyObject* stub_item_GetItemDescription(PyObject*, PyObject*) { return stub_call_named("item.GetItemDescription", Py_BuildValue("s", "")); } +PyObject* stub_item_GetItemSummary(PyObject*, PyObject*) { return stub_call_named("item.GetItemSummary", Py_BuildValue("s", "")); } +PyObject* stub_item_GetIconImage(PyObject*, PyObject*) { return stub_call_named("item.GetIconImage", Py_BuildValue("i", 0)); } +PyObject* stub_item_GetIconImageFileName(PyObject*, PyObject*) { return stub_call_named("item.GetIconImageFileName", Py_BuildValue("s", "")); } +PyObject* stub_item_GetItemSize(PyObject*, PyObject*) { return stub_call_named("item.GetItemSize", Py_BuildValue("(ii)", 0, 0)); } +PyObject* stub_item_GetItemType(PyObject*, PyObject*) { return stub_call_named("item.GetItemType", Py_BuildValue("i", 0)); } +PyObject* stub_item_GetItemSubType(PyObject*, PyObject*) { return stub_call_named("item.GetItemSubType", Py_BuildValue("i", 0)); } +PyObject* stub_item_GetIBuyItemPrice(PyObject*, PyObject*) { return stub_call_named("item.GetIBuyItemPrice", Py_BuildValue("i", 0)); } +PyObject* stub_item_GetISellItemPrice(PyObject*, PyObject*) { return stub_call_named("item.GetISellItemPrice", Py_BuildValue("i", 0)); } +PyObject* stub_item_IsAntiFlag(PyObject*, PyObject*) { return stub_call_named("item.IsAntiFlag", Py_BuildValue("i", 0)); } +PyObject* stub_item_IsFlag(PyObject*, PyObject*) { return stub_call_named("item.IsFlag", Py_BuildValue("i", 0)); } +PyObject* stub_item_IsWearableFlag(PyObject*, PyObject*) { return stub_call_named("item.IsWearableFlag", Py_BuildValue("i", 0)); } +PyObject* stub_item_Is1GoldItem(PyObject*, PyObject*) { return stub_call_named("item.Is1GoldItem", Py_BuildValue("i", 0)); } +PyObject* stub_item_GetLimit(PyObject*, PyObject*) { return stub_call_named("item.GetLimit", Py_BuildValue("ii", 0, 0)); } +PyObject* stub_item_GetAffect(PyObject*, PyObject*) { return stub_call_named("item.GetAffect", Py_BuildValue("ii", 0, 0)); } +PyObject* stub_item_GetValue(PyObject*, PyObject*) { return stub_call_named("item.GetValue", Py_BuildValue("i", 0)); } +PyObject* stub_item_GetSocket(PyObject*, PyObject*) { return stub_call_named("item.GetSocket", Py_BuildValue("i", 0)); } +PyObject* stub_item_GetIconInstance(PyObject*, PyObject*) { return stub_call_named("item.GetIconInstance", Py_BuildValue("i", 0)); } +PyObject* stub_item_GetUseType(PyObject*, PyObject*) { return stub_call_named("item.GetUseType", Py_BuildValue("s", "")); } +PyObject* stub_item_DeleteIconInstance(PyObject*, PyObject*) { return stub_call_named("item.DeleteIconInstance", Py_BuildNone()); } +PyObject* stub_item_IsEquipmentVID(PyObject*, PyObject*) { return stub_call_named("item.IsEquipmentVID", Py_BuildValue("i", 0)); } +PyObject* stub_item_IsRefineScroll(PyObject*, PyObject*) { return stub_call_named("item.IsRefineScroll", Py_BuildValue("i", 0)); } +PyObject* stub_item_IsDetachScroll(PyObject*, PyObject*) { return stub_call_named("item.IsDetachScroll", Py_BuildValue("i", 0)); } +PyObject* stub_item_IsKey(PyObject*, PyObject*) { return stub_call_named("item.IsKey", Py_BuildValue("i", 0)); } +PyObject* stub_item_IsMetin(PyObject*, PyObject*) { return stub_call_named("item.IsMetin", Py_BuildValue("i", 0)); } +PyObject* stub_item_CanAddToQuickSlotItem(PyObject*, PyObject*) { return stub_call_named("item.CanAddToQuickSlotItem", Py_BuildValue("i", 0)); } +PyObject* stub_item_Update(PyObject*, PyObject*) { return stub_call_named("item.Update", Py_BuildNone()); } +PyObject* stub_item_Render(PyObject*, PyObject*) { return stub_call_named("item.Render", Py_BuildNone()); } +PyObject* stub_item_CreateItem(PyObject*, PyObject*) { return stub_call_named("item.CreateItem", Py_BuildNone()); } +PyObject* stub_item_DeleteItem(PyObject*, PyObject*) { return stub_call_named("item.DeleteItem", Py_BuildNone()); } +PyObject* stub_item_Pick(PyObject*, PyObject*) { return stub_call_named("item.Pick", Py_BuildValue("i", 0)); } +PyObject* stub_item_LoadItemTable(PyObject*, PyObject*) { return stub_call_named("item.LoadItemTable", Py_BuildNone()); } PyMethodDef methods_item[] = { { "SetUseSoundFileName", stub_item_SetUseSoundFileName, METH_VARARGS }, { "SetDropSoundFileName", stub_item_SetDropSoundFileName, METH_VARARGS }, @@ -791,14 +796,12 @@ PyMethodDef methods_item[] = { { "LoadItemTable", stub_item_LoadItemTable, METH_VARARGS }, { NULL, NULL } }; -const char* ints_item[] = {"USESOUND_ACCESSORY", "USESOUND_ARMOR", "USESOUND_BOW", "USESOUND_DEFAULT", "USESOUND_WEAPON", "USESOUND_POTION", "USESOUND_PORTAL", "DROPSOUND_ACCESSORY", "DROPSOUND_ARMOR", "DROPSOUND_BOW", "DROPSOUND_DEFAULT", "DROPSOUND_WEAPON", "EQUIPMENT_COUNT", "EQUIPMENT_HEAD", "EQUIPMENT_BODY", "EQUIPMENT_WEAPON", "EQUIPMENT_WRIST", "EQUIPMENT_SHOES", "EQUIPMENT_NECK", "EQUIPMENT_EAR", "EQUIPMENT_UNIQUE1", "EQUIPMENT_UNIQUE2", "EQUIPMENT_ARROW", "EQUIPMENT_RING1", "EQUIPMENT_RING2", "EQUIPMENT_BELT", "ITEM_TYPE_NONE", "ITEM_TYPE_WEAPON", "ITEM_TYPE_ARMOR", "ITEM_TYPE_USE", "ITEM_TYPE_AUTOUSE", "ITEM_TYPE_MATERIAL", "ITEM_TYPE_SPECIAL", "ITEM_TYPE_TOOL", "ITEM_TYPE_LOTTERY", "ITEM_TYPE_ELK", "ITEM_TYPE_METIN", "ITEM_TYPE_CONTAINER", "ITEM_TYPE_FISH", "ITEM_TYPE_ROD", "ITEM_TYPE_RESOURCE", "ITEM_TYPE_CAMPFIRE", "ITEM_TYPE_UNIQUE", "ITEM_TYPE_SKILLBOOK", "ITEM_TYPE_QUEST", "ITEM_TYPE_POLYMORPH", "ITEM_TYPE_TREASURE_BOX", "ITEM_TYPE_TREASURE_KEY", "ITEM_TYPE_PICK", "ITEM_TYPE_BLEND", "ITEM_TYPE_DS", "ITEM_TYPE_SPECIAL_DS", "ITEM_TYPE_RING", "ITEM_TYPE_BELT", "ITEM_TYPE_COSTUME", "COSTUME_TYPE_BODY", "COSTUME_TYPE_HAIR", "COSTUME_SLOT_START", "COSTUME_SLOT_COUNT", "COSTUME_SLOT_BODY", "COSTUME_SLOT_HAIR", "COSTUME_SLOT_END", "BELT_INVENTORY_SLOT_START", "BELT_INVENTORY_SLOT_COUNT", "BELT_INVENTORY_SLOT_END", "WEAPON_SWORD", "WEAPON_DAGGER", "WEAPON_BOW", "WEAPON_TWO_HANDED", "WEAPON_BELL", "WEAPON_FAN", "WEAPON_ARROW", "WEAPON_NUM_TYPES", "USE_POTION", "USE_TALISMAN", "USE_TUNING", "USE_MOVE", "USE_TREASURE_BOX", "USE_MONEYBAG", "USE_BAIT", "USE_ABILITY_UP", "USE_AFFECT", "USE_CREATE_STONE", "USE_SPECIAL", "USE_POTION_NODELAY", "USE_CLEAR", "USE_INVISIBILITY", "USE_DETACHMENT", "USE_TIME_CHARGE_PER", "USE_TIME_CHARGE_FIX", "MATERIAL_DS_REFINE_NORMAL", "MATERIAL_DS_REFINE_BLESSED", "MATERIAL_DS_REFINE_HOLLY", "METIN_NORMAL", "METIN_GOLD", "LIMIT_NONE", "LIMIT_LEVEL", "LIMIT_STR", "LIMIT_DEX", "LIMIT_INT", "LIMIT_CON", "LIMIT_PCBANG", "LIMIT_REAL_TIME", "LIMIT_REAL_TIME_START_FIRST_USE", "LIMIT_TIMER_BASED_ON_WEAR", "LIMIT_TYPE_MAX_NUM", "LIMIT_MAX_NUM", "ITEM_ANTIFLAG_FEMALE", "ITEM_ANTIFLAG_MALE", "ITEM_ANTIFLAG_WARRIOR", "ITEM_ANTIFLAG_ASSASSIN", "ITEM_ANTIFLAG_SURA", "ITEM_ANTIFLAG_SHAMAN", "ITEM_ANTIFLAG_GET", "ITEM_ANTIFLAG_DROP", "ITEM_ANTIFLAG_SELL", "ITEM_ANTIFLAG_EMPIRE_A", "ITEM_ANTIFLAG_EMPIRE_B", "ITEM_ANTIFLAG_EMPIRE_R", "ITEM_ANTIFLAG_SAVE", "ITEM_ANTIFLAG_GIVE", "ITEM_ANTIFLAG_PKDROP", "ITEM_ANTIFLAG_STACK", "ITEM_ANTIFLAG_MYSHOP", "ITEM_FLAG_RARE", "ITEM_FLAG_UNIQUE", "ITEM_FLAG_CONFIRM_WHEN_USE", "ANTIFLAG_FEMALE", "ANTIFLAG_MALE", "ANTIFLAG_WARRIOR", "ANTIFLAG_ASSASSIN", "ANTIFLAG_SURA", "ANTIFLAG_SHAMAN", "ANTIFLAG_GET", "ANTIFLAG_DROP", "ANTIFLAG_SELL", "ANTIFLAG_EMPIRE_A", "ANTIFLAG_EMPIRE_B", "ANTIFLAG_EMPIRE_R", "ANTIFLAG_SAVE", "ANTIFLAG_GIVE", "ANTIFLAG_PKDROP", "ANTIFLAG_STACK", "ANTIFLAG_MYSHOP", "WEARABLE_BODY", "WEARABLE_HEAD", "WEARABLE_FOOTS", "WEARABLE_WRIST", "WEARABLE_WEAPON", "WEARABLE_NECK", "WEARABLE_EAR", "WEARABLE_UNIQUE", "WEARABLE_SHIELD", "WEARABLE_ARROW", "ARMOR_BODY", "ARMOR_HEAD", "ARMOR_SHIELD", "ARMOR_WRIST", "ARMOR_FOOTS", "ARMOR_NECK", "ARMOR_EAR", "ITEM_APPLY_MAX_NUM", "ITEM_SOCKET_MAX_NUM", "APPLY_NONE", "APPLY_STR", "APPLY_DEX", "APPLY_CON", "APPLY_INT", "APPLY_MAX_HP", "APPLY_MAX_SP", "APPLY_HP_REGEN", "APPLY_SP_REGEN", "APPLY_DEF_GRADE_BONUS", "APPLY_ATT_GRADE_BONUS", "APPLY_ATT_SPEED", "APPLY_MOV_SPEED", "APPLY_CAST_SPEED", "APPLY_MAGIC_ATT_GRADE", "APPLY_MAGIC_DEF_GRADE", "APPLY_SKILL", "APPLY_ATTBONUS_ANIMAL", "APPLY_ATTBONUS_UNDEAD", "APPLY_ATTBONUS_DEVIL", "APPLY_ATTBONUS_HUMAN", "APPLY_BOW_DISTANCE", "APPLY_RESIST_BOW", "APPLY_RESIST_FIRE", "APPLY_RESIST_ELEC", "APPLY_RESIST_MAGIC", "APPLY_POISON_PCT", "APPLY_SLOW_PCT", "APPLY_STUN_PCT", "APPLY_CRITICAL_PCT", "APPLY_PENETRATE_PCT", "APPLY_ATTBONUS_ORC", "APPLY_ATTBONUS_MILGYO", "APPLY_STEAL_HP", "APPLY_STEAL_SP", "APPLY_MANA_BURN_PCT", "APPLY_DAMAGE_SP_RECOVER", "APPLY_BLOCK", "APPLY_DODGE", "APPLY_RESIST_SWORD", "APPLY_RESIST_TWOHAND", "APPLY_RESIST_DAGGER", "APPLY_RESIST_BELL", "APPLY_RESIST_FAN", "APPLY_RESIST_WIND", "APPLY_REFLECT_MELEE", "APPLY_REFLECT_CURSE", "APPLY_POISON_REDUCE", "APPLY_KILL_SP_RECOVER", "APPLY_EXP_DOUBLE_BONUS", "APPLY_GOLD_DOUBLE_BONUS", "APPLY_ITEM_DROP_BONUS", "APPLY_POTION_BONUS", "APPLY_KILL_HP_RECOVER", "APPLY_IMMUNE_STUN", "APPLY_IMMUNE_SLOW", "APPLY_IMMUNE_FALL", "APPLY_MAX_STAMINA", "APPLY_ATTBONUS_WARRIOR", "APPLY_ATTBONUS_ASSASSIN", "APPLY_ATTBONUS_SURA", "APPLY_ATTBONUS_SHAMAN", "APPLY_ATTBONUS_MONSTER", "APPLY_MALL_ATTBONUS", "APPLY_MALL_DEFBONUS", "APPLY_MALL_EXPBONUS", "APPLY_MALL_ITEMBONUS", "APPLY_MALL_GOLDBONUS", "APPLY_MAX_HP_PCT", "APPLY_MAX_SP_PCT", "APPLY_SKILL_DAMAGE_BONUS", "APPLY_NORMAL_HIT_DAMAGE_BONUS", "APPLY_SKILL_DEFEND_BONUS", "APPLY_NORMAL_HIT_DEFEND_BONUS", "APPLY_PC_BANG_EXP_BONUS", "APPLY_PC_BANG_DROP_BONUS", "APPLY_RESIST_WARRIOR", "APPLY_RESIST_ASSASSIN", "APPLY_RESIST_SURA", "APPLY_RESIST_SHAMAN", "APPLY_ENERGY", "APPLY_COSTUME_ATTR_BONUS", "APPLY_MAGIC_ATTBONUS_PER", "APPLY_MELEE_MAGIC_ATTBONUS_PER", "APPLY_RESIST_ICE", "APPLY_RESIST_EARTH", "APPLY_RESIST_DARK", "APPLY_ANTI_CRITICAL_PCT", "APPLY_ANTI_PENETRATE_PCT", NULL}; -const char* strings_item[] = {NULL}; // 40250 UserInterface/PythonMessenger.cpp: messenger export names. -PyObject* stub_messenger_RemoveFriend(PyObject*, PyObject*) { return stub_call_named("messenger.RemoveFriend"); } -PyObject* stub_messenger_IsFriendByName(PyObject*, PyObject*) { return stub_call_named("messenger.IsFriendByName"); } -PyObject* stub_messenger_Destroy(PyObject*, PyObject*) { return stub_call_named("messenger.Destroy"); } -PyObject* stub_messenger_RefreshGuildMember(PyObject*, PyObject*) { return stub_call_named("messenger.RefreshGuildMember"); } -PyObject* stub_messenger_SetMessengerHandler(PyObject*, PyObject*) { return stub_call_named("messenger.SetMessengerHandler"); } +PyObject* stub_messenger_RemoveFriend(PyObject*, PyObject*) { return stub_call_named("messenger.RemoveFriend", Py_BuildNone()); } +PyObject* stub_messenger_IsFriendByName(PyObject*, PyObject*) { return stub_call_named("messenger.IsFriendByName", Py_BuildValue("i", 0)); } +PyObject* stub_messenger_Destroy(PyObject*, PyObject*) { return stub_call_named("messenger.Destroy", Py_BuildNone()); } +PyObject* stub_messenger_RefreshGuildMember(PyObject*, PyObject*) { return stub_call_named("messenger.RefreshGuildMember", Py_BuildNone()); } +PyObject* stub_messenger_SetMessengerHandler(PyObject*, PyObject*) { return stub_call_named("messenger.SetMessengerHandler", Py_BuildNone()); } PyMethodDef methods_messenger[] = { { "RemoveFriend", stub_messenger_RemoveFriend, METH_VARARGS }, { "IsFriendByName", stub_messenger_IsFriendByName, METH_VARARGS }, @@ -807,36 +810,34 @@ PyMethodDef methods_messenger[] = { { "SetMessengerHandler", stub_messenger_SetMessengerHandler, METH_VARARGS }, { NULL, NULL } }; -const char* ints_messenger[] = {NULL}; -const char* strings_messenger[] = {NULL}; // 40250 UserInterface/PythonMiniMapModule.cpp: miniMap export names. -PyObject* stub_miniMap_SetScale(PyObject*, PyObject*) { return stub_call_named("miniMap.SetScale"); } -PyObject* stub_miniMap_ScaleUp(PyObject*, PyObject*) { return stub_call_named("miniMap.ScaleUp"); } -PyObject* stub_miniMap_ScaleDown(PyObject*, PyObject*) { return stub_call_named("miniMap.ScaleDown"); } -PyObject* stub_miniMap_SetMiniMapSize(PyObject*, PyObject*) { return stub_call_named("miniMap.SetMiniMapSize"); } -PyObject* stub_miniMap_SetCenterPosition(PyObject*, PyObject*) { return stub_call_named("miniMap.SetCenterPosition"); } -PyObject* stub_miniMap_Destroy(PyObject*, PyObject*) { return stub_call_named("miniMap.Destroy"); } -PyObject* stub_miniMap_Create(PyObject*, PyObject*) { return stub_call_named("miniMap.Create"); } -PyObject* stub_miniMap_Update(PyObject*, PyObject*) { return stub_call_named("miniMap.Update"); } -PyObject* stub_miniMap_Render(PyObject*, PyObject*) { return stub_call_named("miniMap.Render"); } -PyObject* stub_miniMap_Show(PyObject*, PyObject*) { return stub_call_named("miniMap.Show"); } -PyObject* stub_miniMap_Hide(PyObject*, PyObject*) { return stub_call_named("miniMap.Hide"); } -PyObject* stub_miniMap_isShow(PyObject*, PyObject*) { return stub_call_named("miniMap.isShow"); } -PyObject* stub_miniMap_GetInfo(PyObject*, PyObject*) { return stub_call_named("miniMap.GetInfo"); } -PyObject* stub_miniMap_LoadAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.LoadAtlas"); } -PyObject* stub_miniMap_UpdateAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.UpdateAtlas"); } -PyObject* stub_miniMap_RenderAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.RenderAtlas"); } -PyObject* stub_miniMap_ShowAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.ShowAtlas"); } -PyObject* stub_miniMap_HideAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.HideAtlas"); } -PyObject* stub_miniMap_isShowAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.isShowAtlas"); } -PyObject* stub_miniMap_IsAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.IsAtlas"); } -PyObject* stub_miniMap_GetAtlasInfo(PyObject*, PyObject*) { return stub_call_named("miniMap.GetAtlasInfo"); } -PyObject* stub_miniMap_GetAtlasSize(PyObject*, PyObject*) { return stub_call_named("miniMap.GetAtlasSize"); } -PyObject* stub_miniMap_AddWayPoint(PyObject*, PyObject*) { return stub_call_named("miniMap.AddWayPoint"); } -PyObject* stub_miniMap_RemoveWayPoint(PyObject*, PyObject*) { return stub_call_named("miniMap.RemoveWayPoint"); } -PyObject* stub_miniMap_RegisterAtlasWindow(PyObject*, PyObject*) { return stub_call_named("miniMap.RegisterAtlasWindow"); } -PyObject* stub_miniMap_UnregisterAtlasWindow(PyObject*, PyObject*) { return stub_call_named("miniMap.UnregisterAtlasWindow"); } -PyObject* stub_miniMap_GetGuildAreaID(PyObject*, PyObject*) { return stub_call_named("miniMap.GetGuildAreaID"); } +PyObject* stub_miniMap_SetScale(PyObject*, PyObject*) { return stub_call_named("miniMap.SetScale", Py_BuildNone()); } +PyObject* stub_miniMap_ScaleUp(PyObject*, PyObject*) { return stub_call_named("miniMap.ScaleUp", Py_BuildNone()); } +PyObject* stub_miniMap_ScaleDown(PyObject*, PyObject*) { return stub_call_named("miniMap.ScaleDown", Py_BuildNone()); } +PyObject* stub_miniMap_SetMiniMapSize(PyObject*, PyObject*) { return stub_call_named("miniMap.SetMiniMapSize", Py_BuildNone()); } +PyObject* stub_miniMap_SetCenterPosition(PyObject*, PyObject*) { return stub_call_named("miniMap.SetCenterPosition", Py_BuildNone()); } +PyObject* stub_miniMap_Destroy(PyObject*, PyObject*) { return stub_call_named("miniMap.Destroy", Py_BuildNone()); } +PyObject* stub_miniMap_Create(PyObject*, PyObject*) { return stub_call_named("miniMap.Create", Py_BuildNone()); } +PyObject* stub_miniMap_Update(PyObject*, PyObject*) { return stub_call_named("miniMap.Update", Py_BuildNone()); } +PyObject* stub_miniMap_Render(PyObject*, PyObject*) { return stub_call_named("miniMap.Render", Py_BuildNone()); } +PyObject* stub_miniMap_Show(PyObject*, PyObject*) { return stub_call_named("miniMap.Show", Py_BuildNone()); } +PyObject* stub_miniMap_Hide(PyObject*, PyObject*) { return stub_call_named("miniMap.Hide", Py_BuildNone()); } +PyObject* stub_miniMap_isShow(PyObject*, PyObject*) { return stub_call_named("miniMap.isShow", Py_BuildValue("b", 0)); } +PyObject* stub_miniMap_GetInfo(PyObject*, PyObject*) { return stub_call_named("miniMap.GetInfo", Py_BuildValue("isiil", 0, "", 0, 0, 0L)); } +PyObject* stub_miniMap_LoadAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.LoadAtlas", Py_BuildNone()); } +PyObject* stub_miniMap_UpdateAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.UpdateAtlas", Py_BuildNone()); } +PyObject* stub_miniMap_RenderAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.RenderAtlas", Py_BuildNone()); } +PyObject* stub_miniMap_ShowAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.ShowAtlas", Py_BuildNone()); } +PyObject* stub_miniMap_HideAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.HideAtlas", Py_BuildNone()); } +PyObject* stub_miniMap_isShowAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.isShowAtlas", Py_BuildValue("b", 0)); } +PyObject* stub_miniMap_IsAtlas(PyObject*, PyObject*) { return stub_call_named("miniMap.IsAtlas", Py_BuildValue("b", 0)); } +PyObject* stub_miniMap_GetAtlasInfo(PyObject*, PyObject*) { return stub_call_named("miniMap.GetAtlasInfo", Py_BuildValue("isiili", 0, "", 0, 0, 0L, 0)); } +PyObject* stub_miniMap_GetAtlasSize(PyObject*, PyObject*) { return stub_call_named("miniMap.GetAtlasSize", Py_BuildValue("bii", 0, 0, 0)); } +PyObject* stub_miniMap_AddWayPoint(PyObject*, PyObject*) { return stub_call_named("miniMap.AddWayPoint", Py_BuildNone()); } +PyObject* stub_miniMap_RemoveWayPoint(PyObject*, PyObject*) { return stub_call_named("miniMap.RemoveWayPoint", Py_BuildNone()); } +PyObject* stub_miniMap_RegisterAtlasWindow(PyObject*, PyObject*) { return stub_call_named("miniMap.RegisterAtlasWindow", Py_BuildNone()); } +PyObject* stub_miniMap_UnregisterAtlasWindow(PyObject*, PyObject*) { return stub_call_named("miniMap.UnregisterAtlasWindow", Py_BuildNone()); } +PyObject* stub_miniMap_GetGuildAreaID(PyObject*, PyObject*) { return stub_call_named("miniMap.GetGuildAreaID", Py_BuildValue("i", 0)); } PyMethodDef methods_miniMap[] = { { "SetScale", stub_miniMap_SetScale, METH_VARARGS }, { "ScaleUp", stub_miniMap_ScaleUp, METH_VARARGS }, @@ -867,15 +868,13 @@ PyMethodDef methods_miniMap[] = { { "GetGuildAreaID", stub_miniMap_GetGuildAreaID, METH_VARARGS }, { NULL, NULL } }; -const char* ints_miniMap[] = {"TYPE_OPC", "TYPE_OPCPVP", "TYPE_OPCPVPSELF", "TYPE_NPC", "TYPE_MONSTER", "TYPE_WARP", "TYPE_WAYPOINT", "TYPE_PARTY", "TYPE_EMPIRE", NULL}; -const char* strings_miniMap[] = {NULL}; // 40250 UserInterface/PythonNonPlayerModule.cpp: nonplayer export names. -PyObject* stub_nonplayer_GetEventType(PyObject*, PyObject*) { return stub_call_named("nonplayer.GetEventType"); } -PyObject* stub_nonplayer_GetEventTypeByVID(PyObject*, PyObject*) { return stub_call_named("nonplayer.GetEventTypeByVID"); } -PyObject* stub_nonplayer_GetLevelByVID(PyObject*, PyObject*) { return stub_call_named("nonplayer.GetLevelByVID"); } -PyObject* stub_nonplayer_GetGradeByVID(PyObject*, PyObject*) { return stub_call_named("nonplayer.GetGradeByVID"); } -PyObject* stub_nonplayer_GetMonsterName(PyObject*, PyObject*) { return stub_call_named("nonplayer.GetMonsterName"); } -PyObject* stub_nonplayer_LoadNonPlayerData(PyObject*, PyObject*) { return stub_call_named("nonplayer.LoadNonPlayerData"); } +PyObject* stub_nonplayer_GetEventType(PyObject*, PyObject*) { return stub_call_named("nonplayer.GetEventType", Py_BuildValue("i", 0)); } +PyObject* stub_nonplayer_GetEventTypeByVID(PyObject*, PyObject*) { return stub_call_named("nonplayer.GetEventTypeByVID", Py_BuildValue("i", 0)); } +PyObject* stub_nonplayer_GetLevelByVID(PyObject*, PyObject*) { return stub_call_named("nonplayer.GetLevelByVID", Py_BuildValue("i", 0)); } +PyObject* stub_nonplayer_GetGradeByVID(PyObject*, PyObject*) { return stub_call_named("nonplayer.GetGradeByVID", Py_BuildValue("i", 0)); } +PyObject* stub_nonplayer_GetMonsterName(PyObject*, PyObject*) { return stub_call_named("nonplayer.GetMonsterName", Py_BuildValue("s", "")); } +PyObject* stub_nonplayer_LoadNonPlayerData(PyObject*, PyObject*) { return stub_call_named("nonplayer.LoadNonPlayerData", Py_BuildNone()); } PyMethodDef methods_nonplayer[] = { { "GetEventType", stub_nonplayer_GetEventType, METH_VARARGS }, { "GetEventTypeByVID", stub_nonplayer_GetEventTypeByVID, METH_VARARGS }, @@ -885,140 +884,138 @@ PyMethodDef methods_nonplayer[] = { { "LoadNonPlayerData", stub_nonplayer_LoadNonPlayerData, METH_VARARGS }, { NULL, NULL } }; -const char* ints_nonplayer[] = {"ON_CLICK_EVENT_NONE", "ON_CLICK_EVENT_BATTLE", "ON_CLICK_EVENT_SHOP", "ON_CLICK_EVENT_TALK", "ON_CLICK_EVENT_VEHICLE", "PAWN", "S_PAWN", "KNIGHT", "S_KNIGHT", "BOSS", "KING", NULL}; -const char* strings_nonplayer[] = {NULL}; // 40250 UserInterface/PythonPlayerModule.cpp: player export names. -PyObject* stub_player_GetAutoPotionInfo(PyObject*, PyObject*) { return stub_call_named("player.GetAutoPotionInfo"); } -PyObject* stub_player_SetAutoPotionInfo(PyObject*, PyObject*) { return stub_call_named("player.SetAutoPotionInfo"); } -PyObject* stub_player_PickCloseItem(PyObject*, PyObject*) { return stub_call_named("player.PickCloseItem"); } -PyObject* stub_player_SetGameWindow(PyObject*, PyObject*) { return stub_call_named("player.SetGameWindow"); } -PyObject* stub_player_RegisterEffect(PyObject*, PyObject*) { return stub_call_named("player.RegisterEffect"); } -PyObject* stub_player_RegisterCacheEffect(PyObject*, PyObject*) { return stub_call_named("player.RegisterCacheEffect"); } -PyObject* stub_player_SetMouseState(PyObject*, PyObject*) { return stub_call_named("player.SetMouseState"); } -PyObject* stub_player_SetMouseFunc(PyObject*, PyObject*) { return stub_call_named("player.SetMouseFunc"); } -PyObject* stub_player_GetMouseFunc(PyObject*, PyObject*) { return stub_call_named("player.GetMouseFunc"); } -PyObject* stub_player_SetMouseMiddleButtonState(PyObject*, PyObject*) { return stub_call_named("player.SetMouseMiddleButtonState"); } -PyObject* stub_player_SetMainCharacterIndex(PyObject*, PyObject*) { return stub_call_named("player.SetMainCharacterIndex"); } -PyObject* stub_player_GetMainCharacterIndex(PyObject*, PyObject*) { return stub_call_named("player.GetMainCharacterIndex"); } -PyObject* stub_player_GetMainCharacterName(PyObject*, PyObject*) { return stub_call_named("player.GetMainCharacterName"); } -PyObject* stub_player_GetMainCharacterPosition(PyObject*, PyObject*) { return stub_call_named("player.GetMainCharacterPosition"); } -PyObject* stub_player_IsMainCharacterIndex(PyObject*, PyObject*) { return stub_call_named("player.IsMainCharacterIndex"); } -PyObject* stub_player_CanAttackInstance(PyObject*, PyObject*) { return stub_call_named("player.CanAttackInstance"); } -PyObject* stub_player_IsActingEmotion(PyObject*, PyObject*) { return stub_call_named("player.IsActingEmotion"); } -PyObject* stub_player_IsPVPInstance(PyObject*, PyObject*) { return stub_call_named("player.IsPVPInstance"); } -PyObject* stub_player_IsSameEmpire(PyObject*, PyObject*) { return stub_call_named("player.IsSameEmpire"); } -PyObject* stub_player_IsChallengeInstance(PyObject*, PyObject*) { return stub_call_named("player.IsChallengeInstance"); } -PyObject* stub_player_IsRevengeInstance(PyObject*, PyObject*) { return stub_call_named("player.IsRevengeInstance"); } -PyObject* stub_player_IsCantFightInstance(PyObject*, PyObject*) { return stub_call_named("player.IsCantFightInstance"); } -PyObject* stub_player_GetCharacterDistance(PyObject*, PyObject*) { return stub_call_named("player.GetCharacterDistance"); } -PyObject* stub_player_IsInSafeArea(PyObject*, PyObject*) { return stub_call_named("player.IsInSafeArea"); } -PyObject* stub_player_IsMountingHorse(PyObject*, PyObject*) { return stub_call_named("player.IsMountingHorse"); } -PyObject* stub_player_IsObserverMode(PyObject*, PyObject*) { return stub_call_named("player.IsObserverMode"); } -PyObject* stub_player_ActEmotion(PyObject*, PyObject*) { return stub_call_named("player.ActEmotion"); } -PyObject* stub_player_ShowPlayer(PyObject*, PyObject*) { return stub_call_named("player.ShowPlayer"); } -PyObject* stub_player_HidePlayer(PyObject*, PyObject*) { return stub_call_named("player.HidePlayer"); } -PyObject* stub_player_ComboAttack(PyObject*, PyObject*) { return stub_call_named("player.ComboAttack"); } -PyObject* stub_player_SetAutoCameraRotationSpeed(PyObject*, PyObject*) { return stub_call_named("player.SetAutoCameraRotationSpeed"); } -PyObject* stub_player_SetAttackKeyState(PyObject*, PyObject*) { return stub_call_named("player.SetAttackKeyState"); } -PyObject* stub_player_SetSingleDIKKeyState(PyObject*, PyObject*) { return stub_call_named("player.SetSingleDIKKeyState"); } -PyObject* stub_player_EndKeyWalkingImmediately(PyObject*, PyObject*) { return stub_call_named("player.EndKeyWalkingImmediately"); } -PyObject* stub_player_StartMouseWalking(PyObject*, PyObject*) { return stub_call_named("player.StartMouseWalking"); } -PyObject* stub_player_EndMouseWalking(PyObject*, PyObject*) { return stub_call_named("player.EndMouseWalking"); } -PyObject* stub_player_ResetCameraRotation(PyObject*, PyObject*) { return stub_call_named("player.ResetCameraRotation"); } -PyObject* stub_player_SetQuickCameraMode(PyObject*, PyObject*) { return stub_call_named("player.SetQuickCameraMode"); } -PyObject* stub_player_SetSkill(PyObject*, PyObject*) { return stub_call_named("player.SetSkill"); } -PyObject* stub_player_GetSkillIndex(PyObject*, PyObject*) { return stub_call_named("player.GetSkillIndex"); } -PyObject* stub_player_GetSkillSlotIndex(PyObject*, PyObject*) { return stub_call_named("player.GetSkillSlotIndex"); } -PyObject* stub_player_GetSkillGrade(PyObject*, PyObject*) { return stub_call_named("player.GetSkillGrade"); } -PyObject* stub_player_GetSkillLevel(PyObject*, PyObject*) { return stub_call_named("player.GetSkillLevel"); } -PyObject* stub_player_GetSkillCurrentEfficientPercentage(PyObject*, PyObject*) { return stub_call_named("player.GetSkillCurrentEfficientPercentage"); } -PyObject* stub_player_GetSkillNextEfficientPercentage(PyObject*, PyObject*) { return stub_call_named("player.GetSkillNextEfficientPercentage"); } -PyObject* stub_player_ClickSkillSlot(PyObject*, PyObject*) { return stub_call_named("player.ClickSkillSlot"); } -PyObject* stub_player_ChangeCurrentSkillNumberOnly(PyObject*, PyObject*) { return stub_call_named("player.ChangeCurrentSkillNumberOnly"); } -PyObject* stub_player_ClearSkillDict(PyObject*, PyObject*) { return stub_call_named("player.ClearSkillDict"); } -PyObject* stub_player_GetItemIndex(PyObject*, PyObject*) { return stub_call_named("player.GetItemIndex"); } -PyObject* stub_player_GetItemFlags(PyObject*, PyObject*) { return stub_call_named("player.GetItemFlags"); } -PyObject* stub_player_GetItemCount(PyObject*, PyObject*) { return stub_call_named("player.GetItemCount"); } -PyObject* stub_player_GetItemCountByVnum(PyObject*, PyObject*) { return stub_call_named("player.GetItemCountByVnum"); } -PyObject* stub_player_GetItemMetinSocket(PyObject*, PyObject*) { return stub_call_named("player.GetItemMetinSocket"); } -PyObject* stub_player_GetItemAttribute(PyObject*, PyObject*) { return stub_call_named("player.GetItemAttribute"); } -PyObject* stub_player_GetItemUnbindTime(PyObject*, PyObject*) { return stub_call_named("player.GetItemUnbindTime"); } -PyObject* stub_player_GetISellItemPrice(PyObject*, PyObject*) { return stub_call_named("player.GetISellItemPrice"); } -PyObject* stub_player_MoveItem(PyObject*, PyObject*) { return stub_call_named("player.MoveItem"); } -PyObject* stub_player_SendClickItemPacket(PyObject*, PyObject*) { return stub_call_named("player.SendClickItemPacket"); } -PyObject* stub_player_GetName(PyObject*, PyObject*) { return stub_call_named("player.GetName"); } -PyObject* stub_player_GetJob(PyObject*, PyObject*) { return stub_call_named("player.GetJob"); } -PyObject* stub_player_GetRace(PyObject*, PyObject*) { return stub_call_named("player.GetRace"); } -PyObject* stub_player_GetPlayTime(PyObject*, PyObject*) { return stub_call_named("player.GetPlayTime"); } -PyObject* stub_player_SetPlayTime(PyObject*, PyObject*) { return stub_call_named("player.SetPlayTime"); } -PyObject* stub_player_IsSkillCoolTime(PyObject*, PyObject*) { return stub_call_named("player.IsSkillCoolTime"); } -PyObject* stub_player_GetSkillCoolTime(PyObject*, PyObject*) { return stub_call_named("player.GetSkillCoolTime"); } -PyObject* stub_player_IsSkillActive(PyObject*, PyObject*) { return stub_call_named("player.IsSkillActive"); } -PyObject* stub_player_UseGuildSkill(PyObject*, PyObject*) { return stub_call_named("player.UseGuildSkill"); } -PyObject* stub_player_AffectIndexToSkillIndex(PyObject*, PyObject*) { return stub_call_named("player.AffectIndexToSkillIndex"); } -PyObject* stub_player_GetEXP(PyObject*, PyObject*) { return stub_call_named("player.GetEXP"); } -PyObject* stub_player_GetStatus(PyObject*, PyObject*) { return stub_call_named("player.GetStatus"); } -PyObject* stub_player_SetStatus(PyObject*, PyObject*) { return stub_call_named("player.SetStatus"); } -PyObject* stub_player_GetElk(PyObject*, PyObject*) { return stub_call_named("player.GetElk"); } -PyObject* stub_player_GetMoney(PyObject*, PyObject*) { return stub_call_named("player.GetMoney"); } -PyObject* stub_player_GetGuildID(PyObject*, PyObject*) { return stub_call_named("player.GetGuildID"); } -PyObject* stub_player_GetGuildName(PyObject*, PyObject*) { return stub_call_named("player.GetGuildName"); } -PyObject* stub_player_GetAlignmentData(PyObject*, PyObject*) { return stub_call_named("player.GetAlignmentData"); } -PyObject* stub_player_RequestAddLocalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.RequestAddLocalQuickSlot"); } -PyObject* stub_player_RequestAddToEmptyLocalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.RequestAddToEmptyLocalQuickSlot"); } -PyObject* stub_player_RequestDeleteGlobalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.RequestDeleteGlobalQuickSlot"); } -PyObject* stub_player_RequestMoveGlobalQuickSlotToLocalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.RequestMoveGlobalQuickSlotToLocalQuickSlot"); } -PyObject* stub_player_RequestUseLocalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.RequestUseLocalQuickSlot"); } -PyObject* stub_player_LocalQuickSlotIndexToGlobalQuickSlotIndex(PyObject*, PyObject*) { return stub_call_named("player.LocalQuickSlotIndexToGlobalQuickSlotIndex"); } -PyObject* stub_player_GetQuickPage(PyObject*, PyObject*) { return stub_call_named("player.GetQuickPage"); } -PyObject* stub_player_SetQuickPage(PyObject*, PyObject*) { return stub_call_named("player.SetQuickPage"); } -PyObject* stub_player_GetLocalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.GetLocalQuickSlot"); } -PyObject* stub_player_GetGlobalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.GetGlobalQuickSlot"); } -PyObject* stub_player_RemoveQuickSlotByValue(PyObject*, PyObject*) { return stub_call_named("player.RemoveQuickSlotByValue"); } -PyObject* stub_player_isItem(PyObject*, PyObject*) { return stub_call_named("player.isItem"); } -PyObject* stub_player_IsEquipmentSlot(PyObject*, PyObject*) { return stub_call_named("player.IsEquipmentSlot"); } -PyObject* stub_player_IsDSEquipmentSlot(PyObject*, PyObject*) { return stub_call_named("player.IsDSEquipmentSlot"); } -PyObject* stub_player_IsCostumeSlot(PyObject*, PyObject*) { return stub_call_named("player.IsCostumeSlot"); } -PyObject* stub_player_IsValuableItem(PyObject*, PyObject*) { return stub_call_named("player.IsValuableItem"); } -PyObject* stub_player_IsOpenPrivateShop(PyObject*, PyObject*) { return stub_call_named("player.IsOpenPrivateShop"); } -PyObject* stub_player_IsBeltInventorySlot(PyObject*, PyObject*) { return stub_call_named("player.IsBeltInventorySlot"); } -PyObject* stub_player_IsEquippingBelt(PyObject*, PyObject*) { return stub_call_named("player.IsEquippingBelt"); } -PyObject* stub_player_IsAvailableBeltInventoryCell(PyObject*, PyObject*) { return stub_call_named("player.IsAvailableBeltInventoryCell"); } -PyObject* stub_player_GetItemGrade(PyObject*, PyObject*) { return stub_call_named("player.GetItemGrade"); } -PyObject* stub_player_CanRefine(PyObject*, PyObject*) { return stub_call_named("player.CanRefine"); } -PyObject* stub_player_CanDetach(PyObject*, PyObject*) { return stub_call_named("player.CanDetach"); } -PyObject* stub_player_CanUnlock(PyObject*, PyObject*) { return stub_call_named("player.CanUnlock"); } -PyObject* stub_player_CanAttachMetin(PyObject*, PyObject*) { return stub_call_named("player.CanAttachMetin"); } -PyObject* stub_player_IsRefineGradeScroll(PyObject*, PyObject*) { return stub_call_named("player.IsRefineGradeScroll"); } -PyObject* stub_player_ClearTarget(PyObject*, PyObject*) { return stub_call_named("player.ClearTarget"); } -PyObject* stub_player_SetTarget(PyObject*, PyObject*) { return stub_call_named("player.SetTarget"); } -PyObject* stub_player_OpenCharacterMenu(PyObject*, PyObject*) { return stub_call_named("player.OpenCharacterMenu"); } -PyObject* stub_player_Update(PyObject*, PyObject*) { return stub_call_named("player.Update"); } -PyObject* stub_player_Render(PyObject*, PyObject*) { return stub_call_named("player.Render"); } -PyObject* stub_player_Clear(PyObject*, PyObject*) { return stub_call_named("player.Clear"); } -PyObject* stub_player_IsPartyMember(PyObject*, PyObject*) { return stub_call_named("player.IsPartyMember"); } -PyObject* stub_player_IsPartyLeader(PyObject*, PyObject*) { return stub_call_named("player.IsPartyLeader"); } -PyObject* stub_player_IsPartyLeaderByPID(PyObject*, PyObject*) { return stub_call_named("player.IsPartyLeaderByPID"); } -PyObject* stub_player_GetPartyMemberHPPercentage(PyObject*, PyObject*) { return stub_call_named("player.GetPartyMemberHPPercentage"); } -PyObject* stub_player_GetPartyMemberState(PyObject*, PyObject*) { return stub_call_named("player.GetPartyMemberState"); } -PyObject* stub_player_GetPartyMemberAffects(PyObject*, PyObject*) { return stub_call_named("player.GetPartyMemberAffects"); } -PyObject* stub_player_RemovePartyMember(PyObject*, PyObject*) { return stub_call_named("player.RemovePartyMember"); } -PyObject* stub_player_ExitParty(PyObject*, PyObject*) { return stub_call_named("player.ExitParty"); } -PyObject* stub_player_GetPKMode(PyObject*, PyObject*) { return stub_call_named("player.GetPKMode"); } -PyObject* stub_player_HasMobilePhoneNumber(PyObject*, PyObject*) { return stub_call_named("player.HasMobilePhoneNumber"); } -PyObject* stub_player_RegisterEmotionIcon(PyObject*, PyObject*) { return stub_call_named("player.RegisterEmotionIcon"); } -PyObject* stub_player_GetEmotionIconImage(PyObject*, PyObject*) { return stub_call_named("player.GetEmotionIconImage"); } -PyObject* stub_player_SetWeaponAttackBonusFlag(PyObject*, PyObject*) { return stub_call_named("player.SetWeaponAttackBonusFlag"); } -PyObject* stub_player_ToggleCoolTime(PyObject*, PyObject*) { return stub_call_named("player.ToggleCoolTime"); } -PyObject* stub_player_ToggleLevelLimit(PyObject*, PyObject*) { return stub_call_named("player.ToggleLevelLimit"); } -PyObject* stub_player_GetTargetVID(PyObject*, PyObject*) { return stub_call_named("player.GetTargetVID"); } -PyObject* stub_player_SetItemData(PyObject*, PyObject*) { return stub_call_named("player.SetItemData"); } -PyObject* stub_player_SetItemMetinSocket(PyObject*, PyObject*) { return stub_call_named("player.SetItemMetinSocket"); } -PyObject* stub_player_SetItemAttribute(PyObject*, PyObject*) { return stub_call_named("player.SetItemAttribute"); } -PyObject* stub_player_SetItemCount(PyObject*, PyObject*) { return stub_call_named("player.SetItemCount"); } -PyObject* stub_player_GetItemLink(PyObject*, PyObject*) { return stub_call_named("player.GetItemLink"); } -PyObject* stub_player_SlotTypeToInvenType(PyObject*, PyObject*) { return stub_call_named("player.SlotTypeToInvenType"); } -PyObject* stub_player_SendDragonSoulRefine(PyObject*, PyObject*) { return stub_call_named("player.SendDragonSoulRefine"); } +PyObject* stub_player_GetAutoPotionInfo(PyObject*, PyObject*) { return stub_call_named("player.GetAutoPotionInfo", Py_BuildValue("biii", 0, 0, 0, 0)); } +PyObject* stub_player_SetAutoPotionInfo(PyObject*, PyObject*) { return stub_call_named("player.SetAutoPotionInfo", Py_BuildNone()); } +PyObject* stub_player_PickCloseItem(PyObject*, PyObject*) { return stub_call_named("player.PickCloseItem", Py_BuildNone()); } +PyObject* stub_player_SetGameWindow(PyObject*, PyObject*) { return stub_call_named("player.SetGameWindow", Py_BuildNone()); } +PyObject* stub_player_RegisterEffect(PyObject*, PyObject*) { return stub_call_named("player.RegisterEffect", Py_BuildNone()); } +PyObject* stub_player_RegisterCacheEffect(PyObject*, PyObject*) { return stub_call_named("player.RegisterCacheEffect", Py_BuildNone()); } +PyObject* stub_player_SetMouseState(PyObject*, PyObject*) { return stub_call_named("player.SetMouseState", Py_BuildNone()); } +PyObject* stub_player_SetMouseFunc(PyObject*, PyObject*) { return stub_call_named("player.SetMouseFunc", Py_BuildNone()); } +PyObject* stub_player_GetMouseFunc(PyObject*, PyObject*) { return stub_call_named("player.GetMouseFunc", Py_BuildValue("i", 0)); } +PyObject* stub_player_SetMouseMiddleButtonState(PyObject*, PyObject*) { return stub_call_named("player.SetMouseMiddleButtonState", Py_BuildNone()); } +PyObject* stub_player_SetMainCharacterIndex(PyObject*, PyObject*) { return stub_call_named("player.SetMainCharacterIndex", Py_BuildNone()); } +PyObject* stub_player_GetMainCharacterIndex(PyObject*, PyObject*) { return stub_call_named("player.GetMainCharacterIndex", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetMainCharacterName(PyObject*, PyObject*) { return stub_call_named("player.GetMainCharacterName", Py_BuildValue("s", "")); } +PyObject* stub_player_GetMainCharacterPosition(PyObject*, PyObject*) { return stub_call_named("player.GetMainCharacterPosition", Py_BuildValue("fff", 0.0, 0.0, 0.0)); } +PyObject* stub_player_IsMainCharacterIndex(PyObject*, PyObject*) { return stub_call_named("player.IsMainCharacterIndex", Py_BuildValue("i", 0)); } +PyObject* stub_player_CanAttackInstance(PyObject*, PyObject*) { return stub_call_named("player.CanAttackInstance", Py_BuildValue("i", 0)); } +PyObject* stub_player_IsActingEmotion(PyObject*, PyObject*) { return stub_call_named("player.IsActingEmotion", Py_BuildValue("i", 0)); } +PyObject* stub_player_IsPVPInstance(PyObject*, PyObject*) { return stub_call_named("player.IsPVPInstance", Py_BuildValue("i", 0)); } +PyObject* stub_player_IsSameEmpire(PyObject*, PyObject*) { return stub_call_named("player.IsSameEmpire", Py_BuildValue("i", 0)); } +PyObject* stub_player_IsChallengeInstance(PyObject*, PyObject*) { return stub_call_named("player.IsChallengeInstance", Py_BuildValue("i", 0)); } +PyObject* stub_player_IsRevengeInstance(PyObject*, PyObject*) { return stub_call_named("player.IsRevengeInstance", Py_BuildValue("i", 0)); } +PyObject* stub_player_IsCantFightInstance(PyObject*, PyObject*) { return stub_call_named("player.IsCantFightInstance", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetCharacterDistance(PyObject*, PyObject*) { return stub_call_named("player.GetCharacterDistance", Py_BuildValue("f", 0.0)); } +PyObject* stub_player_IsInSafeArea(PyObject*, PyObject*) { return stub_call_named("player.IsInSafeArea", Py_BuildValue("i", 0)); } +PyObject* stub_player_IsMountingHorse(PyObject*, PyObject*) { return stub_call_named("player.IsMountingHorse", Py_BuildValue("i", 0)); } +PyObject* stub_player_IsObserverMode(PyObject*, PyObject*) { return stub_call_named("player.IsObserverMode", Py_BuildValue("i", 0)); } +PyObject* stub_player_ActEmotion(PyObject*, PyObject*) { return stub_call_named("player.ActEmotion", Py_BuildNone()); } +PyObject* stub_player_ShowPlayer(PyObject*, PyObject*) { return stub_call_named("player.ShowPlayer", Py_BuildNone()); } +PyObject* stub_player_HidePlayer(PyObject*, PyObject*) { return stub_call_named("player.HidePlayer", Py_BuildNone()); } +PyObject* stub_player_ComboAttack(PyObject*, PyObject*) { return stub_call_named("player.ComboAttack", Py_BuildNone()); } +PyObject* stub_player_SetAutoCameraRotationSpeed(PyObject*, PyObject*) { return stub_call_named("player.SetAutoCameraRotationSpeed", Py_BuildNone()); } +PyObject* stub_player_SetAttackKeyState(PyObject*, PyObject*) { return stub_call_named("player.SetAttackKeyState", Py_BuildNone()); } +PyObject* stub_player_SetSingleDIKKeyState(PyObject*, PyObject*) { return stub_call_named("player.SetSingleDIKKeyState", Py_BuildNone()); } +PyObject* stub_player_EndKeyWalkingImmediately(PyObject*, PyObject*) { return stub_call_named("player.EndKeyWalkingImmediately", Py_BuildNone()); } +PyObject* stub_player_StartMouseWalking(PyObject*, PyObject*) { return stub_call_named("player.StartMouseWalking", Py_BuildNone()); } +PyObject* stub_player_EndMouseWalking(PyObject*, PyObject*) { return stub_call_named("player.EndMouseWalking", Py_BuildNone()); } +PyObject* stub_player_ResetCameraRotation(PyObject*, PyObject*) { return stub_call_named("player.ResetCameraRotation", Py_BuildNone()); } +PyObject* stub_player_SetQuickCameraMode(PyObject*, PyObject*) { return stub_call_named("player.SetQuickCameraMode", Py_BuildNone()); } +PyObject* stub_player_SetSkill(PyObject*, PyObject*) { return stub_call_named("player.SetSkill", Py_BuildNone()); } +PyObject* stub_player_GetSkillIndex(PyObject*, PyObject*) { return stub_call_named("player.GetSkillIndex", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetSkillSlotIndex(PyObject*, PyObject*) { return stub_call_named("player.GetSkillSlotIndex", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetSkillGrade(PyObject*, PyObject*) { return stub_call_named("player.GetSkillGrade", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetSkillLevel(PyObject*, PyObject*) { return stub_call_named("player.GetSkillLevel", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetSkillCurrentEfficientPercentage(PyObject*, PyObject*) { return stub_call_named("player.GetSkillCurrentEfficientPercentage", Py_BuildValue("f", 0.0)); } +PyObject* stub_player_GetSkillNextEfficientPercentage(PyObject*, PyObject*) { return stub_call_named("player.GetSkillNextEfficientPercentage", Py_BuildValue("f", 0.0)); } +PyObject* stub_player_ClickSkillSlot(PyObject*, PyObject*) { return stub_call_named("player.ClickSkillSlot", Py_BuildNone()); } +PyObject* stub_player_ChangeCurrentSkillNumberOnly(PyObject*, PyObject*) { return stub_call_named("player.ChangeCurrentSkillNumberOnly", Py_BuildNone()); } +PyObject* stub_player_ClearSkillDict(PyObject*, PyObject*) { return stub_call_named("player.ClearSkillDict", Py_BuildNone()); } +PyObject* stub_player_GetItemIndex(PyObject*, PyObject*) { return stub_call_named("player.GetItemIndex", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetItemFlags(PyObject*, PyObject*) { return stub_call_named("player.GetItemFlags", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetItemCount(PyObject*, PyObject*) { return stub_call_named("player.GetItemCount", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetItemCountByVnum(PyObject*, PyObject*) { return stub_call_named("player.GetItemCountByVnum", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetItemMetinSocket(PyObject*, PyObject*) { return stub_call_named("player.GetItemMetinSocket", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetItemAttribute(PyObject*, PyObject*) { return stub_call_named("player.GetItemAttribute", Py_BuildValue("ii", 0, 0)); } +PyObject* stub_player_GetItemUnbindTime(PyObject*, PyObject*) { return stub_call_named("player.GetItemUnbindTime", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetISellItemPrice(PyObject*, PyObject*) { return stub_call_named("player.GetISellItemPrice", Py_BuildValue("i", 0)); } +PyObject* stub_player_MoveItem(PyObject*, PyObject*) { return stub_call_named("player.MoveItem", Py_BuildNone()); } +PyObject* stub_player_SendClickItemPacket(PyObject*, PyObject*) { return stub_call_named("player.SendClickItemPacket", Py_BuildNone()); } +PyObject* stub_player_GetName(PyObject*, PyObject*) { return stub_call_named("player.GetName", Py_BuildValue("s", "")); } +PyObject* stub_player_GetJob(PyObject*, PyObject*) { return stub_call_named("player.GetJob", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetRace(PyObject*, PyObject*) { return stub_call_named("player.GetRace", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetPlayTime(PyObject*, PyObject*) { return stub_call_named("player.GetPlayTime", Py_BuildValue("i", 0)); } +PyObject* stub_player_SetPlayTime(PyObject*, PyObject*) { return stub_call_named("player.SetPlayTime", Py_BuildNone()); } +PyObject* stub_player_IsSkillCoolTime(PyObject*, PyObject*) { return stub_call_named("player.IsSkillCoolTime", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetSkillCoolTime(PyObject*, PyObject*) { return stub_call_named("player.GetSkillCoolTime", Py_BuildValue("ff", 0.0, 0.0)); } +PyObject* stub_player_IsSkillActive(PyObject*, PyObject*) { return stub_call_named("player.IsSkillActive", Py_BuildValue("i", 0)); } +PyObject* stub_player_UseGuildSkill(PyObject*, PyObject*) { return stub_call_named("player.UseGuildSkill", Py_BuildNone()); } +PyObject* stub_player_AffectIndexToSkillIndex(PyObject*, PyObject*) { return stub_call_named("player.AffectIndexToSkillIndex", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetEXP(PyObject*, PyObject*) { return stub_call_named("player.GetEXP", Py_BuildValue("l", 0L)); } +PyObject* stub_player_GetStatus(PyObject*, PyObject*) { return stub_call_named("player.GetStatus", Py_BuildValue("i", 0)); } +PyObject* stub_player_SetStatus(PyObject*, PyObject*) { return stub_call_named("player.SetStatus", Py_BuildNone()); } +PyObject* stub_player_GetElk(PyObject*, PyObject*) { return stub_call_named("player.GetElk", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetMoney(PyObject*, PyObject*) { return stub_call_named("player.GetMoney", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetGuildID(PyObject*, PyObject*) { return stub_call_named("player.GetGuildID", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetGuildName(PyObject*, PyObject*) { return stub_call_named("player.GetGuildName", Py_BuildValue("s", "")); } +PyObject* stub_player_GetAlignmentData(PyObject*, PyObject*) { return stub_call_named("player.GetAlignmentData", Py_BuildValue("ii", 0, 0)); } +PyObject* stub_player_RequestAddLocalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.RequestAddLocalQuickSlot", Py_BuildNone()); } +PyObject* stub_player_RequestAddToEmptyLocalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.RequestAddToEmptyLocalQuickSlot", Py_BuildNone()); } +PyObject* stub_player_RequestDeleteGlobalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.RequestDeleteGlobalQuickSlot", Py_BuildNone()); } +PyObject* stub_player_RequestMoveGlobalQuickSlotToLocalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.RequestMoveGlobalQuickSlotToLocalQuickSlot", Py_BuildNone()); } +PyObject* stub_player_RequestUseLocalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.RequestUseLocalQuickSlot", Py_BuildNone()); } +PyObject* stub_player_LocalQuickSlotIndexToGlobalQuickSlotIndex(PyObject*, PyObject*) { return stub_call_named("player.LocalQuickSlotIndexToGlobalQuickSlotIndex", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetQuickPage(PyObject*, PyObject*) { return stub_call_named("player.GetQuickPage", Py_BuildValue("i", 0)); } +PyObject* stub_player_SetQuickPage(PyObject*, PyObject*) { return stub_call_named("player.SetQuickPage", Py_BuildNone()); } +PyObject* stub_player_GetLocalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.GetLocalQuickSlot", Py_BuildValue("ii", 0, 0)); } +PyObject* stub_player_GetGlobalQuickSlot(PyObject*, PyObject*) { return stub_call_named("player.GetGlobalQuickSlot", Py_BuildValue("ii", 0, 0)); } +PyObject* stub_player_RemoveQuickSlotByValue(PyObject*, PyObject*) { return stub_call_named("player.RemoveQuickSlotByValue", Py_BuildNone()); } +PyObject* stub_player_isItem(PyObject*, PyObject*) { return stub_call_named("player.isItem", Py_BuildValue("i", 0)); } +PyObject* stub_player_IsEquipmentSlot(PyObject*, PyObject*) { return stub_call_named("player.IsEquipmentSlot", Py_BuildValue("i", 0)); } +PyObject* stub_player_IsDSEquipmentSlot(PyObject*, PyObject*) { return stub_call_named("player.IsDSEquipmentSlot", Py_BuildValue("i", 0)); } +PyObject* stub_player_IsCostumeSlot(PyObject*, PyObject*) { return stub_call_named("player.IsCostumeSlot", Py_BuildValue("i", 0)); } +PyObject* stub_player_IsValuableItem(PyObject*, PyObject*) { return stub_call_named("player.IsValuableItem", Py_BuildValue("i", 0)); } +PyObject* stub_player_IsOpenPrivateShop(PyObject*, PyObject*) { return stub_call_named("player.IsOpenPrivateShop", Py_BuildValue("i", 0)); } +PyObject* stub_player_IsBeltInventorySlot(PyObject*, PyObject*) { return stub_call_named("player.IsBeltInventorySlot", Py_BuildValue("i", 0)); } +PyObject* stub_player_IsEquippingBelt(PyObject*, PyObject*) { return stub_call_named("player.IsEquippingBelt", Py_BuildValue("b", 0)); } +PyObject* stub_player_IsAvailableBeltInventoryCell(PyObject*, PyObject*) { return stub_call_named("player.IsAvailableBeltInventoryCell", Py_BuildValue("b", 0)); } +PyObject* stub_player_GetItemGrade(PyObject*, PyObject*) { return stub_call_named("player.GetItemGrade", Py_BuildValue("i", 0)); } +PyObject* stub_player_CanRefine(PyObject*, PyObject*) { return stub_call_named("player.CanRefine", Py_BuildValue("i", 0)); } +PyObject* stub_player_CanDetach(PyObject*, PyObject*) { return stub_call_named("player.CanDetach", Py_BuildValue("i", 0)); } +PyObject* stub_player_CanUnlock(PyObject*, PyObject*) { return stub_call_named("player.CanUnlock", Py_BuildValue("i", 0)); } +PyObject* stub_player_CanAttachMetin(PyObject*, PyObject*) { return stub_call_named("player.CanAttachMetin", Py_BuildValue("i", 0)); } +PyObject* stub_player_IsRefineGradeScroll(PyObject*, PyObject*) { return stub_call_named("player.IsRefineGradeScroll", Py_BuildValue("i", 0)); } +PyObject* stub_player_ClearTarget(PyObject*, PyObject*) { return stub_call_named("player.ClearTarget", Py_BuildNone()); } +PyObject* stub_player_SetTarget(PyObject*, PyObject*) { return stub_call_named("player.SetTarget", Py_BuildNone()); } +PyObject* stub_player_OpenCharacterMenu(PyObject*, PyObject*) { return stub_call_named("player.OpenCharacterMenu", Py_BuildNone()); } +PyObject* stub_player_Update(PyObject*, PyObject*) { return stub_call_named("player.Update", Py_BuildNone()); } +PyObject* stub_player_Render(PyObject*, PyObject*) { return stub_call_named("player.Render", Py_BuildNone()); } +PyObject* stub_player_Clear(PyObject*, PyObject*) { return stub_call_named("player.Clear", Py_BuildNone()); } +PyObject* stub_player_IsPartyMember(PyObject*, PyObject*) { return stub_call_named("player.IsPartyMember", Py_BuildValue("i", 0)); } +PyObject* stub_player_IsPartyLeader(PyObject*, PyObject*) { return stub_call_named("player.IsPartyLeader", Py_BuildValue("i", 0)); } +PyObject* stub_player_IsPartyLeaderByPID(PyObject*, PyObject*) { return stub_call_named("player.IsPartyLeaderByPID", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetPartyMemberHPPercentage(PyObject*, PyObject*) { return stub_call_named("player.GetPartyMemberHPPercentage", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetPartyMemberState(PyObject*, PyObject*) { return stub_call_named("player.GetPartyMemberState", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetPartyMemberAffects(PyObject*, PyObject*) { return stub_call_named("player.GetPartyMemberAffects", Py_BuildValue("iiiiiii", 0, 0, 0, 0, 0, 0, 0)); } +PyObject* stub_player_RemovePartyMember(PyObject*, PyObject*) { return stub_call_named("player.RemovePartyMember", Py_BuildNone()); } +PyObject* stub_player_ExitParty(PyObject*, PyObject*) { return stub_call_named("player.ExitParty", Py_BuildNone()); } +PyObject* stub_player_GetPKMode(PyObject*, PyObject*) { return stub_call_named("player.GetPKMode", Py_BuildValue("i", 0)); } +PyObject* stub_player_HasMobilePhoneNumber(PyObject*, PyObject*) { return stub_call_named("player.HasMobilePhoneNumber", Py_BuildValue("i", 0)); } +PyObject* stub_player_RegisterEmotionIcon(PyObject*, PyObject*) { return stub_call_named("player.RegisterEmotionIcon", Py_BuildNone()); } +PyObject* stub_player_GetEmotionIconImage(PyObject*, PyObject*) { return stub_call_named("player.GetEmotionIconImage", Py_BuildValue("i", 0)); } +PyObject* stub_player_SetWeaponAttackBonusFlag(PyObject*, PyObject*) { return stub_call_named("player.SetWeaponAttackBonusFlag", Py_BuildNone()); } +PyObject* stub_player_ToggleCoolTime(PyObject*, PyObject*) { return stub_call_named("player.ToggleCoolTime", Py_BuildValue("i", 0)); } +PyObject* stub_player_ToggleLevelLimit(PyObject*, PyObject*) { return stub_call_named("player.ToggleLevelLimit", Py_BuildValue("i", 0)); } +PyObject* stub_player_GetTargetVID(PyObject*, PyObject*) { return stub_call_named("player.GetTargetVID", Py_BuildValue("i", 0)); } +PyObject* stub_player_SetItemData(PyObject*, PyObject*) { return stub_call_named("player.SetItemData", Py_BuildNone()); } +PyObject* stub_player_SetItemMetinSocket(PyObject*, PyObject*) { return stub_call_named("player.SetItemMetinSocket", Py_BuildNone()); } +PyObject* stub_player_SetItemAttribute(PyObject*, PyObject*) { return stub_call_named("player.SetItemAttribute", Py_BuildNone()); } +PyObject* stub_player_SetItemCount(PyObject*, PyObject*) { return stub_call_named("player.SetItemCount", Py_BuildNone()); } +PyObject* stub_player_GetItemLink(PyObject*, PyObject*) { return stub_call_named("player.GetItemLink", Py_BuildValue("s", "")); } +PyObject* stub_player_SlotTypeToInvenType(PyObject*, PyObject*) { return stub_call_named("player.SlotTypeToInvenType", Py_BuildValue("i", 0)); } +PyObject* stub_player_SendDragonSoulRefine(PyObject*, PyObject*) { return stub_call_named("player.SendDragonSoulRefine", Py_BuildNone()); } PyMethodDef methods_player[] = { { "GetAutoPotionInfo", stub_player_GetAutoPotionInfo, METH_VARARGS }, { "SetAutoPotionInfo", stub_player_SetAutoPotionInfo, METH_VARARGS }, @@ -1153,24 +1150,20 @@ PyMethodDef methods_player[] = { { "SendDragonSoulRefine", stub_player_SendDragonSoulRefine, METH_VARARGS }, { NULL, NULL } }; -const char* ints_player[] = {"LEVEL", "VOICE", "EXP", "NEXT_EXP", "HP", "MAX_HP", "SP", "MAX_SP", "STAMINA", "MAX_STAMINA", "ELK", "ST", "HT", "DX", "IQ", "ATT_POWER", "ATT_MIN", "ATT_MAX", "MIN_MAGIC_WEP", "MAX_MAGIC_WEP", "ATT_SPEED", "ATT_BONUS", "EVADE_RATE", "MOVING_SPEED", "DEF_GRADE", "DEF_BONUS", "CASTING_SPEED", "MAG_ATT", "MAG_DEF", "EMPIRE_POINT", "STAT", "SKILL_PASSIVE", "SKILL_SUPPORT", "SKILL_ACTIVE", "SKILL_HORSE", "PLAYTIME", "BOW_DISTANCE", "HP_RECOVERY", "SP_RECOVERY", "ATTACKER_BONUS", "MAX_NUM", "POINT_CRITICAL_PCT", "POINT_PENETRATE_PCT", "POINT_MALL_ATTBONUS", "POINT_MALL_DEFBONUS", "POINT_MALL_EXPBONUS", "POINT_MALL_ITEMBONUS", "POINT_MALL_GOLDBONUS", "POINT_MAX_HP_PCT", "POINT_MAX_SP_PCT", "POINT_SKILL_DAMAGE_BONUS", "POINT_NORMAL_HIT_DAMAGE_BONUS", "POINT_SKILL_DEFEND_BONUS", "POINT_NORMAL_HIT_DEFEND_BONUS", "POINT_PC_BANG_EXP_BONUS", "POINT_PC_BANG_DROP_BONUS", "ENERGY", "ENERGY_END_TIME", "SKILL_GRADE_NORMAL", "SKILL_GRADE_MASTER", "SKILL_GRADE_GRAND_MASTER", "SKILL_GRADE_PERFECT_MASTER", "CATEGORY_ACTIVE", "CATEGORY_PASSIVE", "INVENTORY_PAGE_SIZE", "INVENTORY_PAGE_COUNT", "INVENTORY_SLOT_COUNT", "EQUIPMENT_SLOT_START", "EQUIPMENT_PAGE_COUNT", "NEW_EQUIPMENT_SLOT_START", "NEW_EQUIPMENT_SLOT_COUNT", "MBF_SKILL", "MBF_ATTACK", "MBF_CAMERA", "MBF_SMART", "MBF_MOVE", "MBF_AUTO", "MBS_PRESS", "MBS_CLICK", "MBT_RIGHT", "MBT_LEFT", "SLOT_TYPE_NONE", "SLOT_TYPE_INVENTORY", "SLOT_TYPE_SKILL", "SLOT_TYPE_SHOP", "SLOT_TYPE_EXCHANGE_OWNER", "SLOT_TYPE_EXCHANGE_TARGET", "SLOT_TYPE_QUICK_SLOT", "SLOT_TYPE_SAFEBOX", "SLOT_TYPE_PRIVATE_SHOP", "SLOT_TYPE_MALL", "SLOT_TYPE_EMOTION", "SLOT_TYPE_DRAGON_SOUL_INVENTORY", "RESERVED_WINDOW", "INVENTORY", "EQUIPMENT", "SAFEBOX", "MALL", "DRAGON_SOUL_INVENTORY", "GROUND", "ITEM_MONEY", "SKILL_SLOT_COUNT", "EFFECT_PICK", "METIN_SOCKET_TYPE_NONE", "METIN_SOCKET_TYPE_SILVER", "METIN_SOCKET_TYPE_GOLD", "METIN_SOCKET_MAX_NUM", "ATTRIBUTE_SLOT_MAX_NUM", "REFINE_CANT", "REFINE_OK", "REFINE_ALREADY_MAX_SOCKET_COUNT", "REFINE_NEED_MORE_GOOD_SCROLL", "REFINE_CANT_MAKE_SOCKET_ITEM", "REFINE_NOT_NEXT_GRADE_ITEM", "REFINE_CANT_REFINE_METIN_TO_EQUIPMENT", "REFINE_CANT_REFINE_ROD", "ATTACH_METIN_CANT", "ATTACH_METIN_OK", "ATTACH_METIN_NOT_MATCHABLE_ITEM", "ATTACH_METIN_NO_MATCHABLE_SOCKET", "ATTACH_METIN_NOT_EXIST_GOLD_SOCKET", "ATTACH_METIN_CANT_ATTACH_TO_EQUIPMENT", "DETACH_METIN_CANT", "DETACH_METIN_OK", "PARTY_STATE_NORMAL", "PARTY_STATE_LEADER", "PARTY_STATE_ATTACKER", "PARTY_STATE_TANKER", "PARTY_STATE_BUFFER", "PARTY_STATE_SKILL_MASTER", "PARTY_STATE_BERSERKER", "PARTY_STATE_DEFENDER", "PARTY_STATE_MAX_NUM", "SKILL_INDEX_TONGSOL", "SKILL_INDEX_FISHING", "SKILL_INDEX_MINING", "SKILL_INDEX_MAKING", "SKILL_INDEX_COMBO", "SKILL_INDEX_LANGUAGE1", "SKILL_INDEX_LANGUAGE2", "SKILL_INDEX_LANGUAGE3", "SKILL_INDEX_POLYMORPH", "SKILL_INDEX_RIDING", "SKILL_INDEX_SUMMON", "PK_MODE_PEACE", "PK_MODE_REVENGE", "PK_MODE_FREE", "PK_MODE_PROTECT", "PK_MODE_GUILD", "PK_MODE_MAX_NUM", "BLOCK_EXCHANGE", "BLOCK_PARTY", "BLOCK_GUILD", "BLOCK_WHISPER", "BLOCK_FRIEND", "BLOCK_PARTY_REQUEST", "PARTY_EXP_NON_DISTRIBUTION", "PARTY_EXP_DISTRIBUTION_PARITY", "EMOTION_CLAP", "EMOTION_CHEERS_1", "EMOTION_CHEERS_2", "EMOTION_DANCE_1", "EMOTION_DANCE_2", "EMOTION_DANCE_3", "EMOTION_DANCE_4", "EMOTION_DANCE_5", "EMOTION_DANCE_6", "EMOTION_CONGRATULATION", "EMOTION_FORGIVE", "EMOTION_ANGRY", "EMOTION_ATTRACTIVE", "EMOTION_SAD", "EMOTION_SHY", "EMOTION_CHEERUP", "EMOTION_BANTER", "EMOTION_JOY", "EMOTION_KISS", "EMOTION_FRENCH_KISS", "EMOTION_SLAP", "AUTO_POTION_TYPE_HP", "AUTO_POTION_TYPE_SP", "DRAGON_SOUL_PAGE_SIZE", "DRAGON_SOUL_PAGE_COUNT", "DRAGON_SOUL_SLOT_COUNT", "DRAGON_SOUL_EQUIPMENT_SLOT_START", "DRAGON_SOUL_EQUIPMENT_PAGE_COUNT", "DRAGON_SOUL_EQUIPMENT_FIRST_SIZE", "DRAGON_SOUL_REFINE_CLOSE", "DS_SUB_HEADER_DO_UPGRADE", "DS_SUB_HEADER_DO_IMPROVEMENT", "DS_SUB_HEADER_DO_REFINE", NULL}; -const char* strings_player[] = {NULL}; // 40250 UserInterface/PythonProfilerModule.cpp: profiler export names. -PyObject* stub_profiler_Push(PyObject*, PyObject*) { return stub_call_named("profiler.Push"); } -PyObject* stub_profiler_Pop(PyObject*, PyObject*) { return stub_call_named("profiler.Pop"); } +PyObject* stub_profiler_Push(PyObject*, PyObject*) { return stub_call_named("profiler.Push", Py_BuildNone()); } +PyObject* stub_profiler_Pop(PyObject*, PyObject*) { return stub_call_named("profiler.Pop", Py_BuildNone()); } PyMethodDef methods_profiler[] = { { "Push", stub_profiler_Push, METH_VARARGS }, { "Pop", stub_profiler_Pop, METH_VARARGS }, { NULL, NULL } }; -const char* ints_profiler[] = {NULL}; -const char* strings_profiler[] = {NULL}; // 40250 UserInterface/PythonQuest.cpp: quest export names. -PyObject* stub_quest_GetQuestCount(PyObject*, PyObject*) { return stub_call_named("quest.GetQuestCount"); } -PyObject* stub_quest_GetQuestData(PyObject*, PyObject*) { return stub_call_named("quest.GetQuestData"); } -PyObject* stub_quest_GetQuestIndex(PyObject*, PyObject*) { return stub_call_named("quest.GetQuestIndex"); } -PyObject* stub_quest_GetQuestLastTime(PyObject*, PyObject*) { return stub_call_named("quest.GetQuestLastTime"); } -PyObject* stub_quest_Clear(PyObject*, PyObject*) { return stub_call_named("quest.Clear"); } +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 }, @@ -1179,21 +1172,19 @@ PyMethodDef methods_quest[] = { { "Clear", stub_quest_Clear, METH_VARARGS }, { NULL, NULL } }; -const char* ints_quest[] = {"QUEST_MAX_NUM", NULL}; -const char* strings_quest[] = {NULL}; // 40250 UserInterface/PythonSafeBox.cpp: safebox export names. -PyObject* stub_safebox_GetCurrentSafeboxSize(PyObject*, PyObject*) { return stub_call_named("safebox.GetCurrentSafeboxSize"); } -PyObject* stub_safebox_GetItemID(PyObject*, PyObject*) { return stub_call_named("safebox.GetItemID"); } -PyObject* stub_safebox_GetItemCount(PyObject*, PyObject*) { return stub_call_named("safebox.GetItemCount"); } -PyObject* stub_safebox_GetItemFlags(PyObject*, PyObject*) { return stub_call_named("safebox.GetItemFlags"); } -PyObject* stub_safebox_GetItemMetinSocket(PyObject*, PyObject*) { return stub_call_named("safebox.GetItemMetinSocket"); } -PyObject* stub_safebox_GetItemAttribute(PyObject*, PyObject*) { return stub_call_named("safebox.GetItemAttribute"); } -PyObject* stub_safebox_GetMoney(PyObject*, PyObject*) { return stub_call_named("safebox.GetMoney"); } -PyObject* stub_safebox_GetMallItemID(PyObject*, PyObject*) { return stub_call_named("safebox.GetMallItemID"); } -PyObject* stub_safebox_GetMallItemCount(PyObject*, PyObject*) { return stub_call_named("safebox.GetMallItemCount"); } -PyObject* stub_safebox_GetMallItemMetinSocket(PyObject*, PyObject*) { return stub_call_named("safebox.GetMallItemMetinSocket"); } -PyObject* stub_safebox_GetMallItemAttribute(PyObject*, PyObject*) { return stub_call_named("safebox.GetMallItemAttribute"); } -PyObject* stub_safebox_GetMallSize(PyObject*, PyObject*) { return stub_call_named("safebox.GetMallSize"); } +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)); } +PyObject* stub_safebox_GetItemCount(PyObject*, PyObject*) { return stub_call_named("safebox.GetItemCount", Py_BuildValue("i", 0)); } +PyObject* stub_safebox_GetItemFlags(PyObject*, PyObject*) { return stub_call_named("safebox.GetItemFlags", Py_BuildValue("i", 0)); } +PyObject* stub_safebox_GetItemMetinSocket(PyObject*, PyObject*) { return stub_call_named("safebox.GetItemMetinSocket", Py_BuildValue("i", 0)); } +PyObject* stub_safebox_GetItemAttribute(PyObject*, PyObject*) { return stub_call_named("safebox.GetItemAttribute", Py_BuildValue("ii", 0, 0)); } +PyObject* stub_safebox_GetMoney(PyObject*, PyObject*) { return stub_call_named("safebox.GetMoney", Py_BuildValue("i", 0)); } +PyObject* stub_safebox_GetMallItemID(PyObject*, PyObject*) { return stub_call_named("safebox.GetMallItemID", Py_BuildValue("i", 0)); } +PyObject* stub_safebox_GetMallItemCount(PyObject*, PyObject*) { return stub_call_named("safebox.GetMallItemCount", Py_BuildValue("i", 0)); } +PyObject* stub_safebox_GetMallItemMetinSocket(PyObject*, PyObject*) { return stub_call_named("safebox.GetMallItemMetinSocket", Py_BuildValue("i", 0)); } +PyObject* stub_safebox_GetMallItemAttribute(PyObject*, PyObject*) { return stub_call_named("safebox.GetMallItemAttribute", Py_BuildValue("ii", 0, 0)); } +PyObject* stub_safebox_GetMallSize(PyObject*, PyObject*) { return stub_call_named("safebox.GetMallSize", Py_BuildValue("i", 0)); } PyMethodDef methods_safebox[] = { { "GetCurrentSafeboxSize", stub_safebox_GetCurrentSafeboxSize, METH_VARARGS }, { "GetItemID", stub_safebox_GetItemID, METH_VARARGS }, @@ -1209,27 +1200,25 @@ PyMethodDef methods_safebox[] = { { "GetMallSize", stub_safebox_GetMallSize, METH_VARARGS }, { NULL, NULL } }; -const char* ints_safebox[] = {"SAFEBOX_SLOT_X_COUNT", "SAFEBOX_SLOT_Y_COUNT", "SAFEBOX_PAGE_SIZE", NULL}; -const char* strings_safebox[] = {NULL}; // 40250 UserInterface/PythonShop.cpp: shop export names. -PyObject* stub_shop_Open(PyObject*, PyObject*) { return stub_call_named("shop.Open"); } -PyObject* stub_shop_Close(PyObject*, PyObject*) { return stub_call_named("shop.Close"); } -PyObject* stub_shop_IsOpen(PyObject*, PyObject*) { return stub_call_named("shop.IsOpen"); } -PyObject* stub_shop_IsPrivateShop(PyObject*, PyObject*) { return stub_call_named("shop.IsPrivateShop"); } -PyObject* stub_shop_IsMainPlayerPrivateShop(PyObject*, PyObject*) { return stub_call_named("shop.IsMainPlayerPrivateShop"); } -PyObject* stub_shop_GetItemID(PyObject*, PyObject*) { return stub_call_named("shop.GetItemID"); } -PyObject* stub_shop_GetItemCount(PyObject*, PyObject*) { return stub_call_named("shop.GetItemCount"); } -PyObject* stub_shop_GetItemPrice(PyObject*, PyObject*) { return stub_call_named("shop.GetItemPrice"); } -PyObject* stub_shop_GetItemMetinSocket(PyObject*, PyObject*) { return stub_call_named("shop.GetItemMetinSocket"); } -PyObject* stub_shop_GetItemAttribute(PyObject*, PyObject*) { return stub_call_named("shop.GetItemAttribute"); } -PyObject* stub_shop_GetTabCount(PyObject*, PyObject*) { return stub_call_named("shop.GetTabCount"); } -PyObject* stub_shop_GetTabName(PyObject*, PyObject*) { return stub_call_named("shop.GetTabName"); } -PyObject* stub_shop_GetTabCoinType(PyObject*, PyObject*) { return stub_call_named("shop.GetTabCoinType"); } -PyObject* stub_shop_ClearPrivateShopStock(PyObject*, PyObject*) { return stub_call_named("shop.ClearPrivateShopStock"); } -PyObject* stub_shop_AddPrivateShopItemStock(PyObject*, PyObject*) { return stub_call_named("shop.AddPrivateShopItemStock"); } -PyObject* stub_shop_DelPrivateShopItemStock(PyObject*, PyObject*) { return stub_call_named("shop.DelPrivateShopItemStock"); } -PyObject* stub_shop_GetPrivateShopItemPrice(PyObject*, PyObject*) { return stub_call_named("shop.GetPrivateShopItemPrice"); } -PyObject* stub_shop_BuildPrivateShop(PyObject*, PyObject*) { return stub_call_named("shop.BuildPrivateShop"); } +PyObject* stub_shop_Open(PyObject*, PyObject*) { return stub_call_named("shop.Open", Py_BuildNone()); } +PyObject* stub_shop_Close(PyObject*, PyObject*) { return stub_call_named("shop.Close", Py_BuildNone()); } +PyObject* stub_shop_IsOpen(PyObject*, PyObject*) { return stub_call_named("shop.IsOpen", Py_BuildValue("i", 0)); } +PyObject* stub_shop_IsPrivateShop(PyObject*, PyObject*) { return stub_call_named("shop.IsPrivateShop", Py_BuildValue("i", 0)); } +PyObject* stub_shop_IsMainPlayerPrivateShop(PyObject*, PyObject*) { return stub_call_named("shop.IsMainPlayerPrivateShop", Py_BuildValue("i", 0)); } +PyObject* stub_shop_GetItemID(PyObject*, PyObject*) { return stub_call_named("shop.GetItemID", Py_BuildValue("i", 0)); } +PyObject* stub_shop_GetItemCount(PyObject*, PyObject*) { return stub_call_named("shop.GetItemCount", Py_BuildValue("i", 0)); } +PyObject* stub_shop_GetItemPrice(PyObject*, PyObject*) { return stub_call_named("shop.GetItemPrice", Py_BuildValue("i", 0)); } +PyObject* stub_shop_GetItemMetinSocket(PyObject*, PyObject*) { return stub_call_named("shop.GetItemMetinSocket", Py_BuildValue("i", 0)); } +PyObject* stub_shop_GetItemAttribute(PyObject*, PyObject*) { return stub_call_named("shop.GetItemAttribute", Py_BuildValue("ii", 0, 0)); } +PyObject* stub_shop_GetTabCount(PyObject*, PyObject*) { return stub_call_named("shop.GetTabCount", Py_BuildValue("i", 0)); } +PyObject* stub_shop_GetTabName(PyObject*, PyObject*) { return stub_call_named("shop.GetTabName", Py_BuildValue("s", "")); } +PyObject* stub_shop_GetTabCoinType(PyObject*, PyObject*) { return stub_call_named("shop.GetTabCoinType", Py_BuildValue("i", 0)); } +PyObject* stub_shop_ClearPrivateShopStock(PyObject*, PyObject*) { return stub_call_named("shop.ClearPrivateShopStock", Py_BuildNone()); } +PyObject* stub_shop_AddPrivateShopItemStock(PyObject*, PyObject*) { return stub_call_named("shop.AddPrivateShopItemStock", Py_BuildNone()); } +PyObject* stub_shop_DelPrivateShopItemStock(PyObject*, PyObject*) { return stub_call_named("shop.DelPrivateShopItemStock", Py_BuildNone()); } +PyObject* stub_shop_GetPrivateShopItemPrice(PyObject*, PyObject*) { return stub_call_named("shop.GetPrivateShopItemPrice", Py_BuildValue("i", 0)); } +PyObject* stub_shop_BuildPrivateShop(PyObject*, PyObject*) { return stub_call_named("shop.BuildPrivateShop", Py_BuildNone()); } PyMethodDef methods_shop[] = { { "Open", stub_shop_Open, METH_VARARGS }, { "Close", stub_shop_Close, METH_VARARGS }, @@ -1251,49 +1240,47 @@ PyMethodDef methods_shop[] = { { "BuildPrivateShop", stub_shop_BuildPrivateShop, METH_VARARGS }, { NULL, NULL } }; -const char* ints_shop[] = {"SHOP_SLOT_COUNT", "SHOP_COIN_TYPE_GOLD", "SHOP_COIN_TYPE_SECONDARY_COIN", NULL}; -const char* strings_shop[] = {NULL}; // 40250 UserInterface/PythonSkill.cpp: skill export names. -PyObject* stub_skill_SetPathName(PyObject*, PyObject*) { return stub_call_named("skill.SetPathName"); } -PyObject* stub_skill_RegisterSkill(PyObject*, PyObject*) { return stub_call_named("skill.RegisterSkill"); } -PyObject* stub_skill_LoadSkillData(PyObject*, PyObject*) { return stub_call_named("skill.LoadSkillData"); } -PyObject* stub_skill_ClearSkillData(PyObject*, PyObject*) { return stub_call_named("skill.ClearSkillData"); } -PyObject* stub_skill_GetSkillName(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillName"); } -PyObject* stub_skill_GetSkillDescription(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillDescription"); } -PyObject* stub_skill_GetSkillType(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillType"); } -PyObject* stub_skill_GetSkillConditionDescriptionCount(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillConditionDescriptionCount"); } -PyObject* stub_skill_GetSkillConditionDescription(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillConditionDescription"); } -PyObject* stub_skill_GetSkillAffectDescriptionCount(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillAffectDescriptionCount"); } -PyObject* stub_skill_GetSkillAffectDescription(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillAffectDescription"); } -PyObject* stub_skill_GetSkillCoolTime(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillCoolTime"); } -PyObject* stub_skill_GetSkillNeedSP(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillNeedSP"); } -PyObject* stub_skill_GetSkillContinuationSP(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillContinuationSP"); } -PyObject* stub_skill_GetSkillMaxLevel(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillMaxLevel"); } -PyObject* stub_skill_GetSkillLevelUpPoint(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillLevelUpPoint"); } -PyObject* stub_skill_GetSkillLevelLimit(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillLevelLimit"); } -PyObject* stub_skill_IsSkillRequirement(PyObject*, PyObject*) { return stub_call_named("skill.IsSkillRequirement"); } -PyObject* stub_skill_GetSkillRequirementData(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillRequirementData"); } -PyObject* stub_skill_GetSkillRequireStatCount(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillRequireStatCount"); } -PyObject* stub_skill_GetSkillRequireStatData(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillRequireStatData"); } -PyObject* stub_skill_CanLevelUpSkill(PyObject*, PyObject*) { return stub_call_named("skill.CanLevelUpSkill"); } -PyObject* stub_skill_IsLevelUpSkill(PyObject*, PyObject*) { return stub_call_named("skill.IsLevelUpSkill"); } -PyObject* stub_skill_CheckRequirementSueccess(PyObject*, PyObject*) { return stub_call_named("skill.CheckRequirementSueccess"); } -PyObject* stub_skill_GetNeedCharacterLevel(PyObject*, PyObject*) { return stub_call_named("skill.GetNeedCharacterLevel"); } -PyObject* stub_skill_IsToggleSkill(PyObject*, PyObject*) { return stub_call_named("skill.IsToggleSkill"); } -PyObject* stub_skill_IsUseHPSkill(PyObject*, PyObject*) { return stub_call_named("skill.IsUseHPSkill"); } -PyObject* stub_skill_IsStandingSkill(PyObject*, PyObject*) { return stub_call_named("skill.IsStandingSkill"); } -PyObject* stub_skill_CanUseSkill(PyObject*, PyObject*) { return stub_call_named("skill.CanUseSkill"); } -PyObject* stub_skill_GetIconName(PyObject*, PyObject*) { return stub_call_named("skill.GetIconName"); } -PyObject* stub_skill_GetIconImage(PyObject*, PyObject*) { return stub_call_named("skill.GetIconImage"); } -PyObject* stub_skill_GetIconImageNew(PyObject*, PyObject*) { return stub_call_named("skill.GetIconImageNew"); } -PyObject* stub_skill_GetIconInstance(PyObject*, PyObject*) { return stub_call_named("skill.GetIconInstance"); } -PyObject* stub_skill_GetIconInstanceNew(PyObject*, PyObject*) { return stub_call_named("skill.GetIconInstanceNew"); } -PyObject* stub_skill_DeleteIconInstance(PyObject*, PyObject*) { return stub_call_named("skill.DeleteIconInstance"); } -PyObject* stub_skill_GetGradeData(PyObject*, PyObject*) { return stub_call_named("skill.GetGradeData"); } -PyObject* stub_skill_GetNewAffectDataCount(PyObject*, PyObject*) { return stub_call_named("skill.GetNewAffectDataCount"); } -PyObject* stub_skill_GetNewAffectData(PyObject*, PyObject*) { return stub_call_named("skill.GetNewAffectData"); } -PyObject* stub_skill_GetDuration(PyObject*, PyObject*) { return stub_call_named("skill.GetDuration"); } -PyObject* stub_skill_TEST(PyObject*, PyObject*) { return stub_call_named("skill.TEST"); } +PyObject* stub_skill_SetPathName(PyObject*, PyObject*) { return stub_call_named("skill.SetPathName", Py_BuildNone()); } +PyObject* stub_skill_RegisterSkill(PyObject*, PyObject*) { return stub_call_named("skill.RegisterSkill", Py_BuildNone()); } +PyObject* stub_skill_LoadSkillData(PyObject*, PyObject*) { return stub_call_named("skill.LoadSkillData", Py_BuildNone()); } +PyObject* stub_skill_ClearSkillData(PyObject*, PyObject*) { return stub_call_named("skill.ClearSkillData", Py_BuildNone()); } +PyObject* stub_skill_GetSkillName(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillName", Py_BuildValue("s", "")); } +PyObject* stub_skill_GetSkillDescription(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillDescription", Py_BuildValue("s", "")); } +PyObject* stub_skill_GetSkillType(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillType", Py_BuildValue("i", 0)); } +PyObject* stub_skill_GetSkillConditionDescriptionCount(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillConditionDescriptionCount", Py_BuildValue("i", 0)); } +PyObject* stub_skill_GetSkillConditionDescription(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillConditionDescription", Py_BuildValue("s", "")); } +PyObject* stub_skill_GetSkillAffectDescriptionCount(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillAffectDescriptionCount", Py_BuildValue("i", 0)); } +PyObject* stub_skill_GetSkillAffectDescription(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillAffectDescription", Py_BuildValue("s", "")); } +PyObject* stub_skill_GetSkillCoolTime(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillCoolTime", Py_BuildValue("i", 0)); } +PyObject* stub_skill_GetSkillNeedSP(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillNeedSP", Py_BuildValue("i", 0)); } +PyObject* stub_skill_GetSkillContinuationSP(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillContinuationSP", Py_BuildValue("i", 0)); } +PyObject* stub_skill_GetSkillMaxLevel(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillMaxLevel", Py_BuildValue("i", 0)); } +PyObject* stub_skill_GetSkillLevelUpPoint(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillLevelUpPoint", Py_BuildValue("i", 0)); } +PyObject* stub_skill_GetSkillLevelLimit(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillLevelLimit", Py_BuildValue("i", 0)); } +PyObject* stub_skill_IsSkillRequirement(PyObject*, PyObject*) { return stub_call_named("skill.IsSkillRequirement", Py_BuildValue("i", 0)); } +PyObject* stub_skill_GetSkillRequirementData(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillRequirementData", Py_BuildValue("si", "", 0)); } +PyObject* stub_skill_GetSkillRequireStatCount(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillRequireStatCount", Py_BuildValue("i", 0)); } +PyObject* stub_skill_GetSkillRequireStatData(PyObject*, PyObject*) { return stub_call_named("skill.GetSkillRequireStatData", Py_BuildValue("ii", 0, 0)); } +PyObject* stub_skill_CanLevelUpSkill(PyObject*, PyObject*) { return stub_call_named("skill.CanLevelUpSkill", Py_BuildValue("i", 0)); } +PyObject* stub_skill_IsLevelUpSkill(PyObject*, PyObject*) { return stub_call_named("skill.IsLevelUpSkill", Py_BuildValue("i", 0)); } +PyObject* stub_skill_CheckRequirementSueccess(PyObject*, PyObject*) { return stub_call_named("skill.CheckRequirementSueccess", Py_BuildValue("i", 0)); } +PyObject* stub_skill_GetNeedCharacterLevel(PyObject*, PyObject*) { return stub_call_named("skill.GetNeedCharacterLevel", Py_BuildValue("i", 0)); } +PyObject* stub_skill_IsToggleSkill(PyObject*, PyObject*) { return stub_call_named("skill.IsToggleSkill", Py_BuildValue("i", 0)); } +PyObject* stub_skill_IsUseHPSkill(PyObject*, PyObject*) { return stub_call_named("skill.IsUseHPSkill", Py_BuildValue("i", 0)); } +PyObject* stub_skill_IsStandingSkill(PyObject*, PyObject*) { return stub_call_named("skill.IsStandingSkill", Py_BuildValue("i", 0)); } +PyObject* stub_skill_CanUseSkill(PyObject*, PyObject*) { return stub_call_named("skill.CanUseSkill", Py_BuildValue("i", 0)); } +PyObject* stub_skill_GetIconName(PyObject*, PyObject*) { return stub_call_named("skill.GetIconName", Py_BuildValue("s", "")); } +PyObject* stub_skill_GetIconImage(PyObject*, PyObject*) { return stub_call_named("skill.GetIconImage", Py_BuildValue("i", 0)); } +PyObject* stub_skill_GetIconImageNew(PyObject*, PyObject*) { return stub_call_named("skill.GetIconImageNew", Py_BuildValue("i", 0)); } +PyObject* stub_skill_GetIconInstance(PyObject*, PyObject*) { return stub_call_named("skill.GetIconInstance", Py_BuildValue("i", 0)); } +PyObject* stub_skill_GetIconInstanceNew(PyObject*, PyObject*) { return stub_call_named("skill.GetIconInstanceNew", Py_BuildValue("i", 0)); } +PyObject* stub_skill_DeleteIconInstance(PyObject*, PyObject*) { return stub_call_named("skill.DeleteIconInstance", Py_BuildNone()); } +PyObject* stub_skill_GetGradeData(PyObject*, PyObject*) { return stub_call_named("skill.GetGradeData", Py_BuildValue("i", 0)); } +PyObject* stub_skill_GetNewAffectDataCount(PyObject*, PyObject*) { return stub_call_named("skill.GetNewAffectDataCount", Py_BuildValue("i", 0)); } +PyObject* stub_skill_GetNewAffectData(PyObject*, PyObject*) { return stub_call_named("skill.GetNewAffectData", Py_BuildValue("sff", "", 0.0, 0.0)); } +PyObject* stub_skill_GetDuration(PyObject*, PyObject*) { return stub_call_named("skill.GetDuration", Py_BuildValue("i", 0)); } +PyObject* stub_skill_TEST(PyObject*, PyObject*) { return stub_call_named("skill.TEST", Py_BuildNone()); } PyMethodDef methods_skill[] = { { "SetPathName", stub_skill_SetPathName, METH_VARARGS }, { "RegisterSkill", stub_skill_RegisterSkill, METH_VARARGS }, @@ -1337,23 +1324,21 @@ PyMethodDef methods_skill[] = { { "TEST", stub_skill_TEST, METH_VARARGS }, { NULL, NULL } }; -const char* ints_skill[] = {"SKILL_TYPE_NONE", "SKILL_TYPE_ACTIVE", "SKILL_TYPE_SUPPORT", "SKILL_TYPE_GUILD", "SKILL_TYPE_HORSE", "SKILL_TYPE_MAX_NUM", "SKILL_GRADE_COUNT", "SKILL_GRADE_STEP_COUNT", "SKILL_GRADEGAP", "SKILL_EFFECT_COUNT", NULL}; -const char* strings_skill[] = {NULL}; // 40250 UserInterface/PythonSoundManagerModule.cpp: snd export names. -PyObject* stub_snd_PlaySound(PyObject*, PyObject*) { return stub_call_named("snd.PlaySound"); } -PyObject* stub_snd_PlaySound3D(PyObject*, PyObject*) { return stub_call_named("snd.PlaySound3D"); } -PyObject* stub_snd_PlayMusic(PyObject*, PyObject*) { return stub_call_named("snd.PlayMusic"); } -PyObject* stub_snd_FadeInMusic(PyObject*, PyObject*) { return stub_call_named("snd.FadeInMusic"); } -PyObject* stub_snd_FadeOutMusic(PyObject*, PyObject*) { return stub_call_named("snd.FadeOutMusic"); } -PyObject* stub_snd_FadeOutAllMusic(PyObject*, PyObject*) { return stub_call_named("snd.FadeOutAllMusic"); } -PyObject* stub_snd_FadeLimitOutMusic(PyObject*, PyObject*) { return stub_call_named("snd.FadeLimitOutMusic"); } -PyObject* stub_snd_StopAllSound(PyObject*, PyObject*) { return stub_call_named("snd.StopAllSound"); } -PyObject* stub_snd_SetMusicVolumef(PyObject*, PyObject*) { return stub_call_named("snd.SetMusicVolumef"); } -PyObject* stub_snd_SetMusicVolume(PyObject*, PyObject*) { return stub_call_named("snd.SetMusicVolume"); } -PyObject* stub_snd_SetSoundVolumef(PyObject*, PyObject*) { return stub_call_named("snd.SetSoundVolumef"); } -PyObject* stub_snd_SetSoundVolume(PyObject*, PyObject*) { return stub_call_named("snd.SetSoundVolume"); } -PyObject* stub_snd_SetSoundScale(PyObject*, PyObject*) { return stub_call_named("snd.SetSoundScale"); } -PyObject* stub_snd_SetAmbienceSoundScale(PyObject*, PyObject*) { return stub_call_named("snd.SetAmbienceSoundScale"); } +PyObject* stub_snd_PlaySound(PyObject*, PyObject*) { return stub_call_named("snd.PlaySound", Py_BuildNone()); } +PyObject* stub_snd_PlaySound3D(PyObject*, PyObject*) { return stub_call_named("snd.PlaySound3D", Py_BuildNone()); } +PyObject* stub_snd_PlayMusic(PyObject*, PyObject*) { return stub_call_named("snd.PlayMusic", Py_BuildNone()); } +PyObject* stub_snd_FadeInMusic(PyObject*, PyObject*) { return stub_call_named("snd.FadeInMusic", Py_BuildNone()); } +PyObject* stub_snd_FadeOutMusic(PyObject*, PyObject*) { return stub_call_named("snd.FadeOutMusic", Py_BuildNone()); } +PyObject* stub_snd_FadeOutAllMusic(PyObject*, PyObject*) { return stub_call_named("snd.FadeOutAllMusic", Py_BuildNone()); } +PyObject* stub_snd_FadeLimitOutMusic(PyObject*, PyObject*) { return stub_call_named("snd.FadeLimitOutMusic", Py_BuildNone()); } +PyObject* stub_snd_StopAllSound(PyObject*, PyObject*) { return stub_call_named("snd.StopAllSound", Py_BuildNone()); } +PyObject* stub_snd_SetMusicVolumef(PyObject*, PyObject*) { return stub_call_named("snd.SetMusicVolumef", Py_BuildNone()); } +PyObject* stub_snd_SetMusicVolume(PyObject*, PyObject*) { return stub_call_named("snd.SetMusicVolume", Py_BuildNone()); } +PyObject* stub_snd_SetSoundVolumef(PyObject*, PyObject*) { return stub_call_named("snd.SetSoundVolumef", Py_BuildNone()); } +PyObject* stub_snd_SetSoundVolume(PyObject*, PyObject*) { return stub_call_named("snd.SetSoundVolume", Py_BuildNone()); } +PyObject* stub_snd_SetSoundScale(PyObject*, PyObject*) { return stub_call_named("snd.SetSoundScale", Py_BuildNone()); } +PyObject* stub_snd_SetAmbienceSoundScale(PyObject*, PyObject*) { return stub_call_named("snd.SetAmbienceSoundScale", Py_BuildNone()); } PyMethodDef methods_snd[] = { { "PlaySound", stub_snd_PlaySound, METH_VARARGS }, { "PlaySound3D", stub_snd_PlaySound3D, METH_VARARGS }, @@ -1371,8 +1356,6 @@ PyMethodDef methods_snd[] = { { "SetAmbienceSoundScale", stub_snd_SetAmbienceSoundScale, METH_VARARGS }, { NULL, NULL } }; -const char* ints_snd[] = {NULL}; -const char* strings_snd[] = {NULL}; // 40250 UserInterface/PythonSystemModule.cpp: systemSetting export names. // 40250 CPythonSystem::GetWidth/GetHeight return metin2.cfg's WIDTH/HEIGHT (default 800x600), which // RunApp passes to wndMgr.SetScreenSize and app.Create. PORT (2V0-f): the Godot canvas is the window, @@ -1387,39 +1370,39 @@ PyObject* stub_systemSetting_GetHeight(PyObject*, PyObject*) { UIRenderGetSize(nullptr, &height); return Py_BuildValue("i", height ? int(height) : 600); } -PyObject* stub_systemSetting_SetInterfaceHandler(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetInterfaceHandler"); } -PyObject* stub_systemSetting_DestroyInterfaceHandler(PyObject*, PyObject*) { return stub_call_named("systemSetting.DestroyInterfaceHandler"); } -PyObject* stub_systemSetting_ReserveResource(PyObject*, PyObject*) { return stub_call_named("systemSetting.ReserveResource"); } -PyObject* stub_systemSetting_isInterfaceConfig(PyObject*, PyObject*) { return stub_call_named("systemSetting.isInterfaceConfig"); } -PyObject* stub_systemSetting_SaveWindowStatus(PyObject*, PyObject*) { return stub_call_named("systemSetting.SaveWindowStatus"); } -PyObject* stub_systemSetting_GetWindowStatus(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetWindowStatus"); } -PyObject* stub_systemSetting_GetResolutionCount(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetResolutionCount"); } -PyObject* stub_systemSetting_GetFrequencyCount(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetFrequencyCount"); } -PyObject* stub_systemSetting_GetCurrentResolution(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetCurrentResolution"); } -PyObject* stub_systemSetting_GetResolution(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetResolution"); } -PyObject* stub_systemSetting_GetFrequency(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetFrequency"); } -PyObject* stub_systemSetting_ApplyConfig(PyObject*, PyObject*) { return stub_call_named("systemSetting.ApplyConfig"); } -PyObject* stub_systemSetting_SetConfig(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetConfig"); } -PyObject* stub_systemSetting_SaveConfig(PyObject*, PyObject*) { return stub_call_named("systemSetting.SaveConfig"); } -PyObject* stub_systemSetting_GetConfig(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetConfig"); } -PyObject* stub_systemSetting_SetSaveID(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetSaveID"); } -PyObject* stub_systemSetting_isSaveID(PyObject*, PyObject*) { return stub_call_named("systemSetting.isSaveID"); } -PyObject* stub_systemSetting_GetSaveID(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetSaveID"); } -PyObject* stub_systemSetting_GetMusicVolume(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetMusicVolume"); } -PyObject* stub_systemSetting_GetSoundVolume(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetSoundVolume"); } -PyObject* stub_systemSetting_SetMusicVolume(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetMusicVolume"); } -PyObject* stub_systemSetting_SetSoundVolumef(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetSoundVolumef"); } -PyObject* stub_systemSetting_IsSoftwareCursor(PyObject*, PyObject*) { return stub_call_named("systemSetting.IsSoftwareCursor"); } -PyObject* stub_systemSetting_SetViewChatFlag(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetViewChatFlag"); } -PyObject* stub_systemSetting_IsViewChat(PyObject*, PyObject*) { return stub_call_named("systemSetting.IsViewChat"); } -PyObject* stub_systemSetting_SetAlwaysShowNameFlag(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetAlwaysShowNameFlag"); } -PyObject* stub_systemSetting_IsAlwaysShowName(PyObject*, PyObject*) { return stub_call_named("systemSetting.IsAlwaysShowName"); } -PyObject* stub_systemSetting_SetShowDamageFlag(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetShowDamageFlag"); } -PyObject* stub_systemSetting_IsShowDamage(PyObject*, PyObject*) { return stub_call_named("systemSetting.IsShowDamage"); } -PyObject* stub_systemSetting_SetShowSalesTextFlag(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetShowSalesTextFlag"); } -PyObject* stub_systemSetting_IsShowSalesText(PyObject*, PyObject*) { return stub_call_named("systemSetting.IsShowSalesText"); } -PyObject* stub_systemSetting_GetShadowLevel(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetShadowLevel"); } -PyObject* stub_systemSetting_SetShadowLevel(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetShadowLevel"); } +PyObject* stub_systemSetting_SetInterfaceHandler(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetInterfaceHandler", Py_BuildNone()); } +PyObject* stub_systemSetting_DestroyInterfaceHandler(PyObject*, PyObject*) { return stub_call_named("systemSetting.DestroyInterfaceHandler", Py_BuildNone()); } +PyObject* stub_systemSetting_ReserveResource(PyObject*, PyObject*) { return stub_call_named("systemSetting.ReserveResource", Py_BuildNone()); } +PyObject* stub_systemSetting_isInterfaceConfig(PyObject*, PyObject*) { return stub_call_named("systemSetting.isInterfaceConfig", Py_BuildValue("i", 0)); } +PyObject* stub_systemSetting_SaveWindowStatus(PyObject*, PyObject*) { return stub_call_named("systemSetting.SaveWindowStatus", Py_BuildNone()); } +PyObject* stub_systemSetting_GetWindowStatus(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetWindowStatus", Py_BuildValue("iiiii", 0, 0, 0, 0, 0)); } +PyObject* stub_systemSetting_GetResolutionCount(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetResolutionCount", Py_BuildValue("i", 0)); } +PyObject* stub_systemSetting_GetFrequencyCount(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetFrequencyCount", Py_BuildValue("i", 0)); } +PyObject* stub_systemSetting_GetCurrentResolution(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetCurrentResolution", Py_BuildValue("iii", 0, 0, 0)); } +PyObject* stub_systemSetting_GetResolution(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetResolution", Py_BuildValue("iii", 0, 0, 0)); } +PyObject* stub_systemSetting_GetFrequency(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetFrequency", Py_BuildValue("i", 0)); } +PyObject* stub_systemSetting_ApplyConfig(PyObject*, PyObject*) { return stub_call_named("systemSetting.ApplyConfig", Py_BuildNone()); } +PyObject* stub_systemSetting_SetConfig(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetConfig", Py_BuildNone()); } +PyObject* stub_systemSetting_SaveConfig(PyObject*, PyObject*) { return stub_call_named("systemSetting.SaveConfig", Py_BuildValue("i", 0)); } +PyObject* stub_systemSetting_GetConfig(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetConfig", Py_BuildValue("iiiiiiii", 0, 0, 0, 0, 0, 0, 0, 0)); } +PyObject* stub_systemSetting_SetSaveID(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetSaveID", Py_BuildNone()); } +PyObject* stub_systemSetting_isSaveID(PyObject*, PyObject*) { return stub_call_named("systemSetting.isSaveID", Py_BuildValue("i", 0)); } +PyObject* stub_systemSetting_GetSaveID(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetSaveID", Py_BuildValue("s", "")); } +PyObject* stub_systemSetting_GetMusicVolume(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetMusicVolume", Py_BuildValue("f", 0.0)); } +PyObject* stub_systemSetting_GetSoundVolume(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetSoundVolume", Py_BuildValue("i", 0)); } +PyObject* stub_systemSetting_SetMusicVolume(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetMusicVolume", Py_BuildNone()); } +PyObject* stub_systemSetting_SetSoundVolumef(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetSoundVolumef", Py_BuildNone()); } +PyObject* stub_systemSetting_IsSoftwareCursor(PyObject*, PyObject*) { return stub_call_named("systemSetting.IsSoftwareCursor", Py_BuildValue("i", 0)); } +PyObject* stub_systemSetting_SetViewChatFlag(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetViewChatFlag", Py_BuildNone()); } +PyObject* stub_systemSetting_IsViewChat(PyObject*, PyObject*) { return stub_call_named("systemSetting.IsViewChat", Py_BuildValue("i", 0)); } +PyObject* stub_systemSetting_SetAlwaysShowNameFlag(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetAlwaysShowNameFlag", Py_BuildNone()); } +PyObject* stub_systemSetting_IsAlwaysShowName(PyObject*, PyObject*) { return stub_call_named("systemSetting.IsAlwaysShowName", Py_BuildValue("i", 0)); } +PyObject* stub_systemSetting_SetShowDamageFlag(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetShowDamageFlag", Py_BuildNone()); } +PyObject* stub_systemSetting_IsShowDamage(PyObject*, PyObject*) { return stub_call_named("systemSetting.IsShowDamage", Py_BuildValue("i", 0)); } +PyObject* stub_systemSetting_SetShowSalesTextFlag(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetShowSalesTextFlag", Py_BuildNone()); } +PyObject* stub_systemSetting_IsShowSalesText(PyObject*, PyObject*) { return stub_call_named("systemSetting.IsShowSalesText", Py_BuildValue("i", 0)); } +PyObject* stub_systemSetting_GetShadowLevel(PyObject*, PyObject*) { return stub_call_named("systemSetting.GetShadowLevel", Py_BuildValue("i", 0)); } +PyObject* stub_systemSetting_SetShadowLevel(PyObject*, PyObject*) { return stub_call_named("systemSetting.SetShadowLevel", Py_BuildNone()); } PyMethodDef methods_systemSetting[] = { { "GetWidth", stub_systemSetting_GetWidth, METH_VARARGS }, { "GetHeight", stub_systemSetting_GetHeight, METH_VARARGS }, @@ -1458,27 +1441,25 @@ PyMethodDef methods_systemSetting[] = { { "SetShadowLevel", stub_systemSetting_SetShadowLevel, METH_VARARGS }, { NULL, NULL } }; -const char* ints_systemSetting[] = {"WINDOW_STATUS", "WINDOW_INVENTORY", "WINDOW_ABILITY", "WINDOW_SOCIETY", "WINDOW_JOURNAL", "WINDOW_COMMAND", "WINDOW_QUICK", "WINDOW_GAUGE", "WINDOW_MINIMAP", "WINDOW_CHAT", NULL}; -const char* strings_systemSetting[] = {NULL}; // 40250 UserInterface/PythonTextTailModule.cpp: textTail export names. -PyObject* stub_textTail_Clear(PyObject*, PyObject*) { return stub_call_named("textTail.Clear"); } -PyObject* stub_textTail_UpdateAllTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.UpdateAllTextTail"); } -PyObject* stub_textTail_UpdateShowingTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.UpdateShowingTextTail"); } -PyObject* stub_textTail_Render(PyObject*, PyObject*) { return stub_call_named("textTail.Render"); } -PyObject* stub_textTail_ShowCharacterTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.ShowCharacterTextTail"); } -PyObject* stub_textTail_ShowItemTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.ShowItemTextTail"); } -PyObject* stub_textTail_GetPosition(PyObject*, PyObject*) { return stub_call_named("textTail.GetPosition"); } -PyObject* stub_textTail_IsChat(PyObject*, PyObject*) { return stub_call_named("textTail.IsChat"); } -PyObject* stub_textTail_ArrangeTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.ArrangeTextTail"); } -PyObject* stub_textTail_HideAllTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.HideAllTextTail"); } -PyObject* stub_textTail_ShowAllTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.ShowAllTextTail"); } -PyObject* stub_textTail_Pick(PyObject*, PyObject*) { return stub_call_named("textTail.Pick"); } -PyObject* stub_textTail_SelectItemName(PyObject*, PyObject*) { return stub_call_named("textTail.SelectItemName"); } -PyObject* stub_textTail_EnablePKTitle(PyObject*, PyObject*) { return stub_call_named("textTail.EnablePKTitle"); } -PyObject* stub_textTail_RegisterCharacterTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.RegisterCharacterTextTail"); } -PyObject* stub_textTail_RegisterChatTail(PyObject*, PyObject*) { return stub_call_named("textTail.RegisterChatTail"); } -PyObject* stub_textTail_RegisterInfoTail(PyObject*, PyObject*) { return stub_call_named("textTail.RegisterInfoTail"); } -PyObject* stub_textTail_AttachTitle(PyObject*, PyObject*) { return stub_call_named("textTail.AttachTitle"); } +PyObject* stub_textTail_Clear(PyObject*, PyObject*) { return stub_call_named("textTail.Clear", Py_BuildNone()); } +PyObject* stub_textTail_UpdateAllTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.UpdateAllTextTail", Py_BuildNone()); } +PyObject* stub_textTail_UpdateShowingTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.UpdateShowingTextTail", Py_BuildNone()); } +PyObject* stub_textTail_Render(PyObject*, PyObject*) { return stub_call_named("textTail.Render", Py_BuildNone()); } +PyObject* stub_textTail_ShowCharacterTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.ShowCharacterTextTail", Py_BuildNone()); } +PyObject* stub_textTail_ShowItemTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.ShowItemTextTail", Py_BuildNone()); } +PyObject* stub_textTail_GetPosition(PyObject*, PyObject*) { return stub_call_named("textTail.GetPosition", Py_BuildValue("fff", 0.0, 0.0, 0.0)); } +PyObject* stub_textTail_IsChat(PyObject*, PyObject*) { return stub_call_named("textTail.IsChat", Py_BuildValue("i", 0)); } +PyObject* stub_textTail_ArrangeTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.ArrangeTextTail", Py_BuildNone()); } +PyObject* stub_textTail_HideAllTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.HideAllTextTail", Py_BuildNone()); } +PyObject* stub_textTail_ShowAllTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.ShowAllTextTail", Py_BuildNone()); } +PyObject* stub_textTail_Pick(PyObject*, PyObject*) { return stub_call_named("textTail.Pick", Py_BuildValue("i", 0)); } +PyObject* stub_textTail_SelectItemName(PyObject*, PyObject*) { return stub_call_named("textTail.SelectItemName", Py_BuildNone()); } +PyObject* stub_textTail_EnablePKTitle(PyObject*, PyObject*) { return stub_call_named("textTail.EnablePKTitle", Py_BuildNone()); } +PyObject* stub_textTail_RegisterCharacterTextTail(PyObject*, PyObject*) { return stub_call_named("textTail.RegisterCharacterTextTail", Py_BuildNone()); } +PyObject* stub_textTail_RegisterChatTail(PyObject*, PyObject*) { return stub_call_named("textTail.RegisterChatTail", Py_BuildNone()); } +PyObject* stub_textTail_RegisterInfoTail(PyObject*, PyObject*) { return stub_call_named("textTail.RegisterInfoTail", Py_BuildNone()); } +PyObject* stub_textTail_AttachTitle(PyObject*, PyObject*) { return stub_call_named("textTail.AttachTitle", Py_BuildNone()); } PyMethodDef methods_textTail[] = { { "Clear", stub_textTail_Clear, METH_VARARGS }, { "UpdateAllTextTail", stub_textTail_UpdateAllTextTail, METH_VARARGS }, @@ -1500,227 +1481,145 @@ PyMethodDef methods_textTail[] = { { "AttachTitle", stub_textTail_AttachTitle, METH_VARARGS }, { NULL, NULL } }; -const char* ints_textTail[] = {NULL}; -const char* strings_textTail[] = {NULL}; // 40250 UserInterface/PythonNetworkDatagramModule.cpp: udp export names. -PyObject* stub_udp_Enable(PyObject*, PyObject*) { return stub_call_named("udp.Enable"); } -PyObject* stub_udp_Disable(PyObject*, PyObject*) { return stub_call_named("udp.Disable"); } +PyObject* stub_udp_Enable(PyObject*, PyObject*) { return stub_call_named("udp.Enable", Py_BuildNone()); } +PyObject* stub_udp_Disable(PyObject*, PyObject*) { return stub_call_named("udp.Disable", Py_BuildNone()); } PyMethodDef methods_udp[] = { { "Enable", stub_udp_Enable, METH_VARARGS }, { "Disable", stub_udp_Disable, METH_VARARGS }, { NULL, NULL } }; -const char* ints_udp[] = {NULL}; -const char* strings_udp[] = {NULL}; } // namespace void init_2v0_gameplay_stubs() { { PyObject* module = Py_InitModule("ServerStateChecker", methods_ServerStateChecker); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_ServerStateChecker; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_ServerStateChecker; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_ServerStateChecker(module); } { PyObject* module = Py_InitModule("background", methods_background); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_background; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_background; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_background(module); } { PyObject* module = Py_InitModule("chat", methods_chat); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_chat; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_chat; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_chat(module); } { PyObject* module = Py_InitModule("chr", methods_chr); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_chr; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_chr; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_chr(module); } { PyObject* module = Py_InitModule("chrmgr", methods_chrmgr); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_chrmgr; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_chrmgr; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_chrmgr(module); } { PyObject* module = Py_InitModule("effect", methods_effect); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_effect; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_effect; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_effect(module); } { PyObject* module = Py_InitModule("event", methods_event); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_event; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_event; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_event(module); } { PyObject* module = Py_InitModule("eventMgr", methods_eventMgr); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_eventMgr; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_eventMgr; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_eventMgr(module); } { PyObject* module = Py_InitModule("exchange", methods_exchange); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_exchange; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_exchange; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_exchange(module); } { PyObject* module = Py_InitModule("fly", methods_fly); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_fly; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_fly; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_fly(module); } { PyObject* module = Py_InitModule("guild", methods_guild); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_guild; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_guild; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_guild(module); } { PyObject* module = Py_InitModule("ime", methods_ime); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_ime; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_ime; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_ime(module); } { PyObject* module = Py_InitModule("item", methods_item); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_item; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_item; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_item(module); } { PyObject* module = Py_InitModule("messenger", methods_messenger); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_messenger; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_messenger; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_messenger(module); } { PyObject* module = Py_InitModule("miniMap", methods_miniMap); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_miniMap; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_miniMap; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_miniMap(module); } { PyObject* module = Py_InitModule("nonplayer", methods_nonplayer); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_nonplayer; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_nonplayer; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_nonplayer(module); } { PyObject* module = Py_InitModule("player", methods_player); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_player; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_player; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_player(module); } { PyObject* module = Py_InitModule("profiler", methods_profiler); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_profiler; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_profiler; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_profiler(module); } { PyObject* module = Py_InitModule("quest", methods_quest); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_quest; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_quest; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_quest(module); } { PyObject* module = Py_InitModule("safebox", methods_safebox); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_safebox; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_safebox; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_safebox(module); } { PyObject* module = Py_InitModule("shop", methods_shop); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_shop; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_shop; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_shop(module); } { PyObject* module = Py_InitModule("skill", methods_skill); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_skill; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_skill; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_skill(module); } { PyObject* module = Py_InitModule("snd", methods_snd); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_snd; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_snd; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_snd(module); } { PyObject* module = Py_InitModule("systemSetting", methods_systemSetting); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_systemSetting; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_systemSetting; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_systemSetting(module); } { PyObject* module = Py_InitModule("textTail", methods_textTail); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_textTail; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_textTail; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_textTail(module); } { PyObject* module = Py_InitModule("udp", methods_udp); PyModule_AddIntConstant(module, "__port_stub__", 1); - for (const char** name = ints_udp; *name; ++name) - PyModule_AddIntConstant(module, *name, 0); - for (const char** name = strings_udp; *name; ++name) - PyModule_AddStringConstant(module, *name, ""); + AddStubConstants_udp(module); } } diff --git a/extension/src/port/UserInterface/StdAfx.h b/extension/src/port/UserInterface/StdAfx.h index 8d0707d6..df9a9b1f 100644 --- a/extension/src/port/UserInterface/StdAfx.h +++ b/extension/src/port/UserInterface/StdAfx.h @@ -11,8 +11,8 @@ #include "../GameLib/StdAfx.h" // 40250 PCH order: GameLib types precede UserInterface/GameType.h. #include "../GameLib/RaceData.h" #include "../EterPythonLib/StdAfx.h" +#include "Locale.h" // Before GameType.h, as in 40250: Locale_inc.h's feature macros shape its tables. #include "GameType.h" // 40250's UserInterface precompiled header supplies these item types. -#include "Locale.h" #include "../EterBase/tea.h" #include diff --git a/extension/tests/port_login_flow_server.cpp b/extension/tests/port_login_flow_server.cpp index 4f11542b..90b05946 100644 --- a/extension/tests/port_login_flow_server.cpp +++ b/extension/tests/port_login_flow_server.cpp @@ -434,7 +434,13 @@ bool FakeLoginServer::ServeGame(Connection& c, int index) c.sequence = (c.sequence + 1) % SEQUENCE_TABLE_SIZE; Event(name + ":client_version"); - // Hold the connection (the loading screen) until the test stops us. + // game.GameWindow.Open (after the loading steps' net.StartGame()) sends CG_ENTERGAME. + auto enter = zeroed(); + if (read_packet(c, HDR_CG_ENTERGAME, &enter, sizeof(enter), &error) != 1) + return Fail(name + ": CG_ENTERGAME: " + error); + Event(name + ":entergame"); + + // Hold the connection until the test stops us. std::uint8_t byte = 0; while (!m_stop && c.Read(&byte, 1) == 1) ; diff --git a/extension/tests/port_login_flow_test.cpp b/extension/tests/port_login_flow_test.cpp index cca0acdc..283531b8 100644 --- a/extension/tests/port_login_flow_test.cpp +++ b/extension/tests/port_login_flow_test.cpp @@ -1,4 +1,4 @@ -// 批次 2V1-d: the real 40250 login → select → loading path, offline. +// 批次 2V1-d/2V2: the real 40250 login → select → loading → game path, offline. // // The 40250 root scripts (intrologin.py, introselect.py, introloading.py, networkmodule.py) drive the // ported CPythonNetworkStream and CAccountConnector against FakeLoginServer (port_login_flow_server.h), @@ -13,7 +13,9 @@ // slot's addr/port, logs in again, and in direct-enter mode the select phase goes straight to // introLoading.LoadingWindow, which sends CG_CHARACTER_SELECT; // 5. PHASE_LOADING, GC_MAIN_CHARACTER, GC_CHARACTER_POINTS: the loading phase answers the main -// character with CG_CLIENT_VERSION(2), the server's proof the client reached Loading. +// character with CG_CLIENT_VERSION(2), the server's proof the client reached Loading; +// 6. (批次 2V2) the loading steps end in net.StartGame(): networkModule.SetGamePhase opens +// game.GameWindow, whose Open sends CG_ENTERGAME. // // The server checks every sequence byte against the 40250 table, so a skipped or extra sequenced // packet fails the run. @@ -21,9 +23,9 @@ // port_login_flow_test <40250 Client dir> [live] // // With `live` (批次 2V1-e, ctest port.login_live) the same path runs against a real 40250 server and -// the client's own state is the proof: the character list arrived, and the loading window got +// the client's own state is the proof: the character list arrived, the loading window got // LoadData from GC_MAIN_CHARACTER, which CPythonNetworkStream::RecvMainCharacter answers with -// CG_CLIENT_VERSION. The test exits before net.StartGame() would enter the game. Everything about the +// CG_CLIENT_VERSION, and game.GameWindow is open, which sent CG_ENTERGAME. Everything about the // server comes from the environment and nothing of it is printed: // // MT_LIVE_HOST, MT_LIVE_LOGIN, MT_LIVE_PASSWORD required; without them the test is skipped @@ -226,16 +228,23 @@ int main(int argc, char** argv) return failed() || (server ? server->Has("game2:client_version") : py_true(loaded)); }); CHECK(loading && !failed()); - // Checked right away: introLoading's own update steps end in net.StartGame(), after which the stream - // opens game.GameWindow itself (CPythonNetworkStream::Process, m_isStartGame), which is 2V2. CHECK(py_true(loaded)); - } + // 6. introLoading's update steps end in net.StartGame(); the next CPythonNetworkStream::Process calls + // networkModule's SetGamePhase, which builds game.GameWindow (interfaceModule.MakeInterface) and + // opens it, and GameWindow.Open sends CG_ENTERGAME. + CHECK(py("import game")); + const char* gaming = "isinstance(_stream.curPhaseWindow, game.GameWindow) and _stream.curPhaseWindow.IsShow()"; + const bool entered = pump_until(30, [&] { + return failed() || (py_true(gaming) && (!server || server->Has("game2:entergame"))); + }); + CHECK(entered && !failed()); + } if (server) { const std::vector expected = { "auth:handshake", "auth:login3", "game1:handshake", "game1:login2", "auth:closed", - "game1:closed", "game2:handshake", "game2:login2", "game2:select", "game2:client_version", + "game1:closed", "game2:handshake", "game2:login2", "game2:select", "game2:client_version", "game2:entergame", }; auto events = server->Events(); // auth:closed races game1's handshake; compare the order within each connection.