diff --git a/pinball.h b/pinball.h index a38f05e..c8cd0da 100644 --- a/pinball.h +++ b/pinball.h @@ -1,1200 +1,1201 @@ -// -// 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 +// +// 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(flasher_type *, int); // idb +void flasher_stop(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(circle_type *, TEdgeSegment *, field_effect_type *); // idb +void edges_insert_square(float, float, float, float, TEdgeSegment *, field_effect_type *); // idb +TPinballComponent *make_component_link(component_tag *); // idb +void control_make_links(TPinballTable *); // idb +BOOL light_on(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, TPinballComponent *); // idb +void FlipperRebounderControl2(int, TPinballComponent *); // idb +void RebounderControl(int, TPinballComponent *); // idb +void BumperControl(int, TPinballComponent *); // idb +void LeftKickerControl(int, TPinballComponent *); // idb +void RightKickerControl(int, TPinballComponent *); // idb +void LeftKickerGateControl(int, TPinballComponent *); // idb +void RightKickerGateControl(int, TPinballComponent *); // idb +void DeploymentChuteToEscapeChuteOneWayControl(int a1, int a2, int a3, TPinballComponent *a4); +void DeploymentChuteToTableOneWayControl(int, TPinballComponent *); // idb +void DrainBallBlockerControl(int, TPinballComponent *); // idb +void LaunchRampControl(int a1, int a2, TPinballComponent *a3); +void LaunchRampHoleControl(int, TPinballComponent *); // idb +void SpaceWarpRolloverControl(int, TPinballComponent *); // idb +void ReentryLanesRolloverControl(int a1, int a2, int a3, int a4, TPinballComponent *a5); +void BumperGroupControl(int, TPinballComponent *); // idb +void LaunchLanesRolloverControl(int a1, int a2, int a3, int a4, TPinballComponent *a5); +void OutLaneRolloverControl(int a1, int a2, int a3, TPinballComponent *a4); +void ExtraBallLightControl(int, TPinballComponent *); // idb +void ReturnLaneRolloverControl(int a1, int a2, TPinballComponent *a3); +void BonusLaneRolloverControl(int a1, int a2, TPinballComponent *a3); +void FuelRollover1Control(int a1, int a2, TPinballComponent *a3); +void FuelRollover2Control(int a1, int a2, TPinballComponent *a3); +void FuelRollover3Control(int a1, int a2, TPinballComponent *a3); +void FuelRollover4Control(int a1, int a2, TPinballComponent *a3); +void FuelRollover5Control(int a1, int a2, TPinballComponent *a3); +void FuelRollover6Control(int a1, int a2, TPinballComponent *a3); +void HyperspaceLightGroupControl(int, TPinballComponent *); // idb +void WormHoleControl(int a1, int a2, int a3, int a4, TPinballComponent *a5); +void LeftFlipperControl(int, TPinballComponent *); // idb +void RightFlipperControl(int, TPinballComponent *); // idb +void JackpotLightControl(int, TPinballComponent *); // idb +void BonusLightControl(int, TPinballComponent *); // idb +void BoosterTargetControl(int, TPinballComponent *); // idb +void MedalLightGroupControl(int, TPinballComponent *); // idb +void MultiplierLightGroupControl(int a1, int a2, TPinballComponent *a3); +void FuelSpotTargetControl(int a1, int a2, TPinballComponent *a3); +void MissionSpotTargetControl(int a1, int a2, TPinballComponent *a3); +void LeftHazardSpotTargetControl(int, TPinballComponent *); // idb +void RightHazardSpotTargetControl(int, TPinballComponent *); // idb +void WormHoleDestinationControl(int a1, int a2, TPinballComponent *a3); +void BlackHoleKickoutControl(int a1, int a2, TPinballComponent *a3); +void FlagControl(int, TPinballComponent *); // idb +void GravityWellKickoutControl(int a1, int a2, TPinballComponent *a3); +void SkillShotGate1Control(int, TPinballComponent *); // idb +void SkillShotGate2Control(int, TPinballComponent *); // idb +void SkillShotGate3Control(int, TPinballComponent *); // idb +void SkillShotGate4Control(int, TPinballComponent *); // idb +void SkillShotGate5Control(int, TPinballComponent *); // idb +void SkillShotGate6Control(int, TPinballComponent *); // idb +void ShootAgainLightControl(int, TPinballComponent *); // idb +void EscapeChuteSinkControl(int, 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, TPinballComponent *a3); +void SelectMissionController(int, TPinballComponent *); // idb +void PracticeMissionController(int a1, int a2, TPinballComponent *a3); +void LaunchTrainingController(int a1, int a2, TPinballComponent *a3); +void ReentryTrainingController(int a1, int a2, TPinballComponent *a3); +void ScienceMissionController(int a1, int a2, TPinballComponent *a3); +void StrayCometController(int a1, int a2, TPinballComponent *a3); +void SpaceRadiationController(int a1, int a2, TPinballComponent *a3); +void BlackHoleThreatController(int a1, int a2, TPinballComponent *a3); +void BugHuntController(int a1, int a2, TPinballComponent *a3); +void RescueMissionController(int a1, int a2, TPinballComponent *a3); +void AlienMenaceController(int a1, int a2, TPinballComponent *a3); +void AlienMenacePartTwoController(int a1, int a2, TPinballComponent *a3); +void SatelliteController(int a1, int a2, TPinballComponent *a3); +void ReconnaissanceController(int a1, int a2, TPinballComponent *a3); +void DoomsdayMachineController(int a1, int a2, TPinballComponent *a3); +void CosmicPlagueController(int a1, int a2, TPinballComponent *a3); +void CosmicPlaguePartTwoController(int a1, int a2, TPinballComponent *a3); +void SecretMissionYellowController(int a1, int a2, TPinballComponent *a3); +void SecretMissionRedController(int a1, int a2, TPinballComponent *a3); +void SecretMissionGreenController(int a1, int a2, TPinballComponent *a3); +void TimeWarpController(int a1, int a2, TPinballComponent *a3); +void TimeWarpPartTwoController(int a1, int a2, TPinballComponent *a3); +void MaelstromController(int a1, int a2, TPinballComponent *a3); +void MaelstromPartTwoController(int a1, int a2, TPinballComponent *a3); +void MaelstromPartThreeController(int a1, int a2, TPinballComponent *a3); +void MaelstromPartFourController(int a1, int a2, TPinballComponent *a3); +void MaelstromPartFiveController(int a1, int a2, TPinballComponent *a3); +void MaelstromPartSixController(int a1, int a2, TPinballComponent *a3); +void MaelstromPartSevenController(int a1, int a2, TPinballComponent *a3); +void MaelstromPartEightController(int a1, int a2, TPinballComponent *a3); +void GameoverController(int, TPinballComponent *); // idb +void UnselectMissionController(int, TPinballComponent *); // idb +void MissionControl(int, TPinballComponent *); // idb +void control_handler(int, TPinballComponent *); // idb +void HyperspaceKickOutControl(int, TPinballComponent *); // idb +void PlungerControl(int a1, int a2, TPinballComponent *a3); +void MedalTargetControl(int a1, int a2, int a3, int a4, TPinballComponent *a5); +void MultiplierTargetControl(int a1, int a2, int a3, int a4, TPinballComponent *a5); +void BallDrainControl(int, 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(render_sprite_type_struct *); // idb +void render_paint_balls(); // idb +void render_unpaint_balls(); // idb +int render_remove_sprite(render_sprite_type_struct *); // idb +int render_remove_ball(render_sprite_type_struct *); // idb +BOOL overlapping_box(rectangle_type *a1, rectangle_type *a2, 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(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(TEdgeSegment *a1, float a2, TBall *a3); +void pb_timed_frame(float, float, int); // idb +signed int pb_frame(int a1, int a2); +void pb_firsttime_setup(); +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(TBall *, vector_type *, float, float, float); // idb +void find_closest_edge(ramp_plane_type *, int, wall_point_type *, vector_type **, vector_type **); // idb +double basic_collision(TBall *a1, vector_type *a2, vector_type *a3, float a4, float a5, float a6, float a7); +TEdgeSegment *install_wall(float *, TCollisionComponent *, char *, unsigned int, float, void *); // idb +void vswap(vector_type *, vector_type *); // idb +double distance_to_flipper(ray_type *a1, ray_type *a2); +void vector_add(vector_type *, vector_type *); // idb +void RotatePt(vector_type *, float, float, vector_type *); // idb +long double Distance(vector_type *a1, vector_type *a2); +double Distance_Squared(float a1, float a2, int a3, float a4, float a5, int a6); +double DotProduct(const vector_type *a1, const vector_type *a2); +void SinCos(float, float *, float *); // idb +void RotateVector(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); +wavehdr_tag *FreeWaveBlocks(HWAVEOUT hwo, int a2); +int AllocWaveBlocks(HWAVEOUT hwo, int); // idb +DWORD *SwapWaveBlocks(); +DWORD *GetWaveBlock(); +wavehdr_tag *RemoveFromPlayingQueue(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(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 +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 +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 +TPinballComponent *dword_1023B0C = NULL; // idb +int dword_1023B20 = 0; // weak +int dword_1023B28 = 0; // weak +int dword_1023B30 = 0; // weak +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 *tTextBox = 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 +render_sprite_type_struct **render_dirty_list; // weak +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 +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 +zmap_header_type *render_background_zmap; // weak +_UNKNOWN render_zmap_offset; // weak +int dword_10253C0; // weak +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 +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 + \ No newline at end of file