1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
|
n=bizplayfield[x.u+y.u*64-65];
while(n!=VOIDLINK) {
c|=b&classes[objects[n]->class]->collisionLayers;
b|=classes[objects[n]->class]->collisionLayers;
n=objects[n]->up;
}
if(c) return c;
n=playfield[x.u+y.u*64-65];
while(n!=VOIDLINK) objects[n]->oflags|=OF_BIZARRO,n=objects[n]->up;
m=playfield[x.u+y.u*64-65]=bizplayfield[x.u+y.u*64-65];
bizplayfield[x.u+y.u*64-65]=n;
while(m!=VOIDLINK) objects[n]->oflags&=~OF_BIZARRO,m=objects[m]->up;
return 0;
} else {
m=v_object(x);
n=v_object(y);
if(m==VOIDLINK || n==VOIDLINK || m==n) return 0x100;
if(objects[m]->x!=objects[n]->x || objects[m]->y!=objects[n]->y) return 0x100;
if((objects[m]->oflags|objects[n]->oflags)&OF_DESTROYED) return 0x100;
|
|
|
|
|
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
|
n=bizplayfield[x.u+y.u*64-65];
while(n!=VOIDLINK) {
c|=b&classes[objects[n]->class]->collisionLayers;
b|=classes[objects[n]->class]->collisionLayers;
n=objects[n]->up;
}
if(c) return c;
m=n=playfield[x.u+y.u*64-65];
while(m!=VOIDLINK) objects[m]->oflags|=OF_BIZARRO,m=objects[m]->up;
m=playfield[x.u+y.u*64-65]=bizplayfield[x.u+y.u*64-65];
bizplayfield[x.u+y.u*64-65]=n;
while(m!=VOIDLINK) objects[m]->oflags&=~OF_BIZARRO,m=objects[m]->up;
return 0;
} else {
m=v_object(x);
n=v_object(y);
if(m==VOIDLINK || n==VOIDLINK || m==n) return 0x100;
if(objects[m]->x!=objects[n]->x || objects[m]->y!=objects[n]->y) return 0x100;
if((objects[m]->oflags|objects[n]->oflags)&OF_DESTROYED) return 0x100;
|