int speed; //speed
int vspeed; //fall speed
int vtime;
+ int xtrail[10]; //x history
+ int ytrail[10]; //y history
char line0[6]; //object: left
char line1[6]; //object: right
char line2[6]; //object: alt1
return object;
}
+game_object crazy_motion(game_object object, game_object player){
+ if(player.ytrail[9]<object.y){
+ if(player.xtrail[9]<object.x){ object.direction = 7; };
+ if(player.xtrail[9]==object.x){ object.direction = 4; };
+ if(player.xtrail[9]>object.x){ object.direction = 1; };
+ };
+ if(player.ytrail[9]>=object.y){
+ if(player.xtrail[9]<object.x){ object.direction = 9; };
+ if(player.xtrail[9]==object.x){ object.direction = 6; };
+ if(player.xtrail[9]>object.x){ object.direction = 3; };
+ };
+
+ return object;
+}
+
game_object process_motion(game_object object, game_object player){
if((object.number>=2)&&(object.number<=9)&&(object.number==pod_in)){
object.direction=player.direction;
object.y=player.y;
} else {
+ if(object.number==1){
+ object.xtrail[9]=object.xtrail[8];
+ object.xtrail[8]=object.xtrail[7];
+ object.xtrail[7]=object.xtrail[6];
+ object.xtrail[6]=object.xtrail[5];
+ object.xtrail[5]=object.xtrail[4];
+ object.xtrail[4]=object.xtrail[3];
+ object.xtrail[3]=object.xtrail[2];
+ object.xtrail[2]=object.xtrail[1];
+ object.xtrail[1]=object.xtrail[0];
+ object.xtrail[0]=object.x;
+ object.ytrail[9]=object.ytrail[8];
+ object.ytrail[8]=object.ytrail[7];
+ object.ytrail[7]=object.ytrail[6];
+ object.ytrail[6]=object.ytrail[5];
+ object.ytrail[5]=object.ytrail[4];
+ object.ytrail[4]=object.ytrail[3];
+ object.ytrail[3]=object.ytrail[2];
+ object.ytrail[2]=object.ytrail[1];
+ object.ytrail[1]=object.ytrail[0];
+ object.ytrail[0]=object.y;
+ };
+
if(object.direction==9){
object.y = object.y+object.speed;
object.x = object.x-object.speed;
object.face=5;
};
};
-
+
};
return object;
crazy.x = lander.x;
crazy.y = lander.y;
crazy.face = lander.face;
- crazy.vspeed = lander.vspeed;
+ crazy.vspeed = 1;
crazy.vtime = lander.vtime;
crazy.direction = lander.direction;
crazy.speed = lander.speed;
player.speed = 0;
player.vspeed = 0;
player.vtime = 0;
+ player.xtrail[0] = 0;
+ player.xtrail[1] = 0;
+ player.ytrail[0] = 0;
+ player.ytrail[1] = 0;
strcpy (player.line0, "<==_>");
strcpy (player.line1, "<_==>");
strcpy (player.radar, "=");
+
+
//gate
game_object gate;
gate.number = 10;
for(int crazyloop = 0; crazyloop<landermax; crazyloop++){
if(crazies[crazyloop].active==1){
+ crazies[crazyloop] = crazy_motion(crazies[crazyloop], player);
crazies[crazyloop] = process_motion(crazies[crazyloop], player);
};
};