From c2cbea2674b97e1d8857da99c239ed1f52d05372 Mon Sep 17 00:00:00 2001 From: IgorA Date: Fri, 26 Mar 2010 17:16:07 +0000 Subject: [PATCH] changed the function of the opening of Tile when specifying non-existent path git-svn-id: svn://kolibrios.org@1441 a494cfbc-eb01-0410-851d-a64ba20cac60 --- .../libraries/box_lib/trunk/tree_list.mac | 12 ++--- programs/other/planet_v/planet_v.asm | 2 +- programs/other/planet_v/readme.htm | 9 +++- programs/other/planet_v/tile_fun.inc | 53 +++++++++++++------ 4 files changed, 51 insertions(+), 25 deletions(-) diff --git a/programs/develop/libraries/box_lib/trunk/tree_list.mac b/programs/develop/libraries/box_lib/trunk/tree_list.mac index 185b2d8786..38a8a23261 100644 --- a/programs/develop/libraries/box_lib/trunk/tree_list.mac +++ b/programs/develop/libraries/box_lib/trunk/tree_list.mac @@ -1,6 +1,6 @@ ; макрос для системной библиотеки box_lib.obj ; элемент TreeList для Kolibri OS -; файл последний раз изменялся 10.02.2010 IgorA +; файл последний раз изменялся 26.03.2010 IgorA ; на код применена GPL2 лицензия @@ -97,14 +97,14 @@ tl_data_init: ; xor ecx,ecx mov cx,tl_info_size - imul ecx,dword[edi+6] + imul ecx,tl_info_max_count call mem_Alloc mov dword[edi],eax ;копируем указатель на полученую память в структуру mov tl_data_img,0 ;обнуляем указатель 'data_img' mov tl_data_img_sys,0 ;обнуляем указатель 'data_img_sys' mov ecx,sizeof.TreeList - imul ecx,dword[edi+6] + imul ecx,tl_info_max_count call mem_Alloc mov tl_data_nodes,eax ;копируем указатель на полученую память в структуру @@ -143,7 +143,7 @@ tl_data_clear: ; mov edi,dword[ebp+8] cmp tl_data_img,0 je @f - mov ecx,dword[edi+18] + mov ecx,tl_data_img call mem_Free ;чистка системных иконок @@: cmp tl_data_img_sys,0 @@ -172,7 +172,7 @@ tl_info_clear: ; mov tl_cur_pos,0 ;xor ecx,ecx mov ecx,sizeof.TreeList - imul ecx,dword[edi+6] + imul ecx,tl_info_max_count mov eax,tl_data_nodes @@: mov byte[eax],0 ;чистим узлы 0-ми @@ -1363,7 +1363,7 @@ tl_node_add: ; call tl_info_set_undo mov ebx,sizeof.TreeList - imul ebx,dword[edi+6] ;+6 макс. количество узлов + imul ebx,tl_info_max_count add ebx,tl_data_nodes ;-- call tl_get_cur_node_index ;eax=po_t diff --git a/programs/other/planet_v/planet_v.asm b/programs/other/planet_v/planet_v.asm index 8b91d92510..46649d8849 100644 --- a/programs/other/planet_v/planet_v.asm +++ b/programs/other/planet_v/planet_v.asm @@ -962,7 +962,7 @@ align 4 ret ;вернуться чень интересный ход т.к. пока в стеке храниться кол-во вызовов то столько раз мы и будем вызываться -hed db 'Planet viewer 09.02.10',0 ;Ї®¤ЇЁбм ®Є­  +hed db 'Planet viewer 26.03.10',0 ;Ї®¤ЇЁбм ®Є­  sc system_colors ;бЁб⥬­лҐ жўҐв  mouse_dd dd 0 ;­г¦­® ¤«п Shift-  ў editbox diff --git a/programs/other/planet_v/readme.htm b/programs/other/planet_v/readme.htm index 9ea6004a46..e45a1e8beb 100644 --- a/programs/other/planet_v/readme.htm +++ b/programs/other/planet_v/readme.htm @@ -36,11 +36,11 @@ ol, ul, dl{ -

Planet viewer 08.02.10

+

Planet viewer 26.03.10

Программа предназначена для просмотра карт, загружаемых с разных картографических сервисов.

-

Управление

+

Управление:

В текстовое поле 'Cache:' введите путь к папке с интересующими Вас картами. (Параметр Cache из *.ini файла задает путь по умолчанию)

В списке 'Вид карты' выберите расширения просматриваемых файлов. (Параметр ext0 из *.ini файла задает расширение по умолчанию)

Кнопка 'Обновить' перерисовывает окно.

@@ -67,6 +67,7 @@ ol, ul, dl{ из её подпапок.

История версий:

+

26.03.10 - Изменены функции открытия тайлов при задании не существующего пути. Могли возникать глюки при задании не существующего диска.

08.02.10 - Появились новые параметры для *.ini файла от ext0 до ext9, которые задают возможные расширения для карт.

29.01.10 - При запуске программы в текстовое поле 'Cache:' вводится путь прописанный в файле 'planet_v.ini'. Устранен небольшой глюк при растягивании тайлов (не растягивалась 1-я строка пикселей вверху картинки, было заметно на крупных увеличениях), немного ускорено растягивание. @@ -94,5 +95,9 @@ ol, ul, dl{

  • mike.dld - библиотека libini.obj (работа с *.ini файлами),
  • и другие.
  • + +

    Ссылка:

    +

    Wiki по KolibriOS http://wiki.kolibrios.org/Planetv

    + \ No newline at end of file diff --git a/programs/other/planet_v/tile_fun.inc b/programs/other/planet_v/tile_fun.inc index be7e92d3eb..b6330aa505 100644 --- a/programs/other/planet_v/tile_fun.inc +++ b/programs/other/planet_v/tile_fun.inc @@ -46,6 +46,23 @@ tile_delta_x equ byte[edi+30] ;б¤ў tile_delta_y equ byte[edi+31] ;б¤ўЁЈ в ©«  ®в­®бЁвҐ«м­® Єгаб®а  Ї® ®бЁ y +; *** Ї®а冷Є ўл§®ў  дг­ЄжЁ© ЇаЁ § Јаг§ЄЁ в ©«®ў *** +;load_tile +; get_tile_path +; load_new_tile (⥪гй п Є авЁ­Є ) +; get_tile_path +; load_new_tile (­Ё¦­пп Є авЁ­Є ) +; get_tile_path +; load_new_tile (­Ё¦­пп Є авЁ­Є ) +; get_tile_path +; load_new_tile (­Ё¦­пп Є авЁ­Є ) +; get_tile_path +; load_new_tile (­Ё¦­пп Є авЁ­Є ) +; get_parent_tiles (жЁЄ«ЁзҐбЄЁ© Їа®б¬®ва தЁвҐ«мбЄЁе в ©«®ў) +; get_tile_path +; load_new_tile (ўҐае­пп Є авЁ­Є ) + + ;??? align 4 CursorMoveRight: ;ЇҐаҐ¤ўЁЈ Ґ¬ Є®®а¤Ё­ вг Єгаб®а  ўЇа ў® @@ -390,6 +407,7 @@ jl @f jmp .end_f .info: ;ўлў®¤ Ё­д®а¬ жЁЁ, ЇаЁ ­Ґ г¤ з­®¬ ®вЄалвЁЁ Є авЁ­®Є +;;;jmp .end_f ;test bt tile_drobn,SCALE_0BIT_USE jc .end_f bt tile_drobn,SCALE_1BIT_USE @@ -398,6 +416,7 @@ jl @f mov ebx,edx add ebx,0x30003 mov edx,tile_rgb_icon ;ЇаЁ ­Ґг¤ з­®¬ ®вЄалвЁЁ ў tile_rgb_icon Їгвм Є д ©«г +;;; mov dword[edx+RGB_TILE_SIZE_1N4],0 ;бв ўЁ¬ ­г«Ё, ­  б«гз © Ґб«Ё ў бва®ЄҐ б Ё¬Ґ­Ґ¬ д ©«  ¬гб®а stdcall [str_len],tile_rgb_icon,RGB_TILE_SIZE_1N4 mov edi,eax @@ -614,8 +633,8 @@ proc load_tile, tile:dword ;mov tile_drobn,0 mov tile_drobn,SCALE_0_USE ;бв ўЁ¬ д« Ј ®вЄалвЁп Є авЁ­ЄЁ ⥪г饣® га®ў­п stdcall load_new_tile,edi - cmp tile_err_f,5 - jne @f + cmp tile_err_f,0 + je @f ;Ґб«Ё г¤ з­® ®вЄал«Ё ⥪гйЁ© д ©« в® ®бв «м­лҐ ¤Ґ©бвўЁп Їа®ЇгбЄ Ґ¬ mov tile_drobn,0 mov eax,ch2 ;Їа®ўҐа塞 ®ЇжЁо 'Ўа вм б­Ё§г' bt dword[eax+32],1 ;ch_flags equ [edi+32] ;д« ЈЁ @@ -628,8 +647,8 @@ proc load_tile, tile:dword stdcall get_tile_path,edi stdcall load_new_tile,edi - cmp tile_err_f,5 - je .no_tile_00 + cmp tile_err_f,0 + jne .no_tile_00 ;Ґб«Ё ­Ґг¤ з­® ®вЄал«Ё в® ­Ґ 㬥­ми Ґ¬ Ё§®Ўа ¦Ґ­ЁҐ or tile_drobn,FRACT_TILE_00 ; 1 б¦ вЁҐ Є авЁ­ЄЁ Ї® ўлб®вҐ stdcall img_rgb_hdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN, TILE_LEN @@ -644,8 +663,8 @@ proc load_tile, tile:dword stdcall get_tile_path,edi stdcall load_new_tile,edi - cmp tile_err_f,5 - je .no_tile_01 + cmp tile_err_f,0 + jne .no_tile_01 ;Ґб«Ё ­Ґг¤ з­® ®вЄал«Ё в® ­Ґ 㬥­ми Ґ¬ Ё§®Ўа ¦Ґ­ЁҐ ; mov byte[map.drobn],0 or tile_drobn,FRACT_TILE_01 ; 1 б¦ вЁҐ Є авЁ­ЄЁ Ї® ўлб®вҐ @@ -664,8 +683,8 @@ proc load_tile, tile:dword stdcall get_tile_path,edi stdcall load_new_tile,edi - cmp tile_err_f,5 - je .no_tile_10 + cmp tile_err_f,0 + jne .no_tile_10 ;Ґб«Ё ­Ґг¤ з­® ®вЄал«Ё в® ­Ґ 㬥­ми Ґ¬ Ё§®Ўа ¦Ґ­ЁҐ ; mov byte[map.drobn],0 or tile_drobn,FRACT_TILE_10 ; 1 б¦ вЁҐ Є авЁ­ЄЁ Ї® ўлб®вҐ @@ -683,8 +702,8 @@ proc load_tile, tile:dword stdcall get_tile_path,edi stdcall load_new_tile,edi - cmp tile_err_f,5 - je .no_tile_11 + cmp tile_err_f,0 + jne .no_tile_11 ;Ґб«Ё ­Ґг¤ з­® ®вЄал«Ё в® ­Ґ 㬥­ми Ґ¬ Ё§®Ўа ¦Ґ­ЁҐ ; mov byte[map.drobn],0 or tile_drobn,FRACT_TILE_11 ; 1 б¦ вЁҐ Є авЁ­ЄЁ Ї® ўлб®вҐ @@ -744,8 +763,8 @@ proc get_parent_tiles stdcall get_tile_path,edi ;ЎҐаҐ¬ Їгвм Є в ©«г stdcall load_new_tile,edi - cmp tile_err_f,5 - je @f + cmp tile_err_f,0 + jne @f ;Ґб«Ё ­Ґг¤ з­® ®вЄал«Ё в® ­Ґ а бвпЈЁў Ґ¬ Ё§®Ўа ¦Ґ­ЁҐ or tile_drobn,SCALE_1_USE mov ebx,ecx .zoom_cycle: @@ -791,8 +810,10 @@ proc load_new_tile, tile:dword int 0x40 mov edi,[tile] mov tile_err_f,al - cmp ebx,0xffffffff - je .no_load +; cmp ebx,0xffffffff +; je .no_load + cmp eax,0 + jne .no_load stdcall dword[img_decode], dword[bmp_icon],ebx,0 mov dword[data_icon],eax @@ -805,7 +826,7 @@ proc load_new_tile, tile:dword mov al,byte[map.zoom] cmp tile_zoom,al jne @f - stdcall mem_copy, file_name,tile_rgb_icon,150 + stdcall mem_copy, file_name,tile_rgb_icon,250 @@: popad ret @@ -918,4 +939,4 @@ get_all_path: ; stdcall [str_cat], file_name,4096-1, txt_tile_path,300 stdcall [str_cat], file_name,4096-1, dword [txt_tile_type],10 -ret \ No newline at end of file +ret