Protocol: | pserver | User: | anonymous |
Machine: | crossfire.cvs.sourceforge.net | CVSROOT: | /cvsroot/crossfire |
Filename: special.c | |||
Revision 1.24 | tchize | 2006/04/06 16:18:35 | +2 -2 |
finished common/arch.c unit test, fixed a few bugs, moved function around and renamed other | |||
Show difference between Revision 1.23 and 1.24 | |||
Revision 1.23 | mwedel | 2005/11/16 02:16:08 | +3 -3 |
Commit for new blocking code. Not going to dictate all the changes - but will outline the broad points. Note also that the doc/Developers/objects is updated and goes into more details also. - check for P_WALL no longer used - instead, need to use GET_MAP_MOVE_BLCOK and check against movement type of objects. - arch_blocked() changed to ob_blocked(), now takes object. Needed because just looking at archetype move_ values is no longer sufficient. - find_first_free_spot() changed to take object, since it just calls arch_blocked() - FLAG_FLYING removed, now in move type. - walk_on/walk_off/fly_on/fly_off removed - now based on move_on and move_off fields. - Map space structure extended to hold the move_on/move_off, etc values so that we can shortcut some processing by not having to check every object on the space when something enters it if move_on isn't set. - archetypes recollected - boulders needed move_walk to properly trigger buttons. - Note that the new plugin code has to be fixed up for the new movement code. Look for FIXME in plugins/cfpython/cfpython_object.c MSW 2005-11-15 | |||
Show difference between Revision 1.22 and 1.23 | |||
Revision 1.22 | akirschbaum | 2005/10/28 14:08:53 | +6 -1 |
Fix compiler warnings. Most changes do not change the program (remove unused variables, convert "if(x = y)" into "x = y; if(x)"); a few actually fix (possible) problems (fix uninitialized variables, fix printf format specifiers, fix mismatches between signed and unsigned variables, add missing return and default statements). | |||
Show difference between Revision 1.21 and 1.22 | |||
Revision 1.21 | mwedel | 2005/04/14 01:57:02 | +2 -2 |
Random map code improvements - add support for subdirectories in the style maps for random maps. Add difficulty_increase parameter for random maps to control how fast they get harder. doc/Developers/random-maps: Add notes about difficulty_increase parameter. random_maps/Makefile.am: Update proto directive to use cproto, not cextract. random_maps/random_map.c: Update to use difficulty_increase when figuring difficulty of maps. Add code to save it in list of parameters. random_maps/random_map.h: Add difficulty_increase field to structure. random_maps/reader.l, reader.c: Add code to find difficulty_increase parameter. random_maps/rproto.h: rebuilt. random_maps/special.c: Pass in difficulty increase to write_parameters_to_string() random_maps/style.c: Remove old scandir - replaced by our own load_dir() - necessary because we need to check type of files, which scandir doesn't easily let us do. Since it is now our own routine, just return array of file names instead of dirent structures. MSW 2005-04-13 | |||
Show difference between Revision 1.20 and 1.21 | |||
Revision 1.20 | temitchell | 2004/08/07 18:24:13 | +2 -2 |
added fix for random maps with single arch walls, added level indicator on random map signs added new parameter 'exit_on_final_map'- see documentation addresses patches 983780 and 983716 | |||
Show difference between Revision 1.19 and 1.20 | |||
Revision 1.19 | mwedel | 2003/03/07 01:33:13 | +3 -3 |
Various bug fixes. crossedit/Attr.c: Minor cleanup to eliminate some compile time warnings. plugin/plugin_python.c: Remove some unused variables, thus fixing up some compiler warnings. random_maps/random_map.c, random_maps/random_map.h, random_maps/special.c: Add MIN_RANDOM_MAP_SIZE values instead of hardcode constants. server/monster.c: Fix communicate - odd bug can be map gets swapped out just after player is transferred to another map, causing crashes as map that was originally spoken on is no longer in memory. server/rune.c: add missing free_object call when erasing runes. server/skills.c: Change write_on_item to determine type of writing based on content of mesage, or lack thereof, and not the marked object. Fix problem of buf not being initalized. MSW 2003-03-06 | |||
Show difference between Revision 1.18 and 1.19 | |||
Revision 1.18 | mwedel | 2003/02/12 02:04:30 | +2 -2 |
random_maps/special.c: Fix possible bug with placement of special maps. MSW 2003-02-11 | |||
Show difference between Revision 1.17 and 1.18 | |||
Revision 1.17 | mwedel | 2002/09/07 00:55:18 | +63 -60 |
More bugfixes: common/loader.l, loader.c: Fix up the handling with speed with respect to style maps - the objects were still getting put on the active list. common/map.c: Fix up blocked_link() to behave more like the blocked_two() function - inventory checkers and door handling. Comment out blocked_two since it isn't used anymore. Modify load_objects to remove objects on style maps from the active list. Remove some of the debug messages about map loading. common/object.c: Add remove_from_active_list() function for use in map.c to remove objects from active list. common/porting.c: Comment out debug message if open_and_uncompress() can open a file - caller of the function should print out messages, and it really isn't much of an error in any case. include/libproto.h: rebuilt. random_maps/special.c: Modify place_special_exit() - this should fix bug of very large treasure maps - problem was if the generated map size was too small, when generate_random_map was called, it would generate a newly sized map that was much larger. Code was also re-arranged some to make it a little more readable. server/attack.c: Fix crash when creature may not have an owner and it kills something else. server/move.c: comment added - no code change. socket/request.c: Fix off by one error in esrv_send_animation() - rare condition as it only showed up when trying to send the last animation (zombie) - only an issue if the player is put on top of a zombie for some reason (no other space for them) - observed when leaving the random dungeon in the undead church in scorn without clearing out all the zombies first. MSW 2002-09-06 | |||
Show difference between Revision 1.16 and 1.17 | |||
Revision 1.16 | mwedel | 2002/07/14 23:25:40 | +3 -3 |
Update banner copyright with proper contact information. MSW 2002-07-14 | |||
Show difference between Revision 1.15 and 1.16 | |||
Revision 1.15 | mwedel | 2002/06/07 02:00:44 | +2 -1 |
Mostly bugfixes. I'm not sure if this will fix the disappearing arch problem- none of the changes made in the original multiple name would seem to cause it, so hard to say if any of these changes may fix it. -- common/arch.c: Change get_archetype_by_name to be more efficient and not leak memory. Modify code that frees all archetype data to free the name_pl information. Make sure the clone.name_pl is set to NULL. When singularites are created, set the name_pl for them. common/loader.l, common/loader.c: Modify code that fixes up name_pl to be more correct when it fixes up name_pl for old objects. common/map.c: Modify load_map_header so that tile_paths will be normalized - need for editor to be able to load maps that have a multipart object that spans the maps. crossedit/Edit.c: Modify some calls of out_of_map to OUT_OF_REAL_MAP, since tiling code really isn't fully in place for the editor. Modify EditPerformFill so that it actually works and doesn't crash the editor. include/global.h: Move FREE_AND_COPY macro from loader.l to here so that all source code files can use it. lib/adm/map_info: Modify to actually be able to examine just a sub portion of the map directories, and not all of them. Don't always show the unused objects - information isn't very interesting if only a portion is being examined. Modify the exit examining code to properly deal with random maps (if there is a finalmap component, make sure that does exist.) Loade the bmaps file and not the faces file to find valid faces. plugin/plugin_python.c: Add missing %s that described what script was actually loaded. random_maps/special.c, server/alchemy.c, server/c_misc.c, server/gods.c, server/login.c, server/player.c, server/spell_effect.c: Set up proper name_pl value for code that changes the name of objects. server/apply.c: Use FREE_AND_COPY to set up names. Set up proper name_pl values for cases that change name. In apply_lighter, call fix_player if player is lighting an object in his inventory - necessary for the players glow_radius to get updated so the change actually takes effect. socket/request.c: Modify esrv_map_scroll so that it properly clears cells that are moving out of view - failure to do this was resulting in the map1a updating these spaces with empty faces. This was causing fog of war wackiness with the client. MSW 2002-06-06 | |||
Show difference between Revision 1.14 and 1.15 | |||
Revision 1.14 | garbled | 2001/09/26 19:07:22 | +3 -3 |
Fix two problems in this code where WIDTH was used rather than height. The fountain one was possibly harmless, but the special_exit function was causing an infinate loop when trying to generate some maps. garbled 2001-09-26 | |||
Show difference between Revision 1.13 and 1.14 | |||
Revision 1.13 | mwedel | 2001/07/13 23:08:06 | +17 -17 |
Map tiling checkin. random_maps/decor.c,random_maps/door.c, random_maps/exit.c, random_maps/floor.c,random_maps/monster.c,random_maps/special.c, random_maps/standalone.c, random_maps/style.c,random_maps/treasure.c, random_maps/wall.c: modified to use modified insert_ob_in_map function, use new macros to access map structure related data MSW 2001-07-13 | |||
Show difference between Revision 1.12 and 1.13 | |||
Revision 1.12 | mwedel | 2001/06/04 01:41:02 | +16 -16 |
Checkin of code that supports larger map sizes (configurable in config.h). common/los.c: update los code since it only handled 11x11 maps. Now uses formulatic approach so any map size should be supported. This does result in a few more spaces getting blocked around corners, but it doesn't seem that bad - certainly not compared to the ability to have larger viewable maps. common/map.c, crossedit/CrEdit.c, crossedit/Edit.c, include/global.h, include/map.h,random_maps/monster.c,random_maps/special.c, random_maps/standalone.c, server/apply.c,server/c_misc.c, server/spell_effect.c,socket/info.c: change mapx,mapy to what they really point to, as it prevented using those as variable/structure element names. common/object.c: update_position - if faces for different layers are duplicate, set the duplicates to be blank to increase client update efficiency. doc/Protocol: Add map1 command description, update setup command to describe setting of mapsize. include/config.h: add MAP_CLIENT_X/Y to set maximum map size we can send to the client. include/newserver.h: add mapx, mapy values to socket structure include/player.h: Use MAP_CLIENT_X/Y for sizing arrays that hold map related information in player structure. server/player.c: As per player.h above, use appropriate sizing when initializing player stucture. server/shop.c: Update mapx,mapy like above, but re-do shop listings code as it was doing a lot more work than necessarily (I think some changes got put in for sorting, and the old object manipulation was never removed when that got done) socket/init.c: set default client map size to 11x11 in the socket. socket/item.c: LookAt - change checks for position checking (such that you can only look at things in bounds) use max viewable map size. socket/request.c: Make setup commands a little more forgiving if there are extra spaces. Add 'mapsize' command to setup command. Update old map sending code to use socket map sizes (to support even smaller than normal maps, or 13x13 or 15x15 maps). add draw_client_map1 command which implements the map1 protocol command. MSW 2001-06-03 | |||
Show difference between Revision 1.11 and 1.12 | |||
Revision 1.11 | peterm | 2000/12/18 00:15:05 | +9 -3 |
Fixes for random maps: 1) Spirals won't dump you into walls anymore 2) endless loop bug fixed PeterM | |||
Show difference between Revision 1.10 and 1.11 | |||
Revision 1.10 | peterm | 2000/12/14 21:09:19 | +101 -100 |
PeterM: Fixed up random map code. Used a lot of global variables for stuff. Always meant to fix it and just got 'round to it. | |||
Show difference between Revision 1.9 and 1.10 | |||
Revision 1.9 | cvs | 2000/12/03 18:40:05 | +4 -4 |
Checking for partial resistance code. Various minor errors also fixed (compiler warnings, unused variables, Makefile.in changes, etc). PR code also includes support to send protections to the client. | |||
Show difference between Revision 1.8 and 1.9 | |||
Revision 1.8 | peterm | 2000/06/20 23:54:57 | +30 -2 |
Fixed a problem in treasure.c which would cause an infinite loop. Added two new special-exit types to special.c --PeterM | |||
Show difference between Revision 1.7 and 1.8 | |||
Revision 1.7 | cvs | 2000/06/18 20:34:31 | +62 -7 |
Lots of work done on random maps. decor.c: tiling option added. (Fill the whole map). monster.c: copy inventory exit.c: preserved connectedness random_map.c: new function for wrting map params floor.c: fix a crashing bug if there's no floor rproto.h: prototypes treasure.c: fix a crashing bug with treasurestyle map special.c: added a new type of special, an exit to a goldroom. --PeterM | |||
Show difference between Revision 1.6 and 1.7 | |||
Revision 1.6 | cvs | 2000/06/17 21:24:45 | +2 -1 |
Applied a fix from Neil Muller which makes it impossible to identify fountains using the Alch skill. --PeterM | |||
Show difference between Revision 1.5 and 1.6 | |||
Revision 1.5 | cvs | 2000/06/14 02:07:10 | +2 -1 |
exit.c: won't crash if named final_map doesn't exist room_gen_onion.c: reordered the options more sanely special.c: fixed a crash-bug: nuke_map would nuke parts of monsters, but not the whole monster. | |||
Show difference between Revision 1.4 and 1.5 | |||
Revision 1.4 | jec | 2000/05/26 04:50:47 | +3 -3 |
* apply() cleanup patch 26/5/2000 | |||
Show difference between Revision 1.3 and 1.4 | |||
Revision 1.3 | cvs | 1999/07/13 01:03:03 | +1 -1 |
Global commit for 0.95.4 - most files have no changes but just have differing headers between my local RCS and the CVS versions and need to get synced up. | |||
Show difference between Revision 1.2 and 1.3 | |||
Revision 1.2 | cvs | 1999/06/26 17:48:36 | +7 -5 |
PeterM: reader.c: just rebuilt it, reader.l, its source file, wasn't touched. special.c: I put a loop around the fountain placement code so that it won't try to stick something outside of the map. style.c: won't try to read things with CVS in them as map styles anymore. | |||
Show difference between Revision 1.1 and 1.2 | |||
Revision 1.1 | uid200 | 1999/04/02 13:10:03 | None |
Initial revision | |||
First version | |||
Revision 1.1.1.1 | uid200 | 1999/04/02 13:10:03 | +0 -0 |
First CVS revsion: crossfire-0.95.3 | |||
Show difference between Revision 1.1 and 1.1.1.1 |