void complete_maneuver(void) { double_t t8; strcpy(sA, "<*>"); /* @@@ z1 = cint(s1); */ z1 = (int)s1; /* @@@ z2 = cint(s2); */ z2 = (int)s2; insert_in_quadrant(); maneuver_energy(); t8 = 1.0; if (w1 < 1.0) t8 = w1; t = t + t8; if (t > t0 + t9) end_of_time(); short_range_scan(); }
void ship_destroyed(void) { printf("The Enterprise has been destroyed.\n"); printf("The Federation will be conquered.\n\n"); end_of_time(); }
inline osmium::Timestamp min_op_start_value<osmium::Timestamp>() { return end_of_time(); }
void exceed_quadrant_limits(void) { int x5 = 0; /* Outside galaxy flag */ /* @@@ x = (8 * (q1 - 1)) + x + (n * x1); */ x = (8 * q1) + x + (n * x1); /* @@@ y = (8 * (q2 - 1)) + y + (n * x2); */ y = (8 * q2) + y + (n * x2); /* @@@ q1 = cint(x / 8.0); */ q1 = (int)(x / 8.0); /* @@@ q2 = cint(y / 8.0); */ q2 = (int)(y / 8.0); /* @@@ s1 = x - ((q1 - 1) * 8); */ s1 = x - (q1 * 8); /* @@@ s2 = y - ((q2 - 1) * 8); */ s2 = y - (q2 * 8); /* @@@ if (cint(s1) == 0) */ if ((int)s1 == 0) { q1 = q1 - 1; s1 = s1 + 8.0; } /* @@@ if (cint(s2) == 0) */ if ((int)s2 == 0) { q2 = q2 - 1; s2 = s2 + 8.0; } /* check if outside galaxy */ if (q1 < 1) { x5 = 1; q1 = 1; s1 = 1.0; } if (q1 > 8) { x5 = 1; q1 = 8; s1 = 8.0; } if (q2 < 1) { x5 = 1; q2 = 1; s2 = 1.0; } if (q2 > 8) { x5 = 1; q2 = 8; s2 = 8.0; } if (x5 == 1) { printf("LT. Uhura reports:\n"); printf(" Message from Starfleet Command:\n\n"); printf(" Permission to attempt crossing of galactic perimeter\n"); printf(" is hereby *denied*. Shut down your engines.\n\n"); printf("Chief Engineer Scott reports:\n"); /* @@@ printf(" Warp Engines shut down at sector %d, ", cint(s1)); */ printf(" Warp Engines shut down at sector %d, ", (int)s1); /* @@@ printf("%d of quadrant %d, %d.\n\n", cint(s2), q1, q2); */ printf("%d of quadrant %d, %d.\n\n", (int)s2, q1, q2); } /* else new_quadrant(); @@@ this causes bugs when bouncing off galaxy walls. basically, if you bounce very far, your quadrant contents won't match your LRS. Cool huh? */ maneuver_energy(); /* this section has a different order in the original. t = t + 1; if (t > t0 + t9) end_of_time(); */ if (t > t0 + t9) end_of_time(); /* @@@ what does this do?? It's in the original. if (8 * q1 + q2 = 8 * q4 + q5) { complete_maneuver(); } */ t = t + 1; new_quadrant(); }
void new_game(void) { string sTemp; initialize(); new_quadrant(); short_range_scan(); while(1) { if (s + e <= 10 && (e < 10 || d[7] < 0)) { printf("\n** Fatal Error ** "); printf("You've just stranded your ship in space.\n\n"); printf("You have insufficient maneuvering energy,"); printf(" and Shield Control is presently\n"); printf("incapable of cross circuiting to engine room!!\n\n"); end_of_time(); } printf("Command? "); reads(sTemp); printf("\n"); if (! strncmp(sTemp, "nav", 3)) course_control(); else if (! strncmp(sTemp, "srs", 3)) short_range_scan(); else if (! strncmp(sTemp, "lrs", 3)) long_range_scan(); else if (! strncmp(sTemp, "pha", 3)) phaser_control(); else if (! strncmp(sTemp, "tor", 3)) photon_torpedoes(); else if (! strncmp(sTemp, "she", 3)) sheild_control(); else if (! strncmp(sTemp, "dam", 3)) damage_control(); else if (! strncmp(sTemp, "com", 3)) library_computer(); else if (! strncmp(sTemp, "xxx", 3)) resign_commision(); else { printf("Enter one of the following:\n\n"); printf(" nav - To Set Course\n"); printf(" srs - Short Range Sensors\n"); printf(" lrs - Long Range Sensors\n"); printf(" pha - Phasers\n"); printf(" tor - Photon Torpedoes\n"); printf(" she - Sheild Control\n"); printf(" dam - Damage Control\n"); printf(" com - Library Computer\n"); printf(" xxx - Resign Command\n"); printf("\n"); } } }