John Zaitseff
8b504b645d
Implement the gettxdouble() function to input a floating point number
2011-07-19 00:37:10 +10:00
John Zaitseff
c3097e7f6f
Fix a long-standing bug: don't impound more cash than the debt amount!
2011-07-19 00:03:34 +10:00
John Zaitseff
937fea4ccb
Make company letters stand out more on the map in --no-color mode
2011-07-18 20:55:47 +10:00
John Zaitseff
ccd451cf5c
Implement the main part of exchange_stock()
2011-07-18 20:16:55 +10:00
John Zaitseff
c686d2f548
Rename sel_val_t to selection_t; add values useful for exchange_stock()
2011-07-18 20:16:24 +10:00
John Zaitseff
84b4972f93
Remove a superfluous call to wrefresh() in show_map()
2011-07-18 17:21:54 +10:00
John Zaitseff
1beb2003ef
Remove the global variables selection, credit_limit and bid_used
2011-07-18 16:22:24 +10:00
John Zaitseff
c123a87cc3
Move common bankruptcy code to a separate function, bankrupt_player()
2011-07-18 15:34:57 +10:00
John Zaitseff
2ec1c7faa9
Check if a player's debt is too large
2011-07-18 15:03:07 +10:00
John Zaitseff
5fca151b60
Add the function adjust_values()
2011-07-18 14:05:22 +10:00
John Zaitseff
4ecb40fe27
Complete the implementation of the process_move() function
...
This includes the functions try_start_new_company(), merge_companies(),
include_outpost() and inc_share_price().
2011-07-16 19:23:12 +10:00
John Zaitseff
c182f9df6f
Increase the size of Game Winner window at the end of the game
2011-07-16 19:20:50 +10:00
John Zaitseff
a75ec7479d
Add center3(): centre three strings
2011-07-16 15:47:05 +10:00
John Zaitseff
885b49f19d
Allow a player to declare themselves bankrupt
2011-07-16 14:37:29 +10:00
John Zaitseff
e2dbe549b2
Implement the "Save game" player choice; start coding process_move()
2011-07-16 13:34:13 +10:00
John Zaitseff
6c708d6f83
Add more control keys handled by various input routines for consistency
2011-07-16 13:32:02 +10:00
John Zaitseff
2c65c5be4a
Move the stock exchange and bank functions (to be written) to exch.c
2011-07-16 10:43:19 +10:00
John Zaitseff
ddb214c5fb
Move the selection and processing of game moves to move.c
2011-07-16 10:30:58 +10:00
John Zaitseff
eb2fe45beb
Reorganise the information in src/README
2011-07-16 10:10:36 +10:00
John Zaitseff
dd40b94301
Move game_load() and game_save() functions to their own source file
2011-07-16 09:58:53 +10:00
John Zaitseff
36c9a57db0
Implement the end_game() function: display the winner of the game
2011-07-15 23:37:56 +10:00
John Zaitseff
f24eead880
Make window titles to be consistently title-cased
2011-07-15 21:57:23 +10:00
John Zaitseff
dec1a44caf
Add key presses to show_help() and get_move() to be more consistent
2011-07-15 21:45:23 +10:00
John Zaitseff
b39a1a7567
Redefine CURS_ON to be CURS_NORMAL as this works better with xterm
...
If "-bc" (flash cursor) is passed to xterm, CURS_VISIBLE will stop it
from flashing--not the intended effect. CURS_NORMAL will continue to
make the cursor flash with the "-bc" option.
2011-07-15 21:35:51 +10:00
John Zaitseff
97a9c6a35b
Shorten the enumeration names for the selection global variable
2011-07-15 21:32:37 +10:00
John Zaitseff
e06f48070f
Move the closing of two windows to process_move()
2011-07-15 21:15:44 +10:00
John Zaitseff
0a63e1ca1e
Implement the next_player() function
2011-07-15 21:13:32 +10:00
John Zaitseff
0d4f7cc226
Implement the get_move() function
2011-07-15 20:54:40 +10:00
John Zaitseff
6a55745d5d
Bug fix: total worth CAN be negative!
2011-07-15 19:08:43 +10:00
John Zaitseff
04513c9d30
Make the load_game and save_game macros more reliable
...
These macros now follow recommended practices as used by the Linux
kernel: in particular, by using the "do { ... } while (0)" construct.
2011-07-15 18:56:33 +10:00
John Zaitseff
5c28cea858
Move the BUFSIZE macro to trader.h; remove the similar GAME_BUFSIZE
2011-07-15 18:52:31 +10:00
John Zaitseff
4cca36441a
Implement the show_status() and total_value() functions
2011-07-15 17:46:57 +10:00
John Zaitseff
717fc28339
Generate the map title line in a string-independent fashion
2011-07-15 14:58:32 +10:00
John Zaitseff
34c787cc30
Correct some bugs in center(); add the center2() function
2011-07-15 14:55:56 +10:00
John Zaitseff
d9d703f48e
Conditionally wait for the user and close the window before returning
2011-07-15 12:21:59 +10:00
John Zaitseff
ab9a9359e2
Implement the show_map() function that displays the galaxy map
2011-07-15 11:19:14 +10:00
John Zaitseff
e46c45d52e
Implement the select_moves() function
...
This function select random moves for the current player.
2011-07-14 21:44:18 +10:00
John Zaitseff
546c80053f
Add the --no-color (and --no-colour) command-line options
2011-07-14 20:19:04 +10:00
John Zaitseff
3093e2cfd3
Add the help text, including all appropriate formatting
2011-07-14 19:27:57 +10:00
John Zaitseff
92a95b253f
Implement the show_help() function with sample text
2011-07-14 16:29:29 +10:00
John Zaitseff
09d4455c3e
Add window attributes for the galaxy map
2011-07-14 15:16:04 +10:00
John Zaitseff
39d6bc5b37
Add the abort_game global variable
...
The abort_game variable allows the program to abort the game without
showing the final winner.
2011-07-14 15:11:53 +10:00
John Zaitseff
200f7cdf97
Revise the scramble() and unscramble() functions
...
The scramble() and unscramble() functions now use a moving (incrementing)
key for the XOR encryption/decryption. Also include a table of XOR keys
to use at random for encryption.
Revised the scramble() and unscramble() functions to use a moving
(incrementing) key for the XOR encryption/decryption. Also generated a
table of XOR keys to use at random for encryption.
2011-07-14 12:30:23 +10:00
John Zaitseff
91d77f002c
Bug fix: resolve memory leakage for the filename variable
2011-07-13 18:18:02 +10:00
John Zaitseff
593cda9a97
Add to the save_game() function to save the current game to disk
2011-07-13 12:52:38 +10:00
John Zaitseff
0b9b60780d
Bug fix: actually copy the string read in to the destination buffer
2011-07-13 12:51:25 +10:00
John Zaitseff
3f96e587aa
Rearrange the order of some global variables
...
Rearrange some global variables for consistency with initialisation in
init_game() and load_game().
2011-07-11 23:25:13 +10:00
John Zaitseff
1c502d671c
Load a game file; support (trivial) game file encryption
2011-07-11 23:23:21 +10:00
John Zaitseff
16c421574f
Add the scramble() and unscramble() functions
...
These functions provide simple encryption and decryption to thwart casual
cheating!
2011-07-11 23:21:10 +10:00
John Zaitseff
c5eda1eaab
Add code to the load_game() function
...
The load_game() function now checks for errors while opening the game
file.
2011-07-11 18:07:51 +10:00
John Zaitseff
89c3512a1b
Modify the wait_for_key() routine to take a window attribute parameter
2011-07-11 17:57:52 +10:00
John Zaitseff
86b88e8929
Allow a player to quit at the first prompt ("Enter number of players")
2011-07-11 17:48:16 +10:00
John Zaitseff
cdaeb2e869
Add the init_game() function that initialises the actual game
2011-07-11 16:14:07 +10:00
John Zaitseff
2a3ed550ad
Remove the clrline parameter from the center() function
2011-07-11 15:56:01 +10:00
John Zaitseff
4a555235c9
Add the attr parameter to the center() function
2011-07-11 15:45:38 +10:00
John Zaitseff
20f6f6e73a
Add the wait_for_key() function
2011-07-11 14:43:16 +10:00
John Zaitseff
5055ea57ac
Rename get_yn_answer() to answer_yesno()
2011-07-11 14:23:16 +10:00
John Zaitseff
6436a68f8b
Add the prototype and an empty definition for show_help()
2011-07-11 13:57:14 +10:00
John Zaitseff
3ff949efc0
Print the result of the get_yn_answer() function in bold
2011-07-11 13:52:22 +10:00
John Zaitseff
019734c8aa
Rename the function getanswer() to get_yn_answer()
2011-07-11 13:37:48 +10:00
John Zaitseff
36a3811cd1
Add the gettxstring() function
2011-07-11 13:18:26 +10:00
John Zaitseff
60ab28c711
Add the modified status variable to gettxline()
...
Also correct a bug in gettxline() that always returned OK!
2011-07-11 12:28:13 +10:00
John Zaitseff
42e05ee20b
Replace individual colour/window attributes with ATTR_ macros
2011-07-11 11:40:52 +10:00
John Zaitseff
dd281f795b
Add gettxline() to read a line of input from the keyboard
2011-07-11 10:31:19 +10:00
John Zaitseff
85e09ab4f2
Replace calls to wprintw() with waddstr() where appropriate
2011-07-11 08:05:36 +10:00
John Zaitseff
1995a6a7b0
Remove the superfluous argument attr_end from attrpr()
...
Instead of using attr_end, simply restore the old window attributes after
printing the string.
2011-07-11 08:01:18 +10:00
John Zaitseff
5e912e6e14
Plan ahead to reduce the title window to a single line
...
By reducing the title window to a single line, we can fit an extra two
lines of the galaxy map in an 80x24 terminal window.
2011-07-05 10:11:50 +10:00
John Zaitseff
ad4ed4d744
Add input routines gettxchar() and getanswer(); add various macros
...
In particular, add macros for KEY_TAB, KEY_RETURN and KEY_ESC, and for
CURS_ON and CURS_OFF (instead of using CURS_INVISIBLE and CURS_VISIBLE
directly: this allows redefining CURS_ON to be CURS_NORMAL). Add more
colour pairs.
2011-07-04 22:02:01 +10:00
John Zaitseff
568c3738b2
Add the attrpr() function; add a missing va_end() call in center()
...
The attrpr() function prints a string with a particular set of Curses
attributes.
2011-07-04 19:41:55 +10:00
John Zaitseff
ca64093a07
Move definition of "enum curs_type"; rename CURS_VERYVISIBLE
...
Rename CURS_VERYVISIBLE to CURS_VISIBLE to match the system documentation
for Curses.
2011-07-04 19:15:38 +10:00
John Zaitseff
4279467e14
Define the global variable quit_selected
2011-07-04 18:24:10 +10:00
John Zaitseff
ad10fd4af6
Rename company_names[] to company_name[] for consistency
2016-12-09 08:55:09 +11:00
John Zaitseff
9f6c2af671
Define ATTR: select between attributes for colour and mono screens
2016-12-09 08:54:59 +11:00
John Zaitseff
10c4cb2a22
Add a "y" parameter to center(); add the COL_CENTER macro
2011-07-04 17:54:30 +10:00
John Zaitseff
c0943b9f7d
Move (and abstract) the random number functions to utils.c
2011-07-04 17:13:29 +10:00
John Zaitseff
9a39c84bf4
Add source files game.c and game.h
...
These files will eventually contain many of the game functions.
2011-07-04 15:54:39 +10:00
John Zaitseff
4d5c5b70ca
Add the functions init_program() and end_program()
2011-07-04 15:45:03 +10:00
John Zaitseff
4f62ef1b58
Add simple functions to manage a stack of Curses windows
2011-07-04 12:41:30 +10:00
John Zaitseff
2a3e18460e
Rename intto_game_filename() to game_filename()
2011-07-04 10:28:50 +10:00
John Zaitseff
d9ff917835
Rename MIN_COLUMNS to MIN_COLS for consistency with the COLS variable
...
Also define WIN_COLS and WIN_LINES: the current version of Star Traders
will only use this number of lines and columns in a terminal window. All
calls to newwin() need to have COL_OFFSET and LINE_OFFSET added to the X
and Y starting positions to make this work.
2011-07-02 23:19:40 +10:00
John Zaitseff
3aa98f48bd
Add the files help.c and help.h
...
These file will eventually contain help text describing how to play the
Star Traders game.
2011-07-02 21:50:47 +10:00
John Zaitseff
abd196d2c5
Add the basic I/O functions init_screen(), end_screen() and center()
2011-07-02 21:25:57 +10:00
John Zaitseff
0af905e1d9
Use PACKAGE_NAME where appropriate
2011-07-02 21:19:51 +10:00
John Zaitseff
9e4e4b6d11
Add intf.h and intf.c: basic text input/output interface routines
2011-07-02 14:53:45 +10:00
John Zaitseff
6c90801102
Add the err_exit() and errno_exit() functions
2011-07-02 14:23:35 +10:00
John Zaitseff
162062cbfb
Rearrange the __attribute__ compiler directive
...
The __attribute__ compiler directive should be placed AFTER a function
prototype, as per the GNU C Compiler manual.
2011-07-02 14:01:32 +10:00
John Zaitseff
d5951adb4f
Redefine the cursor type as an enum instead of as macros
2011-07-02 12:47:51 +10:00
John Zaitseff
e8590e68eb
Add README files to the src and doc subdirectories
2011-07-02 10:17:03 +10:00
John Zaitseff
e8bdcfe304
Remove premature provisions for internationalisation
...
In particular, remove the use of the "_" macro: real internationalisation
may require this macro in a different form from that used here.
2011-07-02 10:01:37 +10:00
John Zaitseff
ba721ced10
Be stricter about saved game numbers
2011-07-02 09:39:23 +10:00
John Zaitseff
ee94d86b57
Add some more definitions, especially for the Curses library
2011-06-30 21:52:55 +10:00
John Zaitseff
9453cfc402
Use the C99 <stdbool.h> header file
2011-06-30 21:11:36 +10:00
John Zaitseff
3a4c95f927
Add the SysV-compatible curses library
...
The AX_WITH_CURSES macro is taken from the autoconf-archive project,
available at http://www.gnu.org/software/autoconf-archive/ .
2011-06-30 20:31:19 +10:00
John Zaitseff
d6050858d9
Add the __attribute__((noreturn)) function specifier where possible
2011-06-30 16:09:13 +10:00
John Zaitseff
7fa5833fb6
Complete the command line argument processing routines
2011-06-30 15:25:30 +10:00
John Zaitseff
255dc9aa19
Add the process_cmdline(), show_version() and show_usage() functions
2011-06-29 13:15:26 +10:00
John Zaitseff
bdcdf2f131
Add the max_turn, game_loaded and game_filename global variables
2011-06-29 13:09:40 +10:00
John Zaitseff
6910370557
Add various header files
...
Add the system.h header file for all system header includes, and utils.c
and utils.h for various low-level utility functions.
2011-06-15 22:34:28 +10:00
John Zaitseff
ced3697fe1
Add the MAP_LAST enumeration constant
2011-06-15 19:39:07 +10:00
John Zaitseff
ab6f936f3f
Rename the global variables map and move
...
Rename the global array variables map[] and move[] to galaxy_map[] and
game_move[] respectively to prevent clashes with functions from various
libraries (particularly NCurses).
2011-06-15 13:05:14 +10:00
John Zaitseff
18fde51d30
Add global constants, type definitions and variables to the game
2011-06-15 12:55:19 +10:00
John Zaitseff
38d7a0e022
Add missing #include directives
2011-06-14 23:19:58 +10:00
John Zaitseff
c9cf917763
Rename header #define to conform to relevant C language standards
...
Although widely used, macro definitions starting with "__" (amongst
others) are reserved by the C programming language standard for the
compiler and standard header files to use in any way desired.
2011-06-14 23:11:16 +10:00
John Zaitseff
305be1e852
Add a simple main() routine for testing
2011-06-14 23:02:16 +10:00
John Zaitseff
3187aaf10c
Remove superfluous version and date information
2011-06-14 23:01:15 +10:00
John Zaitseff
6a69114d64
Add build infrastructure for basic processing of various subdirectories
2011-06-14 22:55:48 +10:00
John Zaitseff
c79ad6b99d
Add the basic infrastructure required by autoconf and automake
2011-06-14 22:16:26 +10:00
John Zaitseff
c39b6019e2
Remove quote characters surrounding filenames
2011-06-14 21:59:48 +10:00
John Zaitseff
f66fb88c69
Create preliminary versions of the source code and manual page
2011-06-14 18:19:01 +10:00