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
This commit is contained in:
IgorA 2010-03-26 17:16:07 +00:00
parent 1f3b9dbf58
commit c2cbea2674
4 changed files with 51 additions and 25 deletions

View File

@ -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

View File

@ -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

View File

@ -36,11 +36,11 @@ ol, ul, dl{
</style>
</head>
<body>
<h1>Planet viewer 08.02.10</h1>
<h1>Planet viewer 26.03.10</h1>
<p>Программа предназначена для просмотра карт, загружаемых с разных
картографических сервисов.</p>
<h1>Управление</h1>
<h1>Управление:</h1>
<p>В текстовое поле 'Cache:' введите путь к папке с интересующими Вас картами. (Параметр Cache из *.ini файла задает путь по умолчанию)</p>
<p>В списке 'Вид карты' выберите расширения просматриваемых файлов. (Параметр ext0 из *.ini файла задает расширение по умолчанию)</p>
<p>Кнопка 'Обновить' перерисовывает окно.</p>
@ -67,6 +67,7 @@ ol, ul, dl{
из её подпапок.</p>
<h1>История версий:</h1>
<p><b>26.03.10</b> - Изменены функции открытия тайлов при задании не существующего пути. Могли возникать глюки при задании не существующего диска.</p>
<p><b>08.02.10</b> - Появились новые параметры для *.ini файла от ext0 до ext9, которые задают возможные расширения для карт.</p>
<p><b>29.01.10</b> - При запуске программы в текстовое поле 'Cache:' вводится путь прописанный в файле 'planet_v.ini'.
Устранен небольшой глюк при растягивании тайлов (не растягивалась 1-я строка пикселей вверху картинки, было заметно на крупных увеличениях), немного ускорено растягивание.
@ -94,5 +95,9 @@ ol, ul, dl{
<li><b>mike.dld</b> - библиотека libini.obj (работа с *.ini файлами),</li>
<li>и другие.</li>
</ul>
<h1>Ссылка:</h1>
<p>Wiki по KolibriOS <a href="http://wiki.kolibrios.org/Planetv">http://wiki.kolibrios.org/Planetv</a></p>
</body>
</html>

View File

@ -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