Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // fire shit!
- // let's assume we have horizontal fov of 90.
- int fireheight = GetActorViewHeight(0);
- int fov = 90;
- int angxmax = (65536*fov/360)/2;
- int angymax = angxmax*240/320;
- int angxhalf = angxmax/2;
- int angyhalf = angymax/2;
- //hudX/2 - ((hudX/2) * sin(angle) / cos(angle));
- //int hudX2 = 160;
- int angxfinal = ((angxmax*(160-mousex)/160));
- int angyfinal = -((angymax*(120-mousey)/120));
- //print(f:angxfinal);
- //angxfinal -= 0.25;
- int angfix = Abs(160-mousex);
- angfix = (1.0-(Abs(80-angfix)*1.0/80));
- int angsin = (sin(angfix/2)+1.0)/8;
- //angfix = FixedMul(angsin, angfix);
- //print(f:angfix, c:'\n', f:angsin);
- angxfinal = FixedMul(angxfinal, 1.0+angsin)*angfix/1.0 + angxfinal*(1.0-angfix)/1.0;
- angxfinal += curangle;
- int dx = 1.0;
- int dy = 0;
- int dz = 0;
- int cdx, cdy, cdz;
- cdx = dx; cdy = dy; cdz = dz;
- dz = FixedMul(cdz, cos(angyfinal)) - FixedMul(cdx, sin(angyfinal));
- dx = FixedMul(cdz, sin(angyfinal)) + FixedMul(cdx, cos(angyfinal));
- cdx = dx; cdy = dy; cdz = dz;
- dx = FixedMul(cdx, cos(angxfinal)) - FixedMul(cdy, sin(angxfinal));
- dy = FixedMul(cdx, sin(angxfinal)) + FixedMul(cdy, cos(angxfinal));
- int xcoord = cos(angxfinal) * 64 + GetActorX(0);
- int ycoord = sin(angxfinal) * 64 + GetActorY(0);
- //Spawn("BulletPuff", xcoord, ycoord, GetActorZ(0)+GetActorViewHeight(0), 0, 0);
- int utid = UniqueTID();
- Spawn("Rocket", xcoord, ycoord, GetActorZ(0)+fireheight, utid);
- SetActorAngle(utid, angxfinal);
- int ctid = ActivatorTID();
- int utid2 = UniqueTID();
- Thing_ChangeTID(0, utid2);
- SetActivator(utid);
- SetPointer(AAPTR_TARGET, utid2);
- SetActivator(utid2);
- Thing_ChangeTID(0, ctid);
- SetActorPosition(utid, GetActorX(0), GetActorY(0), GetActorZ(0)+fireheight-4.0, false);
- SetActorVelocity(utid, dx*16, dy*16, dz*16, false, true);
- lastattack = Timer();
Advertisement
Add Comment
Please, Sign In to add comment