From ba74256d2450ba3b0f3ce25c0f2f3071f7862c0b Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Wed, 28 Jan 2009 15:20:29 +0000 Subject: [PATCH] Clicks 0.76 (optimizations) git-svn-id: svn://kolibrios.org@1006 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/games/clicks/trunk/clicks.c-- | 103 ++++++++++---------- programs/games/clicks/trunk/lib/kolibri.h-- | 54 ++++------ 2 files changed, 68 insertions(+), 89 deletions(-) diff --git a/programs/games/clicks/trunk/clicks.c-- b/programs/games/clicks/trunk/clicks.c-- index f9ea6d5a11..206a6f3b81 100644 --- a/programs/games/clicks/trunk/clicks.c-- +++ b/programs/games/clicks/trunk/clicks.c-- @@ -1,5 +1,5 @@ /* -Just Clicks v0.75 +Just Clicks v0.76 Copyright (C) 2008 Leency Clickomania v0.3 Copyright (C) 2005 Александр Мушиков aka Olaf @@ -25,35 +25,30 @@ struct }matrix[64]; +void check_n_destroy(byte ID, ID1) +{ + IF (matrix[ID1].color == matrix[ID].color) && (matrix[ID1].mark!=1) + { + matrix[ID1].mark=1; + destroy_button(ID1); + } +} + void destroy_button(byte ID) { - IF (matrix[ID-8].color == matrix[ID].color) && (matrix[ID-8].mark!=1) - { - matrix[ID-8].mark=1; - destroy_button(ID-8); - } - IF (matrix[ID+8].color == matrix[ID].color) && (matrix[ID+8].mark!=1) - { - matrix[ID+8].mark=1; - destroy_button(ID+8); - } - IF (ID!=0)&&(ID!=8)&&(ID!=16)&&(ID!=24)&&(ID!=32)&&(ID!=40)&&(ID!=48)&&(ID!=56) - && (matrix[ID-1].color == matrix[ID].color) && (matrix[ID-1].mark!=1) - { - matrix[ID-1].mark=1; - destroy_button(ID-1); - } - IF (ID!=7)&&(ID!=15)&&(ID!=23)&&(ID!=31)&&(ID!=39)&&(ID!=47)&&(ID!=55)&&(ID!=63) - && (matrix[ID+1].color == matrix[ID].color) && (matrix[ID+1].mark!=1) - { - matrix[ID+1].mark=1; - destroy_button(ID+1); - } + check_n_destroy(ID, ID-8); + check_n_destroy(ID, ID+8); + IF (ID!=0)&&(ID!=8)&&(ID!=16)&&(ID!=24)&&(ID!=32)&&(ID!=40)&&(ID!=48)&&(ID!=56) + check_n_destroy(ID, ID-1); + IF (ID!=7)&&(ID!=15)&&(ID!=23)&&(ID!=31)&&(ID!=39)&&(ID!=47)&&(ID!=55)&&(ID!=63) + check_n_destroy(ID, ID+1); + IF (matrix[ID].xYY) YY=matrix[ID].y;} IF (matrix[ID].y>YY) {YY=matrix[ID].y; IF (matrix[ID].x1) - { //if Button - destroy_button(id); - IF (XX!=9) - { - shift_bars(XX,YY); - IF (YY == 7) {move_it();move_it();} - XX=9; - YY=0; - ReDraw_Blocks(0); - } - break; - } + IF (id==254) ReDraw_Blocks(1); //New game + IF (id<65) //Color Button + { + destroy_button(id); + IF (XX!=9) + { + shift_bars(XX,YY); + IF (YY==7) {move_it();move_it();} + XX=9; + YY=0; + ReDraw_Blocks(0); + } + } + break; case evReDraw: WindowRedrawStatus(1); skin_width = GetSkinWidth(); - DefineAndDrawWindow(400,276,177,201+skin_width,0x44,0x10B2B4BF,0,0,"Just Clicks v0.75"); - //DefineButton(155,2-skin_width,18,18,255+BT_HIDE+BT_NOFRAME,0x0866CC00); - DrawBar(5,168,168,29,0xE4DFE1); + DefineAndDrawWindow(400,276,177,201+skin_width,0x74,0x10B2B4BF,0,0,"Just Clicks v0.76"); + DefineButton(150,2-skin_width,18,18,255+BT_HIDE+BT_NOFRAME,0x0866CC00); + DrawBar(0,168,168,29,0xE4DFE1); //DrawFlatButton(9,172,84,19,254,0xE4DFE1,"New game (F2)"); - DrawFlatButton(9,172,80,19,254,0xE4DFE1,"Заново (F2)"); + DrawFlatButton(4,172,80,19,254,0xE4DFE1,"Заново (F2)"); ReDraw_Blocks(0); WindowRedrawStatus(2); } diff --git a/programs/games/clicks/trunk/lib/kolibri.h-- b/programs/games/clicks/trunk/lib/kolibri.h-- index 043f157c3b..2efe8212ac 100644 --- a/programs/games/clicks/trunk/lib/kolibri.h-- +++ b/programs/games/clicks/trunk/lib/kolibri.h-- @@ -8,12 +8,10 @@ dword alloc_mem = 0x00100000; dword x86esp_reg = 0x0007fff0; dword I_Param = 0x0; dword I_Icon = 0x0; -dword skin_width; #define evButton 3 #define evKey 2 #define evReDraw 1 -#define evNet 8 #define BT_DEL 0x80000000 #define BT_HIDE 0x40000000 @@ -86,14 +84,14 @@ void DefineButton(dword x,y,w,h,EDX,ESI) { EAX = 8; EBX = x<<16+w; - ECX = skin_width+y<<16+h; + ECX = y<<16+h; $int 0x40 } void WriteText(dword x,y,byte fontType, dword color, EDX, ESI) { EAX = 4; - EBX = x<<16+skin_width+y; + EBX = x<<16+y; ECX = fontType<<24+color; $int 0x40; } @@ -103,7 +101,7 @@ void DrawBar(dword x,y,w,h,EDX) { EAX = 13; EBX = x<<16+w; - ECX = skin_width+y<<16+h; + ECX = y<<16+h; $int 0x40 } @@ -129,13 +127,11 @@ void DrawFlatButton(dword x,y,width,height,id,color,text) } -void PutImage(dword buf,w,h,x,y) +void PutImage(dword EBX,w,h,x,y) { - EDI=buf; EAX = 7; - EBX = buf; ECX = w<<16+h; - EDX = x<<16+y+skin_width; + EDX = x<<16+y; $int 0x40 } @@ -152,31 +148,17 @@ l1: $jnz l1 } - -char buffer[11]=""; -inline fastcall dword IntToStr(dword ESI) +void WriteNumber(dword x,y,byte fontType, ESI, ECX) { - $mov edi, #buffer - $mov ecx, 10 - $test esi, esi - $jns f1 - $mov al, '-' - $stosb - $neg esi -f1: - $mov eax, esi - $push -'0' -f2: - $xor edx, edx - $div ecx - $push edx - $test eax, eax - $jnz f2 -f3: - $pop eax - $add al, '0' - $stosb - $jnz f3 - $mov eax, #buffer - $ret -} + EAX = 47; + EBX = 2<<16; + /*ecx = 0 + while(eax>10) + { + ecx ++; + eax /= 10; + }*/ + EDX = x<<16+y; + ESI = fontType<<24+ESI; + $int 0x40; +}