diff --git a/programs/bcc32/games/blocks/bin/blocks.kex b/programs/bcc32/games/blocks/bin/blocks.kex index e8bfa9155e..277c920143 100644 Binary files a/programs/bcc32/games/blocks/bin/blocks.kex and b/programs/bcc32/games/blocks/bin/blocks.kex differ diff --git a/programs/bcc32/games/blocks/blocks.cpp b/programs/bcc32/games/blocks/blocks.cpp index 8ed9fcc156..3d73e3953c 100644 --- a/programs/bcc32/games/blocks/blocks.cpp +++ b/programs/bcc32/games/blocks/blocks.cpp @@ -48,7 +48,8 @@ struct ModelList{ char* name; long int color, t_cr; float x,y,z, r_x,r_y,r_z; - long int level, id_l; + unsigned long level; + long int id_l; }; ModelList* model_list = 0; @@ -73,8 +74,8 @@ float white_light[] = {1.0, 1.0, 1.0, 1.0}; //Цвет и интенсивнос float lmodel_ambient[] = {0.3, 0.3, 0.3, 1.0}; //Параметры фонового освещения char str1[] = "Show active level"; -check_box check1 = { {16,280,20,4}, 8, 0xffffff, 0x808080, 0xffffff, str1, ch_flag_middle }; -scrollbar sb_tcr = { 200,70,19,4, 16, 1, 20,1,0, 0x808080, 0xffffff, 0x0}; +check_box check1 = { {16,310,20,4}, 8, 0xffffff, 0x808080, 0xffffff, str1, ch_flag_middle }; +scrollbar sb_tcr = { 200,100,19,4, 16, 1, 20,1,0, 0x808080, 0xffffff, 0x0}; void SetLight() { @@ -195,9 +196,14 @@ bool init_block(){ FileInfoBlock* file; unsigned long int k; - file = FileOpen("block.bin"); + k = strlen(CurrentDirectoryPath); + while(CurrentDirectoryPath[k] != '\\' && CurrentDirectoryPath[k] != '/' && k) {k--;}; + memcpy(library_path,CurrentDirectoryPath,k); + strcpy(library_path+k,"block.bin"); + + file = FileOpen(library_path); if (!file){ - //SetWindowCaption("Error open file 'block.bin'"); + MessageBox("Error open file 'block.bin', file not found"); return false; } k = FileGetLength(file); @@ -218,9 +224,14 @@ bool init_block(){ f_data = 0; } } + FileClose(file); + } + else { + MessageBox("Error open file 'block.bin', file length == 0"); + FileClose(file); + return false; } - FileClose(file); - + if (b_data){ unsigned long i=0, n=0; b_count=0; @@ -245,7 +256,10 @@ bool init_block(){ compile_list(&b_list[n]); n++; }; - } + } + else { + MessageBox("Error open file 'block.bin', can't unpack file"); + } return (bool)b_data; } @@ -470,7 +484,8 @@ void KolibriOnPaint(void) // If button have ID 1, this is close button DrawButton(2,0xf0f0f0, 10,4,50,19); DrawText(20,10,0,"Open"); - DrawText(10,TOOLBAR_H+3,(1<<24)|0xffffff,DoubleToStr(sb_tcr.position,0,true)); + DrawRect(70,7, 24,18, 0x333333); + DrawText(70,7,(1<<24)|0xffffff,DoubleToStr(sb_tcr.position,0,true)); sb_tcr.all_redraw=1; scrollbar_h_draw(&sb_tcr); check_box_draw(&check1); @@ -567,7 +582,7 @@ void KolibriOnMouse(TThreadData /*th*/) } } -void KolibriOnSize(int window_rect[], TThreadData /*th*/) +void KolibriOnSize(int [], TThreadData /*th*/) { unsigned short int width, height; GetClientSize(width, height); diff --git a/programs/bcc32/include/kos_lib.h b/programs/bcc32/include/kos_lib.h index 655484ede2..df9ed88540 100644 --- a/programs/bcc32/include/kos_lib.h +++ b/programs/bcc32/include/kos_lib.h @@ -11,3 +11,5 @@ double floor(double x); const char *DoubleToStr(double x, unsigned short digits = 5, bool crop_0 = false); double StrToDouble(char *str); long StrToInt(char *str); + +void MessageBox(char *str); \ No newline at end of file diff --git a/programs/bcc32/include/kos_lib.inc b/programs/bcc32/include/kos_lib.inc index 2c75f32ad8..3269054e26 100644 --- a/programs/bcc32/include/kos_lib.inc +++ b/programs/bcc32/include/kos_lib.inc @@ -1,4 +1,4 @@ -include "..\..\..\develop\info3ds\info_fun_float.inc" +include "..\..\develop\info3ds\info_fun_float.inc" align 4 proc @DoubleToStr$qduso uses esi edi @@ -292,3 +292,10 @@ proc @floor$qd .floor_end: ret endp + +align 4 +proc @MessageBox$qpc + mov eax,[esp+4] + notify_window_run eax + ret +endp \ No newline at end of file diff --git a/programs/bcc32/include/kos_start.inc b/programs/bcc32/include/kos_start.inc index 569546c68f..5a3bbbd8b8 100644 --- a/programs/bcc32/include/kos_start.inc +++ b/programs/bcc32/include/kos_start.inc @@ -17,11 +17,11 @@ else dd 0 end if -include "..\..\..\KOSfuncs.inc" -include "..\..\..\proc32.inc" -include "..\..\..\macros.inc" -include "..\..\..\dll.inc" -include "..\..\..\load_lib.mac" +include "..\..\KOSfuncs.inc" +include "..\..\proc32.inc" +include "..\..\macros.inc" +include "..\..\dll.inc" +include "..\..\load_lib.mac" ptr equ offset equ @@ -33,24 +33,6 @@ OFFSET equ SHORT equ TBYTE equ TWORD -macro movsb a,b -{ - if a eq & b eq - movsb - else - movsx a,b - end if -} - -macro movsw a,b -{ - if a eq & b eq - movsw - else - movsx a,b - end if -} - macro segment name {} macro endseg name {} diff --git a/programs/bcc32/include/kos_unpack.inc b/programs/bcc32/include/kos_unpack.inc index 49efed0ee3..55c6d5772f 100644 --- a/programs/bcc32/include/kos_unpack.inc +++ b/programs/bcc32/include/kos_unpack.inc @@ -1,7 +1,7 @@ @@unpack$qqspvt1 equ unpack -include "..\..\..\system\skincfg\trunk\kglobals.inc" -include "..\..\..\system\skincfg\trunk\unpacker.inc" +include "..\..\system\skincfg\trunk\kglobals.inc" +include "..\..\system\skincfg\trunk\unpacker.inc" IncludeIGlobals IncludeUGlobals \ No newline at end of file