game_object pod_chase(game_object lander, game_object pod){
- //match y, then direction and speed
- if(lander.chase>0&&lander.phase==1){
- if(abs(lander.y-pod.y)<4){
- lander.speed = 2;
- };
- if(lander.y==pod.y){
- lander.direction = pod.direction;
- lander.speed = pod.speed;
- lander.phase = 2;
- };
- };
-
- if(lander.chase>0&&lander.phase==2){
- //decend to pod's x-1
- if(lander.x<=pod.x-1){
- lander.x++;
+ if(pod.active==0){
+ lander.chase=0;
+ lander.phase=0;
+ lander.speed=1;
+ strcpy(lander.radar, "*"); //debug
+ } else {
+
+ //match y, then direction and speed
+ if(lander.chase>0&&lander.phase==1){
+ if(abs(lander.y-pod.y)<4){
+ lander.speed = 2;
+ };
+ if(lander.y==pod.y){
+ lander.direction = pod.direction;
+ lander.speed = pod.speed;
+ lander.phase = 2;
+ };
};
- if(lander.x>pod.x-1){
- lander.phase = 3;
+
+ if(lander.chase>0&&lander.phase==2){
+ //decend to pod's x-1
+ if(lander.x<=pod.x-1){
+ lander.x++;
+ };
+ if(lander.x>pod.x-1){
+ lander.phase = 3;
+ };
};
- };
-
- if(lander.chase>0&&lander.phase==3){
- //ascend at speed 1 keep pod at x+1
- lander.x--;
- if(lander.x<=1){
- //at x=1, destroy pod, deallocate lander, allocate crazy at same location.
- lander.phase = 4; //set pod to 'kill'
+
+ if(lander.chase>0&&lander.phase==3){
+ //ascend at speed 1 keep pod at x+1
+ lander.x--;
+ if(lander.x<=1){
+ //at x=1, destroy pod, deallocate lander, allocate crazy at same location.
+ lander.phase = 4; //set pod to 'kill'
+ };
};
+
};
-
return lander;
}
if(rand()%1000<=10){
//choose the closest pod
for(int podloop = 0; podloop<8; podloop++){
- if(landers[landerloop].chase==0&&pods[podloop].chase==0){
+ if(landers[landerloop].chase==0&&pods[podloop].chase==0&&pods[podloop].active==1){
landers[landerloop].chase = pods[podloop].number;
pods[podloop].chase = landers[landerloop].number;
};
if(player.y<landers[landerloop].y){ landers[landerloop].direction = 6; alertright = 20;};
if(player.y>=landers[landerloop].y){ landers[landerloop].direction = 4; alertleft = 20;};
landers[landerloop].phase = 1;
+ strcpy(landers[landerloop].radar, "$"); //debug
+ strcpy(pods[landers[landerloop].chase].radar, "&"); //debug
};
};
};