From ae1f84921f8be7e7d92f687914e52a52694d23a2 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Fri, 8 Jan 2016 00:08:46 -0500 Subject: 1 ship approaching (not ships), fix randi() wrapper for rand() --- README.txt | 13 +++++++++++++ taipan.c | 8 ++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/README.txt b/README.txt index 5b85282..3f1939a 100644 --- a/README.txt +++ b/README.txt @@ -121,6 +121,19 @@ arcade game). Bugs! At least these: +- If using cc65's rand(), booty is coming up negative. Pretty sure + this is fixed (it was due to my randi() having an unsigned int + return type, but rand() returns signed, even though it never returns + a negative numer). Anyway the real fix here is to get POKEY random + numbers working correctly and ditch rand() again. + +- If using POKEY random numbers, 0 is never returned (since the POKEY + uses a LFSR). + +- When exiting to DOS and reloading, the title screen graphics are + messed up. The playtester who reported this was running on real + hardware (not an emulator). + - After a battle, the prices don't get reset (or, not always?) when entering the new port. diff --git a/taipan.c b/taipan.c index c93c6c0..63ea0f9 100644 --- a/taipan.c +++ b/taipan.c @@ -83,7 +83,7 @@ extern void __fastcall__ jsleep(unsigned int j); extern unsigned int __fastcall__ randi(void); #else #define initrand() _randomize() -#define randi() rand() +#define randi() ((unsigned int)rand()) #endif /* random long, 0 to 2**32-1 */ @@ -500,6 +500,8 @@ int sea_battle(int id, int num_ships) { } clrscr(); + cprintulong(booty); + agetc(); cursor(0); flushinp(); fight_stats(num_ships, orders); @@ -1761,7 +1763,9 @@ void quit(void) num_ships = 9999; } cprintulong(num_ships); - cputs(" hostile ships approaching, Taipan!\r\n"); + cputs(" hostile ship"); + if(num_ships != 1) cputc('s'); + cputs(" approaching, Taipan!\r\n"); under_attack_sound(); timed_getch(TMOUT_3S); -- cgit v1.2.3