1 #include <math.h> 2 3 4 #include "globals.h" 5 #include "sizes.h" 6 #include "object.h" 7 #include "screen.h" 8 #include "ship.h" 9 10 11 struct Star StarArray[NUM_STARS]; 12 float ShakePos; 13 int ShakeTimer; 14 15 16 // Function to initialize star array InitStars()17void InitStars() 18 { 19 int i; 20 float randfloat; 21 float distance; 22 23 ShakePos=0.15; 24 ShakeTimer=0; 25 26 for (i=0; i<NUM_STARS; i++) { 27 randfloat=rand()%256+1; 28 StarArray[i].StarColor.red=randfloat/256.0; 29 randfloat=rand()%256+1; 30 StarArray[i].StarColor.green=randfloat/256.0; 31 randfloat=rand()%256+1; 32 StarArray[i].StarColor.blue=randfloat/256.0; 33 randfloat=rand()%256+1.0; 34 StarArray[i].Position.x=randfloat/128.0-1.0; 35 randfloat=rand()%256+1.0; 36 StarArray[i].Position.y=randfloat/128.0-1.0; 37 randfloat=rand()%256+1.0; 38 StarArray[i].Position.z=randfloat/128.0-1.0; 39 40 distance=StarArray[i].Position.x*StarArray[i].Position.x+ 41 StarArray[i].Position.y*StarArray[i].Position.y+ 42 StarArray[i].Position.z*StarArray[i].Position.z; 43 distance=sqrt(distance); 44 StarArray[i].Position.x=(StarArray[i].Position.x/distance)*15.0; 45 StarArray[i].Position.y=(StarArray[i].Position.y/distance)*15.0; 46 StarArray[i].Position.z=(StarArray[i].Position.z/distance)*15.0; 47 } 48 } 49 50 DrawStars()51void DrawStars() 52 { 53 int i, j; 54 float randfloat; 55 struct Point newpoint; 56 57 // Make stars flicker 58 for (i=0; i<3; i++) { 59 j=rand()%NUM_STARS; 60 randfloat=rand()%256+1; 61 StarArray[j].StarColor.red=randfloat/256.0; 62 randfloat=rand()%256+1; 63 StarArray[j].StarColor.green=randfloat/256.0; 64 randfloat=rand()%256+1; 65 StarArray[j].StarColor.blue=randfloat/256.0; 66 randfloat=rand()%256+1.0; 67 } 68 69 if (Ships[myShip]->Shaking) { 70 ShakeTimer++; 71 if (ShakeTimer%2==0) { 72 ShakePos*=-1.0; 73 } 74 } 75 76 for (i=0; i<NUM_STARS; i++) { 77 if (Ships[myShip]->Shaking) { 78 DrawPoint(&StarArray[i].Position, &StarArray[i].StarColor, ShakePos, 0); 79 } else { 80 DrawPoint(&StarArray[i].Position, &StarArray[i].StarColor); 81 } 82 } 83 } 84