|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T e
Length: 3509 (0xdb5) Types: TextFile Names: »end_game.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Galaxy/src/end_game.c«
/* * %W% (mrdch&amnnon) %G% */ # include "header" char s1[] = "We are on our way to a BETTER LAND... let GOD be with us next time."; extern char moreflg[] ; /* * When the game ends, this function is calles to show it * in a rather dramatic way. The looser sees his galaxy vanishing, * while the winner gets a satisfactory view of the galaxy that * transforms to his original sign. */ end_game (winplay) { char winc = '*'; /* the default winning sign */ /* keeps the new coordinates of vanishing planets */ int newcord[2][MAXPL]; int i, j, m, captr; char *ps1 = s1; int line = 19, col; if (winplay) winc = '@'; /* notify the winner */ termn (winplay); if (moreflg[winplay]) endmore() ; cleol (19, 0); disch ('\007'); say ("Sir!!! We won the battle!!! The enemy runs away!!!"); disch ('\007'); (void) fflush (tty); /* notify the looser */ termn (!winplay); if (moreflg[!winplay]) endmore() ; disch ('\007'); say ("Dear sir, we have lost everything. I wish you best luck next time..."); disch ('\007'); cleol (line, 0); /* back to the winner */ termn (winplay); so (19, 20, " Our forces are taking over the two Galaxies..."); (void) fflush (tty); /* and again the looser */ termn (!winplay); for (i = 0; i < MAXPL; i++) { pos (pl[i].coord[0], pl[i].coord[1] + 1); newcord[0][i] = pl[i].coord[0]; newcord[1][i] = pl[i].coord[1] + 1; pl[i].d_symbol[player] = winc; pl[i].d_symbol[!player] = winc; } /* display the comforting line to the looser */ col = 5; so (line--, col, ps1); col += 3; ps1 += 3; /* make it succesivly shorter */ s1[strlen (s1) - 3] = '\0'; for (i = 0; i < MAXPL; i++) { pos (newcord[0][i], newcord[1][i]); disch (winc); pos (newcord[0][i], newcord[1][i] - 1); disch (' '); pos (newcord[0][i], newcord[1][i] + 1); disch (' '); } captr = 0; j = 20; while (j) { if (j < 14 && captr < MAXPL) { termn (winplay); for (m = 0; m < 7; m++) { curse_com (&pl[captr]); captr++; } (void) fflush (tty); termn (!winplay); } if (j % 2) { cleol (line, 0); so (line--, col, ps1); col += 3; ps1 += 3; s1[strlen (s1) - 3] = '\0'; } /* place the vanishing planets in their new position on screen */ for (i = 0; i < MAXPL; i++) { pos (newcord[0][i], newcord[1][i]); disch (' '); if (newcord[0][i] > 8) newcord[0][i]--; else if (newcord[0][i] < 8) newcord[0][i]++; if (newcord[1][i] - 39 >= 2) newcord[1][i] -= 2; else if (newcord[1][i] - 39 == 1) newcord[1][i]--; else if (39 - newcord[1][i] >= 2) newcord[1][i] += 2; else if (39 - newcord[1][i] == 1) newcord[1][i]++; pos (newcord[0][i], newcord[1][i]); disch (winc); (void) fflush (tty); } j--; } (void) fflush (tty); termn (winplay); endgame (winplay); }