mirror of
https://github.com/KolibriOS/kolibrios.git
synced 2024-12-16 03:42:35 +03:00
b90b0dc20e
git-svn-id: svn://kolibrios.org@4484 a494cfbc-eb01-0410-851d-a64ba20cac60
202 lines
3.7 KiB
C++
202 lines
3.7 KiB
C++
#include "kosSyst.h"
|
||
#include "KosFile.h"
|
||
#include "gfxdef.h"
|
||
#include "mainWnd.h"
|
||
#include "lang.h"
|
||
|
||
|
||
//
|
||
RGB bmPMButton[] = {
|
||
0xCCCCCC, 0xCCCCCC, 0x000000, 0x000000, 0xCCCCCC, 0xCCCCCC,
|
||
0xCCCCCC, 0xCCCCCC, 0x000000, 0x000000, 0xCCCCCC, 0xCCCCCC,
|
||
0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
|
||
0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
|
||
0xCCCCCC, 0xCCCCCC, 0x000000, 0x000000, 0xCCCCCC, 0xCCCCCC,
|
||
0xCCCCCC, 0xCCCCCC, 0x000000, 0x000000, 0xCCCCCC, 0xCCCCCC,
|
||
};
|
||
|
||
|
||
//
|
||
#if LANG == RUS
|
||
char mainWndTitle[] = "PHARAON's CRYPT\0";
|
||
char mainWndCopyright[] = "(C) MMVI by Rabid Rabbit";
|
||
char mainWndMenuStart[] = "Enter -<2D> ç âì ¨£àã";
|
||
char mainWndMenuLevel[] = "<EFBFBD> ç «ìë© ã஢¥ì - %U";
|
||
#else
|
||
char mainWndTitle[] = "PHARAOH's CRYPT\0";
|
||
char mainWndCopyright[] = "(C) MMVI by Rabid Rabbit";
|
||
char mainWndMenuStart[] = "Enter - Start game";
|
||
char mainWndMenuLevel[] = "Starting level - %U";
|
||
#endif
|
||
//
|
||
CKosBitmap mainWndFace;
|
||
//
|
||
Word mcx, mcy;
|
||
|
||
#define BT_SIZE_X_MINUS 4
|
||
#define BT_SIZE_X_PLUS 5
|
||
|
||
//
|
||
int MainWndLoop()
|
||
{
|
||
Byte keyCode;
|
||
Dword buttonID;
|
||
int result;
|
||
static bool firstTime = true;
|
||
|
||
//
|
||
startGameLevel = maxGameLevel;
|
||
//
|
||
if ( firstTime )
|
||
{
|
||
//
|
||
mainWndFace.GetSize( mcx, mcy );
|
||
//
|
||
firstTime = false;
|
||
//
|
||
DrawMainWindow();
|
||
}
|
||
//
|
||
kos_ChangeWindow( -1, -1, mcx + 1, mcy + 21 );
|
||
//
|
||
for ( result = MW_NONE; result == MW_NONE; )
|
||
{
|
||
switch( kos_WaitForEvent() )
|
||
{
|
||
case 1:
|
||
DrawMainWindow();
|
||
break;
|
||
|
||
case 2:
|
||
if ( kos_GetKey( keyCode ) )
|
||
{
|
||
//
|
||
switch ( keyCode )
|
||
{
|
||
case 13: // enter
|
||
result = MW_START_GAME;
|
||
break;
|
||
|
||
case 27: // escape
|
||
result = MW_EXIT_APP;
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 3:
|
||
if ( kos_GetButtonID( buttonID ) )
|
||
{
|
||
//
|
||
switch ( buttonID )
|
||
{
|
||
//
|
||
case 1:
|
||
result = MW_EXIT_APP;
|
||
break;
|
||
case BT_SIZE_X_MINUS:
|
||
if ( --startGameLevel < 1 )
|
||
startGameLevel = 1;
|
||
else
|
||
DrawMainWindow();
|
||
break;
|
||
|
||
//
|
||
case BT_SIZE_X_PLUS:
|
||
if ( ++startGameLevel > maxGameLevel )
|
||
startGameLevel = maxGameLevel;
|
||
else
|
||
DrawMainWindow();
|
||
break;
|
||
|
||
//
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
// êíîïêè
|
||
kos_DefineButton(
|
||
0, 0,
|
||
0, 0,
|
||
BT_SIZE_X_MINUS + 0x80000000,
|
||
0
|
||
);
|
||
//
|
||
kos_DefineButton(
|
||
0, 0,
|
||
0, 0,
|
||
BT_SIZE_X_PLUS + 0x80000000,
|
||
0
|
||
);
|
||
//
|
||
return result;
|
||
}
|
||
|
||
|
||
// ïîëíàÿ îòðèñîâêà ãëàâíîãî îêíà ïðîãðàììû (1)
|
||
void DrawMainWindow()
|
||
{
|
||
char line[64];
|
||
|
||
//
|
||
kos_WindowRedrawStatus( WRS_BEGIN );
|
||
// îêíî
|
||
kos_DefineAndDrawWindow(
|
||
WNDLEFT, WNDTOP,
|
||
mcx + 1, mcy + 21,
|
||
0x54, 0x0, // Skinned fixed size window, dont fill working area, window has caption
|
||
0, WNDHEADCOLOUR,
|
||
mainWndTitle
|
||
);
|
||
// çàãîëîâîê îêíà
|
||
kos_ChangeWindowCaption(mainWndTitle);
|
||
mainWndFace.Draw( 1, 21 );
|
||
// ïåðâàÿ ñòðîêà
|
||
kos_WriteTextToWindow(
|
||
8, 32,
|
||
0, 0x0,
|
||
mainWndMenuStart, sizeof(mainWndMenuStart)-1
|
||
);
|
||
// òðåòüÿ ñòðîêà
|
||
sprintf( line, mainWndMenuLevel, startGameLevel);
|
||
kos_WriteTextToWindow(
|
||
8, 64,
|
||
0, 0x0,
|
||
line, strlen( line )
|
||
);
|
||
// êíîïêè
|
||
kos_DefineButton(
|
||
mcx - 29, 64,
|
||
12, 12,
|
||
BT_SIZE_X_MINUS,
|
||
0xCCCCCC
|
||
);
|
||
//
|
||
kos_PutImage( bmPMButton + 12, 6, 2, mcx - 29 + 3, 69 );
|
||
//
|
||
kos_DefineButton(
|
||
mcx - 16, 64,
|
||
12, 12,
|
||
BT_SIZE_X_PLUS,
|
||
0xCCCCCC
|
||
);
|
||
//
|
||
kos_PutImage( bmPMButton, 6, 6, mcx - 16 + 3, 67 );
|
||
// êîïèðàéò
|
||
kos_WriteTextToWindow(
|
||
8, mcy - 16 + 21,
|
||
0, 0x000066,
|
||
mainWndCopyright, sizeof(mainWndCopyright)-1
|
||
);
|
||
//
|
||
kos_WindowRedrawStatus( WRS_END );
|
||
}
|