Skip to content

Commit

Permalink
Fixed strategic interface scaling. [WIP]
Browse files Browse the repository at this point in the history
  • Loading branch information
maxrd2 committed Nov 1, 2018
1 parent d35952d commit df4f305
Show file tree
Hide file tree
Showing 21 changed files with 615 additions and 546 deletions.
10 changes: 4 additions & 6 deletions src/game/Strategic/Game_Clock.cc
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ static MOUSE_REGION gClockScreenMaskMouseRegion;

#define CLOCK_X (g_ui.get_CLOCK_X())
#define CLOCK_Y (g_ui.get_CLOCK_Y())
#define CLOCK_HEIGHT 13
#define CLOCK_WIDTH 66
#define CLOCK_HEIGHT (g_ui.m_stdScreenScale * 13)
#define CLOCK_WIDTH (g_ui.m_stdScreenScale * 66)
#define CLOCK_FONT COMPFONT


Expand Down Expand Up @@ -792,13 +792,11 @@ void CreateMouseRegionForPauseOfClock(void)
MSYS_DefineRegion(
&gClockMouseRegion,
CLOCK_X, CLOCK_Y, CLOCK_X + CLOCK_WIDTH, CLOCK_Y + CLOCK_HEIGHT,
MSYS_PRIORITY_HIGHEST, MSYS_NO_CURSOR, MSYS_NO_CALLBACK, PauseOfClockBtnCallback
);
MSYS_PRIORITY_HIGHEST, MSYS_NO_CURSOR, MSYS_NO_CALLBACK, PauseOfClockBtnCallback);

fClockMouseRegionCreated = TRUE;

wchar_t const* const help = gfGamePaused ?
pPausedGameText[1] : pPausedGameText[2];
wchar_t const* const help = gfGamePaused ? pPausedGameText[1] : pPausedGameText[2];
gClockMouseRegion.SetFastHelpText(help);
}
}
Expand Down
163 changes: 95 additions & 68 deletions src/game/Strategic/MapScreen.cc

Large diffs are not rendered by default.

46 changes: 23 additions & 23 deletions src/game/Strategic/MapScreen.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ bool MapCharacterHasAccessibleInventory(SOLDIERTYPE const&);
wchar_t const* GetMapscreenMercAssignmentString(SOLDIERTYPE const&);
void GetMapscreenMercLocationString(SOLDIERTYPE const&, wchar_t* buf, size_t n);
void GetMapscreenMercDestinationString(SOLDIERTYPE const&, wchar_t* buf, size_t n);
void GetMapscreenMercDepartureString(SOLDIERTYPE const&, wchar_t* buf, size_t n, UINT8* text_color);
void GetMapscreenMercDepartureString(SOLDIERTYPE const&, wchar_t* buf, size_t n, UINT32* text_color);

// mapscreen wrapper to init the item description box
void MAPInternalInitItemDescriptionBox(OBJECTTYPE* pObject, UINT8 ubStatusIndex, SOLDIERTYPE* pSoldier);
Expand Down Expand Up @@ -117,31 +117,31 @@ void MakeDialogueEventEnterMapScreen();

void SetMapCursorItem();

#define NAME_X (STD_SCREEN_X + 11)
#define NAME_WIDTH (STD_SCREEN_X + 62 - NAME_X)
#define ASSIGN_X (STD_SCREEN_X + 67)
#define ASSIGN_WIDTH (STD_SCREEN_X + 118 - ASSIGN_X)
#define SLEEP_X (STD_SCREEN_X + 123)
#define SLEEP_WIDTH (STD_SCREEN_X + 142 - SLEEP_X)
#define LOC_X (STD_SCREEN_X + 147)
#define LOC_WIDTH (STD_SCREEN_X + 179 - LOC_X)
#define DEST_ETA_X (STD_SCREEN_X + 184)
#define DEST_ETA_WIDTH (STD_SCREEN_X + 217 - DEST_ETA_X)
#define TIME_REMAINING_X (STD_SCREEN_X + 222)
#define TIME_REMAINING_WIDTH (STD_SCREEN_X + 250 - TIME_REMAINING_X)
#define CLOCK_Y_START (STD_SCREEN_Y + 298)
#define CLOCK_ETA_X (STD_SCREEN_X + 463 - 15 + 6 + 30)
#define CLOCK_HOUR_X_START (STD_SCREEN_X + 463 + 25 + 30)
#define CLOCK_MIN_X_START (STD_SCREEN_X + 463 + 45 + 30)
#define NAME_X (STD_SCREEN_X + g_ui.m_stdScreenScale * 11)
#define NAME_WIDTH (STD_SCREEN_X + g_ui.m_stdScreenScale * 62 - NAME_X)
#define ASSIGN_X (STD_SCREEN_X + g_ui.m_stdScreenScale * 67)
#define ASSIGN_WIDTH (STD_SCREEN_X + g_ui.m_stdScreenScale * 118 - ASSIGN_X)
#define SLEEP_X (STD_SCREEN_X + g_ui.m_stdScreenScale * 123)
#define SLEEP_WIDTH (STD_SCREEN_X + g_ui.m_stdScreenScale * 142 - SLEEP_X)
#define LOC_X (STD_SCREEN_X + g_ui.m_stdScreenScale * 147)
#define LOC_WIDTH (STD_SCREEN_X + g_ui.m_stdScreenScale * 179 - LOC_X)
#define DEST_ETA_X (STD_SCREEN_X + g_ui.m_stdScreenScale * 184)
#define DEST_ETA_WIDTH (STD_SCREEN_X + g_ui.m_stdScreenScale * 217 - DEST_ETA_X)
#define TIME_REMAINING_X (STD_SCREEN_X + g_ui.m_stdScreenScale * 222)
#define TIME_REMAINING_WIDTH (STD_SCREEN_X + g_ui.m_stdScreenScale * 250 - TIME_REMAINING_X)
#define CLOCK_Y_START (STD_SCREEN_Y + g_ui.m_stdScreenScale * 298)
#define CLOCK_ETA_X (STD_SCREEN_X + g_ui.m_stdScreenScale * (463 - 15 + 6 + 30))
#define CLOCK_HOUR_X_START (STD_SCREEN_X + g_ui.m_stdScreenScale * 463 + 25 + 30)
#define CLOCK_MIN_X_START (STD_SCREEN_X + g_ui.m_stdScreenScale * 463 + 45 + 30)

// contract
#define CONTRACT_X (STD_SCREEN_X + 185)
#define CONTRACT_Y (STD_SCREEN_Y + 50)
#define CONTRACT_X (STD_SCREEN_X + g_ui.m_stdScreenScale * 185)
#define CONTRACT_Y (STD_SCREEN_Y + g_ui.m_stdScreenScale * 50)

// trash can
#define TRASH_CAN_X (STD_SCREEN_X + 176)
#define TRASH_CAN_Y (211 + PLAYER_INFO_Y)
#define TRASH_CAN_WIDTH 193 - 165
#define TRASH_CAN_HEIGHT 239 - 217
#define TRASH_CAN_X (STD_SCREEN_X + g_ui.m_stdScreenScale * 176)
#define TRASH_CAN_Y (g_ui.m_stdScreenScale * 211 + PLAYER_INFO_Y)
#define TRASH_CAN_WIDTH (g_ui.m_stdScreenScale * (193 - 165))
#define TRASH_CAN_HEIGHT (g_ui.m_stdScreenScale * (239 - 217))

#endif
24 changes: 13 additions & 11 deletions src/game/Strategic/Map_Screen_Interface.cc
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
// number of LINKED LISTS for sets of leave items (each slot holds an unlimited # of items)
#define NUM_LEAVE_LIST_SLOTS 20

#define SELECTED_CHAR_ARROW_X (STD_SCREEN_X + 8)
#define SELECTED_CHAR_ARROW_X (STD_SCREEN_X + g_ui.m_stdScreenScale * 8)

#define SIZE_OF_UPDATE_BOX 20

Expand All @@ -93,7 +93,7 @@
#define DBL_CLICK_DELAY_FOR_MOVE_MENU 200


#define REASON_FOR_SOLDIER_UPDATE_OFFSET_Y (14)
#define REASON_FOR_SOLDIER_UPDATE_OFFSET_Y (g_ui.m_stdScreenScale * 14)

#define MAX_MAPSCREEN_FAST_HELP 100

Expand Down Expand Up @@ -609,7 +609,8 @@ void RestoreBackgroundForDestinationGlowRegionList( void )
if( iOldDestinationLine != giDestHighLine )
{
// restore background
RestoreExternBackgroundRect( DEST_ETA_X, Y_START - 1, DEST_ETA_WIDTH, ( INT16 )( ( ( MAX_CHARACTER_COUNT + 1 ) * ( Y_SIZE + 2 ) ) + 1 ) );
RestoreExternBackgroundRect(DEST_ETA_X, Y_START - 1,
DEST_ETA_WIDTH, INT16(((MAX_CHARACTER_COUNT + 1) * (Y_SIZE + 2)) + 1));

// ARM: not good enough! must reblit the whole panel to erase glow chunk restored by help text disappearing!!!
fTeamPanelDirty = TRUE;
Expand Down Expand Up @@ -937,9 +938,9 @@ void HandleDisplayOfSelectedMercArrows()
if (fShowInventoryFlag) return;

{ // Blit one by the selected merc
INT16 y = Y_START + bSelectedInfoChar * (Y_SIZE + 2) - 1;
if (bSelectedInfoChar >= FIRST_VEHICLE) y += 6;
BltVideoObject(guiSAVEBUFFER, guiSelectedCharArrow, 0,SELECTED_CHAR_ARROW_X, y);
INT16 y = Y_START + bSelectedInfoChar * (Y_SIZE + /*Y_OFFSET*/g_ui.m_stdScreenScale * 2) - 1;
if (bSelectedInfoChar >= FIRST_VEHICLE) y += g_ui.m_stdScreenScale * 6;
BltVideoObject(guiSAVEBUFFER, guiSelectedCharArrow, 0, SELECTED_CHAR_ARROW_X, y);
}

// now run through the selected list of guys, an arrow for each
Expand All @@ -952,8 +953,8 @@ void HandleDisplayOfSelectedMercArrows()
// Is he in the selected list or in the same mvt group as this guy?
if (!IsEntryInSelectedListSet(i) && (s->ubGroupID == 0 || s->ubGroupID != dest_group)) continue;

INT16 y = Y_START + i * (Y_SIZE + 2) - 1;
if (i >= FIRST_VEHICLE) y += 6;
INT16 y = Y_START + i * (Y_SIZE + /*Y_OFFSET*/g_ui.m_stdScreenScale * 2) - 1;
if (i >= FIRST_VEHICLE) y += g_ui.m_stdScreenScale * 6;
BltVideoObject(guiSAVEBUFFER, guiSelectedCharArrow, 0, SELECTED_CHAR_ARROW_X, y);
}
}
Expand Down Expand Up @@ -1236,10 +1237,11 @@ void HandleGroupAboutToArrive( void )

void CreateMapStatusBarsRegion( void )
{

// create the status region over the bSelectedCharacter info region, to get quick rundown of merc's status
MSYS_DefineRegion( &gMapStatusBarsRegion, BAR_INFO_X - 3, BAR_INFO_Y - 42,(INT16)( BAR_INFO_X + 17), (INT16)(BAR_INFO_Y ), MSYS_PRIORITY_HIGH + 5,
MSYS_NO_CURSOR, MSYS_NO_CALLBACK, MSYS_NO_CALLBACK );
MSYS_DefineRegion(&gMapStatusBarsRegion,
BAR_INFO_X - 3, BAR_INFO_Y - 42,
INT16(BAR_INFO_X + 17), INT16(BAR_INFO_Y),
MSYS_PRIORITY_HIGH + 5, MSYS_NO_CURSOR, MSYS_NO_CALLBACK, MSYS_NO_CALLBACK);
}


Expand Down
52 changes: 26 additions & 26 deletions src/game/Strategic/Map_Screen_Interface.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@


// char breath and life position
#define BAR_INFO_X (STD_SCREEN_X + 66)
#define BAR_INFO_Y (STD_SCREEN_Y + 61)
#define BAR_INFO_X (STD_SCREEN_X + g_ui.m_stdScreenScale * 66)
#define BAR_INFO_Y (STD_SCREEN_Y + g_ui.m_stdScreenScale * 61)

// merc icon position
#define CHAR_ICON_CONTRACT_Y (STD_SCREEN_Y + 64)
#define CHAR_ICON_X (STD_SCREEN_X + 187)
#define CHAR_ICON_WIDTH 10
#define CHAR_ICON_HEIGHT 10
#define CHAR_ICON_SPACING 13
#define CHAR_ICON_CONTRACT_Y (STD_SCREEN_Y + g_ui.m_stdScreenScale * 64)
#define CHAR_ICON_X (STD_SCREEN_X + g_ui.m_stdScreenScale * 187)
#define CHAR_ICON_WIDTH (g_ui.m_stdScreenScale * 10)
#define CHAR_ICON_HEIGHT (g_ui.m_stdScreenScale * 10)
#define CHAR_ICON_SPACING (g_ui.m_stdScreenScale * 13)

// max number of characters
//Character List Length
Expand All @@ -27,9 +27,9 @@
#define MAP_SCREEN_FONT BLOCKFONT2

// characterlist regions
#define Y_START (STD_SCREEN_Y + 146)
#define MAP_START_KEYRING_Y (STD_SCREEN_Y + 107)
#define Y_SIZE GetFontHeight(MAP_SCREEN_FONT)
#define Y_START (STD_SCREEN_Y + g_ui.m_stdScreenScale * 146)
#define MAP_START_KEYRING_Y (STD_SCREEN_Y + g_ui.m_stdScreenScale * 107)
#define Y_SIZE (GetFontHeight(MAP_SCREEN_FONT))


// attribute menu defines (must match NUM_TRAINABLE_STATS defines, and pAttributeMenuStrings )
Expand Down Expand Up @@ -141,25 +141,25 @@ enum UpdateBoxReason


// dimensions and offset for merc update box
#define UPDATE_MERC_FACE_X_WIDTH 50
#define UPDATE_MERC_FACE_X_HEIGHT 50
#define UPDATE_MERC_FACE_X_OFFSET 2
#define UPDATE_MERC_FACE_Y_OFFSET 2
#define WIDTH_OF_UPDATE_PANEL_BLOCKS 50
#define HEIGHT_OF_UPDATE_PANEL_BLOCKS 50
#define UPDATE_MERC_Y_OFFSET 4
#define UPDATE_MERC_X_OFFSET 4
#define UPDATE_MERC_FACE_X_WIDTH (g_ui.m_stdScreenScale * 50)
#define UPDATE_MERC_FACE_X_HEIGHT (g_ui.m_stdScreenScale * 50)
#define UPDATE_MERC_FACE_X_OFFSET (g_ui.m_stdScreenScale * 2)
#define UPDATE_MERC_FACE_Y_OFFSET (g_ui.m_stdScreenScale * 2)
#define WIDTH_OF_UPDATE_PANEL_BLOCKS (g_ui.m_stdScreenScale * 50)
#define HEIGHT_OF_UPDATE_PANEL_BLOCKS (g_ui.m_stdScreenScale * 50)
#define UPDATE_MERC_Y_OFFSET (g_ui.m_stdScreenScale * 4)
#define UPDATE_MERC_X_OFFSET (g_ui.m_stdScreenScale * 4)


// dimensions and offset for merc update box
#define TACT_UPDATE_MERC_FACE_X_WIDTH 70
#define TACT_UPDATE_MERC_FACE_X_HEIGHT 49
#define TACT_UPDATE_MERC_FACE_X_OFFSET 8
#define TACT_UPDATE_MERC_FACE_Y_OFFSET 6
#define TACT_WIDTH_OF_UPDATE_PANEL_BLOCKS 70
#define TACT_HEIGHT_OF_UPDATE_PANEL_BLOCKS 49
#define TACT_UPDATE_MERC_Y_OFFSET 4
#define TACT_UPDATE_MERC_X_OFFSET 4
#define TACT_UPDATE_MERC_FACE_X_WIDTH (g_ui.m_stdScreenScale * 70)
#define TACT_UPDATE_MERC_FACE_X_HEIGHT (g_ui.m_stdScreenScale * 49)
#define TACT_UPDATE_MERC_FACE_X_OFFSET (g_ui.m_stdScreenScale * 8)
#define TACT_UPDATE_MERC_FACE_Y_OFFSET (g_ui.m_stdScreenScale * 6)
#define TACT_WIDTH_OF_UPDATE_PANEL_BLOCKS (g_ui.m_stdScreenScale * 70)
#define TACT_HEIGHT_OF_UPDATE_PANEL_BLOCKS (g_ui.m_stdScreenScale * 49)
#define TACT_UPDATE_MERC_Y_OFFSET (g_ui.m_stdScreenScale * 4)
#define TACT_UPDATE_MERC_X_OFFSET (g_ui.m_stdScreenScale * 4)


// the first vehicle slot int he list
Expand Down
2 changes: 1 addition & 1 deletion src/game/Strategic/Map_Screen_Interface_Border.cc
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ static void MakeButton(UINT idx, UINT gfx, INT16 x, GUI_CALLBACK click, const wc
{
BUTTON_PICS* const img = LoadButtonImage(INTERFACEDIR "/map_border_buttons.sti", gfx, gfx + 9);
giMapBorderButtonsImage[idx] = img;
GUIButtonRef const btn = QuickCreateButtonNoMove(img, x, (STD_SCREEN_Y + 323), MSYS_PRIORITY_HIGH, click);
GUIButtonRef const btn = QuickCreateButtonNoMove(img, x, (STD_SCREEN_Y + g_ui.m_stdScreenScale * 323), MSYS_PRIORITY_HIGH, click);
giMapBorderButtons[idx] = btn;
btn->SetFastHelpText(help);
btn->SetCursor(MSYS_NO_CURSOR);
Expand Down
4 changes: 2 additions & 2 deletions src/game/Strategic/Map_Screen_Interface_Border.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
#include "Types.h"


#define MAP_BORDER_START_X 261
#define MAP_BORDER_START_Y 0
#define MAP_BORDER_START_X (g_ui.m_stdScreenScale * 261)
#define MAP_BORDER_START_Y (g_ui.m_stdScreenScale * 0)



Expand Down

0 comments on commit df4f305

Please sign in to comment.