Default layout now emulates the pod interior
[ MFD UL ] [ MFD UC ] [ MFD UR ] [ plasma (reduced) ][ main screen (centered) ] [ MFD LL ] [ Map ] [ MFD LR ] SVGA16 moves the main game window into the middle band (centered under the MFD columns) and shrinks the plasma glass to fill the space at its left via a new PlasmaScreen::Position hook (the glass paint stretches to the client area, so resizing rescales it). Lower row sits below the main screen band. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -61,6 +61,33 @@ namespace
|
||||
//############################ PlasmaScreen ##############################
|
||||
//########################################################################
|
||||
|
||||
PlasmaScreen *PlasmaScreen::activeInstance = NULL;
|
||||
|
||||
void
|
||||
PlasmaScreen::Position(int x, int y, int client_width, int client_height)
|
||||
{
|
||||
if (activeInstance == NULL || activeInstance->window == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
DWORD style = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX;
|
||||
RECT bounds;
|
||||
bounds.left = 0;
|
||||
bounds.top = 0;
|
||||
bounds.right = client_width;
|
||||
bounds.bottom = client_height;
|
||||
AdjustWindowRect(&bounds, style, FALSE);
|
||||
|
||||
SetWindowPos(
|
||||
(HWND) activeInstance->window, NULL,
|
||||
x, y,
|
||||
bounds.right - bounds.left,
|
||||
bounds.bottom - bounds.top,
|
||||
SWP_NOZORDER | SWP_NOACTIVATE
|
||||
);
|
||||
}
|
||||
|
||||
PlasmaScreen::PlasmaScreen():
|
||||
Video8BitBuffered(plasmaWidth, plasmaHeight)
|
||||
{
|
||||
@@ -119,6 +146,10 @@ PlasmaScreen::~PlasmaScreen()
|
||||
{
|
||||
Check_Pointer(this);
|
||||
|
||||
if (activeInstance == this)
|
||||
{
|
||||
activeInstance = NULL;
|
||||
}
|
||||
if (window != NULL)
|
||||
{
|
||||
RemovePropA((HWND) window, "PlasmaBitmapInfo");
|
||||
@@ -219,6 +250,7 @@ void
|
||||
SetPropA((HWND) window, "PlasmaBitmapInfo", bitmapInfo);
|
||||
SetPropA((HWND) window, "PlasmaPixels", pixelBuffer->Data.MapPointer);
|
||||
ShowWindow((HWND) window, SW_SHOWNOACTIVATE);
|
||||
activeInstance = this;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user