From 244ba684f595ffd7168ac021a9627432a0adad43 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Mon, 21 Apr 2014 22:30:28 +0000 Subject: [PATCH] Upload game_center, update Liza, kolibrin search program uses @notify new features git-svn-id: svn://kolibrios.org@4870 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/cmm/example/example.c | 20 ---- programs/cmm/game_center/compile.bat | 5 + programs/cmm/game_center/game_center.c | 157 +++++++++++++++++++++++++ programs/cmm/kolibrin/kolibrin.c | 3 +- programs/cmm/liza/liza.c | 11 ++ programs/cmm/liza/mail_box.c | 26 ++-- 6 files changed, 191 insertions(+), 31 deletions(-) create mode 100644 programs/cmm/game_center/compile.bat create mode 100644 programs/cmm/game_center/game_center.c diff --git a/programs/cmm/example/example.c b/programs/cmm/example/example.c index c87a7ff767..fec9a14133 100644 --- a/programs/cmm/example/example.c +++ b/programs/cmm/example/example.c @@ -4,29 +4,9 @@ #include "..\lib\mem.h" #include "..\lib\file_system.h" -void str_replace(dword buf_in, what_replace, to_what_replace) { - dword start_pos=0; - dword buf_from; - - buf_from = malloc(strlen(buf_in)); - loop() { - strcpy(buf_from, buf_in); - start_pos = strstr(buf_from, what_replace); - if (start_pos == 0) break; - strlcpy(buf_in, buf_from, start_pos-buf_from); - strcat(buf_in, to_what_replace); - start_pos += strlen(what_replace); - strcat(buf_in, start_pos); - } - free(buf_from); -} - void main() { int id, key; - strcpy(#param, " lorem"); - str_replace(#param, "<", "<"); - str_replace(#param, ">", ">"); loop() { diff --git a/programs/cmm/game_center/compile.bat b/programs/cmm/game_center/compile.bat new file mode 100644 index 0000000000..52dac28bdc --- /dev/null +++ b/programs/cmm/game_center/compile.bat @@ -0,0 +1,5 @@ +C-- game_center.c +@del game_center +@rename game_center.com game_center +@pause +@del warning.txt diff --git a/programs/cmm/game_center/game_center.c b/programs/cmm/game_center/game_center.c new file mode 100644 index 0000000000..baa58f3798 --- /dev/null +++ b/programs/cmm/game_center/game_center.c @@ -0,0 +1,157 @@ +/* +GAME CENTER v1.0 +*/ + +#define MEMSIZE 0x3E80 +#include "..\lib\kolibri.h" +#include "..\lib\strings.h" +#include "..\lib\mem.h" +#include "..\lib\file_system.h" +#include "..\lib\dll.h" +#include "..\lib\figures.h" + +#include "..\lib\lib.obj\libio_lib.h" +#include "..\lib\lib.obj\libimg_lib.h" + +system_colors sc; +proc_info Form; + +struct link { + char *name; + char *path; + int icon; +}; + +struct link games[] = { + "Bomber", "/kolibrios/games/bomber/bomber", 35, + "DOOM1", "/kolibrios/games/doom1/doom", 43, + "DOOM2", "/kolibrios/games/doom2/doom", 43, + "Fara", "/kolibrios/games/fara/fara", 42, + "JumpBump", "/kolibrios/games/jumpbump/jumpbump", 35, + "Loderunner", "/kolibrios/games/LRL/LRL", 41, + "BabyPainter", "/kolibrios/games/baby painter", 35, + "Knight", "/kolibrios/games/knight", 35, + "Pinton", "/kolibrios/games/piton", 32, + + "15", "/sys/games/15", 34, + "Arcanii", "/sys/games/arcanii", 12, + "Ataka", "/sys/games/ataka", 35, + "C4", "/sys/games/c4", 35, + "Checkers", "/sys/games/checkers", 20, + "Clicks", "/sys/games/clicks", 18, + "FNumbers", "/sys/games/FindNumbers", 35, + "Flood-It", "/sys/games/flood-it", 27, + "Freecell", "/sys/games/freecell", 35, + "Gomoku", "/sys/games/gomoku", 24, + "Invaders", "/kolibrios/games/invaders", 35, + "Klavisha", "/sys/games/klavisha", 35, + "Kosilka", "/sys/games/kosilka", 23, + "Lines", "/sys/games/lines", 35, + "MBlocks", "/sys/games/mblocks", 11, + "Megamaze", "/sys/games/megamaze", 35, + "Mine", "/sys/games/mine", 14, + "Square", "/sys/games/msquare", 35, + "Padenie", "/sys/games/padenie", 35, + "Phenix", "/sys/games/phenix", 35, + "Pipes", "/sys/games/pipes", 26, + "Pong", "/sys/games/pong", 12, + "Pong3", "/sys/games/pong3", 12, + "Reversi", "/sys/games/reversi", 35, + "Rforces", "/sys/games/rforces", 35, + "Rsquare", "/sys/games/rsquare", 35, + "Snake", "/sys/games/snake", 32, + "Sq game", "/sys/games/sq_game", 35, + "Sudoku", "/sys/games/sudoku", 25, + "Sea War", "/sys/games/SW", 35, + "Tanks", "/sys/games/tanks", 35, + "Tetris", "/sys/games/tetris", 35, + "Whowtbam", "/sys/games/whowtbam", 35, + "Xonix", "/sys/games/xonix", 21, + 0 +}; + +struct struct_skin { + dword image, w, h; + int Load(); +} skin; + +int struct_skin::Load() +{ + int i; + dword image_data; + skin.image = load_image("/sys/iconstrp.png"); + if (!skin.image) notify("'iconstrp.png not found' -E"); + skin.w = DSWORD[skin.image+4]; + skin.h = DSWORD[skin.image+8]; + image_data = DSDWORD[skin.image+24]; + sc.get(); + + for (i=0; i=100) RunProgram(games[id-100].path, ""); + break; + + case evKey: + key = GetKey(); + break; + + case evReDraw: + sc.get(); + DefineAndDrawWindow(215,100,568,390+60+GetSkinHeight(),0x74,sc.work," "); + GetProcessInfo(#Form, SelfInfo); + if (Form.status_window>2) break; + draw_window(); + break; + } + } +} + + +void draw_window() +{ + int row, col, col_max=8; + int col_w=68, col_h=70; + int tmp,y=25; + DrawBar(0,0,Form.cwidth, y-1, sc.work); + DrawBar(0,y-1, Form.cwidth, 1, sc.work_graph); + DrawBar(0,y, Form.cwidth, Form.cheight-y, 0xF3F3F3); + WriteTextB(Form.cwidth/2-70, 9, 0x90, sc.work_text, "KolibriOS Game Center"); + + y += 7; + for (col=0, row=0; games[row*col_max+col].name!=0; col++) + { + if (col==col_max) { + row++; + col=0; + } + DefineButton(col*col_w+6,row*col_h+y,col_w,col_h,row*col_max+col+100+BT_HIDE,0); + tmp = col_w/2; + img_draw stdcall(skin.image, col*col_w+tmp-10, row*col_h+5+y, 32, 32, 0, games[row*col_max+col].icon*32); + WriteTextCenter(col*col_w+7,row*col_h+47+y,col_w,0xD4D4d4,games[row*col_max+col].name); + WriteTextCenter(col*col_w+6,row*col_h+46+y,col_w,0x000000,games[row*col_max+col].name); + } +} + + + +stop: diff --git a/programs/cmm/kolibrin/kolibrin.c b/programs/cmm/kolibrin/kolibrin.c index 950129e5a4..f5e78cf916 100644 --- a/programs/cmm/kolibrin/kolibrin.c +++ b/programs/cmm/kolibrin/kolibrin.c @@ -38,8 +38,7 @@ void main() } } } - if (GetSystemLanguage()==4) notify("Не могу найти installer.kex ни в одном корне диска! Попробуйте найти и запустить его вручную."); - else notify("Can't find installer.kex at the root of all disks! Try to find and run it manually."w); + notify("'Не могу найти installer.kex ни в одном корне диска!\nПопробуйте найти и запустить его вручную.' -dE"); ExitProcess(); } diff --git a/programs/cmm/liza/liza.c b/programs/cmm/liza/liza.c index 066d78fa27..13aa5ab19a 100644 --- a/programs/cmm/liza/liza.c +++ b/programs/cmm/liza/liza.c @@ -79,6 +79,17 @@ char immbuffer[BUFFERSIZE]; llist mail_list; llist letter_view; +dword TAB_H = false; //19; +dword TAB_W = 150; +dword TOOLBAR_H = 31; //50; +dword STATUSBAR_H =15; +dword col_bg; +dword panel_color; +dword border_color; + +pb progress_bar = {0, 10, 83, 150, 12, 0, 0, 100, 0xeeeEEE, 8072B7EBh, 0x9F9F9F}; + +int http_transfer; char version[]=" WebView 0.1"; #include "..\TWB\TWB.c" diff --git a/programs/cmm/liza/mail_box.c b/programs/cmm/liza/mail_box.c index 8c34c6a119..69efbb9411 100644 --- a/programs/cmm/liza/mail_box.c +++ b/programs/cmm/liza/mail_box.c @@ -100,21 +100,25 @@ void MailBoxNetworkProcess() { mailsize = atr.GetSize(mail_list.current+1) + 1024; free(mailstart); mailstart = malloc(mailsize); + mailend = mailstart; if (!mailstart) { debugln("alloc error!"); aim=NULL; break; } - mailend = mailstart; + debug("mailsize: "); debugi(mailsize); aim = GET_ANSWER_RETR; debugln("goto GET_ANSWER_RETR"); break; case GET_ANSWER_RETR: + debug("mailsize: "); debugi(mailsize); + debug("mailstart: "); debugi(mailstart); + debug("mailend: "); debugi(mailend); ticks = Receive(socketnum, mailend, mailsize + mailstart - mailend, MSG_DONTWAIT); if (ticks == 0xffffffff) break; - mailend += ticks; + mailend = mailend + ticks; if (mailsize + mailstart - mailend - 2 < 0) { debugln("Resizing buffer"); @@ -122,13 +126,15 @@ void MailBoxNetworkProcess() { mailstart = realloc(mailstart, mailsize); if (!mailstart) { StopConnect("Realloc error!"); break;} } + /* if (mailsize>9000) { load_persent = mailend - mailstart * 100 ; load_persent /= mailsize - 1024; if (load_persent != cur_st_percent) SetMailBoxStatus( load_persent , NULL); } - ParseMail(); + */ + //ParseMail(); } } @@ -315,7 +321,7 @@ void DrawMailList() { WriteText(on_x + 42, on_y+5, 0x80, 0, atr.GetSubject(i+mail_list.first+1)); DrawBar(0, on_y + mail_list.line_h-1, mail_list.w, 1, 0xCCCccc); WriteText(10, on_y+5, 0x80, 0, itoa(i+mail_list.first+1)); - WriteText(mail_list.w - 40, on_y+5, 0x80, 0, ConvertMemSize(atr.GetSize(i+mail_list.first+1))); + WriteText(mail_list.w - 40, on_y+5, 0x80, 0, ConvertSize(atr.GetSize(i+mail_list.first+1))); } DrawBar(0, i*mail_list.line_h + mail_list.y, mail_list.w, -i*mail_list.line_h+mail_list.h, 0xFFFfff); DrawScroller1(); @@ -328,9 +334,9 @@ void DrawLetterInfo() { DrawBar(0, lt_y+2, Form.cwidth, LIST_INFO_H-4, sc.work); WriteText(mail_list.w-30/2, lt_y, 0x80, 0x888888, "= = ="); WriteText(mail_list.w-30/2, lt_y+1, 0x80, 0xEeeeee, "= = ="); - DrawBar(0, lt_y+LIST_INFO_H-2, mail_list.w, 1, sc.work_graph); //bottom - DrawBar(0, lt_y+LIST_INFO_H-1, mail_list.w, 1, 0xdfdfdf); - DrawBar(0, lt_y+LIST_INFO_H , mail_list.w, 1, 0xf0f0f0); + DrawBar(0, lt_y+LIST_INFO_H-2, Form.cwidth, 1, sc.work_graph); //bottom + DrawBar(0, lt_y+LIST_INFO_H-1, Form.cwidth, 1, 0xdfdfdf); + DrawBar(0, lt_y+LIST_INFO_H , Form.cwidth, 1, 0xf0f0f0); WriteTextB(10, lt_y+8 , 0x80, sc.work_text, "From:"); WriteText (45, lt_y+8 , 0x80, sc.work_text, #from); WriteTextB(10, lt_y+20, 0x80, sc.work_text, "To:"); @@ -347,7 +353,7 @@ void InitTWB() { Form.cheight - mail_list.y - mail_list.h - LIST_INFO_H - 1 - status_bar_h, 60, 12); WB1.list.column_max = WB1.list.w - 30 / 6; WB1.list.visible = WB1.list.h / WB1.list.line_h; - WB1.DrawBuf.Init(WB1.list.x, WB1.list.y, WB1.list.w, WB1.list.h, WB1.list.line_h); + WB1.DrawBuf.Init(WB1.list.x, WB1.list.y, WB1.list.w, WB1.list.h); strcpy(#header, #version); pre_text = 0; @@ -359,6 +365,7 @@ void DrawLetter() { bufsize = strlen(mdata); WB1.Prepare(bufsize, mdata); if (bufsize) WB1.Parse(); + DrawRectangle(scroll_wv.start_x, scroll_wv.start_y, scroll_wv.size_x, scroll_wv.size_y-1, 0xFFFfff); } @@ -388,7 +395,8 @@ void DrawStatusBar() { void SetMailBoxStatus(dword percent1, text1) { - DrawProgressBar(3, Form.cheight -status_bar_h + 1, 220, 12, sc.work, 0xC3C3C3, 0x54B1D6, sc.work_text, percent1, text1); + DrawProgressBar(3, Form.cheight -status_bar_h + 1, 220, 12, sc.work, 0xC3C3C3, 0x54B1D6, sc.work_text, percent1); + WriteText(3, Form.cheight -status_bar_h + 1, 0x80, sc.work_text, text1); cur_st_percent = percent1; cur_st_text = text1; }