File I/O#
Purpose#
Low-level file open wrappers bridging game code to Win32 CreateFileA and the
MSVC CRT _open/__read layer.
Key entry points#
| Symbol | Address | Role |
|---|---|---|
lotr2_io_open |
0x4e70c0 | Game-facing open wrapper |
lotr2_io_create_file |
0x4e7110 | CreateFileA + GetFileType |
crt_write |
0x4e4da0 | MSVC _write lowio via WriteFile |
crt_close |
0x4e6e40 | CRT handle close |
crt_file_length |
0x4e7b50 | File size via __lseek tell/end |
crt_set_current_drive |
0x4e7c10 | SetCurrentDirectoryA + drive env var (=X:) |
crt_chsize |
0x4e7cf0 | Truncate file (SetEndOfFile) |
crt_stack_probe |
0x4e81b0 | MSVC stack probe for large stack frames |
Dependencies#
kernel32.dll—CreateFileA,ReadFile,WriteFile,CloseHandle- MSVC CRT lowio (
__read,__lseek,crt_write,crt_close,crt_file_length,crt_chsize)
Data files#
All game assets; primary consumer is asset/MODULE.md.
Save/load uses lotr2_io_open for .sav/.sva/.svb and lords2.inf; see
save/MODULE.md.
Open questions#
- Map CRT handle table (
DAT_005ff9b0) if documenting save-game I/O