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 ; макрос для системной библиотеки box_lib.obj
; элемент TreeList для Kolibri OS ; элемент TreeList для Kolibri OS
; ôàéë ïîñëåäíèé ğàç èçìåíÿëñÿ 10.02.2010 IgorA ; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 26.03.2010 IgorA
; на код применена GPL2 лицензия ; на код применена GPL2 лицензия
@ -97,14 +97,14 @@ tl_data_init: ;
xor ecx,ecx xor ecx,ecx
mov cx,tl_info_size mov cx,tl_info_size
imul ecx,dword[edi+6] imul ecx,tl_info_max_count
call mem_Alloc call mem_Alloc
mov dword[edi],eax ;копируем указатель на полученую память в структуру mov dword[edi],eax ;копируем указатель на полученую память в структуру
mov tl_data_img,0 ;обнуляем указатель 'data_img' mov tl_data_img,0 ;обнуляем указатель 'data_img'
mov tl_data_img_sys,0 ;обнуляем указатель 'data_img_sys' mov tl_data_img_sys,0 ;обнуляем указатель 'data_img_sys'
mov ecx,sizeof.TreeList mov ecx,sizeof.TreeList
imul ecx,dword[edi+6] imul ecx,tl_info_max_count
call mem_Alloc call mem_Alloc
mov tl_data_nodes,eax ;копируем указатель на полученую память в структуру mov tl_data_nodes,eax ;копируем указатель на полученую память в структуру
@ -143,7 +143,7 @@ tl_data_clear: ;
mov edi,dword[ebp+8] mov edi,dword[ebp+8]
cmp tl_data_img,0 cmp tl_data_img,0
je @f je @f
mov ecx,dword[edi+18] mov ecx,tl_data_img
call mem_Free ;чистка системных иконок call mem_Free ;чистка системных иконок
@@: @@:
cmp tl_data_img_sys,0 cmp tl_data_img_sys,0
@ -172,7 +172,7 @@ tl_info_clear: ;
mov tl_cur_pos,0 mov tl_cur_pos,0
;xor ecx,ecx ;xor ecx,ecx
mov ecx,sizeof.TreeList mov ecx,sizeof.TreeList
imul ecx,dword[edi+6] imul ecx,tl_info_max_count
mov eax,tl_data_nodes mov eax,tl_data_nodes
@@: @@:
mov byte[eax],0 ;чистим узлы 0-ми mov byte[eax],0 ;чистим узлы 0-ми
@ -1363,7 +1363,7 @@ tl_node_add: ;
call tl_info_set_undo call tl_info_set_undo
mov ebx,sizeof.TreeList mov ebx,sizeof.TreeList
imul ebx,dword[edi+6] ;+6 ìàêñ. êîëè÷åñòâî óçëîâ imul ebx,tl_info_max_count
add ebx,tl_data_nodes add ebx,tl_data_nodes
;-- ;--
call tl_get_cur_node_index ;eax=po_t call tl_get_cur_node_index ;eax=po_t

View File

@ -962,7 +962,7 @@ align 4
ret ;вернуться чень интересный ход т.к. пока в стеке храниться кол-во вызовов то столько раз мы и будем вызываться ret ;вернуться чень интересный ход т.к. пока в стеке храниться кол-во вызовов то столько раз мы и будем вызываться
hed db 'Planet viewer 09.02.10',0 ;¯®¤¯¨áì ®ª­  hed db 'Planet viewer 26.03.10',0 ;¯®¤¯¨áì ®ª­ 
sc system_colors ;бЁб⥬­лҐ жўҐв  sc system_colors ;бЁб⥬­лҐ 梥в 
mouse_dd dd 0 ;­г¦­® ¤«п Shift-  ў editbox mouse_dd dd 0 ;­г¦­® ¤«п Shift-  ў editbox

View File

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

View File

@ -46,6 +46,23 @@ tile_delta_x equ byte[edi+30] ;ᤢ
tile_delta_y equ byte[edi+31] ;ᤢ¨£ â ©«  ®â­®á¨â¥«ì­® ªãàá®à  ¯® ®á¨ y 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 align 4
CursorMoveRight: ;¯¥à¥¤¢¨£ ¥¬ ª®®à¤¨­ âã ªãàá®à  ¢¯à ¢® CursorMoveRight: ;¯¥à¥¤¢¨£ ¥¬ ª®®à¤¨­ âã ªãàá®à  ¢¯à ¢®
@ -390,6 +407,7 @@ jl @f
jmp .end_f jmp .end_f
.info: ;¢ë¢®¤ ¨­ä®à¬ æ¨¨, ¯à¨ ­¥ 㤠筮¬ ®âªàë⨨ ª à⨭®ª .info: ;¢ë¢®¤ ¨­ä®à¬ æ¨¨, ¯à¨ ­¥ 㤠筮¬ ®âªàë⨨ ª à⨭®ª
;;;jmp .end_f ;test
bt tile_drobn,SCALE_0BIT_USE bt tile_drobn,SCALE_0BIT_USE
jc .end_f jc .end_f
bt tile_drobn,SCALE_1BIT_USE bt tile_drobn,SCALE_1BIT_USE
@ -398,6 +416,7 @@ jl @f
mov ebx,edx mov ebx,edx
add ebx,0x30003 add ebx,0x30003
mov edx,tile_rgb_icon ;¯à¨ ­¥ã¤ ç­®¬ ®âªàë⨨ ¢ tile_rgb_icon ¯ãâì ª ä ©«ã 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 stdcall [str_len],tile_rgb_icon,RGB_TILE_SIZE_1N4
mov edi,eax mov edi,eax
@ -614,8 +633,8 @@ proc load_tile, tile:dword
;mov tile_drobn,0 ;mov tile_drobn,0
mov tile_drobn,SCALE_0_USE ;áâ ¢¨¬ ä« £ ®âªàëâ¨ï ª à⨭ª¨ ⥪ã饣® ã஢­ï mov tile_drobn,SCALE_0_USE ;áâ ¢¨¬ ä« £ ®âªàëâ¨ï ª à⨭ª¨ ⥪ã饣® ã஢­ï
stdcall load_new_tile,edi stdcall load_new_tile,edi
cmp tile_err_f,5 cmp tile_err_f,0
jne @f je @f ;¥á«¨ 㤠筮 ®âªà뫨 ⥪ã騩 ä ©« â® ®áâ «ì­ë¥ ¤¥©áâ¢¨ï ¯à®¯ã᪠¥¬
mov tile_drobn,0 mov tile_drobn,0
mov eax,ch2 ;¯à®¢¥à塞 ®¯æ¨î '¡à âì á­¨§ã' mov eax,ch2 ;¯à®¢¥à塞 ®¯æ¨î '¡à âì á­¨§ã'
bt dword[eax+32],1 ;ch_flags equ [edi+32] ;ä« £¨ 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 get_tile_path,edi
stdcall load_new_tile,edi stdcall load_new_tile,edi
cmp tile_err_f,5 cmp tile_err_f,0
je .no_tile_00 jne .no_tile_00 ;¥á«¨ ­¥ã¤ ç­® ®âªà뫨 â® ­¥ 㬥­ìè ¥¬ ¨§®¡à ¦¥­¨¥
or tile_drobn,FRACT_TILE_00 or tile_drobn,FRACT_TILE_00
; 1 ᦠ⨥ ª à⨭ª¨ ¯® ¢ëá®â¥ ; 1 ᦠ⨥ ª à⨭ª¨ ¯® ¢ëá®â¥
stdcall img_rgb_hdiv2, tile_rgb_icon, TILE_LEN*TILE_LEN, TILE_LEN 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 get_tile_path,edi
stdcall load_new_tile,edi stdcall load_new_tile,edi
cmp tile_err_f,5 cmp tile_err_f,0
je .no_tile_01 jne .no_tile_01 ;¥á«¨ ­¥ã¤ ç­® ®âªà뫨 â® ­¥ 㬥­ìè ¥¬ ¨§®¡à ¦¥­¨¥
; mov byte[map.drobn],0 ; mov byte[map.drobn],0
or tile_drobn,FRACT_TILE_01 or tile_drobn,FRACT_TILE_01
; 1 ᦠ⨥ ª à⨭ª¨ ¯® ¢ëá®â¥ ; 1 ᦠ⨥ ª à⨭ª¨ ¯® ¢ëá®â¥
@ -664,8 +683,8 @@ proc load_tile, tile:dword
stdcall get_tile_path,edi stdcall get_tile_path,edi
stdcall load_new_tile,edi stdcall load_new_tile,edi
cmp tile_err_f,5 cmp tile_err_f,0
je .no_tile_10 jne .no_tile_10 ;¥á«¨ ­¥ã¤ ç­® ®âªà뫨 â® ­¥ 㬥­ìè ¥¬ ¨§®¡à ¦¥­¨¥
; mov byte[map.drobn],0 ; mov byte[map.drobn],0
or tile_drobn,FRACT_TILE_10 or tile_drobn,FRACT_TILE_10
; 1 ᦠ⨥ ª à⨭ª¨ ¯® ¢ëá®â¥ ; 1 ᦠ⨥ ª à⨭ª¨ ¯® ¢ëá®â¥
@ -683,8 +702,8 @@ proc load_tile, tile:dword
stdcall get_tile_path,edi stdcall get_tile_path,edi
stdcall load_new_tile,edi stdcall load_new_tile,edi
cmp tile_err_f,5 cmp tile_err_f,0
je .no_tile_11 jne .no_tile_11 ;¥á«¨ ­¥ã¤ ç­® ®âªà뫨 â® ­¥ 㬥­ìè ¥¬ ¨§®¡à ¦¥­¨¥
; mov byte[map.drobn],0 ; mov byte[map.drobn],0
or tile_drobn,FRACT_TILE_11 or tile_drobn,FRACT_TILE_11
; 1 ᦠ⨥ ª à⨭ª¨ ¯® ¢ëá®â¥ ; 1 ᦠ⨥ ª à⨭ª¨ ¯® ¢ëá®â¥
@ -744,8 +763,8 @@ proc get_parent_tiles
stdcall get_tile_path,edi ;¡¥à¥¬ ¯ãâì ª â ©«ã stdcall get_tile_path,edi ;¡¥à¥¬ ¯ãâì ª â ©«ã
stdcall load_new_tile,edi stdcall load_new_tile,edi
cmp tile_err_f,5 cmp tile_err_f,0
je @f jne @f ;¥á«¨ ­¥ã¤ ç­® ®âªà뫨 â® ­¥ à áâ¢ ¥¬ ¨§®¡à ¦¥­¨¥
or tile_drobn,SCALE_1_USE or tile_drobn,SCALE_1_USE
mov ebx,ecx mov ebx,ecx
.zoom_cycle: .zoom_cycle:
@ -791,8 +810,10 @@ proc load_new_tile, tile:dword
int 0x40 int 0x40
mov edi,[tile] mov edi,[tile]
mov tile_err_f,al mov tile_err_f,al
cmp ebx,0xffffffff ; cmp ebx,0xffffffff
je .no_load ; je .no_load
cmp eax,0
jne .no_load
stdcall dword[img_decode], dword[bmp_icon],ebx,0 stdcall dword[img_decode], dword[bmp_icon],ebx,0
mov dword[data_icon],eax mov dword[data_icon],eax
@ -805,7 +826,7 @@ proc load_new_tile, tile:dword
mov al,byte[map.zoom] mov al,byte[map.zoom]
cmp tile_zoom,al cmp tile_zoom,al
jne @f jne @f
stdcall mem_copy, file_name,tile_rgb_icon,150 stdcall mem_copy, file_name,tile_rgb_icon,250
@@: @@:
popad popad
ret 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, txt_tile_path,300
stdcall [str_cat], file_name,4096-1, dword [txt_tile_type],10 stdcall [str_cat], file_name,4096-1, dword [txt_tile_type],10
ret ret