/programs/games/rforces/trunk/cmp.bat |
---|
1,4 → 1,7 |
"C:\Program Files\Microsoft Visual Studio 8\VC\bin\cl" /c /O2 /nologo /GS- /GR- /fp:fast rforces.cpp kosFile.cpp kosSyst.cpp mcsmemm.cpp |
"C:\Program Files\Microsoft Visual Studio 8\VC\bin\link" /nologo /manifest:no /entry:crtStartUp /subsystem:native /base:0 /fixed /align:16 /nodefaultlib rforces.obj kosFile.obj kosSyst.obj mcsmemm.obj |
pe2kos rforces.exe rforces |
call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" |
@cl /c /O2 /nologo /GS- /GR- /fp:fast rforces.cpp kosFile.cpp kosSyst.cpp mcsmemm.cpp |
@link /nologo /manifest:no /entry:crtStartUp /subsystem:native /base:0 /fixed /align:16 /nodefaultlib rforces.obj kosFile.obj kosSyst.obj mcsmemm.obj |
@pe2kos rforces.exe rforces |
@del rforces.exe |
pause |
/programs/games/rforces/trunk/kosSyst.cpp |
---|
367,7 → 367,7 |
} |
// ôóíêöèÿ -1 çàâåðøåíèÿ ïðîöåññà |
// function -1 termanate process |
void kos_ExitApp() |
{ |
int i; |
386,7 → 386,7 |
} |
// ôóíêöèÿ 0 |
// function 0 |
void kos_DefineAndDrawWindow( |
Word x, Word y, |
Word sizeX, Word sizeY, |
417,7 → 417,7 |
} |
// ôóíêöèÿ 1 ïîñòàâèòü òî÷êó |
// function 1 |
void kos_PutPixel( Dword x, Dword y, Dword colour ) |
{ |
// |
431,7 → 431,7 |
} |
// ôóíêöèÿ 2 ïîëó÷èòü êîä íàæàòîé êëàâèøè |
// function 2 get key code |
bool kos_GetKey( Byte &keyCode ) |
{ |
Dword result; |
449,7 → 449,7 |
} |
// ôóíêöèÿ 3 ïîëó÷èòü âðåìÿ |
// function 3 get system clock |
Dword kos_GetSystemClock() |
{ |
// Dword result; |
465,7 → 465,7 |
} |
// ôóíêöèÿ 4 |
// function 4 |
void kos_WriteTextToWindow( |
Word x, |
Word y, |
491,8 → 491,31 |
} |
} |
// function 4 |
void kos_WriteTextWithBg( |
Word x, |
Word y, |
Byte fontType, |
Dword textColour, |
Dword bgcolour, |
char *textPtr, |
Dword textLen |
) |
{ |
Dword arg1, arg2; |
// ôóíêöèÿ 5 ïàóçà, â ñîòûõ äîëÿõ ñåêóíäû |
// |
arg1 = ( x << 16 ) | y; |
arg2 = ( fontType << 24 ) | textColour; |
// |
__asm{ |
mov edi, bgcolour |
} |
kos_WriteTextToWindow(x,y,fontType,textColour,textPtr,textLen); |
} |
// function 5 pause, in value is 1/100 of second |
void kos_Pause( Dword value ) |
{ |
// |
504,7 → 527,7 |
} |
// ôóíêöèÿ 7 íàðèñîâàòü èçîáðàæåíèå |
// function 7 |
void kos_PutImage( RGB * imagePtr, Word sizeX, Word sizeY, Word x, Word y ) |
{ |
Dword arg1, arg2; |
524,7 → 547,7 |
// ôóíêöèÿ 8 îïðåäåëèòü êíîïêó |
// function 8 |
void kos_DefineButton( Word x, Word y, Word sizeX, Word sizeY, Dword buttonID, Dword colour ) |
{ |
Dword arg1, arg2; |
544,7 → 567,7 |
} |
// ôóíêöèÿ 9 - èíôîðìàöèÿ î ïðîöåññå |
// function 9 get process info |
Dword kos_ProcessInfo( sProcessInfo *targetPtr, Dword processID ) |
{ |
// Dword result; |
562,7 → 585,7 |
} |
// ôóíêöèÿ 10 |
// function 10 |
Dword kos_WaitForEvent() |
{ |
// Dword result; |
577,7 → 600,7 |
} |
// ôóíêöèÿ 11 |
// function 11 |
Dword kos_CheckForEvent() |
{ |
// Dword result; |
592,7 → 615,7 |
} |
// ôóíêöèÿ 12 |
// function 12 |
void kos_WindowRedrawStatus( Dword status ) |
{ |
__asm{ |
603,7 → 626,7 |
} |
// ôóíêöèÿ 13 íàðèñîâàòü ïîëîñó |
// function 13 draw filled area |
void kos_DrawBar( Word x, Word y, Word sizeX, Word sizeY, Dword colour ) |
{ |
Dword arg1, arg2; |
622,7 → 645,7 |
} |
// ôóíêöèÿ 17 |
// function 17 |
bool kos_GetButtonID( Dword &buttonID ) |
{ |
Dword result; |
640,7 → 663,7 |
} |
// ôóíêöèÿ 23 |
// function 23 |
Dword kos_WaitForEvent( Dword timeOut ) |
{ |
// Dword result; |
655,7 → 678,7 |
// return result; |
} |
// ôóíêöèÿ 26.9 ïîëó÷èòü çíà÷åíèå ñ÷¸ò÷èêà âðåìåíè |
// function 26.9 ïîëó÷èòü çíà÷åíèå ñ÷¸ò÷èêà âðåìåíè |
Dword kos_GetTime() |
{ |
__asm{ |
665,7 → 688,7 |
} |
} |
// ôóíêöèÿ 37 ïîëó÷åíèå èíôîðìàöèè î ñîñòîÿíèè "ìûøè" |
// function 37 ïîëó÷åíèå èíôîðìàöèè î ñîñòîÿíèè "ìûøè" |
void kos_GetMouseState( Dword & buttons, int & cursorX, int & cursorY ) |
{ |
Dword mB; |
694,7 → 717,7 |
cursorY = curY - sPI.processInfo.y_start; |
} |
// ôóíêöèÿ 37.1 ïîëó÷åíèå êîîðäèíàò "ìûøè" îòíîñèòåëüíî îêíà |
// function 37.1 ïîëó÷åíèå êîîðäèíàò "ìûøè" îòíîñèòåëüíî îêíà |
void kos_GetMouseWindowXY( int & cursorX, int & cursorY ) |
{ |
Word curX; |
717,7 → 740,7 |
cursorY = curY; |
} |
// ôóíêöèÿ 37.2 ïîëó÷åíèå èíôîðìàöèè î íàæàòûõ êíîïêè "ìûøè" |
// function 37.2 ïîëó÷åíèå èíôîðìàöèè î íàæàòûõ êíîïêè "ìûøè" |
void kos_GetMouseButtonsState( Dword & buttons ) |
{ |
Dword mB; |
732,7 → 755,7 |
buttons = mB; |
} |
// ôóíêöèÿ 37.4 çàãðóçêà êóðñîðà "ìûøè" |
// function 37.4 çàãðóçêà êóðñîðà "ìûøè" |
Dword * kos_LoadMouseCursor( Dword * cursor, Dword loadstate ) |
{ |
//Dword handle; |
747,7 → 770,7 |
//return handle; |
} |
// ôóíêöèÿ 37.5 óñòàíîâêà êóðñîðà "ìûøè" |
// function 37.5 óñòàíîâêà êóðñîðà "ìûøè" |
Dword * kos_SetMouseCursor( Dword * handle ) |
{ |
//Dword handle; |
761,7 → 784,7 |
//return handle; |
} |
// ôóíêöèÿ 37.6 óäàëåíèå êóðñîðà "ìûøè" |
// function 37.6 óäàëåíèå êóðñîðà "ìûøè" |
void kos_DeleteMouseCursor( Dword * handle ) |
{ |
__asm{ |
772,7 → 795,7 |
} |
} |
// ôóíêöèÿ 38 íàðèñîâàòü ïîëîñó |
// function 38 |
void kos_DrawLine( Word x1, Word y1, Word x2, Word y2, Dword colour ) |
{ |
Dword arg1, arg2; |
791,7 → 814,7 |
} |
// ôóíêöèÿ 40 óñòàíîâèòü ìàñêó ñîáûòèé |
// function 40 |
void kos_SetMaskForEvents( Dword mask ) |
{ |
// |
803,7 → 826,7 |
} |
// ôóíêöèÿ 47 âûâåñòè â îêíî ïðèëîæåíèÿ ÷èñëî |
// function 47 âûâåñòè â îêíî ïðèëîæåíèÿ ÷èñëî |
void kos_DisplayNumberToWindow( |
Dword value, |
Dword digitsNum, |
832,7 → 855,7 |
} |
} |
// ôóíêöèÿ 47 âûâåñòè â îêíî ïðèëîæåíèÿ ÷èñëî c ôîíîì |
// function 47 âûâåñòè â îêíî ïðèëîæåíèÿ ÷èñëî c ôîíîì |
void kos_DisplayNumberToWindowBg( |
Dword value, |
Dword digitsNum, |
874,7 → 897,7 |
} |
} |
// ôóíêöèÿ 70 äîñòóï ê ôàéëîâîé ñèñòåìå |
// function 70 äîñòóï ê ôàéëîâîé ñèñòåìå |
Dword kos_FileSystemAccess( kosFileInfo *fileInfo ) |
{ |
// Dword result; |
891,7 → 914,7 |
} |
// ôóíêöèÿ 63 âûâîä ñèìâîëÿ â îêíî îòëàäêè |
// function 63 âûâîä ñèìâîëÿ â îêíî îòëàäêè |
void kos_DebugOutChar( char ccc ) |
{ |
// |
904,7 → 927,7 |
} |
// ôóíêöèÿ 66 ðåæèì ïîëó÷åíèÿ äàííûõ îò êëàâèàòóðû |
// function 66 ðåæèì ïîëó÷åíèÿ äàííûõ îò êëàâèàòóðû |
void kos_SetKeyboardDataMode( Dword mode ) |
{ |
// |
930,8 → 953,21 |
kos_DebugOutChar( 10 ); |
} |
void kos_DebugNumber(signed int n) |
{ |
if (n<0) { |
kos_DebugOutChar('-'); |
n = -n; |
} |
while (n>10) { |
kos_DebugOutChar(n%10 + '0'); |
n /= 10; |
} |
kos_DebugOutChar(n + '0'); |
kos_DebugOutChar('\n'); |
} |
// ôóíêöèÿ 64 èçìåíåíèå êîëè÷åñòâà ïàìÿòè, âûäåëåííîé äëÿ ïðîãðàììû |
// function 64 èçìåíåíèå êîëè÷åñòâà ïàìÿòè, âûäåëåííîé äëÿ ïðîãðàììû |
bool kos_ApplicationMemoryResize( Dword targetSize ) |
{ |
Dword result; |
949,7 → 985,8 |
} |
// ôóíêöèÿ 67 èçìåíèòü ïàðàìåòðû îêíà, ïàðàìåòð == -1 íå ìåíÿåòñÿ |
// function 67 change window size and position, |
// if param == -1 then value does not change |
void kos_ChangeWindow( Dword x, Dword y, Dword sizeX, Dword sizeY ) |
{ |
// |
/programs/games/rforces/trunk/kosSyst.h |
---|
136,9 → 136,9 |
void sprintf( char *Str, char* Format, ... ); |
// |
Dword rtlInterlockedExchange( Dword *target, Dword value ); |
// ôóíêöèÿ -1 çàâåðøåíèÿ ïðîöåññà |
// function -1 çàâåðøåíèÿ ïðîöåññà |
void kos_ExitApp(); |
// ôóíêöèÿ 0 |
// function 0 |
void kos_DefineAndDrawWindow( |
Word x, Word y, |
Word sizeX, Word sizeY, |
146,13 → 146,13 |
Byte headerType, Dword headerColour, |
Dword borderColour |
); |
// ôóíêöèÿ 1 ïîñòàâèòü òî÷êó |
// function 1 ïîñòàâèòü òî÷êó |
void kos_PutPixel( Dword x, Dword y, Dword colour ); |
// ôóíêöèÿ 2 ïîëó÷èòü êîä íàæàòîé êëàâèøè |
// function 2 ïîëó÷èòü êîä íàæàòîé êëàâèøè |
bool kos_GetKey( Byte &keyCode ); |
// ôóíêöèÿ 3 ïîëó÷èòü âðåìÿ |
// function 3 ïîëó÷èòü âðåìÿ |
Dword kos_GetSystemClock(); |
// ôóíêöèÿ 4 |
// function 4 |
void kos_WriteTextToWindow( |
Word x, Word y, |
Byte fontType, |
160,27 → 160,36 |
char *textPtr, |
Dword textLen |
); |
// ôóíêöèÿ 7 íàðèñîâàòü èçîáðàæåíèå |
// |
void kos_WriteTextWithBg( |
Word x, Word y, |
Byte fontType, |
Dword textColour, |
Dword bgcolour, |
char *textPtr, |
Dword textLen |
); |
// function 7 íàðèñîâàòü èçîáðàæåíèå |
void kos_PutImage( RGB * imagePtr, Word sizeX, Word sizeY, Word x, Word y ); |
// ôóíêöèÿ 8 îïðåäåëèòü êíîïêó |
// function 8 îïðåäåëèòü êíîïêó |
void kos_DefineButton( Word x, Word y, Word sizeX, Word sizeY, Dword buttonID, Dword colour ); |
// ôóíêöèÿ 5 ïàóçà, â ñîòûõ äîëÿõ ñåêóíäû |
// function 5 ïàóçà, â ñîòûõ äîëÿõ ñåêóíäû |
void kos_Pause( Dword value ); |
// ôóíêöèÿ 9 èíôîðìàöèÿ î ïðîöåññå |
// function 9 èíôîðìàöèÿ î ïðîöåññå |
Dword kos_ProcessInfo( sProcessInfo *targetPtr, Dword processID = PROCESS_ID_SELF ); |
// ôóíêöèÿ 10 |
// function 10 |
Dword kos_WaitForEvent(); |
// ôóíêöèÿ 11 |
// function 11 |
Dword kos_CheckForEvent(); |
// ôóíêöèÿ 12 |
// function 12 |
void kos_WindowRedrawStatus( Dword status ); |
// ôóíêöèÿ 13 íàðèñîâàòü ïðÿìîóãîëüíèê |
// function 13 íàðèñîâàòü ïðÿìîóãîëüíèê |
void kos_DrawBar( Word x, Word y, Word sizeX, Word sizeY, Dword colour ); |
// ôóíêöèÿ 17 |
// function 17 |
bool kos_GetButtonID( Dword &buttonID ); |
// ôóíêöèÿ 23 |
// function 23 |
Dword kos_WaitForEvent( Dword timeOut ); |
// ôóíêöèÿ 26.9 ïîëó÷èòü çíà÷åíèå ñ÷¸ò÷èêà âðåìåíè |
// function 26.9 ïîëó÷èòü çíà÷åíèå ñ÷¸ò÷èêà âðåìåíè |
Dword kos_GetTime(); |
// |
enum eNumberBase |
189,23 → 198,23 |
nbHex, |
nbBin |
}; |
// ôóíêöèÿ 37 ïîëó÷åíèå èíôîðìàöèè î ñîñòîÿíèè "ìûøè" |
// function 37 ïîëó÷åíèå èíôîðìàöèè î ñîñòîÿíèè "ìûøè" |
void kos_GetMouseState( Dword & buttons, int & cursorX, int & cursorY ); |
// ôóíêöèÿ 37.1 ïîëó÷åíèå êîîðäèíàò "ìûøè" îòíîñèòåëüíî îêíà |
// function 37.1 ïîëó÷åíèå êîîðäèíàò "ìûøè" îòíîñèòåëüíî îêíà |
void kos_GetMouseWindowXY( int & cursorX, int & cursorY ); |
// ôóíêöèÿ 37.2 ïîëó÷åíèå èíôîðìàöèè î íàæàòûõ êíîïêè "ìûøè" |
// function 37.2 ïîëó÷åíèå èíôîðìàöèè î íàæàòûõ êíîïêè "ìûøè" |
void kos_GetMouseButtonsState( Dword & buttons ); |
// ôóíêöèÿ 37.4 çàãðóçêà êóðñîðà "ìûøè" |
// function 37.4 çàãðóçêà êóðñîðà "ìûøè" |
Dword * kos_LoadMouseCursor( Dword * cursor, Dword loadstate ); |
// ôóíêöèÿ 37.5 óñòàíîâêà êóðñîðà "ìûøè" |
// function 37.5 óñòàíîâêà êóðñîðà "ìûøè" |
Dword * kos_SetMouseCursor( Dword * handle ); |
// ôóíêöèÿ 37.6 óäàëåíèå êóðñîðà "ìûøè" |
// function 37.6 óäàëåíèå êóðñîðà "ìûøè" |
void kos_DeleteMouseCursor( Dword * handle ); |
// ôóíêöèÿ 38 íàðèñîâàòü ïîëîñó |
// function 38 íàðèñîâàòü ïîëîñó |
void kos_DrawLine( Word x1, Word y1, Word x2, Word y2, Dword colour ); |
// ôóíêöèÿ 40 óñòàíîâèòü ìàñêó ñîáûòèé |
// function 40 óñòàíîâèòü ìàñêó ñîáûòèé |
void kos_SetMaskForEvents( Dword mask ); |
// ôóíêöèÿ 47 âûâåñòè â îêíî ïðèëîæåíèÿ ÷èñëî |
// function 47 âûâåñòè â îêíî ïðèëîæåíèÿ ÷èñëî |
void kos_DisplayNumberToWindow( |
Dword value, |
Dword digitsNum, |
215,7 → 224,7 |
eNumberBase nBase = nbDecimal, |
bool valueIsPointer = false |
); |
// ôóíêöèÿ 47 âûâåñòè â îêíî ïðèëîæåíèÿ ÷èñëî c ôîíîì |
// function 47 âûâåñòè â îêíî ïðèëîæåíèÿ ÷èñëî c ôîíîì |
void kos_DisplayNumberToWindowBg( |
Dword value, |
Dword digitsNum, |
226,19 → 235,22 |
eNumberBase nBase = nbDecimal, |
bool valueIsPointer = false |
); |
// 48.4 get windows title bar height |
// function 48.4 get windows title bar height |
Dword kos_GetSkinHeight(); |
// ôóíêöèÿ 58 äîñòóï ê ôàéëîâîé ñèñòåìå |
// function 58 äîñòóï ê ôàéëîâîé ñèñòåìå |
Dword kos_FileSystemAccess( kosFileInfo *fileInfo ); |
// ôóíêöèÿ 63 |
// function 63 |
void kos_DebugOutChar( char ccc ); |
// |
void rtlDebugOutString( char *str ); |
// ôóíêöèÿ 64 èçìåíèòü ïàðàìåòðû îêíà, ïàðàìåòð == -1 íå ìåíÿåòñÿ |
// |
void kos_DebugNumber(signed int n); |
// |
// function 64 èçìåíèòü ïàðàìåòðû îêíà, ïàðàìåòð == -1 íå ìåíÿåòñÿ |
void kos_ChangeWindow( Dword x, Dword y, Dword sizeX, Dword sizeY ); |
// ôóíêöèÿ 67 èçìåíåíèå êîëè÷åñòâà ïàìÿòè, âûäåëåííîé äëÿ ïðîãðàììû |
// function 67 èçìåíåíèå êîëè÷åñòâà ïàìÿòè, âûäåëåííîé äëÿ ïðîãðàììû |
bool kos_ApplicationMemoryResize( Dword targetSize ); |
// ôóíêöèÿ 66 ðåæèì ïîëó÷åíèÿ äàííûõ îò êëàâèàòóðû |
// function 66 ðåæèì ïîëó÷åíèÿ äàííûõ îò êëàâèàòóðû |
void kos_SetKeyboardDataMode( Dword mode ); |
// |
/programs/games/rforces/trunk/properties.h |
---|
16,7 → 16,7 |
#define WHITE 0x00FFFFFF |
// Visual properties |
#define GAME_NAME "Rocket Forces v1.12 (F2 - new game, Esc - exit) " |
#define GAME_NAME "Rocket Forces" |
#define BG_COLOR BLACK |
#define TEXT_COLOR WHITE |
#define CUR_COLOR GREEN |
/programs/games/rforces/trunk/rforces.cpp |
---|
1,10 → 1,14 |
/* Rocket Forces |
* Filename: rforces.cpp |
* Version 0.1.1 |
* Version 0.1 |
* Copyright (c) Serial 2007 |
*/ |
/* Version 0.2 |
* Copyright (c) Leency 2018 |
*/ |
#include <stdlib.h> |
#include "kosSyst.h" |
26,6 → 30,8 |
Dword *cur_handle; |
int score, health; |
bool game_over; |
struct MouseState |
{ |
int x, y, lbclick; |
35,7 → 41,6 |
void kos_Main() |
{ |
Dword btn_id; |
Dword frame_start, frame_end; |
OnStart(); |
Menu(); |
45,15 → 50,12 |
frame_start = kos_GetTime(); |
switch (kos_CheckForEvent()) |
{ |
case EM_WINDOW_REDRAW: |
DrawWindow(); |
break; |
case EM_KEY_PRESS: |
Byte keyCode; |
kos_GetKey(keyCode); |
if (keyCode == 27) |
{ |
OnExit(); |
kos_ExitApp(); |
} |
if (keyCode == 51) |
{ |
60,12 → 62,13 |
OnStart(); |
} |
break; |
case EM_BUTTON_CLICK: // button pressed; we have only one button, close |
case EM_BUTTON_CLICK: |
Dword btn_id; |
if (kos_GetButtonID(btn_id)) { |
if (btn_id == 1) OnExit(); |
if (btn_id == 1) kos_ExitApp(); |
} |
break; |
case EM_MOUSE_EVENT: // ñîáûòèå îò ìûøè (íàæàòèå íà êíîïêó ìûøè èëè ïåðåìåùåíèå; ñáðàñûâàåòñÿ ïðè ïðî÷òåíèè) |
case EM_MOUSE_EVENT: |
OnMouseMove(); |
if (ms.lbclick == 1) |
{ |
72,30 → 75,34 |
OnLMBClick(); |
} |
break; |
case EM_WINDOW_REDRAW: |
DrawWindow(); |
break; |
default: |
if (game_over) break; |
DrawBombs(); |
DrawRocketsAndCrosses(); |
DrawExplodes(); |
DrawStats(); |
frame_end = kos_GetTime(); |
if (frame_end - frame_start < FRAME_TIME) |
{ |
if (frame_end - frame_start < FRAME_TIME) { |
kos_Pause(FRAME_TIME - (frame_end - frame_start)); |
} |
if (health <= 0) |
{ |
OnExit(); |
if (health <= 0) GameOver(); |
} |
} |
} |
} |
void DrawWindow() |
{ |
kos_WindowRedrawStatus(1); |
kos_DefineAndDrawWindow(10, 40, WINDOW_WIDTH + 8, WINDOW_HEIGHT + kos_GetSkinHeight() + 12, 0x34, BG_COLOR, 0, 0, (Dword)header); |
kos_DefineAndDrawWindow(10, 40, WINDOW_WIDTH + 12, |
WINDOW_HEIGHT + kos_GetSkinHeight() + 12, 0x34, |
BG_COLOR, 0, 0, (Dword)header); |
kos_WindowRedrawStatus(2); |
OnMouseMove(); |
DrawStats(); |
if (health <= 0) GameOver(); |
// Draw buildings |
for (int i = 20; i < 5 * 50; i += 50) |
213,6 → 220,12 |
Dword old_buttons = ms.buttons; |
kos_GetMouseWindowXY(ms.x, ms.y); |
kos_GetMouseButtonsState(ms.buttons); |
if (health <= 0) return; |
//restore mouse cursor when it over Window Header |
if (ms.y > 5000) RestoreSystemCursor(); else SetGameCursor(); |
if ((old_buttons & 0x00000001) == 0 && (ms.buttons & 0x00000001) == 1) |
{ |
ms.lbclick = 1; |
222,13 → 235,6 |
ms.lbclick = 0; |
} |
kos_DrawBar(8, 10, 6*11, 22, 0); |
kos_WriteTextToWindow(8, 10, 0, TEXT_COLOR, "Population: %", 16); |
kos_WriteTextToWindow(8, 22, 0, TEXT_COLOR, "Score:", 6); |
kos_DisplayNumberToWindowBg(health, 3, 79, 10, TEXT_COLOR, BG_COLOR, nbDecimal, false); |
kos_DisplayNumberToWindowBg(score, 4, 49, 22, TEXT_COLOR, BG_COLOR, nbDecimal, false); |
if (ms.x >= 0 && ms.x < WINDOW_WIDTH && ms.y >= 0 && ms.y < WINDOW_HEIGHT) |
{ |
gun->DrawAngle(ms.x, ms.y, G_COLOR); |
245,7 → 251,15 |
kos_DisplayNumberToWindowBg(ms.y, 3, WINDOW_WIDTH - 30, 22, TEXT_COLOR, BG_COLOR, nbDecimal, false); |
kos_DisplayNumberToWindowBg(ms.buttons, 1, WINDOW_WIDTH - 30, 34, TEXT_COLOR, BG_COLOR, nbDecimal, false); |
}*/ |
} |
void DrawStats() |
{ |
kos_WriteTextWithBg(8, 10, 0xC0, TEXT_COLOR, 0, "Population:", 11); |
kos_WriteTextWithBg(8+15*6, 9, 0xC0, TEXT_COLOR, 0, "%", 1); |
kos_WriteTextWithBg(8, 22, 0xC0, TEXT_COLOR, 0, "Score:", 6); |
kos_DisplayNumberToWindowBg(health, 3, 79, 10, TEXT_COLOR, BG_COLOR, nbDecimal, false); |
kos_DisplayNumberToWindowBg(score, 4, 49, 22, TEXT_COLOR, BG_COLOR, nbDecimal, false); |
} |
void OnLMBClick() |
284,12 → 298,8 |
} |
} |
void OnRMBClick() |
void SetGameCursor() |
{ |
} |
void ChangeCursor() |
{ |
Dword *cur = new Dword[1024]; |
for (int i = 0; i < 1024; i++) |
{ |
329,6 → 339,12 |
kos_SetMouseCursor(cur_handle); |
} |
void RestoreSystemCursor() |
{ |
if (cur_handle) kos_SetMouseCursor(0); |
cur_handle=0; |
} |
void Menu() |
{ |
NewGame(); |
345,7 → 361,7 |
{ |
cursor = new cCursor(); |
} |
ChangeCursor(); |
SetGameCursor(); |
gun->Enable((WINDOW_WIDTH / 2) - 10, WINDOW_HEIGHT - 30, 10, 20, (WINDOW_WIDTH / 2) - 5, WINDOW_HEIGHT - 20); |
366,16 → 382,21 |
health = 100; |
score = 0; |
game_over = false; |
rtlSrand(kos_GetTime()); |
DrawWindow(); |
} |
void OnExit() |
void GameOver() |
{ |
kos_WriteTextToWindow(WINDOW_WIDTH / 2 - 35, WINDOW_HEIGHT / 2 - 10, 0, TEXT_COLOR, "Game Over", 9); |
kos_Pause(150); |
kos_ExitApp(); |
int xcenter = WINDOW_WIDTH / 2; |
int y = WINDOW_HEIGHT/ 2 - 40; |
kos_WriteTextToWindow(xcenter-50, y, 0x81, TEXT_COLOR, "Game Over", 9); |
kos_WriteTextToWindow(xcenter-43, y+36, 0x80, TEXT_COLOR, "[F2] - New game", 0); |
kos_WriteTextToWindow(xcenter-43, y+53, 0x80, TEXT_COLOR, "[Ecs] - Exit", 0); |
// |
RestoreSystemCursor(); |
game_over = true; |
} |
/programs/games/rforces/trunk/rforces.h |
---|
10,10 → 10,11 |
void DrawRocketsAndCrosses(); |
void DrawExplodes(); |
void OnMouseMove(); |
void DrawStats(); |
void OnLMBClick(); |
void OnRMBClick(); |
void ChangeCursor(); |
void SetGameCursor(); |
void RestoreSystemCursor(); |
void Menu(); |
void NewGame(); |
void OnStart(); |
void OnExit(); |
void GameOver(); |