aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--taipan.c168
1 files changed, 90 insertions, 78 deletions
diff --git a/taipan.c b/taipan.c
index 99393a5..b322c91 100644
--- a/taipan.c
+++ b/taipan.c
@@ -1037,6 +1037,8 @@ int ships_on_screen[10];
extern char have_ships_on_screen(void);
extern void clear_ships_on_screen(void);
+char have_no_cargo(void);
+
char sea_battle(char id, int num_ships) {
/* These locals seem to eat too much stack and
cause weird behaviour, so they're static now. */
@@ -1099,7 +1101,7 @@ char sea_battle(char id, int num_ships) {
*/
// flushinp();
- gotox0y(5);
+ gotox0y(6);
clrtoeol();
// cputs("Current seaworthiness: ");
@@ -1180,8 +1182,8 @@ char sea_battle(char id, int num_ships) {
plus_or_space(num_ships > num_on_screen);
- gotox0y(16);
- crlf();
+ // gotox0y(16);
+ // crlf();
do {
targeted = randi()%10;
@@ -1266,7 +1268,7 @@ char sea_battle(char id, int num_ships) {
}
}
- gotox0y(16);
+ // gotox0y(16);
set_orders();
}
@@ -1274,7 +1276,9 @@ char sea_battle(char id, int num_ships) {
// cputs("We have no guns");
print_combat_msg(M_we_have_no_guns);
cprint_taipan_bangbang();
+ bad_joss_sound();
turbo = 0;
+ orders = 0;
set_orders();
} else if (orders == 3) {
choice = 0;
@@ -1282,90 +1286,98 @@ char sea_battle(char id, int num_ships) {
total = 0;
turbo = 0;
- // cputs("You have the following on board");
- print_combat_msg(M_you_have_on_board);
- cprint_colon_space();
- gotoxy(4, 4);
- // cputs(item[0]);
- print_msg(M_opium);
- // cputs(": ");
- cprint_colon_space();
- cprintulong(hold_[0]);
- gotoxy(24, 4);
- // cputs(item[1]);
- print_msg(M_silk);
- // cputs(": ");
- cprint_colon_space();
- cprintulong(hold_[1]);
- gotox0y(5);
- clrtoeol();
- gotox(5);
- // cputs(item[2]);
- print_msg(M_arms);
- // cputs(": ");
- cprint_colon_space();
- cprintulong(hold_[2]);
- gotoxy(21, 5);
- // cputs(item[3]);
- print_msg(M_gen_cargo);
- // cputs(": ");
- cprint_colon_space();
- cprintulong(hold_[3]);
-
- gotox0y(6);
- clrtoeol();
- // cputs("What shall I throw overboard");
- print_msg(M_what_shall_i_throw);
- cprint_taipan_prompt();
-
- choice = get_item(1);
+ if(have_no_cargo()) {
+ print_combat_msg(M_you_have_no_cargo);
+ cprint_taipan_bangbang();
+ bad_joss_sound();
+ orders = 0;
+ set_orders();
+ } else {
+ // cputs("You have the following on board");
+ print_combat_msg(M_you_have_on_board);
+ cprint_colon_space();
+ gotoxy(4, 4);
+ // cputs(item[0]);
+ print_msg(M_opium);
+ // cputs(": ");
+ cprint_colon_space();
+ cprintulong(hold_[0]);
+ gotoxy(24, 4);
+ // cputs(item[1]);
+ print_msg(M_silk);
+ // cputs(": ");
+ cprint_colon_space();
+ cprintulong(hold_[1]);
+ gotox0y(5);
+ clrtoeol();
+ gotox(5);
+ // cputs(item[2]);
+ print_msg(M_arms);
+ // cputs(": ");
+ cprint_colon_space();
+ cprintulong(hold_[2]);
+ gotoxy(21, 5);
+ // cputs(item[3]);
+ print_msg(M_gen_cargo);
+ // cputs(": ");
+ cprint_colon_space();
+ cprintulong(hold_[3]);
- if(choice < 4) {
gotox0y(6);
clrtoeol();
- // cputs("How much");
- print_msg(M_how_much);
+ // cputs("What shall I throw overboard");
+ print_msg(M_what_shall_i_throw);
cprint_taipan_prompt();
- amount = get_num();
- if((hold_[choice] > 0) && ((amount == UINT32_MAX) || (amount > hold_[choice])))
- {
- amount = hold_[choice];
- }
- total = hold_[choice];
- } else {
- total = hold_[0] + hold_[1] + hold_[2] + hold_[3];
- }
+ choice = get_item(1);
- gotox0y(4);
- cblank(120);
+ if(choice < 4) {
+ gotox0y(6);
+ clrtoeol();
+ // cputs("How much");
+ print_msg(M_how_much);
+ cprint_taipan_prompt();
- if(total > 0) {
- // cputs("Let's hope we lose 'em");
- print_combat_msg(M_hope_we_lose_em);
- cprint_taipan_bang();
- bad_joss_sound();
- if (choice < 4) {
- hold_[choice] -= amount;
- hold += amount;
- ok += (amount / 10);
+ amount = get_num();
+ if((hold_[choice] > 0) && ((amount == UINT32_MAX) || (amount > hold_[choice])))
+ {
+ amount = hold_[choice];
+ }
+ total = hold_[choice];
} else {
- hold_[0] = 0;
- hold_[1] = 0;
- hold_[2] = 0;
- hold_[3] = 0;
- hold += total;
- ok += (total / 10);
+ total = hold_[0] + hold_[1] + hold_[2] + hold_[3];
}
- set_orders();
- } else {
- // cputs("There's nothing there");
- print_combat_msg(M_nothing_there);
- cprint_taipan_bang();
- good_joss_sound();
+ gotox0y(4);
+ cblank(120);
+
+ if(total > 0) {
+ // cputs("Let's hope we lose 'em");
+ print_combat_msg(M_hope_we_lose_em);
+ cprint_taipan_bang();
+ bad_joss_sound();
+ if (choice < 4) {
+ hold_[choice] -= amount;
+ hold += amount;
+ ok += (amount / 10);
+ } else {
+ hold_[0] = 0;
+ hold_[1] = 0;
+ hold_[2] = 0;
+ hold_[3] = 0;
+ hold += total;
+ ok += (total / 10);
+ }
- set_orders();
+ set_orders();
+ } else {
+ // cputs("There's nothing there");
+ print_combat_msg(M_nothing_there);
+ cprint_taipan_bang();
+ good_joss_sound();
+
+ set_orders();
+ }
}
}
@@ -1418,7 +1430,7 @@ char sea_battle(char id, int num_ships) {
plus_or_space(num_ships > num_on_screen);
}
- gotox0y(16);
+ // gotox0y(16);
set_orders();
}