Verbatim 40250 CPythonItem and the item Python module replace the pending stand-in and the module stub; CPythonApplication::Create calls m_pyItem.Create() in 40250 order. itemGetIconImage returns its handle through Py_BuildPointer (the ILP32 int truncated it and wndMgr.SetSlot crashed on the live inventory). CMapManager::GetNormal evaluates CTerrain::CalculateNormal on the native height tile; the item text-tail members stay stubs, Pick answering -1 like an empty tail map. The fake server drops vnum 19 next to the actor at entergame and answers CG_ITEM_PICKUP with GC_ITEM_GROUND_DEL; login_flow picks it up through player.PickCloseItem and checks item.SelectItem(19). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
233 lines
6.4 KiB
JSON
233 lines
6.4 KiB
JSON
{
|
|
"reference": "UserInterface/PythonItemModule.cpp",
|
|
"reference_sha256": "6eb7357f37a19961a8b3293ce3098321b5a8231b8f09391a5bccbbaf7157bbe7",
|
|
"priority": "P3",
|
|
"contracts": [],
|
|
"functions": {
|
|
"itemSetUseSoundFileName": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemSetUseSoundFileName"
|
|
]
|
|
},
|
|
"itemSetDropSoundFileName": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemSetDropSoundFileName"
|
|
]
|
|
},
|
|
"itemSelectItem": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemSelectItem"
|
|
]
|
|
},
|
|
"itemGetItemName": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemGetItemName"
|
|
]
|
|
},
|
|
"itemGetItemDescription": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemGetItemDescription"
|
|
]
|
|
},
|
|
"itemGetItemSummary": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemGetItemSummary"
|
|
]
|
|
},
|
|
"itemGetIconImage": {
|
|
"status": "ADAPTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemGetIconImage"
|
|
],
|
|
"test": "extension/tests/port_login_flow_test.cpp (port.login_live: inventory slots set icons without the truncated-pointer crash)",
|
|
"note": "Returns the CGraphicSubImage* through Py_BuildPointer instead of Py_BuildValue(\"i\"): 40250 is ILP32, and wndMgr.SetSlot reads the handle back with PyTuple_GetPointer."
|
|
},
|
|
"itemGetIconImageFileName": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemGetIconImageFileName"
|
|
]
|
|
},
|
|
"itemGetItemSize": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemGetItemSize"
|
|
]
|
|
},
|
|
"itemGetItemType": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemGetItemType"
|
|
]
|
|
},
|
|
"itemGetItemSubType": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemGetItemSubType"
|
|
]
|
|
},
|
|
"itemGetIBuyItemPrice": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemGetIBuyItemPrice"
|
|
]
|
|
},
|
|
"itemGetISellItemPrice": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemGetISellItemPrice"
|
|
]
|
|
},
|
|
"itemIsAntiFlag": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemIsAntiFlag"
|
|
]
|
|
},
|
|
"itemIsFlag": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemIsFlag"
|
|
]
|
|
},
|
|
"itemIsWearableFlag": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemIsWearableFlag"
|
|
]
|
|
},
|
|
"itemIs1GoldItem": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemIs1GoldItem"
|
|
]
|
|
},
|
|
"itemGetLimit": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemGetLimit"
|
|
]
|
|
},
|
|
"itemGetAffect": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemGetAffect"
|
|
]
|
|
},
|
|
"itemGetValue": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemGetValue"
|
|
]
|
|
},
|
|
"itemGetSocket": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemGetSocket"
|
|
]
|
|
},
|
|
"itemGetIconInstance": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemGetIconInstance"
|
|
]
|
|
},
|
|
"itemDeleteIconInstance": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemDeleteIconInstance"
|
|
]
|
|
},
|
|
"itemIsEquipmentVID": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemIsEquipmentVID"
|
|
]
|
|
},
|
|
"itemGetUseType": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemGetUseType"
|
|
]
|
|
},
|
|
"itemIsRefineScroll": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemIsRefineScroll"
|
|
]
|
|
},
|
|
"itemIsDetachScroll": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemIsDetachScroll"
|
|
]
|
|
},
|
|
"itemCanAddToQuickSlotItem": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemCanAddToQuickSlotItem"
|
|
]
|
|
},
|
|
"itemIsKey": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemIsKey"
|
|
]
|
|
},
|
|
"itemIsMetin": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemIsMetin"
|
|
]
|
|
},
|
|
"itemRender": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemRender"
|
|
]
|
|
},
|
|
"itemUpdate": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemUpdate"
|
|
]
|
|
},
|
|
"itemCreateItem": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemCreateItem"
|
|
]
|
|
},
|
|
"itemDeleteItem": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemDeleteItem"
|
|
]
|
|
},
|
|
"itemPick": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemPick"
|
|
]
|
|
},
|
|
"itemLoadItemTable": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:itemLoadItemTable"
|
|
]
|
|
},
|
|
"initItem": {
|
|
"status": "PORTED",
|
|
"impl": [
|
|
"extension/src/port/UserInterface/PythonItemModule.cpp:initItem"
|
|
]
|
|
}
|
|
}
|
|
}
|