From 6756c54d3b17bf41cab82a822125140aed2e3120 Mon Sep 17 00:00:00 2001 From: oz Date: Fri, 29 Jan 2021 14:24:49 +0300 Subject: [PATCH] splash ready. All subs ready, phase 1 complete. --- Doc/FuncStats.xlsx | Bin 39382 -> 39252 bytes SpaceCadetPinball/SpaceCadetPinball.rc | 8 + SpaceCadetPinball/SpaceCadetPinball.vcxproj | 3 + .../SpaceCadetPinball.vcxproj.filters | 9 + SpaceCadetPinball/loader.cpp | 112 +++---- SpaceCadetPinball/splash.cpp | 295 ++++++++++++++++++ SpaceCadetPinball/splash.h | 33 ++ SpaceCadetPinball/splash_bitmap.bmp | Bin 0 -> 72118 bytes SpaceCadetPinball/winmain.cpp | 11 +- 9 files changed, 390 insertions(+), 81 deletions(-) create mode 100644 SpaceCadetPinball/splash.cpp create mode 100644 SpaceCadetPinball/splash.h create mode 100644 SpaceCadetPinball/splash_bitmap.bmp diff --git a/Doc/FuncStats.xlsx b/Doc/FuncStats.xlsx index 03d4a9f4d2e863eaccd64a0f8d2d79844fef0060..bf9367d00d3e83a00e916dfe906342d58cf54bdc 100644 GIT binary patch delta 31875 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 z%0ASrg{y^`x3*d^cy*;@AiEzCy)i$1jGj?43hwYRbIB_-kXgVFo*OTuvY-|_0fQ*I zst=UhElx;bR*%c+uy-3R&{&LrE*m|$>86e83>(=Gm(h=;v9Rn2E;Z}r=&Uta zFEN;cvHOKo2%s@?bLI>R;_j3im9I_w#qY93_~mJM+U!fM=%L;n7`Y0+>kd404qadU z#j0P_q`%O!(W6?0J(L z_NPO4qC%I%-IVFv+_SAwK5|J~K&8+PA*rgfNMWAQzTO-H325zB%++~m%v6c(BO>DZ z$KY3qFSD(O+Odu18^k@pN@JlKX9`*#a=X-IJde#;HFHvj-|$>FB}YOjXya#vQPDHX`%yJW1u{Y+;uoBK4sv>gD zn~r029i*_A6gHMTv{$RJr~Uo0!5qjUw8qR2K7dM33X4iEn{?CsoIG8Emm0A>wr05H zKKxC<;Vb6H6i+VN5gXc&$?_@Xbc2$DZWuEl`hVrXs+lxB@sF@pl@7gW`0nS7&$f~;BTSxA3<`9P1=6~MyN~^NIU*X z0*i+^q~5C_`#@)4(`xtNjpNEaEeEC)IkEVc>bbYF{a>DZXF>H^1MdnkiF|n;vToAU zJ~(N4letO!*#i%aXCpg3o9ab0{3iVJYZN=^OXw2>$x~n?dv^)P-x@mBzfsbw3aH98K6KL*_Z$0<7)upeC%M-zXJq;QFatMK#!-}Fy0Kw?fBWq-@X&g; zf@6*IxHcE}Sa{l;?);qO;h&T7P6xOD+WOniSm7B;I48<_4h=zt9J1eXWOQ58UnVkMsP9P}1UA4fdcWxeeJdkxb9KVgpR+!i!GWpw4 zaA=Pr2t_f)PCx%O2R^j#&sez2rCc2hW;P~mbVOFc?|>|H?2oGP;;}SY%ZnVSiCRF! zO=@Z$*cNCbKHkdbJ%rL82!K?kWbiFu2%=FC)mgUvLzfCiv1ms+TJVM+f<1b3|B469 zxw@MIy9GE2w0Wi``?`4kvfg=1a?L^bm>Bu#8c=*yHoVo(M|k@l3b-tv=J{&zSW`Ff?;Lg8sQDi5OVn$P8TtMtt0En1+ti zKe?`2787{^gTA8P)3cHS%kd(Vt$Lie-O7TRb6D1?IStqec;pj(5SB#JqUhLYm{Mz|>em?(wQVs2@coQql#ZT@JA z+fXiuuRCG8IRnbsv>Tu7?@eQAD$|Fo=~AwwIaRsLWw`wkwjcky0KB=GtBA_HMAS

6Wa|{OiX+_!{+|8!Xkgz;XW060h*OKd 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%0D-* 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 Rk3bTU7f1DAA_~6a{{z@8c9j4C delta 31977 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 CRuy{y diff --git a/SpaceCadetPinball/SpaceCadetPinball.rc b/SpaceCadetPinball/SpaceCadetPinball.rc index a955a6b..30ab4b3 100644 --- a/SpaceCadetPinball/SpaceCadetPinball.rc +++ b/SpaceCadetPinball/SpaceCadetPinball.rc @@ -337,6 +337,14 @@ BEGIN END +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +splash_bitmap BITMAP "splash_bitmap.bmp" + + ///////////////////////////////////////////////////////////////////////////// // // String Table diff --git a/SpaceCadetPinball/SpaceCadetPinball.vcxproj b/SpaceCadetPinball/SpaceCadetPinball.vcxproj index 170af74..ebdf4b1 100644 --- a/SpaceCadetPinball/SpaceCadetPinball.vcxproj +++ b/SpaceCadetPinball/SpaceCadetPinball.vcxproj @@ -176,6 +176,7 @@ + @@ -247,6 +248,7 @@ + @@ -302,6 +304,7 @@ + diff --git a/SpaceCadetPinball/SpaceCadetPinball.vcxproj.filters b/SpaceCadetPinball/SpaceCadetPinball.vcxproj.filters index 6fcaf37..36d606f 100644 --- a/SpaceCadetPinball/SpaceCadetPinball.vcxproj.filters +++ b/SpaceCadetPinball/SpaceCadetPinball.vcxproj.filters @@ -225,6 +225,9 @@ Header Files + + Header Files + @@ -416,6 +419,9 @@ Source Files + + Source Files + @@ -434,5 +440,8 @@ Resource Files + + Resource Files + \ No newline at end of file diff --git a/SpaceCadetPinball/loader.cpp b/SpaceCadetPinball/loader.cpp index f3cd42f..6b4fbb7 100644 --- a/SpaceCadetPinball/loader.cpp +++ b/SpaceCadetPinball/loader.cpp @@ -7,7 +7,7 @@ #include "zdrv.h" -errorMsg loader::loader_errors[] = +errorMsg loader::loader_errors[] = { errorMsg{0, "Bad Handle"}, errorMsg{1, "No Type Field"}, @@ -365,15 +365,6 @@ int loader::kicker(int groupIndex, visualKickerStruct* kicker) int loader::query_visual(int groupIndex, int groupIndexOffset, visualStruct* visual) { - int shortVal; - __int16* nextShortVal; - int shortValSub100; - int shortValSub300; - int shortValSub304; - int shortValSub602; - int shortValSub1100; - int shortValSub1101; - default_vsi(visual); if (groupIndex < 0) return error(0, 18); @@ -396,75 +387,44 @@ int loader::query_visual(int groupIndex, int groupIndexOffset, visualStruct* vis unsigned int shortArrSize = partman::field_size(loader_table, stateId, datFieldTypes::ShortArray); for (auto index = 0u; index < shortArrSize / 2;) { - shortVal = *shortArr; - nextShortVal = shortArr + 1; - if (shortVal <= 406) + switch (shortArr[0]) { - if (shortVal == 406) - { - visual->Kicker.HardHitSoundId = get_sound_id(*nextShortVal); - } - else - { - shortValSub100 = shortVal - 100; - if (shortValSub100) - { - shortValSub300 = shortValSub100 - 200; - if (shortValSub300) - { - shortValSub304 = shortValSub300 - 4; - if (shortValSub304) - { - if (shortValSub304 != 96) - return error(9, 18); - if (kicker(*nextShortVal, &visual->Kicker)) - return error(14, 18); - } - else - { - visual->SoftHitSoundId = get_sound_id(*nextShortVal); - } - } - else if (material(*nextShortVal, visual)) - { - return error(15, 18); - } - } - else if (groupIndexOffset) - { - return error(7, 18); - } - } - goto LABEL_31; - } - shortValSub602 = shortVal - 602; - if (!shortValSub602) - { - visual->CollisionGroup |= 1 << *nextShortVal; - goto LABEL_31; - } - shortValSub1100 = shortValSub602 - 498; - if (!shortValSub1100) - { - visual->SoundIndex4 = get_sound_id(*nextShortVal); - goto LABEL_31; - } - shortValSub1101 = shortValSub1100 - 1; - if (!shortValSub1101) - { - visual->SoundIndex3 = get_sound_id(*nextShortVal); - LABEL_31: - shortArr = nextShortVal + 1; - index = index + 2; - goto LABEL_32; - } - if (shortValSub1101 != 399) + case 100: + if (groupIndexOffset) + return error(7, 18); + break; + case 300: + if (material(shortArr[1], visual)) + return error(15, 18); + break; + case 304: + visual->SoftHitSoundId = get_sound_id(shortArr[1]); + break; + case 400: + if (kicker(shortArr[1], &visual->Kicker)) + return error(14, 18); + break; + case 406: + visual->Kicker.HardHitSoundId = get_sound_id(shortArr[1]); + break; + case 602: + visual->CollisionGroup |= 1 << shortArr[1]; + break; + case 1100: + visual->SoundIndex4 = get_sound_id(shortArr[1]); + break; + case 1101: + visual->SoundIndex3 = get_sound_id(shortArr[1]); + break; + case 1500: + shortArr += 7; + index += 7; + break; + default: return error(9, 18); - shortArr = nextShortVal + 8; - index = index + 9; - LABEL_32: - { } + shortArr += 2; + index += 2; } } diff --git a/SpaceCadetPinball/splash.cpp b/SpaceCadetPinball/splash.cpp new file mode 100644 index 0000000..632cc55 --- /dev/null +++ b/SpaceCadetPinball/splash.cpp @@ -0,0 +1,295 @@ +#include "pch.h" +#include "splash.h" + + +#include "memory.h" +#include "pinball.h" + +HINSTANCE splash::HInstance; + +splash_struct* splash::splash_screen(HINSTANCE hInstance, LPCSTR bmpName1, LPCSTR bmpName2) +{ + WNDCLASSA WndClass{}; + tagRECT Rect{}; + + auto splashStruct = reinterpret_cast(memory::allocate(0x1B0u)); + if (!splashStruct) + return nullptr; + + lstrcpyA(splashStruct->BmpName1, bmpName1); + lstrcpyA(splashStruct->BmpName2, bmpName2); + if (!HInstance) + { + HInstance = hInstance; + WndClass.style = 0; + WndClass.lpfnWndProc = splash_message_handler; + WndClass.cbClsExtra = 0; + WndClass.cbWndExtra = 4; + WndClass.hInstance = hInstance; + WndClass.hIcon = nullptr; + WndClass.hCursor = LoadCursorA(nullptr, IDC_ARROW); + WndClass.hbrBackground = nullptr; + WndClass.lpszMenuName = pinball::WindowName; + WndClass.lpszClassName = "3DPB_SPLASH_CLASS"; + RegisterClassA(&WndClass); + } + splashStruct->Bitmap = nullptr; + HWND windowHandle = CreateWindowExA(0, "3DPB_SPLASH_CLASS", pinball::WindowName, 0x80000000, -10, -10, 1, 1, + nullptr, nullptr, HInstance, nullptr); + splashStruct->WindowHandle = windowHandle; + if (!windowHandle) + { + memory::free(splashStruct); + return nullptr; + } + + SetWindowLongA(windowHandle, 0, reinterpret_cast(splashStruct)); + GetWindowRect(GetDesktopWindow(), &Rect); + splash_bitmap_setup(splashStruct); + //MoveWindow(splashStruct->WindowHandle, 0, 0, Rect.right - Rect.left, Rect.bottom - Rect.top, 0); + + /*Mod - less intrusive splash*/ + auto centerX = (Rect.right - Rect.left - splashStruct->Width) / 2; + auto CenterY = (Rect.bottom - Rect.top - splashStruct->Height) / 2; + MoveWindow(splashStruct->WindowHandle, centerX, CenterY, splashStruct->Width, splashStruct->Height, 0); + + ShowWindow(splashStruct->WindowHandle, 8); + SetFocus(splashStruct->WindowHandle); + UpdateWindow(splashStruct->WindowHandle); + return splashStruct; +} + +void splash::splash_bitmap_setup(splash_struct* splashStruct) +{ + HBITMAP bmpHandle2; + BITMAP bmp; + + HBITMAP bmpHandle1 = nullptr; + HDC desktopDC = GetDC(GetDesktopWindow()); + if (desktopDC) + { + splashStruct->DrawingContext = CreateCompatibleDC(desktopDC); + bmpHandle1 = CreateCompatibleBitmap(desktopDC, 10, 10); + ReleaseDC(splashStruct->WindowHandle, desktopDC); + if (bmpHandle1) + { + if (splashStruct->DrawingContext) + { + SelectObject(splashStruct->DrawingContext, bmpHandle1); + if ((GetDeviceCaps(splashStruct->DrawingContext, RASTERCAPS) & RC_PALETTE) != 0 + || GetDeviceCaps(splashStruct->DrawingContext, NUMCOLORS) >= 256) + { + bmpHandle2 = load_title_bitmap(HInstance, splashStruct->DrawingContext, splashStruct->BmpName1, 10, + 236, &splashStruct->Palette); + } + else + { + bmpHandle2 = LoadBitmapA(HInstance, splashStruct->BmpName2); + } + splashStruct->Bitmap = bmpHandle2; + + if (bmpHandle2) + { + SelectObject(splashStruct->DrawingContext, bmpHandle2); + DeleteObject(bmpHandle1); + GetObjectA(splashStruct->Bitmap, 24, &bmp); + splashStruct->Width = bmp.bmWidth; + splashStruct->Height = bmp.bmHeight; + return; + } + } + } + else + { + GetLastError(); + } + } + + if (splashStruct->Palette) + DeleteObject(splashStruct->Palette); + if (splashStruct->WindowHandle) + DestroyWindow(splashStruct->WindowHandle); + if (bmpHandle1) + DeleteObject(bmpHandle1); + if (splashStruct->DrawingContext) + DeleteDC(splashStruct->DrawingContext); + splashStruct->Bitmap = nullptr; +} + +HBITMAP splash::load_title_bitmap(HMODULE hModule, HDC hdc, LPCSTR lpName, UINT iStart, int iEnd, HPALETTE* palettePtr) +{ + LOGPALETTEx256 plpal; + + auto resH = FindResourceA(hModule, lpName, RT_BITMAP); + if (!resH) + return nullptr; + auto resHGlobal = LoadResource(hModule, resH); + if (!resHGlobal) + return nullptr; + + auto bmp = static_cast(LockResource(resHGlobal)); + int numColors = bmp->bmiHeader.biClrUsed; + if (!numColors) + numColors = 1 << LOBYTE(bmp->bmiHeader.biBitCount); + if (bmp->bmiHeader.biBitCount > 4u) + { + *palettePtr = splash_init_palette(&plpal); + if (*palettePtr) + { + int cEntries = 0; + if (iEnd > 0) + { + auto dst = &plpal.palPalEntry[iStart]; + auto src = &bmp->bmiColors[0]; + for (; cEntries < iEnd && cEntries < numColors; ++cEntries) + { + dst->peRed = src->rgbRed; + dst->peGreen = src->rgbGreen; + dst->peBlue = src->rgbBlue; + dst->peFlags = 4; + src++; + dst++; + } + } + SetPaletteEntries(*palettePtr, iStart, cEntries, &plpal.palPalEntry[iStart]); + SelectPalette(hdc, *palettePtr, 0); + RealizePalette(hdc); + } + } + + auto resBmp = CreateDIBitmap(hdc, &bmp->bmiHeader, 4u, &bmp->bmiColors[numColors], bmp, 0); + FreeResource(resHGlobal); + return resBmp; +} + +HPALETTE splash::splash_init_palette(LOGPALETTEx256* plpal) +{ + plpal->palVersion = 768; + plpal->palNumEntries = 256; + auto hPalette = CreatePalette(reinterpret_cast(plpal)); + auto dc = GetDC(GetDesktopWindow()); + GetDeviceCaps(dc, RASTERCAPS); + if (GetDeviceCaps(dc, SIZEPALETTE) != 256) + { + if (hPalette) + DeleteObject(hPalette); + ReleaseDC(GetDesktopWindow(), dc); + return nullptr; + } + + SetSystemPaletteUse(dc, 2u); + SetSystemPaletteUse(dc, 1u); + auto hPal = SelectPalette(dc, hPalette, 0); + RealizePalette(dc); + SelectPalette(dc, hPal, 0); + RealizePalette(dc); + GetSystemPaletteEntries(dc, 0, 256u, plpal->palPalEntry); + ReleaseDC(GetDesktopWindow(), dc); + + auto dst = &plpal->palPalEntry[0]; + for (auto index = 256; index; --index) + { + dst->peFlags = 0; + dst++; + } + + dst = &plpal->palPalEntry[10]; + for (auto index = 10; index < 246; ++index) + { + dst->peRed = index; + dst->peGreen = index; + dst->peBlue = index; + dst->peFlags = 4; + dst++; + } + ResizePalette(hPalette, 256u); + SetPaletteEntries(hPalette, 0, 256u, plpal->palPalEntry); + return hPalette; +} + +void splash::splash_paint(splash_struct* splashStruct, HDC dc) +{ + tagRECT Rect{}; + + if (splashStruct->Bitmap) + { + GetWindowRect(GetDesktopWindow(), &Rect); + splashStruct->CenterX = (Rect.right - Rect.left - splashStruct->Width) / 2; + splashStruct->CenterY = (Rect.bottom - Rect.top - splashStruct->Height) / 2; + SelectPalette(dc, splashStruct->Palette, 0); + RealizePalette(dc); + SelectPalette(splashStruct->DrawingContext, splashStruct->Palette, 0); + RealizePalette(splashStruct->DrawingContext); + /*BitBlt(dc, splashStruct->CenterX, splashStruct->CenterY, splashStruct->Width, + splashStruct->Height, splashStruct->DrawingContext, 0, 0, SRCCOPY);*/ + + /*Mod - less intrusive splash*/ + BitBlt(dc, 0, 0, splashStruct->Width, splashStruct->Height, + splashStruct->DrawingContext, 0, 0, SRCCOPY); + } +} + +void splash::splash_destroy(splash_struct* splashStruct) +{ + if (splashStruct) + { + if (splashStruct->WindowHandle) + { + DestroyWindow(splashStruct->WindowHandle); + splashStruct->WindowHandle = nullptr; + + if (splashStruct->Palette) + DeleteObject(splashStruct->Palette); + splashStruct->Palette = nullptr; + + if (splashStruct->DrawingContext) + DeleteDC(splashStruct->DrawingContext); + if (splashStruct->Bitmap) + DeleteObject(splashStruct->Bitmap); + } + memory::free(splashStruct); + } + if (HInstance) + { + UnregisterClassA("3DPB_SPLASH_CLASS", HInstance); + HInstance = nullptr; + } +} + +void splash::splash_hide(splash_struct* splashStruct) +{ + if (splashStruct && splashStruct->WindowHandle) + { + HDC dc = GetDC(splashStruct->WindowHandle); + BitBlt(dc, 0, 0, splashStruct->CenterX, splashStruct->CenterY, dc, 0, 0, 0x42u); + ReleaseDC(splashStruct->WindowHandle, dc); + } +} + +LRESULT splash::splash_message_handler(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) +{ + tagPAINTSTRUCT Paint{}; + + switch (Msg) + { + case WM_PAINT: + { + auto splashStruct = reinterpret_cast(GetWindowLongA(hWnd, 0)); + BeginPaint(hWnd, &Paint); + EndPaint(hWnd, &Paint); + auto dc = GetDC(hWnd); + if (dc && splashStruct) + { + BitBlt(dc, 0, 0, 10000, 10000, dc, 0, 0, BLACKNESS); + splash_paint(splashStruct, dc); + } + ReleaseDC(hWnd, dc); + break; + } + case WM_ERASEBKGND: + break; + default: + return DefWindowProcA(hWnd, Msg, wParam, lParam); + } + return 0; +} diff --git a/SpaceCadetPinball/splash.h b/SpaceCadetPinball/splash.h new file mode 100644 index 0000000..e8f7d97 --- /dev/null +++ b/SpaceCadetPinball/splash.h @@ -0,0 +1,33 @@ +#pragma once + +struct LOGPALETTEx256; + +struct splash_struct +{ + HWND WindowHandle; + HPALETTE Palette; + HBITMAP Bitmap; + HDC DrawingContext; + int Width; + int Height; + int CenterX; + int CenterY; + char BmpName1[200]; + char BmpName2[200]; +}; + + +class splash +{ +public: + static splash_struct* splash_screen(HINSTANCE hInstance, LPCSTR bmpName1, LPCSTR bmpName2); + static void splash_bitmap_setup(splash_struct* splashStruct); + static HBITMAP load_title_bitmap(HMODULE hModule, HDC hdc, LPCSTR lpName, UINT iStart, int iEnd, HPALETTE* palettePtr); + static HPALETTE splash_init_palette(LOGPALETTEx256* plpal); + static void splash_paint(splash_struct* splashStruct, HDC dc); + static void splash_destroy(splash_struct* splashStruct); + static void splash_hide(splash_struct* splashStruct); + static LRESULT __stdcall splash_message_handler(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); +private: + static HINSTANCE HInstance; +}; diff --git a/SpaceCadetPinball/splash_bitmap.bmp b/SpaceCadetPinball/splash_bitmap.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6b2b397258cdd6851d1f3f879bd0c8058845e9e5 GIT binary patch literal 72118 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