Rev 5948 | Rev 6046 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5948 | Rev 6022 | ||
---|---|---|---|
Line 211... | Line 211... | ||
211 | cmp edx,0 |
211 | cmp edx,0 |
212 | jg .new_point |
212 | jg .new_point |
213 | stdcall dword[tl_cur_beg], tree3 |
213 | stdcall dword[tl_cur_beg], tree3 |
214 | .no_object: |
214 | .no_object: |
215 | call obj_set_sizes |
215 | call obj_set_sizes |
- | 216 | call obj_set_normals |
|
216 | edit_boxes_set_sys_color edit1,editboxes_end,sc ;ãáâ ®¢ª á¨á⥬ëå 梥⮢ |
217 | edit_boxes_set_sys_color edit1,editboxes_end,sc ;ãáâ ®¢ª á¨á⥬ëå 梥⮢ |
217 | stdcall [edit_box_set_text], edit1, txt_q |
218 | stdcall [edit_box_set_text], edit1, txt_q |
218 | stdcall [edit_box_set_text], edit2, txt_q |
219 | stdcall [edit_box_set_text], edit2, txt_q |
219 | stdcall [edit_box_set_text], edit3, txt_q |
220 | stdcall [edit_box_set_text], edit3, txt_q |
220 | mov eax,0xc0c0c0 |
221 | mov eax,0xc0c0c0 |
Line 331... | Line 332... | ||
331 | mov dword[obj_poi_data],0 |
332 | mov dword[obj_poi_data],0 |
332 | mov dword[obj_poi_count],0 |
333 | mov dword[obj_poi_count],0 |
333 | mov dword[obj_poi_sel_c],0 |
334 | mov dword[obj_poi_sel_c],0 |
334 | mov dword[obj_tri_data],0 |
335 | mov dword[obj_tri_data],0 |
335 | mov dword[obj_tri_count],0 |
336 | mov dword[obj_tri_count],0 |
- | 337 | mov dword[obj_normals_tri_count],0 |
|
- | 338 | mov dword[obj_normals_poi_count],0 |
|
- | 339 | stdcall mem.Free,[obj_normals_tri_data] |
|
- | 340 | stdcall mem.Free,[obj_normals_poi_data] |
|
- | 341 | mov dword[obj_normals_tri_data],0 |
|
- | 342 | mov dword[obj_normals_poi_data],0 |
|
336 | ret |
343 | ret |
Line 337... | Line 344... | ||
337 | 344 | ||
338 | ;¯®¨áª ¤ ëå |
345 | ;¯®¨áª ¤ ëå |
339 | ;input: |
346 | ;input: |
Line 541... | Line 548... | ||
541 | fstp dword[obj_x_scale] |
548 | fstp dword[obj_x_scale] |
542 | .end: |
549 | .end: |
543 | ret |
550 | ret |
544 | endp |
551 | endp |
Line -... | Line 552... | ||
- | 552 | ||
- | 553 | ;ãáâ ®¢ª ®à¬ «¥© ¤«ï £à ¥© |
|
- | 554 | align 4 |
|
- | 555 | proc obj_set_normals |
|
- | 556 | locals |
|
- | 557 | tbl1 rd 9 ;ebp-72 |
|
- | 558 | tbl2 rd 9 ;ebp-36 |
|
- | 559 | endl |
|
- | 560 | pushad |
|
- | 561 | cmp dword[obj_poi_count],0 |
|
- | 562 | je .end |
|
- | 563 | finit |
|
- | 564 | mov ecx,[obj_tri_count] |
|
- | 565 | mov [obj_normals_tri_count],ecx ; ª ¦¤ë© âà¥ã£®«ì¨ª 1 ଠ«ì |
|
- | 566 | cmp ecx,0 |
|
- | 567 | je .end |
|
- | 568 | imul ecx,12 |
|
- | 569 | stdcall mem.Alloc, ecx |
|
- | 570 | mov [obj_normals_tri_data],eax |
|
- | 571 | ||
- | 572 | mov edx,[obj_tri_data] |
|
- | 573 | mov ebx,[obj_tri_count] |
|
- | 574 | align 4 |
|
- | 575 | @@: |
|
- | 576 | mov edi,ebp |
|
- | 577 | sub edi,36 ;tbl2 |
|
- | 578 | movzx esi,word[edx] ;1-ï ¢¥àè¨ |
|
- | 579 | imul esi,12 |
|
- | 580 | add esi,[obj_poi_data] |
|
- | 581 | mov ecx,3 |
|
- | 582 | rep movsd |
|
- | 583 | movzx esi,word[edx+2] ;2-ï ¢¥àè¨ |
|
- | 584 | imul esi,12 |
|
- | 585 | add esi,[obj_poi_data] |
|
- | 586 | mov ecx,3 |
|
- | 587 | rep movsd |
|
- | 588 | movzx esi,word[edx+4] ;3-ï ¢¥àè¨ |
|
- | 589 | imul esi,12 |
|
- | 590 | add esi,[obj_poi_data] |
|
- | 591 | mov ecx,3 |
|
- | 592 | rep movsd |
|
- | 593 | ||
- | 594 | mov esi,ebp |
|
- | 595 | sub esi,72 ;tbl1 |
|
- | 596 | sub edi,36 ;tbl2 |
|
- | 597 | ;v1 <-> v2 |
|
- | 598 | fld dword[edi+12] |
|
- | 599 | fsub dword[edi] |
|
- | 600 | fstp dword[esi] ;(x1-x2) |
|
- | 601 | fld dword[edi+16] |
|
- | 602 | fsub dword[edi+4] |
|
- | 603 | fstp dword[esi+4] ;(y1-y2) |
|
- | 604 | fld dword[edi+20] |
|
- | 605 | fsub dword[edi+8] |
|
- | 606 | fstp dword[esi+8] ;(z1-z2) |
|
- | 607 | ;v2 <-> v3 |
|
- | 608 | fld dword[edi+24] |
|
- | 609 | fsub dword[edi+12] |
|
- | 610 | fstp dword[esi+12] ;(x2-x3) |
|
- | 611 | fld dword[edi+28] |
|
- | 612 | fsub dword[edi+16] |
|
- | 613 | fstp dword[esi+16] ;(y2-y3) |
|
- | 614 | fld dword[edi+32] |
|
- | 615 | fsub dword[edi+20] |
|
- | 616 | fstp dword[esi+20] ;(z2-z3) |
|
- | 617 | ;v3 <-> v1 |
|
- | 618 | fld dword[edi] |
|
- | 619 | fsub dword[edi+24] |
|
- | 620 | fstp dword[esi+24] ;(x3-x1) |
|
- | 621 | fld dword[edi+4] |
|
- | 622 | fsub dword[edi+28] |
|
- | 623 | fstp dword[esi+28] ;(y3-y1) |
|
- | 624 | fld dword[edi+8] |
|
- | 625 | fsub dword[edi+32] |
|
- | 626 | fstp dword[esi+32] ;(z3-z1) |
|
- | 627 | ||
- | 628 | ;a1,a2,a3 |
|
- | 629 | fld dword[esi+4] |
|
- | 630 | fmul dword[esi+8] |
|
- | 631 | fstp dword[edi] ;a1=(y1-y2)*(z1-z2) |
|
- | 632 | fld dword[esi+16] |
|
- | 633 | fmul dword[esi+20] |
|
- | 634 | fstp dword[edi+4] ;a2=(y2-y3)*(z2-z3) |
|
- | 635 | fld dword[esi+28] |
|
- | 636 | fmul dword[esi+32] |
|
- | 637 | fstp dword[edi+8] ;a3=(y3-y1)*(z3-z1) |
|
- | 638 | ;b1,b2,b3 |
|
- | 639 | fld dword[esi] |
|
- | 640 | fmul dword[esi+8] |
|
- | 641 | fstp dword[edi] ;b1=(x1-x2)*(z1-z2) |
|
- | 642 | fld dword[esi+12] |
|
- | 643 | fmul dword[esi+20] |
|
- | 644 | fstp dword[edi+4] ;b2=(x2-x3)*(z2-z3) |
|
- | 645 | fld dword[esi+24] |
|
- | 646 | fmul dword[esi+32] |
|
- | 647 | fstp dword[edi+8] ;b3=(x3-x1)*(z3-z1) |
|
- | 648 | ;c1,á2,á3 |
|
- | 649 | fld dword[esi] |
|
- | 650 | fmul dword[esi+4] |
|
- | 651 | fstp dword[edi] ;c1=(x1-x2)*(y1-y2) |
|
- | 652 | fld dword[esi+12] |
|
- | 653 | fmul dword[esi+16] |
|
- | 654 | fstp dword[edi+4] ;c2=(x2-x3)*(y2-y3) |
|
- | 655 | fld dword[esi+24] |
|
- | 656 | fmul dword[esi+28] |
|
- | 657 | fstp dword[edi+8] ;c3=(x3-x1)*(y3-y1) |
|
- | 658 | ||
- | 659 | fld dword[edi] |
|
- | 660 | fadd dword[edi+4] |
|
- | 661 | fadd dword[edi+8] |
|
- | 662 | fstp dword[eax] ;set normal.a |
|
- | 663 | fld dword[edi+12] |
|
- | 664 | fadd dword[edi+16] |
|
- | 665 | fadd dword[edi+20] |
|
- | 666 | fstp dword[eax+4] ;set normal.b |
|
- | 667 | fld dword[edi+24] |
|
- | 668 | fadd dword[edi+28] |
|
- | 669 | fadd dword[edi+32] |
|
- | 670 | fstp dword[eax+8] ;set normal.c |
|
- | 671 | ||
- | 672 | add edx,8 ;à §¬¥à âà¥ã£®«ì¨ª = (3 ¢¥àè¨ë (¯® 2¡) + ᢮©á⢠(2¡)) |
|
- | 673 | add eax,12 |
|
- | 674 | dec ebx |
|
- | 675 | jnz @b |
|
- | 676 | .end: |
|
- | 677 | popad |
|
- | 678 | ret |
|
- | 679 | endp |
|
545 | 680 | ||
546 | ;à¨á®¢ ¨¥ â®ç¥ª ¢ 3d |
681 | ;à¨á®¢ ¨¥ â®ç¥ª ¢ 3d |
547 | align 4 |
682 | align 4 |
548 | draw_3d: |
683 | draw_3d: |
549 | cmp dword[obj_poi_count],2 |
684 | cmp dword[obj_poi_count],2 |
Line 648... | Line 783... | ||
648 | stdcall [glPolygonMode], GL_FRONT_AND_BACK ;mode - 㦥 ¢ á⥪¥ |
783 | stdcall [glPolygonMode], GL_FRONT_AND_BACK ;mode - 㦥 ¢ á⥪¥ |
649 | stdcall [glColor3ub],[color_face+2],[color_face+1],[color_face] |
784 | stdcall [glColor3ub],[color_face+2],[color_face+1],[color_face] |
650 | stdcall [glBegin],GL_TRIANGLES |
785 | stdcall [glBegin],GL_TRIANGLES |
651 | mov eax,[obj_tri_data] |
786 | mov eax,[obj_tri_data] |
652 | mov ecx,[obj_tri_count] |
787 | mov ecx,[obj_tri_count] |
- | 788 | mov edx,[obj_normals_tri_data] |
|
653 | @@: |
789 | @@: |
- | 790 | ; |
|
- | 791 | bt dword[draw_mode],bit_light |
|
- | 792 | jnc .norm |
|
- | 793 | ;[obj_normals_tri_count] |
|
- | 794 | stdcall [glNormal3fv], edx |
|
- | 795 | add edx,12 |
|
- | 796 | .norm: |
|
- | 797 | ; |
|
654 | movzx ebx,word[eax] ;1-ï ¢¥àè¨ |
798 | movzx ebx,word[eax] ;1-ï ¢¥àè¨ |
655 | imul ebx,12 |
799 | imul ebx,12 |
656 | add ebx,[obj_poi_data] |
800 | add ebx,[obj_poi_data] |
657 | stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8] |
801 | stdcall [glVertex3f], [ebx],[ebx+4],[ebx+8] |
658 | movzx ebx,word[eax+2] ;2-ï ¢¥àè¨ |
802 | movzx ebx,word[eax+2] ;2-ï ¢¥àè¨ |
Line 974... | Line 1118... | ||
974 | jne prop_still.end |
1118 | jne prop_still.end |
975 | .exit: |
1119 | .exit: |
976 | mov dword[tree3.data_img],0 ;ç¨á⨬ 㪠§ ⥫¨ ¨ª®ª¨ çâ®-¡ë ¨å ¥ 㤠«¨« ¤¥áâàãªâ®à |
1120 | mov dword[tree3.data_img],0 ;ç¨á⨬ 㪠§ ⥫¨ ¨ª®ª¨ çâ®-¡ë ¨å ¥ 㤠«¨« ¤¥áâàãªâ®à |
977 | mov dword[tree3.data_img_sys],0 ;â. ª. ®¨ ¥é¥ ¨á¯®«ì§ãîâìáï ¢ ¤à㣨å í«¥¬¥â å |
1121 | mov dword[tree3.data_img_sys],0 ;â. ª. ®¨ ¥é¥ ¨á¯®«ì§ãîâìáï ¢ ¤à㣨å í«¥¬¥â å |
978 | stdcall dword[tl_data_clear], tree3 |
1122 | stdcall dword[tl_data_clear], tree3 |
- | 1123 | stdcall mem.Free,[obj_normals_tri_data] |
|
- | 1124 | stdcall mem.Free,[obj_normals_poi_data] |
|
- | 1125 | mov dword[obj_normals_tri_data],0 |
|
- | 1126 | mov dword[obj_normals_poi_data],0 |
|
979 | mov byte[prop_wnd_run],0 ;®¡ã«ï¥¬ áç¥â稪 ®ª® |
1127 | mov byte[prop_wnd_run],0 ;®¡ã«ï¥¬ áç¥â稪 ®ª® |
980 | mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë |
1128 | mcall -1 ;¢ë室 ¨§ ¯à®£à ¬¬ë |
Line 981... | Line 1129... | ||
981 | 1129 | ||
982 | align 4 |
1130 | align 4 |
Line 1294... | Line 1442... | ||
1294 | obj_poi_sel_c dd 0 ;ª®««¨ç¥á⢮ ¢ë¤¥«¥ëå ¢¥àè¨ |
1442 | obj_poi_sel_c dd 0 ;ª®««¨ç¥á⢮ ¢ë¤¥«¥ëå ¢¥àè¨ |
1295 | obj_tri_data dd 0 ;㪠§ â¥«ì ¤ ë¥ âà¥ã£®«ì¨ª®¢ |
1443 | obj_tri_data dd 0 ;㪠§ â¥«ì ¤ ë¥ âà¥ã£®«ì¨ª®¢ |
1296 | obj_tri_count dd 0 ;ª®««¨ç¥á⢮ âà¥ã£®«ì¨ª®¢ |
1444 | obj_tri_count dd 0 ;ª®««¨ç¥á⢮ âà¥ã£®«ì¨ª®¢ |
1297 | cursor_last_draw dd 0 ;¯®«®¦¥¨¥ ªãàá®à ¯à¨ ¯®á«¥¤¥© ¯à®à¨á®¢ª¥ 3d ®ª |
1445 | cursor_last_draw dd 0 ;¯®«®¦¥¨¥ ªãàá®à ¯à¨ ¯®á«¥¤¥© ¯à®à¨á®¢ª¥ 3d ®ª |
1298 | sph_radius dd 0 ;à ¤¨ãá áä¥àë ¤«ï ¢ë¤¥«¥¨ï ªâ¨¢®© â®çª¨ |
1446 | sph_radius dd 0 ;à ¤¨ãá áä¥àë ¤«ï ¢ë¤¥«¥¨ï ªâ¨¢®© â®çª¨ |
- | 1447 | ||
- | 1448 | obj_normals_poi_data dd 0 |
|
- | 1449 | obj_normals_poi_count dd 0 |
|
- | 1450 | obj_normals_tri_data dd 0 |
|
- | 1451 | obj_normals_tri_count dd 0 |
|
- | 1452 | ||
1299 | obj_x_max dd 0 |
1453 | obj_x_max dd 0 |
1300 | obj_x_min dd 0 |
1454 | obj_x_min dd 0 |
1301 | obj_x_centr dd 0 |
1455 | obj_x_centr dd 0 |
1302 | obj_x_scale dd 1.0 |
1456 | obj_x_scale dd 1.0 |
1303 | obj_y_max dd 0 |
1457 | obj_y_max dd 0 |