tools: function names for the Ghidra project, Hold-Key test helper
- tools/names.txt lists identified sacred.exe functions ("0xADDR
Class::Method"); rename.ps1 / Rename.java apply them to the persistent
Ghidra project, so decompiles read with real names.
- decompile.ps1: parameters other than the addresses are named-only (the
first address was taken as -Out).
- game-input.ps1: Hold-Key for polled keys such as movement.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
09f7dcc0f4
commit
52db0f79f9
6 files changed
+182
-1
No files matched your search
@@ -0,0 +1,80 @@
|
||||
# Function names for sacred.exe (Sacred Gold 2.28), applied to the Ghidra
|
||||
# project by tools/rename.ps1. One "0xADDRESS Name" per line; "Class::Method"
|
||||
# names go into a class namespace. Keep in sync with src/game/addresses.h.
|
||||
|
||||
# --- startup / engine core ---------------------------------------------------
|
||||
0x0066f1c0 Log
|
||||
0x00813140 CmdLineHasFlag
|
||||
0x0066e500 GetMouseClientPos
|
||||
0x008122a0 MainWindowProc
|
||||
0x00849701 __RTDynamicCast
|
||||
0x0084aa86 ToUpper
|
||||
|
||||
# --- renderer ----------------------------------------------------------------
|
||||
0x00645390 DxDriver7::SetDisplayMode
|
||||
0x00645f70 DxDriver7::Flip
|
||||
0x00646f50 DxDriver7::BeginScene
|
||||
0x00646fd0 DxDriver7::EndScene
|
||||
0x006469d0 DxDriver7::LoadingScreen
|
||||
|
||||
# --- kernel event queue ------------------------------------------------------
|
||||
0x00808490 Kernel_Instance
|
||||
0x00808930 cKernel::PostEvent # (event, flags, delayMs); key events (category 4) are queued
|
||||
0x008087b0 cKernel::DispatchQueued
|
||||
|
||||
# --- engine (cEngine, vtable 0x88ff34) ---------------------------------------
|
||||
0x0060e3f0 cEngine::RenderThreadLoop
|
||||
0x0060f1d0 cEngine::Tick # per game tick (10 Hz): queued events, then hold-to-move orders
|
||||
0x00618130 cEngine::ReceiveEvent # vf00: offers events to the UI, then engine hotkeys (A, P, Q/W/E/R/B/Space, ^)
|
||||
0x00617360 cEngine::HandleMouseButton # click: pick object / walk to ground point
|
||||
0x006170d0 cEngine::SendCreatureOrder # (creature, cEvent_creature*): snaps ground targets, then creature->vf18
|
||||
0x00611f10 cEngine::UpdateCursorPick # per frame: object under the cursor
|
||||
0x00610650 cEngine::ScrollInput # arrow keys: walk object #2 or scroll the camera
|
||||
0x00613040 cEngine::UseActionSlot # hotkeys Q/W/E/R/B/Space
|
||||
0x00613710 cEngine::CaptureScreen # save-game thumbnail
|
||||
|
||||
# --- objects / creatures -----------------------------------------------------
|
||||
0x005fe060 cObjectManager::GetObject # (id); manager at *0xad3bc0
|
||||
0x00603e90 cObjectManager::GetPlayerHero
|
||||
0x00546ed0 cCreature::IsWalking # state +0x150 == 1
|
||||
0x0052e400 cCreature::ReceiveOrder # vf18
|
||||
0x004fb620 cCreature::TraceToCursor # line trace from the creature to the cursor's world point (aiming)
|
||||
|
||||
# --- mouse cursor (single instance) ------------------------------------------
|
||||
0x006550f0 MouseCursor_Instance
|
||||
0x00654e10 cMouseCursor::cMouseCursor
|
||||
0x00655670 cMouseCursor::SetPosition
|
||||
0x006559e0 cMouseCursor::GetX
|
||||
0x006559f0 cMouseCursor::GetY
|
||||
0x006559a0 cMouseCursor::GetPreviousPosition
|
||||
0x006555e0 cMouseCursor::DrawItem
|
||||
0x00655ab0 cMouseCursor::IsButtonHeld
|
||||
|
||||
# --- world view (cWorldView0, vtable 0x8900f8) -------------------------------
|
||||
0x00624ae0 cWorldView0::SetupView
|
||||
0x00628210 cWorldView0::SetZoom
|
||||
0x006322b0 cWorldView0::Render
|
||||
0x0062a730 cWorldView0::UpdateCamera
|
||||
0x0062b000 cWorldView0::RenderTileRow # tiles + collects objects into the draw lists
|
||||
0x0062e580 cWorldView0::DrawObjects
|
||||
0x006300d0 cWorldView0::DrawObjects2
|
||||
0x00623c40 cWorldView0::WorldToScreen
|
||||
0x00623a20 cWorldView0::ScreenToView
|
||||
0x00626d30 cWorldView0::PickObjectAt # (screen x, y) -> object id
|
||||
0x00627260 cWorldView0::DrawObjectLabels # Alt
|
||||
0x006426a0 BuildOrthoMatrix
|
||||
|
||||
# --- UI ----------------------------------------------------------------------
|
||||
0x00756820 UiManager_Instance # *0x17ecb3c
|
||||
0x00756940 cUI_Manager::ThreadLoop
|
||||
0x00757120 cUI_Manager::ReceiveEvent # vf00: UI hotkeys (C F H I L M N O S T)
|
||||
0x007587b0 cUI_Manager::Render
|
||||
0x0075a860 cUI_Manager::GetFocus
|
||||
0x0075a370 cUI_Manager::IsUiAtPoint
|
||||
0x0075bbf0 cUI_Manager::DrawStatusLine
|
||||
0x0075c200 cUI_Manager::DrawMessage
|
||||
0x00731d40 cUI_Window2::HitTest
|
||||
0x006dfb10 cUI_Taskbar2::HitTest
|
||||
0x006e1970 cUI_Taskbar2::HandleEvent # digit keys: belt / skill slots
|
||||
0x006e3ac0 cUI_Taskbar2::Render
|
||||
0x006e7300 cUI_Tooltip::Render
|
||||
Reference in new issue
Block a user