// // Created by neo on 2019-08-15. // #include "Classes/classes.h" #include #include ##ifdef _WIN32 #include #include #include #include #include #endif #ifndef PINBALL_PINBALL_H #define PINBALL_PINBALL_H /* This file has been generated by IDA. It contains local type definitions from the type library 'pinball' */ //------------------------------------------------------------------------- // Function declarations #define __thiscall __cdecl // Test compile in C mode #ifdef _DEBUG void RedirectIOToConsole(); // guicon.cpp #endif HDC _GetDC(HWND hWnd); HDC _BeginPaint(HWND hWnd, LPPAINTSTRUCT lpPaint); CHAR *options_path_init(LPCSTR lpString); void options_path_uninit(); LPCSTR options_path(LPCSTR lpString2); void options_path_free(); HKEY options_get_int(DWORD cbData, LPCSTR lpValueName, HKEY phkResult); void options_get_string(DWORD dwDisposition, LPCSTR lpValueName, LPSTR lpString1, LPCSTR lpString2, int iMaxLength); void options_set_int(HKEY phkResult, LPCSTR lpValueName, BYTE Data); void options_set_string(HKEY phkResult, LPCSTR lpValueName, LPCSTR lpString); CHAR *get_rc_string(int a1, int a2); int get_rc_int(int a1, int *a2); int grtext_draw_ttext_in_box(LPCSTR lpString, int mode, int, COLORREF color, int, int); // idb int sub_10038F8(); LONG sub_1003975(); LONG sub_100399D(); BOOL fullscrn_set_menu_mode(int a1); signed int sub_1003A23(); int sub_1003B66(); LONG fullscrn_set_screen_mode(int a1); void fullscrn_force_redraw(); signed int fullscrn_displaychange(); BOOL fullscrn_init(int a1, int a2, int a3, HWND a4, int a5, int a6); LONG fullscrn_shutdown(); BOOL fullscrn_activate(int a1); int fullscrn_convert_mouse_pos(int a1); DWORD *fullscrn_getminmaxinfo(DWORD *a1); HBRUSH sub_1003F10(LONG a1, LONG a2, int a3, int a4); void fullscrn_paint(); signed int rectangle_clip(int *a1, int *a2, DWORD *a3); int enclosing_box(DWORD *a1, DWORD *a2, DWORD *a3); int DibSetUsage(int, HPALETTE hpal, int); // idb DWORD *DibCreate(int a1, int a2, int a3); int gdrv_init(int a1, HWND a2); int gdrv_display_palette(int a1); int gdrv_uninit(); int gdrv_create_bitmap_dib(int a1, int a2, int a3); int gdrv_create_bitmap(int a1, int a2, int a3); signed int gdrv_create_raw_bitmap(int a1, int a2, int a3, int a4); signed int gdrv_destroy_bitmap(int a1); UINT gdrv_start_blit_sequence(); int gdrv_blit_sequence(int, int xSrc, int, int xDest, int yDest, int DestWidth, int DestHeight); // idb int gdrv_end_blit_sequence(); HDC gdrv_blit(int a1, int xSrc, int a3, int xDest, int yDest, int DestWidth, int DestHeight); int gdrv_blat(int, int xDest, int yDest); // idb int gdrv_fill_bitmap(int a1, DWORD *a2, unsigned int a3, int a4, int a5, int a6, char a7); char *gdrv_copy_bitmap(DWORD *a1, int a2, int a3, int a4, int a5, DWORD *a6, int a7, int a8); _BYTE *gdrv_copy_bitmap_w_transparency(DWORD *a1, int a2, int a3, int a4, int a5, DWORD *a6, int a7, int a8); int zdrv_pad(int a1); signed int zdrv_create_zmap(int a1, int a2, int a3); signed int zdrv_destroy_zmap(DWORD *a1); int zdrv_fill(int a1, int a2, unsigned int a3, int a4, int a5, int a6, int a7); WORD *zdrv_paint(int a1, int a2, DWORD *a3, int a4, int a5, int a6, int a7, int a8, DWORD *a9, int a10, int a11, int a12, int a13, int a14); unsigned int *zdrv_paint_flat(int a1, int a2, DWORD *a3, int a4, int a5, int a6, int a7, int a8, DWORD *a9, int a10, int a11, unsigned int a12); int high_score_clear_table(int a1); signed int high_score_get_score_position(int a1, int a2); int high_score_place_new_score_into(int, int, LPCSTR lpString, int); // idb char *scramble_number_string(int Val, char *DstBuf); signed int high_score_read(int a1, int a2); int high_score_write(LPCSTR lpString, int); // idb char *score_string_format(int a1, char *a2); void hsdlg_show_score(HWND hDlg, LPCSTR lpString, int a3, int a4); void show_high_scores(HWND hDlg, LPCSTR lpString); BOOL HighScore(HWND, UINT, WPARAM, LPARAM); // idb INT_PTR show_high_score_dialog(const CHAR *a1); INT_PTR show_and_set_high_score_dialog(const CHAR *a1, int a2, int a3, const CHAR *a4); int memory_init(int a1); int memoryallocate(unsigned int a1); void memoryfree(int a1); int memoryrealloc(int a1, unsigned int a2); void options_uninit(); HMENU options_menu_set(UINT uIDEnableItem, int a2); HMENU options_menu_check(UINT uIDCheckItem, int a2); HMENU options_toggle(UINT uIDCheckItem); unsigned int get_vk_key_name(int a1, LPSTR lpString); BOOL KeyMapDlgProc(HWND, UINT, WPARAM, LPARAM); // idb INT_PTR options_keyboard(); void options_init(HMENU a1); int partman_field(int a1, int a2, int a3); int partman_field_size_nth(int a1, int a2, int a3, int a4); int partman_field_size(int a1, int a2, int a3); int partman_field_nth(int a1, int a2, int a3, int a4); int partman_record_labeled(int, LPCSTR lpString); // idb int partman_field_labeled(int, LPCSTR lpString, int); // idb void partman_unload_records(WORD *a1); char lread_char(HFILE hFile); int lread_long(HFILE hFile); // idb signed int *partman_load_records(LPCSTR lpFileName); int FindShiftKeys(); int nullsub_1(int, int, int); // weak LRESULT SoundCallBackWndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); int Sound_Init(HINSTANCE hInstance, int, int); // idb HLOCAL Sound_Close(); CHAR *Sound_LoadWaveFile(LPCSTR lpName); LPCVOID Sound_FreeSound(LPCVOID pMem); LPCVOID Sound_Deactivate(); LPCVOID Sound_Activate(); int Sound_Idle(); signed int Sound_Flush(signed int a1, int a2); void Sound_PlaySound(int a1, int a2, int a3, unsigned int a4, int a5); void Sound_Enable(signed int a1, int a2, int a3); HPALETTE splash_init_palette(LOGPALETTE *plpal); HBITMAP load_title_bitmap(HMODULE hModule, HDC hdc, LPCSTR lpName, UINT iStart, int a5, int a6); int splash_bitmap_setup(int a1); void splash_paint(int a1, HDC hdc); void splash_hide(int a1); HINSTANCE splash_destroy(int a1); LRESULT splash_message_handler(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); int splash_screen(int, LPCSTR lpString2, LPCSTR); // idb signed int timer_init(int a1); void timer_uninit(); int timer_set(float, int, int); // idb signed int timer_check(); int timer_kill(int a1); int make_path_name(LPSTR lpFilename, LPCSTR lpString2, DWORD nSize); // idb void help_introduction(int a1, int a2); BOOL center_in(HWND hWnd, HWND a2); INT a_dialog(HINSTANCE hInstance, HWND hWnd, int a3); void winmain_pause(int a1); void winmain_end_pause(int a1); HCURSOR winmain_new_game(int a1); void winmain_memalloc_failure(); // idb HANDLE adjust_priority(int a1); LRESULT message_handler(HWND hWnd, UINT Msg, WPARAM wParam, int a4); signed int message_loop(); int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd); double normalize_2d(float *a1); double ray_intersect_circle(float *a1, float *a2); int line_init(int, float, float, float, float); // idb double ray_intersect_line(float *a1, float *a2); float *proj_matrix_vector_multiply(float *a1, float *a2, float *a3); float *cross(float *a1, float *a2, float *a3); double magnitude(float *a1); int proj_init(int a1, int a2, int a3, int a4); int proj_recenter(int a1, int a2); double proj_z_distance(DWORD); // weak double proj_xform_to_2d(float *a1, DWORD *a2); signed int loader_error(int a1, int a2); DWORD *loader_default_vsi(DWORD *a1); signed int loader_get_sound_id(int a1); void loader_unload(); int loader_loadfrom(WORD *a1); int loader_query_handle(LPCSTR lpString); // idb signed int loader_query_visual_states(int a1); signed int loader_material(int a1, DWORD *a2); signed int loader_kicker(int a1, DWORD *a2); signed int loader_state_id(int a1, signed int a2); signed int loader_query_visual(int a1, signed int a2, DWORD *a3); int loader_query_name(int a1); int loader_query_float_attribute(int a1, signed int a2, int a3); int loader_query_iattribute(int a1, int a2, DWORD *a3); double loader_play_sound(int a1); void flasher_callback(int, void *); // idb void flasher_start(struct flasher_type *, int); // idb void flasher_stop(struct flasher_type *, int); // idb int midi_music_init(HWND a1); MCIERROR midi_music_shutdown(); MCIERROR midi_music_stop(); MCIERROR midi_play_pb_theme(int a1); HWND restart_midi_seq(int a1); void create(void *, unsigned int, int, void *(__thiscall *)(void *)); // idb void destroy(void *, unsigned int, int, void (__thiscall *)(void *)); // idb void edges_insert_circle(struct circle_type *, struct TEdgeSegment *, struct field_effect_type *); // idb void edges_insert_square(float, float, float, float, struct TEdgeSegment *, struct field_effect_type *); // idb struct TPinballComponent *make_component_link(struct component_tag *); // idb void control_make_links(struct TPinballTable *); // idb BOOL light_on(struct component_tag *a1); void table_control_handler(int); // idb void table_set_replay(int a1, float a2); void table_set_multiball(int a1); void table_set_jackpot(int a1); void table_set_bonus(int a1); void table_set_flag_lights(int a1); void table_set_bonus_hold(int a1); void table_bump_ball_sink_lock(int a1); void table_add_extra_ball(int a1, float a2); int SpecialAddScore(int); // idb void AdvanceWormHoleDestination(int); // idb void FlipperRebounderControl1(int, struct TPinballComponent *); // idb void FlipperRebounderControl2(int, struct TPinballComponent *); // idb void RebounderControl(int, struct TPinballComponent *); // idb void BumperControl(int, struct TPinballComponent *); // idb void LeftKickerControl(int, struct TPinballComponent *); // idb void RightKickerControl(int, struct TPinballComponent *); // idb void LeftKickerGateControl(int, struct TPinballComponent *); // idb void RightKickerGateControl(int, struct TPinballComponent *); // idb void DeploymentChuteToEscapeChuteOneWayControl(int a1, int a2, int a3, struct TPinballComponent *a4); void DeploymentChuteToTableOneWayControl(int, struct TPinballComponent *); // idb void DrainBallBlockerControl(int, struct TPinballComponent *); // idb void LaunchRampControl(int a1, int a2, struct TPinballComponent *a3); void LaunchRampHoleControl(int, struct TPinballComponent *); // idb void SpaceWarpRolloverControl(int, struct TPinballComponent *); // idb void ReentryLanesRolloverControl(int a1, int a2, int a3, int a4, struct TPinballComponent *a5); void BumperGroupControl(int, struct TPinballComponent *); // idb void LaunchLanesRolloverControl(int a1, int a2, int a3, int a4, struct TPinballComponent *a5); void OutLaneRolloverControl(int a1, int a2, int a3, struct TPinballComponent *a4); void ExtraBallLightControl(int, struct TPinballComponent *); // idb void ReturnLaneRolloverControl(int a1, int a2, struct TPinballComponent *a3); void BonusLaneRolloverControl(int a1, int a2, struct TPinballComponent *a3); void FuelRollover1Control(int a1, int a2, struct TPinballComponent *a3); void FuelRollover2Control(int a1, int a2, struct TPinballComponent *a3); void FuelRollover3Control(int a1, int a2, struct TPinballComponent *a3); void FuelRollover4Control(int a1, int a2, struct TPinballComponent *a3); void FuelRollover5Control(int a1, int a2, struct TPinballComponent *a3); void FuelRollover6Control(int a1, int a2, struct TPinballComponent *a3); void HyperspaceLightGroupControl(int, struct TPinballComponent *); // idb void WormHoleControl(int a1, int a2, int a3, int a4, struct TPinballComponent *a5); void LeftFlipperControl(int, struct TPinballComponent *); // idb void RightFlipperControl(int, struct TPinballComponent *); // idb void JackpotLightControl(int, struct TPinballComponent *); // idb void BonusLightControl(int, struct TPinballComponent *); // idb void BoosterTargetControl(int, struct TPinballComponent *); // idb void MedalLightGroupControl(int, struct TPinballComponent *); // idb void MultiplierLightGroupControl(int a1, int a2, struct TPinballComponent *a3); void FuelSpotTargetControl(int a1, int a2, struct TPinballComponent *a3); void MissionSpotTargetControl(int a1, int a2, struct TPinballComponent *a3); void LeftHazardSpotTargetControl(int, struct TPinballComponent *); // idb void RightHazardSpotTargetControl(int, struct TPinballComponent *); // idb void WormHoleDestinationControl(int a1, int a2, struct TPinballComponent *a3); void BlackHoleKickoutControl(int a1, int a2, struct TPinballComponent *a3); void FlagControl(int, struct TPinballComponent *); // idb void GravityWellKickoutControl(int a1, int a2, struct TPinballComponent *a3); void SkillShotGate1Control(int, struct TPinballComponent *); // idb void SkillShotGate2Control(int, struct TPinballComponent *); // idb void SkillShotGate3Control(int, struct TPinballComponent *); // idb void SkillShotGate4Control(int, struct TPinballComponent *); // idb void SkillShotGate5Control(int, struct TPinballComponent *); // idb void SkillShotGate6Control(int, struct TPinballComponent *); // idb void ShootAgainLightControl(int, struct TPinballComponent *); // idb void EscapeChuteSinkControl(int, struct TPinballComponent *); // idb int cheat_bump_rank(int a1); void pbctrl_bdoor_controller(int a1, int a2); int AddRankProgress(int); // idb void WaitingDeploymentController(int a1, int a2, struct TPinballComponent *a3); void SelectMissionController(int, struct TPinballComponent *); // idb void PracticeMissionController(int a1, int a2, struct TPinballComponent *a3); void LaunchTrainingController(int a1, int a2, struct TPinballComponent *a3); void ReentryTrainingController(int a1, int a2, struct TPinballComponent *a3); void ScienceMissionController(int a1, int a2, struct TPinballComponent *a3); void StrayCometController(int a1, int a2, struct TPinballComponent *a3); void SpaceRadiationController(int a1, int a2, struct TPinballComponent *a3); void BlackHoleThreatController(int a1, int a2, struct TPinballComponent *a3); void BugHuntController(int a1, int a2, struct TPinballComponent *a3); void RescueMissionController(int a1, int a2, struct TPinballComponent *a3); void AlienMenaceController(int a1, int a2, struct TPinballComponent *a3); void AlienMenacePartTwoController(int a1, int a2, struct TPinballComponent *a3); void SatelliteController(int a1, int a2, struct TPinballComponent *a3); void ReconnaissanceController(int a1, int a2, struct TPinballComponent *a3); void DoomsdayMachineController(int a1, int a2, struct TPinballComponent *a3); void CosmicPlagueController(int a1, int a2, struct TPinballComponent *a3); void CosmicPlaguePartTwoController(int a1, int a2, struct TPinballComponent *a3); void SecretMissionYellowController(int a1, int a2, struct TPinballComponent *a3); void SecretMissionRedController(int a1, int a2, struct TPinballComponent *a3); void SecretMissionGreenController(int a1, int a2, struct TPinballComponent *a3); void TimeWarpController(int a1, int a2, struct TPinballComponent *a3); void TimeWarpPartTwoController(int a1, int a2, struct TPinballComponent *a3); void MaelstromController(int a1, int a2, struct TPinballComponent *a3); void MaelstromPartTwoController(int a1, int a2, struct TPinballComponent *a3); void MaelstromPartThreeController(int a1, int a2, struct TPinballComponent *a3); void MaelstromPartFourController(int a1, int a2, struct TPinballComponent *a3); void MaelstromPartFiveController(int a1, int a2, struct TPinballComponent *a3); void MaelstromPartSixController(int a1, int a2, struct TPinballComponent *a3); void MaelstromPartSevenController(int a1, int a2, struct TPinballComponent *a3); void MaelstromPartEightController(int a1, int a2, struct TPinballComponent *a3); void GameoverController(int, struct TPinballComponent *); // idb void UnselectMissionController(int, struct TPinballComponent *); // idb void MissionControl(int, struct TPinballComponent *); // idb void control_handler(int, struct TPinballComponent *); // idb void HyperspaceKickOutControl(int, struct TPinballComponent *); // idb void PlungerControl(int a1, int a2, struct TPinballComponent *a3); void MedalTargetControl(int a1, int a2, int a3, int a4, struct TPinballComponent *a5); void MultiplierTargetControl(int a1, int a2, int a3, int a4, struct TPinballComponent *a5); void BallDrainControl(int, struct TPinballComponent *); // idb int objlist_add_object(DWORD *a1, int a2); signed int objlist_delete_object(int a1, int a2); DWORD *objlist_new(int a1); int *objlist_grow(int *a1, int a2); void build_occlude_list(); void render_repaint(struct render_sprite_type_struct *); // idb void render_paint_balls(); // idb void render_unpaint_balls(); // idb int render_remove_sprite(struct render_sprite_type_struct *); // idb int render_remove_ball(struct render_sprite_type_struct *); // idb BOOL overlapping_box(struct rectangle_type *a1, struct rectangle_type *a2, struct rectangle_type *a3); void render_update(); void render_uninit(); char *render_init(DWORD *a1, float a2, float a3, int a4, int a5); int render_sprite_modified(int a1); int render_create_sprite(int a1, int a2, int a3, int a4, int a5, DWORD *a6); int render_set_background_zmap(struct zmap_header_type *a1, int a2, int a3); int render_sprite_set(DWORD *a1, int a2, int a3, int a4, int a5); void render_sprite_set_bitmap(DWORD *a1, int a2); void render_ball_set(int a1, int a2, float a3, int a4, int a5); void render_paint(); void render_shift(int a1, int a2, int xSrc, int a4, int DestWidth, int DestHeight); DWORD *score_create(LPCSTR lpString, int a2); void *score_dup(const void *a1, int a2); void objlist_destroy(int a1); DWORD *score_set(DWORD *a1, int a2); void *score_erase(int a1, DWORD *a2, int a3); HDC score_update(int a1, int *a2); signed int score_init(); void score_unload_msg_font(); HRSRC score_load_msg_font(LPCSTR lpName); DWORD pb_paint(); // idb signed int pb_mode_change(int a1); signed int pb_mode_countdown(int a1); int pb_end_game(); signed int pb_chk_highscore(); long double pb_collide(struct TEdgeSegment *a1, float a2, struct TBall *a3); void pb_timed_frame(float, float, int); // idb signed int pb_frame(int a1, int a2); void pb_firsttime_setup(); struct TPinballTable *pb_tilt_no_more(int a1); void pb_ballset(signed int a1, signed int a2); void nudge(float, float); // idb void un_nudge_left(int, void *); // idb void un_nudge_right(int, void *); // idb void nudge_left(); // idb void nudge_right(); // idb void un_nudge_up(int, void *); // idb void nudge_up(); // idb void pb_keydown(HKEY a1); void pb_keyup(HKEY a1); int pb_replay_level(int a1); INT_PTR pb_high_scores(); DWORD *pb_window_size(DWORD *a1, DWORD *a2); int pb_init(); int pb_uninit(); int pb_loose_focus(); void pb_pause_continue(int a1); int pb_launch_ball(); int pb_reset_table(); void pb_toggle_demo(int a1); DWORD gdrv_get_focus(); // idb void throw_ball(struct TBall *, struct vector_type *, float, float, float); // idb void find_closest_edge(struct ramp_plane_type *, int, struct wall_point_type *, struct vector_type **, struct vector_type **); // idb double basic_collision(struct TBall *a1, struct vector_type *a2, struct vector_type *a3, float a4, float a5, float a6, float a7); struct TEdgeSegment *install_wall(float *, struct TCollisionComponent *, char *, unsigned int, float, void *); // idb void vswap(struct vector_type *, struct vector_type *); // idb double distance_to_flipper(struct ray_type *a1, struct ray_type *a2); void vector_add(struct vector_type *, struct vector_type *); // idb void RotatePt(struct vector_type *, float, float, struct vector_type *); // idb long double Distance(struct vector_type *a1, struct vector_type *a2); double Distance_Squared(float a1, float a2, int a3, float a4, float a5, int a6); double DotProduct(const struct vector_type *a1, const struct vector_type *a2); void SinCos(float, float *, float *); // idb void RotateVector(struct vector_type *, float); // idb int sub_101CEB6(LPBYTE lpData); // idb HWND HtmlHelpA(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData); WORD *SessionToGlobalDataPtr(WORD *a1); BOOL IsValidLPMIXWAVE(int a1); bool HasCurrentOutputFormat(const void *a1); int DefaultPauseBlocks(int a1); unsigned int DefaultGoodWavePos(UINT_PTR uDeviceID); DWORD MyWaveOutGetPosition(HWAVEOUT hwo, int a2); int AddFactor(int a1, int a2); int SubFactor(int a1, int a2); unsigned int SetWaveOutPosition(unsigned int a1); unsigned int MyWaveOutReset(HWAVEOUT hwo); int cmixit(_BYTE *a1, char *a2, char *a3, int a4, unsigned int a5); DWORD *InitChannelNodes(); int GetChannelNode(); DWORD *FreeChannelNode(DWORD *a1); struct wavehdr_tag *FreeWaveBlocks(HWAVEOUT hwo, int a2); int AllocWaveBlocks(HWAVEOUT hwo, int); // idb DWORD *SwapWaveBlocks(); DWORD *GetWaveBlock(); struct wavehdr_tag *RemoveFromPlayingQueue(struct wavehdr_tag *a1); LPWAVEHDR DestroyPlayQueue(); int ReleaseWaveDevice(int a1); signed int GetWaveDevice(); signed int WaveMixOpenChannel(WORD *a1, signed int a2, unsigned int a3); LPWAVEHDR AddToPlayingQueue(struct wavehdr_tag *a1); int MixerPlay(LPWAVEHDR pwh, int); // idb DWORD FreePlayedBlocks(); int WaveMixPump(); LRESULT WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); signed int NoResetRemix(int a1, int a2); signed int ResetRemix(int a1, int a2); void ResetWavePosIfNoChannelData(); signed int WaveMixPlay(int a1); signed int WaveMixFlushChannel(WORD *a1, signed int a2, char a3); signed int WaveMixCloseChannel(WORD *a1, signed int a2, char a3); int WaveMixFreeWave(int, LPCVOID pMem); // idb // WORD *BitsPerSampleAlign(int a1, LPCVOID pMem, int a3, int a4, int a5); _BYTE *ChannelAlign(LPCVOID pMem, int a2, int a3, int a4, int a5); void AvgSample(WORD *a1, unsigned __int8 *a2, int a3, int a4, int a5); int RepSample(_BYTE *a1, unsigned __int8 *a2, signed int a3, int a4, int a5); LPCVOID SamplesPerSecAlign(LPCVOID pMem, int a2, int a3, int a4, int a5, int a6); LPCVOID WaveFormatConvert(int a1, int a2, LPCVOID pMem, int a4); CHAR *WaveMixOpenWave(LPCVOID pMem, LPCSTR lpName, HMODULE hModule, LONG cch); unsigned int FigureOutDMABufferSize(unsigned int a1, int a2); int RemoveInvalidIniNameCharacters(LPCSTR lpString); // idb UINT ShowWaveOutDevices(); const char *GetOperatingSystemPrefix(); int ReadRegistryToGetMachineSpecificInfSection(int, LPSTR lpString1, int); // idb int ReadRegistryInt(HKEY hKey, LPCSTR lpSubKey, int); // idb signed int ReadRegistryForAppSpecificConfigs(int a1); int ShowCurrentSettings(); int Settings_OnInitDialog(HWND hWnd, int, int); // idb int Settings_OnCommand(HWND hWnd, int, int, int); // idb BOOL SettingsDlgProc(HWND, UINT, WPARAM, LPARAM); // idb DWORD *MakeDlgTemplate(int a1, int a2, int a3, int a4, int a5, int a6, wchar_t *Str); WORD *AddDlgControl(int a1, LPCVOID pMem, int a3, int a4, int a5, int a6, int a7, int a8, int a9, wchar_t *Str); WORD *MakeSettingsDlgTemplate(); void DestroySettingsDlgTemplate(LPCVOID pMem); signed int WaveMixGetConfig(WORD *a1, int a2); BOOL SaveConfigSettings(int a1); DWORD SetIniFileName(HMODULE hModule); int InitVolumeTable(); int WaveMixStartup(HMODULE hModule); // idb signed int WaveMixActivate(WORD *a1, int a2); MMRESULT WaveMixConfigure(int a1, HWND hWndParent, int a3, int a4, int a5); signed int ReadConfigSettings(int a1); int WaveMixConfigureInit(WORD *a1); int WaveMixInit(); HLOCAL WaveMixCloseSession(HLOCAL hMem); int WinMainCRTStartup(); void component_delete(void *); idb void *component_create(unsigned int); idb int _initterm(DWORD, DWORD); weak unsigned int _setdefaultprecision(); int check_expiration_date(); // unsigned int __cdecl _controlfp(unsigned int NewValue, unsigned int Mask); //------------------------------------------------------------------------- // Data declarations // extern _UNKNOWN __acmdln; weak // extern _UNKNOWN __adjust_fdiv; weak CHAR WindowName[2] = { '\0', '\0' }; // idb int gpFormat[4] = { 65537, 11025, 11025, 524289 }; // weak _UNKNOWN __xc_a; // weak _UNKNOWN __xc_z; // weak _UNKNOWN __xi_a; // weak _UNKNOWN __xi_z; // weak int grtext_red = 4294967295; // weak int trick = 1; // weak LOGPALETTE current_palette = { 768u, 256u, { { 0u, 0u, 0u, 0u } } }; // idb _UNKNOWN unk_102305B; // weak PALETTEENTRY pPalEntries = { 0u, 0u, 0u, 0u }; // idb char byte_1023458 = '\0'; // weak char byte_1023459 = '\0'; // weak char byte_102345A = '\0'; // weak _UNKNOWN unk_102345F; // weak _UNKNOWN unk_1023460; // weak int vk_list = 32833; // weak _UNKNOWN unk_1023540; // weak int field_size[14] = { 2, 65535, 2, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 0 }; // idb int LeftShift = 4294967295; // weak int RightShift = 4294967295; // weak int dword_10235F4 = 1; // weak int loader_errors[] = { 0 }; // weak char *error_messages[54] = { "Bad Handle", (char *)1, "No Type Field", (char *)2, "No Attributes Field", (char *)0xB, "No float Attributes Field", (char *)3, "Wrong Type: MATERIAL Expected", (char *)4, "Wrong Type: KICKER Expected", (char *)5, "Wrong Type: AN_OBJECT Expected", (char *)6, "Wrong Type: A_STATE Expected", (char *)7, "STATES (re)defined in a state", (char *)9, "Unrecognized Attribute", (char *)0xA, "Unrecognized float Attribute", (char *)0xD, "float Attribute not found", (char *)0xC, "state_index out of range", (char *)0xF, "loader_material() reports failure", (char *)0xE, "loader_kicker() reports failure", (char *)0x10, "loader_state_id() reports failure", (char *)8, "# walls doesn't match data size", (char *)0x11, "loader_query_visual_states()", (char *)0x12, "loader_query_visual()", (char *)0x15, "loader_material()", (char *)0x14, "loader_kicker()", (char *)0x16, "loader_query_attribute()", (char *)0x17, "loader_query_iattribute()", (char *)0x13, "loader_query_name()", (char *)0x18, "loader_state_id()", (char *)0x19, "loader_get_sound_id()", (char *)0x1A, "sound reference is not A_SOUND record", (char *)0xFFFFFFFF }; // idb int sound_count = 1; // weak int dword_10236E4 = 0; // weak int dword_10236EC = 0; // weak int dword_10236F4 = 0; // weak int dword_10236FC = 0; // weak int dword_1023704 = 0; // weak int dword_102370C = 0; // weak int dword_1023714 = 0; // weak int dword_102371C = 0; // weak int dword_1023724 = 0; // weak int dword_102372C = 0; // weak int dword_1023734 = 0; // weak int dword_102373C = 0; // weak int dword_1023758 = 0; // weak int dword_1023770 = 0; // weak int dword_1023778 = 0; // weak int dword_1023780 = 0; // weak int dword_1023788 = 0; // weak int dword_1023790 = 0; // weak int dword_1023798 = 0; // weak int dword_10237A0 = 0; // weak int dword_10237A8 = 0; // weak int dword_10237C4 = 0; // weak int dword_10237CC = 0; // weak int dword_10237D4 = 0; // weak int dword_10237DC = 0; // weak int dword_10237E8 = 0; // weak int dword_10237F0 = 0; // weak int dword_1023808 = 0; // weak int dword_1023810 = 0; // weak char *lite30 = "lite30"; // weak int dword_1023818 = 0; // weak char *lite29 = "lite29"; // weak int dword_1023820 = 0; // weak int dword_1023828 = 0; // weak int dword_1023830 = 0; // weak int dword_1023838 = 0; // weak int dword_1023840 = 0; // weak struct TPinballComponent *dword_1023860 = NULL; // idb int dword_1023868 = 0; // weak int dword_1023870 = 0; // weak char *lite54 = "lite54"; // weak int dword_1023878 = 0; // weak char *lite55 = "lite55"; // weak int dword_1023880 = 0; // weak char *lite56 = "lite56"; // weak int dword_1023888 = 0; // weak int dword_102389C = 0; // weak int dword_10238A4 = 0; // weak char *lite17 = "lite17"; // weak int dword_10238AC = 0; // weak char *lite18 = "lite18"; // weak int dword_10238B4 = 0; // weak int dword_10238C0 = 0; // weak int dword_10238C8 = 0; // weak char *lite27 = "lite27"; // weak int dword_10238D0 = 0; // weak char *lite28 = "lite28"; // weak int dword_10238D8 = 0; // weak int dword_10238E8 = 0; // weak char *lite16 = "lite16"; // weak int dword_10238F0 = 0; // weak int dword_1023924 = 0; // weak int dword_1023930 = 0; // weak char *lite20 = "lite20"; // weak int dword_1023940 = 0; // weak int dword_1023948 = 0; // weak int dword_1023950 = 0; // weak int dword_1023958 = 0; // weak int dword_1023960 = 0; // weak int dword_1023968 = 0; // weak int dword_1023970 = 0; // weak int dword_1023978 = 0; // weak int dword_1023980 = 0; // weak struct TPinballComponent *dword_10239A8 = NULL; // idb char *lite25 = "lite25"; // weak int dword_10239B0 = 0; // weak char *lite26 = "lite26"; // weak int dword_10239B8 = 0; // weak char *lite130 = "lite130"; // weak int dword_10239C0 = 0; // weak int dword_10239C8 = 0; // weak int dword_10239D0 = 0; // weak int dword_10239EC = 0; // weak int dword_10239F4 = 0; // weak int dword_10239FC = 0; // weak int dword_1023A04 = 0; // weak int dword_1023A0C = 0; // weak int dword_1023A14 = 0; // weak int dword_1023A1C = 0; // weak char *lite4 = "lite4"; // weak int dword_1023A24 = 0; // weak int dword_1023A2C = 0; // weak int dword_1023A34 = 0; // weak int dword_1023A3C = 0; // weak char **some_parts[9] = { &off_10239E8, &off_10239F0, &off_10239F8, &off_1023A00, &off_1023A08, &off_1023A10, &lite4, &off_1023A28, &off_1023A30 }; // weak char **off_1023A4C[6] = { &off_1023A00, &off_1023A08, &off_1023A10, &lite4, &off_1023A28, &off_1023A30 }; // weak char **off_1023A58[3] = { &lite4, &off_1023A28, &off_1023A30 }; // weak int dword_1023A74 = 0; // weak int dword_1023A7C = 0; // weak int dword_1023A84 = 0; // weak int dword_1023A8C = 0; // weak int dword_1023A94 = 0; // weak int dword_1023A9C = 0; // weak int dword_1023AA4 = 0; // weak int dword_1023AAC = 0; // weak char *lite61 = "lite61"; // weak int dword_1023AB4 = 0; // weak char *lite60 = "lite60"; // weak int dword_1023ABC = 0; // weak char *lite59 = "lite59"; // weak int dword_1023AC4 = 0; // weak char *lite58 = "lite58"; // weak int dword_1023ACC = 0; // weak int dword_1023ADC = 0; // weak int dword_1023AE4 = 0; // weak int dword_1023AEC = 0; // weak struct TPinballComponent *dword_1023B0C = NULL; // idb int dword_1023B20 = 0; // weak int dword_1023B28 = 0; // weak int dword_1023B30 = 0; // weak struct TPinballComponent *dword_1023B38 = NULL; // idb int dword_1023B48 = 0; // weak int dword_1023B50 = 0; // weak int dword_1023B58 = 0; // weak int dword_1023B60 = 0; // weak int dword_1023B68 = 0; // weak int dword_1023B70 = 0; // weak int dword_1023B78 = 0; // weak int dword_1023B84 = 0; // weak int dword_1023B8C = 0; // weak int dword_1023B94 = 0; // weak int dword_1023B9C = 0; // weak int dword_1023BA4 = 0; // weak int dword_1023BAC = 0; // weak int dword_1023BB4 = 0; // weak char *lite198 = "lite198"; // weak int dword_1023BBC = 0; // weak int dword_1023BC8 = 0; // weak int dword_1023BD0 = 0; // weak int dword_1023BD8 = 0; // weak int dword_1023BE0 = 0; // weak int dword_1023BE8 = 0; // weak int dword_1023BF0 = 0; // weak int dword_1023BF8 = 0; // weak int dword_1023C00 = 0; // weak int dword_1023C08 = 0; // weak int dword_1023C10 = 0; // weak int dword_1023C18 = 0; // weak int dword_1023C20 = 0; // weak int dword_1023C28 = 0; // weak int dword_1023C30 = 0; // weak int dword_1023C3C = 0; // weak char *lite110 = "lite110"; // weak int dword_1023C44 = 0; // weak int dword_1023C50 = 0; // weak int dword_1023C5C = 0; // weak int dword_1023C68 = 0; // weak int dword_1023C70 = 0; // weak int dword_1023C7C = 0; // weak char *lite67 = "lite67"; // weak int dword_1023CB4 = 0; // weak int dword_1023CBC = 0; // weak int dword_1023CC4 = 0; // weak int dword_1023CCC = 0; // weak int dword_1023CD4 = 0; // weak int dword_1023CDC = 0; // weak int dword_1023CE4 = 0; // weak int dword_1023CEC = 0; // weak int dword_1023CF4 = 0; // weak int dword_1023CFC = 0; // weak char *lite200 = "lite200"; // weak int dword_1023D04 = 0; // weak char *lite199 = "lite199"; // weak int dword_1023D0C = 0; // weak int dword_1023D14 = 0; // weak int dword_1023D1C = 0; // weak int dword_1023D24 = 0; // weak int dword_1023D2C = 0; // weak int dword_1023D34 = 0; // weak int dword_1023D3C = 0; // weak int dword_1023D44 = 0; // weak int dword_1023D4C = 0; // weak int dword_1023D54 = 0; // weak int dword_1023D64 = 0; // weak int dword_1023D6C = 0; // weak int dword_1023D74 = 0; // weak int dword_1023D7C = 0; // weak int dword_1023D84 = 0; // weak int dword_1023D8C = 0; // weak int dword_1023D94 = 0; // weak int dword_1023D9C = 0; // weak int dword_1023DA4 = 0; // weak int dword_1023DAC = 0; // weak int dword_1023DB4 = 0; // weak int dword_1023DBC = 0; // weak int dword_1023DC4 = 0; // weak int dword_1023DCC = 0; // weak int dword_1023DD4 = 0; // weak int dword_1023DDC = 0; // weak int dword_1023DE4 = 0; // weak int dword_1023DEC = 0; // weak int dword_1023DF4 = 0; // weak int dword_1023DFC = 0; // weak int dword_1023E04 = 0; // weak int dword_1023E0C = 0; // weak int dword_1023E14 = 0; // weak TTextBox *dword_1023E1C = NULL; // idb TTextBox *dword_1023E24 = NULL; // idb int dword_1023E34 = 0; // weak int dword_1023E3C = 0; // weak int dword_1023E44 = 0; // weak char *lite303 = "lite303"; // weak int dword_1023E4C = 0; // weak char *lite304 = "lite304"; // weak int dword_1023E54 = 0; // weak int dword_1023E5C = 0; // weak int dword_1023E64 = 0; // weak int dword_1023E6C = 0; // weak int dword_1023E74 = 0; // weak int dword_1023E7C = 0; // weak int dword_1023E84 = 0; // weak int dword_1023E8C = 0; // weak int dword_1023E94 = 0; // weak int dword_1023E9C = 0; // weak char *lite314 = "lite314"; // weak int dword_1023EA4 = 0; // weak int dword_1023EAC = 0; // weak char *lite316 = "lite316"; // weak int dword_1023EB4 = 0; // weak char *lite317 = "lite317"; // weak int dword_1023EBC = 0; // weak char *lite318 = "lite318"; // weak int dword_1023EC4 = 0; // weak char *lite319 = "lite319"; // weak int dword_1023ECC = 0; // weak int dword_1023ED4 = 0; // weak int dword_1023EDC = 0; // weak int dword_1023EE4 = 0; // weak int dword_1023EEC = 0; // weak _UNKNOWN unk_1023EF8; // weak char **off_1024470[142] = { &off_1023708, &off_1023710, &off_1023718, &off_1023720, &off_1023774, &off_102377C, &off_1023784, &off_102378C, &lite30, &lite29, &off_1023864, &lite54, &lite55, &lite56, &lite18, &lite27, &lite28, &lite16, &off_1023984, &off_102398C, &off_1023994, &off_102399C, &lite25, &lite26, &lite130, &off_1023A00, &off_1023A08, &off_1023A10, &off_1023A18, &lite4, &off_1023A28, &off_1023A30, &off_1023A38, &off_1023A88, &off_1023A90, &off_1023944, &off_102394C, &off_1023954, &off_102395C, &off_1023964, &off_102396C, &off_1023974, &lite20, &off_10239CC, &lite61, &lite58, &off_1023AF0, &off_1023AF8, &off_1023B00, &off_1023B5C, &off_1023B64, &off_1023B6C, &off_1023B74, &off_1023B98, &off_1023BA0, &off_1023BA8, &off_1023BB0, &off_1023BF4, &off_1023BFC, &off_1023C04, &off_1023C0C, &off_1023C14, &off_1023C1C, &off_1023C24, &off_1023C2C, &lite110, &off_1023C6C, &lite67, &off_1023CB8, &off_1023CC0, &off_1023CC8, &off_1023CD0, &off_1023CD8, &off_1023CE0, &off_1023CE8, &lite198, &off_1023CF0, &off_1023CF8, &off_1023D10, &off_1023D18, &off_1023D20, &off_1023D28, &off_1023D30, &off_1023D38, &off_1023D40, &off_1023D48, &off_1023D58, &off_1023D60, &off_1023D68, &off_1023D70, &off_1023D78, &off_1023D80, &off_1023D88, &off_1023D90, &off_1023D98, &off_1023DA0, &off_1023DA8, &off_1023DB0, &off_1023DB8, &off_1023DC0, &off_1023DC8, &off_1023DD0, &off_1023DD8, &off_1023DE0, &lite199, &off_1023824, &off_102382C, &off_1023E18, &off_1023E20, &off_1023DE8, &off_10237D0, &off_10237D8, &off_1023DF0, &off_1023DF8, &off_1023E00, &off_1023E08, &off_1023E30, &off_1023E38, &off_1023E40, &lite303, &lite304, &off_1023E58, &off_1023E60, &off_1023E68, &off_1023E70, &off_1023E78, &off_1023E80, &off_1023E88, &off_1023E90, &off_1023E98, &lite314, &off_1023EA8, &lite316, &lite317, &lite318, &lite319, &off_1023ED0, &off_1023ED8, &off_1023EE0, &off_1023EE8, &off_1023D50, &off_1023E10 }; // weak int off_10246A0 = 16923984; // idb int word_10246EC[] = { 84 }; // weak int word_1024708[] = { 91 }; // weak int render_blit = 1; // weak int dword_1024758[5] = { 1, 2, 3, 5, 10 }; // idb CHAR aWavemixV23ByAn[] = "WaveMix V 2.3 by Angel M. Diaz, Jr. (c) Microsoft 1993-1995"; // idb LPCSTR lpString2 = NULL; // idb LPSTR lpString1 = NULL; // idb CHAR rc_strings[1536] = { '\0' }; // idb int rc_string_slot; // weak HWND hWnd; // idb int dword_1024EC0; // weak int dword_1024ED4; // weak int dword_1024ED8; // weak int dword_1024EDC; // weak int dword_1024EE0; // weak int fullscrn_screen_mode; // weak int dword_1024EE8; // weak int dword_1024EEC; // weak int dword_1024EF0; // weak int fullscrn_display_changed; // weak int dword_1024EF8; // weak int gdrv_use_wing; // weak int memory_use_total; // weak int memory_critical_allocation; // weak int (*memory_critical_callback)(void); // weak HMENU hMenu; // idb int word_1024F18; // weak int dword_1024F1C[8]; // idb int dword_1024F3C[8]; // idb LPCVOID pMem; // idb HMODULE dword_1024F60; // idb HWND dword_1024F64; // idb int (*dword_1024F68)(DWORD, DWORD, DWORD); // weak HINSTANCE hInstance; // idb int dword_1024F70; // weak int dword_1024F74; // weak int dword_1024F78; // weak int dword_1024F7C; // weak int dword_1024F80; // weak int time_ticks; // weak char Dest[80]; // idb int single_step; // weak int bQuit; // weak int DispFrameRate; // weak int DispGRhistory; // weak int mouse_down; // weak int has_focus; // weak int activated; // weak int no_time_loss; // weak int cheat_mode; // weak int midi_seq1_open; // weak int midi_seq1_playing; // weak HWND midi_notify_hwnd; // weak _UNKNOWN mci_open_info; // weak MCIDEVICEID mciId; // idb int dword_1025014; // weak int dword_1025018; // weak CHAR byte_1025020[28]; // idb TEdgeManager *edge_manager; // idb TPinballTable *dword_1025040; // idb int dword_1025044; // weak int dword_1025048; // weak int dword_102504C; // weak int dword_1025050; // weak _UNKNOWN zscreen; // weak int word_102505A; // weak struct render_sprite_type_struct **render_dirty_list; // weak struct render_sprite_type_struct **render_ball_list; // weak int render_many_balls; // weak _UNKNOWN vscreen_rect; // weak int dword_1025078; // weak int dword_102507C; // weak int dword_1025080; // weak struct render_sprite_type_struct **render_sprite_list; // weak _UNKNOWN vscreen; // weak int dword_1025094; // weak int dword_1025098; // weak int xDest; // idb int yDest; // idb float render_zscaler; // weak int render_many_sprites; // weak float render_zmax; // weak float render_zmin; // weak int render_many_dirty; // weak _UNKNOWN ball_bitmap; // weak int render_offset_x; // weak int render_offset_y; // weak int render_background_bitmap; // idb struct zmap_header_type *render_background_zmap; // weak _UNKNOWN render_zmap_offset; // weak int dword_10253C0; // weak struct score_msg_font_type *score_msg_fontp; // weak float ball_speed_limit; // weak _UNKNOWN pb_state; // weak CHAR byte_102543C[300]; // idb int dword_1025568; // weak int play_midi_music; // weak int dword_1025570; // weak int dword_1025574; // weak CHAR byte_1025578[32]; // idb int dword_1025598[36]; // idb float time_now; // weak float time_next; // weak int pb_record_table; // idb int nudged_left; // weak int nudged_right; // weak int nudged_up; // weak int nudge_timer; // weak float nudge_count; // weak TTextBox *InfoTextBox; // idb TTextBox *MissTextBox; // idb struct TPinballTable *MainTable; // idb float flipper_sin_angle; // idb _UNKNOWN circlebase; // weak int dword_1025664; // weak int dword_102566C; // weak _UNKNOWN circleT1; // weak int dword_1025674; // weak int dword_102567C; // weak _UNKNOWN lineA; // weak float flt_1025684; // weak _UNKNOWN unk_10256A4; // weak float flipper_cos_angle; // idb _UNKNOWN A2; // weak float flt_10256B8; // weak _UNKNOWN lineB; // weak float flt_10256C4; // weak _UNKNOWN unk_10256E4; // weak _UNKNOWN B1; // weak float flt_10256F4; // weak _UNKNOWN B2; // weak float flt_1025700; // weak _UNKNOWN T1; // weak int dword_102570C; // weak _UNKNOWN A1; // weak float flt_1025718; // weak HWND (*pHtmlHelpA)(HWND, const char *, unsigned int, unsigned int); // weak int dword_1025728; // weak HMODULE hModule; // idb int dword_1025730[16]; // idb _UNKNOWN unk_1025770; // weak int dword_1025798; // weak int dword_10257A0[16]; // idb HINSTANCE dword_10257E0; // idb _UNKNOWN unk_10257E4; // weak int word_1025810[]; // weak int word_1025812[30]; // idb CHAR FileName[276]; // idb int dword_1025964; // weak int dword_1025968; // weak char byte_1025970[128]; // idb _UNKNOWN unk_10259F0; // weak _UNKNOWN unk_10263F0; // weak _UNKNOWN unk_1026470; // weak _UNKNOWN unk_1027B68; // weak int dword_1027BA4; // weak LPARAM hMem; // idb int dword_1027BE4; // weak int dword_1027BE8; // weak LPWAVEHDR pwh; // idb int dword_1027BF0; // weak int dword_1027BF4; // weak int dword_1027BF8; // weak int _dowildcard; // weak int _newmode; // weak int _commode; // weak int _fmode; int loader_table; // idb int sound_record_table; // weak int sound_list[]; // weak int dword_1027C24[]; // weak int dword_1027C28[]; // weak char algn_1027C2C[4]; // weak int dword_1027C30[]; // weak _UNKNOWN unk_1027C34; // weak int loader_sound_count; // weak int proj_centery; // weak int proj_centerx; // weak int proj_d; // weak _UNKNOWN proj_matrix; // weak _UNKNOWN unk_1028170; // weak float flt_1028190; // weak float flt_1028194; // weak float flt_1028198; // weak float flt_102819C; // weak int then; // weak _UNKNOWN gfr_display; // weak int displaying_splashscreen; // weak UINT iFrostUniqueMsg; // idb int last_mouse_y; // idb int now; // weak HCURSOR mouse_hsave; // idb int last_mouse_x; // idb HWND hwnd_frame; // idb int return_value; // weak HINSTANCE hinst; // idb int num_channels; // weak HKEY options; // idb HKEY phkResult; // idb HKEY dword_1028228; // idb HKEY fullscreen_toggle; // idb HKEY application_priority; // idb HKEY dword_1028234; // idb HKEY dword_1028238; // idb HKEY dword_102823C; // idb HKEY dword_1028240; // idb HKEY dword_1028244; // idb HKEY dword_1028248; // idb HKEY dword_102824C; // idb int dword_1028250; // idb int dword_1028254; // idb int dword_1028258; // idb int dword_102825C; // idb int dword_1028260; // idb int dword_1028264; // idb int high_score_dlg_score; // idb LPCSTR high_score_dlg_hst; // idb int high_score_dlg_enter_name; // weak int high_score_position; // idb LPCSTR high_score_default_name; // idb HGDIOBJ gdrv_palette_handle; // idb HDC gdrv_sequence_hdc; // idb int gdrv_hinst; // weak HWND gdrv_hwnd; // idb int gdrv_sequence_handle; // weak int grtext_blue; // weak int grtext_green; // weak int __onexitend; // weak int __onexitbegin; // weak int _adjust_fdiv; // weak #endif //PINBALL_PINBALL_H