Rev 7365 | Rev 7441 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7365 | Rev 7415 | ||
---|---|---|---|
Line 12... | Line 12... | ||
12 | include 'lang.inc' |
12 | include 'lang.inc' |
13 | include 'cnc_editor.inc' |
13 | include 'cnc_editor.inc' |
14 | include '../../develop/info3ds/info_fun_float.inc' |
14 | include '../../develop/info3ds/info_fun_float.inc' |
Line 15... | Line 15... | ||
15 | 15 | ||
16 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
16 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
Line 17... | Line 17... | ||
17 | caption db 'CNC editor 14.09.18',0 ;¯®¤¯¨áì ®ª |
17 | caption db 'CNC editor 24.09.18',0 ;¯®¤¯¨áì ®ª |
Line 18... | Line 18... | ||
18 | 18 | ||
Line 378... | Line 378... | ||
378 | int 0x40 ;captions on off |
378 | int 0x40 ;captions on off |
Line 379... | Line 379... | ||
379 | 379 | ||
380 | add ebx,25 shl 16 |
380 | add ebx,25 shl 16 |
381 | mov edx,7 |
381 | mov edx,7 |
382 | int 0x40 ;figure move up |
- | |
383 | 382 | int 0x40 ;figure move up |
|
384 | add ebx,25 shl 16 |
383 | add ebx,25 shl 16 |
385 | mov edx,8 |
384 | mov edx,8 |
Line 386... | Line 385... | ||
386 | int 0x40 ;figure move down |
385 | int 0x40 ;figure move down |
Line 390... | Line 389... | ||
390 | int 0x40 ;sel points dlg |
389 | int 0x40 ;sel points dlg |
Line 391... | Line 390... | ||
391 | 390 | ||
392 | add ebx,25 shl 16 |
391 | add ebx,25 shl 16 |
393 | mov edx,10 |
392 | mov edx,10 |
394 | int 0x40 ;sel points move up |
- | |
395 | 393 | int 0x40 ;sel points move up |
|
396 | add ebx,25 shl 16 |
394 | add ebx,25 shl 16 |
397 | mov edx,11 |
395 | mov edx,11 |
Line 398... | Line 396... | ||
398 | int 0x40 ;sel points move down |
396 | int 0x40 ;sel points move down |
399 | 397 | ||
400 | add ebx,25 shl 16 |
398 | add ebx,25 shl 16 |
401 | mov edx,12 |
- | |
402 | int 0x40 ;copy to clipboard |
399 | mov edx,12 |
403 | 400 | int 0x40 ;align sel points left |
|
- | 401 | add ebx,25 shl 16 |
|
- | 402 | mov edx,13 |
|
- | 403 | int 0x40 ;align sel points right |
|
- | 404 | add ebx,25 shl 16 |
|
- | 405 | mov edx,14 |
|
- | 406 | int 0x40 ;align sel points top |
|
- | 407 | add ebx,25 shl 16 |
|
- | 408 | mov edx,15 |
|
- | 409 | int 0x40 ;align sel points bottom |
|
- | 410 | ||
- | 411 | add ebx,25 shl 16 |
|
- | 412 | mov edx,16 |
|
- | 413 | int 0x40 ;copy to clipboard |
|
404 | add ebx,25 shl 16 |
414 | add ebx,25 shl 16 |
Line 405... | Line 415... | ||
405 | mov edx,13 |
415 | mov edx,17 |
406 | int 0x40 ;paste from clipboard |
416 | int 0x40 ;paste from clipboard |
407 | 417 | ||
Line 408... | Line 418... | ||
408 | add ebx,25 shl 16 |
418 | add ebx,25 shl 16 |
409 | mov edx,14 |
419 | mov edx,18 |
410 | int 0x40 ;sel points del |
420 | int 0x40 ;sel points del |
Line 411... | Line 421... | ||
411 | 421 | ||
412 | add ebx,30 shl 16 |
422 | add ebx,30 shl 16 |
413 | mov edx,15 |
423 | mov edx,19 |
Line 414... | Line 424... | ||
414 | int 0x40 ;restore zoom |
424 | int 0x40 ;restore zoom |
415 | 425 | ||
416 | add ebx,30 shl 16 |
426 | add ebx,30 shl 16 |
Line 417... | Line 427... | ||
417 | mov edx,16 |
427 | mov edx,20 |
418 | int 0x40 ;.png |
428 | int 0x40 ;.png |
Line 448... | Line 458... | ||
448 | int 0x40 |
458 | int 0x40 |
449 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
459 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
450 | add edx,(25 shl 16) ;sel points move down |
460 | add edx,(25 shl 16) ;sel points move down |
451 | int 0x40 |
461 | int 0x40 |
452 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
462 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
- | 463 | add edx,(25 shl 16) ;aling sel points left |
|
- | 464 | int 0x40 |
|
- | 465 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
|
- | 466 | add edx,(25 shl 16) ;aling sel points right |
|
- | 467 | int 0x40 |
|
- | 468 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
|
- | 469 | add edx,(25 shl 16) ;aling sel points top |
|
- | 470 | int 0x40 |
|
- | 471 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
|
- | 472 | add edx,(25 shl 16) ;aling sel points bottom |
|
- | 473 | int 0x40 |
|
- | 474 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
|
453 | add edx,(25 shl 16) ;copy to clipboard |
475 | add edx,(25 shl 16) ;copy to clipboard |
454 | int 0x40 |
476 | int 0x40 |
455 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
477 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
456 | add edx,(25 shl 16) ;paste from clipboard |
478 | add edx,(25 shl 16) ;paste from clipboard |
457 | int 0x40 |
479 | int 0x40 |
Line 587... | Line 609... | ||
587 | call but_sel_points_move_down |
609 | call but_sel_points_move_down |
588 | jmp still |
610 | jmp still |
589 | @@: |
611 | @@: |
590 | cmp ah,12 |
612 | cmp ah,12 |
591 | jne @f |
613 | jne @f |
592 | call but_clipboard_copy_points |
614 | call but_sel_points_align_coord_xmin |
593 | jmp still |
615 | jmp still |
594 | @@: |
616 | @@: |
595 | cmp ah,13 |
617 | cmp ah,13 |
596 | jne @f |
618 | jne @f |
597 | call but_clipboard_paste_points |
619 | call but_sel_points_align_coord_xmax |
598 | jmp still |
620 | jmp still |
599 | @@: |
621 | @@: |
600 | cmp ah,14 |
622 | cmp ah,14 |
601 | jne @f |
623 | jne @f |
602 | call but_sel_points_del |
624 | call but_sel_points_align_coord_ymax |
603 | jmp still |
625 | jmp still |
604 | @@: |
626 | @@: |
605 | cmp ah,15 |
627 | cmp ah,15 |
606 | jne @f |
628 | jne @f |
- | 629 | call but_sel_points_align_coord_ymin |
|
- | 630 | @@: |
|
- | 631 | cmp ah,16 |
|
- | 632 | jne @f |
|
- | 633 | call but_clipboard_copy_points |
|
- | 634 | jmp still |
|
- | 635 | @@: |
|
- | 636 | cmp ah,17 |
|
- | 637 | jne @f |
|
- | 638 | call but_clipboard_paste_points |
|
- | 639 | jmp still |
|
- | 640 | @@: |
|
- | 641 | cmp ah,18 |
|
- | 642 | jne @f |
|
- | 643 | call but_sel_points_del |
|
- | 644 | jmp still |
|
- | 645 | @@: |
|
- | 646 | cmp ah,19 |
|
- | 647 | jne @f |
|
607 | call but_restore_zoom |
648 | call but_restore_zoom |
608 | jmp still |
649 | jmp still |
609 | @@: |
650 | @@: |
610 | cmp ah,16 |
651 | cmp ah,20 |
611 | jne @f |
652 | jne @f |
612 | call but_save_png |
653 | call but_save_png |
613 | jmp still |
654 | jmp still |
614 | @@: |
655 | @@: |
615 | cmp ah,17 |
656 | cmp ah,21 |
616 | jne @f |
657 | jne @f |
617 | call but_dlg_opt_scale |
658 | call but_dlg_opt_scale |
618 | jmp still |
659 | jmp still |
619 | @@: |
660 | @@: |
Line 620... | Line 661... | ||
620 | 661 | ||
621 | ;cmp ah,18 |
662 | ;cmp ah,22 |
622 | ;jne @f |
663 | ;jne @f |
623 | ;call but_... |
664 | ;call but_... |
624 | ;jmp still |
665 | ;jmp still |
625 | ;@@: |
666 | ;@@: |
Line 663... | Line 704... | ||
663 | mov dword[run_file_70.Buffer], open_b |
704 | mov dword[run_file_70.Buffer], open_b |
664 | mov byte[run_file_70+20], 0 |
705 | mov byte[run_file_70+20], 0 |
665 | mov dword[run_file_70.FileName], openfile_path |
706 | mov dword[run_file_70.FileName], openfile_path |
666 | mcall SF_FILE,run_file_70 |
707 | mcall SF_FILE,run_file_70 |
Line 667... | Line -... | ||
667 | - | ||
668 | ;mov eax,dword[open_b+32] |
- | |
669 | ;mov edi,txt_buf |
- | |
670 | ;stdcall convert_int_to_str,20 |
- | |
671 | ;notify_window_run txt_buf |
- | |
672 | 708 | ||
673 | mov ecx,dword[open_b+32] ;+32 qword: à §¬¥à ä ©« ¢ ¡ ©â å |
709 | mov ecx,dword[open_b+32] ;+32 qword: à §¬¥à ä ©« ¢ ¡ ©â å |
674 | inc ecx ;for text files |
710 | inc ecx ;for text files |
675 | stdcall mem.ReAlloc,[open_file_data],ecx |
711 | stdcall mem.ReAlloc,[open_file_data],ecx |
676 | mov [open_file_data],eax |
712 | mov [open_file_data],eax |
Line 1454... | Line 1490... | ||
1454 | or eax,eax |
1490 | or eax,eax |
1455 | jz .no_point |
1491 | jz .no_point |
1456 | cmp [eax+Figure.OType],'Fig' |
1492 | cmp [eax+Figure.OType],'Fig' |
1457 | jne .no_point |
1493 | jne .no_point |
Line 1458... | Line -... | ||
1458 | - | ||
1459 | ;¯à®¢¥à塞 ¢ë¤¥«¥ë¥ â®çª¨ |
1494 | |
1460 | mov ecx,[eax+Figure.PoiCount] |
1495 | mov ecx,[eax+Figure.PoiCount] |
1461 | or ecx,ecx |
1496 | or ecx,ecx |
1462 | jz .no_point |
1497 | jz .no_point |
1463 | mov eax,[eax+Figure.PoiData] |
1498 | mov eax,[eax+Figure.PoiData] |
1464 | .cycle0: ;1-ï ¢ë¤¥«¥ ï â®çª |
1499 | .cycle0: ;横« ¤«ï ¢ë¤¥«¥¨ï â®ç¥ª |
1465 | bts dword[eax+Point.Prop],PROP_BIT_SELECT |
1500 | bts dword[eax+Point.Prop],PROP_BIT_SELECT |
1466 | add eax,sizeof.Point |
1501 | add eax,sizeof.Point |
1467 | loop .cycle0 |
1502 | loop .cycle0 |
1468 | ;¤«ï ®¡®¢«¥¨ï ¯® â ©¬¥àã |
1503 | ;¤«ï ®¡®¢«¥¨ï ¯® â ©¬¥àã |
1469 | mov dword[offs_last_timer],0 |
1504 | mov dword[offs_last_timer],0 |
1470 | .no_point: |
1505 | .no_point: |
1471 | ret |
1506 | ret |
Line 1472... | Line 1507... | ||
1472 | endp |
1507 | endp |
- | 1508 | ||
- | 1509 | align 4 |
|
- | 1510 | proc but_sel_points_align_coord_xmin |
|
- | 1511 | pushad |
|
- | 1512 | stdcall [tl_node_get_data],tree1 |
|
- | 1513 | or eax,eax |
|
- | 1514 | jz .no_point |
|
- | 1515 | cmp [eax+Figure.OType],'Fig' |
|
- | 1516 | jne .no_point |
|
- | 1517 | ||
- | 1518 | mov ebx,eax |
|
- | 1519 | stdcall sel_points_get_count,eax |
|
- | 1520 | cmp eax,1 |
|
- | 1521 | jle .no_point |
|
- | 1522 | mov ecx,[ebx+Figure.PoiCount] |
|
- | 1523 | or ecx,ecx |
|
- | 1524 | jz .no_point |
|
- | 1525 | cmp eax,ecx |
|
- | 1526 | je .no_point ;¥á«¨ ¢ë¤¥«¥ë ¢á¥ â®çª¨, çâ®-¡ë ¥ ¯®àâ¨âì ª®âãà |
|
- | 1527 | ||
- | 1528 | mov edx,ecx |
|
- | 1529 | imul edx,sizeof.Point |
|
- | 1530 | mov ebx,[ebx+Figure.PoiData] |
|
- | 1531 | add edx,ebx |
|
- | 1532 | align 4 |
|
- | 1533 | .cycle0: ;1-ï ¢ë¤¥«¥ ï â®çª |
|
- | 1534 | cmp ebx,edx |
|
- | 1535 | jge .no_point |
|
- | 1536 | bt dword[ebx+Point.Prop],PROP_BIT_SELECT |
|
- | 1537 | jc .cycle0end |
|
- | 1538 | add ebx,sizeof.Point |
|
- | 1539 | jmp .cycle0 |
|
- | 1540 | .cycle0end: |
|
- | 1541 | lea esi,[ebx+Point.CoordX] |
|
- | 1542 | mov edi,Data_Double |
|
- | 1543 | movsd |
|
- | 1544 | movsd |
|
- | 1545 | finit |
|
- | 1546 | fld qword[Data_Double] |
|
- | 1547 | align 4 |
|
- | 1548 | .cycle1: ;横« ¤«ï 宦¤¥¨ï min(Point.CoordX) |
|
- | 1549 | bt dword[ebx+Point.Prop],PROP_BIT_SELECT |
|
- | 1550 | jnc .no_sel |
|
- | 1551 | fcom qword[ebx+Point.CoordX] |
|
- | 1552 | fstsw ax |
|
- | 1553 | sahf |
|
- | 1554 | jbe .no_sel |
|
- | 1555 | ;if (st0>Point.CoordX) |
|
- | 1556 | ffree st0 |
|
- | 1557 | fincstp |
|
- | 1558 | fld qword[ebx+Point.CoordX] |
|
- | 1559 | .no_sel: |
|
- | 1560 | add ebx,sizeof.Point |
|
- | 1561 | cmp ebx,edx |
|
- | 1562 | jl .cycle1 |
|
- | 1563 | fstp qword[Data_Double] |
|
- | 1564 | align 4 |
|
- | 1565 | .cycle2: ;横« ¤«ï ¯à¨á¢ ¨¢ ¨ï ¢á¥¬ Point.CoordX = min(Point.CoordX) |
|
- | 1566 | sub edx,sizeof.Point |
|
- | 1567 | bt dword[edx+Point.Prop],PROP_BIT_SELECT |
|
- | 1568 | jnc @f |
|
- | 1569 | mov esi,Data_Double |
|
- | 1570 | lea edi,[edx+Point.CoordX] |
|
- | 1571 | movsd |
|
- | 1572 | movsd |
|
- | 1573 | @@: |
|
- | 1574 | loop .cycle2 |
|
- | 1575 | ;¤«ï ®¡®¢«¥¨ï ¯® â ©¬¥àã |
|
- | 1576 | mov dword[offs_last_timer],0 |
|
- | 1577 | .no_point: |
|
- | 1578 | popad |
|
- | 1579 | ret |
|
- | 1580 | endp |
|
- | 1581 | ||
- | 1582 | align 4 |
|
- | 1583 | proc but_sel_points_align_coord_ymin |
|
- | 1584 | pushad |
|
- | 1585 | stdcall [tl_node_get_data],tree1 |
|
- | 1586 | or eax,eax |
|
- | 1587 | jz .no_point |
|
- | 1588 | cmp [eax+Figure.OType],'Fig' |
|
- | 1589 | jne .no_point |
|
- | 1590 | ||
- | 1591 | mov ebx,eax |
|
- | 1592 | stdcall sel_points_get_count,eax |
|
- | 1593 | cmp eax,1 |
|
- | 1594 | jle .no_point |
|
- | 1595 | mov ecx,[ebx+Figure.PoiCount] |
|
- | 1596 | or ecx,ecx |
|
- | 1597 | jz .no_point |
|
- | 1598 | cmp eax,ecx |
|
- | 1599 | je .no_point ;¥á«¨ ¢ë¤¥«¥ë ¢á¥ â®çª¨, çâ®-¡ë ¥ ¯®àâ¨âì ª®âãà |
|
- | 1600 | ||
- | 1601 | mov edx,ecx |
|
- | 1602 | imul edx,sizeof.Point |
|
- | 1603 | mov ebx,[ebx+Figure.PoiData] |
|
- | 1604 | add edx,ebx |
|
- | 1605 | align 4 |
|
- | 1606 | .cycle0: ;1-ï ¢ë¤¥«¥ ï â®çª |
|
- | 1607 | cmp ebx,edx |
|
- | 1608 | jge .no_point |
|
- | 1609 | bt dword[ebx+Point.Prop],PROP_BIT_SELECT |
|
- | 1610 | jc .cycle0end |
|
- | 1611 | add ebx,sizeof.Point |
|
- | 1612 | jmp .cycle0 |
|
- | 1613 | .cycle0end: |
|
- | 1614 | lea esi,[ebx+Point.CoordY] |
|
- | 1615 | mov edi,Data_Double |
|
- | 1616 | movsd |
|
- | 1617 | movsd |
|
- | 1618 | finit |
|
- | 1619 | fld qword[Data_Double] |
|
- | 1620 | align 4 |
|
- | 1621 | .cycle1: ;横« ¤«ï 宦¤¥¨ï min(Point.CoordY) |
|
- | 1622 | bt dword[ebx+Point.Prop],PROP_BIT_SELECT |
|
- | 1623 | jnc .no_sel |
|
- | 1624 | fcom qword[ebx+Point.CoordY] |
|
- | 1625 | fstsw ax |
|
- | 1626 | sahf |
|
- | 1627 | jbe .no_sel |
|
- | 1628 | ;if (st0>Point.CoordY) |
|
- | 1629 | ffree st0 |
|
- | 1630 | fincstp |
|
- | 1631 | fld qword[ebx+Point.CoordY] |
|
- | 1632 | .no_sel: |
|
- | 1633 | add ebx,sizeof.Point |
|
- | 1634 | cmp ebx,edx |
|
- | 1635 | jl .cycle1 |
|
- | 1636 | fstp qword[Data_Double] |
|
- | 1637 | align 4 |
|
- | 1638 | .cycle2: ;横« ¤«ï ¯à¨á¢ ¨¢ ¨ï ¢á¥¬ Point.CoordY = min(Point.CoordY) |
|
- | 1639 | sub edx,sizeof.Point |
|
- | 1640 | bt dword[edx+Point.Prop],PROP_BIT_SELECT |
|
- | 1641 | jnc @f |
|
- | 1642 | mov esi,Data_Double |
|
- | 1643 | lea edi,[edx+Point.CoordY] |
|
- | 1644 | movsd |
|
- | 1645 | movsd |
|
- | 1646 | @@: |
|
- | 1647 | loop .cycle2 |
|
- | 1648 | ;¤«ï ®¡®¢«¥¨ï ¯® â ©¬¥àã |
|
- | 1649 | mov dword[offs_last_timer],0 |
|
- | 1650 | .no_point: |
|
- | 1651 | popad |
|
- | 1652 | ret |
|
- | 1653 | endp |
|
- | 1654 | ||
- | 1655 | align 4 |
|
- | 1656 | proc but_sel_points_align_coord_xmax |
|
- | 1657 | pushad |
|
- | 1658 | stdcall [tl_node_get_data],tree1 |
|
- | 1659 | or eax,eax |
|
- | 1660 | jz .no_point |
|
- | 1661 | cmp [eax+Figure.OType],'Fig' |
|
- | 1662 | jne .no_point |
|
- | 1663 | ||
- | 1664 | mov ebx,eax |
|
- | 1665 | stdcall sel_points_get_count,eax |
|
- | 1666 | cmp eax,1 |
|
- | 1667 | jle .no_point |
|
- | 1668 | mov ecx,[ebx+Figure.PoiCount] |
|
- | 1669 | or ecx,ecx |
|
- | 1670 | jz .no_point |
|
- | 1671 | cmp eax,ecx |
|
- | 1672 | je .no_point ;¥á«¨ ¢ë¤¥«¥ë ¢á¥ â®çª¨, çâ®-¡ë ¥ ¯®àâ¨âì ª®âãà |
|
- | 1673 | ||
- | 1674 | mov edx,ecx |
|
- | 1675 | imul edx,sizeof.Point |
|
- | 1676 | mov ebx,[ebx+Figure.PoiData] |
|
- | 1677 | add edx,ebx |
|
- | 1678 | align 4 |
|
- | 1679 | .cycle0: ;1-ï ¢ë¤¥«¥ ï â®çª |
|
- | 1680 | cmp ebx,edx |
|
- | 1681 | jge .no_point |
|
- | 1682 | bt dword[ebx+Point.Prop],PROP_BIT_SELECT |
|
- | 1683 | jc .cycle0end |
|
- | 1684 | add ebx,sizeof.Point |
|
- | 1685 | jmp .cycle0 |
|
- | 1686 | .cycle0end: |
|
- | 1687 | lea esi,[ebx+Point.CoordX] |
|
- | 1688 | mov edi,Data_Double |
|
- | 1689 | movsd |
|
- | 1690 | movsd |
|
- | 1691 | finit |
|
- | 1692 | fld qword[Data_Double] |
|
- | 1693 | align 4 |
|
- | 1694 | .cycle1: ;横« ¤«ï 宦¤¥¨ï max(Point.CoordX) |
|
- | 1695 | bt dword[ebx+Point.Prop],PROP_BIT_SELECT |
|
- | 1696 | jnc .no_sel |
|
- | 1697 | fcom qword[ebx+Point.CoordX] |
|
- | 1698 | fstsw ax |
|
- | 1699 | sahf |
|
- | 1700 | jae .no_sel |
|
- | 1701 | ;if (st0 |
|
- | 1702 | ffree st0 |
|
- | 1703 | fincstp |
|
- | 1704 | fld qword[ebx+Point.CoordX] |
|
- | 1705 | .no_sel: |
|
- | 1706 | add ebx,sizeof.Point |
|
- | 1707 | cmp ebx,edx |
|
- | 1708 | jl .cycle1 |
|
- | 1709 | fstp qword[Data_Double] |
|
- | 1710 | align 4 |
|
- | 1711 | .cycle2: ;横« ¤«ï ¯à¨á¢ ¨¢ ¨ï ¢á¥¬ Point.CoordX = max(Point.CoordX) |
|
- | 1712 | sub edx,sizeof.Point |
|
- | 1713 | bt dword[edx+Point.Prop],PROP_BIT_SELECT |
|
- | 1714 | jnc @f |
|
- | 1715 | mov esi,Data_Double |
|
- | 1716 | lea edi,[edx+Point.CoordX] |
|
- | 1717 | movsd |
|
- | 1718 | movsd |
|
- | 1719 | @@: |
|
- | 1720 | loop .cycle2 |
|
- | 1721 | ;¤«ï ®¡®¢«¥¨ï ¯® â ©¬¥àã |
|
- | 1722 | mov dword[offs_last_timer],0 |
|
- | 1723 | .no_point: |
|
- | 1724 | popad |
|
- | 1725 | ret |
|
- | 1726 | endp |
|
- | 1727 | ||
- | 1728 | align 4 |
|
- | 1729 | proc but_sel_points_align_coord_ymax |
|
- | 1730 | pushad |
|
- | 1731 | stdcall [tl_node_get_data],tree1 |
|
- | 1732 | or eax,eax |
|
- | 1733 | jz .no_point |
|
- | 1734 | cmp [eax+Figure.OType],'Fig' |
|
- | 1735 | jne .no_point |
|
- | 1736 | ||
- | 1737 | mov ebx,eax |
|
- | 1738 | stdcall sel_points_get_count,eax |
|
- | 1739 | cmp eax,1 |
|
- | 1740 | jle .no_point |
|
- | 1741 | mov ecx,[ebx+Figure.PoiCount] |
|
- | 1742 | or ecx,ecx |
|
- | 1743 | jz .no_point |
|
- | 1744 | cmp eax,ecx |
|
- | 1745 | je .no_point ;¥á«¨ ¢ë¤¥«¥ë ¢á¥ â®çª¨, çâ®-¡ë ¥ ¯®àâ¨âì ª®âãà |
|
- | 1746 | ||
- | 1747 | mov edx,ecx |
|
- | 1748 | imul edx,sizeof.Point |
|
- | 1749 | mov ebx,[ebx+Figure.PoiData] |
|
- | 1750 | add edx,ebx |
|
- | 1751 | align 4 |
|
- | 1752 | .cycle0: ;1-ï ¢ë¤¥«¥ ï â®çª |
|
- | 1753 | cmp ebx,edx |
|
- | 1754 | jge .no_point |
|
- | 1755 | bt dword[ebx+Point.Prop],PROP_BIT_SELECT |
|
- | 1756 | jc .cycle0end |
|
- | 1757 | add ebx,sizeof.Point |
|
- | 1758 | jmp .cycle0 |
|
- | 1759 | .cycle0end: |
|
- | 1760 | lea esi,[ebx+Point.CoordY] |
|
- | 1761 | mov edi,Data_Double |
|
- | 1762 | movsd |
|
- | 1763 | movsd |
|
- | 1764 | finit |
|
- | 1765 | fld qword[Data_Double] |
|
- | 1766 | align 4 |
|
- | 1767 | .cycle1: ;横« ¤«ï 宦¤¥¨ï max(Point.CoordY) |
|
- | 1768 | bt dword[ebx+Point.Prop],PROP_BIT_SELECT |
|
- | 1769 | jnc .no_sel |
|
- | 1770 | fcom qword[ebx+Point.CoordY] |
|
- | 1771 | fstsw ax |
|
- | 1772 | sahf |
|
- | 1773 | jae .no_sel |
|
- | 1774 | ;if (st0 |
|
- | 1775 | ffree st0 |
|
- | 1776 | fincstp |
|
- | 1777 | fld qword[ebx+Point.CoordY] |
|
- | 1778 | .no_sel: |
|
- | 1779 | add ebx,sizeof.Point |
|
- | 1780 | cmp ebx,edx |
|
- | 1781 | jl .cycle1 |
|
- | 1782 | fstp qword[Data_Double] |
|
- | 1783 | align 4 |
|
- | 1784 | .cycle2: ;横« ¤«ï ¯à¨á¢ ¨¢ ¨ï ¢á¥¬ Point.CoordY = max(Point.CoordY) |
|
- | 1785 | sub edx,sizeof.Point |
|
- | 1786 | bt dword[edx+Point.Prop],PROP_BIT_SELECT |
|
- | 1787 | jnc @f |
|
- | 1788 | mov esi,Data_Double |
|
- | 1789 | lea edi,[edx+Point.CoordY] |
|
- | 1790 | movsd |
|
- | 1791 | movsd |
|
- | 1792 | @@: |
|
- | 1793 | loop .cycle2 |
|
- | 1794 | ;¤«ï ®¡®¢«¥¨ï ¯® â ©¬¥àã |
|
- | 1795 | mov dword[offs_last_timer],0 |
|
- | 1796 | .no_point: |
|
- | 1797 | popad |
|
- | 1798 | ret |
|
- | 1799 | endp |
|
1473 | 1800 | ||
1474 | align 4 |
1801 | align 4 |
1475 | proc but_restore_zoom uses eax |
1802 | proc but_restore_zoom uses eax |
1476 | stdcall [tl_node_get_data],tree1 |
1803 | stdcall [tl_node_get_data],tree1 |
1477 | or eax,eax |
1804 | or eax,eax |