mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
+86
-206
@@ -137,11 +137,7 @@ void EntryInitEditorItemsInfo()
|
|||||||
{
|
{
|
||||||
INT32 i;
|
INT32 i;
|
||||||
INVTYPE *item;
|
INVTYPE *item;
|
||||||
eInfo.uiBuffer = 0;
|
|
||||||
eInfo.fKill = 0;
|
|
||||||
eInfo.fActive = 0;
|
eInfo.fActive = 0;
|
||||||
eInfo.sWidth = 0;
|
|
||||||
eInfo.sHeight = 0;
|
|
||||||
eInfo.sScrollIndex = 0;
|
eInfo.sScrollIndex = 0;
|
||||||
eInfo.sSelItemIndex = 0;
|
eInfo.sSelItemIndex = 0;
|
||||||
eInfo.sHilitedItemIndex = -1;
|
eInfo.sHilitedItemIndex = -1;
|
||||||
@@ -223,20 +219,9 @@ void EntryInitEditorItemsInfo()
|
|||||||
|
|
||||||
void InitEditorItemsInfo(UINT32 uiItemType)
|
void InitEditorItemsInfo(UINT32 uiItemType)
|
||||||
{
|
{
|
||||||
VSURFACE_DESC vs_desc;
|
|
||||||
UINT8 *pDestBuf, *pSrcBuf;
|
|
||||||
UINT32 uiSrcPitchBYTES, uiDestPitchBYTES;
|
|
||||||
INVTYPE *item;
|
INVTYPE *item;
|
||||||
SGPRect SaveRect, NewRect;
|
INT32 i;
|
||||||
HVOBJECT hVObject;
|
|
||||||
UINT32 uiVideoObjectIndex;
|
|
||||||
UINT16 usUselessWidth, usUselessHeight;
|
|
||||||
INT32 sWidth, sOffset, sStart;
|
|
||||||
INT32 i, x, y;
|
|
||||||
UINT16 usCounter;
|
UINT16 usCounter;
|
||||||
CHAR16 pStr[ 100 ];//, pStr2[ 100 ];
|
|
||||||
CHAR16 pItemName[SIZE_ITEM_NAME];
|
|
||||||
UINT8 ubBitDepth;
|
|
||||||
BOOLEAN fTypeMatch;
|
BOOLEAN fTypeMatch;
|
||||||
INT32 iEquipCount = 0;
|
INT32 iEquipCount = 0;
|
||||||
|
|
||||||
@@ -327,106 +312,31 @@ void InitEditorItemsInfo(UINT32 uiItemType)
|
|||||||
//Allocate memory to store all the item pointers.
|
//Allocate memory to store all the item pointers.
|
||||||
if(eInfo.sNumItems)//dnl ch78 271113
|
if(eInfo.sNumItems)//dnl ch78 271113
|
||||||
eInfo.pusItemIndex = (UINT16*)MemAlloc( sizeof(UINT16) * eInfo.sNumItems );
|
eInfo.pusItemIndex = (UINT16*)MemAlloc( sizeof(UINT16) * eInfo.sNumItems );
|
||||||
|
|
||||||
//Disable the appropriate scroll buttons based on the saved scroll index if applicable
|
//Disable the appropriate scroll buttons based on the saved scroll index if applicable
|
||||||
//Left most scroll position
|
|
||||||
DetermineItemsScrolling();
|
DetermineItemsScrolling();
|
||||||
//calculate the width of the buffer based on the number of items.
|
|
||||||
//every pair of items (odd rounded up) requires 60 pixels for width.
|
|
||||||
//the minimum buffer size is 420. Height is always 80 pixels.
|
|
||||||
|
|
||||||
eInfo.sWidth = (eInfo.sNumItems > 12) ? (((INT32) eInfo.sNumItems+1)/2)*60 : 360;//dnl ch77 251113 was (SCREEN_HEIGHT - 120) but editor crash if resolution is 1024x768
|
|
||||||
eInfo.sHeight = 80;
|
|
||||||
// Create item buffer
|
|
||||||
GetCurrentVideoSettings( &usUselessWidth, &usUselessHeight, &ubBitDepth );
|
|
||||||
vs_desc.fCreateFlags = VSURFACE_CREATE_DEFAULT | VSURFACE_SYSTEM_MEM_USAGE;
|
|
||||||
vs_desc.usWidth = eInfo.sWidth;
|
|
||||||
vs_desc.usHeight = eInfo.sHeight;
|
|
||||||
vs_desc.ubBitDepth = ubBitDepth;
|
|
||||||
|
|
||||||
//!!!Memory check. Create the item buffer
|
|
||||||
if(!AddVideoSurface( &vs_desc, &eInfo.uiBuffer ))
|
|
||||||
{
|
|
||||||
eInfo.fKill = TRUE;
|
|
||||||
eInfo.fActive = FALSE;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
pDestBuf = LockVideoSurface(eInfo.uiBuffer, &uiDestPitchBYTES);
|
|
||||||
pSrcBuf = LockVideoSurface(FRAME_BUFFER, &uiSrcPitchBYTES);
|
|
||||||
|
|
||||||
//copy a blank chunk of the editor interface to the new buffer.
|
|
||||||
for( i=0; i<eInfo.sWidth; i+=60 )
|
|
||||||
{
|
|
||||||
Blt16BPPTo16BPP((UINT16 *)pDestBuf, uiDestPitchBYTES,
|
|
||||||
(UINT16 *)pSrcBuf, uiSrcPitchBYTES, 0+i, 0, iScreenWidthOffset + 100, 2 * iScreenHeightOffset + 360, 60, 80 );
|
|
||||||
}
|
|
||||||
|
|
||||||
UnLockVideoSurface(eInfo.uiBuffer);
|
|
||||||
UnLockVideoSurface(FRAME_BUFFER);
|
|
||||||
|
|
||||||
x = 0;
|
|
||||||
y = 0;
|
|
||||||
usCounter = 0;
|
usCounter = 0;
|
||||||
NewRect.iTop = 0;
|
// Go through the items, and depending on the current eInfo.uiItemType, store the item indexes for blitting graphics and names later in RenderEditorItemsInfo()
|
||||||
NewRect.iBottom = eInfo.sHeight;
|
|
||||||
NewRect.iLeft = 0;
|
|
||||||
NewRect.iRight = eInfo.sWidth;
|
|
||||||
GetClippingRect(&SaveRect);
|
|
||||||
SetClippingRect(&NewRect);
|
|
||||||
if( eInfo.uiItemType == TBAR_MODE_ITEM_KEYS )
|
if( eInfo.uiItemType == TBAR_MODE_ITEM_KEYS )
|
||||||
{ //Keys use a totally different method for determining
|
{ //Keys use a totally different method for determining
|
||||||
for( i = 0; i < eInfo.sNumItems; i++ )
|
for( i = 0; i < eInfo.sNumItems; i++ )
|
||||||
{
|
{
|
||||||
//item = &Item[ KeyTable[ 0 ].usItem + LockTable[ i ].usKeyItem ];
|
|
||||||
item = &Item[ KeyTable[ LockTable[ i ].usKeyItem ].usItem ];
|
|
||||||
uiVideoObjectIndex = GetInterfaceGraphicForItem( item );
|
|
||||||
GetVideoObject( &hVObject, uiVideoObjectIndex );
|
|
||||||
|
|
||||||
//Store these item pointers for later when rendering selected items.
|
//Store these item pointers for later when rendering selected items.
|
||||||
//eInfo.pusItemIndex[i] = KeyTable[ 0 ].usItem + LockTable[ i ].usKeyItem;
|
eInfo.pusItemIndex[i] = KeyTable[LockTable[i].usKeyItem].usItem;
|
||||||
eInfo.pusItemIndex[i] = KeyTable[ LockTable[ i ].usKeyItem ].usItem;
|
|
||||||
|
|
||||||
SetFont(SMALLCOMPFONT);
|
|
||||||
SetFontForeground( FONT_MCOLOR_WHITE );
|
|
||||||
SetFontDestBuffer( eInfo.uiBuffer, 0, 0, eInfo.sWidth, eInfo.sHeight, FALSE );
|
|
||||||
|
|
||||||
swprintf( pStr, L"%S", LockTable[ i ].ubEditorName );
|
|
||||||
DisplayWrappedString(x, (UINT16)(y+25), 60, 2, SMALLCOMPFONT, FONT_WHITE, pStr, FONT_BLACK, TRUE, CENTER_JUSTIFIED );
|
|
||||||
|
|
||||||
UINT16 usGraphicNum = g_bUsePngItemImages ? 0 : item->ubGraphicNum;
|
|
||||||
//Calculate the center position of the graphic in a 60 pixel wide area.
|
|
||||||
sWidth = hVObject->pETRLEObject[usGraphicNum].usWidth;
|
|
||||||
sOffset = hVObject->pETRLEObject[usGraphicNum].sOffsetX;
|
|
||||||
sStart = x + (60 - sWidth - sOffset*2) / 2;
|
|
||||||
|
|
||||||
BltVideoObjectOutlineFromIndex( eInfo.uiBuffer, uiVideoObjectIndex, usGraphicNum, sStart, y+2, 0, FALSE );
|
|
||||||
|
|
||||||
//cycle through the various slot positions (0,0), (0,40), (60,0), (60,40), (120,0)...
|
|
||||||
if( y == 0 )
|
|
||||||
{
|
|
||||||
y = 40;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
y = 0;
|
|
||||||
x += 60;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else for( i = 0; i < eInfo.sNumItems; i++ )
|
else for( i = 0; i < eInfo.sNumItems; i++ )
|
||||||
{
|
{
|
||||||
|
|
||||||
fTypeMatch = FALSE;
|
fTypeMatch = FALSE;
|
||||||
while( usCounter<MAXITEMS && !fTypeMatch )
|
while( usCounter<MAXITEMS && !fTypeMatch )
|
||||||
{
|
{
|
||||||
if ( Item[usCounter].usItemClass == 0 )
|
if ( Item[usCounter].usItemClass == 0 )
|
||||||
{
|
{
|
||||||
//break;
|
|
||||||
usCounter++;
|
usCounter++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
item = &Item[usCounter];
|
item = &Item[usCounter];
|
||||||
//if( Item[usCounter].fFlags & ITEM_NOT_EDITOR )
|
|
||||||
if(item->notineditor)
|
if(item->notineditor)
|
||||||
{
|
{
|
||||||
usCounter++;
|
usCounter++;
|
||||||
@@ -495,99 +405,12 @@ void InitEditorItemsInfo(UINT32 uiItemType)
|
|||||||
}
|
}
|
||||||
if( fTypeMatch )
|
if( fTypeMatch )
|
||||||
{
|
{
|
||||||
|
|
||||||
uiVideoObjectIndex = GetInterfaceGraphicForItem( item );
|
|
||||||
GetVideoObject( &hVObject, uiVideoObjectIndex );
|
|
||||||
|
|
||||||
//Store these item pointers for later when rendering selected items.
|
//Store these item pointers for later when rendering selected items.
|
||||||
eInfo.pusItemIndex[i] = usCounter;
|
eInfo.pusItemIndex[i] = usCounter;
|
||||||
|
|
||||||
SetFont(SMALLCOMPFONT);
|
|
||||||
SetFontForeground( FONT_MCOLOR_WHITE );
|
|
||||||
SetFontDestBuffer( eInfo.uiBuffer, 0, 0, eInfo.sWidth, eInfo.sHeight, FALSE );
|
|
||||||
|
|
||||||
|
|
||||||
if( eInfo.uiItemType != TBAR_MODE_ITEM_TRIGGERS )
|
|
||||||
{
|
|
||||||
LoadItemInfo( usCounter, pItemName, NULL );
|
|
||||||
swprintf( pStr, L"%s", pItemName );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if( i == PRESSURE_ACTION_ID )
|
|
||||||
{
|
|
||||||
swprintf( pStr, pInitEditorItemsInfoText[0] );
|
|
||||||
}
|
|
||||||
else if( i < 2 )
|
|
||||||
{
|
|
||||||
if( usCounter == SWITCH )
|
|
||||||
swprintf( pStr, pInitEditorItemsInfoText[5] );
|
|
||||||
else
|
|
||||||
swprintf( pStr, pInitEditorItemsInfoText[1] );
|
|
||||||
}
|
|
||||||
else if( i < 4 )
|
|
||||||
{
|
|
||||||
if( usCounter == SWITCH )
|
|
||||||
swprintf( pStr, pInitEditorItemsInfoText[6] );
|
|
||||||
else
|
|
||||||
swprintf( pStr, pInitEditorItemsInfoText[2] );
|
|
||||||
}
|
|
||||||
else if( i < 6 )
|
|
||||||
{
|
|
||||||
if( usCounter == SWITCH )
|
|
||||||
swprintf( pStr, pInitEditorItemsInfoText[7] );
|
|
||||||
else
|
|
||||||
swprintf( pStr, pInitEditorItemsInfoText[3] );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if( usCounter == SWITCH )
|
|
||||||
swprintf( pStr, pInitEditorItemsInfoText[8], (i-4)/2 );
|
|
||||||
else
|
|
||||||
swprintf( pStr, pInitEditorItemsInfoText[4], (i-4)/2 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DisplayWrappedString(x, (UINT16)(y+25), 60, 2, SMALLCOMPFONT, FONT_WHITE, pStr, FONT_BLACK, TRUE, CENTER_JUSTIFIED );
|
|
||||||
|
|
||||||
UINT16 usGraphicNum = g_bUsePngItemImages ? 0 : item->ubGraphicNum;
|
|
||||||
if(usGraphicNum < hVObject->usNumberOfObjects)
|
|
||||||
{
|
|
||||||
//Calculate the center position of the graphic in a 60 pixel wide area.
|
|
||||||
sWidth = hVObject->pETRLEObject[usGraphicNum].usWidth;
|
|
||||||
sOffset = hVObject->pETRLEObject[usGraphicNum].sOffsetX;
|
|
||||||
sStart = x + (60 - sWidth - sOffset*2) / 2;
|
|
||||||
|
|
||||||
if( sWidth && sWidth > 0 )
|
|
||||||
{
|
|
||||||
BltVideoObjectOutlineFromIndex( eInfo.uiBuffer, uiVideoObjectIndex, usGraphicNum, sStart, y+2, 0, FALSE );
|
|
||||||
}
|
|
||||||
|
|
||||||
//cycle through the various slot positions (0,0), (0,40), (60,0), (60,40), (120,0)...
|
|
||||||
if( y == 0 )
|
|
||||||
{
|
|
||||||
y = 40;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
y = 0;
|
|
||||||
x += 60;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
static vfs::Log& editorLog = *vfs::Log::create(L"EditorItems.log");
|
|
||||||
editorLog << L"Tried to access item ["
|
|
||||||
<< item->ubGraphicNum << L"/" << hVObject->usNumberOfObjects
|
|
||||||
<< L"]" << vfs::Log::endl;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
usCounter++;
|
usCounter++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SetFontDestBuffer( FRAME_BUFFER, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, FALSE );
|
|
||||||
SetClippingRect(&SaveRect);
|
|
||||||
gfRenderTaskbar = TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DetermineItemsScrolling()
|
void DetermineItemsScrolling()
|
||||||
@@ -607,8 +430,6 @@ void DetermineItemsScrolling()
|
|||||||
|
|
||||||
void RenderEditorItemsInfo()
|
void RenderEditorItemsInfo()
|
||||||
{
|
{
|
||||||
UINT8 *pDestBuf, *pSrcBuf;
|
|
||||||
UINT32 uiSrcPitchBYTES, uiDestPitchBYTES;
|
|
||||||
INVTYPE *item;
|
INVTYPE *item;
|
||||||
HVOBJECT hVObject;
|
HVOBJECT hVObject;
|
||||||
UINT32 uiVideoObjectIndex;
|
UINT32 uiVideoObjectIndex;
|
||||||
@@ -627,14 +448,6 @@ void RenderEditorItemsInfo()
|
|||||||
{ //Mouse has moved out of the items display region -- so nothing can be highlighted.
|
{ //Mouse has moved out of the items display region -- so nothing can be highlighted.
|
||||||
eInfo.sHilitedItemIndex = -1;
|
eInfo.sHilitedItemIndex = -1;
|
||||||
}
|
}
|
||||||
pDestBuf = LockVideoSurface(FRAME_BUFFER, &uiDestPitchBYTES);
|
|
||||||
pSrcBuf = LockVideoSurface(eInfo.uiBuffer, &uiSrcPitchBYTES);
|
|
||||||
|
|
||||||
Blt16BPPTo16BPP((UINT16 *)pDestBuf, uiDestPitchBYTES,
|
|
||||||
(UINT16 *)pSrcBuf, uiSrcPitchBYTES, iScreenWidthOffset + 110, 2 * iScreenHeightOffset + 360, 60*eInfo.sScrollIndex, 0, 360, 80 );
|
|
||||||
|
|
||||||
UnLockVideoSurface(eInfo.uiBuffer);
|
|
||||||
UnLockVideoSurface(FRAME_BUFFER);
|
|
||||||
|
|
||||||
//calculate the min and max index that is currently shown. This determines
|
//calculate the min and max index that is currently shown. This determines
|
||||||
//if the highlighted and/or selected items are drawn with the outlines.
|
//if the highlighted and/or selected items are drawn with the outlines.
|
||||||
@@ -685,26 +498,101 @@ void RenderEditorItemsInfo()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//draw item index no & the numbers of each visible item that currently resides in the world.
|
|
||||||
|
|
||||||
|
//draw item graphics, name, index number & the numbers of each visible item that currently resides in the world.
|
||||||
maxIndex = min( maxIndex, eInfo.sNumItems-1 );
|
maxIndex = min( maxIndex, eInfo.sNumItems-1 );
|
||||||
for( i = minIndex; i <= maxIndex; i++ )
|
for( i = minIndex; i <= maxIndex; i++ )
|
||||||
{
|
{
|
||||||
x = iScreenWidthOffset + (i/2 - eInfo.sScrollIndex)*60 + 110;
|
x = iScreenWidthOffset + (i/2 - eInfo.sScrollIndex)*60 + 110;
|
||||||
y = 2 * iScreenHeightOffset + 360 + (i % 2) * 40;
|
y = 2 * iScreenHeightOffset + 360 + (i % 2) * 40;
|
||||||
SetFont( BLOCKFONTNARROW );
|
|
||||||
SetFontForeground( FONT_LTGREEN );
|
|
||||||
SetFontShadow( FONT_NEARBLACK );
|
|
||||||
|
|
||||||
// item index no
|
|
||||||
|
// Blit item graphics on demand based on what is visible
|
||||||
|
UINT16 itemIndex = eInfo.pusItemIndex[i];
|
||||||
|
item = &Item[itemIndex];
|
||||||
|
uiVideoObjectIndex = GetInterfaceGraphicForItem(item);
|
||||||
|
GetVideoObject(&hVObject, uiVideoObjectIndex);
|
||||||
|
UINT16 usGraphicNum = g_bUsePngItemImages ? 0 : item->ubGraphicNum;
|
||||||
|
if (usGraphicNum >= hVObject->usNumberOfObjects) // Tried to access graphics outside of hvObject's indices
|
||||||
|
{
|
||||||
|
static vfs::Log& editorLog = *vfs::Log::create(L"EditorItems.log");
|
||||||
|
editorLog << L"Tried to access item ["
|
||||||
|
<< item->ubGraphicNum << L"/" << hVObject->usNumberOfObjects
|
||||||
|
<< L"]" << vfs::Log::endl;
|
||||||
|
}
|
||||||
|
sWidth = hVObject->pETRLEObject[usGraphicNum].usWidth;
|
||||||
|
sOffset = hVObject->pETRLEObject[usGraphicNum].sOffsetX;
|
||||||
|
sStart = x + (60 - sWidth - sOffset * 2) / 2;
|
||||||
|
BltVideoObjectOutlineFromIndex(FRAME_BUFFER, uiVideoObjectIndex, usGraphicNum, sStart, y + 2, Get16BPPColor(FROMRGB(250, 0, 0)), FALSE);
|
||||||
|
|
||||||
|
|
||||||
|
// Display item name
|
||||||
|
CHAR16 pStr[100];
|
||||||
|
CHAR16 pItemName[SIZE_ITEM_NAME];
|
||||||
|
|
||||||
|
if (eInfo.uiItemType == TBAR_MODE_ITEM_KEYS)
|
||||||
|
{
|
||||||
|
swprintf(pStr, L"%S", LockTable[i].ubEditorName);
|
||||||
|
}
|
||||||
|
else if (eInfo.uiItemType != TBAR_MODE_ITEM_TRIGGERS)
|
||||||
|
{
|
||||||
|
LoadItemInfo(eInfo.pusItemIndex[i], pItemName, NULL);
|
||||||
|
swprintf(pStr, L"%s", pItemName);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (i == PRESSURE_ACTION_ID)
|
||||||
|
{
|
||||||
|
swprintf(pStr, pInitEditorItemsInfoText[0]);
|
||||||
|
}
|
||||||
|
else if (i < 2)
|
||||||
|
{
|
||||||
|
if (itemIndex == SWITCH)
|
||||||
|
swprintf(pStr, pInitEditorItemsInfoText[5]);
|
||||||
|
else
|
||||||
|
swprintf(pStr, pInitEditorItemsInfoText[1]);
|
||||||
|
}
|
||||||
|
else if (i < 4)
|
||||||
|
{
|
||||||
|
if (itemIndex == SWITCH)
|
||||||
|
swprintf(pStr, pInitEditorItemsInfoText[6]);
|
||||||
|
else
|
||||||
|
swprintf(pStr, pInitEditorItemsInfoText[2]);
|
||||||
|
}
|
||||||
|
else if (i < 6)
|
||||||
|
{
|
||||||
|
if (itemIndex == SWITCH)
|
||||||
|
swprintf(pStr, pInitEditorItemsInfoText[7]);
|
||||||
|
else
|
||||||
|
swprintf(pStr, pInitEditorItemsInfoText[3]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (itemIndex == SWITCH)
|
||||||
|
swprintf(pStr, pInitEditorItemsInfoText[8], (i - 4) / 2);
|
||||||
|
else
|
||||||
|
swprintf(pStr, pInitEditorItemsInfoText[4], (i - 4) / 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SetFont(SMALLCOMPFONT);
|
||||||
|
SetFontForeground(FONT_MCOLOR_WHITE);
|
||||||
|
DisplayWrappedString(x, (UINT16)(y + 25), 60, 2, SMALLCOMPFONT, FONT_WHITE, pStr, FONT_BLACK, TRUE, CENTER_JUSTIFIED);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SetFont(BLOCKFONTNARROW);
|
||||||
|
SetFontForeground(FONT_LTGREEN);
|
||||||
|
SetFontShadow(FONT_NEARBLACK);
|
||||||
|
// item index number
|
||||||
mprintf( x + 12, y + 18, L"%d", eInfo.pusItemIndex[ i ] );
|
mprintf( x + 12, y + 18, L"%d", eInfo.pusItemIndex[ i ] );
|
||||||
|
|
||||||
// index no within usItemClass
|
// index number within usItemClass
|
||||||
SetFontForeground( FONT_LTBLUE );
|
SetFontForeground( FONT_LTBLUE );
|
||||||
mprintf( x + 40, y + 18, L"%d", i );
|
mprintf( x + 40, y + 18, L"%d", i );
|
||||||
|
|
||||||
// numbers of each visible item
|
// numbers of each visible item
|
||||||
usNumItems = CountNumberOfEditorPlacementsInWorld( i, &usQuantity );
|
usNumItems = CountNumberOfEditorPlacementsInWorld( i, &usQuantity );
|
||||||
|
|
||||||
if( usNumItems )
|
if( usNumItems )
|
||||||
{
|
{
|
||||||
SetFont( FONT10ARIAL );
|
SetFont( FONT10ARIAL );
|
||||||
@@ -719,21 +607,13 @@ void RenderEditorItemsInfo()
|
|||||||
|
|
||||||
void ClearEditorItemsInfo()
|
void ClearEditorItemsInfo()
|
||||||
{
|
{
|
||||||
if( eInfo.uiBuffer )
|
|
||||||
{
|
|
||||||
DeleteVideoSurfaceFromIndex( eInfo.uiBuffer );
|
|
||||||
eInfo.uiBuffer = 0;
|
|
||||||
}
|
|
||||||
if( eInfo.pusItemIndex )
|
if( eInfo.pusItemIndex )
|
||||||
{
|
{
|
||||||
MemFree( eInfo.pusItemIndex );
|
MemFree( eInfo.pusItemIndex );
|
||||||
eInfo.pusItemIndex = NULL;
|
eInfo.pusItemIndex = NULL;
|
||||||
}
|
}
|
||||||
DisableEditorRegion( ITEM_REGION_ID );
|
DisableEditorRegion( ITEM_REGION_ID );
|
||||||
eInfo.fKill = 0;
|
|
||||||
eInfo.fActive = 0;
|
eInfo.fActive = 0;
|
||||||
eInfo.sWidth = 0;
|
|
||||||
eInfo.sHeight = 0;
|
|
||||||
eInfo.sNumItems = 0;
|
eInfo.sNumItems = 0;
|
||||||
//save the highlighted selections
|
//save the highlighted selections
|
||||||
switch( eInfo.uiItemType )
|
switch( eInfo.uiItemType )
|
||||||
|
|||||||
@@ -6,14 +6,9 @@
|
|||||||
|
|
||||||
typedef struct{
|
typedef struct{
|
||||||
BOOLEAN fGameInit; //Used for initializing save variables the first time.
|
BOOLEAN fGameInit; //Used for initializing save variables the first time.
|
||||||
//This flag is initialize at
|
|
||||||
BOOLEAN fKill; //flagged for deallocation.
|
|
||||||
BOOLEAN fActive; //currently active
|
BOOLEAN fActive; //currently active
|
||||||
UINT16 *pusItemIndex; //a dynamic array of Item indices
|
UINT16 *pusItemIndex; //a dynamic array of Item indices
|
||||||
UINT32 uiBuffer; //index of buffer
|
|
||||||
UINT32 uiItemType; //Weapons, ammo, armour, explosives, equipment
|
UINT32 uiItemType; //Weapons, ammo, armour, explosives, equipment
|
||||||
//Kaiden/Buggler: was previously INT16 - Fix for number of items capped by class in editor
|
|
||||||
INT32 sWidth, sHeight; //width and height of buffer
|
|
||||||
INT16 sNumItems; //total number of items in the current class of item.
|
INT16 sNumItems; //total number of items in the current class of item.
|
||||||
INT16 sSelItemIndex; //currently selected item index.
|
INT16 sSelItemIndex; //currently selected item index.
|
||||||
INT16 sHilitedItemIndex;
|
INT16 sHilitedItemIndex;
|
||||||
|
|||||||
Reference in New Issue
Block a user