2000-05-08 Ali Abdin * doc/C/glife.sgml: The telsa we all know and love has contributed updated gLife docs :) Goodness to her. * Makefile.am: Add BUGS and FAQ to the EXTRA_DIST stuff * glife.spec.in, glife.spec: Fix a typo (locale instead of local) 2000-05-07 Ali Abdin * NEWS, FAQ, BUGS, configure.in: Updated in preperation for 0.2.1 * src/conf.c: (preferences_cb) Fix a bug with the reproduction rule toggle not being set correctly * src/glife.glade: Do not make the 'Pause' button sensitive by default * src/simulation.c: (do_update) use an AnimalType variable and set it to tmp->data. That way we don't do tmp->data only once. Also put in a for loop around the random_movement so animals move multiple times depending on their speed. 2000-04-26 Ali Abdin * src/glife.c: Internationalized a couple of strings 2000-04-12 Ali Abdin * po/ru.po, glife.spec, glife.spec.in, configure.in: Added 'locale stuff' for our first translation :) Russian :) * src/data.[ch], move.c: Added a 'pointer' in the 'terrain' structure. (animal_at) Now uses the 'AnimalType *' pointer in the terrain structure causing major speed-ups :) Also remove unused variables (move_animal) Properly update the pointers when animals move * src/data.c: (animal_exists) Put a couple g_assert's 2000-04-09 Ali Abdin * TODO: Updated again (woo - getting smaller). Also removed the DONE section * src/drawing.c: (render) Fill with white before re-rendering. * src/conf.[ch], src/Makefile.am: Two new files to handle preferences/configuration. It was becoming very big and clutters the glife.c file. Fixed a bug - colors now do not change on color_select - only when you click okay. Updated to reflect new additions to glife.glade * src/reproduction.[ch], src/Makefile.am: New file + code to handle reproduction stuff (finally) :) * src/glife.glade: Change the default timeout to 2000, added a few extra config options for reproduction * src/data.[ch]: Maximum age calculation moved from add_animal to add_ranimal (to allow animals to inherit maximum age) Fixed a 'possible' buglet to make sure Male/Female selection is 50/50 (animal_at) Remove g_assert's - just return NULL if its out of range (del_animal) When we delete an animal, make sure its reflected on the terrain. I hate linked lists. I fixed something else here and I don't know what it is * src/simulation.c: (do_update) Integrate reproduction into main loop * src/*.*: Warning-squishing hunt (no more warnings) * configure.in: version bump to 0.2.0 - Also do not care about the libglade version number. * doc/C/glife.sgml: Update the docs to reflect the 0.2.0 version * FAQ: added a couple 'potential' questions :) * glife.spec.in: Include documentation (I think this is how its done) 2000-04-08 Ali Abdin * TODO: I spent /several/ hours hacking on one a 'TODO' item. After it was all done - I noticed a problem that had happened to me back on a similiar project I did a while back. This sucks. I hate hacking for several hours, fixing bugs, getting everything to work just perfectly only to find that I can't use it due to a fundamental design flaw in that approach. * src/glife.c: Ack - I never did try a 'make install' - would cause segfault due g_free'ing a string that wasn't strdup'd. Thanks to drake on #gnome for finding this. * src/glife.c: (glifedocu_cb) Use ghelp instead of file * src/glife.c: (preferences_cb) Restore spin button of reproduction age properly (also found by drake) 2000-04-07 Ali Abdin * src/glife.glade: A minor touchup * src/glife.h: Fixed the RAND macro to be 'x' to 'y' as opposed to 'x' to 'y-1' * src/drawing.c: Fixed a major rendering bug that prevented animals being drawn in the first column/row (didn't notice cos I never tried '625' animals) * doc/glife.sgml: Updated to use PNG docbook stuff, fixed an error, and did a small hack to the copyright stuff * TODO, BUGS: Updated :) * glife.c, drawing.c, simulation.c: Do not re-render on expose events. Only re-draw to the GtkDrawingArea. Only re-render when the data has changed. This was the last 'major' problem I was facing :) * doc/*: Plugged in the glife.sgml documentation stuff :) gnomeicu source helped me out with this :) * src/glife.c, src/feedback.[ch]: Can now get information about individual animals through the buttons on the main screen. * src/glife.c, glife.glade: Show the about box /after/ we add the URL. * src/glife.c, glife.glade: Added 'gLife Documentation' to menu. (glifedocu_cb): callback for the documentation in the help menu 2000-04-06 Ali Abdin * My apologies for not commiting. Lost linux and just finally was able to get it back. Hacking shall resume :) * *.*: sync up 2000-02-28 Ali Abdin * src/glife.[ch], data.c, simulation.c: Created and used a RAND macro. * src/glife.c: Fixed typo problems due to cut&paste. * src/move.c: (choose_direction_and_move) Fixed a problem with animals moving to the right more than they should. braino * src/glife.c: (end_cb) re-instated policy of 'no end simulation' until timeout is off (i.e. animals stop moving) * src/glife.glade: Added UI support for getting terrain and animal information. 2000-02-24 Ali Abdin * src/glife.glade, src/data.[ch], src/glife.c, src/simulation.c: Made maximum age a 'random' value between two user-configurable values * src/glife.glade: Preliminary support for reproduction (only in config - no actual support code yet). * src/glife.c: (about_cb) Added a href to the about box to gLife's website - Code borrowed from Tom Gilbert from gnome-devel mailing list * src/glife.c (end_cb) src/simulation.c (start_simulation): Can now end simulation without pausing (this hack dedicated to telsa). * src/glife.c: Added a few g_free's to free g_strconcat stuff. * TODO: updated a bit * doc/devel-notes.txt: Added "proper" Random number algorithm 2000-02-24 Ali Abdin * src/glife.c: Let the config options load before the UI. * src/glife.c, src/simulation.h, src/glife.glade, src/drawing.c: Renamed the 'Colors' section to 'Display' Can now enable/disable specific parts of the display (specifically, grid, terrain, and animals can now be enabled/disabled UI-wise). This is a good thing cos u can disable grid and/or terriain for for better speed :) * TODO: Updated * Makefile.am: 'make distcheck' will now add the .spec file (borrowed from bug-buddy) * configure.in: Version bump to 'distinguish' CVS between prior releases. 2000-02-22 Julian Missig * glife.spec.in: Created. It seems to work for me. * configure.in: Generate glife.spec from glife.spec.in 2000-02-22 Ali Abdin * src/Makefile.am: Install into 'Games' section instead of 'Applications' menu. * src/glife.c: If $(prefix)/share/glife/glife.glade is not found it will use the 'PWD' env variable instead to load glife.glade file * NEWS: Updating as I go along :) 2000-01-29 Ali Abdin * src/*.c: Removed canvas.c and canvas.h. Removed the #include's from all the .c file's :) Wheee, we're free of the big bad canvas. * src/drawing.c: Added a few gtk_main_iterations to make it unblock. Added libart #include's to avoid warnings. * TODO: updated (removed two items - wheeeeeee) * src/move.c, src/drawing.h, src/data.h, src/data.c: Removed MAXX and MAXY #define's from data.h - Moved MAXCOL and MAXROW #define's from drawing.h to data.h - Changed .c files to reflect the renaming. * src/data.[ch]: Removed erase_terrain function. Updated the prototypes and externs to reflect the change of animal_init and terrain_init to _setup equivelants * src/data.[ch], src/move.c: Addition of a 'occupied' value in the Terrain structure. New animal_exists function that uses this (faster). Updated move.c to set/reset this value. * src/glife.c: (end_cb) Chaned from erase_terrain to init_terrain_data (restart_cb) ditto (load_ui): Remove unused variables Added feedback.h to avoid warning. Added \n to a few messages (ending/restarting a simulation) * src/glife.[ch]: Removed the GnomeCanvas from the glife structure Added R_, G_, B_, A_ to extract individual colors from a RGBA value Modified a bunch of functions to use the R_ G_ B_ A_ macros and removed the [malecolor|femalecolor|terraincolor]_[r|g|b|a] variables * src/simulation.c, src/data.c: Addition to a log2screen option in the ruleset and do not print out initial creation of animals. 2000-01-28 Ali Abdin * doc/devel-notes.txt: Fixed raph's typo :) (we need an Artificially Intelligent cut&paste command) * Makefile.am, intl/*: Fixed my gettext set-up (re-installed) so i re-added the intl directory. This means you can now use the --with-included-gettext option /I THINK/ - i've never needed this, buts its a GNOME thing :) * src/glife.glade src/drawing.c: fixing the size of stuff * src/data.[ch]: Remove the 'ellipse' item from the terrain - rename terrain_init to terrain_setup. Added init_terrain_data function. Removed the 'ellipse' item from animals too. Removed animal_init() and created animal_setup() Reverted to an old (slower) form of animal_exists which doesn't depend on the canvas * src/glife.c: (load_ui) Added some bits to test rendering. (ok_changes_cb) Reflect the removal of the ellipse item * src/move.c: (move_animal) Reflect the removal of the ellipse item * src/drawing.c: Added a generic get_circle_svp (for sharing between terrain and animals). Added a render_terrain_to_buf and added it to render(). Rendering on expose-event everytime is /expensive/. Aha - taking out a g_print made it /considerably/ faster ;) still slow though (especially when I begin to render animals too). Created a render_animals_to_buf and added to render() Added art_free and art_svp_free's to stop the major memory leaks. The application is now usable again :) * src/simulation.c: (start_simulation) Replaced terrain_init and animal_init to the _setup equivelants 2000-01-26 Ali Abdin * src/drawing.h: Went to aligned GdkRGB which is rumored to be 20% faster - so i'm using it. Played around with width/height to try and get the last vertical line drawn - aint workin (will try tomorrow) * src/drawing.c: Changed the way rendering works to always (and only) render on expose events. That stops the crashes and is more efficient (thanks to mathieu on #gnome at irc.gimp.org) Now the rendering to drawing area works. The grid also works!!! :) props go out to mathieu AGAIN he saw a typo in the code that raph gave me (It's the type of typo that your mind just doesn't recognize as a typo and it LOOKS correct) * src/glife.c: connect drawing area signal to expose event - remove render function and put inside the callback (in drawing.c) 2000-01-26 Ali Abdin * src/Makefile.am: please compile/include drawing.[ch] * src/drawing.c: Work on rendering the grid * src/glife.c: Some gdk_rgb initialization stuff in main. Some test code for rendering. * Code Crashes - I got no clue why - I /HATE/ that 2000-01-25 Ali Abdin * Forgot to mention addition of doc directory with just some devel-notes so i don't forget about them :) * src/glife.glade: Changed from a canvas to a drawable - This breaks the program. Onto working on using GdkRGB buffer * src/glife.c: Commented out some code so the application can at least run without spewing tons of error messages * src/drawing.c, src/drawing.h: New files. Started working on drawing the grid (first stab at it) 2000-01-03 Ali Abdin * NEWS, configure.in: 0.1.2 magic before vacation :) * src/simulation.c (do_update): Uggggh deleting old animals then trying to move them - taking out deletion of old animals out of the while loop entirely - this means a major re-write of kill_old (and removal of kill_ifold). This is a crude hack. * src/feedback.c, src/feedback.h: Two new files for logging to the textbox * src/simulation.c, src/data.c: Adding log messages in a few places (along with freeze/thaw in some places) * src/glife.glade: Removed 'dummy' message from textbox, also added accelerators, but for some reason they don't show up (Ctrl-S Start simulation and Ctrl-R Restart simulation) * src/glife.glade, src/glife.c, src/data.c, src/simulation.c: Implemented 'End Simulation' and 'Restart Simulation' * FAQ: Added FAQ 2000-01-01 Ali Abdin * configure.in: Used gnumeric's libglade detection code (and modified it to suit my needs) * src/Makefile.am: Added $(GNOME_INCLUDEDIR) to the includes. 1999-12-31 Ali Abdin * src/simulation.c, src/move.c: Iterate over the animals only ONCE in do_update, instead of iterating over them in EACH function (much more efficient) * src/data.c, src/move.c: Implemented a (hopefully) more efficient animal_exists function. This makes 2 implementations (should benchmark these and compare). The disadvantages of this: Need to update canvas every turn (A mis-intended feature) * configure.in: Will fail if you don't have libglade-config 1999-12-30 Ali Abdin * src/glife.glade: Re-did layout almost from scratch - It's bigger by default (which means more room for text box). Now uses a button box and 'panes' (so you can choose your own size of canvas vs. text box) * src/README: Updated 1999-12-28 Ali Abdin * src/glife.glade: Changed GnomeLess widget (for files) to the PROPER output widget (Textbox). 1999-12-27 Ali Abdin * NEWS, configure.in: 0.1.1 version bump * BUGS: Updated * src/canvas.c: Small fix to draw grid from 0.0 (a pixel was missing there) * src/glife.c: Config bugfixes (no longer can create multiple preference boxes and when you set the terrain color and you haven't started the simulation yet, you don't get all those warnings/assertions) * src/glife.glade: Lowered defaults * src/move.c (random_movement): Wow, placed a 'flush' of all Gtk+ events here and you get A) better responsivness from the client (slow to quit durign update) AND B) You see each individual animal moving :) (choose_direction_and_move): Implemented the proper rule for moving * src/move.c: Improved the 'flushing' hack to update animals in 'blocks' meaning, we get similiar functionality as before, but quit happens quickly * src/move.c src/data.c src/animal.c: Fixes to rely less on animal_at where the program spends the majority of its time - This means much more efficient. Also changed animal_exists to use animal_at (instead of doing the exact same thing). This needs to be replaced. See TODO. * TODO: Updated to reflect some thing I'd like implemented. Removed DONE items. 1999-12-26 Ali Abdin * 0.1 Release * src/Makefile.am, src/glife.c: Made the glade file readable from the datadir (code borrowed from bug-buddy) * src/Makefile.am, glife.glade: Moved to src/glife.glade for installation purposes * src/glade-strings.c: New file just for i18n purposes 1999-12-25 Ali Abdin * glife.glade: UI Fixup * src/*: Certain touch-up to pass 'make distcheck' (getting ready for 0.1 release) * Lots of CVS cleaning up done (removal of unnecessary files) * configure.in: Changed version numbering from 0.0.x to 0.x * TODO, README: Updated * src/Makefile.am: Added move.c and move.h * src/simulation.c, move.c, move.h: Moved movement stuff into separate files * src/move.c (random_movement): Less random but works - will think about and work on later. 1999-12-24 Ali Abdin * src/simulation.c (random_movement): Movement always occurs unless an animal is "stuck". This has broken the choose_direction_and_move function badly. Will fix later (need to re-think it) * CVS Mangled a LOT of things up - everything /SHOULD/ be back as it was * .cvsignore's added in various dirs 1999-12-23 Ali Abdin * BUGS: Added BUGS file * src/glife.c,data.c,simulation.c: Comment out debugging stuff * src/glife.c (on_continue): Use the user-configured value for timeout * src/simulation.[ch] (random_movement): Incorrectly used '0' as first column index. Moved declaration of direction into while loop. * src/simulation.[ch]: Changed MovementType to MoveType. Added assertions to move_direction. (random_movement): First stab at implementing some random movement (choose_direction_and_move): Needed by random_movement. First stab. (do_update): Random Movement always happens in an update (move_direction): Major fix-ups. * src/simulation.c: Ugggh got very confused between x and y - shouldn't have used 'x' and 'y' shoulda used 'row' and 'column' instead. Patches accepted. ;) (random_movement): fixed from the above comment 1999-12-22 Ali Abdin * src/data.h: extern the animal_at function * src/simulation.[ch]: implemented move_direction function, includes new enumerated data type (MovementType) - does not handle errors 1999-12-18 Ali Abdin * src/data.[ch]: Make animal_exists function 'global' * src/simulation.[ch] (move_animal): New function to move animals * src/data.c (animal_at): Fixed potential bug (range problem) * TODO: New item 1999-12-17 Ali Abdin * TODO: Added items * glife.glade: Reshuffling of the UI * src/glife.c: src/simulation.[ch]: New structure for config options. Added age rules to config options. Can now pause/continue properly. Added "timeout" to config options and implemented it * src/glife.c: src/data.[ch]: Number of initial animals is now customizable. * src/data.c (animal_init): Fixed bug where the number of animals is not honored due to an alredy existing animal. (animal_init, add_ranimal, animal_exists): Fixed bug to allow drawing on row/col 25 (draw_terrain, animal_init): Status is reflected in the GnomeAppBar (del_animal): Fixed deletion of animals (works properly now) * src/simulation.c (do_update, kill_old): Old animals are killed if age is enabled * src/glife.c (preferences_cb): Config options now "remembered" during program life. * src/*.*: Fix all compiler warnings 1999-12-16 Ali Abdin * Initial CVS check-in