Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1805 | yogev_ezra | 1 | #include "kosSyst.h" |
2 | #include "kosFile.h" |
||
3 | #include "gfxdef.h" |
||
4 | #include "mainWnd.h" |
||
5 | #include "gameWnd.h" |
||
6 | #include "top10wnd.h" |
||
7 | |||
8 | |||
9 | |||
10 | |||
11 | void kos_Main() |
||
12 | { |
||
13 | int hdrNum, i; |
||
14 | SCompBmpHeader *hdrList; |
||
15 | char *cPtr; |
||
16 | |||
17 | // отделяем имя модуля от пути |
||
18 | cPtr = strrchr( kosExePath, '/' ); |
||
19 | // проверка ;) |
||
20 | /* if ( cPtr == NULL ) |
||
21 | { |
||
22 | // |
||
23 | rtlDebugOutString( "Invalid path to executable." ); |
||
24 | // |
||
25 | return; |
||
26 | }*/ |
||
27 | // |
||
28 | cPtr[1] = 0; |
||
29 | // |
||
30 | strcpy( top10FilePath, kosExePath ); |
||
31 | // |
||
32 | strcpy( top10FilePath + ((cPtr - kosExePath) + 1), "fara.t10" ); |
||
33 | // |
||
34 | PrepareTop10(); |
||
35 | // прикрутим имя файла с графикой |
||
36 | strcpy( cPtr + 1, "fara.gfx" ); |
||
37 | // загружаем картинки из файла |
||
38 | CKosFile gfxRes( kosExePath ); |
||
39 | |||
40 | // читаем количество картинок в файле |
||
41 | if ( gfxRes.Read( (Byte *)&hdrNum, sizeof(hdrNum) ) != sizeof(hdrNum) ) return; |
||
42 | // место под заголовки |
||
43 | hdrList = new SCompBmpHeader[hdrNum]; |
||
44 | // считываем заголовки картинок |
||
45 | gfxRes.Read( (Byte *)hdrList, sizeof(SCompBmpHeader) * hdrNum ); |
||
46 | // распаковываем картинки |
||
47 | mainWndFace.LoadFromArch( &(hdrList[MAIN_FACE_NDX]), &gfxRes, MAIN_FACE_NDX ); |
||
48 | gameFace.LoadFromArch( &(hdrList[GAME_FACE_NDX]), &gfxRes, GAME_FACE_NDX ); |
||
49 | gameBlocks.LoadFromArch( &(hdrList[BUTTONS_NDX]), &gfxRes, BUTTONS_NDX ); |
||
50 | gameNumbers.LoadFromArch( &(hdrList[NUMBERS_NDX]), &gfxRes, NUMBERS_NDX ); |
||
51 | // масштабируем иероглифы к меньшим размерам |
||
52 | for ( i = 0; i < 4; i++ ) |
||
53 | gameBlocksZ[i].Scale(32-i*8,gameBlocks.GetBits()); |
||
54 | // |
||
55 | delete hdrList; |
||
56 | // инициализируем блоки |
||
57 | for ( i = 0; i < blocksNum; i++ ) |
||
58 | { |
||
59 | // |
||
60 | fishki[i] = new CFishka( &gameBlocks, i * blockSize, RGB(0x0) ); |
||
61 | } |
||
62 | // |
||
63 | maxGameLevel = START_LEVEL; |
||
64 | // добавляем маску для событий мыши |
||
65 | kos_SetMaskForEvents( 0x27 ); |
||
66 | // |
||
67 | while ( MainWndLoop() == MW_START_GAME ) |
||
68 | { |
||
69 | GameLoop(); |
||
70 | Top10Loop(); |
||
71 | } |
||
72 | // |
||
73 | for ( i = 0; i < blocksNum; i++ ) |
||
74 | { |
||
75 | delete fishki[i]; |
||
76 | } |
||
77 | // |
||
78 | delete hdrList; |
||
79 | }>>> |
||
80 |