--- crossfire/random_maps ---


Protocol:pserver User:anonymous
Machine:crossfire.cvs.sourceforge.net CVSROOT:/cvsroot/crossfire

Filename: special.c
Revision 1.24tchize 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.23mwedel 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.22akirschbaum 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.21mwedel 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.20temitchell 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.19mwedel 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.18mwedel 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.17mwedel 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.16mwedel 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.15mwedel 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.14garbled 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.13mwedel 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.12mwedel 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.11peterm 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.10peterm 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.9cvs 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.8peterm 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.7cvs 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.6cvs 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.5cvs 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.4jec 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.3cvs 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.2cvs 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.1uid200 1999/04/02 13:10:03 None
Initial revision
First version
Revision 1.1.1.1uid200 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


File made using version 1.98 of cvs2html by leaf at 2011-07-21 17:57