#ifndef TDKPIN_HIGHSCORES_H #define TDKPIN_HIGHSCORES_H #include "tdkpin_arithmetic.h" #include "tdkpin_numeric.h" #include "tdkpin_shortstrings.h" #include "tdkpin_strings.h" enum { TDKPIN_HIGHSCORE_COUNT = 10, TDKPIN_HIGHSCORE_NAME_BYTES = 22, }; typedef struct { uint16_t object_size; int16_t negative_size; uint32_t reserved; Win16FarPtr destruct; Win16FarPtr call_original_window_proc; Win16FarPtr route_command_target; Win16FarPtr forward_default; Win16FarPtr forward_event_to_parent; Win16FarPtr register_class; Win16FarPtr create_native_window; Win16FarPtr destroy_native_window; Win16FarPtr get_field_35; Win16FarPtr class_name; Win16FarPtr get_mdi_client; Win16FarPtr all_children_can_close; Win16FarPtr build_window_class; Win16FarPtr setup_window; Win16FarPtr zero_word_default; Win16FarPtr transfer_child_data; Win16FarPtr route_scroll_notification; Win16FarPtr paint; } TdkpinHighscoreWindowVmt; /* 1028:010e..015d */ _Static_assert( sizeof(TdkpinHighscoreWindowVmt) == 80, "high-score window VMT layout drift"); void tdkpin_save_highscores( uint16_t ignored_static_link); /* 1000:a8ea */ void tdkpin_load_highscores( uint16_t ignored_static_link); /* 1000:a99c */ void tdkpin_show_highscore_windows( uint16_t caller_bp); /* 1000:ab3c */ void tdkpin_insert_current_score( uint16_t caller_bp); /* 1000:abe5 */ void tdkpin_paint_highscores( Win16FarPtr ignored_window, PAINTSTRUCT16 *ignored_paint, HDC16 dc); /* 1000:5c13 */ #endif