summaryrefslogtreecommitdiff
path: root/csrc/media_init.c
diff options
context:
space:
mode:
authorIru Cai <mytbk920423@gmail.com>2018-08-09 23:07:12 +0800
committerIru Cai <mytbk920423@gmail.com>2018-08-09 23:07:12 +0800
commit4040356d3b9d12cf5178eb6733f1f344088512ce (patch)
tree91d44623240fc3c4d06ae900bd9fd4f264c2314b /csrc/media_init.c
parent75057cc0de61fd6f7e80636eda1e8d19f3ab3c29 (diff)
downloadrich4-4040356d3b9d12cf5178eb6733f1f344088512ce.tar.xz
media_init.c
Diffstat (limited to 'csrc/media_init.c')
-rw-r--r--csrc/media_init.c68
1 files changed, 68 insertions, 0 deletions
diff --git a/csrc/media_init.c b/csrc/media_init.c
new file mode 100644
index 0000000..0c893c4
--- /dev/null
+++ b/csrc/media_init.c
@@ -0,0 +1,68 @@
+IDirectDraw *pddraw; // 0x0048a0d8
+
+DDSURFACEDESC sfdesc1; // 0x0048a068
+IDirectDrawSurface *pddrawsf1; // 0x0048a0dc
+IDirectDrawSurface *pddrawsf2; // 0x0048a0e0
+
+int mkf_data; // 0x48a0e4
+int mkf_speaking; // 0x48a054
+int mkf_panel; // 0x48a05c
+int mkf_effect; // 0x48a058
+
+HHOOK ghook; // 0x48a050
+
+void direct_sound_init(int a0)
+{
+}
+
+bool MessageBoxA_5d6()
+{
+ direct_sound_init(0);
+ HRESULT res = DirectDrawCreate(NULL, &pddraw, NULL);
+ if (res != 0) {
+ MessageBoxA(0, "DirectDraw Initial Error!", "ERROR", 16);
+ return 0;
+ }
+ (*pddraw)->SetCooperativeLevel(pddraw, gwindowHandle, 17);
+ if ((*pddraw)->SetDisplayMode(pddraw, 640, 480, 16) != 0) {
+ MessageBoxA(0, "DirectDraw SetMode Error!", "ERROR", 16);
+ return 0;
+ }
+ sfdesc1.dwSize = 0x6c;
+ sfdesc1.dwFlags = 1;
+ sfdesc1.ddsCaps = 0x200;
+ (*pddraw)->CreateSurface(pddraw, &sfdesc1, &pddrawsf1, NULL);
+
+ (*pddrawsf1)->Restore(pddrawsf1);
+ (*pddrawsf1)->Lock(pddrawsf1, NULL, &sfdesc1, 1, NULL);
+ dw_48a060 = sfdesc1.DUMMYUNIONNAME1.dwLinearSize;
+ (*pddrawsf1)->Unlock(pddrawsf1, NULL);
+ sfdesc1.dwFlags = 7;
+ sfdesc1.ddsCaps = 0x840;
+ sfdesc1.dwWidth = 640;
+ sfdesc1.dwHeight = 480;
+ (*pddraw)->CreateSurface(pddraw, &sfdesc1, &pddrawsf2, NULL);
+ fcn_00456f50(GetTicketCount());
+ fcn_0044f935();
+ fcn_0045175d();
+ mkf_data = load_mkf("data.mkf");
+ mkf_speaking = load_mkf("speaking.mkf");
+ mkf_panel = load_mkf("panel.mkf");
+ mkf_effect = load_mkf("effect.mkf");
+ fcn_00454176(0x48231a);
+ config_rich4();
+ ghook = SetWindowsHookExA(WH_KEYBOARD, fcn_401010, ghInstance, 0);
+ ShowCursor_fa();
+ mciSendStringA_5ba();
+ fcn_004021f8(0x29, 1, 0);
+ b_46caf8 = 0;
+ b_46caf9 = 0;
+ b_46cafd = 0;
+ mid_status[5] = 0;
+ memset(0x4990f0, 0, 4);
+ dw_474938 = malloc(387200);
+ dw_474930 = dw_474934 = dw_48a010 = dw_46cad8 = 0;
+ b_47e771 = 0;
+ return 1;
+}
+