Hi, Here's patches for adding static casts to ja2-stracciatella. Builds but I haven't tested it further as I don't have data files on my laptop.
Timo Index: patches/patch-Build_Editor_EditorItems_cc =================================================================== RCS file: patches/patch-Build_Editor_EditorItems_cc diff -N patches/patch-Build_Editor_EditorItems_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Build_Editor_EditorItems_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,23 @@ +$OpenBSD$ + +Index: Build/Editor/EditorItems.cc +--- Build/Editor/EditorItems.cc.orig ++++ Build/Editor/EditorItems.cc +@@ -292,7 +292,7 @@ void InitEditorItemsInfo(ToolbarMode const uiItemType) + //copy a blank chunk of the editor interface to the new buffer. + for (i = 0; i < w; i += 60) + { +- SGPBox const r = { 100, EDITOR_TASKBAR_POS_Y, 60, 80 }; ++ SGPBox const r = { 100, static_cast<INT16>(EDITOR_TASKBAR_POS_Y), 60, 80 }; + BltVideoSurface(eInfo.uiBuffer, FRAME_BUFFER, i, 0, &r); + } + +@@ -511,7 +511,7 @@ void RenderEditorItemsInfo() + + INT16 const scroll_idx = eInfo.sScrollIndex; + +- SGPBox const r = { 60 * scroll_idx, 0, 360, 80 }; ++ SGPBox const r = { static_cast<INT16>(60 * scroll_idx), 0, 360, 80 }; + BltVideoSurface(FRAME_BUFFER, eInfo.uiBuffer, 110, EDITOR_TASKBAR_POS_Y, &r); + + /* Calculate the min and max index that is currently shown. This determines Index: patches/patch-Build_Editor_EditorMercs_cc =================================================================== RCS file: patches/patch-Build_Editor_EditorMercs_cc diff -N patches/patch-Build_Editor_EditorMercs_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Build_Editor_EditorMercs_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,35 @@ +$OpenBSD$ + +Index: Build/Editor/EditorMercs.cc +--- Build/Editor/EditorMercs.cc.orig ++++ Build/Editor/EditorMercs.cc +@@ -2174,10 +2174,10 @@ static void AddNewItemToSelectedMercsInventory(BOOLEAN + INT32 const iSrcHeight = pObject.usHeight; + SGPBox const src_rect = + { +- SrcRect.iLeft + pObject.sOffsetX, +- SrcRect.iTop + pObject.sOffsetY, +- iSrcWidth, +- iSrcHeight ++ static_cast<INT16>(SrcRect.iLeft + pObject.sOffsetX), ++ static_cast<INT16>(SrcRect.iTop + pObject.sOffsetY), ++ static_cast<INT16>(iSrcWidth), ++ static_cast<INT16>(iSrcHeight) + }; + + //if the source image width is less than 30 (small slot), then modify the DstRect. +@@ -2219,10 +2219,10 @@ static void AddNewItemToSelectedMercsInventory(BOOLEAN + //use the new width and height values to calculate the new dest rect (center the item) + SGPBox const dst_rect = + { +- (DstRect.iRight - DstRect.iLeft - iDstWidth) / 2, +- (DstRect.iBottom - DstRect.iTop - iDstHeight) / 2, +- iDstWidth, +- iDstHeight ++ static_cast<INT16>((DstRect.iRight - DstRect.iLeft - iDstWidth) / 2), ++ static_cast<INT16>((DstRect.iBottom - DstRect.iTop - iDstHeight) / 2), ++ static_cast<INT16>(iDstWidth), ++ static_cast<INT16>(iDstHeight) + }; + + //scale the item down to the smaller buffer. Index: patches/patch-Build_HelpScreen_cc =================================================================== RCS file: patches/patch-Build_HelpScreen_cc diff -N patches/patch-Build_HelpScreen_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Build_HelpScreen_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,14 @@ +$OpenBSD$ + +Index: Build/HelpScreen.cc +--- Build/HelpScreen.cc.orig ++++ Build/HelpScreen.cc +@@ -1892,7 +1892,7 @@ static void RenderTextBufferToScreen(void) + SGPBox const SrcRect = + { + 0, +- gHelpScreen.iLineAtTopOfTextBuffer * HLP_SCRN__HEIGHT_OF_1_LINE_IN_BUFFER, ++ static_cast<INT16>(gHelpScreen.iLineAtTopOfTextBuffer * HLP_SCRN__HEIGHT_OF_1_LINE_IN_BUFFER), + HLP_SCRN__WIDTH_OF_TEXT_BUFFER, + HLP_SCRN__HEIGHT_OF_TEXT_AREA - 2 * 8 + }; Index: patches/patch-Build_Laptop_AIMMembers_cc =================================================================== RCS file: patches/patch-Build_Laptop_AIMMembers_cc diff -N patches/patch-Build_Laptop_AIMMembers_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Build_Laptop_AIMMembers_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,29 @@ +$OpenBSD$ + +Index: Build/Laptop/AIMMembers.cc +--- Build/Laptop/AIMMembers.cc.orig ++++ Build/Laptop/AIMMembers.cc +@@ -1700,10 +1700,10 @@ static BOOLEAN DisplayTalkingMercFaceForVideoPopUp(con + + SGPBox const DestRect = + { +- AIM_MEMBER_VIDEO_FACE_X, +- AIM_MEMBER_VIDEO_FACE_Y, +- AIM_MEMBER_VIDEO_FACE_WIDTH, +- AIM_MEMBER_VIDEO_FACE_HEIGHT ++ static_cast<INT16>(AIM_MEMBER_VIDEO_FACE_X), ++ static_cast<INT16>(AIM_MEMBER_VIDEO_FACE_Y), ++ static_cast<INT16>(AIM_MEMBER_VIDEO_FACE_WIDTH), ++ static_cast<INT16>(AIM_MEMBER_VIDEO_FACE_HEIGHT) + }; + + //Blt the face surface to the video background surface +@@ -2777,7 +2777,7 @@ static BOOLEAN DisplayMovingTitleBar(BOOLEAN fForward) + UINT16 const usPosRightX = STD_SCREEN_X + Interpolate(405, 490, ubCount); + UINT16 const usPosY = Interpolate(AIM_MEMBER_VIDEO_TITLE_START_Y, STD_SCREEN_Y + 96, ubCount); + SGPBox const SrcRect = { 0, 0, AIM_MEMBER_VIDEO_TITLE_BAR_WIDTH, AIM_MEMBER_VIDEO_TITLE_BAR_HEIGHT }; +- SGPBox const DestRect = { usPosX, usPosY, usPosRightX - usPosX, AIM_MEMBER_VIDEO_TITLE_BAR_HEIGHT }; ++ SGPBox const DestRect = { static_cast<INT16>(usPosX), static_cast<INT16>(usPosY), static_cast<INT16>(usPosRightX - usPosX), AIM_MEMBER_VIDEO_TITLE_BAR_HEIGHT }; + + if (fForward) + { Index: patches/patch-Build_Laptop_BobbyR_cc =================================================================== RCS file: patches/patch-Build_Laptop_BobbyR_cc diff -N patches/patch-Build_Laptop_BobbyR_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Build_Laptop_BobbyR_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,39 @@ +$OpenBSD$ + +Index: Build/Laptop/BobbyR.cc +--- Build/Laptop/BobbyR.cc.orig ++++ Build/Laptop/BobbyR.cc +@@ -171,11 +171,28 @@ void EnterBobbyR() + UINT8 i; + + // an array of mouse regions for the bobbies signs. Top Left corner, bottom right corner +- UINT16 usMouseRegionPosArray[] = {BOBBIES_USED_SIGN_X, BOBBIES_USED_SIGN_Y, BOBBIES_USED_SIGN_X+BOBBIES_USED_SIGN_WIDTH, BOBBIES_USED_SIGN_Y+BOBBIES_USED_SIGN_HEIGHT, +- BOBBIES_MISC_SIGN_X, BOBBIES_MISC_SIGN_Y, BOBBIES_MISC_SIGN_X+BOBBIES_MISC_SIGN_WIDTH, BOBBIES_MISC_SIGN_Y+BOBBIES_MISC_SIGN_HEIGHT, +- BOBBIES_GUNS_SIGN_X, BOBBIES_GUNS_SIGN_Y, BOBBIES_GUNS_SIGN_X+BOBBIES_GUNS_SIGN_WIDTH, BOBBIES_GUNS_SIGN_Y+BOBBIES_GUNS_SIGN_HEIGHT, +- BOBBIES_AMMO_SIGN_X, BOBBIES_AMMO_SIGN_Y, BOBBIES_AMMO_SIGN_X+BOBBIES_AMMO_SIGN_WIDTH, BOBBIES_AMMO_SIGN_Y+BOBBIES_AMMO_SIGN_HEIGHT, +- BOBBIES_ARMOUR_SIGN_X, BOBBIES_ARMOUR_SIGN_Y, BOBBIES_ARMOUR_SIGN_X+BOBBIES_ARMOUR_SIGN_WIDTH, BOBBIES_ARMOUR_SIGN_Y+BOBBIES_ARMOUR_SIGN_HEIGHT}; ++ UINT16 usMouseRegionPosArray[] = { ++ static_cast<UINT16>(BOBBIES_USED_SIGN_X), ++ static_cast<UINT16>(BOBBIES_USED_SIGN_Y), ++ static_cast<UINT16>(BOBBIES_USED_SIGN_X + BOBBIES_USED_SIGN_WIDTH), ++ static_cast<UINT16>(BOBBIES_USED_SIGN_Y + BOBBIES_USED_SIGN_HEIGHT), ++ static_cast<UINT16>(BOBBIES_MISC_SIGN_X), ++ static_cast<UINT16>(BOBBIES_MISC_SIGN_Y), ++ static_cast<UINT16>(BOBBIES_MISC_SIGN_X + BOBBIES_MISC_SIGN_WIDTH), ++ static_cast<UINT16>(BOBBIES_MISC_SIGN_Y + BOBBIES_MISC_SIGN_HEIGHT), ++ static_cast<UINT16>(BOBBIES_GUNS_SIGN_X), ++ static_cast<UINT16>(BOBBIES_GUNS_SIGN_Y), ++ static_cast<UINT16>(BOBBIES_GUNS_SIGN_X + BOBBIES_GUNS_SIGN_WIDTH), ++ static_cast<UINT16>(BOBBIES_GUNS_SIGN_Y + BOBBIES_GUNS_SIGN_HEIGHT), ++ static_cast<UINT16>(BOBBIES_AMMO_SIGN_X), ++ static_cast<UINT16>(BOBBIES_AMMO_SIGN_Y), ++ static_cast<UINT16>(BOBBIES_AMMO_SIGN_X + BOBBIES_AMMO_SIGN_WIDTH), ++ static_cast<UINT16>(BOBBIES_AMMO_SIGN_Y + BOBBIES_AMMO_SIGN_HEIGHT), ++ static_cast<UINT16>(BOBBIES_ARMOUR_SIGN_X), ++ static_cast<UINT16>(BOBBIES_ARMOUR_SIGN_Y), ++ static_cast<UINT16>(BOBBIES_ARMOUR_SIGN_X + BOBBIES_ARMOUR_SIGN_WIDTH), ++ static_cast<UINT16>(BOBBIES_ARMOUR_SIGN_Y + BOBBIES_ARMOUR_SIGN_HEIGHT) ++ }; + + InitBobbyRWoodBackground(); + Index: patches/patch-Build_Laptop_Laptop_cc =================================================================== RCS file: patches/patch-Build_Laptop_Laptop_cc diff -N patches/patch-Build_Laptop_Laptop_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Build_Laptop_Laptop_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,47 @@ +$OpenBSD$ + +Index: Build/Laptop/Laptop.cc +--- Build/Laptop/Laptop.cc.orig ++++ Build/Laptop/Laptop.cc +@@ -1072,7 +1072,12 @@ ScreenID LaptopScreenHandle() + const INT32 iX = 472 - (472 - 320) * iScalePercentage / 5333; + const INT32 iY = 424 - (424 - 240) * iScalePercentage / 5333; + +- SGPBox const SrcRect2 = { STD_SCREEN_X + iX - iWidth / 2, STD_SCREEN_Y + iY - iHeight / 2, iWidth, iHeight }; ++ SGPBox const SrcRect2 = { ++ static_cast<INT16>(STD_SCREEN_X + iX - iWidth / 2), ++ static_cast<INT16>(STD_SCREEN_Y + iY - iHeight / 2), ++ static_cast<INT16>(iWidth), ++ static_cast<INT16>(iHeight) ++ }; + + BltStretchVideoSurface(FRAME_BUFFER, guiSAVEBUFFER, &DstRect, &SrcRect2); + InvalidateScreen(); +@@ -1456,7 +1461,12 @@ static void LeaveLapTopScreen(void) + const INT32 iX = 472 - (472 - 320) * iScalePercentage / 5333; + const INT32 iY = 424 - (424 - 240) * iScalePercentage / 5333; + +- SGPBox const SrcRect2 = { STD_SCREEN_X + iX - iWidth / 2, STD_SCREEN_Y + iY - iHeight / 2, iWidth, iHeight }; ++ SGPBox const SrcRect2 = { ++ static_cast<INT16>(STD_SCREEN_X + iX - iWidth / 2), ++ static_cast<INT16>(STD_SCREEN_Y + iY - iHeight / 2), ++ static_cast<INT16>(iWidth), ++ static_cast<INT16>(iHeight) ++ }; + + BltStretchVideoSurface(FRAME_BUFFER, guiSAVEBUFFER, &DstRect, &SrcRect2); + InvalidateScreen(); +@@ -2186,7 +2196,12 @@ void LapTopScreenCallBack(MOUSE_REGION* pRegion, INT32 + + void DoLapTopMessageBox(MessageBoxStyleID const ubStyle, wchar_t const* const zString, ScreenID const uiExitScreen, MessageBoxFlags const ubFlags, MSGBOX_CALLBACK const ReturnCallback) + { +- SGPBox const centering_rect = { LAPTOP_SCREEN_UL_X, LAPTOP_SCREEN_UL_Y, LAPTOP_SCREEN_WIDTH, LAPTOP_SCREEN_HEIGHT }; ++ SGPBox const centering_rect = { ++ static_cast<INT16>(LAPTOP_SCREEN_UL_X), ++ static_cast<INT16>(LAPTOP_SCREEN_UL_Y), ++ static_cast<INT16>(LAPTOP_SCREEN_WIDTH), ++ static_cast<INT16>(LAPTOP_SCREEN_HEIGHT) ++ }; + DoLapTopSystemMessageBoxWithRect(ubStyle, zString, uiExitScreen, ubFlags, ReturnCallback, ¢ering_rect); + } + Index: patches/patch-Build_Laptop_Mercs_cc =================================================================== RCS file: patches/patch-Build_Laptop_Mercs_cc diff -N patches/patch-Build_Laptop_Mercs_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Build_Laptop_Mercs_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,19 @@ +$OpenBSD$ + +Index: Build/Laptop/Mercs.cc +--- Build/Laptop/Mercs.cc.orig ++++ Build/Laptop/Mercs.cc +@@ -769,7 +769,12 @@ static BOOLEAN HandleSpeckTalking(BOOLEAN fReset) + + //Blt the face surface to the video background surface + SGPBox const SrcRect = { 0, 0, 48, 43 }; +- SGPBox const DestRect = { MERC_VIDEO_FACE_X, MERC_VIDEO_FACE_Y, MERC_VIDEO_FACE_WIDTH, MERC_VIDEO_FACE_HEIGHT }; ++ SGPBox const DestRect = { ++ static_cast<INT16>(MERC_VIDEO_FACE_X), ++ static_cast<INT16>(MERC_VIDEO_FACE_Y), ++ static_cast<INT16>(MERC_VIDEO_FACE_WIDTH), ++ static_cast<INT16>(MERC_VIDEO_FACE_HEIGHT) ++ }; + BltStretchVideoSurface(FRAME_BUFFER, guiMercVideoFaceBackground, &SrcRect, &DestRect); + + //HandleCurrentMercDistortion(); Index: patches/patch-Build_MessageBoxScreen_cc =================================================================== RCS file: patches/patch-Build_MessageBoxScreen_cc diff -N patches/patch-Build_MessageBoxScreen_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Build_MessageBoxScreen_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,42 @@ +$OpenBSD$ + +Index: Build/MessageBoxScreen.cc +--- Build/MessageBoxScreen.cc.orig ++++ Build/MessageBoxScreen.cc +@@ -165,7 +165,12 @@ void DoMessageBox(MessageBoxStyleID const ubStyle, wch + gMsgBox.uiSaveBuffer = AddVideoSurface(usTextBoxWidth, usTextBoxHeight, PIXEL_DEPTH); + + //Save what we have under here... +- SGPBox const r = { gMsgBox.sX, gMsgBox.sY, usTextBoxWidth, usTextBoxHeight }; ++ SGPBox const r = { ++ static_cast<INT16>(gMsgBox.sX), ++ static_cast<INT16>(gMsgBox.sY), ++ static_cast<INT16>(usTextBoxWidth), ++ static_cast<INT16>(usTextBoxHeight) ++ }; + BltVideoSurface(gMsgBox.uiSaveBuffer, FRAME_BUFFER, 0, 0, &r); + + UINT16 const cursor = style.cursor; +@@ -210,7 +215,7 @@ void DoMessageBox(MessageBoxStyleID const ubStyle, wch + + for (UINT i = 0; i < 4; ++i) + { +- wchar_t text[] = { '1' + i, '\0' }; ++ wchar_t text[] = { static_cast<wchar_t>('1' + i), '\0' }; + GUIButtonRef const btn = MakeButton(text, font_colour, shadow_colour, x + dx * i, y, NumberedMsgBoxCallback, cursor); + gMsgBox.uiButton[i] = btn; + btn->SetUserData(i + 1); +@@ -597,7 +602,12 @@ void DoScreenIndependantMessageBox(wchar_t const* cons + // a basic box that don't care what screen we came from + void DoLowerScreenIndependantMessageBox(wchar_t const* const zString, MessageBoxFlags const usFlags, MSGBOX_CALLBACK const ReturnCallback) + { +- SGPBox const centering_rect = {0, INV_INTERFACE_START_Y / 2, SCREEN_WIDTH, INV_INTERFACE_START_Y / 2 }; ++ SGPBox const centering_rect = { ++ 0, ++ static_cast<INT16>(INV_INTERFACE_START_Y / 2), ++ static_cast<INT16>(SCREEN_WIDTH), ++ static_cast<INT16>(INV_INTERFACE_START_Y / 2) ++ }; + DoScreenIndependantMessageBoxWithRect(zString, usFlags, ReturnCallback, ¢ering_rect); + } + Index: patches/patch-Build_Strategic_Auto_Resolve_cc =================================================================== RCS file: patches/patch-Build_Strategic_Auto_Resolve_cc diff -N patches/patch-Build_Strategic_Auto_Resolve_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Build_Strategic_Auto_Resolve_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,34 @@ +$OpenBSD$ + +Index: Build/Strategic/Auto_Resolve.cc +--- Build/Strategic/Auto_Resolve.cc.orig ++++ Build/Strategic/Auto_Resolve.cc +@@ -438,10 +438,10 @@ static void DoTransitionFromPreBattleInterfaceToAutoRe + + SGPBox const DstRect = + { +- iLeft - w * iPercentage / 200, +- iTop - h * iPercentage / 200, +- MAX(1, w * iPercentage / 100), +- MAX(1, h * iPercentage / 100) ++ static_cast<INT16>(iLeft - w * iPercentage / 200), ++ static_cast<INT16>(iTop - h * iPercentage / 200), ++ static_cast<INT16>(MAX(1, w * iPercentage / 100)), ++ static_cast<INT16>(MAX(1, h * iPercentage / 100)) + }; + + BltStretchVideoSurface(FRAME_BUFFER, guiSAVEBUFFER, &gpAR->rect, &DstRect); +@@ -2696,7 +2696,12 @@ static void RenderSoldierCellHealth(SOLDIERCELL* pCell + //Restore the background before drawing text. + xp = pCell->xp + 2; + yp = pCell->yp + 32; +- SGPBox const r = { xp - gpAR->rect.x, yp - gpAR->rect.y, 46, 10 }; ++ SGPBox const r = { ++ static_cast<INT16>(xp - gpAR->rect.x), ++ static_cast<INT16>(yp - gpAR->rect.y), ++ 46, ++ 10 ++ }; + BltVideoSurface(FRAME_BUFFER, gpAR->iInterfaceBuffer, xp, yp, &r); + + if( pCell->pSoldier->bLife ) Index: patches/patch-Build_Strategic_MapScreen_cc =================================================================== RCS file: patches/patch-Build_Strategic_MapScreen_cc diff -N patches/patch-Build_Strategic_MapScreen_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Build_Strategic_MapScreen_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,17 @@ +$OpenBSD$ + +Index: Build/Strategic/MapScreen.cc +--- Build/Strategic/MapScreen.cc.orig ++++ Build/Strategic/MapScreen.cc +@@ -3959,7 +3959,10 @@ void CreateDestroyMapInvButton() + // disable allmouse regions in this space + fTeamPanelDirty=TRUE; + +- INV_REGION_DESC gSCamoXY = {INV_BODY_X, INV_BODY_Y}; ++ INV_REGION_DESC gSCamoXY = { ++ static_cast<INT16>(INV_BODY_X), ++ static_cast<INT16>(INV_BODY_Y) ++ }; + + InitInvSlotInterface(g_ui.m_invSlotPositionMap, &gSCamoXY, MAPInvMoveCallback, MAPInvClickCallback, MAPInvMoveCamoCallback, MAPInvClickCamoCallback); + gMPanelRegion.Enable(); Index: patches/patch-Build_Strategic_Map_Screen_Interface_Map_cc =================================================================== RCS file: patches/patch-Build_Strategic_Map_Screen_Interface_Map_cc diff -N patches/patch-Build_Strategic_Map_Screen_Interface_Map_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Build_Strategic_Map_Screen_Interface_Map_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,65 @@ +$OpenBSD$ + +Index: Build/Strategic/Map_Screen_Interface_Map.cc +--- Build/Strategic/Map_Screen_Interface_Map.cc.orig ++++ Build/Strategic/Map_Screen_Interface_Map.cc +@@ -375,18 +375,18 @@ static SGPVObject* guiMapBorderHeliSectors; + static INT16 const sBaseSectorList[] = + { + // NOTE: These co-ordinates must match the top left corner of the 3x3 town tiles cutouts in interface/militiamaps.sti! +- SECTOR( 9, 1 ), // Omerta +- SECTOR( 13, 2 ), // Drassen +- SECTOR( 13, 8 ), // Alma +- SECTOR( 1, 7 ), // Grumm +- SECTOR( 8, 9 ), // Tixa +- SECTOR( 8, 6 ), // Cambria +- SECTOR( 4, 2 ), // San Mona +- SECTOR( 5, 8 ), // Estoni +- SECTOR( 3,10 ), // Orta +- SECTOR( 11,11 ), // Balime +- SECTOR( 3,14 ), // Meduna +- SECTOR( 2, 1 ), // Chitzena ++ static_cast<INT16>(SECTOR( 9, 1 )), // Omerta ++ static_cast<INT16>(SECTOR( 13, 2 )), // Drassen ++ static_cast<INT16>(SECTOR( 13, 8 )), // Alma ++ static_cast<INT16>(SECTOR( 1, 7 )), // Grumm ++ static_cast<INT16>(SECTOR( 8, 9 )), // Tixa ++ static_cast<INT16>(SECTOR( 8, 6 )), // Cambria ++ static_cast<INT16>(SECTOR( 4, 2 )), // San Mona ++ static_cast<INT16>(SECTOR( 5, 8 )), // Estoni ++ static_cast<INT16>(SECTOR( 3,10 )), // Orta ++ static_cast<INT16>(SECTOR( 11,11 )), // Balime ++ static_cast<INT16>(SECTOR( 3,14 )), // Meduna ++ static_cast<INT16>(SECTOR( 2, 1 )), // Chitzena + }; + + // position of town names on the map +@@ -980,10 +980,10 @@ static void ShadeMapElem(const INT16 sMapX, const INT1 + + SGPBox const clip = + { +- 2 * (sScreenX - (MAP_VIEW_START_X + 1)), +- 2 * (sScreenY - MAP_VIEW_START_Y ), +- 2 * MAP_GRID_X, +- 2 * MAP_GRID_Y ++ static_cast<INT16>(2 * (sScreenX - (MAP_VIEW_START_X + 1))), ++ static_cast<INT16>(2 * (sScreenY - MAP_VIEW_START_Y )), ++ static_cast<INT16>(2 * MAP_GRID_X), ++ static_cast<INT16>(2 * MAP_GRID_Y) + }; + + // non-airspace +@@ -1093,7 +1093,12 @@ static void ShadeMapElemZoomIn(const INT16 sMapX, cons + default: return; + } + +- SGPBox const r = { clip.iLeft, clip.iTop, clip.iRight - clip.iLeft, clip.iBottom - clip.iTop }; ++ SGPBox const r = { ++ static_cast<INT16>(clip.iLeft), ++ static_cast<INT16>(clip.iTop), ++ static_cast<INT16>(clip.iRight - clip.iLeft), ++ static_cast<INT16>(clip.iBottom - clip.iTop) ++ }; + SGPVSurface* const map = guiBIGMAP; + UINT16* const org_pal = map->p16BPPPalette; + map->p16BPPPalette = pal; Index: patches/patch-Build_Strategic_PreBattle_Interface_cc =================================================================== RCS file: patches/patch-Build_Strategic_PreBattle_Interface_cc diff -N patches/patch-Build_Strategic_PreBattle_Interface_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Build_Strategic_PreBattle_Interface_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,34 @@ +$OpenBSD$ + +Index: Build/Strategic/PreBattle_Interface.cc +--- Build/Strategic/PreBattle_Interface.cc.orig ++++ Build/Strategic/PreBattle_Interface.cc +@@ -686,7 +686,12 @@ static void DoTransitionFromMapscreenToPreBattleInterf + InvalidateScreen(); + RefreshScreen(); + +- SGPBox const PBIRect = { STD_SCREEN_X + 0, STD_SCREEN_Y + 0, 261, 359 }; ++ SGPBox const PBIRect = { ++ static_cast<INT16>(STD_SCREEN_X + 0), ++ static_cast<INT16>(STD_SCREEN_Y + 0), ++ 261, ++ 359 ++ }; + while( iPercentage < 100 ) + { + uiCurrTime = GetClock(); +@@ -709,10 +714,10 @@ static void DoTransitionFromMapscreenToPreBattleInterf + + SGPBox const DstRect = + { +- iLeft - iWidth * iPercentage / 200, +- iTop - iHeight * iPercentage / 200, +- MAX(1, iWidth * iPercentage / 100), +- MAX(1, iHeight * iPercentage / 100) ++ static_cast<INT16>(iLeft - iWidth * iPercentage / 200), ++ static_cast<INT16>(iTop - iHeight * iPercentage / 200), ++ static_cast<INT16>(MAX(1, iWidth * iPercentage / 100)), ++ static_cast<INT16>(MAX(1, iHeight * iPercentage / 100)) + }; + + BltStretchVideoSurface(FRAME_BUFFER, guiSAVEBUFFER, &PBIRect, &DstRect); Index: patches/patch-Build_Strategic_StrategicMap_cc =================================================================== RCS file: patches/patch-Build_Strategic_StrategicMap_cc diff -N patches/patch-Build_Strategic_StrategicMap_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Build_Strategic_StrategicMap_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,20 @@ +$OpenBSD$ + +Index: Build/Strategic/StrategicMap.cc +--- Build/Strategic/StrategicMap.cc.orig ++++ Build/Strategic/StrategicMap.cc +@@ -340,10 +340,10 @@ void BeginLoadScreen( ) + + SGPBox const SrcRect = + { +- 536 * iPercentage / 100, +- 367 * iPercentage / 100, +- SCREEN_WIDTH - 541 * iPercentage / 100, +- SCREEN_HEIGHT - 406 * iPercentage / 100 ++ static_cast<INT16>(536 * iPercentage / 100), ++ static_cast<INT16>(367 * iPercentage / 100), ++ static_cast<INT16>(SCREEN_WIDTH - 541 * iPercentage / 100), ++ static_cast<INT16>(SCREEN_HEIGHT - 406 * iPercentage / 100) + }; + BltStretchVideoSurface(FRAME_BUFFER, guiSAVEBUFFER, &SrcRect, &DstRect); + InvalidateScreen(); Index: patches/patch-Build_Tactical_Dialogue_Control_cc =================================================================== RCS file: patches/patch-Build_Tactical_Dialogue_Control_cc diff -N patches/patch-Build_Tactical_Dialogue_Control_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Build_Tactical_Dialogue_Control_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,19 @@ +$OpenBSD$ + +Index: Build/Tactical/Dialogue_Control.cc +--- Build/Tactical/Dialogue_Control.cc.orig ++++ Build/Tactical/Dialogue_Control.cc +@@ -1269,7 +1269,12 @@ static void RenderFaceOverlay(VIDEO_OVERLAY* const blt + MPrint(sFontX, sFontY, name); + } + +- SGPBox const r = { 0, 0, f.usFaceWidth, f.usFaceHeight }; ++ SGPBox const r = { ++ 0, ++ 0, ++ static_cast<INT16>(f.usFaceWidth), ++ static_cast<INT16>(f.usFaceHeight) ++ }; + BltVideoSurface(dst, f.uiAutoDisplayBuffer, x + 14, y + 6, &r); + + InvalidateRegion(x, y, x + 99, y + 98); Index: patches/patch-Build_Tactical_ShopKeeper_Interface_cc =================================================================== RCS file: patches/patch-Build_Tactical_ShopKeeper_Interface_cc diff -N patches/patch-Build_Tactical_ShopKeeper_Interface_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Build_Tactical_ShopKeeper_Interface_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,20 @@ +$OpenBSD$ + +Index: Build/Tactical/ShopKeeper_Interface.cc +--- Build/Tactical/ShopKeeper_Interface.cc.orig ++++ Build/Tactical/ShopKeeper_Interface.cc +@@ -1022,10 +1022,10 @@ static void RenderShopKeeperInterface(void) + // BlitBufferToBuffer(FRAME_BUFFER, guiCornerWhereTacticalIsStillSeenImage, SKI_TACTICAL_BACKGROUND_START_X, SKI_TACTICAL_BACKGROUND_START_Y, SKI_TACTICAL_BACKGROUND_START_WIDTH, SKI_TACTICAL_BACKGROUND_START_HEIGHT); + SGPBox const SrcRect = + { +- SKI_TACTICAL_BACKGROUND_START_X, +- SKI_TACTICAL_BACKGROUND_START_Y, +- SKI_TACTICAL_BACKGROUND_START_WIDTH, +- SKI_TACTICAL_BACKGROUND_START_HEIGHT ++ static_cast<INT16>(SKI_TACTICAL_BACKGROUND_START_X), ++ static_cast<INT16>(SKI_TACTICAL_BACKGROUND_START_Y), ++ static_cast<INT16>(SKI_TACTICAL_BACKGROUND_START_WIDTH), ++ static_cast<INT16>(SKI_TACTICAL_BACKGROUND_START_HEIGHT) + }; + BltVideoSurface(guiCornerWhereTacticalIsStillSeenImage, guiSAVEBUFFER, 0, 0, &SrcRect); + Index: patches/patch-Build_TileEngine_Render_Dirty_cc =================================================================== RCS file: patches/patch-Build_TileEngine_Render_Dirty_cc diff -N patches/patch-Build_TileEngine_Render_Dirty_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Build_TileEngine_Render_Dirty_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,19 @@ +$OpenBSD$ + +Index: Build/TileEngine/Render_Dirty.cc +--- Build/TileEngine/Render_Dirty.cc.orig ++++ Build/TileEngine/Render_Dirty.cc +@@ -651,7 +651,12 @@ void RestoreShiftedVideoOverlays(const INT16 sShiftX, + + void BlitBufferToBuffer(SGPVSurface* const src, SGPVSurface* const dst, const UINT16 usSrcX, const UINT16 usSrcY, const UINT16 usWidth, const UINT16 usHeight) + { +- SGPBox const r = { usSrcX, usSrcY, usWidth, usHeight }; ++ SGPBox const r = { ++ static_cast<INT16>(usSrcX), ++ static_cast<INT16>(usSrcY), ++ static_cast<INT16>(usWidth), ++ static_cast<INT16>(usHeight) ++ }; + BltVideoSurface(dst, src, usSrcX, usSrcY, &r); + } + Index: patches/patch-Build_TileEngine_Tactical_Placement_GUI_cc =================================================================== RCS file: patches/patch-Build_TileEngine_Tactical_Placement_GUI_cc diff -N patches/patch-Build_TileEngine_Tactical_Placement_GUI_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Build_TileEngine_Tactical_Placement_GUI_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,33 @@ +$OpenBSD$ + +Index: Build/TileEngine/Tactical_Placement_GUI.cc +--- Build/TileEngine/Tactical_Placement_GUI.cc.orig ++++ Build/TileEngine/Tactical_Placement_GUI.cc +@@ -944,7 +944,12 @@ void HandleTacticalPlacementClicksInOverheadMap(INT32 + + if( fInvalidArea ) + { //Report error due to invalid placement. +- SGPBox const CenterRect = { STD_SCREEN_X + 220, STD_SCREEN_Y + 120, 200, 80 }; ++ SGPBox const CenterRect = { ++ static_cast<INT16>(STD_SCREEN_X + 220), ++ static_cast<INT16>(STD_SCREEN_Y + 120), ++ 200, ++ 80 ++ }; + DoMessageBox(MSG_BOX_BASIC_STYLE, gpStrategicString[STR_TP_INACCESSIBLE_MESSAGE], guiCurrentScreen, MSG_BOX_FLAG_OK, DialogRemoved, &CenterRect); + } + else +@@ -958,7 +963,12 @@ void HandleTacticalPlacementClicksInOverheadMap(INT32 + { //not a valid cursor location... + if( gbCursorMercID != - 1 ) + { +- SGPBox const CenterRect = { STD_SCREEN_X + 220, STD_SCREEN_Y + 120, 200, 80 }; ++ SGPBox const CenterRect = { ++ static_cast<INT16>(STD_SCREEN_X + 220), ++ static_cast<INT16>(STD_SCREEN_Y + 120), ++ 200, ++ 80 ++ }; + DoMessageBox(MSG_BOX_BASIC_STYLE, gpStrategicString[STR_TP_INVALID_MESSAGE], guiCurrentScreen, MSG_BOX_FLAG_OK, DialogRemoved, &CenterRect); + } + } Index: patches/patch-Build_Utils_MercTextBox_cc =================================================================== RCS file: patches/patch-Build_Utils_MercTextBox_cc diff -N patches/patch-Build_Utils_MercTextBox_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Build_Utils_MercTextBox_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,19 @@ +$OpenBSD$ + +Index: Build/Utils/MercTextBox.cc +--- Build/Utils/MercTextBox.cc.orig ++++ Build/Utils/MercTextBox.cc +@@ -200,7 +200,12 @@ MercPopUpBox* PrepareMercPopupBox(MercPopUpBox* box, M + } + else + { +- SGPBox const DestRect = { 0, 0, usWidth, usHeight }; ++ SGPBox const DestRect = { ++ 0, ++ 0, ++ static_cast<INT16>(usWidth), ++ static_cast<INT16>(usHeight) ++ }; + BltVideoSurface(vs, box->uiMercTextPopUpBackground, 0, 0, &DestRect); + } + Index: patches/patch-Build_Utils_PopUpBox_cc =================================================================== RCS file: patches/patch-Build_Utils_PopUpBox_cc diff -N patches/patch-Build_Utils_PopUpBox_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Build_Utils_PopUpBox_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,19 @@ +$OpenBSD$ + +Index: Build/Utils/PopUpBox.cc +--- Build/Utils/PopUpBox.cc.orig ++++ Build/Utils/PopUpBox.cc +@@ -487,7 +487,12 @@ static void DrawBox(const PopUpBox* const box) + SGPVSurface* const dst = box->uiBuffer; + + // blit in texture first, then borders +- SGPBox const clip = { 0, 0, w, h }; ++ SGPBox const clip = { ++ 0, ++ 0, ++ static_cast<INT16>(w), ++ static_cast<INT16>(h) ++ }; + BltVideoSurface(dst, box->iBackGroundSurface, x, y, &clip); + + const SGPVObject* const border = box->iBorderObjectIndex; Index: patches/patch-sgp_VSurface_cc =================================================================== RCS file: patches/patch-sgp_VSurface_cc diff -N patches/patch-sgp_VSurface_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-sgp_VSurface_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,19 @@ +$OpenBSD$ + +Index: sgp/VSurface.cc +--- sgp/VSurface.cc.orig ++++ sgp/VSurface.cc +@@ -213,7 +213,12 @@ SGPVSurfaceAuto* AddVideoSurfaceFromFile(const char* c + { SGPVSurface::Lock l(vs); + UINT8* const dst = l.Buffer<UINT8>(); + UINT16 const pitch = l.Pitch() / (dst_bpp / 8); // pitch in pixels +- SGPBox const box = { 0, 0, img->usWidth, img->usHeight }; ++ SGPBox const box = { ++ 0, ++ 0, ++ static_cast<INT16>(img->usWidth), ++ static_cast<INT16>(img->usHeight) ++ }; + BOOLEAN const Ret = CopyImageToBuffer(img, buffer_bpp, dst, pitch, vs->Height(), 0, 0, &box); + if (!Ret) + { Index: patches/patch-sgp_Video_cc =================================================================== RCS file: patches/patch-sgp_Video_cc diff -N patches/patch-sgp_Video_cc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-sgp_Video_cc 9 Apr 2018 07:40:23 -0000 @@ -0,0 +1,18 @@ +$OpenBSD$ + +Index: sgp/Video.cc +--- sgp/Video.cc.orig ++++ sgp/Video.cc +@@ -481,9 +481,9 @@ static void WriteTGAHeader(FILE* const f) + 0, + 0, 0, + 0, 0, +- SCREEN_WIDTH % 256, SCREEN_WIDTH / 256, +- SCREEN_HEIGHT % 256, SCREEN_HEIGHT / 256, +- PIXEL_DEPTH, ++ static_cast<BYTE>(SCREEN_WIDTH % 256), static_cast<BYTE>(SCREEN_WIDTH / 256), ++ static_cast<BYTE>(SCREEN_HEIGHT % 256), static_cast<BYTE>(SCREEN_HEIGHT / 256), ++ static_cast<BYTE>(PIXEL_DEPTH), + 0 + }; + fwrite(data, sizeof(data), 1, f);