MERGED FEATURE FROM DEVELOPMENT TRUNK: Enlarging Strategy Map (Revision: 4527 - 4534)

- This feature enlarges the strategy map in 800x600 and 1024x768 (like in Wildfire 6.0)
- You also have to update the GameDir folder from the official SVN GameDir folder with the latest graphics

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@4551 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Wanne
2011-06-30 14:53:16 +00:00
parent 88e98b5023
commit f65f029305
5 changed files with 500 additions and 362 deletions
+33 -46
View File
@@ -139,9 +139,6 @@ void LevelMarkerBtnCallback(MOUSE_REGION * pRegion, INT32 iReason );
void CommonBtnCallbackBtnDownChecks( void );
void DrawTextOnMapBorder( void );
/*
void BtnScrollNorthMapScreenCallback( GUI_BUTTON *btn,INT32 reason );
void BtnScrollSouthMapScreenCallback( GUI_BUTTON *btn,INT32 reason );
@@ -151,31 +148,6 @@ void BtnLowerLevelBtnCallback(GUI_BUTTON *btn,INT32 reason);
void BtnRaiseLevelBtnCallback(GUI_BUTTON *btn,INT32 reason);
*/
void DrawTextOnMapBorder( void )
{
INT16 sX = 0, sY = 0;
CHAR16 sString[ 64 ];
// parse the string
swprintf( sString, zMarksMapScreenText[ 24 ] );
SetFontDestBuffer( guiSAVEBUFFER, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, FALSE );
//FindFontCenterCoordinates( MAP_INV_X_OFFSET + MAP_INVENTORY_POOL_SLOT_START_X, MAP_INVENTORY_POOL_SLOT_START_Y - 20, 630 - MAP_INVENTORY_POOL_SLOT_START_X, GetFontHeight( FONT14ARIAL ), sString, FONT14ARIAL, &sX, &sY );
FindFontCenterCoordinates( 271, 18, SCREEN_WIDTH - 271, GetFontHeight( FONT14ARIAL ), sString, FONT14ARIAL, &sX, &sY );
SetFont( FONT14ARIAL );
SetFontForeground( FONT_WHITE );
SetFontBackground( FONT_BLACK );
mprintf( sX, sY, sString );
SetFontDestBuffer( FRAME_BUFFER, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, FALSE );
}
BOOLEAN LoadMapBorderGraphics( void )
{
// this procedure will load the graphics needed for the map border
@@ -256,11 +228,6 @@ void RenderMapBorder( void )
BltVideoObject( guiSAVEBUFFER , hHandle, 0, MAP_BORDER_X, MAP_BORDER_Y, VO_BLT_SRCTRANSPARENCY,NULL );
}
if (iResolution == 1 || iResolution == 2)
{
DrawTextOnMapBorder();
}
RestoreExternBackgroundRect( MAP_BORDER_X, MAP_BORDER_Y, SCREEN_WIDTH - MAP_BORDER_X, SCREEN_HEIGHT );
// show the level marker
@@ -325,13 +292,31 @@ void RenderMapBorderEtaPopUp( void )
// get and blt ETA box
GetVideoObject(&hHandle, guiMapBorderEtaPopUp );
/*BltVideoObject( FRAME_BUFFER , hHandle, 0, MAP_BORDER_X + 215, 291, VO_BLT_SRCTRANSPARENCY,NULL );
UINT16 offsetX = 0;
UINT16 offsetY = 0;
UINT16 offsetBorderY = 0;
InvalidateRegion( MAP_BORDER_X + 215, 291, MAP_BORDER_X + 215 + 100 , 310);*/
if (iResolution == 0)
{
offsetX = 215;
offsetY = 291;
offsetBorderY = offsetY + 19;
}
else if (iResolution == 1)
{
offsetX = 215 + 80;
offsetY = 291 + 120;
offsetBorderY = offsetY + 19;
}
else if (iResolution == 2)
{
offsetX = 215 + 180;
offsetY = 291 + 285;
offsetBorderY = offsetY + 19;
}
BltVideoObject( FRAME_BUFFER , hHandle, 0, MAP_BORDER_X + MAP_BORDER_X_OFFSET + 215, MAP_BORDER_Y_OFFSET + 291, VO_BLT_SRCTRANSPARENCY,NULL );
InvalidateRegion( MAP_BORDER_X + MAP_BORDER_X_OFFSET + 215, MAP_BORDER_Y_OFFSET + 291, MAP_BORDER_X + MAP_BORDER_X_OFFSET + 215 + 100 , MAP_BORDER_Y_OFFSET + 310);
BltVideoObject( FRAME_BUFFER , hHandle, 0, MAP_BORDER_X + MAP_BORDER_X_OFFSET + offsetX, MAP_BORDER_Y_OFFSET + offsetY, VO_BLT_SRCTRANSPARENCY,NULL );
InvalidateRegion( MAP_BORDER_X + MAP_BORDER_X_OFFSET + offsetX, MAP_BORDER_Y_OFFSET + offsetY, MAP_BORDER_X + MAP_BORDER_X_OFFSET + offsetX + 100 , MAP_BORDER_Y_OFFSET + offsetBorderY);
return;
}
@@ -1884,23 +1869,25 @@ void MapBorderButtonOn( UINT8 ubBorderButtonIndex )
// HEADROCK HAM 4: Init the coordinates for all Map Border buttons
void InitMapBorderButtonCoordinates()
{
UINT32 buttonOffset = 155; // 160
MAP_BORDER_TOWN_BTN_X = MAP_BORDER_X + ((SCREEN_WIDTH - MAP_BORDER_X) / 2 - 152);
MAP_BORDER_TOWN_BTN_Y = (SCREEN_HEIGHT - 160);
MAP_BORDER_TOWN_BTN_Y = (SCREEN_HEIGHT - buttonOffset);
MAP_BORDER_MINE_BTN_X = MAP_BORDER_X + ((SCREEN_WIDTH - MAP_BORDER_X) / 2 - 109);
MAP_BORDER_MINE_BTN_Y = (SCREEN_HEIGHT - 160);
MAP_BORDER_MINE_BTN_Y = (SCREEN_HEIGHT - buttonOffset);
MAP_BORDER_TEAMS_BTN_X = MAP_BORDER_X + ((SCREEN_WIDTH - MAP_BORDER_X) / 2 - 66);
MAP_BORDER_TEAMS_BTN_Y = (SCREEN_HEIGHT - 160);
MAP_BORDER_TEAMS_BTN_Y = (SCREEN_HEIGHT - buttonOffset);
MAP_BORDER_AIRSPACE_BTN_X = MAP_BORDER_X + ((SCREEN_WIDTH - MAP_BORDER_X) / 2 + 20);
MAP_BORDER_AIRSPACE_BTN_Y = (SCREEN_HEIGHT - 160);
MAP_BORDER_AIRSPACE_BTN_Y = (SCREEN_HEIGHT - buttonOffset);
MAP_BORDER_ITEM_BTN_X = MAP_BORDER_X + ((SCREEN_WIDTH - MAP_BORDER_X) / 2 + 63);
MAP_BORDER_ITEM_BTN_Y = (SCREEN_HEIGHT - 160);
MAP_BORDER_ITEM_BTN_Y = (SCREEN_HEIGHT - buttonOffset);
MAP_BORDER_MILITIA_BTN_X = MAP_BORDER_X + ((SCREEN_WIDTH - MAP_BORDER_X) / 2 - 23);
MAP_BORDER_MILITIA_BTN_Y = (SCREEN_HEIGHT - 160);
MAP_BORDER_MILITIA_BTN_Y = (SCREEN_HEIGHT - buttonOffset);
MAP_BORDER_MOBILE_BTN_X = 0;
MAP_BORDER_MOBILE_BTN_Y = 0;
MAP_LEVEL_MARKER_X = (MAP_BORDER_X + ((SCREEN_WIDTH - MAP_BORDER_X) / 2 + 114));
MAP_LEVEL_MARKER_Y = (SCREEN_HEIGHT - 160); //(SCREEN_HEIGHT - 157) //323
MAP_LEVEL_MARKER_Y = (SCREEN_HEIGHT - buttonOffset); //(SCREEN_HEIGHT - 157) //323
MAP_LEVEL_MARKER_DELTA = 8;
MAP_LEVEL_MARKER_WIDTH = 55; //( (SCREEN_WIDTH - 20) - MAP_LEVEL_MARKER_X )
@@ -1908,7 +1895,7 @@ void InitMapBorderButtonCoordinates()
{
// Mobile button appears next to Militia button.
MAP_BORDER_MOBILE_BTN_X = MAP_BORDER_X + ((SCREEN_WIDTH - MAP_BORDER_X) / 2 + 16);
MAP_BORDER_MOBILE_BTN_Y = (SCREEN_HEIGHT - 160);
MAP_BORDER_MOBILE_BTN_Y = (SCREEN_HEIGHT - buttonOffset);
// Airspace, Items, ZLevel buttons all moved to the right (+22px, +22px, +10px).
MAP_BORDER_AIRSPACE_BTN_X = MAP_BORDER_X + ((SCREEN_WIDTH - MAP_BORDER_X) / 2 + 42);
+216 -65
View File
@@ -53,6 +53,46 @@
#include "Facilities.h"
#include "MilitiaSquads.h"
UINT16 MAP_GRID_X;
UINT16 MAP_GRID_Y;
UINT16 MAP_BORDER_X_OFFSET;
UINT16 MAP_BORDER_Y_OFFSET;
UINT16 MAP_VIEW_START_X;
UINT16 MAP_VIEW_START_Y;
UINT16 MAP_VIEW_WIDTH;
UINT16 MAP_VIEW_HEIGHT;
INT32 MAP_FONT;
// x start of hort index
UINT16 MAP_HORT_INDEX_X;
// y position of hort index
UINT16 MAP_HORT_INDEX_Y;
// height of hort index
UINT16 MAP_HORT_HEIGHT;
// The letters on the left side of the map
// vert index start x
UINT16 MAP_VERT_INDEX_X;
// vert index start y
UINT16 MAP_VERT_INDEX_Y;
// vert width
UINT16 MAP_VERT_WIDTH;
// Helicopter eta popup position
UINT16 MAP_HELICOPTER_ETA_POPUP_X;
UINT16 MAP_HELICOPTER_ETA_POPUP_Y;
UINT16 MAP_HELICOPTER_UPPER_ETA_POPUP_Y;
UINT16 MAP_HELICOPTER_ETA_POPUP_WIDTH;
UINT16 MAP_HELICOPTER_ETA_POPUP_HEIGHT;
// sublevel text string position
UINT16 MAP_LEVEL_STRING_X;
UINT16 MAP_LEVEL_STRING_Y;
// zoom x and y coords for map scrolling
INT32 iZoomX = 0;
INT32 iZoomY = 0;
@@ -83,18 +123,9 @@ INT32 iZoomY = 0;
#define HORT_SCROLL 14
#define VERT_SCROLL 10
// the pop up for helicopter stuff
#define MAP_HELICOPTER_ETA_POPUP_X (400 + iScreenWidthOffset)
#define MAP_HELICOPTER_ETA_POPUP_Y (250 + iScreenHeightOffset)
#define MAP_HELICOPTER_UPPER_ETA_POPUP_Y (50 + iScreenHeightOffset)
#define MAP_HELICOPTER_ETA_POPUP_WIDTH 120
#define MAP_HELICOPTER_ETA_POPUP_HEIGHT 68
#define MAP_LEVEL_STRING_X (SCREEN_WIDTH - 208) //432
#define MAP_LEVEL_STRING_Y (SCREEN_HEIGHT - 175) //305
// font
#define MAP_FONT BLOCKFONT2
//#define MAP_FONT BLOCKFONT2
// ----------------------
// index color
#define MAP_INDEX_COLOR 32*4-9
@@ -103,27 +134,6 @@ INT32 iZoomY = 0;
#define MAX_VIEW_SECTORS 16
//Map Location index regions
// WANNE: The numbers above the map
// x start of hort index
#define MAP_HORT_INDEX_X (MAP_BORDER_X + MAP_BORDER_X_OFFSET + 31)//(SCREEN_WIDTH - 348) //292
// y position of hort index
#define MAP_HORT_INDEX_Y (MAP_BORDER_Y + MAP_BORDER_Y_OFFSET + 8)
// height of hort index
#define MAP_HORT_HEIGHT GetFontHeight(MAP_FONT)
// WANNE: The letters on the left side of the map)
// vert index start x
#define MAP_VERT_INDEX_X (MAP_BORDER_X + MAP_BORDER_X_OFFSET + 13) //(SCREEN_WIDTH - 367) // 273
// vert index start y
#define MAP_VERT_INDEX_Y (MAP_BORDER_Y + MAP_BORDER_Y_OFFSET + 29)
// vert width
#define MAP_VERT_WIDTH GetFontHeight(MAP_FONT)
// "Boxes" Icons
#define SMALL_YELLOW_BOX 0
#define BIG_YELLOW_BOX 1
@@ -136,13 +146,9 @@ INT32 iZoomY = 0;
#define SMALL_QUESTION_MARK 8
#define BIG_QUESTION_MARK 9
#define MERC_ICONS_PER_LINE 6
#define ROWS_PER_SECTOR 5
#define MAP_X_ICON_OFFSET 2
#define MAP_Y_ICON_OFFSET 1
// Arrow Offsets
#define UP_X 13
#define UP_Y 7
@@ -295,6 +301,8 @@ UINT32 guiCHARICONS;
// the merc arrival sector landing zone icon
UINT32 guiBULLSEYE;
UINT16 MAP_MILITIA_BOX_POS_X;
UINT16 MAP_MILITIA_BOX_POS_Y;
// the max allowable towns militia in a sector
#define MAP_MILITIA_MAP_X 4
@@ -304,8 +312,8 @@ UINT32 guiBULLSEYE;
#define MILITIA_BOX_ROWS 3
#define MILITIA_BOX_BOX_HEIGHT 36
#define MILITIA_BOX_BOX_WIDTH 42
#define MAP_MILITIA_BOX_POS_X 400
#define MAP_MILITIA_BOX_POS_Y 125
#define POPUP_MILITIA_ICONS_PER_ROW 5 // max 6 rows gives the limit of 30 militia
#define MEDIUM_MILITIA_ICON_SPACING 5
@@ -445,10 +453,14 @@ INT16 gpSamSectorY[ MAX_NUMBER_OF_SAMS ];
extern BOOLEAN fSamSiteFoundOrig[ MAX_NUMBER_OF_SAMS ];
// map region
/*
SGPRect MapScreenRect={ (MAP_VIEW_START_X+MAP_GRID_X - 2),
( MAP_VIEW_START_Y+MAP_GRID_Y - 1),
MAP_VIEW_START_X + MAP_VIEW_WIDTH - 1 + MAP_GRID_X ,
MAP_VIEW_START_Y+MAP_VIEW_HEIGHT-10+MAP_GRID_Y};
*/
SGPRect MapScreenRect;
extern SGPRect gOldClipRect; // symbol already declared globally in renderworld.cpp (jonathanl)
@@ -581,7 +593,7 @@ extern void EndConfirmMapMoveMode( void );
extern BOOLEAN CanDrawSectorCursor( void );
// This method outputs the numbers (1-16) and letters (A - P)
void DrawMapIndexBigMap( BOOLEAN fSelectedCursorIsYellow )
{
// this procedure will draw the coord indexes on the zoomed out map
@@ -589,9 +601,7 @@ void DrawMapIndexBigMap( BOOLEAN fSelectedCursorIsYellow )
INT32 iCount=0;
BOOLEAN fDrawCursors;
SetFontDestBuffer( FRAME_BUFFER, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, FALSE );
//SetFontColors(FONT_FCOLOR_GREEN)
SetFont(MAP_FONT);
SetFontForeground(MAP_INDEX_COLOR);
// Dk Red is 163
@@ -1110,9 +1120,8 @@ DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"Map Screen1");
}
// red for low loyalty, green otherwise
SetFontForeground( ( UINT8 ) ( fLoyaltyTooLowToTrainMilitia ? FONT_MCOLOR_RED : FONT_MCOLOR_LTGREEN ) );
DrawTownLabels(sString, sStringA, usX, usY);
SetFontForeground( ( UINT8 ) ( fLoyaltyTooLowToTrainMilitia ? FONT_MCOLOR_RED : FONT_MCOLOR_LTGREEN ) );
DrawTownLabels(sString, sStringA, usX, usY);
}
}
}
@@ -1306,13 +1315,29 @@ void ShowEnemiesInSector( INT16 sSectorX, INT16 sSectorY, INT16 sNumberOfEnemies
}
}
void ShowUncertainNumberEnemiesInSector( INT16 sSectorX, INT16 sSectorY )
{
INT16 sXPosition = 0, sYPosition = 0;
HVOBJECT hIconHandle;
UINT8 iconOffsetX = 0;
UINT8 iconOffsetY = 0;
if (iResolution == 0)
{
iconOffsetX = 2;
iconOffsetY = 1;
}
else if (iResolution == 1)
{
iconOffsetX = 8;
iconOffsetY = 12;
}
else if (iResolution == 2)
{
iconOffsetX = 12;
iconOffsetY = 13;
}
// grab the x and y postions
sXPosition = sSectorX;
@@ -1324,8 +1349,8 @@ void ShowUncertainNumberEnemiesInSector( INT16 sSectorX, INT16 sSectorY )
// check if we are zoomed in...need to offset in case for scrolling purposes
if(!fZoomFlag)
{
sXPosition = ( INT16 )( MAP_X_ICON_OFFSET + ( MAP_VIEW_START_X + ( sSectorX * MAP_GRID_X + 1 ) ) - 1 );
sYPosition = ( INT16 )( ( ( MAP_VIEW_START_Y + ( sSectorY * MAP_GRID_Y ) + 1 ) ) );
sXPosition = ( INT16 )( iconOffsetX + ( MAP_VIEW_START_X + ( sSectorX * MAP_GRID_X + 1 ) ) - 1 );
sYPosition = ( INT16 )( ( ( iconOffsetY + ( sSectorY * MAP_GRID_Y ) + 1 ) ) );
sYPosition -= 2;
// small question mark
@@ -1436,7 +1461,7 @@ BOOLEAN ShadeMapElem( INT16 sMapX, INT16 sMapY, INT32 iColor )
sScreenX += 1;
// compensate for original BIG_MAP blit being done at MAP_VIEW_START_X + 1
clip.iLeft = 2 * ( sScreenX - ( MAP_VIEW_START_X + 1 ) );
clip.iLeft = 2 * ( sScreenX - ( MAP_VIEW_START_X + 1 ) );
clip.iTop = 2 * ( sScreenY - MAP_VIEW_START_Y );
clip.iRight = clip.iLeft + ( 2 * MAP_GRID_X );
clip.iBottom = clip.iTop + ( 2 * MAP_GRID_Y );
@@ -1925,6 +1950,25 @@ BOOLEAN ShadeMapElemZoomIn(INT16 sMapX, INT16 sMapY, INT32 iColor )
return ( TRUE );
}
void InitializeMilitiaPopup(void)
{
// WANNE.MAP.TODO:
if (iResolution == 0)
{
MAP_MILITIA_BOX_POS_X = 400;
MAP_MILITIA_BOX_POS_Y = 125;
}
else if (iResolution == 1)
{
MAP_MILITIA_BOX_POS_X = 400 + 77;
MAP_MILITIA_BOX_POS_Y = 125 + 116;
}
else if (iResolution == 2)
{
MAP_MILITIA_BOX_POS_X = 400 + 190;
MAP_MILITIA_BOX_POS_Y = 125 + 285;
}
}
BOOLEAN InitializePalettesForMap( void )
{
@@ -1936,7 +1980,14 @@ BOOLEAN InitializePalettesForMap( void )
// load image
vs_desc.fCreateFlags = VSURFACE_CREATE_FROMFILE | VSURFACE_SYSTEM_MEM_USAGE;
strcpy(vs_desc.ImageFile, "INTERFACE\\b_map.pcx");
if (iResolution == 0)
strcpy(vs_desc.ImageFile, "INTERFACE\\b_map.pcx");
else if (iResolution == 1)
strcpy(vs_desc.ImageFile, "INTERFACE\\b_map_800x600.pcx");
else if (iResolution == 2)
strcpy(vs_desc.ImageFile, "INTERFACE\\b_map_1024x768.pcx");
CHECKF(AddVideoSurface(&vs_desc, &uiTempMap));
// get video surface
@@ -4328,6 +4379,24 @@ void ShowPeopleInMotion( INT16 sX, INT16 sY )
return;
}
UINT8 iconOffsetX = 0;
UINT8 iconOffsetY = 0;
if (iResolution == 0)
{
iconOffsetX = 2;
iconOffsetY = 1;
}
else if (iResolution == 1)
{
iconOffsetX = 3;
iconOffsetY = 2;
}
else if (iResolution == 2)
{
iconOffsetX = 4;
iconOffsetY = 3;
}
// show the icons for people in motion from this sector to the next guy over
for( iCounter = 0; iCounter < 4; iCounter++ )
@@ -4479,7 +4548,7 @@ void ShowPeopleInMotion( INT16 sX, INT16 sY )
if(!fZoomFlag)
{
iX = MAP_VIEW_START_X+( iX * MAP_GRID_X ) + sOffsetX;
iY = MAP_Y_ICON_OFFSET + MAP_VIEW_START_Y + ( iY * MAP_GRID_Y ) + sOffsetY;
iY = iconOffsetY + MAP_VIEW_START_Y + ( iY * MAP_GRID_Y ) + sOffsetY;
BltVideoObject(guiSAVEBUFFER, hIconHandle, ( UINT16 )iCounter , ( INT16 ) iX, ( INT16 ) iY , VO_BLT_SRCTRANSPARENCY, NULL );
}
@@ -4771,6 +4840,13 @@ void DisplayPositionOfHelicopter( void )
ClipBlitsToMapViewRegion( );
GetVideoObject( &hHandle, guiHelicopterIcon );
if (iResolution > 0)
{
x = x + (MAP_GRID_X / 2) - 10;
y = y + 1 + (MAP_GRID_Y / 2) - 10;
}
BltVideoObject( FRAME_BUFFER, hHandle, HELI_ICON, x, y, VO_BLT_SRCTRANSPARENCY, NULL );
// now get number of people and blit that too
@@ -4834,6 +4910,13 @@ void DisplayDestinationOfHelicopter( void )
GetVideoObject( &hHandle, guiHelicopterIcon );
BltVideoObject( FRAME_BUFFER, hHandle, HELI_SHADOW_ICON, x, y, VO_BLT_SRCTRANSPARENCY, NULL );
if (iResolution > 0)
{
x = x + (MAP_GRID_X / 2) - 10;
y = y + 1 + (MAP_GRID_Y / 2) - 10;
}
InvalidateRegion( x, y, x + HELI_SHADOW_ICON_WIDTH, y + HELI_SHADOW_ICON_HEIGHT );
RestoreClipRegionToFullScreen( );
@@ -5408,7 +5491,14 @@ BOOLEAN LoadMilitiaPopUpBox( void )
// load the militia pop up box
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\Militia.sti", VObjectDesc.ImageFile);
if (iResolution == 0)
FilenameForBPP("INTERFACE\\Militia.sti", VObjectDesc.ImageFile);
else if (iResolution == 1)
FilenameForBPP("INTERFACE\\Militia_800x600.sti", VObjectDesc.ImageFile);
else if (iResolution == 2)
FilenameForBPP("INTERFACE\\Militia_1024x768.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiMilitia));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
@@ -5438,14 +5528,11 @@ void RemoveMilitiaPopUpBox( void )
return;
}
BOOLEAN DrawMilitiaPopUpBox( void )
{
HVOBJECT hVObject;
ETRLEObject *pTrav;
if( !fShowMilitia )
{
sSelectedMilitiaTown = 0;
@@ -5556,7 +5643,6 @@ void CreateDestroyMilitiaPopUPRegions( void )
return;
}
void RenderIconsPerSectorForSelectedTown( void )
{
INT16 sBaseSectorValue = 0;
@@ -5804,7 +5890,12 @@ void CreateDestroyMilitiaSectorButtons( void )
sY += ( iCounter * ( MILITIA_BTN_HEIGHT ) + 2 );
// set the button image
giMapMilitiaButtonImage[ iCounter ]= LoadButtonImage( "INTERFACE\\militia.sti" ,-1,3,-1,4,-1 );
if (iResolution == 0)
giMapMilitiaButtonImage[ iCounter ]= LoadButtonImage( "INTERFACE\\militia.sti", -1,3,-1,4,-1 );
else if (iResolution == 1)
giMapMilitiaButtonImage[ iCounter ]= LoadButtonImage( "INTERFACE\\militia_800x600.sti", -1,3,-1,4,-1 );
else if (iResolution == 2)
giMapMilitiaButtonImage[ iCounter ]= LoadButtonImage( "INTERFACE\\militia_1024x768.sti", -1,3,-1,4,-1 );
// set the button value
giMapMilitiaButton[ iCounter ] = QuickCreateButton( giMapMilitiaButtonImage[ iCounter ], sX, sY,
@@ -6267,9 +6358,21 @@ DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"Map Screen4");
void CreateMilitiaPanelBottomButton( void )
{
// set the button image
giMapMilitiaButtonImage[ 3 ]= LoadButtonImage( "INTERFACE\\militia.sti" ,-1,1,-1,2,-1 );
giMapMilitiaButtonImage[ 4 ]= LoadButtonImage( "INTERFACE\\militia.sti" ,-1,1,-1,2,-1 );
if (iResolution == 0)
{
giMapMilitiaButtonImage[ 3 ]= LoadButtonImage( "INTERFACE\\militia.sti" ,-1,1,-1,2,-1 );
giMapMilitiaButtonImage[ 4 ]= LoadButtonImage( "INTERFACE\\militia.sti" ,-1,1,-1,2,-1 );
}
else if (iResolution == 1)
{
giMapMilitiaButtonImage[ 3 ]= LoadButtonImage( "INTERFACE\\militia_800x600.sti" ,-1,1,-1,2,-1 );
giMapMilitiaButtonImage[ 4 ]= LoadButtonImage( "INTERFACE\\militia_800x600.sti" ,-1,1,-1,2,-1 );
}
else if (iResolution == 2)
{
giMapMilitiaButtonImage[ 3 ]= LoadButtonImage( "INTERFACE\\militia_1024x768.sti" ,-1,1,-1,2,-1 );
giMapMilitiaButtonImage[ 4 ]= LoadButtonImage( "INTERFACE\\militia_1024x768.sti" ,-1,1,-1,2,-1 );
}
giMapMilitiaButton[ 3 ] = QuickCreateButton( giMapMilitiaButtonImage[ 3 ], MAP_MILITIA_BOX_POS_X + MAP_MILITIA_BOX_AUTO_BOX_X, MAP_MILITIA_BOX_POS_Y + MAP_MILITIA_BOX_AUTO_BOX_Y,
BUTTON_TOGGLE, MSYS_PRIORITY_HIGHEST - 1,
@@ -6416,7 +6519,6 @@ void RenderShadingForUnControlledSectors( void )
return;
}
void DrawTownMilitiaForcesOnMap( void )
{
INT32 iCounterB = 0, iTotalNumberOfTroops = 0, iIconValue = 0;
@@ -6646,6 +6748,9 @@ void ShadeSubLevelsNotVisited( void )
void HandleLowerLevelMapBlit( void )
{
UINT8 offsetX = 0;
UINT8 offsetY = 0;
HVOBJECT hHandle;
// blits the sub level maps
@@ -6665,8 +6770,24 @@ void HandleLowerLevelMapBlit( void )
return;
}
if (iResolution == 0)
{
offsetX = 21;
offsetY = 17;
}
else if (iResolution == 1)
{
offsetX = 21 + 8;
offsetY = 17 + 7;
}
else if (iResolution == 2)
{
offsetX = 21 + 21;
offsetY = 17 + 17;
}
// handle the blt of the sublevel
BltVideoObject( guiSAVEBUFFER, hHandle, 0,MAP_VIEW_START_X + 21, MAP_VIEW_START_Y + 17, VO_BLT_SRCTRANSPARENCY, NULL );
BltVideoObject( guiSAVEBUFFER, hHandle, iResolution, MAP_VIEW_START_X + offsetX, MAP_VIEW_START_Y + offsetY, VO_BLT_SRCTRANSPARENCY, NULL );
// handle shading of sublevels
ShadeSubLevelsNotVisited( );
@@ -7249,13 +7370,36 @@ void ShowItemsOnMap( void )
}
void DrawMapBoxIcon( HVOBJECT hIconHandle, UINT16 usVOIndex, INT16 sMapX, INT16 sMapY, UINT8 ubIconPosition )
{
INT32 iRowNumber, iColumnNumber;
INT32 iX, iY;
UINT8 iconOffsetX = 0;
UINT8 iconOffsetY = 0;
UINT8 iconSize = 0;
if (iResolution == 0)
{
iconOffsetX = 2;
iconOffsetY = 1;
iconSize = 3;
}
else if (iResolution == 1)
{
iconOffsetX = 2;
iconOffsetY = 1;
iconSize = 4;
}
else if (iResolution == 2)
{
iconOffsetX = 2;
iconOffsetY = 1;
iconSize = 6;
}
// don't show any more icons than will fit into one sector, to keep them from spilling into sector(s) beneath
if ( ubIconPosition >= ( MERC_ICONS_PER_LINE * ROWS_PER_SECTOR ) )
{
@@ -7268,8 +7412,8 @@ void DrawMapBoxIcon( HVOBJECT hIconHandle, UINT16 usVOIndex, INT16 sMapX, INT16
if ( !fZoomFlag )
{
iX = MAP_VIEW_START_X + ( sMapX * MAP_GRID_X ) + MAP_X_ICON_OFFSET + ( 3 * iColumnNumber );
iY = MAP_VIEW_START_Y + ( sMapY * MAP_GRID_Y ) + MAP_Y_ICON_OFFSET + ( 3 * iRowNumber );
iX = MAP_VIEW_START_X + ( sMapX * MAP_GRID_X ) + iconOffsetX + ( iconSize * iColumnNumber );
iY = MAP_VIEW_START_Y + ( sMapY * MAP_GRID_Y ) + iconOffsetY + ( iconSize * iRowNumber );
BltVideoObject( guiSAVEBUFFER, hIconHandle, usVOIndex , iX, iY, VO_BLT_SRCTRANSPARENCY, NULL );
InvalidateRegion( iX, iY, iX + DMAP_GRID_X, iY + DMAP_GRID_Y );
@@ -7376,6 +7520,13 @@ void DrawBullseye()
// draw the bullseye in that sector
GetVideoObject( &hHandle, guiBULLSEYE);
if (iResolution > 0)
{
sX = sX + MAP_GRID_X / 2 - 10;
sY = sY + 1 + MAP_GRID_Y / 2 - 10;
}
BltVideoObject( guiSAVEBUFFER, hHandle, 0, sX, sY, VO_BLT_SRCTRANSPARENCY, NULL );
}
+33 -16
View File
@@ -15,6 +15,8 @@ void GetScreenXYFromMapXY( INT16 sMapX, INT16 sMapY, INT16 *psX, INT16 *psY );
void GetScreenXYFromMapXYStationary( INT16 sMapX, INT16 sMapY, INT16 *psX, INT16 *psY );
BOOLEAN InitializePalettesForMap( void );
void InitializeMilitiaPopup(void);
void ShutDownPalettesForMap( void );
// plot path for helicopter
@@ -145,9 +147,7 @@ enum {
};
// size of squares on the map
#define MAP_GRID_X 21
#define MAP_GRID_Y 18
// scroll bounds
@@ -160,28 +160,45 @@ enum {
#define MAP_BORDER_X 261
#define MAP_BORDER_Y 0
// size of squares on the map
extern UINT16 MAP_GRID_X;
extern UINT16 MAP_GRID_Y;
// WANNE: The offset of the map border
#define MAP_BORDER_X_OFFSET (((SCREEN_WIDTH - 261) - 380) / 2)
#define MAP_BORDER_Y_OFFSET (((SCREEN_HEIGHT - 121) - 360) / 2)
extern UINT16 MAP_BORDER_X_OFFSET;
extern UINT16 MAP_BORDER_Y_OFFSET;
// WANNE: The map view region (map image pcx)
#define MAP_VIEW_START_X (MAP_BORDER_X + MAP_BORDER_X_OFFSET + 9)
#define MAP_VIEW_START_Y (MAP_BORDER_Y + MAP_BORDER_Y_OFFSET + 10)
#define MAP_VIEW_WIDTH 336
#define MAP_VIEW_HEIGHT 298
extern UINT16 MAP_VIEW_START_X;
extern UINT16 MAP_VIEW_START_Y;
extern UINT16 MAP_VIEW_WIDTH;
extern UINT16 MAP_VIEW_HEIGHT;
extern INT32 MAP_FONT;
extern UINT16 MAP_HORT_INDEX_X;
extern UINT16 MAP_HORT_INDEX_Y;
extern UINT16 MAP_HORT_HEIGHT;
extern UINT16 MAP_VERT_INDEX_X;
extern UINT16 MAP_VERT_INDEX_Y;
extern UINT16 MAP_VERT_WIDTH;
// Helicopter eta popup position
extern UINT16 MAP_HELICOPTER_ETA_POPUP_X;
extern UINT16 MAP_HELICOPTER_ETA_POPUP_Y;
extern UINT16 MAP_HELICOPTER_UPPER_ETA_POPUP_Y;
extern UINT16 MAP_HELICOPTER_ETA_POPUP_WIDTH;
extern UINT16 MAP_HELICOPTER_ETA_POPUP_HEIGHT;
// sublevel text string position
extern UINT16 MAP_LEVEL_STRING_X;
extern UINT16 MAP_LEVEL_STRING_Y;
//#define MAP_VIEW_START_X 270
//#define MAP_VIEW_START_Y 10
//#define MAP_VIEW_WIDTH 336
//#define MAP_VIEW_HEIGHT 298
// zoomed in grid sizes
#define MAP_GRID_ZOOM_X MAP_GRID_X*2
#define MAP_GRID_ZOOM_Y MAP_GRID_Y*2
// number of units wide
#define WORLD_MAP_X 18
#define WORLD_MAP_X 18 // WANNE: 18 darf nicht geändert werden!
// dirty regions for the map
#define DMAP_GRID_X ( MAP_GRID_X + 1 )
+218 -234
View File
@@ -1168,14 +1168,41 @@ BOOLEAN InitializeInvPanelCoordsOld()
TIME_REMAINING_X = 215;
TIME_REMAINING_WIDTH = 243 - TIME_REMAINING_X;
CLOCK_Y_START = (MAP_BORDER_Y_OFFSET + 298);
if (iResolution == 0)
{
CLOCK_Y_START = (MAP_BORDER_Y_OFFSET + 298);
DEST_PLOT_X = (MAP_BORDER_X_OFFSET + 463);
DEST_PLOT_Y = (MAP_BORDER_Y_OFFSET + 345);
DEST_PLOT_X = (MAP_BORDER_X_OFFSET + 463);
DEST_PLOT_Y = (MAP_BORDER_Y_OFFSET + 345);
CLOCK_ETA_X = (MAP_BORDER_X_OFFSET + 484);
CLOCK_HOUR_X_START = (MAP_BORDER_X_OFFSET + 518);
CLOCK_MIN_X_START = (MAP_BORDER_X_OFFSET + 538);
CLOCK_ETA_X = (MAP_BORDER_X_OFFSET + 484);
CLOCK_HOUR_X_START = (MAP_BORDER_X_OFFSET + 518);
CLOCK_MIN_X_START = (MAP_BORDER_X_OFFSET + 538);
}
else if (iResolution == 1)
{
CLOCK_Y_START = (MAP_BORDER_Y_OFFSET + 298 + 120);
DEST_PLOT_X = (MAP_BORDER_X_OFFSET + 463 + 80);
DEST_PLOT_Y = (MAP_BORDER_Y_OFFSET + 345 + 120);
CLOCK_ETA_X = (MAP_BORDER_X_OFFSET + 484 + 80);
CLOCK_HOUR_X_START = (MAP_BORDER_X_OFFSET + 518 + 80);
CLOCK_MIN_X_START = (MAP_BORDER_X_OFFSET + 538 + 80);
}
else if (iResolution == 2)
{
CLOCK_Y_START = (MAP_BORDER_Y_OFFSET + 298 + 285);
DEST_PLOT_X = (MAP_BORDER_X_OFFSET + 463 + 180);
DEST_PLOT_Y = (MAP_BORDER_Y_OFFSET + 345 + 285);
CLOCK_ETA_X = (MAP_BORDER_X_OFFSET + 484 + 180);
CLOCK_HOUR_X_START = (MAP_BORDER_X_OFFSET + 518 + 180);
CLOCK_MIN_X_START = (MAP_BORDER_X_OFFSET + 538 + 180);
}
// -----------------
// contract
CONTRACT_X = 185;
@@ -1479,14 +1506,39 @@ BOOLEAN InitializeInvPanelCoordsNew()
TIME_REMAINING_X = 215;
TIME_REMAINING_WIDTH = 243 - TIME_REMAINING_X;
CLOCK_Y_START = (MAP_BORDER_Y_OFFSET + 298);
if (iResolution == 0)
{
CLOCK_Y_START = (MAP_BORDER_Y_OFFSET + 298);
DEST_PLOT_X = (MAP_BORDER_X_OFFSET + 463);
DEST_PLOT_Y = (MAP_BORDER_Y_OFFSET + 345);
DEST_PLOT_X = (MAP_BORDER_X_OFFSET + 463);
DEST_PLOT_Y = (MAP_BORDER_Y_OFFSET + 345);
CLOCK_ETA_X = (MAP_BORDER_X_OFFSET + 484);
CLOCK_HOUR_X_START = (MAP_BORDER_X_OFFSET + 518);
CLOCK_MIN_X_START = (MAP_BORDER_X_OFFSET + 538);
CLOCK_ETA_X = (MAP_BORDER_X_OFFSET + 484);
CLOCK_HOUR_X_START = (MAP_BORDER_X_OFFSET + 518);
CLOCK_MIN_X_START = (MAP_BORDER_X_OFFSET + 538);
}
else if (iResolution == 1)
{
CLOCK_Y_START = (MAP_BORDER_Y_OFFSET + 298 + 120);
DEST_PLOT_X = (MAP_BORDER_X_OFFSET + 463 + 80);
DEST_PLOT_Y = (MAP_BORDER_Y_OFFSET + 345 + 120);
CLOCK_ETA_X = (MAP_BORDER_X_OFFSET + 484 + 80);
CLOCK_HOUR_X_START = (MAP_BORDER_X_OFFSET + 518 + 80);
CLOCK_MIN_X_START = (MAP_BORDER_X_OFFSET + 538 + 80);
}
else if (iResolution == 2)
{
CLOCK_Y_START = (MAP_BORDER_Y_OFFSET + 298 + 285);
DEST_PLOT_X = (MAP_BORDER_X_OFFSET + 463 + 180);
DEST_PLOT_Y = (MAP_BORDER_Y_OFFSET + 345 + 285);
CLOCK_ETA_X = (MAP_BORDER_X_OFFSET + 484 + 180);
CLOCK_HOUR_X_START = (MAP_BORDER_X_OFFSET + 518 + 180);
CLOCK_MIN_X_START = (MAP_BORDER_X_OFFSET + 538 + 180);
}
// contract
CONTRACT_X = 185;
@@ -4334,6 +4386,8 @@ UINT32 MapScreenInit(void)
// set up leave list arrays for dismissed mercs
InitLeaveList( );
InitializeMilitiaPopup();
VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\group_confirm.sti", VObjectDesc.ImageFile);
@@ -4499,18 +4553,151 @@ UINT32 MapScreenHandle(void)
if(fPreLoadedMapGraphics == FALSE )
{
vs_desc.fCreateFlags = VSURFACE_CREATE_FROMFILE | VSURFACE_SYSTEM_MEM_USAGE;
if (iResolution == 0)
{
// ------------
// 336 x 288 (size without the black area on top and left
// Important: The size (including black area on top and left) of the PCX file has to be an even number for width and height,
// otherwise the blitting method which shrinks the image by 50% does not work.
// ------------
MAP_GRID_X = 21; // Horizontal size of a square
MAP_GRID_Y = 18; // Vertical size of a square
MAP_BORDER_X_OFFSET = (((SCREEN_WIDTH - 261) - 380) / 2); // 380: Width of the MBS.sti file
MAP_BORDER_Y_OFFSET = (((SCREEN_HEIGHT - 121) - 360) / 2); // 360: Height of the MBS.sti file
MAP_VIEW_START_X = (MAP_BORDER_X + MAP_BORDER_X_OFFSET + 9); // 9: Constant, do not change it.
MAP_VIEW_START_Y = (MAP_BORDER_Y + MAP_BORDER_Y_OFFSET + 10); // 10: Constant, do not change it.
// Maus Area (Ist die reine Größe der Karte/2 (ohne dem schwarzen Rand (links und oben))
MAP_VIEW_WIDTH = 336; // Width of the map (without the black area on the left)
MAP_VIEW_HEIGHT = 288 + 10; // Height of the map (without the black area on the top) + constant value of 10
MAP_FONT = BLOCKFONT2;
// The postion of the map numbers (1-16) above the map (horizontal)
MAP_HORT_INDEX_X = (MAP_BORDER_X + MAP_BORDER_X_OFFSET + 31);
MAP_HORT_INDEX_Y = (MAP_BORDER_Y + MAP_BORDER_Y_OFFSET + 11);
MAP_HORT_HEIGHT = GetFontHeight(MAP_FONT);
// The position of the latters (A-P) on the left side of the map (vertical)
MAP_VERT_INDEX_X = (MAP_BORDER_X + MAP_BORDER_X_OFFSET + 15);
MAP_VERT_INDEX_Y = (MAP_BORDER_Y + MAP_BORDER_Y_OFFSET + 29);
MAP_VERT_WIDTH = GetFontHeight(MAP_FONT);
// Helicopter ETA box
MAP_HELICOPTER_ETA_POPUP_X = (400 + iScreenWidthOffset);
MAP_HELICOPTER_ETA_POPUP_Y = (250 + iScreenHeightOffset);
MAP_HELICOPTER_UPPER_ETA_POPUP_Y = (50 + iScreenHeightOffset);
MAP_HELICOPTER_ETA_POPUP_WIDTH = 120;
MAP_HELICOPTER_ETA_POPUP_HEIGHT = 68;
// Map Level string
MAP_LEVEL_STRING_X = (SCREEN_WIDTH - 208);
MAP_LEVEL_STRING_Y = (SCREEN_HEIGHT - 175);
strcpy(vs_desc.ImageFile, "INTERFACE\\b_map.pcx");
}
else if (iResolution == 1)
{
// ------------
// 480 x 400
// ------------
MAP_GRID_X = 30;
MAP_GRID_Y = 25;
MAP_BORDER_X_OFFSET = (((SCREEN_WIDTH - 261) - 540) / 2);
MAP_BORDER_Y_OFFSET = (((SCREEN_HEIGHT - 121) - 480) / 2);
MAP_VIEW_START_X = (MAP_BORDER_X + MAP_BORDER_X_OFFSET + 9);
MAP_VIEW_START_Y = (MAP_BORDER_Y + MAP_BORDER_Y_OFFSET + 10);
MAP_VIEW_WIDTH = 480;
MAP_VIEW_HEIGHT = 400 + 10 + 7;
// The numbers on the horizontal line
MAP_FONT = BLOCKFONT2;
MAP_HORT_INDEX_X = (MAP_BORDER_X + MAP_BORDER_X_OFFSET + 38);
MAP_HORT_INDEX_Y = (MAP_BORDER_Y + MAP_BORDER_Y_OFFSET + 15);
MAP_HORT_HEIGHT = GetFontHeight(MAP_FONT);
MAP_VERT_INDEX_X = (MAP_BORDER_X + MAP_BORDER_X_OFFSET + 19);
MAP_VERT_INDEX_Y = (MAP_BORDER_Y + MAP_BORDER_Y_OFFSET + 36);
MAP_VERT_WIDTH = GetFontHeight(MAP_FONT);
// Helicopter ETA box
MAP_HELICOPTER_ETA_POPUP_X = (400 + iScreenWidthOffset);
MAP_HELICOPTER_ETA_POPUP_Y = (250 + iScreenHeightOffset + 58);
MAP_HELICOPTER_UPPER_ETA_POPUP_Y = (50 + iScreenHeightOffset - 40);
MAP_HELICOPTER_ETA_POPUP_WIDTH = 120;
MAP_HELICOPTER_ETA_POPUP_HEIGHT = 68;
// Map Level string
MAP_LEVEL_STRING_X = (SCREEN_WIDTH - 208 - 80);
MAP_LEVEL_STRING_Y = (SCREEN_HEIGHT - 175);
strcpy(vs_desc.ImageFile, "INTERFACE\\b_map_800x600.pcx");
}
else if (iResolution == 2)
{
// ------------
// 688 x 560
// ------------
MAP_GRID_X = 43;
MAP_GRID_Y = 35;
MAP_BORDER_X_OFFSET = (((SCREEN_WIDTH - 261) - 764) / 2);
MAP_BORDER_Y_OFFSET = (((SCREEN_HEIGHT - 121) - 648) / 2);
MAP_VIEW_START_X = (MAP_BORDER_X + MAP_BORDER_X_OFFSET + 9);
MAP_VIEW_START_Y = (MAP_BORDER_Y + MAP_BORDER_Y_OFFSET + 10);
MAP_VIEW_WIDTH = 688;
MAP_VIEW_HEIGHT = 560 + 10 + 17;
MAP_FONT = BLOCKFONT2;
MAP_HORT_INDEX_X = (MAP_BORDER_X + MAP_BORDER_X_OFFSET + 53);
MAP_HORT_INDEX_Y = (MAP_BORDER_Y + MAP_BORDER_Y_OFFSET + 19);
MAP_HORT_HEIGHT = GetFontHeight(MAP_FONT);
MAP_VERT_INDEX_X = (MAP_BORDER_X + MAP_BORDER_X_OFFSET + 25);
MAP_VERT_INDEX_Y = (MAP_BORDER_Y + MAP_BORDER_Y_OFFSET + 47);
MAP_VERT_WIDTH = GetFontHeight(MAP_FONT);
// Helicopter ETA box
MAP_HELICOPTER_ETA_POPUP_X = (400 + iScreenWidthOffset);
MAP_HELICOPTER_ETA_POPUP_Y = (250 + iScreenHeightOffset + 140);
MAP_HELICOPTER_UPPER_ETA_POPUP_Y = (50 + iScreenHeightOffset - 100);
MAP_HELICOPTER_ETA_POPUP_WIDTH = 120;
MAP_HELICOPTER_ETA_POPUP_HEIGHT = 68;
// Map Level string
MAP_LEVEL_STRING_X = (SCREEN_WIDTH - 208 - 187);
MAP_LEVEL_STRING_Y = (SCREEN_HEIGHT - 175);
strcpy(vs_desc.ImageFile, "INTERFACE\\b_map_1024x768.pcx");
}
// load border graphics
LoadMapBorderGraphics( );
//fInterfacePanelDirty=DIRTYLEVEL2;
//RenderTacticalInterface();
vs_desc.fCreateFlags = VSURFACE_CREATE_FROMFILE | VSURFACE_SYSTEM_MEM_USAGE;
// Grab the Map image
strcpy(vs_desc.ImageFile, "INTERFACE\\b_map.pcx");
CHECKF(AddVideoSurface(&vs_desc, &guiBIGMAP));
vs_desc.fCreateFlags = VSURFACE_CREATE_FROMFILE | VSURFACE_SYSTEM_MEM_USAGE;
strcpy(vs_desc.ImageFile, "INTERFACE\\popupbackground.pcx");
CHECKF(AddVideoSurface(&vs_desc, &guiPOPUPTEX));
@@ -4598,7 +4785,14 @@ UINT32 MapScreenHandle(void)
// CHECKF(AddVideoObject(&VObjectDesc, &guiPOPUPBORDERS));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\boxes.sti", VObjectDesc.ImageFile);
if (iResolution == 0)
FilenameForBPP("INTERFACE\\boxes.sti", VObjectDesc.ImageFile);
else if (iResolution == 1)
FilenameForBPP("INTERFACE\\boxes_800x600.sti", VObjectDesc.ImageFile);
else if (iResolution == 2)
FilenameForBPP("INTERFACE\\boxes_1024x768.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiCHARICONS));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
@@ -4682,7 +4876,14 @@ UINT32 MapScreenHandle(void)
CHECKF( AddVideoObject( &VObjectDesc, &guiMINEICON ) );
VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE;
sprintf( VObjectDesc.ImageFile, "INTERFACE\\hilite.sti" );
if (iResolution == 0)
sprintf( VObjectDesc.ImageFile, "INTERFACE\\hilite.sti" );
else if (iResolution == 1)
sprintf( VObjectDesc.ImageFile, "INTERFACE\\hilite_800x600.sti" );
else if (iResolution == 2)
sprintf( VObjectDesc.ImageFile, "INTERFACE\\hilite_1024x768.sti" );
AddVideoObject( &VObjectDesc, &guiSectorLocatorGraphicID );
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
@@ -12628,223 +12829,6 @@ BOOLEAN AnyMercsLeavingRealSoon()
}
BOOLEAN HandlePreloadOfMapGraphics( void )
{
// check amt of memory, if above required amt...use it
VSURFACE_DESC vs_desc;
VOBJECT_DESC VObjectDesc;
fPreLoadedMapGraphics = TRUE;
vs_desc.fCreateFlags = VSURFACE_CREATE_FROMFILE | VSURFACE_SYSTEM_MEM_USAGE;
strcpy(vs_desc.ImageFile, "INTERFACE\\b_map.pcx");
CHECKF(AddVideoSurface(&vs_desc, &guiBIGMAP));
//strcpy(vs_desc.ImageFile, "INTERFACE\\popupbackground.pcx");
//CHECKF(AddVideoSurface(&vs_desc, &guiPOPUPTEX));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\mapcursr.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiMAPCURSORS));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\SAM.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiSAMICON));
// VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE;
// FilenameForBPP("INTERFACE\\s_map.sti", VObjectDesc.ImageFile);
// CHECKF( AddVideoObject( &VObjectDesc, &guiMAP ) );
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\mapcursr.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiMAPCURSORS));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\sleepicon.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiSleepIcon));
//VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
//FilenameForBPP("INTERFACE\\addonslcp.sti", VObjectDesc.ImageFile);
//CHECKF(AddVideoObject(&VObjectDesc, &guiCORNERADDONS));
//VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
//FilenameForBPP("INTERFACE\\mapborder.sti", VObjectDesc.ImageFile);
//CHECKF(AddVideoObject(&VObjectDesc, &guiMAPBORDER));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\charinfo.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiCHARINFO));
/*strcpy(vs_desc.ImageFile, "INTERFACE\\playlist3.pcx");
CHECKF(AddVideoSurface( &vs_desc, &guiCHARLIST ));*/
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
if (!is_networked)
{
if (iResolution == 0)
{
FilenameForBPP("INTERFACE\\newgoldpiece3.sti", VObjectDesc.ImageFile );
}
else if (iResolution == 1)
{
FilenameForBPP("INTERFACE\\newgoldpiece3_800x600.sti", VObjectDesc.ImageFile );
}
else if (iResolution == 2)
{
FilenameForBPP("INTERFACE\\newgoldpiece3_1024x768.sti", VObjectDesc.ImageFile );
}
}
else
{
// OJW - 20081204 - change mapscreen interface for MP games
if (iResolution == 0)
{
FilenameForBPP("INTERFACE\\mpgoldpiece3.sti", VObjectDesc.ImageFile );
}
else if (iResolution == 1)
{
FilenameForBPP("INTERFACE\\mpgoldpiece3_800x600.sti", VObjectDesc.ImageFile );
}
else if (iResolution == 2)
{
FilenameForBPP("INTERFACE\\mpgoldpiece3_1024x768.sti", VObjectDesc.ImageFile );
}
}
CHECKF(AddVideoObject(&VObjectDesc, &guiCHARLIST));
//VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
//FilenameForBPP("INTERFACE\\mapbordercorner.sti", VObjectDesc.ImageFile);
//CHECKF(AddVideoObject(&VObjectDesc, &guiMAPCORNER));
// VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
// FilenameForBPP("INTERFACE\\popup.sti", VObjectDesc.ImageFile);
// CHECKF(AddVideoObject(&VObjectDesc, &guiPOPUPBORDERS));
// the sublevels
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\Mine_1.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiSubLevel1));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\Mine_2.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiSubLevel2));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\Mine_3.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiSubLevel3));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\boxes.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiCHARICONS));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\incross.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiCROSS));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
if (iResolution == 0)
{
FilenameForBPP("INTERFACE\\mapinv.sti", VObjectDesc.ImageFile);
}
else if (iResolution == 1)
{
FilenameForBPP("INTERFACE\\mapinv_800x600.sti", VObjectDesc.ImageFile);
}
else if (iResolution == 2)
{
FilenameForBPP("INTERFACE\\mapinv_1024x768.sti", VObjectDesc.ImageFile);
}
if(!AddVideoObject(&VObjectDesc, &guiMAPINV))
{
FilenameForBPP("INTERFACE\\mapinv.sti", VObjectDesc.ImageFile);
}
CHECKF(AddVideoObject(&VObjectDesc, &guiMAPINV));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\map_inv_2nd_gun_cover.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiMapInvSecondHandBlockout));
// the upper left corner piece icons
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\top_left_corner_icons.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiULICONS));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\prison.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiTIXAICON));
HandleLoadOfMapBottomGraphics( );
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\map_item.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiORTAICON));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\mapcursr.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiMAPCURSORS));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\merc_between_sector_icons.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiCHARBETWEENSECTORICONS));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\merc_mvt_green_arrows.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiCHARBETWEENSECTORICONSCLOSE));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\GreenArr.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiLEVELMARKER));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\Helicop.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiHelicopterIcon));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\eta_pop_up.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiMapBorderEtaPopUp));
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\pos2.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiMapBorderHeliSectors));
VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\secondary_gun_hidden.sti", VObjectDesc.ImageFile);
CHECKF( AddVideoObject( &VObjectDesc, &guiSecItemHiddenVO ) );
VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\selectedchararrow.sti", VObjectDesc.ImageFile);
CHECKF( AddVideoObject( &VObjectDesc, &guiSelectedCharArrow ) );
VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\mine.sti", VObjectDesc.ImageFile);
CHECKF( AddVideoObject( &VObjectDesc, &guiMINEICON ) );
VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE;
sprintf( VObjectDesc.ImageFile, "INTERFACE\\hilite.sti" );
AddVideoObject( &VObjectDesc, &guiSectorLocatorGraphicID );
//Kris: Added this because I need to blink the icons button.
VObjectDesc.fCreateFlags = VOBJECT_CREATE_FROMFILE;
sprintf( VObjectDesc.ImageFile, "INTERFACE\\newemail.sti" );
AddVideoObject( &VObjectDesc, &guiNewMailIcons );
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("INTERFACE\\BullsEye.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiBULLSEYE));
// graphic for pool inventory
LoadInventoryPoolGraphic( );
// load border graphics
LoadMapBorderGraphics( );
// load the pop up for the militia pop up box
LoadMilitiaPopUpBox( );
return( TRUE );
}
void HandleRemovalOfPreLoadedMapGraphics( void )
{
-1
View File
@@ -64,7 +64,6 @@ void ReBuildCharactersList( void );
// WANNE - BMP: Initialize world size for a multiplayer game
void InitializeWorldSize( INT16 sSectorX, INT16 sSectorY , INT8 bSectorZ );
BOOLEAN HandlePreloadOfMapGraphics( void );
void HandleRemovalOfPreLoadedMapGraphics( void );
void ChangeSelectedMapSector( INT16 sMapX, INT16 sMapY, INT8 bMapZ );