Files
source/Laptop/IMPVideoObjects.cpp
T
Overhaul 7a27e7105d New attack busy system
Added missing #includes

Added LUA scripting and console

Changed the way tracers are visualized, so they work more like real tracers instead of a light fountain

Fixed signedness of many grid variables used in GetMouseMapPos calls

Fixed enemy weapon choosing:  Sometimes a mortar is chosen but later rejected, but the grenade class was not reset.  Caused assertion failure

Added checks so enemies don't try to chuck RPG grenades with their hands

Now possible to shoot a someone in the head if he's in water

Fixed InitSightArrays to also clear soldier interrupt duel points.  This was causing an assertion failure elsewhere in the code because the interrupt list still had soldiers on it sometimes when this function was called.

Soldiers are much less willing to forfeit their turn over an attempt to use more APs than they have

Removed early setting of muzzle flash.  This would allow enemies to get an interrupt before you even fired.

Fixed item dropping by AI.  If AI tried to drop something while standing it would cause deadlock

Change to greatly speed up closing the sector inventory window in an unloaded sector

Added conditional compile flag to always give robot weapon ready advantage, even for 360 degree sighting


Check builddefines.h for the conditional flags.  Of greatest interest might be LUA_CONSOLE.  This will cause the game to bring up a command console when run.  However this console is severely lacking in many areas.  If anybody knows of an open-source terminal/console that could be used instead, it would be appreciated.  The existing console does bad things when you try to close it, and since it counts as a separate app, it pauses the game while it has focus.

LUA scripting is very limited, basically just proof of concept.  There is one global variable, the Soldiers array.  An array index gives you the soldier in that slot in the currently loaded sector.  The soldier has a few things that can be accessed:  name (short name); fullname (long name); grid (current grid #, can be changed); walkto(grid) (function to walk to another grid); runto(grid) (function to run to another grid)


git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@924 3b4a5df2-a311-0410-b5c6-a8a6f20db521
2007-06-09 09:01:04 +00:00

1426 lines
32 KiB
C++

#ifdef PRECOMPILEDHEADERS
#include "Laptop All.h"
#else
#include "IMPVideoObjects.h"
#include "Utilities.h"
#include "WCheck.h"
#include "Debug.h"
#include "WordWrap.h"
#include "Render Dirty.h"
#include "Encrypted File.h"
#include "cursors.h"
#include "IMP HomePage.h"
#include "laptop.h"
#include "Multi Language Graphic Utils.h"
#include "IMP Attribute Selection.h"
#endif
// globals
// video object handles
UINT32 guiBACKGROUND;
UINT32 guiIMPSYMBOL;
UINT32 guiBEGININDENT;
UINT32 guiACTIVATIONINDENT;
UINT32 guiFRONTPAGEINDENT;
UINT32 guiFULLNAMEINDENT;
UINT32 guiNAMEINDENT;
UINT32 guiNICKNAMEINDENT;
UINT32 guiGENDERINDENT;
UINT32 guiSMALLFRAME;
UINT32 guiANALYSE;
UINT32 guiATTRIBUTEGRAPH;
UINT32 guiATTRIBUTEGRAPHBAR;
UINT32 guiSMALLSILHOUETTE;
UINT32 guiLARGESILHOUETTE;
UINT32 guiPORTRAITFRAME;
UINT32 guiSLIDERBAR;
UINT32 guiATTRIBUTEFRAME;
UINT32 guiATTRIBUTESCREENINDENT1;
UINT32 guiATTRIBUTESCREENINDENT2;
UINT32 guiATTRIBUTEBAR;
UINT32 guiBUTTON2IMAGE;
UINT32 guiBUTTON1IMAGE;
UINT32 guiBUTTON4IMAGE;
//UINT32 guiPORTRAITFRAME; // duplicate definition, look up a few lines (jonathanl)
UINT32 guiMAININDENT;
UINT32 guiLONGINDENT;
UINT32 guiSHORTINDENT;
UINT32 guiSHORTHINDENT;
UINT32 guiSHORT2INDENT;
UINT32 guiLONGHINDENT;
UINT32 guiQINDENT;
UINT32 guiA1INDENT;
UINT32 guiA2INDENT;
UINT32 guiAVGMERCINDENT;
UINT32 guiABOUTUSINDENT;
UINT32 guiSHORT2HINDENT;
// position defines
#define CHAR_PROFILE_BACKGROUND_TILE_WIDTH 125
#define CHAR_PROFILE_BACKGROUND_TILE_HEIGHT 100
extern void DrawBonusPointsRemaining( void );
BOOLEAN LoadProfileBackGround( void )
{
VOBJECT_DESC VObjectDesc;
// this procedure will load in the graphics for the generic background
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\MetalBackGround.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiBACKGROUND));
return (TRUE) ;
}
void RemoveProfileBackGround( void )
{
// remove background
DeleteVideoObjectFromIndex( guiBACKGROUND );
return;
}
void RenderProfileBackGround( void )
{
HVOBJECT hHandle;
INT32 iCurrentHeight = 0;
INT32 iCounter = 0;
// this procedure will render the generic backgound to the screen
// get the video object
GetVideoObject(&hHandle, guiBACKGROUND);
// render each row 5 times wide, 5 tiles high
for(iCounter = 0; iCounter < 4; iCounter++)
{
// blt background to screen from left to right
BltVideoObject(FRAME_BUFFER, hHandle, 0,LAPTOP_SCREEN_UL_X + 0 * CHAR_PROFILE_BACKGROUND_TILE_WIDTH, LAPTOP_SCREEN_WEB_UL_Y + iCounter * CHAR_PROFILE_BACKGROUND_TILE_HEIGHT, VO_BLT_SRCTRANSPARENCY,NULL);
BltVideoObject(FRAME_BUFFER, hHandle, 0,LAPTOP_SCREEN_UL_X + 1 * CHAR_PROFILE_BACKGROUND_TILE_WIDTH, LAPTOP_SCREEN_WEB_UL_Y + iCounter * CHAR_PROFILE_BACKGROUND_TILE_HEIGHT, VO_BLT_SRCTRANSPARENCY,NULL);
BltVideoObject(FRAME_BUFFER, hHandle, 0,LAPTOP_SCREEN_UL_X + 2 * CHAR_PROFILE_BACKGROUND_TILE_WIDTH, LAPTOP_SCREEN_WEB_UL_Y + iCounter * CHAR_PROFILE_BACKGROUND_TILE_HEIGHT, VO_BLT_SRCTRANSPARENCY,NULL);
BltVideoObject(FRAME_BUFFER, hHandle, 0,LAPTOP_SCREEN_UL_X + 3 * CHAR_PROFILE_BACKGROUND_TILE_WIDTH, LAPTOP_SCREEN_WEB_UL_Y + iCounter * CHAR_PROFILE_BACKGROUND_TILE_HEIGHT, VO_BLT_SRCTRANSPARENCY,NULL);
}
// dirty buttons
MarkButtonsDirty( );
// force refresh of screen
InvalidateRegion( LAPTOP_SCREEN_UL_X, LAPTOP_SCREEN_WEB_UL_Y, SCREEN_WIDTH, SCREEN_HEIGHT );
return;
}
BOOLEAN LoadIMPSymbol( void )
{
// this procedure will load the IMP main symbol into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
GetMLGFilename( VObjectDesc.ImageFile, MLG_IMPSYMBOL );
CHECKF(AddVideoObject(&VObjectDesc, &guiIMPSYMBOL));
return (TRUE) ;
}
void DeleteIMPSymbol( void )
{
// remove IMP symbol
DeleteVideoObjectFromIndex( guiIMPSYMBOL );
return;
}
void RenderIMPSymbol(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiIMPSYMBOL);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadBeginIndent( void )
{
// this procedure will load the indent main symbol into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\BeginScreenIndent.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiBEGININDENT));
return (TRUE) ;
}
void DeleteBeginIndent( void )
{
// remove indent symbol
DeleteVideoObjectFromIndex( guiBEGININDENT );
return;
}
void RenderBeginIndent(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiBEGININDENT);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadActivationIndent( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\ActivationIndent.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiACTIVATIONINDENT));
return (TRUE) ;
}
void DeleteActivationIndent( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiACTIVATIONINDENT );
return;
}
void RenderActivationIndent(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiACTIVATIONINDENT);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadFrontPageIndent( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\FrontPageIndent.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiFRONTPAGEINDENT));
return (TRUE) ;
}
void DeleteFrontPageIndent( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiFRONTPAGEINDENT );
return;
}
void RenderFrontPageIndent(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiFRONTPAGEINDENT);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadAnalyse( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\Analyze.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiANALYSE));
return (TRUE) ;
}
void DeleteAnalyse( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiANALYSE );
return;
}
void RenderAnalyse(INT16 sX, INT16 sY, INT8 bImageNumber)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiANALYSE);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, bImageNumber, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadAttributeGraph( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\Attributegraph.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiATTRIBUTEGRAPH));
return (TRUE) ;
}
void DeleteAttributeGraph( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiATTRIBUTEGRAPH );
return;
}
void RenderAttributeGraph(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiATTRIBUTEGRAPH);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadAttributeGraphBar( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\AttributegraphBar.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiATTRIBUTEGRAPHBAR));
return (TRUE) ;
}
void DeleteAttributeBarGraph( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiATTRIBUTEGRAPHBAR );
return;
}
void RenderAttributeBarGraph(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiATTRIBUTEGRAPHBAR);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadFullNameIndent( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\FullNameIndent.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiFULLNAMEINDENT));
return (TRUE);
}
void DeleteFullNameIndent( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiFULLNAMEINDENT );
return;
}
void RenderFullNameIndent(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiFULLNAMEINDENT);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadNickNameIndent( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\NickName.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiNICKNAMEINDENT));
return (TRUE);
}
void DeleteNickNameIndent( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiNICKNAMEINDENT );
return;
}
void RenderNickNameIndent(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiNICKNAMEINDENT);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadNameIndent( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\NameIndent.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiNAMEINDENT));
return (TRUE);
}
void DeleteNameIndent( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiNAMEINDENT );
return;
}
void RenderNameIndent(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiNAMEINDENT);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadGenderIndent( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\GenderIndent.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiGENDERINDENT));
return (TRUE);
}
void DeleteGenderIndent( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiGENDERINDENT );
return;
}
void RenderGenderIndent(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiGENDERINDENT);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadSmallFrame( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\SmallFrame.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiSMALLFRAME));
return (TRUE);
}
void DeleteSmallFrame( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiSMALLFRAME );
return;
}
void RenderSmallFrame(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiSMALLFRAME);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadSmallSilhouette( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\SmallSilhouette.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiSMALLSILHOUETTE));
return (TRUE);
}
void DeleteSmallSilhouette( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiSMALLSILHOUETTE );
return;
}
void RenderSmallSilhouette(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiSMALLSILHOUETTE);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadLargeSilhouette( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\largesilhouette.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiLARGESILHOUETTE));
return (TRUE);
}
void DeleteLargeSilhouette( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiLARGESILHOUETTE );
return;
}
void RenderLargeSilhouette(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiLARGESILHOUETTE);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadAttributeFrame( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\attributeframe.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiATTRIBUTEFRAME));
return (TRUE);
}
void DeleteAttributeFrame( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiATTRIBUTEFRAME );
return;
}
void RenderAttributeFrame(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
INT32 iCounter = 0;
INT16 sCurrentY = 0;
// get the video object
GetVideoObject(&hHandle, guiATTRIBUTEFRAME);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
sCurrentY += 10;
for( iCounter = 0; iCounter < 10; iCounter++ )
{
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 2, LAPTOP_SCREEN_UL_X + sX + 134, LAPTOP_SCREEN_WEB_UL_Y + sY + sCurrentY, VO_BLT_SRCTRANSPARENCY,NULL);
BltVideoObject(FRAME_BUFFER, hHandle, 1, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY + sCurrentY, VO_BLT_SRCTRANSPARENCY,NULL);
BltVideoObject(FRAME_BUFFER, hHandle, 3, LAPTOP_SCREEN_UL_X + sX + 368, LAPTOP_SCREEN_WEB_UL_Y + sY + sCurrentY, VO_BLT_SRCTRANSPARENCY,NULL);
sCurrentY += 20;
}
BltVideoObject(FRAME_BUFFER, hHandle, 4, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY + sCurrentY, VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
void RenderAttributeFrameForIndex( INT16 sX, INT16 sY, INT32 iIndex )
{
INT16 sCurrentY = 0;
HVOBJECT hHandle;
// valid index?
if( iIndex == -1 )
{
return;
}
sCurrentY = ( INT16 )( 10 + ( iIndex * 20 ) );
// get the video object
GetVideoObject(&hHandle, guiATTRIBUTEFRAME);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 2, LAPTOP_SCREEN_UL_X + sX + 134, LAPTOP_SCREEN_WEB_UL_Y + sY + sCurrentY, VO_BLT_SRCTRANSPARENCY,NULL);
RenderAttrib2IndentFrame(350, 42 );
// amt of bonus pts
DrawBonusPointsRemaining( );
// render attribute boxes
RenderAttributeBoxes( );
InvalidateRegion( LAPTOP_SCREEN_UL_X + sX + 134, LAPTOP_SCREEN_WEB_UL_Y + sY + sCurrentY, LAPTOP_SCREEN_UL_X + sX + 400, LAPTOP_SCREEN_WEB_UL_Y + sY + sCurrentY + 21 );
return;
}
BOOLEAN LoadSliderBar( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\attributeslider.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiSLIDERBAR));
return (TRUE);
}
void DeleteSliderBar( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiSLIDERBAR );
return;
}
void RenderSliderBar(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiSLIDERBAR);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadButton2Image( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\button_2.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiBUTTON2IMAGE));
return (TRUE);
}
void DeleteButton2Image( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiBUTTON2IMAGE );
return;
}
void RenderButton2Image(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiBUTTON2IMAGE);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadButton4Image( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\button_4.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiBUTTON4IMAGE));
return (TRUE);
}
void DeleteButton4Image( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiBUTTON4IMAGE );
return;
}
void RenderButton4Image(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiBUTTON4IMAGE);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadButton1Image( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\button_1.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiBUTTON1IMAGE));
return (TRUE);
}
void DeleteButton1Image( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiBUTTON1IMAGE );
return;
}
void RenderButton1Image(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiBUTTON1IMAGE);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadPortraitFrame( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\Voice_PortraitFrame.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiPORTRAITFRAME));
return (TRUE);
}
void DeletePortraitFrame( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiPORTRAITFRAME );
return;
}
void RenderPortraitFrame(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiPORTRAITFRAME);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadMainIndentFrame( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\mainprofilepageindent.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiMAININDENT));
return (TRUE);
}
void DeleteMainIndentFrame( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiMAININDENT );
return;
}
void RenderMainIndentFrame(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiMAININDENT);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadQtnLongIndentFrame( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\longindent.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiLONGINDENT));
return (TRUE);
}
void DeleteQtnLongIndentFrame( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiLONGINDENT );
return;
}
void RenderQtnLongIndentFrame(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiLONGINDENT);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadQtnShortIndentFrame( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\shortindent.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiSHORTINDENT));
return (TRUE);
}
void DeleteQtnShortIndentFrame( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiSHORTINDENT );
return;
}
void RenderQtnShortIndentFrame(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiSHORTINDENT);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadQtnLongIndentHighFrame( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\longindenthigh.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiLONGHINDENT));
return (TRUE);
}
void DeleteQtnLongIndentHighFrame( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiLONGHINDENT );
return;
}
void RenderQtnLongIndentHighFrame(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiLONGHINDENT);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadQtnShortIndentHighFrame( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\shortindenthigh.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiSHORTHINDENT));
return (TRUE);
}
void DeleteQtnShortIndentHighFrame( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiSHORTHINDENT );
return;
}
void RenderQtnShortIndentHighFrame(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiSHORTHINDENT);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadQtnIndentFrame( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\questionindent.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiQINDENT));
return (TRUE);
}
void DeleteQtnIndentFrame( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiQINDENT );
return;
}
void RenderQtnIndentFrame(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiQINDENT);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadAttrib1IndentFrame( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\attributescreenindent_1.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiA1INDENT));
return (TRUE);
}
void DeleteAttrib1IndentFrame( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiA1INDENT );
return;
}
void RenderAttrib1IndentFrame(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiA1INDENT);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadAttrib2IndentFrame( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\attributescreenindent_2.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiA2INDENT));
return (TRUE);
}
void DeleteAttrib2IndentFrame( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiA2INDENT );
return;
}
void RenderAttrib2IndentFrame(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiA2INDENT);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadAvgMercIndentFrame( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\anaveragemercindent.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiAVGMERCINDENT));
return (TRUE);
}
void DeleteAvgMercIndentFrame( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiAVGMERCINDENT );
return;
}
void RenderAvgMercIndentFrame(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiAVGMERCINDENT);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadAboutUsIndentFrame( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\aboutusindent.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiABOUTUSINDENT));
return (TRUE);
}
void DeleteAboutUsIndentFrame( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiABOUTUSINDENT );
return;
}
void RenderAboutUsIndentFrame(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiABOUTUSINDENT);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadQtnShort2IndentFrame( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\shortindent2.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiSHORT2INDENT));
return (TRUE);
}
void DeleteQtnShort2IndentFrame( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiSHORT2INDENT );
return;
}
void RenderQtnShort2IndentFrame(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiSHORT2INDENT);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}
BOOLEAN LoadQtnShort2IndentHighFrame( void )
{
// this procedure will load the activation indent into memory
VOBJECT_DESC VObjectDesc;
VObjectDesc.fCreateFlags=VOBJECT_CREATE_FROMFILE;
FilenameForBPP("LAPTOP\\shortindent2High.sti", VObjectDesc.ImageFile);
CHECKF(AddVideoObject(&VObjectDesc, &guiSHORT2HINDENT));
return (TRUE);
}
void DeleteQtnShort2IndentHighFrame( void )
{
// remove activation indent symbol
DeleteVideoObjectFromIndex( guiSHORT2HINDENT );
return;
}
void RenderQtnShort2IndentHighFrame(INT16 sX, INT16 sY)
{
HVOBJECT hHandle;
// get the video object
GetVideoObject(&hHandle, guiSHORT2HINDENT);
// blt to sX, sY relative to upper left corner
BltVideoObject(FRAME_BUFFER, hHandle, 0, LAPTOP_SCREEN_UL_X + sX, LAPTOP_SCREEN_WEB_UL_Y + sY , VO_BLT_SRCTRANSPARENCY,NULL);
return;
}