forked from KolibriOS/kolibrios
81 lines
1.9 KiB
C++
81 lines
1.9 KiB
C++
|
#include "kosSyst.h"
|
|||
|
#include "kosFile.h"
|
|||
|
#include "gfxdef.h"
|
|||
|
#include "mainWnd.h"
|
|||
|
#include "gameWnd.h"
|
|||
|
#include "top10wnd.h"
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
void kos_Main()
|
|||
|
{
|
|||
|
int hdrNum, i;
|
|||
|
SCompBmpHeader *hdrList;
|
|||
|
char *cPtr;
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
|||
|
cPtr = strrchr( kosExePath, '/' );
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ;)
|
|||
|
/* if ( cPtr == NULL )
|
|||
|
{
|
|||
|
//
|
|||
|
rtlDebugOutString( "Invalid path to executable." );
|
|||
|
//
|
|||
|
return;
|
|||
|
}*/
|
|||
|
//
|
|||
|
cPtr[1] = 0;
|
|||
|
//
|
|||
|
strcpy( top10FilePath, kosExePath );
|
|||
|
//
|
|||
|
strcpy( top10FilePath + ((cPtr - kosExePath) + 1), "fara.t10" );
|
|||
|
//
|
|||
|
PrepareTop10();
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
strcpy( cPtr + 1, "fara.gfx" );
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
CKosFile gfxRes( kosExePath );
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if ( gfxRes.Read( (Byte *)&hdrNum, sizeof(hdrNum) ) != sizeof(hdrNum) ) return;
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
hdrList = new SCompBmpHeader[hdrNum];
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
gfxRes.Read( (Byte *)hdrList, sizeof(SCompBmpHeader) * hdrNum );
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
mainWndFace.LoadFromArch( &(hdrList[MAIN_FACE_NDX]), &gfxRes, MAIN_FACE_NDX );
|
|||
|
gameFace.LoadFromArch( &(hdrList[GAME_FACE_NDX]), &gfxRes, GAME_FACE_NDX );
|
|||
|
gameBlocks.LoadFromArch( &(hdrList[BUTTONS_NDX]), &gfxRes, BUTTONS_NDX );
|
|||
|
gameNumbers.LoadFromArch( &(hdrList[NUMBERS_NDX]), &gfxRes, NUMBERS_NDX );
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
for ( i = 0; i < 4; i++ )
|
|||
|
gameBlocksZ[i].Scale(32-i*8,gameBlocks.GetBits());
|
|||
|
//
|
|||
|
delete hdrList;
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
for ( i = 0; i < blocksNum; i++ )
|
|||
|
{
|
|||
|
//
|
|||
|
fishki[i] = new CFishka( &gameBlocks, i * blockSize, RGB(0x0) );
|
|||
|
}
|
|||
|
//
|
|||
|
maxGameLevel = START_LEVEL;
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
kos_SetMaskForEvents( 0x27 );
|
|||
|
//
|
|||
|
while ( MainWndLoop() == MW_START_GAME )
|
|||
|
{
|
|||
|
GameLoop();
|
|||
|
Top10Loop();
|
|||
|
}
|
|||
|
//
|
|||
|
for ( i = 0; i < blocksNum; i++ )
|
|||
|
{
|
|||
|
delete fishki[i];
|
|||
|
}
|
|||
|
//
|
|||
|
delete hdrList;
|
|||
|
}
|
|||
|
|