Replace the partial mechanics transcriptions with a separate, readable C11 reconstruction of the complete Win16 image while preserving the original raw Ghidra export as immutable evidence. Cover all ordinary and overlapping entry points, Borland runtime behavior, Win16 imports, segmented data, callbacks, resources, indirect control flow, physics, rendering, persistence, and startup/shutdown lifecycles. Add deterministic extraction and audit tooling plus address-linked ledgers for functions, imports, DGROUP ranges and objects, relocations, resources, and callbacks. The final gate records zero raw, partial, restored, unknown, blocked, or unclassified required units. Keep the semantic-fidelity boundary explicit: the portable C is not claimed to reproduce a byte-identical Borland NE build. Add strict focused harnesses for every reconstructed C unit, exact resource round-trip checks, and a 16-bit Borland Real48 reference probe. No Rust source or Cargo metadata is changed in this phase. Test Plan: - `bash original/tools/test_reconstructed_c.sh` -- passed - `bash original/tools/probe_real48_reference.sh` -- passed bit-for-bit - `python3 original/tools/audit_reconstruction.py --require-complete` -- passed - `git diff --cached --check` -- passed - `git diff HEAD -- '*.rs' Cargo.toml Cargo.lock` -- empty
50 lines
1.6 KiB
C
50 lines
1.6 KiB
C
#ifndef TDKPIN_GAME_ASSETS_H
|
|
#define TDKPIN_GAME_ASSETS_H
|
|
|
|
#include "tdkpin_segmented.h"
|
|
|
|
void tdkpin_draw_loading_stage(
|
|
Win16FarPtr caller_bp,
|
|
uint8_t stage); /* 1000:531e */
|
|
void tdkpin_setup_overlay_window(Win16FarPtr window); /* 1000:5be5 */
|
|
uint16_t tdkpin_palette_change_variant_a(
|
|
Win16FarPtr window,
|
|
Win16FarPtr message); /* 1000:58e7 */
|
|
void tdkpin_palette_change_variant_b(
|
|
Win16FarPtr window,
|
|
Win16FarPtr message); /* 1000:5956 */
|
|
uint16_t tdkpin_wm_palette_changed(
|
|
Win16FarPtr window,
|
|
Win16FarPtr message); /* 1000:59a0 */
|
|
uint16_t tdkpin_wm_palette_changed_variant_b(
|
|
Win16FarPtr window,
|
|
Win16FarPtr message); /* 1000:5f29 */
|
|
uint16_t tdkpin_wm_palette_changed_variant_c(
|
|
Win16FarPtr window,
|
|
Win16FarPtr message); /* 1000:6245 */
|
|
int16_t tdkpin_wm_query_new_palette(
|
|
Win16FarPtr window,
|
|
Win16FarPtr message); /* 1000:5a37 */
|
|
int16_t tdkpin_wm_query_new_palette_variant_b(
|
|
Win16FarPtr window,
|
|
Win16FarPtr message); /* 1000:5fc0 */
|
|
int16_t tdkpin_wm_query_new_palette_variant_c(
|
|
Win16FarPtr window,
|
|
Win16FarPtr message); /* 1000:62dc */
|
|
void tdkpin_setup_board_window(Win16FarPtr window); /* 1000:6129 */
|
|
void tdkpin_draw_board_overlay(
|
|
Win16FarPtr ignored_object,
|
|
uint16_t ignored_1,
|
|
uint16_t ignored_2,
|
|
HDC16 destination); /* 1000:616e */
|
|
void tdkpin_initialize_assets_and_redraw(
|
|
Win16FarPtr window,
|
|
uint16_t ignored_1,
|
|
uint16_t ignored_2,
|
|
HDC16 destination); /* 1000:5390 */
|
|
void tdkpin_asset_window_destruct(
|
|
Win16FarPtr window,
|
|
uint16_t vmt); /* 1000:51f5 */
|
|
|
|
#endif
|