Changeset 16 for ttyvaders/trunk/collide.c
- Timestamp:
- 12/13/02 20:27:16 (10 years ago)
- File:
-
- 1 edited
-
ttyvaders/trunk/collide.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
ttyvaders/trunk/collide.c
r12 r16 8 8 int i; 9 9 10 for( i = 0; i < SHOTS; i++ )10 for( i = 0; i < WEAPONS; i++ ) 11 11 { 12 12 if( wp->y[i] >= 0 ) … … 60 60 int i, j; 61 61 62 for( i = 0; i < SHOTS; i++ )62 for( i = 0; i < WEAPONS; i++ ) 63 63 { 64 64 if( wp->y[i] >= 0 ) 65 65 { 66 66 int ok = 0; 67 int r; 67 68 68 for( j = 0; j < ALIENS; j++)69 switch( wp->type[i] ) 69 70 { 70 if( wp->x[i] >= al->x[j] 71 && wp->x[i] <= al->x[j] + 4 72 && wp->y[i] >= al->y[j] 73 && wp->y[i] <= al->y[j] + 2 ) 71 case 2: 72 /* Big nuke */ 73 r = (34 - wp->n[i]) * (34 - wp->n[i]) / 10; 74 75 for( j = 0; j < ALIENS; j++ ) 74 76 { 75 al->life[j]--; 76 if( al->life[j] == 0 ) 77 if( al->x[j] < 0 ) 77 78 { 79 continue; 80 } 81 82 if( (al->x[j] - wp->x[i]) * (al->x[j] - wp->x[i]) 83 + 4 * (al->y[j] - wp->y[i]) * (al->y[j] - wp->y[i]) 84 <= r * r ) 85 { 86 /* Kill alien, not nuke */ 87 add_explosion( g, ex, al->x[j], al->y[j], 0, 0, 1 ); 78 88 al->x[j] = -1; 79 89 al->y[j] = -1; 80 add_explosion( g, ex, wp->x[i], wp->y[i], 0, 0, 1 );81 90 } 82 ok = 1;83 91 } 84 else if( wp->x[i] >= al->x[j] 85 && wp->x[i] <= al->x[j] + 4 86 && wp->y[i]+1 >= al->y[j] 87 && wp->y[i]+1 <= al->y[j] + 2 ) 92 break; 93 94 case 1: 95 default: 96 for( j = 0; j < ALIENS; j++ ) 88 97 { 89 al->life[j]--; 90 if( al->life[j] == 0 ) 98 if( wp->x[i] >= al->x[j] 99 && wp->x[i] <= al->x[j] + 4 100 && wp->y[i] >= al->y[j] 101 && wp->y[i] <= al->y[j] + 2 ) 91 102 { 92 al->x[j] = -1; 93 al->y[j] = -1; 94 add_explosion( g, ex, wp->x[i], wp->y[i]+1, 0, 0, 1 ); 103 al->life[j]--; 104 if( al->life[j] == 0 ) 105 { 106 al->x[j] = -1; 107 al->y[j] = -1; 108 add_explosion( g, ex, wp->x[i], wp->y[i], 0, 0, 1 ); 109 } 110 ok = 1; 95 111 } 96 ok = 1; 112 else if( wp->x[i] >= al->x[j] 113 && wp->x[i] <= al->x[j] + 4 114 && wp->y[i]+1 >= al->y[j] 115 && wp->y[i]+1 <= al->y[j] + 2 ) 116 { 117 al->life[j]--; 118 if( al->life[j] == 0 ) 119 { 120 al->x[j] = -1; 121 al->y[j] = -1; 122 add_explosion( g, ex, wp->x[i], wp->y[i]+1, 0, 0, 1 ); 123 } 124 ok = 1; 125 } 97 126 } 98 }99 127 100 if( ok ) 101 { 102 wp->y[i] = -1; 128 if( ok ) 129 { 130 wp->y[i] = -1; 131 } 132 break; 103 133 } 104 134 }
Note: See TracChangeset
for help on using the changeset viewer.
