Overview
Comment: | Change the code that sends MSG_CREATED and MSG_DESTROYED according to my testing of how Hero Mesh is working |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
d81bafda40949b49a9fe2ca8fe740162 |
User & Date: | user on 2021-01-06 01:14:02 |
Other Links: | manifest | tags |
Context
2021-01-06
| ||
07:31 | Add instructions for checking types of values check-in: ef4096f816 user: user tags: trunk | |
01:14 | Change the code that sends MSG_CREATED and MSG_DESTROYED according to my testing of how Hero Mesh is working check-in: d81bafda40 user: user tags: trunk | |
2021-01-05
| ||
19:20 | Write more in class.doc check-in: 01f32e4d01 user: user tags: trunk | |
Changes
Modified exec.c from [d29672c800] to [101a0036ee].
︙ | ︙ | |||
601 602 603 604 605 606 607 | o->x=x; o->y=y; o->image=im; o->dir=d; pflink(n); v=send_message(from,n,MSG_CREATE,NVALUE(0),NVALUE(0),NVALUE(0)); if(o->oflags&OF_DESTROYED) return VOIDLINK; | | | > | | 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 | o->x=x; o->y=y; o->image=im; o->dir=d; pflink(n); v=send_message(from,n,MSG_CREATE,NVALUE(0),NVALUE(0),NVALUE(0)); if(o->oflags&OF_DESTROYED) return VOIDLINK; for(y=0;y<5;y++) for(x=0;x<5;x++) { xx=o->x+x-2; yy=o->y+y-2; if(xx<1 || xx>pfwidth || yy<1 || yy>pfheight) continue; i=4-x+5*y; m=playfield[xx+yy*64-65]; while(m!=VOIDLINK) { p=objects[m]; if(p->arrivals&(1<<i)) if(m!=n) send_message(n,m,MSG_CREATED,NVALUE(o->x),NVALUE(o->y),v); m=p->up; } } if(o->oflags&OF_DESTROYED) return VOIDLINK; m=objects[n]->up; if(m!=VOIDLINK) { v=send_message(VOIDLINK,n,MSG_SUNK,NVALUE(0),NVALUE(0),v); |
︙ | ︙ | |||
644 645 646 647 648 649 650 | if(o->prev!=VOIDLINK) objects[o->prev]->next=o->next; if(o->next!=VOIDLINK) objects[o->next]->prev=o->prev; // This object is not itself removed from the linked list, since it may be destroyed while enumerating all objects } o->oflags|=OF_DESTROYED; if(why!=8 && !(o->oflags&OF_VISUALONLY)) { // Not checking for stealth; stealth only applies to movement, not destruction | > | < < > | 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 | if(o->prev!=VOIDLINK) objects[o->prev]->next=o->next; if(o->next!=VOIDLINK) objects[o->next]->prev=o->prev; // This object is not itself removed from the linked list, since it may be destroyed while enumerating all objects } o->oflags|=OF_DESTROYED; if(why!=8 && !(o->oflags&OF_VISUALONLY)) { // Not checking for stealth; stealth only applies to movement, not destruction for(yy=0;yy<5;yy++) for(xx=0;xx<5;xx++) { x=o->x+xx-2; y=o->y+yy-2; if(x<1 || x>pfwidth || y<1 || y>pfheight) continue; i=4-xx+5*yy; n=playfield[x+y*64-65]; while(n!=VOIDLINK) { o=objects[n]; if(o->departures&(1<<i)) send_message(to,n,MSG_DESTROYED,NVALUE(0),NVALUE(0),NVALUE(why)); n=o->up; } } |
︙ | ︙ |