Tue Dec 26 13:36:27 COT 2000  Alejandro Forero Cuervo <bachue@bachue.com>

        *

Wed Sep 27 11:41:26 COT 2000  Alejandro Forero Cuervo <bachue@bachue.com>

        * Version 0.9 is released.

        * matanza.w (@<Player |p| is inside ...@>, PLAYER_INSIDE): The macro
          PLAYER_INSIDE was added.  Code was changed to use the new macro.

        * matanza.w (@<Move ship for player |p|@>): Now we check the value of
          arg_limits when moving the ship.
          (@<Parse command line arguments@>): We now accept parameter
          `--limits'.

        * matanza.w (@<Parse command line arguments@>): We now accept parameter
          `--no-radar'.  If given, we set arg_radar to 0.
          (@<Variables for the command line arguments@>): Added variable
          arg_radar, defaulting to 1;
          (draw_world): If arg_radar evaluates to false, we don't draw the
          directions to reach players.

        * matanza.w (draw_world): Now before drawing ships, we consider the
          value of their visible attribute.
          (player_input): Command `i' toggles the value of the visible
          attribute of a ship unless it can't be invisible anymore.  This is
          done in macro @<Toggle visibility of player |p|@>.
          (@<Update world@>): If player is invisible, invisible_exp is
          decreased.  When it gets to 0, the player becomes visible.
          (start_game): We set the visible and visible_exp fields of the player
          to 1 and arg_visible_initial respectively.
          (@<Parse command line arguments@>): We accept argument --invisibility
          and store the required_argument in arg_visible_init.
          (@<Variables for the command line arguments@>): Added argument
          arg_visible_init.

Tue Sep 19 22:33:12 COT 2000  Alejandro Forero Cuervo <bachue@bachue.com>

        * matanza.w (@<Initialize world@>): Empty macro removed.
        
        * matanza.w (@<Variables for the command line arguments@>): Increased
          the default values for arg_speed_max and arg_ang_speed_max.

        * matanza.w (mat_bullet_new): When the player runs out of bullets of a
          given type, we show him a message.
          (@<Global variables@>): Added variables mat_bullets_name and
          mat_bullets_hit.
          (@<Bullet |b| hits player |p|@>): Macro added, with code previously in 
          @<Check if position |mx|, |my| hits player |p|@>.  Now, however, when
          a player hits another one, we print a message depending on the type
          of the bullet.

        * matanza.w (mat_image_draw): Fixed assert (matanza.w:3501). Hopefully.

        * shipreal.c (mat_graph_astbig): Variable added.
          matanza.w (@<Initialize environment@>): Now we calculate the
          rotations for the asteroids and flood the world with an initial
          ammount of them.
          (@<Flood with asteroids@>): Macro added.
          (@<Global variables@>): Added variables mat_ast_head and mat_ast_cur.
          (@<Struct definitions@>): Added definition MatAst.
          (@<Move asteroid |b@>, @<Update asteroids@>): Macros added.
          (@<Update world@>): We now do @<Update asteriods@>.
          (@<Variables for the command line arguments@>): Added variable
          arg_ast_num.
          (@<Parse command line arguments@>): Added command line argument
          `--asteroids'.

        * matanza.w (@<Parse command line arguments@>): Removed argument
          --space and added argument --air.
          (@<Variables for the command line arguments@>): arg_space now defalts
          to true.

Mon Sep 18 19:20:55 COT 2000  Alejandro Forero Cuervo <bachue@bachue.com>:

        * matanza.w (SPEED_MAX, @<Variables for the command line arguments@>):
          Variable arg_speed_max was added to replace SPEED_MAX.
          (@<Parse command line arguments@>): We receive argument `--speed-max'
          and set arg_speed_max.  The help information was updated.

        * matanza.w (@<Variables for the command line arguments@>,
          ANGLE_SPEED_MAX): Variable arg_ang_speed_max was added to replace
          ANGLE_SPEED_MAX.
          (@<Parse command line arguments@>): We receive argument
          `--ang-speed-max' and set arg_ang_speed_max.  The help information
          was updated.
          (player_input): When we receive 'h' and 'l', if arg_ang_speed_max is
          0, we leave ship_angle_speed unmodified and rotate the ship.

        * matanza.w (@<Parse command line arguments@>): Now we accept
          parameters `--fly-back', `--brake' and `--space' and set variables
          arg_fly_back, arg_brake and arg_space to 1, 1 and 1 when we receive
          them.  The help information (for `--help') was updated as well.
          (@<Variables for the command line arguments@>): Variables
          arg_fly_back, arg_brake and arg_space added.
          (player_input): When the player enters 'h' or 'l', if arg_space
          evaluates to false, we recalculate ship_speed_x and ship_speed_y.
          When the player enters 'j', if brake evaluats to false we do nothing.
          Also when the player enters 'j', if arg_fly_back and arg_space
          evaluate to false, we never let the ship fly backwards.  When the
          player enters 'j' or 'k' and arg_space evaluates to true, rather than
          just increase ship_speed and recalculate ship_speed_x and
          ship_speed_y, we modify ship_speed_x and ship_speed_y depending on
          the player's angle and recalculate ship_speed.
          (@<Rotate ship for player |p|@>): If arg_space evaluates to true, we
          don't recalculate ship_speed_x nor ship_speed_y.

        * matanza.w (@<Data for a player in the game@>, MatPlayer): Fields
          ship_pos_x and ship_pos_y were changed to type double.

        * matanza.w (@<Functions@>, cos_ang, sin_ang): Added functions cos_ang
          and sin_ang.  All the time we are calculating the sin/cos of one
          angle from a set of arg_ang predefined angles so now we keep a cache
          of these values.  Calls to sin/cos in many places where replaced by
          calls to these functions.

        * matanza.w (@<Data for a player in the game@>, MatPlayer): Fields
          ship_speed_x and ship_speed_y were added.
          (@<Variables for the command line arguments@>): Variable arg_space
          was added.
          (player_input): When we get 'j' or 'k', we also set ship_speed_x and
          ship_speed_y.
          (@<Move ship for player |p|@>): We now use ship_speed_x and
          ship_speed_y.
          (mat_bullet_new): We now use ship_speed_x and ship_speed_y rather
          than ship_speed.
          (@<Set the startup location for player |p|@>): Now we set
          ship_speed_x and ship_speed_y to 0.
          (@<Rotate ship for player |p|@>): We recalculate ship_speed_x and
          ship_speed_y whenever the ship rotates.

Sun Sep 17 10:30:22 COT 2000  Alejandro Forero Cuervo <bachue@bachue.com>

        * matanza.w (@<Player |p| has been killed@>): Rewrite.

        * matanza.w (@<Data for a player in the game@>): Added field team_next.

        * matanza.w (@<Make sure parameters are sane@>): Now rather than bitch
          and refuse to run, this macro bitches and fixes things.

        * shipreal.c (mat_graph_missile): Increased size of missiles 2 and 3.

        * matanza.w (@<Process and discard data for player |p|@>): We no longer
          call key_handler if the character is 0.

        * matanza.w (mat_mainmenu_anim): Fixed cosmetic bug.

        * matanza.w (MAXNAMELEN): Macro renamed to MAT_USER_MAX for
          consistency.  Default value is now 8.
          (MAT_PASSWORD_MAX): Macro introduced.  Default value is 8.
          (@<Main Menu: Draw input fields@>): Now we consider the values in
          MAT_USER_MAX and MAT_PASSWORD_MAX to draw the widgets.
          (mat_mainmenu_key): Now we consider the values in MAT_USER_MAX and
          MAT_PASSWORD_MAX when accepting input.

        * matanza.w (@<Initialize player |p|@>): Added more names.

        * matanza.w (@<Global variables@>): Removed mat_defparams.
          (MatPlayer): Removed field driverparams.

        * matanza.w (start_game, mat_mainmenu_key): Now we print the initial
          messages (calling @<Send a message informing about the new player@>)
          in mat_mainmenu_key rather than start_game.  The same goes for
          setting p->graph_randomval and p->times_dead to 0.

        * matanza.w (start_game): We no longer increase players_real nor set
          the players state.

        * matanza.w (@<Main Menu: Data@>): Added field texterr.
          (mat_mainmenu_key): If an error takes place (eg. the player enters an
          invalid password) we set texterr to a description.  Whenever we
          receive a character, we set it back to 0.
          (@<Main Menu: Draw input fields@>): If texterr is set, we show it.

        * matanza.w (@<Main Menu: Draw input fields@>): If arg_password is
          NULL, we no longer show the widget for entering the password.

        * matanza.w (@<Global variables@>): Added variables mat_bullets_damage
          mat_bullets_speed, mat_bullets_back, mat_bullets_bexp and
          mat_bullets_pexp.

        * matanza.w (mat_ship, mat_missile): Now we allocate space for these
          variables dynamically.

        * (player_input): Now we understand command `n'!

        * matanza.w (@<Parse command line arguments@>): If parameter
          `--no-chat' is used, we set arg_chat to 0.
          (player_input): If arg_chat evaluates to false, we don't let the
          player go into KEY_STATE_BUFFER.
 
        * matanza.w (@<Add a new team@>): Macro added.
          (@<Struct for the teams@>): Type added.
          (@<Variables for the command line arguments@>, arg_teams): Variable
          added to hold the head of the list of teams.
          (@<Parse command line arguments@>): We now recognize argument
          `--team'.
          (@<Main Menu: Data@>): Added filed team.
          (@<Main Menu: Draw input fields@>): If the game is in teams mode, we
          display the currently selected team.
          (@<Variables for the command line arguments@>, arg_teams_safe):
          Variable added, defaults to 0.
          (@<Move bullet |b|@>): Bullets don't hit players of the same team as
          the one who shot them if arg_teams_safe evaluates to true.
          (@<Parse command line arguments@>): If we receive parameter
          `--team-safe', we set arg_teams_safe to 1.

        * matanza.w (@<Main Menu: Draw input fields@>): Size for the password
          was increased.  If no password was specified using the command line
          arguments, we don't prompt for it.
          (@<Global variables@>, arg_password): Variable added.
          (@<Parse command line arguments@>): We now look for option
          `--password' and, if specified, set arg_password.

        * matanza.w (@<Main Menu: Begin@>): Small optimization. No need to call
          mat_graph_render and mat_graph_flush here.

        * matanza.w (mat_bullet_new, player_input): The prototype of
          mat_bullet_new has changed.  Adjustments made on player_input.  The
          return value of mat_bullet_new was fixed.

        * matanza.w (@<Data for bullets@>): Added field angle to MatBullet.

        * matanza.w (@<Check if position |mx|, |my| hits player |p|@>): Fixed
          sprintf with invalid conversion type.

        * matanza.w (mat_image_draw): Added a cast.

        * matanza.w (@<Parse command line arguments@>,
          @<Make sure parameters are sane@>, ANG): Added command line argument
          arg_ang.

        * shipreal.c (mat_missile): Added images for two more kinds of
          missiles.

        * matanza.w (@<Make sure parameters are sane@>): Macro added to check
          for the values from the command line arguments and report errors.

        * matanza.w (ship_bullets, ship_missiles): We removed field
          ship_missiles from the MatPlayer struct and now we use an array
          ship_bullets for the different kinds of bullets.

        * matanza.w (mat_image_draw): Fixed asserts.

        * matanza.w (@<Parse command line arguments@>, arg_lives): Now we
          accept parameter `--lives'.

        * matanza.w (@<Player |p| has been killed@>): If a player runs out of
          lives, he is sent to the main menu.

        * matanza.w (player_input): Fixed a bug: When a player hit `p', his
          ship would start to rotate to the right.

Thu Sep 14 21:12:47 COT 2000  Alejandro Forero Cuervo <bachue@bachue.com>

        * Version 0.6 is released.

        * matanza.w (@<Check if position |mx|, |my| hits player |p|@>,
          mat_image_draw): Fixed asserts.

Tue Sep 12 19:56:06 COT 2000  Alejandro Forero Cuervo <bachue@bachue.com>

        * Version 0.5 is released.

        * matanza.w (mat_player_free): Now we show the right version number.

        * matanza.w (draw_world): The background is now drawn before everything
          else.

	* matanza.w (@<Initialize player |p|@>): We now give the player a
	  default initial name, randomly chosen from a list.

	* matanza.w (@<Player |p| has been killed@>): When a player dies, we
	  don't send it to the main menu but have him reappear.  Also, we
          increase her variable times_dead.

        * matanza.w (@<Data for a player in the game@>): Added field
          times_dead to hold a count of the number of times the player
          has died.

	* matanza.w (@<Parse terminal speed@>): Changed some code I could no
	  longer understand (in one assert; probably harmless).

	* matanza.w (start_game, @<Initialize player |p|@>): Now we initialize
	  the structs for the messages in @<Initialize player |p|@>.

	* matanza.w (@<Player |p| has been killed@>): Now we show the number of
	  times the player has died.

        * matanza.w (@<Initialize environment@>): We initialize the rand()
          seed depending on the time.

        * matanza.w (mat_image_draw): Added a lot of casts to pos_x and pos_y
          and fixed an assert that had an `or' instead of an `and'.

        * matanza.w (@<Move bullet |b|@>): Bug fix.

        * matanza.w (@<Set the terminal control codes@>, mat_flush): Bug fix
          related to white backgrounds.

Sat Sep  9 04:40:50 COT 2000  Alejandro Forero Cuervo <bachue@bachue.com>

        * Version 0.4 released.

        * matanza.w (@<Fill buffer according to the distance in |x| and |y|@>):
          Adjustments made to keep things working when the player specifies
          different map sizes.

        * matanza.w (@<Player |p| is inside of the screen of player |self|@>):
          Bug fix.

        * matanza.w (mat_image_draw): Bug fix.

        * matanza.w (@<Parse command line arguments@>, arg_health,
          arg_mapsize_x, arg_mapsize_y, INITIAL_HEALTH, MAPSIZEX, MAPSIZEY):
          Now we use command line options `--health', `--mapsize-x' and
          `--mapsize-y', storing their arguments

        * matanza.w (@<Check if position |mx|, |my| hits player |p|@>): Bug
          fix.

Fri Sep  8 12:51:34 COT 2000  Alejandro Forero Cuervo <bachue@bachue.com>

        * matanza.w (mat_ship): Variable is now of type MatImage.  Many
          adjustments made on code that referenced it.

        * matanza.w (@<Make palettes@>, mat_ship_palettes): Added code to use
          different palettes when drawing images.

        * matanza.w (MAT_GRAPH_IMGWIDTH, MAT_GRAPH_IMGHEIGHT, arg_imgwidth,
          arg_imgheight): Now we use arg_imgwidth and arg_imgheight instead
          of the hard-coded definitions before.

        * matanza.w (@<Parse command line arguments@>): If we get --imgwidth or
          --imgheight, we store the arguments in arg_imgwidth and
          arg_imgheight respectively.

        * matanza.w (@<Parse command line arguments@>): Now we understand
          parameter --version.

        * matanza.w (@<Draw ship for player |p| in screen for player |self|@>):
          Now we simply call mat_image_draw.

Thu Sep  7 10:12:55 COT 2000  Alejandro Forero Cuervo <bachue@bachue.com>

        * matanza.w (mat_animation_cancel, mat_mainmenu_key): We now
          ignore '\r'.  This was a bug because some clients sent '\r\n'
          when RET was pressed so the server considered it two RETs.

	* matanza.w (@<Build tables used for rendering@>,
          @<Get the maximum and minimum values for all the characters@>):
          Variable supported was removed; now we use MAT_GRAPH_SUPPORTED
	  everywhere.

        * matanza.w (@<Variables for the command line arguments@>): Variable
          arg_bold added.  It defaults to false.

	* matanza.w (@<Parse command line arguments@>): If the user specifies
	  `--bold', set arg_bold to true.  It will be false otherwise.

	* matanza.w (MAT_GRAPH_SUPPORTED): If arg_bold evaluates to true, use
          bold characters.

	* matanza.w (player_input): Bug fix in the code for launching missiles.

        * matanza.w (player_input): Fixed invocations of mat_bullet_new.

        * matanza.w (mat_bullet_new): Now we accept a new parameter, img, to
          set the image used for the bullet.

        * matanza.w: @<Make calculations for the game@> was renamed to
          @<Rotate the ship in the different angles@>.  The invocation at
          @<Initialize environment@> was fixed.

        * matanza.w (@<Rotate the missile in the different angles@>): The
          macro was added.  It is called from @<Initialize environment@>.

        * matanza.w (@<Data for an image@>): Struct added.

        * shipreal.c (mat_graph_missile): Variable added.

Tue Sep  5 20:25:39 COT 2000  Alejandro Forero Cuervo <bachue@bachue.com>

        * matanza.w (mat_flush): Bug fix, the cursor was moved to the wrong
          position sometimes.

        * matanza.w (player_input): Made it possible to shot bullets backwards.

        * matanza.w (mat_bullet_new): Function added to reuse code to create
          bullets.

        * matanza.w (mat_player_free): Now we decrease players_real here.

        * matanza.w (mat_graph_resize): The line at the bottom is now used.

Mon Sep  4 19:55:06 COT 2000  Alejandro Forero Cuervo <bachue@bachue.com>

        * First release.

