#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; // îòäåëÿåì èìÿ ìîäóëÿ îò ïóòè cPtr = strrchr( kosExePath, '/' ); // ïðîâåðêà ;) /* if ( cPtr == NULL ) { // rtlDebugOutString( "Invalid path to executable." ); // return; }*/ // cPtr[1] = 0; // strcpy( top10FilePath, kosExePath ); // strcpy( top10FilePath + ((cPtr - kosExePath) + 1), "fara.t10" ); // PrepareTop10(); // ïðèêðóòèì èìÿ ôàéëà ñ ãðàôèêîé strcpy( cPtr + 1, "fara.gfx" ); // çàãðóæàåì êàðòèíêè èç ôàéëà CKosFile gfxRes( kosExePath ); // ÷èòàåì êîëè÷åñòâî êàðòèíîê â ôàéëå if ( gfxRes.Read( (Byte *)&hdrNum, sizeof(hdrNum) ) != sizeof(hdrNum) ) return; // ìåñòî ïîä çàãîëîâêè hdrList = new SCompBmpHeader[hdrNum]; // ñ÷èòûâàåì çàãîëîâêè êàðòèíîê gfxRes.Read( (Byte *)hdrList, sizeof(SCompBmpHeader) * hdrNum ); // ðàñïàêîâûâàåì êàðòèíêè 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 ); // ìàñøòàáèðóåì èåðîãëèôû ê ìåíüøèì ðàçìåðàì for ( i = 0; i < 4; i++ ) gameBlocksZ[i].Scale(32-i*8,gameBlocks.GetBits()); // delete hdrList; // èíèöèàëèçèðóåì áëîêè for ( i = 0; i < blocksNum; i++ ) { // fishki[i] = new CFishka( &gameBlocks, i * blockSize, RGB(0x0) ); } // maxGameLevel = START_LEVEL; // äîáàâëÿåì ìàñêó äëÿ ñîáûòèé ìûøè kos_SetMaskForEvents( 0x27 ); // while ( MainWndLoop() == MW_START_GAME ) { GameLoop(); Top10Loop(); } // for ( i = 0; i < blocksNum; i++ ) { delete fishki[i]; } // delete hdrList; }