- while (*++argv && **argv == '-')
- switch (*++*argv)
- {
- case 'd':
- nodrive = 1;
- break;
- case 'x':
- randomize = 1;
- break;
- default:
- printf("Unknown flag '%s'\n",*argv);
- break;
- }
- if (*argv)
- game = atoi(*argv);
- else
- game = -1;
- initialize(nodrive, randomize);
- noecho();
- crmode();
- Signal("Aye aye, Sir", 0, 0);
- for(;;)
- {
- move(scroll++,0);
- clearline();
- addch('~');
- move(--scroll,0);
- refresh();
- ch = getch();
- switch(ch)
- {
- case 'm':
- crew = specs[scene[game].ship[player].shipnum].crew3;
- /* for (n=0; n < 3; n++)
- {
- if (ptr -> OBP[n].turnsent && ptr -> OBP[n].mensent % 10)
- crew = 0;
- }
- for (n=0; n < 3; n++)
- {
- if (ptr -> DBP[n].turnsent && ptr -> DBP[n].mensent % 10)
- crew = 0;
- } */
- if (crew && !grappled(player) && !fouled(player) && windspeed)
- {
- ta = maxturns(player);
- aheadfirst = ta & 0100000;
- ma = maxmove(player, pos[player].dir, 0);
- ta &= 077777;
- acceptmove(ma, ta, aheadfirst);
- }
- else
- Signal("Unable to move", 0, 0);
- break;
- case 's':
- acceptsignal();
- break;
- case 'g':
- grapungrap();
- break;
- case 'u':
- unfoulplayer();
- break;
- case 'b':
- boarding();
- break;
-/* case '[':
- devestate = 1;
- acceptcombat();
- break; */
- case 'f':
- acceptcombat();
- break;
- case 'l':
- loadplayer();
- break;
- case 'c':
- changesail();
- break;
- case 'r':
- repair();
- break;
- case 'B':
- Signal("'Hands to stations!'", 0, 0);
- unboard(player, player, 1); /* cancel DBP's */
- unboard(player, player, 0); /* cancel offense */
- break;
- case '\f':
- signal(SIGALRM, SIG_IGN);
- viewrow = pos[player].row - ROWSINVIEW / 2;
- viewcol = pos[player].col - COLSINVIEW / 2;
- board();
- plotships(); /* don't create new turn */
- break;
- case 'L':
- scene[game].ship[player].file -> loadL = 0;
- scene[game].ship[player].file -> loadR = 0;
- scene[game].ship[player].file -> readyL = 0;
- scene[game].ship[player].file -> readyR = 0;
- Signal("Broadsides unloaded", 0, 0);
- break;
- case 'q':
- Signal("Type 'Q' to quit", 0, 0);
- break;
- case 'Q':
- leave(0);
- break;
- case 'I':
- for (n = 0; n < scene[game].vessels; n++)
- eyeball(player, n);
- break;
- case 'i':
- n = closestenemy(player, 0, 1);
- eyeball(player, n);
- break;
- }
- signalflags();
- lost();
+ while (*++argv && **argv == '-')
+ switch (*++*argv) {
+ case 'd':
+ nodrive = 1;
+ break;
+ case 'D':
+ debug++;
+ break;
+ case 'x':
+ randomize = 1;
+ break;
+ default:
+ printf("Unknown flag '%s'\n",*argv);
+ break;
+ }
+ if (*argv)
+ game = atoi(*argv);
+ else
+ game = -1;
+ initialize(nodrive, randomize, debug);
+ Signal("Aye aye, Sir", 0, 0);
+ for(;;) {
+ move(scroll++,0);
+ clearline();
+ addch('~');
+ move(--scroll,0);
+ refresh();
+ ch = getch();
+ switch(ch) {
+ case 'm':
+ crew = specs[scene[game].ship[player].shipnum].crew3;
+ if (crew && !grappled(player) && !fouled(player) && windspeed) {
+ ta = maxturns(player);
+ aheadfirst = ta & 0100000;
+ ma = maxmove(player, pos[player].dir, 0);
+ ta &= 077777;
+ acceptmove(ma, ta, aheadfirst);
+ } else
+ Signal("Unable to move", 0, 0);
+ break;
+ case 's':
+ acceptsignal();
+ break;
+ case 'g':
+ grapungrap();
+ break;
+ case 'u':
+ unfoulplayer();
+ break;
+ case 'v':
+ version();
+ break;
+ case 'b':
+ boarding();
+ break;
+ case 'f':
+ acceptcombat();
+ break;
+ case 'l':
+ loadplayer();
+ break;
+ case 'c':
+ changesail();
+ break;
+ case 'r':
+ repair();
+ break;
+ case 'B':
+ Signal("'Hands to stations!'", 0, 0);
+ unboard(player, player, 1); /* cancel DBP's */
+ unboard(player, player, 0); /* cancel offense */
+ break;
+ case '\f':
+ signal(SIGALRM, SIG_IGN);
+ viewrow = pos[player].row - ROWSINVIEW / 2;
+ viewcol = pos[player].col - COLSINVIEW / 2;
+ board();
+ plotships(); /* don't create new turn */
+ break;
+ case 'L':
+ scene[game].ship[player].file -> loadL = 0;
+ scene[game].ship[player].file -> loadR = 0;
+ scene[game].ship[player].file -> readyL = 0;
+ scene[game].ship[player].file -> readyR = 0;
+ Signal("Broadsides unloaded", 0, 0);
+ break;
+ case 'q':
+ Signal("Type 'Q' to quit", 0, 0);
+ break;
+ case 'Q':
+ leave(0);
+ break;
+ case 'I':
+ for (n = 0; n < scene[game].vessels; n++)
+ eyeball(player, n);
+ break;
+ case 'i':
+ n = closestenemy(player, 0, 1);
+ eyeball(player, n);
+ break;
+ }
+ signalflags();
+ lost();