void DrawLimbo(char plr) { int i; int lenprogname; // Variable to hold and manipulate length of program name FadeOut(2, 10, 0, 0); helpText = "i039"; keyHelpText = "k039"; display::graphics.screen()->clear(); ShBox(0, 0, 319, 22); InBox(3, 3, 30, 19); IOBox(243, 3, 316, 19); display::graphics.setForegroundColor(1); draw_string(258, 13, "CONTINUE"); if (plr == 0) { draw_heading(36, 5, "ASTRONAUT COMPLEX", 0, -1); } else { draw_heading(40, 5, "COSMONAUT CENTER", 0, -1); } ShBox(0, 24, 158, 199); InBox(9, 51, 90, 102); fill_rectangle(25, 129, 153, 195, 0); fill_rectangle(5, 129, 19, 195, 0); ShBox(6, 130, 18, 161); ShBox(6, 163, 18, 194); draw_up_arrow(8, 133); draw_down_arrow(8, 166); ShBox(161, 24, 319, 72); InBox(165, 28, 315, 42); fill_rectangle(166, 29, 314, 41, 7); ShBox(161, 74, 319, 199); InBox(165, 77, 315, 89); fill_rectangle(166, 78, 314, 88, 10); fill_rectangle(10, 52, 89, 101, 7 + plr * 3); InBox(165, 46, 315, 67); fill_rectangle(166, 47, 314, 66, 0); ShBox(167, 48, 239, 65); ShBox(241, 48, 313, 65); InBox(167, 48, 239, 65); InBox(4, 128, 20, 196); InBox(24, 128, 154, 196); // new boxes OutBox(0, 24, 158, 47); OutBox(0, 105, 158, 128); InBox(9, 28, 148, 42); InBox(9, 108, 148, 123); display::graphics.setForegroundColor(20); draw_string(180, 55, "TRANSFER"); if (plr == 0) { draw_string(178, 62, "ASTRONAUT"); } else { draw_string(178, 62, "COSMONAUT"); } draw_string(256, 55, "FACILITY"); draw_string(254, 62, "TRANSFER"); fill_rectangle(166, 78, 314, 88, 10); display::graphics.setForegroundColor(11); draw_string(185, 85, "TRANSFER TO LOCATION"); for (i = 0; i < 5; i++) { IOBox(165, 93 + 21 * i, 238, 111 + 21 * i); IOBox(242, 93 + 21 * i, 315, 111 + 21 * i); if (Data->P[plr].Manned[i].Num < 0) { InBox(167, 95 + 21 * i, 236, 109 + 21 * i); display::graphics.setForegroundColor(17); } else { display::graphics.setForegroundColor(11); } lenprogname = (7 - strlen(Data->P[plr].Manned[i].Name)) * 3; //lenprogname=(7-lenprogname)*2 draw_string(181 + lenprogname, 101 + 21 * i, Data->P[plr].Manned[i].Name); draw_string(181, 107 + 21 * i, "PROGRAM"); display::graphics.setForegroundColor(11); draw_string(257, 107 + 21 * i, "TRAINING"); //grMoveTo(254,101+21*i); This remmed out to manually place the Adv. Training names so they could be centered -Leon switch (i) { case 0: draw_string(258, 101 + 21 * i, "CAPSULE"); break; case 1: draw_string(271, 101 + 21 * i, "L.M."); break; case 2: draw_string(268, 101 + 21 * i, "E.V.A."); break; case 3: draw_string(259, 101 + 21 * i, "DOCKING"); break; case 4: draw_string(252, 101 + 21 * i, "ENDURANCE"); break; default: break; } } display::graphics.setForegroundColor(11); draw_string(187, 37, "OPERATION SELECTION"); display::graphics.setForegroundColor(20); //draw_string(256,13,"CONTINUE"); draw_string(15, 37, "NAME:"); draw_string(17, 118, "GROUP:"); draw_string(88, 118, "TENURE:"); display::graphics.setForegroundColor(11); draw_string(102, 60, "MOOD:"); draw_string(102, 68, "CAP:"); draw_string(102, 76, "L.M.:"); draw_string(102, 84, "EVA:"); draw_string(102, 92, "DOCK:"); draw_string(102, 100, "END:"); draw_small_flag(plr, 4, 4); return; }
/* Draws the entire Future Missions display, including the mission- * specific information. Used to initialize the mission selector * interface. * * This relies on the global buffer vh, which must have been created * prior. The future missions button art is loaded into vh by this * function. * * \param plr The player scheduling the mission's design scheme. * \param mis The mission type. * \param pad 0, 1, or 2 depending on which pad is being used. */ void DrawFuture(char plr, int mis, char pad) { FadeOut(2, 10, 0, 0); Load_FUT_BUT(); boost::shared_ptr<display::PalettizedSurface> planets(Filesystem::readImage("images/fmin.img.0.png")); planets->exportPalette(); display::graphics.screen()->clear(); gr_sync(); fill_rectangle(1, 1, 318, 21, 3); fill_rectangle(317, 22, 318, 198, 3); fill_rectangle(1, 197, 316, 198, 3); fill_rectangle(1, 22, 2, 196, 3); OutBox(0, 0, 319, 199); InBox(3, 3, 30, 19); InBox(3, 22, 316, 196); IOBox(242, 3, 315, 19); ShBox(5, 24, 183, 47); ShBox(5, 24, 201, 47); //name box ShBox(5, 74, 41, 82); // RESET ShBox(5, 49, 53, 72); //dur/man ShBox(43, 74, 53, 82); // Duration lock ShBox(80, 74, 90, 82); // Docking lock ShBox(117, 74, 127, 82); // EVA lock ShBox(154, 74, 164, 82); // LM lock ShBox(191, 74, 201, 82); // Joint mission lock ShBox(5, 84, 16, 130); //arrows up ShBox(5, 132, 16, 146); //middle box ShBox(5, 148, 16, 194); // down ShBox(203, 24, 238, 31); // new right boxes // Mission penalty numerical display fill_rectangle(206, 36, 235, 44, 7); ShBox(203, 33, 238, 47); InBox(205, 35, 236, 45); // Mission scroll arrows draw_up_arrow(8, 95); draw_down_arrow(8, 157); // Display mission steps toggle vh->copyTo(display::graphics.legacyScreen(), 140, 5, 5, 132, 15, 146); // Draw the mission specification toggle buttons Toggle(5, 1); draw_Pie(0); OutBox(5, 49, 53, 72); Toggle(1, 1); TogBox(55, 49, 0); Toggle(2, 1); TogBox(92, 49, 0); Toggle(3, 1); TogBox(129, 49, 0); Toggle(4, 1); if (JointFlag == false) { InBox(191, 74, 201, 82); TogBox(166, 49, 1); } else { OutBox(191, 74, 201, 82); TogBox(166, 49, 0); } gr_sync(); Missions(plr, 8, 37, mis, 1); GetMinus(plr); display::graphics.setForegroundColor(5); /* lines of text are 1:8,30 2:8,37 3:8,44 */ switch (pad) { // These used to say Pad 1, 2, 3 -Leon case 0: draw_string(8, 30, "PAD A:"); break; case 1: draw_string(8, 30, "PAD B:"); break; case 2: draw_string(8, 30, "PAD C:"); break; } display::graphics.setForegroundColor(1); draw_string(9, 80, "RESET"); draw_string(258, 13, "CONTINUE"); display::graphics.setForegroundColor(11); if (Data->Season == 0) { draw_string(200, 9, "SPRING"); } else { draw_string(205, 9, "FALL"); } draw_string(206, 16, "19"); draw_number(0, 0, Data->Year); display::graphics.setForegroundColor(1); draw_small_flag(plr, 4, 4); draw_heading(40, 5, "FUTURE MISSIONS", 0, -1); FadeIn(2, 10, 0, 0); return; }
void ShowPrest(char plr) { char pos = -1, pos2 = -1; int i, j; for (j = 0; j < 2; j++) for (i = 0; i < 28; i++) { TPoints[j] += (int) Data->Prestige[i].Points[j]; } FadeOut(2, display::graphics.palette(), 5, 0, 0); PortPal(plr); display::graphics.screen()->clear(0); ShBox(0, 0, 319, 22); ShBox(0, 24, 319, 199); InBox(4, 27, 315, 196); fill_rectangle(5, 28, 314, 195, 0); //ShBox(6,29,125,101); ShBox(6, 29, 56, 101); InBox(17, 46, 44, 62); InBox(70, 42, 174, 92); ShBox(179, 29, 313, 101); ShBox(58, 29, 313, 101); InBox(70, 42, 174, 92); InBox(185, 42, 304, 92); //ShBox(136,74,163,90); IOBox(243, 3, 316, 19); ShBox(6, 104, 313, 194); InBox(10, 127, 309, 191); fill_rectangle(11, 128, 308, 190, 0); ShBox(297, 129, 307, 158); ShBox(297, 160, 307, 189); // Arrows draw_heading(8, 5, "PRESTIGE SUMMARY", 0, -1); draw_heading(14, 109, "EVENTS", 0, -1); display::graphics.setForegroundColor(11); draw_string(140, 120, "1ST:"); draw_string(175, 120, "2ND:"); draw_string(212, 120, "SUBS:"); draw_string(254, 120, "FAIL:"); display::graphics.setForegroundColor(1); draw_string(257, 13, "CONTINUE"); draw_string(17, 39, "FIRST:"); draw_string(19, 81, "DATE:"); display::graphics.setForegroundColor(11); draw_string(71, 37, "# SPACE FIRSTS:"); draw_string(187, 37, "TOTAL POINTS:"); display::graphics.setForegroundColor(1); display::graphics.setForegroundColor(6); draw_string(210, 99, "USA"); draw_string(90, 99, "USA"); display::graphics.setForegroundColor(9); draw_string(261, 99, "USSR"); draw_string(135, 99, "USSR"); draw_up_arrow(299, 131); draw_down_arrow(299, 162); DPrest(plr, &pos, &pos2); FadeIn(2, display::graphics.palette(), 5, 0, 0); WaitForMouseUp(); while (1) { GetMouse(); // Parse Button actions, note that return is embedded in first pButton if ((x >= 245 && y >= 5 && x <= 314 && y <= 17 && mousebuttons > 0) || key == K_ENTER) { InBox(245, 5, 314, 17); if (key > 0) { delay(300); key = 0; }; WaitForMouseUp(); OutBox(245, 5, 314, 17); key = 0; helpText = "i000"; keyHelpText = "k000"; return; } pButton(297, 129, 307, 158, BackOne(plr, &pos, &pos2), key >> 8, 72); pButton(297, 160, 307, 189, ForOne(plr, &pos, &pos2), key >> 8, 80); Button2(15, 129, 160, 133, Move2(plr, &pos, &pos2, 0), key, 49); Button2(15, 136, 160, 140, Move2(plr, &pos, &pos2, 1), key, 50); Button2(15, 143, 160, 147, Move2(plr, &pos, &pos2, 2), key, 51); Button2(15, 150, 160, 154, Move2(plr, &pos, &pos2, 3), key, 52); Button2(15, 157, 160, 161, Move2(plr, &pos, &pos2, 4), key, 53); Button2(15, 164, 160, 168, Move2(plr, &pos, &pos2, 5), key, 54); Button2(15, 171, 160, 175, Move2(plr, &pos, &pos2, 6), key, 55); Button2(15, 178, 160, 182, Move2(plr, &pos, &pos2, 7), key, 56); Button2(15, 185, 160, 189, Move2(plr, &pos, &pos2, 8), key, 57); key = 0; }; }
void DrawProgs(char plr, char prog) { int i, j, Name[30]; strcpy((char *)Name, Data->P[plr].Manned[prog - 1].Name); strcat((char *)Name, " PROGRAM"); FadeOut(2, 10, 0, 0); display::graphics.screen()->clear(); display::graphics.setForegroundColor(1); ShBox(0, 0, 319, 22); ShBox(0, 24, 319, 81); ShBox(0, 83, 319, 123); ShBox(0, 125, 158, 199); ShBox(161, 125, 319, 199); fill_rectangle(25, 129, 153, 195, 0); fill_rectangle(5, 129, 19, 195, 0); ShBox(6, 130, 18, 161); ShBox(6, 163, 18, 194); IOBox(243, 86, 316, 102); IOBox(243, 104, 316, 120); IOBox(243, 3, 316, 19); InBox(4, 128, 20, 196); InBox(24, 128, 154, 196); InBox(60, 27, 141, 78); InBox(3, 3, 30, 19); draw_up_arrow(9, 133); draw_down_arrow(9, 166); { char filename[128]; snprintf(filename, sizeof(filename), "images/aprog.%d.%d.png", plr, prog); boost::shared_ptr<display::PalettizedSurface> image(Filesystem::readImage(filename)); image->exportPalette(); display::graphics.screen()->draw(image, 61, 28); } for (j = 0; j < 2; j++) { for (i = 0; i < 4; i++) { ShBox(164 + 77 * j, 139 + i * 15, 238 + 77 * j, 151 + i * 15); } } ShBox(4, 86, 12, 92); if (prog >= 2) { ShBox(4, 95, 12, 101); } if (prog >= 3) { ShBox(4, 104, 12, 110); } if (prog == 5) { ShBox(4, 113, 12, 119); } draw_small_flag(plr, 4, 4); display::graphics.setForegroundColor(9); draw_string(250, 96, "A"); display::graphics.setForegroundColor(1); draw_string(0, 0, "SSIGN CREW"); display::graphics.setForegroundColor(9); draw_string(252, 114, "B"); display::graphics.setForegroundColor(1); draw_string(0, 0, "REAK CREW"); draw_string(258, 13, "CONTINUE"); display::graphics.setForegroundColor(5); draw_string(183, 133, "FLIGHT "); display::graphics.setForegroundColor(9); draw_string(0, 0, "C"); display::graphics.setForegroundColor(5); draw_string(0, 0, "REW SELECTION"); display::graphics.setForegroundColor(7); draw_string(152, 35, &Data->P[plr].Manned[prog - 1].Name[0]); display::graphics.setForegroundColor(9); if (prog == 1) { draw_string(152, 43, "ONE"); } if (prog == 2) { draw_string(152, 43, "TWO"); } if (prog == 3 || prog == 4) { draw_string(152, 43, "THREE"); } if (prog == 5) { draw_string(152, 43, "FOUR"); } draw_string(0, 0, "-PERSON CAPACITY"); display::graphics.setForegroundColor(7); draw_string(152, 51, "SAFETY FACTOR: "); display::graphics.setForegroundColor(11); draw_number(0, 0, Data->P[plr].Manned[prog - 1].Safety); draw_string(0, 0, " %"); display::graphics.setForegroundColor(7); draw_string(152, 59, "UNIT WEIGHT: "); display::graphics.setForegroundColor(11); draw_number(0, 0, Data->P[plr].Manned[prog - 1].UnitWeight); display::graphics.setForegroundColor(7); draw_string(152, 67, "MAX DURATION: "); display::graphics.setForegroundColor(11); draw_number(0, 0, Data->P[plr].Manned[prog - 1].Duration); draw_string(0, 0, " DAYS (LVL "); if (prog == 1) { draw_string(0, 0, "B)"); } if (prog == 2) { draw_string(0, 0, "E)"); } if (prog == 3 || prog == 5) { draw_string(0, 0, "F)"); } if (prog == 4) { draw_string(0, 0, "D)"); } display::graphics.setForegroundColor(7); draw_string(152, 75, "AVOID FAILURE: "); display::graphics.setForegroundColor(11); if (Data->P[plr].Manned[prog - 1].SaveCard > 0) { draw_string(0, 0, "YES"); } else { draw_string(0, 0, "NO"); } display::graphics.setForegroundColor(1); draw_heading(40, 5, (char *)Name, 0, -1); return; }